NFTs: Who controls your assets; don’t get fooled by mutable meta-data
NFTs are in rapid growth right now. In 2021 the market size reached a whopping $41 billion dollars. This is because NFTs are a revolutionizing technology with a lot of strengths. But it is also a bubble. Much like the dot-com bubble in the 90s, the technology is good. But there is a lot of uncertainty about value, as the industry figures out what it wants to be.
What I want to tackle here, is the dynamics of mutable and immutable meta-data in the NFT.
If you are investing in NFTs and don’t know what IPFS is, and how to check where your NFTs are stored… This article is for you!
Meta data in NFTs CAN change
While the data that is stored in an NFT on the block-chain cannot change due to the immutable properties of blockchain technology, the data they are referencing MAY be subject to change. When investing this is important for you to know, as your shiny gold dragon-monkey deluxe today, could be a poop emoji tomorrow.
Think of it this way: when you buy an NFT, you are buying a box. Nobody can change the properties of the box. If you bought a brown natural wood box, this will always be a brown natural wood box.
The problem is, if you think you are buying what is inside the box, i.e. the shiny gold dragon-monkey deluxe, and the seller has a key to the box. Then there is nothing stopping the seller from taking the shiny gold dragon-monkey deluxe out of the box and replacing it with something else.
Interplanetary-a-what-not?
IPFS is an abbreviation for InterPlanetary File System. This is a distributed system for storing things on the internet. The important thing is, that every item on IPFS is uniquely identified by a content hash. This means that you cannot change the content of the link, without changing the link.
Now, if an NFT has meta-data that link to something on IPFS we cannot change the link due to the immutable properties of the blockchain, and we cannot change the content of the link without changing the link due to properties of IPFS.
In effect this means that what you buy is what you get!
Self-hosted meta-data
On the other hand, your NFTs might reference data stored on the servers of the people in charge of the project.
This is good because it allows the project to receive updates. This opens the door to balancing the stats of let’s say a trading card game based on NFTs, correct errors in the artwork or spelling mistakes etc.
It is bad because you do not know what you are buying. Also if the project shuts down some day in the future, the servers that are hosting all the information on your property will be gone. The only way to remedy this would be for you to buy the domain, and upload the information yourself.
Checking the meta-data and real world examples
Luckily the block chain is a pretty transparrent place when it comes to these things. I want to run through two examples on opensea checking for ourselves where the data is stored.
We will be somewhat arbitrarily checking the contracts of two NFTs: Baby Ghost and DinoBabies.
We will start with Baby Ghost. On opensea.io we can expand the details panel. Now copy the Token ID as we will need this later. Click the Contract Address. This will open the contract on etherscan.io.
Now press the Contract, and select Read Contract.
Find the tokenURI endpoint and query it with the TokenID we copied earlier. This gives you a link. In this case https://metadata.babyghosts.com/404
This tells us that the data is stored on a server managed by babyghosts. If we repeat these steps for DinoBabies we get the following:
Here we see that the data is stored on ipfs.io, thus this information here cannot change. In this case we are not completely done. We still need to verify that any links in the data is also using IPFS. You could imagine using IPFS to serve another link to a server you control, and we would have gained nothing.
If we open the link we see that there is in fact a link to the image, but that it is served from IPFS also:
Takeaway
We can now view babyghost as a programmable artwork that the creators can update. DinoBabies is more like a real world artwork in the sense that you buy it, and it will never change. You now know how to go out there and verify these things for yourself.
Combining IPFS and Self-Hosting
As we have discussed, there are pros and cons to the two solutions, i.e. storing on IPFS or self-hosted. I am not aware if people are doing this, but it should be possible to combine these two methods, and get the programmability of self-hosting and the immutability of IPFS. As a matter of fact I am currently working on a project, that seeks to do exactly that.
If you are at all interested you can read about it here: childrenofasgard.com
We are from Denmark and wish to share the stories about Norse mythology that we have grown up with. We are focused on providing value and usability of the NFTs so that you are investing in more than ‘just’ an artwork.
Suppose we store a link to IPFS on the blockchain that holds meta data and images, and then also a link to self-hosted information embedded in the IPFS data. That way the original information will be there always, but updates are available to those who want this. It can then be left up to third parties to pick which link they will be drawing information from, or implement a fallback to IPFS data if something goes wrong with the self hosted data. That is the basic idea.
We hope to see you in our discord and that you find this article informative!