以太坊作为全球领先的智能合约平台,其ERC20代币标准成为了发行区块链资产最流行的方式之一,无论是用于项目融资、社区激励,还是构建去中心化应用(DApp)内的功能型代币,掌握ERC20代币的制作都具有重要意义,本文将为你提供一份详尽的、从零开始的以太坊ERC20代币制作教程,助你轻松创建属于自己的代币。
准备工作:在开始之前,你需要这些
在动手编写代码和部署合约之前,请确保你已经准备好以下工具和环境:
-
一个以太坊钱包:
- 推荐 MetaMask(浏览器插件钱包,支持Chrome、Firefox等),你需要创建一个新钱包并妥善保存好你的助记词(十二个单词),这是你资产的唯一凭证,绝对不能泄露!
- 从钱包中获取你的地址(Address)。
-
以太坊(ETH):
- 部署智能合约需要支付Gas费(交易手续费),你的钱包中必须有足够的ETH来支付部署过程中产生的Gas费用,你可以通过加密货币交易所购买ETH并转移到你的MetaMask钱包中。
- 建议使用以太坊主网(Mainnet)进行部署,但为了学习和测试,你也可以先选择测试网(如Ropsten, Goerli, Sepolia),测试网ETH可以通过水龙头(Faucet)免费获取。
-
代码编辑器:
- 推荐 Visual Studio Code (VS Code),并安装 Solidity 插件,它提供了语法高亮、代码提示等功能,能极大提升编码体验。
-
开发环境(可选,但推荐):
- Node.js 和 npm:用于安装和管理开发依赖。
- Truffle:一个流行的以太坊开发框架,用于编译、部署和测试智能合约。
- Hardhat:另一个现代化的以太坊开发环境,功能强大,社区活跃。
- Remix IDE:一个基于浏览器的在线Solidity开发环境,无需本地安装,非常适合快速原型开发和初学者。
选择你的开发方式:本地工具 vs 在线IDE
对于初学者,我们推荐使用 Remix IDE,因为它简单直观,无需复杂配置,对于有经验的开发者,可能更倾向于使用 Truffle 或 Hardhat 在本地开发。
本教程将以 Remix IDE 为例进行讲解。
使用Remix IDE创建ERC20代币(详细步骤)
步骤1:访问Remix IDE 打开浏览器,访问 https://remix.ethereum.org/。
步骤2:创建一个新的Solidity文件
在Remix IDE左侧的文件浏览器中,点击“Create New File”图标,创建一个新的文件,例如命名为 MyToken.sol。
步骤3:编写ERC20代币合约代码
在 MyToken.sol 文件中,输入以下ERC20代币的示例代码,这是一个符合ERC20标准的简单代币合约,包含了代币名称、符号、总供应量以及基本的转账功能。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor(string memory name, string memory symbol) ERC20(name, symbol) {
_mint(msg.sender, 1000000 * 10**18); // 初始发行100万代币,18位小数,对应ERC20的decimals
}
}
代码解释:
SPDX-License-Identifier: MIT:许可证标识符,表明该代码遵循MIT许可证。pragma solidity ^0.8.0;:指定Solidity编译器版本,^0.8.0表示使用0.8.0或更高版本(但不包括0.9.0)。import "@openzeppelin/contracts/token/ERC20/ERC20.sol";:导入OpenZeppelin库中的ERC20标准合约,OpenZeppelin提供了经过审计的安全的合约实现,强烈推荐使用。contract MyToken is ERC20 { ... }:定义一个名为MyToken的合约,它继承自OpenZeppelin的ERC20合约。constructor(string memory name, string memory symbol) ERC20(name, symbol) { ... }:构造函数,在合约部署时执行,它接收代币名称(name)和符号(symbol)作为参数,并调用父合约ERC20的构造函数。_mint(msg.sender, 1000000 * 10**18);:_mint是ERC20合约中的内部函数,用于铸造代币,这里向合约部署者(msg.sender)铸造100万个代币。10**18是因为ERC20标准通常建议18位小数,所以乘以10的18次方确保精度。
步骤4:编译合约
- 在Remix IDE左侧,点击“Solidity Compiler”图标(第二个)。
- 确保编译器版本(如0.8.0或更高)与你代码中指定的
pragma版本兼容。 - 点击“Compile MyToken.sol”按钮,如果编译成功,你会看到绿色的对勾。
步骤5:部署合约
- 在Remix IDE左侧,点击“Deploy & Run Transactions”图标(第三个)。
- ENVIRONMENT:选择你的部署环境,如果是测试网或主网,选择“Injected Provider - MetaMask”,这样Remix会连接到你浏览器中MetaMask钱包,如果是本地测试,可以选择“JavaScript VM”。

- CONTRACT:在下拉菜单中选择你刚刚编译的合约
MyToken。 - DEPLOY:点击“Deploy”按钮。
- MetaMask确认:MetaMask会弹出窗口,要求你确认交易,你会看到预估的Gas费,点击“Confirm”。
- 等待部署完成:等待几秒钟,交易被打包到区块后,合约就成功部署了!在“Deployed Contracts”列表中,你会看到你部署的
MyToken合约实例,并显示其合约地址(Contract Address)。请务必复制并保存好这个地址!
步骤6:验证代币
- 打开MetaMask钱包,你应该能看到你刚刚铸造的代币已经出现在资产列表中(可能需要等待几分钟或手动添加代币)。
- 手动添加代币:点击MetaMask顶部的“添加代币” -> “手动添加代币”,输入合约地址,代币符号和 decimals 通常会自动填充(如果不自动,根据你的合约代码填写,decimals是18),然后点击“下一步确认”。
部署到测试网(可选,但推荐先测试)
如果你想在实际部署到主网前在测试网上进行测试,步骤如下:
- 获取测试网ETH:访问对应的测试网水龙头(如Goerli水龙头:https://goerlifaucet.com/),输入你的MetaMask测试网地址获取免费测试ETH。
- 切换MetaMask到测试网:在MetaMask顶部网络选择器中,切换到你选择的测试网(如Goerli Test Network)。
- Remix中连接测试网:在Remix的“Deploy & Run Transactions”界面,确保ENVIRONMENT选择“Injected Provider - MetaMask”,并且MetaMask已切换到测试网。
- 重复步骤4-6:编译、部署合约,并在MetaMask测试网中查看你的测试代币。
部署到主网
当你确认测试网部署一切正常后,就可以将部署过程切换到以太坊主网:
- 确保钱包有足够主网ETH:你的MetaMask钱包中必须有足够支付Gas费的主网ETH。
- 切换MetaMask到主网:在MetaMask中选择“Ethereum Mainnet”。
- Remix中连接主网:Remix的“Deploy & Run Transactions”界面,ENVIRONMENT选择“Injected Provider - MetaMask”。
- 编译并部署:重复编译和部署步骤,部署成功后,你的ERC20代币就正式诞生于以太坊主网了!
后续操作与管理
- 代币信息展示:你可以将代币合约地址提交到以太坊浏览器(如Etherscan:https://etherscan.io/),这样任何人都可以查看代币的详细信息、交易记录、持有者分布等。
- 流动性提供(DEX):如果你的代币希望去中心化交易所(如Uniswap, PancakeSwap)交易,你需要为代币创建流动性池。
- 代币经济模型:如果需要更复杂的功能(如燃烧、转账税、投票权等),可以在合约中添加相应逻辑,或