I've deployed a contract that lets users mint NFTs, which will have a "coming soon" artwork that will then be updated to reveal the real artwork at a later time. This was due to the fact that I'd heard stories of people having their artworks stolen from IPFS before they launched. So I've basically got 2 sets of metadata and a "coming soon" image, then a folder for the final images. My test goes as follows: I mint a few NFTs eg around 10 and each tokenURI points to the "coming soon" metadata folder. After this, I simulate revealing them by uploading the actual images/metadata to an IPFS folder and changing my baseURI to point to this folder.
However, I get some unexpected behaviour and I'm just wondering if anyone can confirm this is just how it works on OpenSea, or if I'm doing something wrong:
- I can hit the "refresh metadata" button, and on a few of the tokens, the metadata and image will update
- On other tokens, the metadata will update (eg I can see properties and the correct artwork title) however the image from the metadata won't display (confirmed the image displays in browser)
- Some tokens don't update at all, even after 14+ hours of the baseURI changing (tested on various browsers and computers to ensure it wasn't locally cached)
Is it just slow to update on OpenSea's testnet? Will it update faster on the live OpenSea site?
I've also added all the tokens to my phone's MetaMask wallet and I can see all the image are displaying for each NFT, so that proves that the metadata is correctly pointing to an image that exists online. However OpenSea doesn't reflect some or all of the updates.
I've used the metadata troubleshooting steps OpenSea recommend.
For more detail, here is my collection, you will see most don't have images, some do:
https://testnets.opensea.io/collection/hogmox-liljclh02z
Here is an example where the image isn't displaying, but the correct metadata is being used to populate the properties:
https://testnets.opensea.io/assets/0xac76A9dD13bdf409Aa34B36D08ae5501d48293a8/6
(confirmed image shows when token is added to my MetaMask wallet)
I've validated the metadata:
https://rinkeby-api.opensea.io/asset/0xac76a9dd13bdf409aa34b36d08ae5501d48293a8/6/validate/
Sometimes when I try this it says valid=false
then I will refresh and it will say valid=true
I've tried appending ?force_update=true
to the URL but this hasn't fixed it.
I thought leaving it overnight could fix it, giving OpenSea time to update its cached metadata, however it has been a day and they still have not updated. Any advice? If I were to launch a collection like this, I'd be worried it would be a frustrating experience for buyers having to possibly wait days for their artwork to display, and it doesn't seem to happen on projects I've seen launch.
Best Answer
I kind of encountered probably the same metadata update problem. In my case it was because I rushed through the opensea docs didn't use the correct api endpoint for force updating the metadata.
According to opensea docs you should use this endpoint when force updating metadata:
Once you hit it, your request is put into a queue, and depending on the traffic, it can take from 10sec to several minutes to update token's metadata