メインコンテンツへスキップ
Change page

ERC-721 非代替性トークン標準

はじめに

非代替性トークンとは何ですか?

非代替性トークン(NFT)は、何かまたは誰かを一意に識別するために使用されます。このタイプのトークンは、コレクティブルアイテム、アクセスキー、宝くじ、コンサートやスポーツの試合の指定席などを提供するプラットフォームでの使用に最適です。この特別なタイプのトークンには驚くべき可能性があるため、適切な標準が必要であり、ERC-721がそれを解決するために登場しました!

ERC-721とは何ですか?

ERC-721はNFTの標準を導入します。言い換えれば、このタイプのトークンは一意であり、同じスマート・コントラクトからの別のトークンとは異なる価値を持つ可能性があります。それは、年齢、希少性、あるいは見た目のような他の要因によるものかもしれません。えっ、見た目?

はい!すべてのNFTにはtokenIdと呼ばれるuint256変数が含まれています。そのため、どのERC-721コントラクトにおいても、contract address, uint256 tokenIdのペアはグローバルに一意でなければなりません。つまり、分散型アプリケーション (dapp) は、tokenIdを入力として使用し、ゾンビ、武器、スキル、または素晴らしい子猫のようなクールなものの画像を出力する「コンバーター」を持つことができます!

前提条件

本文

2018年1月にWilliam Entriken、Dieter Shirley、Jacob Evans、Nastassia Sachsによって提案されたERC-721(イーサリアム Request for Comments 721)は、スマート・コントラクト内のトークン用のAPIを実装する非代替性トークン標準です。

あるアカウントから別のアカウントへトークンを送金する、アカウントの現在のトークン残高を取得する、特定のトークンの所有者を取得する、ネットワーク上で利用可能なトークンの総供給量を取得するなどの機能を提供します。これらに加えて、アカウントからの一定量のトークンを第三者のアカウントが移動できることを承認するなどの機能もあります。

スマート・コントラクトが以下のメソッドとイベントを実装している場合、それはERC-721非代替性トークンコントラクトと呼ぶことができ、デプロイされると、イーサリアム上で作成されたトークンを追跡する役割を担います。

EIP-721 (新しいタブで開きます)より:

メソッド

イベント

    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);

イーサリアム上の任意のERC-721トークンコントラクトを検査する際、標準がいかに物事をシンプルにするために重要であるかを見てみましょう。任意のERC-721トークンへのインターフェースを作成するには、コントラクトのアプリケーション・バイナリ・インターフェース(ABI)が必要です。以下に示すように、理解しやすい例にするために簡略化されたABIを使用します。

Web3.pyの例

まず、Web3.py (新しいタブで開きます) Pythonライブラリがインストールされていることを確認してください:

pip install web3

クリプトキティーズのコントラクトには、標準のもの以外にも興味深いイベントがいくつかあります。

PregnantBirthの2つを確認してみましょう。

参考文献

チュートリアル: イーサリアム上で非代替性トークン(ERC-721)を使用して構築する