在区块链的世界里,以太坊(Ethereum)无疑是最具影响力的平台之一,它不仅支持智能合约的部署,还催生了代币经济的繁荣,而ERC20标准,作为以太坊上应用最广泛的代币技术标准,使得创建一种新的代币变得相对简单和标准化,本文将带你了解ERC20是什么,并一步步指导你如何创建自己的以太坊ERC20代币。
什么是ERC20?
ERC20(Ethereum Request for Comments 20)是一个技术标准,用于在以太坊区块链上发行同质化代币(Fungible Tokens),同质化代币意味着每个代币都是完全相同的,可以相互替代,就像比特币或法定货币一样,ERC20标准定义了一组规则和接口,确保所有ERC20代币都具有一致的行为方式,从而能够在钱包、交易所和其他dApp(去中心化应用)中无缝兼容。

ERC20标准要求代币合约至少实现以下基本函数:
- name(): 返回代币的名称("My Token")。
- symbol(): 返回代币的符号("MTK",通常2-3个字符)。
- decimals(): 返回代币的小数位数(18,类似于以太坊的wei)。
- totalSupply(): 返回代币的总供应量。
- balanceOf(address _owner): 返回指定地址的代币余额。
- transfer(address _to, uint256 _value): 向指定地址转移代币。
- transferFrom(address _from, address _to, uint256 _value): 从指定地址转移代币(通常需要先授权)。
- approve(address _spender, uint256 _value): 授权某个地址可以花费你的代币。
- allowance(address _owner, address _spender): 返回授权地址可以花费的代币数量。
还包括两个事件:
- Transfer(address indexed _from, address indexed _to, uint256 _value): 代币转移事件。
- Approval(address indexed _owner, address indexed _spender, uint256 _value): 授权事件。
遵循这些标准,确保了代币的互操作性和易用性。
创建ERC20代币的步骤
创建ERC20代币主要有两种方式:使用现有平台(无代码/低代码)和编写智能合约代码,对于初学者,推荐使用现有平台;对于有开发经验且需要高度定制化的用户,编写代码是更好的选择。

使用现有平台(如 Remix IDE + OpenZeppelin 模板)
Remix IDE 是一个基于浏览器的智能合约开发环境,非常适合初学者。
-
安装和打开Remix IDE:
- 访问 remix.ethereum.org,无需安装,直接在浏览器中使用。
-
创建新合约文件:
- 在Remix左侧的文件 explorers 中,点击 "Create New File"。
- 命名文件,
MyToken.sol。
-
引入ERC20标准合约:

- 为了避免重复造轮子并确保安全性,我们通常使用OpenZeppelin库提供的经过审计的ERC20合约模板。
- 在
MyToken.sol文件中,首先引入OpenZeppelin的ERC20合约:// SPDX-License-Identifier: MIT pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 { constructor(string memory name, string memory symbol) ERC20(name, symbol) { // 在构造函数中 Mint 初始供应量给部署者 _mint(msg.sender, 1000000 * 10**decimals()); } }
* **代码解释**: * `SPDX-License-Identifier` 和 `pragma solidity` 是Solidity合约的标准开头。 * `import "@openzeppelin/contracts/token/ERC20/ERC20.sol";` 导入了OpenZeppelin的ERC20合约。 * `contract MyToken is ERC20` 定义了一个名为 `MyToken` 的合约,它继承自 `ERC20`。 * `constructor(string memory name, string memory symbol) ERC20(name, symbol)` 是合约的构造函数,在部署时执行,它接收代币名称和符号作为参数,并传递给父类ERC20的构造函数。 * `_mint(msg.sender, 1000000 * 10**decimals());` 在部署时向合约部署者地址铸造(mint)100万个代币,`10**decimals()` 是为了考虑小数位数(默认为18,所以实际是1000000 * 10^18)。 -
编译合约:
- 在Remix左侧,切换到 "Solidity Compiler" 选项卡(第二个图标)。
- 确保编译器版本与代码中的
pragma solidity版本匹配(^0.8.20)。 - 点击 "Compile MyToken.sol" 按钮,如果编译成功,会看到绿色的对勾。
-
部署合约:
- 在Remix左侧,切换到 "Deploy & Run Transactions" 选项卡(第三个图标)。
- "ENVIRONMENT" 选择 "Remix VM (Shanghai)" - 这是一个本地模拟环境,适合测试。
- "ACCOUNT" 选择一个测试账户(默认会有几个带有100个模拟ETH的账户)。
- "CONTRACT" 选择 "MyToken"。
- 在 "Deploy" 按钮上方,你可以输入代币的名称("My Awesome Token")和符号("MAT")。
- 点击 "Deploy" 按钮。
- 在弹出的交易确认窗口中,点击 "Confirm"。
- 部署成功后,你会在 "Deployed Contracts" 部分看到你的合约地址,复制这个地址,这就是你代币的唯一标识。
-
测试代币:
- 在 "Deployed Contracts" 部分,展开你的合约实例。
- 你可以调用
name(),symbol(),totalSupply(),balanceOf()等函数来查看代币信息。 - 你可以尝试
transfer()函数,将代币转给另一个测试账户地址。
使用专业的代币发行平台
除了Remix,还有许多在线平台(如TokenTool、CoinTool等)提供图形化界面,让你只需填写一些基本信息(代币名称、符号、总供应量、小数位数、是否添加手续费等)即可生成和部署ERC20代币,无需编写代码,这种方式更为便捷,但灵活性和安全性可能需要仔细甄别。
创建ERC20代币的注意事项
- 安全性:如果你选择编写代码,务必使用像OpenZeppelin这样经过广泛审计和验证的库,避免使用未经验证的合约模板,以免存在安全漏洞导致代币被盗或损失。
- 成本(Gas费):在以太坊主网上部署智能合约需要支付Gas费,费用根据网络拥堵程度而变化,测试网部署通常免费或成本极低。
- 代币经济模型:在发行代币前,仔细考虑你的代币用途、总供应量、分配机制、是否需要增发(mint)或销毁(burn)功能等,一个合理的经济模型对代币的长期发展至关重要。
- 法律合规性:发行代币可能涉及法律监管问题,如果你计划进行ICO/IEO或让你的代币在交易所交易,务必了解并遵守相关法律法规。
- 社区和宣传:代币创建成功只是第一步,后续的社区建设、应用场景开发和价值宣传同样重要。
创建一个以太坊ERC20代币已经不再是遥不可及的技术难题,借助Remix IDE等开发工具和OpenZeppelin等安全库,即使是初学者也能在短时间内完成代币的创建和部署,技术实现只是起点,真正考验的是代币背后的价值、应用场景以及社区的认可,在投身代币 creation 之前,务必做好充分的调研、规划和风险评估,让你的代币不仅存在于区块链上,更能为用户创造实际价值。

