# メタデータテンプレート

NMKR Studioでは、プロジェクトごとにメタデータテンプレートを指定することができます。

このメタデータテンプレートにはプレースホルダが含まれており、各トークンが提供するメタデータの実際の値に置き換えられます。つまり、このプロジェクトにアップロードされた各トークンは、メタデータテンプレートのメタデータ構造とプレースホルダを使用します。

NMKR Studioでは、プロジェクトのメタデータテンプレートの標準構造として、NFTメタデータ標準を定義する提案である[CIP-0025](https://developers.cardano.org/docs/governance/cardano-improvement-proposals/cip-0025/)を使用しています。[トークン固有のメタデータにも](https://docs.nmkr.io/nmkr-studio/token/metadata)この構造を使用することが重要です。

{% hint style="warning" %}
よくある間違いは、Cardano固有の文字数制限を超えてしまうことです。例えばasset\_nameは32文字までしか使用できず、特殊文字は使用できません。フィールドの標準的な文字数制は、空白を含めて63文字です。より長いテキストを追加したい場合は、[配列を使用して](https://docs.nmkr.io/nmkr-studio/project/metadata-template#description-and-extended-description-with-more-than-63-characters)ください。
{% endhint %}

{% embed url="<https://developers.cardano.org/docs/governance/cardano-improvement-proposals/cip-0025/>" %}

<figure><img src="/files/Nn3TXflBFs1s8w7o9tZh" alt=""><figcaption></figcaption></figure>

#### メタデータテンプレート

標準メタデータは、プロジェクト設定の[メタデータ編集タブに](https://docs.nmkr.io/nmkr-studio/project/edit#edit-metadata-template)あります。

<figure><img src="/files/RxkrVS1dnBixHj4zMPvw" alt=""><figcaption><p>プロジェクトのメタデータタブには、メタデータテンプレートが表示される</p></figcaption></figure>

\
プレースホルダーはその書き方で識別可能で、<>で囲まれていれば何でもプレースホルダーになります。

```json
{
  "721": {
    "<policy_id>": {
      "<asset_name>": {
        "name": "<display_name>",
        "image": "<ipfs_link>",
        "mediaType": "<mime_type>",
        "description": "<description>",
        "files": [
          {
            "name": "<display_name>",
            "mediaType": "<mime_type>",
            "src": "<ipfs_link>"
          }
        ]
      }
    },
    "version": "1.0"
  }
}
```

このメタデータテンプレートの基本構造を維持することが非常に重要です。メタデータの構造をチェックするのに非常に便利なツールが、[JSON Editor Online](https://jsoneditoronline.org/)です。<br>

{% embed url="<https://jsoneditoronline.org/>" %}

{% hint style="info" %}
また、値だけでなく、文字列（" "）も使用するようにしてください。例："traitcount"："12"は正しい。「traitcount：12は正しくありません。
{% endhint %}

#### ファイルのセクション

メタデータテンプレートのファイルセクションは、常にすべてのプレースホルダーをトークンにアップロードされたファイルの特定の値に置き換えます。複数の[サブファイルが](https://docs.nmkr.io/nmkr-studio/token/upload#subfiles)ある場合、このファイルセクションはアップロードされたサブファイルごとに自動的に増殖します。したがって、ファイルセクションとそのプレースホルダには触れないことをお勧めします。

```json
        "files": [
          {
            "name": "<display_name>",
            "mediaType": "<mime_type>",
            "src": "<ipfs_link>"
          }
        ]
```

**メタデータテンプレートにファイルを直接追加**

すべてのトークンが同一の[サブファイルを](https://docs.nmkr.io/nmkr-studio/token/upload#subfiles)共有するようなプロジェクトでは、各単一トークンにサブファイルとしてアップロードする代わりに、メタデータテンプレートに直接追加することが理にかなっています。

そのためには、テストプロジェクトに必要なファイルをアップロードして、ファイルのIPFSハッシュを受け取ります。次に、[トークンのファイル・タブ](https://docs.nmkr.io/nmkr-studio/token/edit#files-tab)または[Manage NFTsタブの](https://docs.nmkr.io/nmkr-studio/token/manage-tokens-tab)詳細[カラムからIPFSHハッシュをコピーして](https://docs.nmkr.io/nmkr-studio/token/edit#files-tab)、以下のようにメタデータテンプレートに追加します。

```json
        "files": [
          {
            "name": "<display_name>",
            "mediaType": "<mime_type>",
            "src": "<ipfs_link>"
          },
          {
            "name": "subfile",
            "mediaType": "<mime_type>",
            "src": "ipfs://QmZNqgUHhGukXD27pAZtZE5BEkx6VXB1AhQVmK55QCd31y" 
          }
        ]

複数のサブファイルをテンプレートに直接追加するには、各ファイルの間に "," を追加します。
```

#### プレースホルダーとフィールド

メタデータ内のすべてのフィールドは、フィールドの名前 (例: 「name」) とプレースホルダー (例: 「\<display\_name>」) で構成されます。\<placeholders> は、その名前が示すとおり、各固有の NFT によって指定される値の場所を保持するためのものです。標準のメタデータ テンプレートで既に指定されているプレースホルダーを使用することをお勧めしますが、[独自のフィールドとプレースホルダーを指定する](https://docs.nmkr.io/nmkr-studio/project/metadata-template#undefined)こともできます。

**policy\_id**

このフィールドのプレースホルダ \<policy\_id> はプロジェクトのポリシーIDに置き換わります。メタデータのテンプレートと[ トークンのユニークなメタデータに](https://docs.nmkr.io/nmkr-studio/token/metadata)このフィールドを保持することを強くお勧めします。

**asset\_name**

この\<asset\_name>プレースホルダはチェーン上のアセット名となり、manage NFTsタブに表示されるトークンのアセット名と一致する必要があります。このプレースホルダはメタデータテンプレートと[トークンのユニークなメタデータに](https://docs.nmkr.io/nmkr-studio/token/metadata)保持することを強くお勧めします。

{% hint style="info" %}
最近のNMKR Studioのアップデート以降、asset\_nameには特殊文字やスペースを含めることができるようになりました。
{% endhint %}

{% hint style="warning" %}
トークンのレアリティの番号付けは、トークンの番号とは無関係にすることをお勧めします。

このような場合は、アセットの[asset\_name / token nameを](https://docs.nmkr.io/nmkr-studio/project/metadata-template#asset_name)[display\_name](https://docs.nmkr.io/nmkr-studio/project/metadata-template#display_name)と関連付けず、ランダムに生成することをお勧めします。

トークンの表示名を上書きするには、[placeholder.csvメソッドを](https://docs.nmkr.io/nmkr-studio/project/metadata-template#bulk-upload-metadata-with-placeholder.csv)使用してください。

その理由は簡単です。プロジェクトで[ MultiSig Paymentを](https://docs.nmkr.io/nmkr-studio/set-up-sales/nmkr-pay/multisig-payment)使用する場合、買い手が支払い取引に署名するときに、（[ display\_nameではなく](https://docs.nmkr.io/nmkr-studio/project/metadata-template#display_name)）[ asset\_nameが](https://docs.nmkr.io/nmkr-studio/project/metadata-template#asset_name)取引に表示される可能性があるからです。そのため、買い手は「レアでない/一般的でない番号」が表示された場合、取引をキャンセルして最初からやり直すことができます。
{% endhint %}

**display\_name**

\<display\_name>が指定されると、pool.pm、セカンダリーマーケット、その他のウェブサイト上で、トークンの[asset\_nameの](https://docs.nmkr.io/nmkr-studio/project/metadata-template#asset_name)代わりに表示されます。この名前はホルダーがトークンを識別する方法です。特殊文字を含めて63文字まで保持できます。

「トークン#124」のような名前にしたい場合は、ここにそのように記述します。

**image**

このフィールドの\<ipfs\_link>プレースホルダは、トークンのIPFSハッシュに置き換えられます。

あなたのトークンがメインファイルとして画像を持っているだけでなく、画像もサブファイルとして持っている場合、このフィールドにはプロジェクトのサムネイルを指定し、ここに画像やアニメーションGIFの小さいサイズのバージョンを追加することができます。

**mediaType**

このフィールドはサムネイル画像のファイル形式を定義します。サブファイルの下のファイルセクションで使われた場合、\<mime\_type>プレースホルダは自動的にファイルのファイル形式に置き換わります。

**src**

"src"フィールドの\<ipfs\_link>プレースホルダーはファイルセクションに属し、アップロードされたすべての[サブ](https://docs.nmkr.io/nmkr-studio/token/upload#subfiles)ファイルのipfsハッシュに置き換えられます。

**detail data**

詳細データフィールドは、[サブ](https://docs.nmkr.io/nmkr-studio/token/upload#subfiles)ファイルに追加の詳細を追加したい場合に指定できます。

これらは、[トークンを編集またはアップロードするときにファイルタブで](https://docs.nmkr.io/nmkr-studio/token/edit#files-tab)指定するか、[カスタムメタデータで](https://docs.nmkr.io/nmkr-studio/token/metadata#token-specific-metadata)直接指定することができます。

```json
"detaildata": "<detail_data>"
```

**63文字以上の説明および拡張説明**

配列を使用せずに説明文に追加できるのは63文字までです。

より長い説明を追加したい場合は、配列メソッドを使用してテキストを複数行に分割してください：

```json
        "description": [
          "text part abc...",
         "...def...",
          "...xyz"
        ],
```

#### **カスタムプレースホルダー**

カスタムプレースホルダは、いわゆるトークン特性やトークン固有の値を追加するのに非常に便利です。

固有のプレースホルダを指定するには、メタデータテンプレートにカスタムフィールドを追加する必要があります。

メタデータコードの "description" 行の下に追加することをお勧めします。

カスタムフィールドを追加するには、カスタムフィールドに "name" を付け、次のように\<placeholder> を指定します:<br>

> ```json
> "body": "<body>",
>
> or
>
> "background": "<background>",
> ```

メタデータテンプレートでカスタムフィールドを指定した後、[ トークン固有のメタデータで](https://docs.nmkr.io/nmkr-studio/token/metadata)値を与えます。

**スタックに名前を付けるためのカスタム・プレースホルダ(pool.pm)**

Pool.pmはコレクションのNFTをスタックします。このスタックに名前を付けたい場合は、次のようなカスタムフィールドを使用できます：

```json
"collection": "<collection>",
"artist": "<artist>",
"project": "<project>",
```

しかし、もしプロジェクトが同じスタック名を共有するのであれば、プレースホルダーを使わずに（<>を削除して）、ハードな値を入れたいでしょう：

```json
"collection": "My Collection",
"artist": "The Artist",
"project": "The Project",
```

これらのカスタムフィールドがメタデータに与えられていない場合、pool.pmはトークンの[説明](https://docs.nmkr.io/nmkr-studio/project/metadata-template#description-and-extended-description-with-more-than-63-characters)または[display\_names](https://docs.nmkr.io/nmkr-studio/project/metadata-template#display_name)(与えられていない場合は[ asset\_name](https://docs.nmkr.io/nmkr-studio/project/metadata-template#asset_name)) のシーケンスから名前を作成します。

**メタデータ内のリンク**

リンクは、カスタムフィールドを使ってメタデータに直接簡単に追加できます。

```
"website": "https://nmkr.io",
```

また、メタデータにhttps//リンクを使用する場合は、1行63文字という制限を守ってください。以下のようなリンクを配列で追加してください。

```
        "download": [
          "https://drive.google.com/file/d/1CVmtR5VCHWENY",
          "GV-5OiuKGkAXsdmhGDA7p/view?usp=sharing"
        ],
```

リンク全体を表示せずにフィールド名にリンクを追加するには、以下の形式を使用してください。

```
          "links": {
            "website": "https://website.com/"
          },
```

もちろん、この形式は配列と組み合わせることもできます。

```
        "links": {
          "download": [
            "https://download.com/",
            "xyzabc..."
          ]
        },
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nmkr.io/jp/nmkr-studio/purojekuto/metadtatenpurto.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
