NFTs have a wide range of applications including:
- personal IDs
- collectibles
- …
Right now, collectibles and art are the main applications of NFTs. From the chart below, we can see how NFTs are performing in different categories.
In every category, NFTs represent ownership of an item. In the case of CryptoPunks, this item is a JPEG. For ENS, this is the .eth address and for Axie, this can be a game character.
The recipe for an NFT
All of these tokens follow the same blueprint, part of those is ERC721 standard. This standard helps us distinguish between a fungible and a non-fungible asset.
You might have heard of the ERC1155 standard. It is an extension of an NFT. For our purposes, we can view both as tokenized digital goods.
Every NFT has a unique Id that points to its metadata, and it’s like a fingerprint for a digital asset. This metadata can consist of an image and attributes etc.
The anatomy of metadata
So…what do we see when first looking at an NFT?
The name of the NFT is in the title.
This is the name that the project chooses for an NFT, after that, There’s the NFT’s unique ID marked with a “#”. This ID is the NFT’s fingerprint. Under the hood, in the smart contract a link is generated from this ID that points to some metadata about the NFT. We collect the metadata of every NFT from the blockchain and present it to our users. Here, you can see that this NFT has an image and some properties, the NFT’s metadata is like its ID card.
If you want to see the program that websites like us read from to collect this metadata, you can see it here:
I will go over how you can find this raw data yourself. If you’re interested in that, stay tuned!
Where is the metadata stored?
A common misconception that people might have is that their NFT’s metadata is stored on the blockchain. This is true for some NFTs like CryptoPunks but it’s not best practice. On-chain metadata is highly gas-intensive and can cause even hundreds of dollars. In this article, we will cover the difference between on-chain and off-chain metadata and compare them.
We now know that most NFT projects don’t store data on the blockchain, so how do we make sure that our NFT’s data is immutable?
Immutability
When we say something is immutable it means that it can’t change. The $ETH you have in your wallet is stored on the Ethereum blockchain. Therefore, it is by nature immutable and no one can change it. This is a powerful phenomena that powers blockchain technology.
However, we are not at the point where we can store all the data for an NFT on-chain just like we store our transactions. Achieving immutability is a challenging topic in the NFT development ecosystem. At NFTGo.io, we ask two questions to see if an NFT’s metadata is immutable or not:
- Is the metadata stored on a decentralized file storage?
- Can the NFT’s metadata change?
The problem with mutability
Some projects take the road of storing their NFT’s metadata on a centralized database. This means that the owners of the database can change the metadata. There are other risks like:
- Hacks and cyber attacks
- Server problems causing the whole dataset to go down
Investors should be aware of these risks and realize that when an NFT’s data is mutable, it questions whether they truly own the NFT. Some projects have no choice but to store the data in a centralized way, we will go more in-depth about that in a future article.
NFTGo.io has made it easy
Before, you should have done your due diligence to find out if your $100k NFT is really yours or not. NFTGo.io’s mission is to make the experience of buying an NFT as fluid and intuitive as possible. This is why we have the immutable tag on the NFTs that meet our criteria. This reduces the barrier to entry for new investors and makes old investors’ workflow smoother.
Getting nerdy!
Our data is more than enough for most use-cases, but we’ll gonna show you how to find the raw data yourself. All of this work is already done for you by NFTGo.io. This is just for you to see what’s going on under the hood. If you’re curious, you can follow along!
There are four steps to this process:
- Go on Etherscan (or the block explorer of your choice)
- Find the NFT’s contract
- “Read” from the contract (I’ll explain what that means)
- Follow the URI you got back
Depending on how the contract is structured, there might be more steps that you have to take after step 3 but this is pretty much the pattern for most of NFT contracts out there.
Depending on how the contract is structured, there might be more steps that you have to take after step 3 but this is pretty much the pattern for most of NFT contracts out there.
First, we choose an NFT. On NFTGo.io, we can see the ID of this NFT is 4744.
If you scroll down, you will see the information about the project under the NFT’s properties. There’s an address that takes us to Etherscan, this is the project’s smart contract. You can think of an NFT smart contract as a vending machine. When you click on the mint button, this vending machine will give you your NFT. There are other things that are going on in an NFT smart contract, more on that in the future!
Now that we’re on Etherscan, it is important that the project’s contract is “verified”. On the right top corner of the contract, there’s a little green tick button. This means that we’re good to go. After you click on “contract”, you will see 3 options: code, read contract, write contract. Click on “read contract”, there are a bunch of different functions there, but we’re only interested in one of them. Find the “tokenURI” function (which is usually at the end).
Remember I told you that an NFT’s ID is like its fingerprint. Well, that’s exactly what we’re going to use to get our NFT’s metadata. After you click on the tokenURI function, you can write the NFT’s ID in the input box. Click on the query button.
And voila! You have “read’’ directly from the Ethereum blockchain. That was a lot of steps to get there, this is what our software does to get every NFT’s metadata.
A big chunk of a blockchain’s task is to store data. Block explorers like Etherscan enable us to Read from the blockchain and also Write to it. Keep in mind that reading from the blockchain doesn’t cost any gas.
If you’ve clicked on the query button, you will see a response from the blockchain. This is a link to where the NFT’s metadata is stored, you can copy and paste this link on your browser. The page you see should be kind of familiar for you, we showed you earlier in this article the raw code for an NFT’s metadata. This text file is stored somewhere (centralized or decentralized) and that’s how we determine our NFT’s immutability.
If you see the link is pointing to a decentralized file storage, you can make sure that nobody has the power to change your NFT.
Key takeaways
In this article, you learned a ton about NFTs and hopefully, the concept of self-custody makes more sense to you. You also saw how NFTGo.io has made it so easy for you to see if the NFT’s metadata is immutable or not. You also learned what’s going on behind the scenes. There are a few takeaways that I want to leave you with:
Blockchains are open and transparent platforms and by leveraging the data from the blockchain, you can ensure the safety of your assets. However, it is inconvenient to use the blockchain directly every time. NFTGo.io bridges the gap between daily users and the blockchain. This is all made for you to have a safe NFT purchase experience.
Note: The above information is for informational purposes only. Investing in digital assets such as NFTs and cryptocurrency brings with it a high degree of risk. Please consult with a financial advisor before making any investment decisions. NFTGo.io does not provide financial advice and is not responsible for any losses incurred as a result of investing in digital assets.
All Comments