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.