Non-fungible tokens (NFTs) are digital assets that represent unique items like artwork, collectibles, and in-game items. On Radix, NFTs are core primitives.
- Overview
- Implementation
- Properties
- Managing NFT Ownership
- Advanced NFT Features
- Use Cases
- Digital Art
- Identity and Access Management
- Ticketing
- Gaming
Overview
On smart contract platforms such as Ethereum, NFTs are typically implemented using complex token standards and contracts. In contrast, Radix recognizes NFTs as core primitives. This intuitive architecture simplifies NFT development and ownership, while unlocking advanced functionality through composability with other Radix components.
Implementation
NFTs on Radix are โresourceโ objects in Scrypto and natively understood by Radix's asset architecture. As such, they benefit from native accounting of token balances and direct account transfers that avoid the need for complex smart contract interactions.
Radix NFTs integrate with other Radix components for managing access control, royalties, decentralized governance, and other functionality.
Properties
NFT collections on Radix are defined in Scrypto as non-fungible resources with the following properties:
- Supply - The maximum number of NFTs that can be minted
- Authorization - Who is allowed to mint new NFTs
- Metadata schema - The structure of metadata attached to each NFT
- Transferability - Whether NFTs can be transferred between accounts
Once published to the network, NFTs can be minted by calling the resource's minting function. Each minted NFT receives a unique ID, which combined with the resource address provides a globally unique identifier.
Finally, newly minted NFTs are transferred to the recipient's account. The network natively tracks ownership balances of non-fungible resources. No custom token standards or separate smart contract logic is needed. Ownership can be programmatically restricted using mechanisms like soulbound NFTs.
Managing NFT Ownership
A key advantage of Radix for NFTs is how token ownership is natively tracked and managed at the protocol level. On Ethereum, NFT ownership exists only within smart contracts, which maintain their own separate ledger of who owns each NFT. To transfer an NFT, you must call the smart contract's functions. On Radix, NFT ownership is directly recorded in user accounts, just like token balances. No separate contract is required. This account-based ownership enables simple and secure NFT transfers. To send an NFT, you make an account-to-account transaction just like transferring XRD. Ownership is updated instantly.
NFT transfers can also be restricted. For example, by making an NFT resource "non-transferrable", it becomes soulbound to the original recipient's account. This is useful for NFT tickets, certificates, or identity badges. Built-in ownership tracking removes friction and vulnerabilities compared to smart contract approaches. All NFT balances are visible on-ledger, and it is easy to prove ownership or authorize use via transaction attachments.
Advanced access control features like transfer hooks and reclaimable NFTs can also be implemented in Scrypto.
Advanced NFT Features
While Radix provides core NFT functionality, Scrypto enables developers to build advanced features:
- NFTs can integrate with on-chain access-control badges that confer access to on-chain rewards or real world events.
- Minting rules and royalty structures for NFT collections can be governed on-chain via proposals and voting by DAO members.
- NFTs can interoperate with other Radix components such as a payment splitter for royalties or a lending platform for NFT collateralization.
- NFT gaming items can be interoperable between metaverse environments because items are native to the base layer.
Use Cases
The flexibility of Radix makes it well-suited for diverse NFT use cases, from art to identity management.
Digital Art
- Representing collectible artwork or music as verifiable digital assets
- Managing artwork ownership and provenance on-ledger
- Integrating with marketplaces, social platforms, and metaverse environments
- Automating royalties to artists on secondary sales via payment splitters
Identity and Access Management
- Soulbound NFTs as unforgeable credentials or badges
- Managing permissions to access apps, venues, gated content
- KYC and reputation systems based on NFT credentials
- Interoperability with Radix Execute for dynamic permissions
Ticketing
- Tokenizing event tickets and tracking resales
- Putting collectible memorabilia directly into fans' hands
- Coding specialized access like seating zones into NFT tickets
- Time-expiring tickets for conferences or transportation
Gaming
- In-game items and assets as user-owned NFTs rather than centralized game inventory
- Composability with DeFi for true in-game economies
- Metaverse interoperability of game items across worlds
- Player identities and profiles as soulbound NFTs