CIP-68

Datum Metadata Standard

NMKR Studio also supports NFT minting with the CIP-68 Metadata standard.

What is the CIP-68 Datum Metadata Standard?

CIP-68 proposes a metadata standard for assets on the Cardano blockchain, not limited to just NFTs but any asset class. It aims to address the limitations of a previous standard (CIP-0025) by introducing two assets: a reference NFT and a user token. The user token represents the actual asset in a user's wallet, and the reference NFT points to the metadata of the user token.

To classify tokens, CIP-68 introduces labels to identify their purpose. The use case of CIP-68 is to enable flexibility and innovation on Cardano. It allows developers to create assets with dynamic metadata, which can be updated over time. This flexibility opens possibilities for various use cases, including NFTs with changing properties or fractionalized NFTs.

In summary, CIP-68 enhances Cardano's capabilities by providing a standardized way to handle asset metadata, empowering developers to create diverse tokenized assets and applications.

Benefits of CIP-68

The CIP-68 metadata standard for Cardano tokens offers several benefits:

  1. Programmability: CIP-68 enables the creation of tokens with programmable metadata. This means that the metadata associated with a token can be updated and modified without the need to mint new tokens. This flexibility allows for the evolution and adaptation of tokens over time.

  2. Metadata Changes: With CIP-68, token metadata can be easily changed and updated. This is particularly useful for non-fungible tokens (NFTs) where the associated metadata, such as artwork or additional information, may need to be modified or enhanced.

  3. Contract-Friendly: The CIP-68 metadata standard is designed to be contract-friendly, meaning it aligns with the structure of other Cardano Improvement Proposals (CIPs) and follows a low-level representation of metadata. This makes it easier to integrate tokens with smart contracts and other applications on the Cardano blockchain.

  4. Asset Class Flexibility: While CIP-68 was initially developed for NFTs, it can be applied to any asset class on the Cardano blockchain. This means that the benefits of programmable metadata and easy updates extend beyond NFTs and can be utilized for various types of tokens.

  5. Advantages over Other Platforms: The CIP-68 metadata standard, along with other design choices in Cardano, provides advantages for Cardano native tokens compared to tokens on other blockchain platforms. These advantages include improved programmability, metadata flexibility, and integration with smart contracts.

Overall, the CIP-68 metadata standard enhances the functionality and versatility of Cardano tokens by enabling programmable metadata, easy metadata changes, and contract-friendly integration. These benefits make it a valuable standard for token creators and developers on the Cardano blockchain.

Workflow to mint and update CIP-68 Tokens

  1. The user-token goes to the purchaser and reflects the metadata of the reference token

  2. In the actual transaction where the reference token is sent to the smart contract, the inline datum provides the reference token's metadata.

  3. The NFT will be sent from the smart contract to the smart contract with the updated inline datum even though the metadata has changed.

A smart contract is required to keep the asset accessible for changes first to update NFTs in an automated way second to define who can update the NFT (Until we launch our own smart contracts we recommend Yepple for for CIP-68 smart contracts!) Technically you could also use a regular address, but then there is no way for an automation and only the one who holds the keys can update the token manually.

Enable CIP-68 in NMKR Studio

CIP-68 can be enabled when creating a new project in NMKR Studio. Simply Select CIP-68 instead of CIP-25 on the first tab of the project creation.

CIP-68 reference NFT address

For a specific user token there must exist exactly one reference NFT, this token should be received either in your own self-custody wallet or, for easier set-up in NMKR Studio, you can also select to create a managed wallet in the same process, to receive the reference NFT.

A simple Smart Contract from NMKR will be provided soon to further expand the CIP-68 capabilyties in NMKR Studio.

CIP-68 metadata template

Once CIP-68 is selected, the metadata template will adjust from CIP-25 to CIP-68. Please do not make any changes to the metadata template.

Example:

{
  "fields": [
    {
      "map": [
        {
          "k": {
            "bytes": "6e616d65"
          },
          "v": {
            "bytes": "3c61737365745f6e616d653e"
          }
        },
        {
          "k": {
            "bytes": "696d616765"
          },
          "v": {
            "bytes": "3c697066735f6c696e6b3e"
          }
        },
        {
          "k": {
            "bytes": "6d6564696174797065"
          },
          "v": {
            "bytes": "3c6d696d655f747970653e"
          }
        },
        {
          "k": {
            "bytes": "6d6564696154797065"
          },
          "v": {
            "bytes": "3c6d696d655f747970653e"
          }
        },
        {
          "k": {
            "bytes": "6465736372697074696f6e"
          },
          "v": {
            "bytes": "3c6465736372697074696f6e3e"
          }
        },
        {
          "k": {
            "bytes": "66696c6573"
          },
          "v": {
            "list": [
              {
                "map": [
                  {
                    "k": {
                      "bytes": "6d6564696174797065"
                    },
                    "v": {
                      "bytes": "3c6d696d655f747970653e"
                    }
                  },
                  {
                    "k": {
                      "bytes": "6e616d65"
                    },
                    "v": {
                      "bytes": "3c6d696d655f747970653e"
                    }
                  },
                  {
                    "k": {
                      "bytes": "737263"
                    },
                    "v": {
                      "bytes": "3c697066735f6c696e6b3e"
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    {
      "int": 1
    }
  ],
  "constructor": 0
}