I’m having trouble with my ERC721 token showing up properly on OpenSea testnet. I successfully deployed my smart contract and minted NFTs on Rinkeby using IPFS through Pinata and implemented everything with Nethereum in C#.
The tokenURI function works fine and returns the correct IPFS hash like ipfs://QmXY8pKLBDs4VCqNLrZEBNP92GpbeMF9DXkMhtxW6HLPQs. I can access the metadata directly through IPFS gateway and everything looks correct there.
However when I check OpenSea testnet, my NFT appears but without any metadata. No image, title, description or attributes show up. It’s just blank.
I tried using OpenSea’s validation endpoint to check what might be wrong with my contract. The response shows an error message saying “AttributeError: ‘str’ object has no attribute ‘get’” but I have no idea what this means or how to fix it.
My metadata follows the standard OpenSea format and the IPFS URL structure matches their documentation requirements. The tokenURI function returns the proper ipfs:// format. What could be preventing OpenSea from reading my NFT metadata correctly?
hey @Jade75, that’s frustrating! i’ve been down this rabbit hole before with opensea testnet being finicky. one thing that caught my attention - you mentioned using rinkeby but just fyi rinkeby got deprecated a while back, are you maybe on goerli or sepolia now? opensea testnet support varies between different testnets.
that AttributeError you’re seeing is interesting tho - it usually pops up when opensea’s backend is expecting a json object but getting a string instead. have you tried accessing your ipfs metadata url directly in browser using the gateway format (like https://gateway.pinata.cloud/ipfs/your-hash) to make sure it’s returning proper json with correct content-type headers?
also curious - when you say the tokenURI returns the ipfs:// format, does your contract also have the contractURI function implemented? sometimes opensea gets confused without proper contract-level metadata.
what does your actual metadata json structure look like? and have you checked if other nfts from your contract have the same issue or just specific ones?
sounds like opensea’s crawler might be having issues with your specific metadata structure. try adding a manual refresh on opensea by clicking the refresh metadata button on your nft page - sometimes their cache gets stuck. also double check that your json has proper quotes around all field names, ive seen that ‘str’ error when theres formatting issues.
I ran into similar metadata issues when deploying on testnet last month and discovered the problem was actually timing-related. OpenSea’s indexing service can be extremely slow, sometimes taking 24-48 hours to properly crawl and display metadata from IPFS. That AttributeError you’re seeing typically indicates OpenSea’s backend is parsing your metadata incorrectly. I’d recommend checking if your IPFS content is being served with the correct MIME type - it should be application/json. Some IPFS gateways don’t set this properly which causes parsing failures. Another thing to verify is whether your images are properly pinned and accessible. Even if the metadata JSON loads fine, OpenSea won’t display anything if it can’t fetch the actual image file. Try accessing your image URLs directly through different IPFS gateways to confirm they’re working consistently. Since you mentioned using Nethereum, make sure your tokenURI function is returning exactly what you expect without any encoding issues. I’ve seen cases where special characters or encoding problems cause silent failures in OpenSea’s metadata parser.