> For the complete documentation index, see [llms.txt](https://docs.chiliz.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chiliz.com/jp/kaihatsu/joukyu/nft/ipfs-hosting.md).

# NFT を IPFS でホスティングする

まだご存じない方のために説明すると、NFT を保有しているということは、その NFT のファイルそのものがブロックチェーン上にアップロードされていることを意味しません。\
むしろ、NFT は特定のトークンを含むブロックチェーンのブロックに対応します。このトークンには `tokenURI` と呼ばれる「ポインター」つまりリンクが格納されており、これにはメタデータファイルのオンラインアドレスが含まれます。そのメタデータファイル自体が、さらに別の URI を使ってメディアファイルを参照します。

ブロックチェーンはピアツーピアの性質を持つため、NFT ファイルとそのメタデータファイルを任意の Web ホスティングサービスに置くことはできません。あなたの `tokenURI` は、できる限り長く、できれば永久に、永続的（つまり「不変」）であり、アプリやマーケットプレイス間で移植可能である必要があります。

ここで IPFS が登場します。

## **IPFS について**

[IPFS](https://ipfs.tech/)（InterPlanetary File System）は、分散ネットワーク全体でデータをホスティングおよび共有することを目的とした分散型ファイルネットワークです。NFT プラットフォームは単一のサーバーに依存する代わりに IPFS からデータを取得でき、IPFS プロトコルによって、ホスティングされているすべてのファイルがローカルにあるかのように「感じられる」ようになります。

{% hint style="success" %}
**今すぐ IPFS について学ぶ必要がありますか？**

それは NFT をミントするために選択した方法によります。

* 素のコードを使う場合（[viem](https://viem.sh/) や [ethers](https://ethers.org/) など）：\
  **はい**、あらかじめ有効な `tokenURI`（例： `ipfs://.../metadata.json`）が必要です。
* [thirdweb](https://thirdweb.com/) などのダッシュボードを使う場合：\
  **いいえ**。IPFS へのアップロードは組み込まれています。既存の `ipfs://...` をお持ちの場合は、NFT のパラメーターに貼り付けることもできます。
* ほとんどの Web3 SDK を使う場合（[Rarible の Multichain SDK](https://docs.rarible.org/reference/getting-started) など）：\
  **はい**、URI が期待されます。一部のツールはアップロードを支援してくれるかもしれませんが、ほとんどはそうではありません。
  {% endhint %}

IPFS のウェブサイトには、[NFT のストレージに関するベストプラクティスを詳しく解説したページ](https://docs.ipfs.tech/how-to/best-practices-for-nft-data/#types-of-ipfs-links-and-when-to-use-them)があります。

## NFT アップロードの詳細

NFT をアップロードする際には、IPFS が生成してくれる Content Identifier（CID）に対して 2 つのアップロードを実行する必要があります。

* コンテンツそのもの。これに対して IPFS はホスティングされたファイルの IPFS URL を返します。
* メタデータファイル。これはメディアファイルの CID を参照し、そのファイルの IPFS URL を含んでいる必要があります。

どちらも同じ CID の下で IPFS にアップロードされます。

理想的には、これらすべてを手動で行わなくて済むように、ツールセットがこれを引き受けてくれます。

参考までに、最小限の `metadata.json` ファイルがどのようなものになるかを以下に示します。

```json
{ 
    "name": "Stadium Pass #25456456", 
    "description": "PSG supporter entry ticket", 
    "image": "ipfs:///filename.png",           // for static images only!
    // "animation_url": "ipfs:///filename.mp4" // for video and audio files.
    "attributes": [
    { 
        "trait_type": "Tier", 
        "value": "Gold" 
    }] 
}
```

NFT メタデータの構造についてさらに学ぶには（たとえば、画像には `image` を、動画には `animation_url` を使うべき理由など）、OpenSea のこのドキュメントを読むことをお勧めします。

{% embed url="<https://docs.opensea.io/docs/metadata-standards#metadata-structure>" %}

注意： *メタデータファイルをゼロから自分で書くことは想定されていません！*\
ツールセットが代わりに生成できるはずです。

{% hint style="success" %}
[自分自身の IPFS node を実行する](https://docs.ipfs.tech/how-to/command-line-quick-start/)こともできますし、[Pinata](https://pinata.cloud/) のような IPFS ホストにお金を払うこともできます。Pinata はあなたのニーズに十分かもしれない無料の料金プランを提供しています。

API 認証情報（API キー、API シークレット、JWT トークンで構成されます）と専用ゲートウェイのドメイン（たとえば `blue-genetic-quail-122.mypinata.cloud`）を取得するには、[Pinata のクイックスタートガイド](https://docs.pinata.cloud/quickstart)に従ってください。
{% endhint %}

このドキュメントは IPFS に関するすべてを説明することを目的としていないため、オンライン検索を通じてこのトピックを深く掘り下げることをお勧めします。まずは Pinata のこの解説から始めるとよいでしょう。

{% embed url="<https://docs.pinata.cloud/ipfs-101/how-does-ipfs-work-with-nfts>" %}

... または thirdweb のこのブログ投稿から始めることもできます。

{% embed url="<https://blog.thirdweb.com/guides/securing-pinning-your-nft-with-ipfs/>" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.chiliz.com/jp/kaihatsu/joukyu/nft/ipfs-hosting.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.
