ERC-721とは:NFTエコシステムの基盤

キーストーン
• ERC-721は非代替性トークンのためのイーサリアムインターフェースです。
• メタデータの保存方法にはオンチェーンとオフチェーンがあり、プロジェクトによって異なります。
• ERC-721とERC-1155の違いは、ユニークなアイテムとマルチトークンのサポートにあります。
• 2025年に向けて、ロイヤリティやレンタル機能などの拡張が期待されています。
• セキュリティのために、承認管理やハードウェアウォレットの使用が推奨されます。
非代替性トークン(NFT)は、デジタルアイテムをパブリックブロックチェーン上で所有、取引、および組み合わせて利用可能にします。この変革の中心にあるのがERC-721です。これは、ユニークなトークンがウォレット、マーケットプレイス、アプリケーション間でどのように作成、転送、発見されるかを定義するイーサリアムの標準です。コレクティブルをミントしたり、ゲーム内アセットを購入したり、コミュニティへのアクセスを制限したりしたことがあるなら、おそらくERC-721を利用していたでしょう。
この記事では、ERC-721とは何か、その仕組み、一般的な落とし穴、拡張機能の重要性、そして2025年に向けてこの標準がどこへ向かうのかを解説します。
ERC-721が実際に定義するもの
ERC-721は、非代替性トークンのためのイーサリアムインターフェースです。NFTはIDによってユニークであり、代替可能なERC-20のように1対1で交換することはできません。この標準は、すべての準拠したコントラクトが実装しなければならないコア機能とイベントを指定しており、一貫したウォレットとマーケットプレイスのサポートを可能にします。公式仕様は、Ethereum Improvement ProposalsサイトのEIP-721で確認できます。
コアな要素は以下の通りです。
- 所有権と残高:
ownerOf(tokenId),balanceOf(owner) - 転送:
transferFrom,safeTransferFrom(ユーザーアカウントおよびスマートコントラクトに推奨) - 承認:
approve,getApproved,setApprovalForAll - イベント:
Transfer,Approval,ApprovalForAll - オプションのメタデータ拡張: アイテムレベルのメタデータのための
name,symbol,tokenURI
開発者にとって、最も簡単な開始方法は、OpenZeppelinの実装のような監査済みのライブラリを使用することです。これらは、列挙可能およびメタデータ拡張をサポートしています。OpenZeppelin ERC-721を参照してください。
最小限のインターフェースは以下のようになります。
interface IERC721 {
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
function balanceOf(address owner) external view returns (uint256);
function ownerOf(uint256 tokenId) external view returns (address);
function safeTransferFrom(address from, address to, uint256 tokenId) external;
function transferFrom(address from, address to, uint256 tokenId) external;
function approve([address](https://onekey.so/blog/ja/ecosystem/what-is-a-crypto-wallet-address/) to, uint256 tokenId) external;
function setApprovalForAll([address](https://onekey.so/blog/ja/ecosystem/what-is-a-crypto-wallet-address/) operator, bool approved) external;
function getApproved(uint256 tokenId) external view returns ([address](https://onekey.so/blog/ja/ecosystem/what-is-a-crypto-wallet-address/));
// Optional metadata extension
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function tokenURI(uint256 tokenId) external view returns (string memory);
}
全体像の概要については、Ethereumのドキュメントに、追加のコンテキストとベストプラクティスが記載されています。ERC-721 developers docsを参照してください。
メタデータ:オンチェーン vs オフチェーン
ERC-721自体はメタデータの保存方法を指示していません。単にアセット(名前、説明、画像、属性)を記述するJSONペイロードを指すtokenURIを返します。実際には、ほとんどのプロジェクトは分散型ストレージを使用しています。
- コンテンツのアドレス指定と配信のためのIPFS: IPFS
- 永続的で耐久性のあるストレージのためのArweave: Arweave
- OpenSeaのメタデータガイドのようなマーケットプレイススキーマ: OpenSea Metadata Standards
オンチェーンメタデータも可能ですが(長期的な耐久性のためますます人気が高まっています)、コストが高くなります。少量のオンチェーンJSONとオフチェーンメディアを組み合わせたハイブリッドアプローチが一般的です。
信頼の仮定を犠牲にすることなく、オフチェーンソースから高度な取得を行うためには、ERC-3668(「CCIP-Read」)により、コントラクトがオンチェーンでオフチェーンデータを検証できるようになります。EIP-3668を参照してください。
ERC-721 vs ERC-1155
ERC-721は、ユニークな一点物のアイテムを対象としています。ERC-1155は、単一のコントラクトの下で代替可能トークンと非代替性トークンの両方をサポートするマルチトークン標準であり、半代替性ゲームアイテムやエディションに最適です。エディションや共有メタデータを持つバッチを構築している場合は、ERC-1155を検討してください。EIP-1155。各トークンが独自のライフサイクルと転送を持つ純粋にユニークなアイテムの場合は、ERC-721が引き続きデフォルトとなります。
2025年に重要な拡張機能
エコシステムは、UX、コンポーザビリティ、収益化を向上させるオプション標準でERC-721を中心に革新を続けています。
- ロイヤリティ: ERC-2981は、コントラクトレベルでクリエイターのロイヤリティ情報を標準化し、マーケットプレイスがロイヤリティ設定を一元的に発見できるようにします。ロイヤリティの強制はマーケットプレイス依存であり、プロトコルによって強制されるものではないことに注意してください。詳細については、EIP-2981およびOpenSeaのクリエイター手数料の概要のようなマーケットプレイスポリシーを参照してください。
- NFTのパーミット: ERC-4494は、承認のためのEIP-712型署名を導入し、広範なオペレーター権限なしでのガスレス承認とUXの向上を可能にします。EIP-4494を参照してください。
- レンタル/利用権: ERC-4907は、有効期限付きの「ユーザー」ロールを追加し、所有権を移転することなく期間制限付きのレンタルを可能にします。EIP-4907を参照してください。
- トークンバウンドアカウント(TBA): ERC-6551により、NFTは独自のスマートコントラクトウォレットを持つことができ、トークン自体に紐づいた所有アセット、ID、および複雑な動作を可能にします。これは、ゲーム、ID、およびコンポーザブルアートにとって大きなブレークスルーです。EIP-6551を参照してください。
これらの拡張機能は、NFTをよりプログラム可能にし、サブスクリプション、ゲーム内インベントリ、ダイナミックアート、オンチェーンIDなどの実際のユースケースと連携させます。
セキュリティとUX:一般的な落とし穴
ERC-721は承認と転送を伴うため、フィッシングやソーシャルエンジニアリングの標的となりやすいです。実用的なヒント:
- ユーザー主導の転送には
safeTransferFromを優先してください。これは、スマートコントラクトへの送信時に受信者がonERC721Receivedをチェックし、意図しないトークンの損失を防ぎます。OpenZeppelinのERC-721ドキュメントの実装ノートを参照してください。 - 広範な承認には注意してください。
setApprovalForAllは強力です。オペレーターが侵害された場合、すべてのNFTが危険にさらされます。使用後に承認を取り消すことを検討し、getApprovedとオペレーターリストを定期的に確認してください。 - 署名を検証してください。多くのNFTアプリは、承認、リスティング、オフチェーン注文にEIP-712型データを使用します。署名する前に常にメッセージを読み、ドメインと意図を確認してください:EIP-712。
- ミント、承認、転送にはハードウェアウォレットを使用してください。専用デバイスはキーを分離し、マルウェアやブラウザウォレット攻撃のリスクを軽減します。
カストディを検討している場合、OneKeyハードウェアウォレットは、明確なトランザクション概要とマルチチェーンサポートを備えたオフライン署名環境を作成します。これにより、ERC-721のやり取り、特に承認、リスティング、パーミット署名を、レビューしやすく安全に実行できるようになります。
ガスとスケーラビリティ:レイヤー2上のERC-721
NFTアクティビティは、より速いファイナリティと低コストのために、レイヤー2ネットワークにますます移行しています。ERC-721はメインネットと同じようにL2でも機能します。違いは、基盤となるロールアップ技術と決済です。デプロイする前に、以下を確認してください。
- マーケットプレイスがターゲットL2でトークンとメタデータをどのようにインデックス化するか
- ブリッジの動作(ミント&バーン vs ミラーリングされたコントラクト)
- シーケンサーのファイナリティと引き出しのタイムライン
L2エコシステムとトレードオフの概要については、Ethereumのレイヤー2ドキュメントを参照してください:Layer-2 Overview。
ERC-4337を介したアカウント抽象化(AA)も、ガススポンサーシップとプログラム可能な署名ポリシーにより、NFTのUXを再形成しています。これにより、「ガスレスミント」と、アプリ内エクスペリエンスのためのより安全なセッションキーが可能になります。詳細については、EIP-4337とAlchemyによるAAの概要を参照してください:Account Abstraction overview。
開発者チェックリスト:信頼性の高いERC-721統合
- 監査済みのライブラリを使用し、仕様に従ってください:EIP-721、OpenZeppelin ERC-721。
- メタデータストレージを早期に決定してください:IPFS、Arweave、またはオンチェーン。スキーマドキュメントへのリンク:OpenSea Metadata Standards、IPFS、Arweave。
- 製品に合った拡張機能を選択してください:EIP-2981、EIP-4494、EIP-4907、EIP-6551。
- L2デプロイメントとインデックス作成を計画してください:Layer-2 Overview。
- 強力な承認管理、取り消しフロー、およびEIP-712を使用した明確な署名ダイアログを実装してください:EIP-712。
- よりスムーズなオンボーディングとスポンサー付きアクションのためにAAを検討してください:EIP-4337、Account Abstraction overview。
2025年の展望:コレクティブルを超えたNFT
プロフィール写真が最初のメインストリームの波を引き起こした一方で、ERC-721はユーティリティ主導のカテゴリへと拡大を続けています。
- ゲーム:オンチェーンアイテム、コスメティクス、プレイヤー所有のインベントリは、意味のあるゲームエコノミーのためのTBAとレンタルから恩恵を受けます。
- IDとメンバーシップ:トークンゲートされたエクスペリエンス、認証情報、コミュニティプリミティブは、モバイルネイティブUXのために署名とAAを活用します。
- チケットとサブスクリプション:ERC-4907による期間制限付きの権利は、現実世界のアクセスパターンをモデル化します。
- 文化資産とダイナミックアート:オンチェーンメタデータ、CCIP-Read、モジュラーコントラクトは、クリエイティブワークに長寿命と進化をもたらします。
NFTの概念とユースケースのより広範な説明については、EthereumのNFT概要を参照してください:NFTs on Ethereum。
なぜカストディがERC-721にとって依然として重要なのか
承認、リスティング、ミント署名は、所有権に直接影響します。署名者が侵害された場合、あなたのNFTはあなたの同意なしに移動する可能性があります。ハードウェアウォレットは、ERC-721コントラクトを定期的に操作するすべての人にとって、シンプルで影響力の大きい保護手段であり続けます。
OneKeyは以下を提供します。
- ERC-721転送、承認、パーミット署名のためのオフライン秘密鍵と安全な署名
- 明確なトランザクションとメッセージプレビューにより、悪意のあるオペレーターや誤解を招く署名を検出するのに役立ちます
- チェーン全体でのシームレスなNFTワークフローのための広範なEVMおよびL2サポート
NFTを取引、収集、または構築する場合、ソフトウェアウォレットとOneKeyハードウェアウォレットを組み合わせることで、特にERC-721が高度な拡張機能とアカウント抽象化で進化するにつれて、不可欠な保護レイヤーが追加されます。
ERC-721は、NFTエコシステム全体の基盤を築きました。コンポーザビリティが成長し、UXが改善するにつれて、この標準のシンプルさはそのスーパーパワーであり続けます。それは、プログラム可能な世界におけるユニークな所有権のための普遍的な言語です。






