I have been saving the images of some of my NFTs by downloading them from OpenSea. I wanted to know if those images were the highest resolution ones available. Then I started to wonder about the actual files themselves – where are they stored? how do I find them? What happens if a random server somewhere that holds the images goes offline?
- The idea of “NFT Persistence”
- The image or video of the NFT does not actually live on the blockchain.
- The NFT token refers to a file that lives somewhere else on the web.
- So there is some risk that it could be taken offline.
- There is no consensus on best practices, so caveat emptor.
- Most people are not aware of this., especially those new to the NFT space.
- Think of a painting with a certificate of authenticity and ownership. The certificate is a record stored on the blockchain (Ethereum in this case) and the painting is the image file, which is stored somewhere else.
- It would be far too expensive to store the actual image on Ethereum.
- The ERC-721 standard does not care where the creator puts the actual data or the reliability of the storage.
- TokenURI field in the token contract points to where the file is stored.
- Typically the data I have seen are stored on IPFS (The Interplanetary File System).
- Content Addressing by IPFS makes a hash of the content itself and can find the nearest copy.
- Right clicking on a preview image from OpenSea or other NFT sites typically does not provide a high res image.
- This medium article was very helpful outlining the steps to find my image files.
- Steps (assuming starting from OpenSea):
- find the minting smart contract in the details section of the NFT
- Open the contract in Etherscan
- Navigate to the “Contract” tab
- Click on “Read Contract”
- A list of functions will be displayed
- select “tokenURI” and enter your NFT’s token id (from the OpenSea details page)
- An IPFS address will be displayed
- need to change “ipfs://” at beginning of address to “https://ipfs.io/ipfs/“
- will navigate to the actual image, or a page with metadata about the NFT
- if the metadata case – follow the same steps as before, copy the image address and change ipfs:// to https://ipfs.io/ipfs at the beginning of the address.
- This process is a bit laborious.
Questions/Thoughts:
- How do I make sure that the images persist in IPFS?
- Is it worthwhile to run your own IPFS node if you have a lot of NFTs?
- The articles I referenced are about a year old. Is there better consensus now on maintaining NFT persistence?
- Are there other services or competitors to IPFS?
- Before purchasing an NFT, it seems to me that checking where the image is stored would be an important part of due diligence.
- What about completely “on-chain” NFTs like some generative art projects and something like Terraforms by Mathcastles. Is the blockchain data/code sufficient to generate the image/video?
References:
- https://www.coindesk.com/tech/2021/02/23/its-an-nft-boom-do-you-know-where-your-digital-art-lives/
- https://www.theverge.com/2021/3/25/22349242/nft-metadata-explained-art-crypto-urls-links-ipfs
- http://help.levelframes.com/en/articles/5672060-printing-framing-nfts
- https://medium.com/coinmonks/how-to-find-your-nft-on-ipfs-e51bc5e7c8a1