教育目的の情報であり、投資助言ではありません。投資により損失が生じる可能性があります。
直接の答え
ERC-20 は、Ethereum 上の代替可能トークンコントラクト向けの標準インターフェースです。ウォレット、取引所、分散型アプリケーションは、同じ呼び出し方法を使って総供給量や残高を読み取り、トークンを送金し、別のアドレスに一定額までの支出を許可できます。代替可能とは、同じトークンの等しい数量が相互に交換可能であることを意味します。
中核インターフェースには、次のものがあります。
- 供給量と口座残高を読み取る
totalSupplyとbalanceOf。 - 呼び出し元のトークンを送る
transfer。 - 支出者の上限を設定し、読み取る
approveとallowance。 - 所有者の残高から上限内で支出する
transferFrom。 - 送金と承認を記録する
TransferイベントとApprovalイベント。
この標準が定めるのは相互運用性であり、資産の品質ではありません。ERC-20 への準拠は、供給量が固定されていること、公正な市場価値、償還可能性、流動性、安全な管理、さらにはすべての実装が同じように動作することも保証しません。
仕組み
ERC-20 の残高は、アドレスに関連付けられたトークンコントラクトの状態項目です。ウォレットはその状態を表示するもので、独立したトークンファイルを保管しているわけではありません。transfer(to, amount) が成功すると、コントラクトは呼び出し元の残高を減らし、受取人の残高を増やして、Transfer イベントを発行します。通常、ユーザーはネットワークのガス代を ETH で支払います。実行がリバートした場合、トークンの状態変更は取り消されますが、すでに消費されたガスは全額返金されません。
委任による支出にはアローワンスを使います。approve(spender, amount) を呼び出すと、その支出者が呼び出し元の残高から使用できる額が設定されます。支出者はその後 transferFrom(owner, to, amount) を呼び出すことができ、allowance(owner, spender) は残りの上限を返します。承認は、ひとつのネットワーク上にあるひとつのトークンコントラクトの、ひとつの所有者・支出者の組み合わせに属するものであり、ウォレット内のすべての資産に対する許可ではありません。
approve を再度呼び出すと、以前のアローワンスは上書きされます。EIP-20 仕様では、既存のアローワンスを別のゼロでない値に変更する前に 0 に設定するようユーザーインターフェースに注意を促しています。そうしないと、トランザクションの順序によっては支出者が新旧両方の上限を使えるためです。アローワンスを 0 にすれば、その所有者・支出者・トークンの組み合わせに対する将来の transferFrom 呼び出しを止められますが、すでに送金されたトークンを取り戻すことはできません。
EIP-20 では、name、symbol、decimals は任意のメタデータメソッドです。decimals は表示単位に影響しますが、コントラクト内部の整数による会計には影響しません。また、この標準は、トークンをどのように発行または焼却するか、送金を一時停止したり課税したりできるか、アドレスを凍結できるか、プロキシのロジックをアップグレードできるかについても定めていません。こうした動作は、デプロイ済みコード、現在の実装、管理権限を調べて確認する必要があります。
例
あるウォレットが ERC-20 トークンを 1,000 単位保有し、ユーザーが分散型取引所のルーターで 100 単位を交換したいとします。ユーザーはまず approve(router, 100) を送信します。それが成功すると、ルーターは transferFrom(user, pool, 100) を呼び出せます。全額を使用した後、通常の残りのアローワンスは 0 です。承認トランザクションとスワップトランザクションは別々のオンチェーン操作なので、それぞれにガスが必要となる場合があり、どちらも個別に失敗し得ます。
設定可能な最大値を承認すれば承認を繰り返さずに済みますが、ルーター、そのアップグレード権限、または承認を得るために使われたインターフェースが侵害された場合、より多くの額が長期間リスクにさらされます。アローワンスを限定すればそのリスク範囲は狭まりますが、スマートコントラクト、トークン価格、流動性、トランザクションのリスクがなくなるわけではありません。
リスク
- 誤ったコントラクトまたはネットワーク: 名前、シンボル、アイコンは複製できます。対象ネットワーク上のコントラクトアドレスを確認してください。
- 過大なアローワンス: 悪意のある、または侵害された支出者は、未使用のアローワンスを承認上限まで使用する可能性があります。
- 非標準的な動作: 広く使われているトークンの中にも想定どおりに戻り値を返さないものがあり、送金手数料を課す、残高をリベースする、アドレスをブロックする、送金を一時停止するといったものもあります。
- 管理者による制御: 発行、凍結、アップグレード、その他の特権的な操作により、ユーザーが取得した後でもトークンのリスクが変わる場合があります。
- 回復不能な送金: 誤ったアドレスやトークンを処理できないコントラクトへ送ると、回収できなくなる可能性があります。
ERC-20 の標準化は統合時の負担を減らしますが、コントラクト、発行者、カストディ、市場、運用のリスクをなくすものではありません。署名前に、ネットワーク、トークンコントラクト、支出者のアドレス、承認額、トランザクションの呼び出し内容を確認してください。
よくある誤解
誤解 1: ERC-20 という表示があれば、そのトークンは正当である
誰でも、よく知られた名前やシンボルを使ってコントラクトをデプロイできます。この表示はインターフェースに関する主張を示すだけです。コントラクトアドレスを確認したうえで、コード、権限、発行者、流動性、市場をそれぞれ評価してください。
誤解 2: 承認すると、承認したトークンが直ちに送金される
通常、approve はアローワンスを変更するだけで、それ自体が支出者へトークンを移動するわけではありません。後から行われる transferFrom 呼び出しによってトークンが移動します。それでも、未使用のアローワンスは実在する許可であり、使い切る、置き換える、または 0 に設定するまで利用可能な状態が続きます。
誤解 3: すべての ERC-20 トークンは同じように動作する
この標準が規定するのは、最低限の共通インターフェースです。特定の供給方針を義務付けることも、手数料、一時停止、ブラックリスト、リベース、アップグレード可能性を禁止することもありません。統合側は ERC-20 という表示だけに頼らず、実際の実装を考慮する必要があります。
関連トピック
出典
- ERC-20: Token Standard - Ethereum Improvement Proposals (参照日: 2026-08-20)
- ERC-20 Token Standard - Ethereum.org (参照日: 2026-08-20)