CIP-68 Standard Reference
Detailed technical reference for the CIP-68 standard including token relationships, lifecycle workflows, datum structure, and implementation specifications for developers.
Last updated
Was this helpful?
Was this helpful?
{
"assetName": { "name": "mytoken", "format": "utf8", "label": 100 },
// Anvil converts this to: "000643b0" + hex("mytoken")
}{
// Customer wallet address receive any leftover UTxOs from the transaction.
"changeAddress": "addr_test1...",
// UTXOs from the customer wallet paying for fees (list of CBOR UTXOs)
"utxos": ["8282...", "8282..."],
"mint": [
{
// Reference Token - Label 100 -> Sent to Metadata Manager Wallet or Script Address
"version": "cip68",
//Name of the asset. Must be the same for both tokens
"assetName": { "name": "youruniquecip68asset", "format": "utf8", "label": 100 },
"metadata": {
"name": "Your NFT Name",
"image": "ipfs://your-image-hash",
"description": "Your NFT description",
"mediaType": "image/png"
},
"policyId": "8e024681ee83f54bd5f9a0334641...",
"quantity": 1,
"destAddress": "addr_test1..."
},
{
// User Token - Label 222 -> Sent to User Wallet
"version": "cip68",
// Asset name must be identical to the (100) token's assetName
"assetName": { "name": "youruniquecip68asset", "format": "utf8", "label": 222 },
"policyId": "8e024681ee83f54bd5f9a0334641...",
"quantity": 1,
"destAddress": "addr_test1..."
}
],
// The `preloadedScripts` array provides script data for minting authorization.
// - Native scripts: contains the actual native script
// - Plutus scripts: contains blueprint data (native script derived from blueprint)
// Optional but recommended for performance and latency. Required for new/unregistered scripts.
"preloadedScripts": [ /* ... script details ... */ ],
// The `scriptInteractions` array is ONLY required for smart contract validation.
// It is not used for the native script / Metadata-Manager Wallet approach.
// It is ONLY required for blueprints that are not registered yet.
// The full payload format is covered in the smart contract guide.
"scriptInteractions": [ /* ... validator, redeemer, datum ... */ ],
}