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

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

xwhb 2026-09-01

ERC20标准简介

在开始开发前,我们需要先理解ERC20是什么,ERC20是以太坊上最广泛代币标准之一,由以太坊社区提出,规范了代币的基本功能(如转账、授权、查询余额等),确保不同代币之间的兼容性和互操作性,遵循ERC20标准的代币可以轻松与钱包、交易所、DApp等工具集成。

ERC20的核心接口包括:

  • 函数totalSupply()(总供应量)、balanceOf(address)(查询地址余额)、transfer(address, uint256)(转账)、transferFrom(address, address, uint256)(授权转账)、approve(address, uint256)(授权)、allowance(address, address)(查询授权额度)。
  • 事件Transfer(address, address, uint256)(转账事件)、Approval(address, address, uint256)(授权事件)。

开发环境准备

在开发ERC20代币前,我们需要搭建以下环境:

安装基础工具

  • Node.js:建议安装LTS版本(v16+),从Node.js官网下载安装。
  • npm:Node.js自带包管理器,无需单独安装。

安装开发框架

我们使用Truffle作为智能合约开发框架,它提供了编译、部署、测试等工具,打开终端,执行:

npm install -g truffle

安装OpenZeppelin合约库

OpenZeppelin提供了经过审计的ERC20标准实现,避免重复造轮子并提升安全性,在项目中安装:

npm install @openzeppelin/contracts

配置本地测试网络

使用Ganache搭建本地以太坊节点,用于测试合约部署和交互。

  • 下载Ganache:Ganache官网(选择桌面版或命令行版)。
  • 启动Ganache,默认会创建10个测试账户,每个账户有100个ETH(用于测试转账Gas费)。

创建Truffle项目

  1. 创建项目文件夹并初始化:
    mkdir my-erc20-token
    cd my-erc20-token
    truffle init
  2. 项目结构说明:
    • contracts/:存放智能合约代码。
    • migrations/:存放部署脚本(用于部署合约到区块链)。
    • test/:存放测试脚本。
    • truffle-config.js:Truffle配置文件(指定网络、编译器等)。

编写ERC20代币合约

我们基于OpenZeppelin的ERC20模板编写代币合约,实现一个名为“MyToken”(简称MTK)的代币,总供应量为1亿(18位小数,ERC20标准要求)。

  1. contracts/目录下创建MyToken.sol如下:
    // 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) { // 部署时铸造1亿代币,18位小数,分配给部署者 _mint(msg.sender, 1000000000 * 10**18); } }

**代码解释**:  
- `SPDX-License-Identifier`:声明许可证(MIT为开源许可证)。  
- `pragma solidity ^0.8.20`:指定Solidity版本(0.8.20及以上,兼容OpenZeppelin)。  
- `import "@openzeppelin/contracts/token/ERC20/ERC20.sol"`:引入OpenZeppelin的ERC20合约。  
- `contract MyToken is ERC20`:继承ERC20合约,获得所有ERC20功能。  
- `constructor`:构造函数,在部署时调用,`_mint()`是ERC20提供的内部函数,用于铸造代币,参数为接收地址和数量(`10**18`是18位小数的精度,1亿代币实际为`1000000000 * 10^18`)。  
## 五、编译智能合约  
在终端执行编译命令:  
```bash
truffle compile

编译成功后,build/contracts/目录下会生成MyToken.json文件,包含合约的ABI(应用二进制接口,用于与合约交互)和字节码(部署到区块链的代码)。

部署合约到本地网络

配置truffle-config.js

打开truffle-config.js,添加本地Ganache网络配置(默认Ganache端口为7545):

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*", // 匹配任何网络ID
    },
  },
  compilers: {
    solc: {
      version: "0.8.20", // 与合约版本一致
    },
  },
};

编写部署脚本

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