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

以太坊发币实战,使用web3.js从零构建你的第一个ERC20代币

xwhb 2026-11-04

在区块链生态中,以太坊作为“世界计算机”,凭借其智能合约平台地位,成为加密货币和去中心化应用(DApp)的核心基础设施,而ERC20代币标准(以太坊请求注解20)作为以太坊上代币的“通用语言”,让各类资产(如稳定币、治理代币、积分等)能够轻松在以太坊网络中流通。

要创建ERC20代币,除了编写智能合约外,还需要通过前端与区块链交互,完成合约部署、代币转账等操作。web3.js是以太坊官方提供的JavaScript库,它封装了与以太坊节点通信的接口,让开发者能够通过JavaScript直接调用智能合约、读写链上数据,是连接DApp前端与区块链的“桥梁”。

本文将以实战为核心,带你从零开始,使用Solidity编写ERC20代币合约,并通过web3.js实现合约部署与代币交互,最终完成一个完整的“以太坊发币”流程。

环境准备:搭建开发与测试环境

在开始编码前,我们需要准备以下工具和环境,确保后续开发顺利:

基础开发工具

  • Node.js:JavaScript运行时环境(建议版本≥16),用于执行JavaScript代码和管理依赖。
  • npm/yarn:包管理工具,用于安装web3.js等库。
  • 代码编辑器:如VS Code,支持Solidity和JavaScript语法高亮。

区块链网络交互工具

  • MetaMask:浏览器钱包插件,用于管理以太坊账户、私钥,以及连接测试网络/主网,下载并安装MetaMask后,需创建一个测试账户(点击“创建账户”),并记录12助记词(妥善保管,丢失即丢失资产)。
  • 测试网络:为了避免在以太坊主网(Mainnet)上产生真实 gas 费用,我们使用Goerli测试网(一个公共测试网,可通过“网络”切换添加),前往Goerli水龙头(需支持MetaMask登录),免费获取测试以太坊(ETH),用于支付部署和交互的 gas 费。

智能合约开发工具

  • Remix IDE:基于浏览器的Solidity智能合约开发环境,无需本地配置,支持编译、测试、部署合约,访问Remix IDE即可使用。

编写ERC20智能合约

ERC20标准定义了代币的6个核心接口(如totalSupply、balanceOf、transfer等),开发者可以直接继承OpenZeppelin提供的ERC20合约,快速实现标准代币功能,避免重复造轮子。

创建合约文件

打开Remix IDE,在“文件”面板中创建新文件,命名为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) {
        // 初始供应量:1000万代币,18位小数(ERC20标准)
        _mint(msg.sender, 1000000 * 10**18);
    }
}

代码解析:

  • SPDX-License-Identifier:开源协议标识,MIT协议允许自由使用和修改。
  • pragma solidity ^0.8.20:指定Solidity编译器版本(0.8.20及以上,0.8.x以下兼容)。
  • import "@openzeppelin/contracts/token/ERC20/ERC20.sol":引入OpenZeppelin的ERC20标准合约,它已实现所有ERC20接口。
  • contract MyToken is ERC20:定义MyToken合约,继承ERC20合约,自动获得标准代币功能。
  • constructor:构造函数,在合约部署时执行。name和symbol分别代表代币全称(如“My Token”)和简称(如“MTK”);_mint(msg.sender, 1000000 * 10**18)向部署者地址 mint 1000万代币(10**18是18位小数精度,符合ERC20标准)。

编译合约

在Remix IDE的“编译”面板(图标为锤子),确保编译器版本为8.20,点击“编译MyToken.sol”,若出现绿色对勾,表示编译成功。

使用web3.js部署合约

编写完合约后,我们需要通过web3.js将合约部署到以太坊测试网,这里以Goerli测试网为例,结合MetaMask和Infura(以太坊节点服务商)实现。

安装web3.js

在本地项目目录下(可通过终端创建my-token-project并进入),初始化npm项目并安装web3.js:

npm init -y
npm install web3

连接以太坊节点

Infura提供免费的以太坊节点服务,注册后可创建Goerli测试网节点。

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