ERC-721とERC-1155の違い:token IDと保有数量を読み分ける

規格名だけで作品の価値や安全性は決まりません。保有記録を読むときはコントラクト、token ID、所有者または保有数量を区別します。

ERC-721とERC-1155の違い:token IDと保有数量を読み分ける

規格名だけで作品の価値や安全性は決まりません。保有記録を読むときはコントラクト、token ID、所有者または保有数量を区別します。

規格の比較

項目ERC-721ERC-1155
基本個別IDの所有者を扱うIDごと・アドレスごとの数量を扱う
例あるIDの現在の所有者を確認同じ種類のIDを複数単位保有できる
標準の一括転送標準の個別転送関数と区別複数ID・数量の一括転送関数がある
追加仕様メタデータ等の拡張を確認ID別URI等を確認

架空の記録で比べる

ERC-721のID 7をAさんが持つ例では所有者を確認します。ERC-1155のID 7をAさんが3単位、Bさんが2単位持つ例なら数量とアドレスを分けます。この例は実在の資産や販売数量ではありません。

数量から作品の性質を断定しない

ERC-1155は代替可能・代替不可能な種類を同じコントラクトで扱える設計です。1155なら全て量産品、721なら必ず一点物の作品とは判断しません。一括転送が実際のアプリで使えるか、費用がいくらかも個別確認です。

承認・売買の操作は保有記録の読み方とは別です。この記事で署名や転送はしていません。

関数で見る違い

2つの規格は、保有を読む関数の形が違います。ERC-721のownerOf(tokenId)は、そのIDの所有者アドレスを1つ返します。balanceOf(owner)はそのアドレスが持つNFTの枚数です。ERC-1155のbalanceOf(account, id)は、アドレスとIDの組ごとの数量を返し、balanceOfBatchで複数の組をまとめて読めます。

読みたいことERC-721ERC-1155
誰が持っているかownerOf(tokenId)所有者を返す関数はなく、アドレスごとの数量を見る
何枚・何個かbalanceOf(owner)=枚数balanceOf(account, id)=そのIDの数量
転送safeTransferFrom(1件ずつ)safeTransferFrom(数量付き)とsafeBatchTransferFrom
転送の記録(イベント)TransferTransferSingle / TransferBatch
メタデータtokenURI(tokenId)(任意の拡張)uri(id)。{id}を16進のIDに置き換える方式

エクスプローラーでの見え方

Etherscanなどでは、どちらの規格でもトークンの移動が表示されます。ERC-1155ではTransferBatchのように1回の取引で複数IDが動くことがあるので、IDと数量を1行ずつ確かめます。マーケットプレイスの表示は、コントラクトのメタデータを取り込んで作られた画面です。表示が古いときは、元のuriやtokenURIの参照先を確認します。

両方に共通する承認の注意

どちらの規格にもsetApprovalForAllがあり、承認した相手はそのコントラクトの自分の保有分をまとめて動かせます。規格の違いより、どのアドレスに承認を出しているかの方が資産の安全に直結します。不要になった承認は、エクスプローラーの承認確認ツールなどで見直してください。

出典と確認範囲

個別適用や説明の拡張時に確認する事項:実装の拡張・標準準拠・数量と権利を確認。

カテゴリETHNFT

この記事を書いた人

Labochan

Web3 & NFT リサーチャー/ライター(クリプト歴 7 年、ガチホ歴 3 年)。NFTLABO 編集長として月100本のニュース&エアドロNoteを監修。累計 $150,000 相当の大型エアドロ獲得ノウハウを発信。

運営: 投資ラボ運営者情報お問い合わせ