ICRC-7
ICRC-7 defines a standard for non-fungible tokens (NFTs) on ICP and can be used to create a set of NFTs, also referred to as an NFT collection. It is a minimal standard and can be thought of as the equivalent of the ICRC-1 standard but for non-fungible tokens instead of fungible tokens. This base standard intentionally excludes some functions, such as:
Reliable transaction notifications for smart contracts.
A block structure and the interface for fetching blocks.
Pre-signed transactions.
ICRC-7 accounts have the same structure and follow the same overall principles as ICRC-1 accounts. ICRC-7 views the ICRC-1 Account
as a primary concept, meaning that operations like transfers always refer to the full account and not only the principal portion. Some methods include an extra optional from_subaccount
or spender_subaccount
parameter that, together with the caller, forms an account to perform the respective operation on. Leaving such a subaccount
parameter null
is executed the same as referring to the default subaccount comprised of all zeroes.
Token metadata
Available metadata entries for ICRC-7 tokens include:
icrc7:symbol
: TypeText
that defines the token's symbol, similar to a token's currency code.icrc7:name
: TypeText
that defines the name of the token.icrc7:description
: TypeText
that provides a description of the token.icrc7:logo
: TypeText
, an optional URL of the token's logo image.icrc7:total_supply
: TypeNat
: The current total number of tokens in existence.icrc7:supply_cap
: TypeNat
, an optional maximum supply of tokens, after which minting new tokens is not possible.
Additional technical metadata elements can be found in the ICRC-7 specification.