Skip to main content
This page compares the available standards for each layer of the NFT protocol on TON. The protocol has two layers — Collection and Item — and you can mix standards between layers since they are independent of each other.

Collection

Short overview:
  • Default Collection: canonical implementation.
  • cNFT (compressed NFT): optimized for mass distribution.

cNFT

A cNFT (compressed NFT) combines a standard NFT with an airdrop‑style distribution, optimized for large distributions and shifting minting costs from the creator to end users via Merkle‑proof based self‑deployment. NFT Items uses instead of airdrop markers.

Additional: Royalty

Royalty is defined at the collection level and exposed via get_royalty_params (TEP‑66). Any collection implementation can follow this model. Marketplaces can rely on this model and pay royalties to the collection creator regardless of how the collection was deployed.

Item

Short overview:
  • Default Item: fully transferable NFT item that implements the standard transfer operation.
  • SBT (Soulbound Token): a non‑transferable NFT bound to a specific owner by design.

SBT

An SBT inherits the uniqueness and metadata model of NFTs but disables transfer operations, binding the token permanently to the recipient’s address after mint. This makes SBTs well‑suited for identity and credentials: attendance records, participation proofs, and non‑transferable achievements. It also has an on-chain API to prove ownership of an SBT item.

Single NFT (no collection)

A Single NFT is an item contract deployed without an associated collection. It keeps the same ownership semantics but omits shared collection metadata and indexing.
  • When to use: one‑off assets, experimental pieces, or cases where collection‑level coordination is unnecessary.
  • Metadata: stored entirely on the item.
  • Discoverability: there is no collection index; external indexers or explicit links are used to surface the item.
  • Trade‑offs: simpler setup but fewer shared features (no collection‑wide royalty/config, no batch queries by index).