---
title: "ERC-20トークンとSolidityの完全ガイド(2025)"
description: "Solidity ERC20規格とは何か、その仕組み、使用すべき場面"
---

# ERC-20トークンとSolidityの完全ガイド(2025)

[Ethereumエコシステム](https://www.alchemy.com/dapps/ecosystem/ethereum)には、[スマートコントラクト](https://www.alchemy.com/overviews/solidity-smart-contract)の作成からデプロイまでの機能を表す、多様な規格が存在する。最も一般的な規格はERC-20、ERC-721、ERC-777、ERC-1155であり、それぞれ独自の主要な目的を持つ。

この記事ではERC-20トークンを定義し、その用途をいくつか挙げ、規格に準拠するために開発者が使用する必要のある[Solidityプログラミング言語における必須の関数](https://www.alchemy.com/overviews/solidity-functions)について解説する。[Solidity](https://www.alchemy.com/overviews/solidity)を使って独自のERC-20トークンを作成したい場合、この記事内のガイドラインと定義がその方法についての理解を深めてくれるはずだ。

## **ERC-20トークンとは何か？**

**ERC-20は、EthereumまたはEVM互換ブロックチェーンと互換性のある、代表的なファンジブル仮想通貨トークンである。** これはブロックチェーン上で何でも表現できるデジタル資産として機能し、多くのユースケースに柔軟に対応する。

このプリセットされたスマートコントラクトには特定のインターフェースが含まれており、開発における技術規格として使用できる。開発者はERC-20トークンとそれに関連するトークンルールを活用することで、開発体験を向上させることができる。[Uniswap](https://www.alchemy.com/dapps/uniswap)やSushiSwapといった人気の分散型取引所プロトコルは、いずれもERC-20トークン規格をビルディングブロックとして活用しており、それぞれのエコシステムへのシームレスな互換性と統合を実現している。

### **ERC-20トークンはどのように使われるのか？**

**ERC-20トークンが表現できる対象に制約はないため、典型的な仮想通貨（ETHなど）を超えた用途にも拡張できる。要件として、ERC-20資産はファンジブルであり、譲渡可能であり、最大供給量を制限することもできる。これは報酬、物理的なオブジェクト、企業の株式など、さまざまなものを作成する際に有用である。**

トークン開発の標準化を目的として設計されたERC-20トークンは、Ethereumブロックチェーン上のあらゆるファンジブル資産を表現できる。特定の資産を表す変数（名称、シンボル、供給量など）をいくつか指定するだけで、標準的な挙動とインターフェースを持つERC20トークンを誰でも発行できる。

ERC-20トークンは各トークンが他のトークンと完全に等価であるため、ファンジブルである。個々のトークンに特別な権利や挙動が紐付けられていないため、ERC-20トークン間のこの価値の均等性により、交換媒体、通貨、投票権、ステーキングといった用途で有用となる。

### **なぜERC-20トークン規格が重要なのか？**

ERC-20トークン規格は、ファンジブルトークンに対する特定のアプローチを導入し、それらすべてが類似の特性を共有することを保証する。

[2015年の提案](https://eips.ethereum.org/EIPS/eip-20)以降、ERC-20トークン規格の発展により、他のプロトコル、プラットフォーム、開発者は、新しいトークンごとに特別なロジックを作成することなく、この規格に準拠するあらゆるトークンを利用できるスマートコントラクトを作成できるようになった。スマートコントラクトの標準化は開発プロセスを強化し、ひいては仮想通貨エコシステム全体に大きな恩恵をもたらす。

## **すべてのERC-20トークンにおいて必須のSolidity関数は何か？**

**ERC-20規格には、価値の転送、アドレスの残高照会、その他のメタデータの取得を行うメソッドを含め、規格のあらゆる実装に存在しなければならないメソッドとイベントの集合が含まれている。**

Solidity言語の特徴を理解し、[Ethereum上でERC-20トークンを作成する](https://www.alchemy.com/docs/reference/token-api-overview)ための関数の使い方について実践的な知識を身につけることで、Solidity開発者への道のりを加速させることができる。

### **1. totalSupply**

_totalSupply_ メソッドは、現在流通しているトークンの総供給量を示す。以下は例である：

### **2. balanceOf**

_balanceOf_ メソッドは、特定のウォレットアドレスが保有するトークン数を計算する。以下は例である：

### **3. Transfer**

_transfer_ メソッドは、あるアドレスから別のアドレスへトークンを送信するもので、送信者がトランザクションの発信元となる。以下は例である：

### **4. Approve**

_approve_ メソッドは、他のアドレスが自分に代わってトークンを使用することを許可するものである。これは、自分のトークンへのアクセスを必要とするスマートコントラクトとやり取りする際に有用である。_approve_ メソッドの代表的なユースケースは分散型取引所である。以下は例である：

### **5. transferFrom**

_transferFrom_ メソッドは、_approve_ メソッドと組み合わせて使用すると有用である。誰かに自分のトークンの使用を許可すると、その相手はトランザクションの一部として、自分のアカウントから別のアカウントへ _transferFrom_ を実行できる。良い例としては分散型取引所が挙げられる。以下は例である：

### **6. Allowance**

_allowance_ メソッドは、あるアドレスが別のアドレスに代わって使用できる金額を示す。以下は例である：

## **すべてのERC-20トークンにおいて任意（オプション）のSolidity関数は何か？**

**名称、シンボル、小数点桁数はいずれも任意の関数であり、ERC-20トークンコントラクトの基本インターフェースへの拡張として機能する。** これらの関数は必須ではないが、コントラクトの目的を理解するのに有用な追加情報を提供する。この[コアインターフェース](https://www.alchemy.com/overviews/solidity-interface)は、スマートコントラクトへのさらなるカスタマイズや拡張の基盤として機能する。

### **1. Name**

nameは、コントラクトの目的を定義する人間が読める名称である。以下は例である：

### **2. Symbol**

symbolは、トークンを表すために使用できる人間が読めるティッカーである。ETHやBTCなどと同様である。以下は例である：

### **3. Decimals**

decimalsは、その通貨における最小単位の桁数を定義する。最も一般的なのは18桁で、これはether \([etherの最小単位はwei](https://www.alchemy.com/gwei-calculator)：1 etherは1e18 wei\)と同じ桁数である。

## **ERC-20のデータ構造とは何か？**

残高テーブルや許可額テーブルといったERC-20のデータ構造は、ブロックチェーン上での操作の整理と実装を容易にする。

### **Balances**

トークン残高の内部テーブルは、ウォレットアドレスによる総保有量を追跡するために使用される。各転送は、一方の残高からの減算と、もう一方の残高への加算となる。

### **Allowances**

トークン許可額の内部テーブルは、ウォレットアドレスによる委任された使用量を追跡するために使用される。[ネストされたマッピング](https://www.alchemy.com/overviews/solidity-mapping)を用いて、主キーとなるトークン所有者のアドレスが、使用者のアドレスへとマッピングされ、委任された使用可能額を提供する。

## **Alchemyで開発を始める**

ERC-20規格は、Ethereumエコシステムから生まれた規格の中で最も重要なものであり、最も重要なスマートコントラクトプロトコル全体に広く採用され利用されている。開発者としては、この規格について理解を深める時間を取り、自身のERC-20トークンをデプロイすることを強く推奨する。

[ERC-20トークンについて学ぶ](https://www.alchemy.com/overviews/learn-solidity)にはSolidityプログラミングの基礎とともに、Alchemy UniversityのEthereum Developer Bootcampへの参加登録をご検討いただきたい。
