Snowman.sol::tokenURI
functionThe tokenURI
function in Snowman.sol
returns metadata using a single static URI stored in the state variable s_SnowmanSvgUri
. This means every Snowman NFT minted by the contract shares the same metadata and image, regardless of its tokenId
.
This issue impacts the uniqueness, integrity, and marketplace compatibility of the NFTs:
No Visual or Metadata Uniqueness : All tokens are indistinguishable from one another, undermining the core principle of NFTs being “non-fungible.”
Poor Marketplace Presentation : Platforms like OpenSea may display these NFTs as duplicates or fail to categorize them properly, degrading discoverability and appeal.
Limited Extensibility : The design does not support future features such as traits, rarity, or metadata upgrades. It’s incompatible with evolving NFT standards that expect per-token metadata.
The following function demonstrates that all NFTs use a shared static URI:
This logic does not include any differentiation based on the tokenId
.
Introduce per-token metadata, either by dynamically generating it or by storing it at mint time.
Proposed Fix in Snowman.sol
:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.