トークン規格とは、トークンを生成するスマートコントラクトのインターフェースについて定められた、公開済みの要件一式のことです。インターフェースとは、そのコントラクトが持つ関数とイベントを指します。このインターフェースに合わせて書かれたソフトウェアは、それに従うコントラクトと連携できます。トークンとは、既存のブロックチェーン上でスマートコントラクト(そこに保存されたプログラム)を通じて発行される単位のことです。
トークン規格は何を定め、何を定めないのか?
トークン規格は、トークンを生成・管理するスマートコントラクトであるトークンコントラクトのインターフェースを定義します。このインターフェースには、トークンコントラクトが提供する関数、各関数が受け取る値と返す値、そしてトークンコントラクトが記録するイベントが列挙されます。
関数とは、トークンコントラクトが提供する名前付きの操作であり、トランザクションや別のコントラクトから呼び出すことができます。トランザクションとは、ユーザーがブロックチェーンに送るリクエスト(トークンの移動リクエストなど)です。ブロックチェーンとは、新しい記録が次々と追加されていく共有台帳のことです。イベントとは、何かが変化した際にトークンコントラクトがブロックチェーン上に記録する通知であり、ソフトウェアがその変化を追跡できるようにするものです。
例えば、ある規格は、あるアドレスの残高を返す関数や、トークンを別のアドレスへ移動する関数を定めることができます。アドレスとは、ブロックチェーン上でユーザーやスマートコントラクトを識別する識別子です。残高とは、あるアドレスが保有するトークンの数量のことです。
なお、ERC-20、ERC-721、ERC-1155、そしてBEP-20は、トークンに結びつく権利やトークンの法的地位について一切定めていません。また、トークンの中身(トークンが参照するデータやファイル)や、トークンコントラクトのその他のコードについても定めておらず、これらはトークンコントラクトの作成者に委ねられています。トークン規格そのものがトークンを生成するわけではなく、その規格に従うトークンコントラクトがトークンを生成します。
なぜトークン規格が存在するのか?
ERC-20やBEP-20のようなトークン規格が存在する理由は、ソフトウェアが単一のインターフェースを通じてトークンを再利用できるようにするためです。ここでいうソフトウェアとは、トークンコントラクトの関数を呼び出し、そのイベントを読み取るアプリケーションや別のスマートコントラクトのことです。ERC-20の文書では、他のソフトウェアが標準インターフェースを通じてトークンを再利用できるようにすることが目的であると説明されており、BEP-20の文書でも同様の目的が示されています。
互換性とは、あるソフトウェアが、別のソフトウェアのために変更を加えることなく連携できることを意味します。トークン規格は、ソフトウェアに共通の関数名とイベント名の集合を提供するため、ソフトウェアはその規格に従うトークンコントラクトを同じ方法で呼び出し、読み取ることができます。規格が役立つのは、ソフトウェア側がそのインターフェースに対応している場合、つまり規格で定められた関数を呼び出すように作られている場合に限られます。
ERC-20、ERC-721、ERC-1155、BEP-20はそれぞれ何を規定しているのか?
ERC-20、ERC-721、ERC-1155、BEP-20は、トークン規格の4つの代表例です。ファンジブル(代替可能)とは、トークンの各単位が互いに交換可能であり、ある単位が別の単位と同一であることを意味します。ノンファンジブル(非代替)とは、トークンコントラクトが各トークンを個別に区別し、どの2つのトークンも互いに交換できないことを意味します。非代替性トークン(NFT)の用語集エントリでは、非代替性トークンの概念について解説しています。
ERC-20は何を規定しているのか?
ERC-20は、Ethereum上のファンジブルトークンに関する規格です。ERC-20に従うトークンコントラクトは各アドレスの残高を保持し、そのインターフェースには、あるアドレスの残高を返すbalanceOfと、トークンを別のアドレスへ移動するtransferが含まれます。approve関数は、あるアドレス(第一のアドレス)が、第二のアドレス(スペンダー)に対して、その第一のアドレスの残高から一定額まで、1回または複数回にわたりトークンを移動させることを許可するための関数です。transferFrom関数は、スペンダーがそのトークンを実際に移動させる際に呼び出す関数であり、allowanceはスペンダーがまだ移動可能な残りの許可額を返します。TransferイベントとApprovalイベントは、それぞれ移動と承認を通知するものであり、ERC-20のどの関数もトークンIDを指定しない点が、ERC-721やERC-1155との違いです。
ERC-721は何を規定しているのか?
ERC-721は、Ethereum上の非代替性トークンに関する規格です。ERC-721に従うトークンコントラクトは、各トークンにトークンIDを付与します。これは、そのトークンコントラクト内の他のトークンと区別するための番号です。トークンコントラクトはまた、各トークンIDをどのアドレスが管理しているかを記録します。ERC-721は、balanceOfやTransferなど、ERC-20といくつかの名称を共有しています。
ERC-1155は何を規定しているのか?
ERC-1155は、Ethereum上で複数のトークンタイプを管理するトークンコントラクトのための規格であり、その正式名称は「Multi Token Standard」です。ERC-1155では、トークンIDがトークンタイプ(そのトークンコントラクトが管理する1種類のトークン)を識別し、各移動関数はトークンIDを受け取ります。この規格はまた、トークンIDと数量のリストを受け取るバッチ関数も定めており、1回の呼び出しで複数のトークンタイプを指定できるようになっています。ERC-20がファンジブルトークンを、ERC-721が非代替性トークンをそれぞれ対象としているのに対し、ERC-1155は1つのコントラクト内でファンジブルトークン、非代替性トークン、あるいはその両方を扱うことができます。
BEP-20は何を規定しているのか?
BEP-20は、Ethereumとは別のブロックチェーンであるBNB Smart Chain向けのトークン規格です。BEP-20は、そのチェーン上のトークンコントラクトのための標準インターフェースを定めており、BEP-20の文書にはERC-20と同じ関数名・イベント名が列挙されています。BEP-20の文書には、BEP-20がERC-20から派生したものであると記されています。
ERC-20、ERC-721、ERC-1155、BEP-20を比較すると?
ERC-20、ERC-721、ERC-1155、BEP-20は、「1単位が何を意味するか」「トークンコントラクトが何を記録するか」「規格がどこで定められているか」という点で異なります。
ERC-20とERC-721:コントラクトは何を記録するのか?
ERC-20とERC-721は、「1単位が何を意味するか」と「トークンコントラクトが何を記録するか」という点で異なります。ERC-20の1単位は、互いに交換可能な多数の単位のうちの1つであり、トークンコントラクトは「あるアドレスがいくつの単位を保有しているか」を答えます。ERC-721の1単位は、トークンIDを持つ単一のトークンであり、トークンコントラクトは「あるトークンIDをどのアドレスが管理しているか」を答えます。ERC-721の用語集エントリでは、ERC-721の関数とイベントを一覧にしています。
BEP-20とERC-20:両者の関係は?
BEP-20の文書によれば、BEP-20はERC-20から派生したものであり、ERC-20がEthereum向けに書かれているのに対し、BEP-20はBNB Chain(旧Binance Smart Chain)向けに書かれています。BEP-20の文書ではsymbolとdecimalsの両関数が必須とされていますが、ERC-20の文書ではこれらはオプション扱いとなっています。また、BEP-20の文書には、BEP-20がクロスチェーン転送(あるブロックチェーンから別のブロックチェーンへのトークン移動)のためにERC-20を拡張したものであるとも記されています。なお、本用語集エントリでは、そうした転送の具体的な仕組みについては説明していません。
トークン規格はどのように、どのブロックチェーン向けに書かれるのか?
Ethereum向けのトークン規格は、Ethereumコミュニティのための設計文書であるEthereum Improvement Proposal(EIP)として書かれます。ERCとは、トークン規格を含む、アプリケーション向けの規格を定めるEIPのカテゴリーです。EIPは、EIP-1で定められた段階(DraftやReviewなど)を経て進み、規格として承認されたEIPはFinalというステータスになります。
ERC-20、ERC-721、ERC-1155、BEP-20はそれぞれ、特定のブロックチェーン向けに書かれています。ERC-20、ERC-721、ERC-1155の文書はEthereumを対象としており、BEP-20の文書(BNB Evolution Proposal、BEP)はBNB Smart Chain向けに書かれています。他のブロックチェーンも、それぞれ異なるトークン規格を公開することができます。
同じ規格に従う2つのコントラクトでも、違いは生じるのか?
同じ規格に従う2つのトークンコントラクトであっても、その他の挙動は異なり得ます。なぜなら、規格が定めているのはインターフェースであり、それ以外のコードまでは定めていないためです。規格にはオプション部分が含まれることもあり、そのため、あるトークンコントラクトが提供する関数を、別のトークンコントラクトは実装していない場合もあります。
ERC-20の文書では、name、symbol、decimalsの各関数はオプションとされています。ERC-721とERC-1155の文書は、それぞれオプションのメタデータ拡張について説明しています。ここでいうメタデータとは、トークンを説明するデータのことです。ERC-721の拡張は3つの関数を追加し、ERC-1155の拡張はuriという1つの関数を追加します。
2025年11月27日











