Anatomy of a Non-Fungible Token
Understanding the components that make NFTs work
When you see an NFT on a marketplace or in your wallet, it's easy to draw the conclusion the creative representation, the "media" (image, music, video etc.) is the token.
Although a token is presented digitally using its media, an on-chain token's concerns are its identifier, contract, reference and most importantly - its owner.
An NFT's primary use case is providing a cryptographically verifiable way to ascertain that something, the reference pointer, is owned by someone, the owner.
Worth noting, that the price of a token is not the concern of the token or token contract itself, but instead a function of the market.
An NFT is made up of several parts, each of those can be grouped into three types: multimedia, reference data, and then token itself which lives on chain.
NFTs on Mintbase are composed of three basic parts in three steps: Media, reference JSON and the on-chain token data.
Wether you are minting programmatically, using our interface, or one of our minting services you will perform the following operations in order:
One or more files can be associated with an NFT by following its reference data. The only requirement, is that each file must be reliably accessed via permanent URL.
Due to the permanence and distributed nature of blockchain, newer multimedia hosting services like Arweave and IPFS* are now commonly used to store media.
A quick search will turn up many ways which you can use these new services. However if you just want to get started quickly, or perhaps you have really large file size requirements, you can use traditionally hosted URLs in the next step.
Need permanent storage? We are developing a service on top of Arweave which makes uploading simple and pairs perfectly with our minting APIs. This service is in alpha, but will be available to the general public sometime in 2023.
Commonly referred to as "metadata", reference data specifies additional properties of a token while minimizing on-chain storage costs by delegating this data to another host. As with media, this data can be hosted anywhere.
The important parts of the schema are:
- 1.The attached media from step one
- 2.An array of attributes that can be used to define properties for your NFT such as "seat", "row", "section" in the case of a ticket being referenced by an NFT.
- 3.A title, description and any other auxiliary information you might deem relevant or useful to the token.
Standardization of this schema is still being worked out, though having a global standard would be very helpful for wallets and indexers of the future.
Like media, reference data must be accessible at a single permanent URL. Once this URL is available and serving your JSON reliably, you are ready to mint.
The final step in the NFT creation process is to create a "mint" or "batch_mint" transaction on a deployed token contract. Using the metadata JSON URL from the previous step, the tokens' immutable reference to that data is placed onto the blockchain in addition to other optional on-chain fields specified by the NEAR NEP-177 NFT Metadata Specification.
More than one token can share the same reference material URL. This can be useful if you need to create multiple copies of the same reference, perhaps for a redeemable promotion code or copies of digital artwork.
*IPFS currently carries a risk of loosing your content forever if no one hosts it. While solutions to this problem are being worked on, we suggest using Arweave instead. Hosts there are incentivized to keep as many of the networks' contents as possible with Proof of Access block production rewards.