Mint NFTs (CIP-68)
An overview of how to mint CIP-68 compliant NFTs and other native assets on Cardano using the Anvil API
What is CIP-68?
Cardano Improvement Proposal 68 (CIP-68) is a metadata standard that revolutionized how NFT metadata is managed on Cardano. It enabled truly updatable metadata after minting through a dual-token architecture, perfect for dynamic NFTs like game items, evolving collectibles, or interactive art.
Why CIP-68 Was Created
CIP-25 Limitations:
Metadata inaccessible to smart contracts (stored in transaction metadata).
Complex and high cost metadata updates requiring mint/burn cycles with double-mint periods.
Metadata resolution requires scanning blockchain history to find the "last minted transaction" for each token.
Permanent immutability once policy is time-locked.
CIP-68 Solution: A dual-token architecture separating metadata storage from ownership, enabling seamless updates, smart contract integration, and enhanced security through datum-based metadata storage. Unlike CIP-25, metadata updates remain possible even after the minting policy is time-locked, as updates are controlled by the reference token's spending script rather than the minting policy.
CIP-68 Trade-offs:
Higher initial minting costs (requires creating two tokens instead of one)
Increased complexity managing dual-token architecture, creating additional UTxO overhead for reference token storage.
How It Works
CIP-68 uses an innovative dual-token system where each NFT consists of two linked tokens:
Reference Token (Label 100): Stores the updatable metadata at a script address or Admin wallet
User Token (Label 222): Resides in the user's wallet and inherits metadata from the reference token
This separation allows metadata updates without affecting user ownership or requiring token transfers.
Validation Approaches: Native Scripts vs. Smart Contracts
CIP-68's updatable metadata is managed by a Reference Token, which can be secured in two ways:
Metadata-Manager Wallet with a Native Script: This approach uses a standard wallet and a native script to control the Reference Token. It's straightforward and low-cost, making it ideal for projects that don't need complex on-chain logic. The trade-off is that it relies on trusting the wallet owner to manage metadata updates and token supply correctly.
Smart Contract (Plutus/Aiken): This method uses a full smart contract to govern the Reference Token. While someone still needs to trigger updates, the smart contract validates critical aspects like supply limits and reference token to user token ratios on-chain, requiring less trust than the wallet approach. It enables complex rules for metadata updates, supply caps, and other on-chain logic, but is more complex and expensive to develop and interact with.
The choice between them depends on your project's need for trustless validation versus simplicity and cost-effectiveness. If you need custom smart contract development, or are not sure which option to choose, we recommend reaching out at [email protected].
Prerequisites
Before you start, make sure you have:
Anvil API key – Get one here
Cardano wallets – Use our wallet CLI to create them
Basic understanding of CIP-68's two token system. See CIP-68 Standard Reference
Choose Your Approach
CIP-68 offers two main validation approaches for securing reference tokens:
Choose your approach based on your specific needs:
Validation Logic Customization
Simple signature + timelock validation
Complex programmable business rules
Metadata Updates
Manual wallet-based updates
Automated rule-based validation
Development Complexity
Low - JSON configuration
High - Aiken Development
Cardano Transaction Costs
Lower
Higher (~2x ADA)
Use Cases
Simple collections, personal projects
Gaming, DeFi, enterprise applications
All Guides
Getting Started
Native Script MintingSmart Contract Guides
https://github.com/Cardano-Forge/anvil-api/blob/main/docs/guides/nft-and-ft/mint-nft-cip-68/smart-contract/logic.mdMint Examplehttps://github.com/Cardano-Forge/anvil-api/blob/main/docs/guides/nft-and-ft/mint-nft-cip-68/smart-contract/update-example.mdReferences & Further Reading
Official CIP Specifications
CIP-68: Datum Metadata Standard - The official specification for updatable NFT metadata
CIP-25: NFT Metadata Standard - Traditional NFT metadata standard
CIP-86: NFT Metadata Update Oracles - Extension for CIP-25 metadata updates
Last updated
Was this helpful?