Skip to content

コンテンツ識別子 (CID)

すべての IPFS ファイルが受け取る固有のフィンガープリント。

CID とは?

コンテンツ識別子 (CID) は、IPFS 上のデータを一意に識別する自己記述型のラベルです。ファイルの内容の暗号学的ハッシュと、使用されたハッシュアルゴリズムおよびエンコーディング形式のメタデータを組み合わせて導出されます。

bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

bafy で始まる CID(小さな単一ブロックコンテンツの場合は bafk)は、最新の自己記述型フォーマットである CIDv1 を使用しています。Qm で始まるレガシー CID は CIDv0(base58 エンコードの SHA-256)を使用しています — 引き続き有効かつ解決可能ですが、新規コンテンツのデフォルト出力ではなくなりました。

主要な特性

  • 決定性 — 同じファイルは常に同じ CID を生成します。同じ画像を2回アップロードしても、同じ識別子が得られます。
  • 一意性 — 1バイトの変更でもまったく異なる CID が生成されます。これにより CID は改ざん検出可能になります。
  • 自己検証 — ファイルを受け取った人は誰でもハッシュを再計算し、要求した CID と一致することを確認できます。
  • 不変性 — CID は常に同じコンテンツを指します。CID が解決する先を変更することはできません。

IPFS.NINJA での CID

アップロードしたすべてのファイルは API レスポンスで CID が返されます。以下に使用できます:

  • ゲートウェイ経由でファイルにアクセス:ipfs.ninja/ipfs/<CID>
  • ファイルメタデータを取得:GET /file/<CID>
  • オンチェーンでコンテンツを参照(NFT、スマートコントラクト)
  • 誰とでも共有 — コンテンツが一致するか検証可能

CID がアップロードのワークフローにどう組み込まれるかは、IPFS.NINJA の概要をご覧ください。CID を永続的にアクセス可能な状態に保つ方法は、CID によるコンテンツのピン留めで解説しています。

CIDv0 と CIDv1

特性CIDv0CIDv1
プレフィックスQm...bafy...(dag-pb、ディレクトリおよび複数チャンクファイル)、bafk...(raw、小さな単一ブロックコンテンツ)、その他コーデックごとに追加
ハッシュ関数SHA-256 のみ複数(SHA-256、Blake2b など)
エンコーディングBase58(大文字小文字混在)Multibase — デフォルトは base32(小文字、DNS セーフ)
自己記述型いいえはい(コーデック + ハッシュ情報を含む)
チャンカーレガシーデフォルトは 256 KiBIPIP-0499 準拠で 1 MiB
リーフエンコーディングdag-pb でラップ生バイト(raw-leaves=true

IPFS.NINJA が生成するもの

2026-07-13 以降に行われたアップロードおよびピン留めは、デフォルトで CIDv1 を返します:CIDv1 base32 エンコーディング、1 MiB チャンク、raw leaves — IPIP-0499 unixfs-v1-2025 プロファイルです。実際の影響:

  • 小さなファイル(1 MiB 以下)は bafk...(raw 単一ブロック CIDv1)として返されます
  • より大きなファイルやディレクトリは bafy...(dag-pb CIDv1)として返されます
  • 当サービス経由でアップロードされたファイルは、同じバイト列から最新のツール(Helia、最新版 Kubo、ipfs-car)が計算するのと同じ CID を取得します

下位互換性

以前のアップロードによるレガシーな Qm... CID も引き続き完全に解決可能です — ゲートウェイ、POST /pinGET /file/:cid、IPNS リゾルバー、その他すべてのエンドポイントは、両方の形式を無期限にサポートします。以前のアップロードによる Qm... CID をお持ちの場合でも、構築したものが動作しなくなることはありません。