The importance of permanence and persistence for NFTs is becoming increasingly apparent in our industry. Instances, where NFT art has vanished due to centralized server failures, altered metadata, or unpinned IPFS content, underscore the practical advantages of on-chain NFTs. This type of NFT not only offers a pathway towards true decentralization of art but also opens the door for experimentation, leading to groundbreaking concepts and ideas.
A canonical onchain NFT would, at a minimum, require the elements needed to rebuild its artwork to be stored on the same chain as the token itself. This could be the art directly stored onchain, or the instructions to generate the art stored onchain. Here are some cases where this can get confusing:
The Metadata is onchain, but art or code are not onchain.
Nothing is onchain in the original contract; however, the art is later added onchain through a separate contract, with no link between the two contracts.
A one-way hash of the artwork is onchain, but nothing else is onchain
The code (instructions) is onchain but the code has external dependencies that aren’t onchain
The code (instructions) is onchain, but it also has libraries that weren’t onchain when the contract was written. However, these libraries are later added onchain in a separate contract yet there is no link between the two contracts
The code is onchain without any external dependencies, but it is not a "file" that can view the art itself directly on a browser or other viewer tool. Instead, it is simply the code (JS, Python, C++, etc) uploaded onchain, and the art itself is served from a centralized server. However, the art can be reconstructed by running the code in a specific software environment.
The art is stored in the calldata function, making it possible to extract from the chain; but it may be pruned with EIP-4444
I'm looking forward to discussing the edge cases listed above, as well as any new ones, with the JPG and wider onchain community. Feel free to join the conversation on the JPG Discord. Everyone is welcome to propose NFTs to the Onchain Canon and help build a comprehensive taxonomy for this NFT class. To do so, you'll need a free mint soulbound NFT, the Canonicon. Please ask in the JPG Discord, and they will guide you through the process.