# CIP-68

NMKR Studioは、[CIP-68メタデータ規格による](https://cips.cardano.org/cips/cip68/)NFTミントもサポートしています。

<br>

#### CIP-68データ・メタデータ規格とは？

CIP-68はCardanoブロックチェーン上の資産に関するメタデータの標準を提案するもので、NFTに限らずあらゆる資産クラスに対応します。CIP-68は、参照NFTとユーザートークンという2つの資産を導入することにより、以前の標準[（CIP-0025](https://docs.nmkr.io/nmkr-studio/token/metadata#metadata-structure)）の限界に対処することを目的としています。ユーザートークンはユーザのウォレット内の実際の資産を表し、参照NFTはユーザートークンのメタデータを指します。

トークンを分類するため、CIP-68はトークンの目的を識別するラベルを導入しています。CIP-68のユースケースは、Cardanoの柔軟性とイノベーションを可能にすることです。これにより、開発者は動的なメタデータを持つ資産を作成することができ、時間の経過とともに更新することが可能になります。この柔軟性により、特性が変化するNFTや分数化されたNFTなど、様々なユースケースの可能性が広がります。

まとめると、CIP-68は資産のメタデータを扱う標準化された方法を提供することでCardanoの機能を強化し、開発者が多様なトークン化資産やアプリケーションを作成できるようにします。

#### CIP-68のメリット

CardanoトークンのCIP-68メタデータ標準にはいくつかのメリットがあります：

1. プログラマビリティ： CIP-68は、プログラム可能なメタデータを持つトークンの作成を可能にします。これは、新しいトークンをミントする必要なく、トークンに関連するメタデータを更新および修正できることを意味します。この柔軟性により、時間の経過とともにトークンを進化させ、適応させることができます。
2. メタデータの変更： CIP-68では、トークンのメタデータを簡単に変更・更新できます。これは、アートワークや追加情報など、関連するメタデータを変更または拡張する必要がある代替可能トークン（NFT）にとって特に有用です。
3. コントラクトフレンドリー：CIP-68メタデータ標準はコントラクトフレンドリーに設計されています。つまり、他のCIP（Cardano Improvement Proposals）の構造と一致し、メタデータの低レベル表現に従っています。これにより、トークンをCardanoブロックチェーン上のスマートコントラクトやその他のアプリケーションと統合することが容易になります。
4. 資産クラスの柔軟性： CIP-68は当初NFT向けに開発されましたが、Cardanoブロックチェーン上のあらゆる資産クラスに適用できます。つまり、プログラム可能なメタデータと容易な更新のメリットはNFTにとどまらず、さまざまな種類のトークンに活用できます。
5. 他のプラットフォームに対する優位性 CIP-68メタデータ標準は、Cardanoのその他の設計上の選択とともに、他のブロックチェーンプラットフォーム上のトークンと比較してCardanoネイティブトークンに利点をもたらします。これらのメリットには、プログラマビリティの向上、メタデータの柔軟性、スマートコントラクトとの統合などがあります。

全体的に見て、CIP-68メタデータ標準は、プログラム可能なメタデータ、容易なメタデータの変更、コントラクトフレンドリーな統合を可能にすることで、Cardanoトークンの機能性と汎用性を高めます。これらのメリットにより、CIP-68はCardanoブロックチェーンのトークン作成者や開発者にとって価値ある標準となっています。

#### CIP-68トークンのミントと更新のワークフロー

1. ユーザートークンは購入者に送られ、参照トークンのメタデータを反映します。
2. 参照トークンがスマートコントラクトに送信される実際の取引では、インラインデータが参照トークンのメタデータを提供します。
3. NFTはスマートコントラクトからスマートコントラクトに送信され、メタデータが変更されても、更新されたインラインデータを使用します。

{% hint style="warning" %}
スマートコントラクトは、資産の変更にアクセスし続けるために必要です。第一に、自動化された方法でNFTを更新するため、第二に、NFTを更新できる人を定義するためです（独自のスマートコントラクトをローンチするまで、CIP-68スマートコントラクトには[Yepple](https://blockchain.yepple.io/)をお勧めします！）。<br>

技術的には、通常のアドレスを使用することもできますが、その場合は自動化の方法がなく、鍵を保持する人だけがトークンをマニュアルで更新することができます。

{% endhint %}

NMKR StudioでCIP-68を有効にする

<figure><img src="https://content.gitbook.com/content/ZsvBdOVXa49gx1luHNu8/blobs/su1fLfsJYel3ye8WlpBT/cip-68.gif" alt=""><figcaption></figcaption></figure>

CIP-68は、NMKR Studioで新規プロジェクトを作成する際に有効にすることができます。

プロジェクト作成の最初のタブで、CIP-25の代わりにCIP-68を選択するだけです。

**CIP-68参照NFTアドレス**

特定のユーザートークンには参照NFTが1つだけ存在する必要があり、このトークンは自分のセルフカストディウォレットで受け取るか、NMKR Studioでのセットアップを簡単にするために、同じプロセスで管理ウォレットを作成して参照NFTを受け取ることもできます。

{% hint style="info" %}
NMKRからのシンプルなスマートコントラクトは、NMKR StudioのCIP-68機能をさらに拡張するために近日中に提供される予定です。
{% endhint %}

#### CIP-68メタデータテンプレート<br>

CIP-68を選択すると、メタデータテンプレートはCIP-25からCIP-68に調整されます。

メタデータのテンプレートは変更しないでください。

**例：**

```
{
  "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
}
```
