您现在的位置是:首页 > 金融信息

以太坊ERC20代币制作全教程,从零开始创建你的第一个代币

xwhb 2026-09-05

在区块链世界中,ERC20是以太坊上最通用的代币标准之一,它规范了代币的基本功能(如转账、授权、余额查询等),使得不同代币能在以太坊生态中兼容互通,无论是项目方发行治理代币、社区创建 meme 代币,还是开发者构建 DeFi 协议中的中间代币,ERC20 都是最基础的工具,本文将带你从零开始,手把手教你制作一枚属于自己的 ERC20 代币,无需深厚编程基础,跟着步骤就能完成。

准备工作:创建代币前的必备工具

在开始编写代码之前,你需要准备好以下工具和环境,它们是制作 ERC20 代币的“基础设施”:

MetaMask 钱包

MetaMask 是一款浏览器插件钱包,用于管理以太坊账户、私钥,并与智能合约交互(如部署合约、转账代币)。

  • 安装方式:前往 MetaMask 官网(metamask.io)下载浏览器插件(支持 Chrome、Firefox、Edge 等),按照提示创建钱包并备份好助记词(务必妥善保管,丢失后将无法恢复资产)。
  • 获取测试网 ETH:由于部署智能合约需要支付 Gas 费,建议先在以太坊测试网(如 Sepolia、Goerli)上测试,可通过水龙头(faucet)免费获取测试网 ETH,Sepolia 水龙头(sepoliafaucet.com)。

Remix IDE

Remix 是一款基于浏览器的智能合约开发环境,无需本地安装环境,支持 Solidity 编程语言的编写、编译、测试和部署,是新手开发以太坊合约的首选工具。

基础概念了解

  • ERC20 标准:以太坊社区制定的代币接口规范,包含 totalSupply()(总供应量)、balanceOf(address)(地址余额)、transfer(address,uint256)(转账)、transferFrom(address,address,uint256)(授权转账)、approve(address,uint256)(授权)等核心函数。
  • Solidity:以太坊智能合约的编程语言,类似 JavaScript,需了解基本语法(如变量、函数、修饰符等)。
  • Gas:以太坊网络中执行操作(如部署合约、转账)所需的费用,单位为 Gwei(1 ETH = 10⁹ Gwei)。

编写 ERC20 代币智能合约

Remix IDE 提供了可视化界面,我们可以直接在线编写合约,这里推荐使用 OpenZeppelin 的 ERC20 合约库——它是目前最安全、最广泛使用的合约标准,避免了重复造轮子,降低了代码漏洞风险。

步骤1:在 Remix 中创建新文件

打开 Remix IDE,点击左侧“文件”图标(📄),然后点击“Create New File”,命名为 MyToken.sol(文件名后缀 .sol 表示 Solidity 合约)。

步骤2:编写合约代码

MyToken.sol 文件中,输入以下代码(代码已添加详细注释,方便理解):

// SPDX-License-Identifier: MIT // 指定许可证,标识合约的版权信息
pragma solidity ^0.8.20; // 指定 Solidity 版本(0.8.20 是较新的稳定版本)
import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; // 导入 OpenZeppelin 的 ERC20 合约
contract MyToken is ERC20 { // 继承 ERC20 合约,自动实现所有 ERC20 标准功能
    constructor(string memory name, string memory symbol) ERC20(name, symbol) { // 构造函数,初始化代币名称和符号
        _mint(msg.sender, 1000000 * 10**18); // 向合约部署者(msg.sender)铸造 100 万代币,10**18 是 18 位小数(ERC20 标准建议)
    }
}

代码解析:

  • SPDX-License-Identifier: MIT:声明合约使用 MIT 许可证(开源,可自由使用)。
  • pragma solidity ^0.8.20:指定 Solidity 编译器版本(^0.8.20 表示兼容 0.8.20 及以上 0.9.0 以下的版本)。
  • import "@openzeppelin/contracts/token/ERC20/ERC20.sol":从 OpenZeppelin 导入 ERC20 标准合约,避免手动编写复杂的函数逻辑。
  • contract MyToken is ERC20:定义 MyToken 合约,并继承 ERC20,这样 MyToken 自动拥有 transferbalanceOf 等功能。
  • constructor(string memory name, string memory symbol):构造函数,在合约部署时自动执行,用于初始化代币的名称(如 "My Token")和符号(如 "MYT")。
  • _mint(msg.sender, 1000000 * 10**18)_mint 是 ERC20 合约中的内部函数,用于铸造代币。msg.sender 是部署合约的地址(即你的 MetaMask 钱包地址),1000000 * 10**18 表示铸造 100 万代币,乘以 10**18 是因为 ERC20 标准要求代币必须有 18 位小数(类似以太坊的 ETH,最小单位是 wei)。

编译智能合约

编写完代码后,需要将 Solidity 代码编译成以太坊虚拟机(EVM)能够执行的字节码。

步骤1:选择 Solidity 编译器版本

在 Remix IDE 左侧,点击“编译器”图标(⚙️),确保编译器版本与代码中指定的版本一致(如 8.20),如果未显示,点击“Auto Compile”右侧的“手动编译”,然后在“编译器”下拉菜单中选择对应版本。

步骤2:编译合约

点击“编译”按钮(蓝色图标),如果代码无误,Remix 会在下方显示 MyToken.sol 编译成功,并生成 ABI(应用程序二进制接口,定义合约与外部交互的函数接口)和 Bytecode(字节码,EVM 可执行的机器码)。

  • ABI:后续与合约交互时需要用到,可点击“编译”下方的 MyToken.sol 展开后复制 ABI。
  • Bytecode:部署合约时需要用到,Remix 会自动填充,无需手动复制。

部署 ERC20 代币

编译成功后,即可将合约部署到以太坊网络(测试网或主网),这里以 Sepolia 测试网 为例(主网操作类似,但需要真实 ETH 支付 Gas 费)。

步骤1:切换到部署环境

在 Remix IDE 左侧,点击“部署”图标(🚀),然后在“ENVIRONMENT”下拉菜单中选择“Injected Provider - MetaMask”,Remix 会自动连接你的 MetaMask 钱包,并在 MetaMask 弹窗中确认当前网络是否为 Sepolia 测试网(如果不是,需在 MetaMask 中

文章版权声明:除非注明,否则均为新文化在线原创文章,转载或复制请以超链接形式并注明出处。