And tips to help you complete the installation
Chia released their new standard for NFTs last week. I’ve had time to go over the initial release and test out all the available endpoints. I wanted to give some thoughts on the overall process and some questions I have for future releases. All my information comes from a Chia blogpost, developer guide, and my own experience issuing NFTs on the Chia testnet.
I’ll touch on this briefly. The setup for testing the NFT0 standard is a bit of a chore. I think this is mostly a function of the standards age. It’s brand new and being actively worked on. As time goes on, I’m sure these instructions will become easier, especially once it makes it to their mainnet.
You need to install a development version of Chia by cloning a specific branch of their
chia-blockchain repository, pause or uninstall any running instances of Chia, and switch over to their testnet. I have experience following instructions like these for other projects, so it’s not a big deal for me. I can imagine a less experienced developer being intimidated by these instructions.
After installation, the documentation asks you to check your Chia version. My version differed from what was posted in the developer guide.
Chia developer guide version
Having a mismatch between versions didn't ruin my experience, but it did give me an uneasy feeling when I saw it. In the past, I’ve spent hours debugging walkthroughs because of changes between the version documented and what is most recent. My guess is this documentation will be updated once the new NFT1 standard is released.
You can only issue NFT0 tokens on the Chia testnet. The intention is to have an early access token for developers to try and give feedback.
Once I had everything installed and configured, all endpoints worked without issue. I was able to create an NFT wallet, mint a token, list out my tokens, transfer a token, and add a URI to a token without issue. The commands themselves were easy to understand and well documented within the CLI.
The first thing you need to do is create an NFT wallet. Each public/private key pair in Chia can have multiple wallets. Once created, you’ll be able to see a new wallet when you run the
chia wallet show command.
I don’t mind having different wallets for each key pair at the moment. My only concern is how this will scale with the number of wallets Chia hopes to make available. We’ll have to wait and see on that.
Another concern I had with multiple wallets had to do with token transfers. Take NFTs as an example. If I need an NFT wallet to hold an NFT token, what happens if I try to transfer an NFT to an address without an NFT wallet?
Thankfully, the developers at Chia already considered this scenario. If you transfer an NFT to an address that does not have an NFT wallet, Chia will create an NFT wallet for that address automatically.
Once I got past the initial setup, the NFT0 standard was intuitive to use. The endpoints are simple and well documented. According to Chia, the first production release for their NFT standard will be geared toward a fine art vertical. I’m interested in hearing about the other verticals they plan on addressing.
One of the larger questions I have is regarding metadata or attributes stored in an NFT. Most of the NFTs you see in marketplaces like OpenSea have attributes that are used to describe the NFT. Attributes are stored off-chain, usually on IPFS, in JSON files.
My hope is Chia can take the next step by storing attributes inside the NFT payload. I think it would be wise for Chia to define standards for their NFT attributes. Otherwise, different token providers will have their own standards.
If you're interested in using the NFT0 standard, I would highly recommend giving it a try.
Thanks for reading. Stay tuned for more!