Who Is Responsible for NFT Data?
Is Da Vinci Responsible for Maintaining the Mona Lisa?
Who is responsible for maintaining NFT data not stored on a blockchain? This is a question we’ve ran into frequently at Pinata working with creators creating crypto collectibles, crypto art, and crypto games. The current assumption is that the company, the artist, or the game that created the NFT is responsible for maintaining any of the data associated with the NFT not stored on a blockchain. This is an unsustainable assumption that we will address in this post.
For familiarity, Non-fungible tokens or NFTs, are tokens minted on blockchains that are individually unique. This means that no other token is exactly like it. This token design is perfect for managing the rights and ownership of an asset, especially a digital asset. The NFT first came into prominence with CryptoKitties but has progressed significantly since that time period. NFTs are now used by crypto artists, blockchain games, and countless other uses to ensure digital scarcity and ownership.
What Makes an NFT?
The creation of an NFT can really be broken into two sections. First, there is the blockchain which handles the minting and accounting of the NFT. Blockchains are really good at ensuring that tiny amounts of data are immutable and secure by replicating the data across thousands of computers across the world. However, blockchains are really bad at storing large amounts of data because it becomes extremely expensive to replicate large amounts of data across those thousands of computers. So, this is where the second part of NFTs comes in, data storage.
What most NFTs do is store the majority of data “off-chain” where a URL of the data is pointed to the NFT on the blockchain. The problem is that the data behind the URL can change. This means that an NFT that was supposed to represent a specific piece of crypto art or maybe a game character can be altered without anyone knowing. This defeats the purpose of the NFT in the first place.
This is where Pinata enters the picture. Pinata uses the Interplanetary File System, or IPFS, to create content-addressable hashes of data, also known as Content-Identifiers (CIDs).
These CIDs act as both a way to retrieve the data and as a way to ensure the validity of the data. Those looking to retrieve data simply ask the IPFS network for the data that corresponds to a particular CID and then if any node on the network has that data, it will be returned back to the requester.
As the requester is retrieving the data, it is automatically rehashed on the requesters computer to make sure that the data matches back up with the original CID they asked for. This process ensures the data that’s received is exactly what was asked for.
If a malicious node tries to deliver false data, the resulting CID on the requesters end will be different, alerting the requester that they’re receiving false data.
Who Pays for the Data Off-Chain?
While storing data using “off-chain” solutions like IPFS is certainly better than using traditional servers / URLs, an important question needs to be considered when doing so:
Who is responsible for maintaining the cost of the data of the NFT not stored on-chain?
In order for off-chain data to be retrievable, somebody has to be hosting that data on the IPFS network.
When an artist creates a painting, that painting is not permanent by nature. Typically, the artist will sell that painting to a buyer. At that point, the buyer owns the painting and is then responsible for its permanence. If the buyer enjoys the painting, they will take care of it, maybe sell it to someone else, and then that buyer will take care of it. However, if the buyer doesn’t take care of it, it might be thrown away, severely damaged, or just forgotten about over time. This is a very familiar, intuitive life of a physical asset.
Is Da Vinci Responsible for Maintaining the Mona Lisa?
How does this translate to NFTs? Typically, what NFT creators ask us at Pinata is how they should handle long-term storage of the data. As the creator, they want the NFT data to last forever. There is an expectation in the NFT space for the data to be permanent. But, there is a cost for permanence. And, it certainly isn’t free. There are costs to hosting data that make permanence difficult, especially at scale.
But, there is an assumption built into this request. It assumes that the creator of the NFT should be responsible for maintaining the data forever. This is the same as saying that the painter described earlier should be responsible for maintaining their painting forever. Is Da Vinci responsible for maintaining the Mona Lisa today? Of course not, that would be the Louvre. At Pinata, we believe that when NFTs are sold, there needs to be a clear understanding of how and when the maintenance responsibilities of the NFT data transfer.
As Is? Warranties?
When an NFT is sold, there should be clear guidelines on who maintains the data and for how long. Let’s look at two simple examples.
First, we could sell the NFT as is and not worry about maintaining the data at all. So, once the NFT is sold, the buyer instantly becomes responsible for figuring out how to store the data associated with the NFT. For some NFTs, the buyer might be okay with this. However, it is a harsh stance as a seller of the NFT.
The other way we could do it as an NFT seller is to sell it with a “warranty”. This warranty would clearly define how long the seller would maintain the data before it becomes the responsibility of the buyer. For instance, as the NFT seller, we might include three years of maintaining the data for the NFT. After three years, whoever owns the NFT at that point would become responsible for maintaining the data.
Applying this to gaming, a game could sell in-game NFTs with a warranty that they would maintain the data of that asset for as long as the game company updates and supports the game itself. This would provide a guarantee for the gamer that their assets will work no matter what while the game is supported. However, once the company stops supporting updates, the gamer becomes responsible for maintaining their in-game NFTs.
How to Transfer Responsibility?
Okay, so we’ve created an NFT and we’ve clearly defined how long we are willing to maintain the data associated with the NFT for the buyer. Now, how do we transfer the data? Well, with Pinata and IPFS, that is extremely easy.
Remember how there was an IPFS CID pointing to the asset the NFT represents? That CID is the key to transferring responsibility of data from seller to buyer. Once data needs to be transferred from the seller to the buyer, the buyer simply has to take that IPFS CID and pin it somewhere.
With Pinata, we have an easy “pin by hash” functionality that lets users tell Pinata to grab an asset from the IPFS network and maintain it on our IPFS nodes. This would allow a potential buyer to simply tell Pinata to find their NFT asset and hold onto it for them.
Another option for the buyer is to run their own IPFS node and maintain the data on their computer or in the cloud. Pretty simple! At this point, the NFT creator is no longer responsible for the NFT’s data and the new buyer is responsible for providing their asset to those they share it with.
And, because of how IPFS data is content addressable, those retrieving the asset won’t even have to know the asset changed hands. Instead of needing to know the new location of the data, they can continue to retrieve the NFT’s data by simply asking the IPFS network, “Hey, do you have the data for this hash?”. The only difference is that the NFT’s new owner will now be responsible for serving the content instead of the previous owner.
Define Who Is Responsible
NFTs present amazing functionality for digital assets backed by blockchain. They track digital rights and ownership in a secure and immutable way. However, the data of that NFT not on-chain isn’t permanent. To solve for this, NFT creators need to clearly define who and for how long someone is responsible for maintaining NFT data. With the help of Pinata and IPFS, transferring this responsibility is easy and secure for anyone buying and selling NFTs. Happy Pinning!