在区块链和加密货币的世界里,以太坊(Ethereum)无疑是最具影响力的平台之一,其智能合约功能使得创建自定义代币成为可能,而ERC20标准则成为了以太坊上最主流、最成熟的代币技术标准,无论是用于项目融资、社区激励,还是构建去中心化应用(DApp)的经济系统,掌握ERC20代币的创建方法都具有重要意义,本文将为你提供一份详尽的、从零开始的以太坊ERC20代币制作教程。
准备工作:在开始之前,你需要什么?
在动手编写智能合约和部署代币之前,请确保你已经准备好以下工具和知识:
- 一个以太坊钱包:这是你管理以太坊及ERC20代币的工具,推荐使用MetaMask(浏览器插件钱包,支持Chrome、Firefox等),它操作简单且与大多数DApp兼容,确保你已经妥善备份了助记词!
- 以太币(ETH):部署智能合约需要支付矿工费(Gas Fee),你需要向你的MetaMask钱包中转入少量ETH,确保余额足以支付部署过程中的Gas费用,建议在以太坊主网(Mainnet)或测试网上操作,测试网ETH可以通过“水龙头”(Faucet)免费获取。
- 基本的编程知识:虽然本文会提供详细代码,但了解Solidity语言的基础语法(如变量、函数、修饰符等)会帮助你更好地理解代币的结构和功能,你可以通过Solidity官方文档或在线教程学习。
- 代码编辑器:如Visual Studio Code(VS Code),并安装Solidity相关插件(如Solidity by Juan Blanco)以获得更好的代码高亮和提示。
- 以太坊节点或第三方服务:你需要一个与以太坊网络交互的方式,可以直接连接到以太坊节点,但对于初学者,使用第三方开发平台更为便捷,如 Remix IDE,Remix是一个基于浏览器的Solidity智能合约开发环境,无需本地配置,即可编写、编译、测试和部署智能合约,强烈推荐初学者使用。
使用Remix IDE创建ERC20代币(详细步骤)
Remix IDE是我们本次教程的主要工具,它极大地简化了智能合约的开发和部署流程。
步骤1:打开Remix IDE 在浏览器中访问 https://remix.ethereum.org/ 即可打开Remix IDE。
步骤2:创建新的智能合约文件
在Remix IDE左侧的文件浏览器中,点击“Create New File”图标,创建一个新的Solidity文件,将其命名为 MyToken.sol(或你喜欢的任何名字,后缀为.sol)。
步骤3:编写ERC20智能合约代码
在 MyToken.sol 文件中,我们将编写一个符合ERC20标准的代币合约,ERC20标准定义了一系列接口(Interface),包括代币名称、符号、总供应量、转账、授权等功能,我们可以直接使用OpenZeppelin库提供的经过审计和广泛测试的ERC20实现,这比自己从头编写更安全可靠。
以下是使用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(msg.sender, 1000000 * 10**decimals()); // 初始供应量:1,000,000代币,小数位默认18位
}
}
代码解释:
// SPDX-License-Identifier: MIT:指定Solidity许可证标识符,MIT是一个宽松的开源许可证。pragma solidity ^0.8.20;:指定Solidity编译器版本,^0.8.20表示使用0.8.20到0.9.0(不含0.9.0)之间的版本。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) { ... }:构造函数,在合约部署时调用,它接收代币名称(name)和符号(symbol)作为参数,并传递给父类ERC20的构造函数。_mint(msg.sender, 1000000 * 10**decimals());:_mint是ERC20合约中的内部函数,用于铸造代币,这里我们向合约部署者(msg.sender)铸造1,000,000个代币。10**decimals()是为了考虑ERC20标准默认的18位小数,确保供应量是正确的整数倍(1,000,000 * 10^18 = 1e24,即实际存储的单位)。
步骤4:编译智能合约
- 在Remix IDE左侧,点击“Solidity Compiler”图标(第二个图标)。
- 确保编译器版本(Compiler Version)与你代码中指定的
pragma solidity版本兼容(例如0.8.20)。 - 点击“Compile MyToken.sol”按钮,如果编译成功,下方会显示一个绿色的对勾。
步骤5:部署智能合约
- 在Remix IDE左侧,点击“Deploy & Run Transactions”图标(第三个图标)。
- ENVIRONMENT(环境):选择你想要部署的网络,如果你想在测试网上部署,选择“Injected Provider - MetaMask”,这将连接到你浏览器中的MetaMask钱包,确保MetaMask切换到了对应的测试网络(如Goerli测试网),如果是主网,同样选择“Injected Provider - MetaMask”并确保MetaMask是主网。
- CONTRACT(合约):从下拉菜单中选择你刚刚编译的
MyToken合约。 - DEPLOY(部署):点击“Deploy”按钮。
- MetaMask确认:MetaMask会弹出交易确认窗口,显示部署合约需要支付的Gas费用,检查无误后,点击“Confirm”。
- 等待部署完成:等待几秒钟,交易被打包到区块后,Remix的部署日志区域会显示“Contract deployment finished”,并显示你的代币合约地址。
步骤6:验证代币
- 在MetaMask中查看:如果你的代币是标准的ERC20代币,MetaMask有时会自动检测并添加到资产列表中,如果没有,你可以手动添加:
- 打开MetaMask,点击“添加代币”。
- 选择“自定义代币”。
- 粘贴你部署时获得的代币合约地址。
- 代币符号(Symbol)和小数位数(Decimals)通常会自动填充(基于合约信息),如果没有,手动输入你代码中定义的符号(如“MyToken”)和18(如果按默认)。
- 点击“下一步”并添加。
- 使用区块浏览器验证:将你的代币合约地址复制到以太坊主网或对应测试网的区块浏览器中(如Etherscan: https://etherscan.io/ 或测试网版本),你可以查看到合约的源代码、交易记录、持有者等信息。
代币参数说明与自定义
在上面的示例代码中,我们定义了一些基本参数:








