NFTs
A non-fungible token, often shortened to NFT, is a record on a blockchain that is associated with a unique digital or physical asset. Unlike fungible tokens that can be traded 1:1 for each other, non-fungible tokens often have varying values and cannot be directly swapped.
NFTs are deployed onchain using smart contracts to provide a transparent record of ownership and proof of the asset's validity. Some common use cases for NFTs include:
Buying and selling unique art, including digital art, paintings, videos, or music.
Purchasing luxury goods and using NFTs for the certificate of authenticity.
Proving proof of ownership for property such as real estate.
Recording documents such as education certificates or awards.
NFTs are created by recording the token's data onchain through a process known as minting. On ICP, minting is done through a canister smart contract that defines the NFT's ownership, data, and metadata. It also enables the NFT to be sold or transferred to another account.
Each NFT is assigned a unique identifier that is publicly accessible, along with the NFT's data, metadata, and transaction history. NFTs can be part of a large collection, such as '1 of 1_000', or they can be '1 of 1' tokens. '1 of 1' NFTs are often used for original art, education certificates, or property records, while '1 of 1_000' can be used to provide equal benefits to each NFT holder, such as membership to a website or tickets to an event.
However, even if all 1_000 NFTs in a collection are the exact same image and provide the same benefit, each will have its own unique identifier to distinguish it from the others in the collection.
NFTs on ICP
ICP enables cross-chain NFT functionality, allowing assets such as images, music, or videos to be securely stored entirely onchain while the NFT itself is minted on various chains, such as any EVM chain. Refer to the cross-chain NFT example on how to host metadata on the ICP for an ERC-721 NFT minted on an EVM chain.
ICP also supports dynamic NFTs that can be curated to evolve based on both data stored onchain or obtained through external APIs. NFT assets can be modified in real time by making external API requests using HTTPS outcalls.
ICP provides two standards for NFTs, ICRC-7 and ICRC-37. ICRC-7 is a base standard that intentionally excludes certain functions, while ICRC-37 is an extension of ICRC-7 that enables an approval workflow.
In the past, the standard DIP-721 was used for NFTs on ICP following the Ethereum ERC-721 standard. This standard has since been replaced by ICRC-7 and ICRC-37.
Minting NFTs
For developers seeking to store assets and mint NFTs directly on ICP, an NFT implementation typically encompasses three core functionalities:
A registry to monitor ownership and facilitate transfers.
A ledger or other form of transaction history.
The actual asset itself (in the case of digital assets).
NFT marketplaces and launchpads
Additionally, you have the option to utilize various platforms for minting, buying, or selling your NFTs, such as:
Next steps
Learn how to create an NFT collection on ICP.