> For the complete documentation index, see [llms.txt](https://docs.nmkr.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nmkr.io/jp/nmkr-studio/purojekuto/metadtatenpurto.md).

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

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..."
          ]
        },
```
