Your NFTs could disappear...

If you were investing in a piece of land but the current owner said that it could disappear off the face of the earth at some random point in the future, and all you’d be left with was the deed, would you still buy it? How confident would you be to build your family’s home or business on top of it?

Probably not very much, right?

While this realistically won’t happen in the physical world, it is an alarming existential reality for many of the NFTs in existence today.

NFTs that have what I call “strong permanence” don’t have this risk. This articles dives into the concept of NFT permanence and why and when it’s important.

Popular NFTs ranked by permanence
Popular NFTs ranked by permanence

Non-Fungible Tokens (NFT) are digital assets stored on a blockchain that are based on open standards (the most popular being ERC721 or ERC1155). These standards lay out the features and functionalities that each one of these digital tokens needs to support.

To compare with a familiar analogy — HTML standards provides guidelines and requirements that each webpage must follow in order to be valid. All websites you browse today are written in code that sticks to these standards.

Like how browsers can render webpages for visitors to browse, NFTs, which can represent a variety of digital assets such as images, video, audio, game items, etc, can be rendered by different software for others to view. The type of multimedia that is represented in an NFT is called its metadata. Generally this is a configuration file represented in a standardized JSON format that provides information about the NFT. The metadata also provides information on the media file itself.

The NFT we see -> The underlying metadata
The NFT we see -> The underlying metadata

Some examples of the NFT’s information contained in metadata are things like attributes. For an image, attributes describing the image might be found in here such as “Hair: Mohawk, Shirt: Navy sweater, etc”. Additionally the metadata contains information about the media file.

By now, you’ve probably encountered dozens of different NFTs online. From NBA top shots to CryptoPunks and Bored Apes, NFTs have undoubtedly permeated through our culture for the past 2 years. However, aside from the prices and art, there is something else that is often overlooked that differentiates these tokens. Metadata permanence.

Permanence

One of the main selling points of NFTs is that they are often marketed as permanent digital assets that you can transparently track on a public ledger. While this is mostly true, there is important nuance to dissect here.

NFTs are composed of several components. There is the record keeping aspect, which tracks who the current owner is, as well as the features and functionalities that allow transferring ownership between different parties. These components are all on-chain. Meaning any action taken using these features requires either writing or reading data directly from the blockchain (i.e. permanent storage).

Additionally, there are other components which are optional to put on-chain. For example: metadata and media.

Architecture of an NFT with off-chain centralized metadata. If the CoolApes web server goes down, the metadata and media content will not be available.
Architecture of an NFT with off-chain centralized metadata. If the CoolApes web server goes down, the metadata and media content will not be available.

Like mentioned earlier, NFT metadata is a configuration file attached to each NFT that describes media based information about the NFT. This information one-off might not seem like much data, but at scale can add up significantly. Writing any data to the blockchain incurs a financial cost, as you need to pay for storage.

 

The size of this Bored Ape Yacht Club NFT’s metadata is roughly 350 bytes. Back-of-napkin math at current prices of ETH and gas prices gives us a cost of $0.0576/byte to store data in Ethereum currently. This means it would cost ~$20 to store this Bored Ape NFT metadata on-chain currently. If we also stored the image itself on-chain, which is roughly 150KB when converted to a base 64 string, that would cost ~$8,640!

Now if $8,640 sounds bad to you, remember many NFTs are part of larger collections of 10,000 or 100,000 items. Bored Ape Yacht Club specifically has 10,000 items which means it could cost ~$200,000 to store all of those if storing metadata only, and ~$86,600,000 to store images too. Also remember that the Ethereum blockchain itself is currently only ~1 TB in size as of the time of this writing.

For other blockchains, the costs will vary. One notable alternative to Ethereum based NFTs is Bitcoin Ordinals, which is a protocol that launched in early 2023 that allows creating digital assets on the Bitcoin blockchain, called inscriptions (as opposed to NFTs). For Ordinals, inscriptions can only be created with on-chain media and metadata. Luckily, due to the differences in the blockchain’s fee structures, it is currently much cheaper to upload media files onto Bitcoin. Others that have been used are Tezos, Flow, and Solana.

For the purposes of the article, I’ll be focusing on the Ethereum NFT ecosystem and approaches.

Off-chain metadata solutions

It comes at no surprise that many NFT creators have decided to store their NFT metadata and images off-chain. So the NFT on the blockchain itself just provides a ‘pointer to the metadata’, i.e. a URL where users can look up the metadata on the internet. This is often used as a point of criticism against NFTs, as the media file associated with the NFT is not technically “owned by you”, but rather on the server where it lives. This approach typically comes in two flavors: centralized and decentralized metadata.

Centralized metadata

Centralized metadata is metadata that is stored behind an API that usually fetches metadata out of a database somewhere like AWS. An example of an NFT collection that currently does this is Pixelmon.

 

Visiting the above link in your browser shows you the metadata for Pixelmon #9026. You can also see that the NFT image is stored in Amazon Cloud.

Pros:

  • Cheap and fast to setup and maintain.

  • Flexible for changes and bug fixes.

Cons:

  • NFT creator has full control of the media. They can update, change, or delete it at anytime.

  • If the API goes down or the images are deleted, then the NFT media is gone.

  • A malicious actor can more easily exploit a centralized service and enact disruptions or changes to the metadata/images.

This approach is generally considered undesirable by the NFT collector community, with a notable exceptions like gaming NFTs whose media may update frequently due to game mechanics. (e.g. a video game character who might level up and evolve), NFTs that require large media assets like videos, songs, and documents, or dynamic NFTs.

Businesses rise and fall everyday as this is the nature of capital markets. An NFT platform that exists today may not exist tomorrow. A shutdown could put the NFT assets in jeopardy, if their metadata is centralized.

The battlefield of VC funding leaves behind a graveyard of companies
The battlefield of VC funding leaves behind a graveyard of companies

NFTs using this approach fall under the weakest end of the permanence spectrum, as there is a single point of failure for the wellbeing of the NFT’s metadata and media.

Decentralized metadata

Decentralized metadata is metadata that while off-chain, is stored in a decentralized file storage network such as IPFS or Arweave. While these networks are generally more expensive and technical to store data on, they provide long term data guarantees.

An example of a collection that currently does this is Bored Ape Yacht Club. ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/1.

The above uri shows the location in the IPFS protocol that you can find the metadata for Bored Ape #1. To view it in a web browser, you can access it via this public IPFS gateway: https://ipfs.io/ipfs/QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/1

At a high level, the way that decentralized file storage networks work is similar to peer-to-peer networks like LimeWire. As long as one person in the network is storing the data on their network node, the content is available. So even if one day, the Bored Ape Yacht Club team decides to stop storing the data on their network node, anyone else such as a community member can store the metadata and images on their node and keep the content available for everyone else.

Examples: Bored Ape Yacht Club, Azuki, Doodles

Pros:

  • Cheaper to maintain than on-chain.

  • Data can still be available even if NFT creator no longer decides to host it, however this comes at the expense of others.

Cons:

  • Generally more expensive and harder to work with than centralized metadata solutions.

  • Decentralized file storage is usually much slower to read and write from.

  • If the decentralized file storage network fails in the future or no longer has any participants, all data is lost.

This approach is generally considered acceptable by the NFT collector community for collections that have high resolution media that does not expect to change or update.

NFTs using this approach fall in the middle of the permanence spectrum. While the NFT creator is no longer the single point of failure for the well being of the metadata, there are other risks that may make the metadata unavailable.

If the goal is to create NFTs that will exist for as long as the underlying blockchain is around, we need to consider on-chain approaches as none of the off-chain metadata approaches are bullet-proof.

Feasible on-chain metadata solutions

So we know that generally putting NFT metadata and media on-chain isn’t really feasible from a cost perspective. There are two general approaches currently on how to make it work in the context of images.

On-chain layering

When it comes to generative art, the concept of layering comes up frequently. Layering is one of the approaches used to create a piece of generative art. The artist defines different layers that compose the image, such as background, head, eyes, nose, eyes, hair, mouth, etc. For each layer, the artist creates different variations of that, for example hair: “blonde ponytail”, “black braids”, “red pompadour”. Then an algorithm runs that randomly selects one random trait from each layer and combines them into the final image. The same steps are done to create the randomized metadata file as well that corresponds to the output image.

Layering process for Women with Vases
Layering process for Women with Vases

For many NFTs, the layering process is run and the images and metadata are created before the NFTs themselves are created. However, NFT smart contracts can be designed to perform the layering on-chain.

How does this work? Each individual layer component is uploaded onto the blockchain usually in a .svg format. So instead of uploading 10,0000 individual different images for a 10k collection, the creator needs only to upload each individual layer asset. e.g. 100 total assets for a collection with 10 layers and 10 assets per layer.

Additionally, to make costs feasible, this is only primarily done for NFT images that use pixel art, as those are very small in size.

Examples: Chainrunners, On-chain Monkey Genesis, Nouns, 3nums

Pros:

  • Layers and layering process live on the blockchain, meaning that the NFT images and metadata are available as long as the blockchain is.

Cons:

  • Layers are expensive to upload, and cost increases with image quality.

  • Not feasible for high fidelity media.

  • Requires strong technical expertise.

Most of the art and images we see everyday are not pixelated blobs but rather high resolution assets. So how do we achieve strong permanence for those?

On-chain scripts, off-chain rendering

If someone told you to preserve a piece of data in a way that would last for a thousand years, so future humans or aliens could decipher it, what would come to mind?

Stone etchings — that might work for small text data sets. What if you wanted to use something that could encode complex data like an audio book or song? You’d need something like CDs or magnetic tape.

Well if we did that, then we’d also need to make sure to also include a CD/tape player. But wait, we don’t currently have batteries that are guaranteed to last for 1,000 years, nor can we guarantee that we’ll have two prong wall outlets in the future that we use now. So what now?

Ultimately, what we’d also need is to create an instruction manual on how to re-create a CD/tape player for our future descendants or the aliens that eventually discover the remains of our civilization. With this approach we theoretically now have a way of storing digital data for a long time as well as instructions on how to recreate a system that can process that data.

We can reuse the spirit of this analogy for our NFT permanence related efforts. In blockchain terms, here’s what we can do: for the sake of keeping the example simple, let’s imagine we want to create a generative NFT collection that is generated from algorithmic code, such as Chromie Squiggles or Tyler Hobb’s Fidenzas.

Chromie Squiggle #7515
Chromie Squiggle #7515

Since both of these are high-detailed pieces of art, (and in the case of Chromie Squiggles, animated and interactive) it’s obviously unfeasible to store the media itself directly on the Ethereum blockchain. However, since the outputs contained in collections are generated randomly by an algorithm, what if we stored the generation algorithm itself on the blockchain?

Diving a bit more into how these generative algorithms work (feel free to skip this section as it gets a bit technical), each time the algorithm runs, it takes in a “seed” that gives it a level of randomness that guarantees a unique output. If the algorithm is run with a different seed, the output will be different. If you know the original seed, you can recreate an output. Each seed maps 1:1 to a unique output.

You can imagine the generative algorithm like a recipe for a dish and the seed as the step where you need to “add salt for taste”. Each finished dish will have been created from the same recipe but will have a range of outcomes.

In the case of blockchain based generative art, one seed that is commonly used is the hash of the mint transaction, which is unique across all transactions on the entire blockchain.

Putting it together — a user mints an NFT on-chain. Off-chain, we take this mint’s transaction hash and use it as a seed to run against our generative algorithm and create outputs for the metadata as well as media file, which we upload into off-chain centralized or decentralized storage.

If for any reason, the uploaded assets in off-chain storage ever get removed or deleted, we can download the generation script for the collection which was stored on the blockchain and rerun it against the original seeds. This gives us the ability to “recreate” the outputs.

This approach combines a few aspects of the others that were discussed previously and strikes a fair compromise between needing to store high quality assets somewhere efficiently and keeping things as permanent as possible.

  • NFT’s media and metadata are stored off-chain in either centralized or decentralized storage.

  • Only the NFT’s generation script is uploaded to the blockchain. This generation script can be downloaded at any time and used to recreate the NFT’s media as a form of “backup/insurance”.

Examples: Chromie Squiggles, Sky Meadow, Fidenza, and Moonbirds

Moonbirds refers to their implementation of this approach as “In-chain”.

Pros:

  • NFT media and metadata can always be recreated.

  • Generation algorithms are somewhat expensive to store on the blockchain, but orders of magnitude cheaper than storing raw media.

Cons:

  • Smart contract and art creation steps are more complex.

  • Only feasible for media that can be generated using algorithmic scripts without any external dependencies.

Two platforms that are currently enabling creators to use this approach are Posterity and Art Blocks Engine.


Final words

NFT permanence creates strong guarantees for their holders. It enables the confidence to use NFTs as foundations for businesses, investments, priceless collectables and more.

To creators and builders —

Creating tokenized digital assets in a world where storage space is a scarce commodity requires considering many trade-offs. The goal should always be to strive for as much permanence as possible, while also weighing in the goal that is trying to be accomplished.

Want to create and sell digital art that could be collected and traded for hundreds of years? Use strong permanence. Creating tokenized in-game items for your new indie game? Weaker permanence is probably ok.

A big thank you to 0xPearl for the feedback and discussion.

Read more of my writing at https://twitter.com/montana_wong

Did I miss any other notable approaches? Please drop them in the comments below!

Subscribe to Montana
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.