暗号資産を購入
市場
現物
先物取引BTC
MEXC Earn
イベントセンター
報酬ハブ
もっと見る
手数料0祭
ERC-721: ERC-721とは?ERC-721は、一般にNFTと呼ばれる非代替性トークンを作成・管理するためのEthereumトークン規格です。ERC-721の各トークンには固有のトークンIDがあり、同じスマートコントラクトで管理されるほかのトークンと区別できます。公式のERC-721仕様では、所有権の追跡、トークンの移転、ほかのアドレスにNFTの管理を許可するための標準ルールが定められています。ERC-72ERC-721: ERC-721とは?ERC-721は、一般にNFTと呼ばれる非代替性トークンを作成・管理するためのEthereumトークン規格です。ERC-721の各トークンには固有のトークンIDがあり、同じスマートコントラクトで管理されるほかのトークンと区別できます。公式のERC-721仕様では、所有権の追跡、トークンの移転、ほかのアドレスにNFTの管理を許可するための標準ルールが定められています。ERC-72

ERC-721

2026/10/13 15:31
#Intermediate
Humanity
H$0.05763+3.31%
SynFutures
F$0.003116+4.95%
PX
PX$0.0112+0.90%
AINFT
NFT$0.0000002367+0.08%
SPACE ID
ID$0.032+1.55%

ERC-721とは?

ERC-721は、一般にNFTと呼ばれる非代替性トークンを作成・管理するためのEthereumトークン規格です。

ERC-721の各トークンには固有のトークンIDがあり、同じスマートコントラクトで管理されるほかのトークンと区別できます。

公式のERC-721仕様では、所有権の追跡、トークンの移転、ほかのアドレスにNFTの管理を許可するための標準ルールが定められています。

ERC-721は、Final Ethereum Request for Comments規格に分類されています。

個別に識別・追跡する必要がある資産を、代替可能トークンの規格では正確に表現できないことから作られました。

ERC-721トークンは、デジタルコレクティブル、ゲームアイテム、会員資格、仮想不動産、イベントチケット、金融ポジション、ドメインに類似した資産、または実物に関連する記録などを表すことができます。

この規格はブロックチェーン上の所有権と移転の挙動を定めますが、著作権、法的所有権、真正性、金融的価値、外部資産に対する権利を自動的に確立するものではありません。

ERCとは?

ERCは「Ethereum Request for Comments」の略です。

ERCは、Ethereumエコシステム内の相互運用性を高めるために、アプリケーションやスマートコントラクトが従うことのできる技術規格を定めます。

ERC-721は、非代替性トークン規格に割り当てられた識別番号です。

この番号は、トークンの供給量、価格、ブロックチェーンアドレス、公開日を示すものではありません。

ERC-721を実装するコントラクトは、必須の挙動が規格に準拠している限り、任意の拡張機能やカスタム関数を追加できます。

ERC-721が作られた理由

代替可能資産では、通常、同じ資産の各単位が同じ役割を持つため、互いに交換できます。

非代替性資産は、各単位の特性、履歴、希少性、権利、価値が異なる場合があるため、個別に追跡する必要があります。

ERC-721は、ウォレットやアプリケーションが各固有トークンの所有者を特定するための共通の方法を提供します。

また、移転、承認、オペレーター権限、所有権に関するイベントログも標準化します。

共通規格がなければ、NFTコントラクトごとに異なる連携方法が必要になる可能性があります。

共通の関数により、汎用ウォレット、ブロックチェーンエクスプローラー、インデクサー、ゲーム、レンディングプロトコルなど、さまざまな暗号資産アプリケーションが多くのNFTコレクションと連携できます。

ERC-721の仕組み

ERC-721スマートコントラクトは、有効な各トークンIDに対応する所有者を保存または計算します。

また、コレクション内で各アドレスが保有するNFTの数も追跡します。

権限のある移転が行われると、コントラクトは送信者から所有権を取り除き、受取人にトークンIDを割り当てます。

コントラクトは標準化された

Transfer
イベントを発行し、外部アプリケーションがこの変更を確認できるようにします。

所有者は、特定のNFTを移転する権限を1つのアドレスに付与することも、同じコントラクト内で所有するすべてのNFTを管理するオペレーターを承認することもできます。

すべての移転と承認は、デプロイ済みスマートコントラクトに記述された認可ルールに従う必要があります。

Ethereumノードはトランザクションを実行し、結果として生じる所有権の状態がコントラクトとプロトコルのルールに従っているかを検証します。

トークンIDとは?

トークンIDは、ERC-721コントラクト内の1つのNFTを一意に識別する符号なし整数です。

同じトークンIDが複数の異なるコントラクトに存在しても、同じ資産を表すとは限りません。

したがって、NFTはブロックチェーンネットワーク、コントラクトアドレス、トークンIDの組み合わせで識別されます。

たとえば、あるコントラクトのトークンID 50は、別のコントラクトのトークンID 50とは無関係です。

トークンIDは、必ずしも0から始まる必要も、単純な連番である必要もありません。

コレクションは、連番のID、ランダムに割り当てたID、エンコードされた識別子、またはコントラクトがサポートする別の方式を使用できます。

指定した範囲内のすべての番号が既存のNFTを表すと想定せず、アプリケーションはコントラクトに問い合わせる必要があります。

ERC-721が非代替性である理由

ERC-721の各トークンは、個別のブロックチェーンオブジェクトとして追跡されます。

同じコレクションの2つのNFTでも、メタデータ、履歴、特性、希少性、市場価値が異なる場合があります。

あるトークンIDを所有していても、別のトークンIDの所有権は得られません。

標準的なERC-721トークンは、小数単位ではなく、1つの完全なトークンとして移転されます。

経済的な所有権を分割するには、ERC-721のコア規格とは別のスマートコントラクトまたはトークン構造が必要です。

2つのNFTが非代替性であっても、別々のトークンIDが類似または同一のメタデータを参照する場合があるため、視覚的な内容が異なるとは限りません。

ERC-721の主な関数

コア規格には、所有権の確認、NFTの移転、移転権限の管理を行う関数が含まれています。

必須関数は、

balanceOf
、
ownerOf
、
transferFrom
、2種類の
safeTransferFrom
、
approve
、
getApproved
、
setApprovalForAll
、
isApprovedForAll
です。

ERC-721はERC-165によるインターフェース検出にも対応します。

この規格は、公開ミント関数、公開バーン関数、販売方式、ロイヤリティ制度、最大供給量、固定されたメタデータポリシーを必須としていません。

これらの機能は、個別の実装または別の拡張規格によって決まります。

balanceOf関数

balanceOf
関数は、1つのERC-721コントラクト内でアドレスが所有するNFTの数を返します。

あるアドレスが1つのコレクションからトークンID 8、19、250を所有している場合、残高は3です。

返される値から、そのアドレスが所有するトークンIDを特定することはできません。

この関数は、NFTの市場価値も示しません。

規格では、ゼロアドレスへの残高照会は失敗する必要があります。

トークンの完全な一覧が必要なアプリケーションは、イベントのインデックス化または任意の列挙拡張を利用できます。

ownerOf関数

ownerOf
関数は、特定のトークンIDの現在の所有者として記録されているアドレスを返します。

存在しない、または無効なトークンに対する照会は失敗する必要があります。

有効なトークンの所有者アドレスにゼロアドレスを指定することはできません。

ownerOf
が返すアドレスは、コントラクトで定義されたコアのオンチェーン所有権と移転権限を持ちます。

このブロックチェーン上の記録だけで、著作権、商標、実物資産、契約上の利益の所有権が自動的に証明されるわけではありません。

外部の権利は、プロジェクトの法的条件と適用法に基づいて確立する必要があります。

transferFrom関数

transferFrom
関数は、NFTを現在の所有者から別のアドレスに移転します。

呼び出し元は、所有者、当該トークンの承認済みアドレス、または所有者が承認したオペレーターでなければなりません。

指定された送信者は、コントラクトに記録された現在の所有者と一致する必要があります。

受取人にゼロアドレスを指定することはできません。

この関数は、受取先のスマートコントラクトがNFTを管理する方法を知っているかどうかを確認しません。

transferFrom
で互換性のないコントラクトに移転されたNFTは、アクセスできなくなる可能性があります。

受取先がコントラクトの場合は、一般に安全な移転が望ましい方法です。

safeTransferFrom関数

ERC-721には、2種類の

safeTransferFrom
関数があります。

一方は送信者、受取人、トークンIDを受け取ります。

もう一方は、アプリケーション固有のデータを含むbytesフィールドも受け取ります。

どちらも標準的な所有権と権限の確認を行います。

受取人がスマートコントラクトの場合、NFTコントラクトは受取人の

onERC721Received
関数を呼び出します。

受取人は指定されたセレクターを返す必要があり、返さなければ移転全体が取り消されます。

この確認により、NFTを正しく受け取れないコントラクトへ誤って送信する可能性を抑えられます。

ただし、受取人が安全であることや、後でNFTを引き出せることを保証するものではありません。

ERC-721レシーバーとは?

ERC-721レシーバーとは、

onERC721Received
を実装したスマートコントラクトです。

コールバックは、オペレーター、以前の所有者、トークンID、任意の付属データに関する情報を受け取ります。

互換性のあるレシーバーは、通常

0x150b7a02
で表される想定セレクターを返します。

誤った値を返した場合やコールバックが取り消された場合、安全な移転は失敗します。

最新のERC-721実装ドキュメントには、NFTを受け取る必要があるコントラクト向けのレシーバーインターフェースと基本的なレシーバーユーティリティが含まれています。

レシーバーは、入金を記録したり特典を付与したりする前に、コールバックを呼び出したNFTコントラクトを確認する必要があります。

ERC-721の承認

ERC-721の承認を利用すると、NFTの所有者は所有権をすぐに移転することなく、移転権限を委任できます。

トークン単位の承認は、1つのトークンIDに適用されます。

オペレーター承認は、同じコントラクト内で1つのアドレスが所有するすべてのNFTに適用されます。

承認はオンチェーンに記録され、有効な間は所有者から追加の署名を得なくても利用できます。

ユーザーはNFTの承認リクエストを、慎重に扱うべき金融上の権限として認識する必要があります。

信頼できないアドレスを承認すると、承認先が価値のあるNFTを移転できる可能性があります。

approve関数

approve
関数は、特定のトークンIDを移転する権限を1つのアドレスに付与します。

通常、所有者またはコレクション全体の承認を受けたオペレーターがこの権限を付与できます。

承認されたアドレスがNFTの所有者になるわけではありません。

NFTが移転されると、トークン単位の承認は解除されます。

承認先にゼロアドレスを設定することでも承認を解除できます。

所有者はトランザクションに署名する前に、承認先のアドレスと対象のトークンIDを確認する必要があります。

getApproved関数

getApproved
関数は、有効なNFTに対するトークン単位の承認を受けたアドレスを返します。

トークン単位の承認がない場合、通常はゼロアドレスを返します。

返り値には、コレクション全体に適用されるオペレーター権限は含まれません。

アカウントがNFTを移転できるか確認するアプリケーションは、

isApprovedForAll
も考慮する必要があります。

setApprovalForAll関数

setApprovalForAll
関数は、コレクション全体に対するオペレーター権限を付与または取り消します。

承認されたオペレーターは、所有者がそのコントラクト内で現在保有するすべてのNFTを移転できます。

この承認は、所有者が後から同じコレクションから受け取るNFTにも適用される場合があります。

複数のNFTを管理する必要があるアプリケーションでは、この権限がよく使われます。

1つのトークンIDだけを承認する場合と比べ、権限の範囲は大幅に広くなります。

悪意のあるオペレーターは、承認が有効な間に対象となるNFTをすべて持ち去る可能性があります。

ウォレットをウェブサイトから切断しても、ブロックチェーンに記録された承認は取り消されません。

isApprovedForAll関数

isApprovedForAll
関数は、特定のコレクション内で所有者のNFTを管理する権限がオペレーターにあるかどうかを示します。

この関数は

true
または
false
を返します。

1つのERC-721コントラクトでの承認は、別のコントラクトのNFTに対する権限を付与しません。

ユーザーは有効なオペレーター権限を確認し、不要になったアクセス権を取り消す必要があります。

ERC-721のイベント

ERC-721は、

Transfer
、
Approval
、
ApprovalForAll
イベントを定義しています。

これらのイベントログにより、ウォレット、ブロックチェーンエクスプローラー、データインデクサー、アプリケーションはNFTの活動を追跡できます。

イベントは、スマートコントラクトの実行が成功した後、トランザクションレシートに保存されます。

イベントは、発行元のコントラクトを踏まえて解釈する必要があります。

悪意のあるコントラクトでも、正規のNFTコレクションではないのに、見慣れたイベント名を発行できます。

Transferイベント

Transfer
イベントは、以前の所有者、新しい所有者、トークンIDを記録します。

通常のNFT移転では、送信者と受取人のアドレスはいずれもゼロアドレスではありません。

ミントは一般に、ゼロアドレスから最初の所有者への移転として表されます。

バーンは一般に、所有者からゼロアドレスへの移転として表されます。

ミントイベントが存在しても、供給量が限定されていることや、追加トークンを作成できないことの証明にはなりません。

アプリケーションはTransferイベントをインデックス化することで、NFTの所有履歴の多くを再構築できます。

ApprovalイベントとApprovalForAllイベント

Approval
イベントは、1つのNFTに対する権限を記録します。

ApprovalForAll
イベントは、コレクション全体に対するオペレーター権限が有効または無効になったことを記録します。

これらのイベントはNFTの所有権の変更を示すものではありません。

承認を監視することで、ユーザーやセキュリティシステムは予期しない権限を検出しやすくなります。

承認を取り消しても、その承認が有効な間に完了した移転は元に戻りません。

ERC-165によるインターフェース検出

ERC-721に準拠するすべてのコントラクトは、ERC-165によるインターフェース検出に対応する必要があります。

ERC-165規格は、

supportsInterface
関数を定義しています。

ERC-721のコアインターフェースIDは

0x80ac58cd
です。

準拠するコントラクトは、この識別子をサポートしているか尋ねられた際に

true
を返す必要があります。

任意の拡張機能には、それぞれ異なるインターフェースIDがあります。

インターフェース検出により、アプリケーションはサポートされていない関数の呼び出しを避けやすくなります。

コントラクトがサポートを表明しても、その実装が正確または安全であることの証明にはなりません。

ERC-721のメタデータ

ERC-721には任意のメタデータ拡張があります。

この拡張は、

name
、
symbol
、
tokenURI
関数を追加します。

そのERC-165インターフェースIDは

0x5b5e139f
です。

コレクション名とシンボルはコントラクト開発者が決めるもので、固有であるとは限りません。

名前やシンボルがコピーされていても、そのコントラクトが元のコレクションの一部であるとは限りません。

技術上の主な識別子は、引き続きコントラクトアドレスです。

tokenURIの仕組み

tokenURI
関数は、有効なトークンIDに関連付けられたURIを返します。

このURIは通常、表示名、説明、画像、アニメーション、属性を含むJSONメタデータ文書を指します。

メタデータは、従来型のサーバー、分散型コンテンツネットワーク、またはオンチェーンに保存できます。

ERC-721規格は、メタデータの変更を許容しています。

実装とストレージシステムが許す場合、プロジェクトはURIを更新したり、参照先のファイルを変更したり、外部ロケーションで配信されるコンテンツを変更したりできます。

ユーザーは、メタデータを変更できるか、恒久的に保存されているか、管理者が制御しているかを確認する必要があります。

NFTを所有していても、ホスティングサービスが停止したときに外部画像が自動的に保存されるわけではありません。

メタデータ更新イベント

ERC-721自体は、メタデータが変更されるたびに発行する標準イベントを定めていません。

任意のERC-4906メタデータ更新拡張は、

MetadataUpdate
イベントと
BatchMetadataUpdate
イベントを追加します。

これらのイベントは、1つのトークンまたは複数のトークンIDに対する更新済みメタデータを取得するよう、アプリケーションに通知します。

ERC-4906のインターフェースIDは

0x49064906
です。

メタデータ更新イベントは同期の改善に役立ちますが、新しいメタデータが正確または恒久的であることを保証しません。

ERC-721の列挙

任意の列挙拡張を使うと、オンチェーン関数を通じてNFTの供給量や所有リストを確認できます。

そのインターフェースIDは

0x780e9d63
です。

この拡張は、

totalSupply
、
tokenByIndex
、
tokenOfOwnerByIndex
を追加します。

totalSupply
関数は、コントラクトが追跡する現在有効なNFTの数を返します。

インデックス関数を使うと、呼び出し元はコレクション全体または1人の所有者の保有分からトークンIDを取得できます。

列挙機能を実装すると、追加のストレージ書き込みとガス代が発生します。

最新の実装ガイダンスでは、このオーバーヘッドを理由に、多くのコントラクトが列挙機能を含めないと説明されています。

オフチェーンアプリケーションは、代わりにインデックス化した

Transfer
イベントから所有権を再構築できます。

ERC-721トークンのミント

ミントは新しい有効なトークンIDを作成し、最初の所有者を割り当てます。

ERC-721コア規格は、誰がミントできるか、ミントをどのように申請するかを定めていません。

コレクションは、誰でも参加できるミントを許可したり、認可された役割に制限したり、支払いを必要としたり、許可リストを使ったり、デプロイ時にすべてのNFTを作成したりできます。

ミントでは通常、ゼロアドレスからの

Transfer
イベントが発行されます。

セーフミントは、受取先のスマートコントラクトがERC-721レシーバーインターフェースに対応しているかを確認します。

希少性に関する主張を信頼する前に、最大供給量、ミント権限、アップグレード権限、管理者による制御を確認してください。

ERC-721トークンのバーン

バーンは、NFTを有効な所有権記録から取り除きます。

ERC-721コアインターフェースは、公開バーン関数を必須としていません。

コレクションによっては、所有者、承認済みオペレーター、管理者、またはプロトコルのロジックがトークンをバーンできます。

バーンでは通常、ゼロアドレス宛ての

Transfer
イベントが発行されます。

NFTをバーンしても、オフチェーンのメタデータが削除されたり、過去のブロックチェーン履歴が消去されたりするとは限りません。

バーンが恒久的か、実装上同じIDのトークンを再作成できるかを確認してください。

ERC-721のロイヤリティ

クリエイターロイヤリティはERC-721コア規格に含まれていません。

任意のERC-2981 NFTロイヤリティ規格は、販売価格に対するロイヤリティの受取人と推奨額を通知する方法を提供します。

ERC-2981はロイヤリティ情報を伝達しますが、すべての移転やアプリケーションに支払いを強制するものではありません。

実装が対応していれば、コレクションは標準またはトークン別のロイヤリティ設定を定められます。

コントラクトが管理者に権限を付与している場合、ロイヤリティの受取人や料率は変更できる可能性があります。

すべてのERC-721移転で、強制力のあるクリエイターへの支払いが行われるとは限りません。

ERC-721とERC-20の違い

ERC-20は代替可能トークン残高向けに設計され、ERC-721は個別に識別されるNFT向けに設計されています。

ERC-20アカウントは、1種類のトークンを分割可能な数量で保有できます。

ERC-721アカウントは、個別のトークンIDを所有します。

ERC-721の

balanceOf
関数は、1つのトークンIDに対応する数量ではなく、NFTの数を数えます。

各NFTは通常、完全な1トークンとして移転されるため、ERC-721は標準的なdecimalsフィールドを使用しません。

承認と移転の仕組みも、2つの規格で異なります。

ERC-721とERC-1155の違い

ERC-721は、1つのNFTコレクションコントラクトを通じて、個別に所有されるトークンIDを表します。

ERC-1155マルチトークン規格では、1つのコントラクトで複数のトークンIDと、それぞれの数量残高を管理できます。

ERC-1155のトークンIDは、代替可能、準代替可能、または固有の資産を表すことができます。

1つのアドレスが、同じERC-1155トークンIDを複数保有することもできます。

標準的なモデルでは、有効なERC-721トークンIDには1人の所有者がいます。

ERC-1155は標準化された一括移転にも対応しますが、ERC-721の移転は通常、NFTを1つずつ処理します。

適切な規格は、プロジェクトの所有権と在庫管理の要件によって異なります。

ERC-721のユースケース

デジタルアートコレクションは、個別に識別された作品の所有権を記録するためにERC-721トークンを利用できます。

ブロックチェーンゲームでは、キャラクター、土地、装備などの固有アイテムにNFTを利用できます。

会員システムでは、アクセス権やコミュニティでのステータスをNFTで表せます。

金融アプリケーションでは、個別の債務ポジション、保険契約、流動性ポジション、請求権をトークン化できます。

イベントシステムでは、移転ルールを設定した個別識別可能なチケットを発行できます。

プロジェクトはNFTを実物商品に紐付けることもできますが、スマートコントラクトだけで実物の所持や法的所有権を独立して確認することはできません。

ERC-721トークンは資格証明にも利用できますが、機微な個人情報を公開型ブロックチェーンに保存すべきではありません。

NFTの所有権と著作権

ERC-721トークンを所有するとは、ブロックチェーンコントラクトが該当トークンIDの所有者としてアドレスを認識していることを意味します。

関連するアートワークやメディアの著作権が自動的に移転するわけではありません。

著作権や商用利用権は、クリエイターのライセンス、販売契約、適用法によって決まります。

プロジェクトによって、幅広い商用利用権、限定的な個人利用権、または追加の知的財産権を付与しない場合があります。

メタデータが、トークン発行者に使用許可のないコンテンツを参照している可能性もあります。

購入者は、トークン所有によってあらゆる権利が得られると想定せず、プロジェクトの法的条件を確認する必要があります。

ERC-721の承認に伴うリスク

悪意のある承認リクエストは、NFT保有者にとって重大なセキュリティリスクです。

フィッシングアプリケーションは、

setApprovalForAll
を求めるトランザクションを、アカウント認証やアクセス確認と説明する場合があります。

承認後、オペレーターは追加の署名を求めずに、そのコレクションから所有者のNFTを移転できます。

トークン単位の承認でも、価値のあるNFTが危険にさらされる可能性があります。

署名する前に、コントラクトアドレス、オペレーターアドレス、権限の種類、選択中のネットワークを確認してください。

見慣れないアプリケーションを利用した後は、以前に付与した権限を見直す必要があります。

セーフトランスファーと再入可能性のリスク

安全なNFT移転では、受取人がスマートコントラクトの場合に外部コードが呼び出されます。

最初の処理が完全に終了する前に、受取人が元のアプリケーションを再度呼び出す可能性があります。

この挙動により、ミント、販売、レンディング、ステーキング、エスクロー、出金のコントラクトで再入可能性の脆弱性が生じる場合があります。

公式のSolidityセキュリティガイダンスでは、意図したロジックで可能な場合、外部とのやり取りの前に検証と重要な状態変更を完了することが推奨されています。

悪意のあるレシーバーが公開された別の関数を呼び出す可能性があるため、開発者は複数関数にまたがる再入可能性も考慮する必要があります。

レシーバーコールバックは単純な通知として扱わず、悪意のあるコントラクトを使ってテストしてください。

メタデータのセキュリティリスク

NFTの表示コンテンツは、ブロックチェーン外のデータに依存している場合があります。

外部サーバーが利用できなくなったり、応答を変更したり、ファイルを削除したりする可能性があります。

購入後に変更可能なURIが別のコンテンツを指す場合もあります。

メタデータには、誤解を招く説明、複製されたアートワーク、隠された外部リンク、安全でないファイル形式が含まれる可能性があります。

分散型ストレージは永続性を高める可能性がありますが、コンテンツは継続的な可用性と正確な識別子に依存します。

完全なオンチェーンメタデータは外部ホスティングへの依存を減らしますが、デプロイや更新のコストが増える可能性があります。

コントラクトの真正性に関するリスク

誰でも、見慣れた名前、シンボル、画像、トークンIDを持つERC-721コントラクトをデプロイできます。

インターフェースに互換性があることは、コレクションの真正性を証明しません。

信頼できるプロジェクトの情報源を通じて、ブロックチェーンネットワークと完全なコントラクトアドレスを確認してください。

検証済みのソースコードが公開されていても、誠実な事業運営や安全な経済設計が保証されるわけではありません。

トークンの履歴、作成者の説明、管理者権限、メタデータの管理方法も確認してください。

アップグレード可能なERC-721コントラクト

ERC-721コントラクトは、デプロイ後にロジックを変更できるプロキシを使用している場合があります。

アップグレードによってバグを修正したり、機能を追加したりできます。

一方で、ミント、移転、承認、メタデータ、ロイヤリティ、一時停止、バーンの挙動が変わる可能性もあります。

アップグレード権限が侵害されると、NFTの所有権に影響する悪意のあるロジックが導入される場合があります。

アップグレードを誰が管理しているか、必要な署名数はいくつか、タイムロックがあるかを確認してください。

分散型と説明されているコレクションにも、強力な管理者権限が含まれている場合があります。

開発者によるERC-721の実装方法

独自設計が必要でない限り、開発者はレビュー済みで、継続的に保守されている実装を使用する必要があります。

最新のERC-721開発ガイドでは、メタデータ、列挙、バーン、一時停止、ロイヤリティ、投票などの用途に対応するコア実装と任意の拡張が説明されています。

ミント権限は、コレクションで公表されている供給ルールに沿って設定してください。

移転と承認では、権限のない呼び出し元や無効なアドレスを拒否する必要があります。

スマートコントラクトに直接トークンを発行できる場合は、セーフミントを使用してください。

開発者は、悪意のあるレシーバー、再入可能性、無効なトークンID、承認解除、オペレーター権限、バーン、インターフェース検出をテストする必要があります。

管理機能には明確なアクセス制御を設け、適切なイベントを発行してください。

ERC-721 NFTの評価方法

最初に、ネットワーク、コントラクトアドレス、トークンIDを確認します。

次に、コントラクトがERC-721コアインターフェースに対応していることを確認します。

3つ目に、現在の所有者と移転履歴を確認します。

4つ目に、トークン単位およびコレクション全体の承認を確認します。

5つ目に、メタデータとリンクされたメディアの保存方法を確認します。

6つ目に、ミント、バーン、一時停止、凍結、アップグレードの権限者を特定します。

7つ目に、供給量や希少性に関する主張がオンチェーンで検証できるかを確認します。

8つ目に、監査やソースコードを確認します。ただし、それらを保証として扱わないでください。

9つ目に、NFTにどのような法的権利や商用利用権が付随するかを確認します。

10個目に、価値のある資産を危険にさらす前に、見慣れないコントラクトで少額のトランザクションを試してください。

ERC-721の移転例

AliceがERC-721コレクションのトークンID 101を所有しているとします。

コントラクトの

ownerOf
関数はAliceのアドレスを返します。

AliceはNFTを安全に保管するために設計されたコントラクトへ送ることにしました。

Aliceのウォレットは、Aliceのアドレス、受取先のコントラクト、トークンID 101を指定して

safeTransferFrom
を呼び出します。

ERC-721コントラクトは、AliceがNFTを所有しており、移転権限を持つことを確認します。

コントラクトは所有権記録を更新し、受取先の

onERC721Received
を呼び出します。

受取先は、コレクション、オペレーター、以前の所有者、トークンIDを確認します。

正しいセレクターが返されると移転が完了し、NFTコントラクトは

Transfer
イベントを発行します。

レシーバーがNFTを拒否した場合、トランザクション全体が取り消され、Aliceが引き続き所有者となります。

ERC-721でよくある間違い

よくある間違いの1つは、コレクション名だけでNFTを一意に識別できると思い込むことです。

もう1つは、オペレーターのアドレスを確認せず、コレクション全体へのアクセス権を付与することです。

3つ目は、ウォレットを切断すればオンチェーン承認が解除されると思い込むことです。

4つ目は、知らないコントラクトへNFTを送る際に

transferFrom
を使うことです。

5つ目は、安全に受信できれば将来の出金も保証されると思い込むことです。

6つ目は、保存方法を確認せずメタデータが恒久的だと考えることです。

7つ目は、ERC-721がロイヤリティを自動的に強制すると考えることです。

8つ目は、すべてのコレクションがオンチェーン列挙に対応すると考えることです。

9つ目は、NFTの所有権を著作権や実物資産の所有権と混同することです。

10個目は、規格への準拠がNFTの真正性、価値、安全性を証明すると考えることです。

よくある質問

ERC-721とは何ですか?

ERC-721は、非代替性トークンの所有権、移転、承認、インターフェースのルールを定めるEthereum規格です。

ERC-721はNFTと同じですか?

ERC-721は技術的なNFT規格です。一方、NFTはより広い用語であり、ほかの規格で作成されたトークンも含む場合があります。

ERC-721は代替可能ですか?

いいえ。有効なERC-721トークンIDはそれぞれ個別に追跡され、特性や価値が異なる場合があります。

ERC-721のインターフェースIDは何ですか?

ERC-721コアインターフェースIDは

0x80ac58cd
です。

ERC-721 NFTは何で識別されますか?

NFTは、ブロックチェーンネットワーク、スマートコントラクトアドレス、トークンIDの組み合わせで識別されます。

balanceOfは何を返しますか?

1つのERC-721コントラクト内で、アドレスが所有するNFTの数を返します。

ownerOfは何を返しますか?

有効なトークンIDについて、現在の所有者アドレスを返します。

transferFromとsafeTransferFromの違いは何ですか?

safeTransferFrom
は受取先のコントラクトがERC-721レシーバーコールバックに対応するか確認しますが、
transferFrom
は確認しません。

ERC-721 NFTをスマートコントラクトに送れますか?

送れます。ただし、受取先がNFTを受け取れることを確認する必要があるため、通常は安全な移転を使うべきです。

approveは何をしますか?

1つのアドレスに、特定のNFTを移転する権限を付与します。

setApprovalForAllは何をしますか?

ERC-721コントラクト内で所有者が保有するすべてのNFTを、オペレーターが管理できるようにします。

オペレーター承認は自動的に期限切れになりますか?

いいえ。標準のオペレーター承認は、所有者が取り消すか、カスタムコントラクトロジックによって効力が変更されるまで有効です。

NFTの移転時にトークン単位の承認は解除されますか?

はい。NFTが移転されると、トークン単位の承認は解除されます。

ERC-721ではメタデータが必須ですか?

いいえ。メタデータインターフェースは任意ですが、ほとんどのNFTコレクションが実装しています。

ERC-721のメタデータは変更できますか?

はい。コントラクトとストレージシステムが検証可能な不変性を保証しない限り、メタデータは変更される可能性があります。

すべてのERC-721コントラクトにtotalSupplyがありますか?

いいえ。

totalSupply
は任意の列挙拡張に含まれる関数です。

ERC-721はミントを定義していますか?

この規格は所有権イベントを通じてミントを認識しますが、特定の公開ミント関数や供給ポリシーは必須としていません。

ERC-721はバーンを定義していますか?

いいえ。バーン関数は任意であり、個別の実装によって異なります。

ERC-721はロイヤリティを強制しますか?

いいえ。ロイヤリティには別のロジックや規格が必要であり、ロイヤリティ情報だけで支払いが自動的に強制されるわけではありません。

ERC-721トークンを所有すると著作権も得られますか?

いいえ。知的財産権は、適用されるライセンスと法的契約によって決まります。

ERC-721コントラクトはアップグレードできますか?

プロキシシステムを通じてアップグレードできるものもあれば、デプロイ後に変更できないものもあります。

ERC-721 NFTを分割できますか?

コアERC-721トークンは完全な1単位として所有されるため、分割所有には別のコントラクトまたはトークンの仕組みが必要です。

ERC-721の承認を利用してNFTを盗めますか?

はい。悪意のある承認先は、付与された権限の対象となるNFTを移転できます。

ERC-721への準拠は真正性を証明しますか?

いいえ。誰でも互換性のあるコントラクトをデプロイできるため、コレクションのアドレスと発行者を別途確認する必要があります。

ERC-721の主な利点は何ですか?

主な利点は、所有権と移転の挙動を標準化し、多くの暗号資産アプリケーションが固有のトークン化資産と連携できることです。

まとめ

ERC-721は、個別に識別される非代替性トークンを表すためのEthereumの主要規格です。

所有権の照会、移転、承認、オペレーター権限、イベント、インターフェース検出の共通ルールを定めています。

各NFTは、ブロックチェーンネットワーク、コントラクトアドレス、トークンIDによって一意に識別されます。

コアインターフェースIDは

0x80ac58cd
です。

任意の拡張により、メタデータ、オンチェーン列挙、ロイヤリティ情報、メタデータ更新通知を追加できます。

この規格は、ミント権限、最大供給量、バーン権限、ロイヤリティ、メタデータの永続性、法的所有権、コレクションの真正性を自動的に定めるものではありません。

NFTを利用する前に、コントラクトアドレスを確認し、承認を点検し、メタデータの保存方法や管理者権限を把握してください。

開発者は保守されている実装を使用し、すべての認可経路を保護し、安全な移転のレシーバーコールバックを潜在的に悪意のある外部呼び出しとして扱う必要があります。

ERC-721の相互運用性により、NFTは暗号資産アプリケーション間で利用しやすくなりますが、技術的な互換性によってスマートコントラクト、フィッシング、メタデータ、法務、市場のリスクがなくなるわけではありません。

ERC-721を理解することで、固有トークンのブロックチェーン上の所有権と、そのトークンに関連するコンテンツ、権利、価値、約束を区別しやすくなります。

関連コンテンツ

WhatsMiner M30S++

WhatsMiner M30S++とは? WhatsMiner M30S++は、SHA-256 Proof of Workマイニング向けに設計されたMicroBT製のBitcoin ASICマイナーです。 WhatsMiner M30シリーズの一部であり、主にマイニングプールを通じてBitcoinをマイニングするために使用されます。 ASICマイナーは、1種類の計算を非常に効率的に実行するために作
2026/10/15 11:08

Web3ドメイン

Web3ドメインとは? Web3ドメインとは、長いウォレットアドレスの代わりとなり、分散型コンテンツを参照し、オンチェーンアイデンティティを表現し、ユーザーをWeb3アプリケーションへ接続できる、ブロックチェーンベースの名前です。 ユーザーは、長い16進数のアドレスに暗号資産を送付する代わりに、ブロックチェーンベースのユーザー名やドメインなど、読みやすい名前へ送付できる場合があります。 Web3ド
2026/10/15 11:08

Web3プロジェクト

Web3プロジェクトとは? Web3プロジェクトとは、分散型技術を活用し、ユーザーが資産、ID、データ、参加、デジタル上の価値をより管理できるようにする、ブロックチェーンベースのアプリケーション、プロトコル、ツール、ネットワーク、コミュニティです。 Web3プロジェクトには、レイヤー1ブロックチェーン、レイヤー2ネットワーク、DeFiプロトコル、ウォレット、NFTプラットフォーム、DAO、ブロック
2026/10/15 11:06
BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?