There are two components of a Chia NFT: on-chain and off-chain.
On-Chain: An NFT is a special type of coin called a “singleton”. It contains three lists of URIs, which link to:
- The NFT's data. This is typically an image file.
- The NFT's metadata. This is typically a JSON file containing information about the NFT.
- The NFT's license. This is typically a text file the spells out what rights the NFT's owner has.
The URI lists can only be prepended to; existing URIs cannot be modified or deleted.
For security purposes, each NFT contains a hash of the data represented by each of the corresponding URIs. The hashes can never be modified after minting.
Off-Chain: The actual NFT image lives in at least one location online. It can be stored under any number of URI protocols, including (but not limited to) http, https, ftp and ipfs.
Because Chia NFTs use a list of URIs (as opposed to a single one), the image can be stored in multiple locations. This is important for preserving an NFT's permanence because a single link could break.
For high-end NFTs, you may even want to store the image offline. Why would you do this? Let’s say each of the online links is broken. As long as you (or anyone else) has a copy of the image, you can upload it and add a new link to the NFT. As long as the image’s hash matches the hash that’s built into the NFT, the new image is guaranteed to be identical to the original, and therefore valid. It is for these reasons that we believe NFTs on Chia will have stronger permanence than on any other blockchain.
The same rules apply for the metadata and license information. They can exist in multiple locations, but their hashes may not be modified after the initial minting. This prevents future owners from modifying this information, even though they can add new links.
The metadata URI can provide a wide variety of information about the NFT, including its title, properties (eg - year created, attributes, colors used, etc), rankings (eg - power: 25 out of 100, etc), collection name, as well as series number (eg - 1 of 100). The NFT’s minter is free to include whatever information they want at the time of minting. The NFT1 spec allows different metadata formats to be developed. At the time of this writing, almost all NFTs use this proposed format, which allows marketplaces to parse the metadata more easily.
The license URI can provide any relevant information concerning the NFT’s license, such as who owns the Intellectual Property.