I created an NFT and when I check the NFT item contract, everything looks good. The contract is initialized properly and returns content that isn’t empty. But here’s my problem - when I look at my wallet or check on tonviewer, none of the metadata I added shows up. I’m not sure what I’m doing wrong.
ya, sounds like a key mismatch. tonviewer, like many wallets, expects the “image” key instead of “picture”. also make sure nftData.picture has a valid URL or IPFS hash. double check that console log too, maybe it’s pointing to the wrong data.
Hmm, interesting! I’ve seen this before - usually comes down to a few non-obvious things.
First thing that jumped out: you’re using hashSha256("picture") but referencing nftData.picture. Sure the wallet/tonviewer expects “picture” as the key? Most standard implementations expect “image” instead.
What’s your createTextCell function look like? Sometimes the problem’s in how text gets encoded into the cell, not the dictionary structure.
Also - checked if your content URI scheme is right? Some wallets are picky about content format and won’t show metadata if it doesn’t follow standards.
Which wallet are you testing with? Different wallets have varying NFT metadata support levels. Worth trying a few to see if it’s wallet-specific or a broader implementation issue.
Can you share what the actual content output looks like when you call the getter method?
Had this exact problem with my first TON NFTs last month. Your metadata structure looks fine, but there’s probably a timing issue. After you deploy, indexers like tonviewer need time to pick up and parse the metadata.
Another thing - check your content cell size. TON has strict cell limits, and if your metadata’s too big, it gets truncated silently. Try shortening your title and description to test this.
Also check your createTextCell implementation. Make sure it handles UTF-8 encoding right. I’ve seen special characters break parsing in ways that aren’t obvious from the contract side.
Try calling the get_nft_content method directly through a TON client. You’ll see exactly what data the contract returns vs what your wallet shows.