以太坊上发行代币的完整流程,从零开始创建你的ERC代币

在区块链世界中,以太坊作为全球最大的智能合约平台,为代币发行提供了成熟的技术生态,无论是社区项目、NFT、稳定币还是治理代币,绝大多数以太坊代币都遵循ERC(以太坊征求意见稿)标准发行,本文将以最主流的ERC-20代币( fungible token,同质化代币)为例,拆解从准备到上线的完整流程,并补充其他常见代币类型的区别,助你零基础掌握以太坊代币发行。

发行前的核心准备:明确目标与技术选型

在敲下第一行代码前,清晰的规划是避免“返工”的关键,需要明确三个核心问题:代币用途代币标准发行方式

明确代币用途与经济模型

代币不是“空气”,其价值需要场景支撑,先问自己:

  • 这枚代币用来做什么?(社区治理投票、平台内支付、NFT权益证明、项目生态激励等)
  • 是否需要总量限制?是否需要增发/销毁机制?
  • 是否需要预设特定地址(如团队地址、生态基金地址)的锁仓计划?

用途越具体,代币设计越合理,也越容易获得社区信任。

选择代币标准

以太坊的代币标准主要分为三类,根据需求选择:

  • ERC-20:同质化代币,即每一枚代币完全相同(如SHIB、USDT),适用于支付、稳定币、社区积分等场景。这是最主流的选择,本文重点讲解
  • ERC-721:非同质化代币(NFT),每一枚代币独一无二(如CryptoPunks),适用于艺术品、收藏品、房产凭证等。
  • ERC-1155:多代币标准,支持同质化与非同质化代币共存(如游戏内的道具、货币),适合游戏、元宇宙等复杂场景。

确定发行方式

代币发行可分为“自主发行”和“通过发行平台发行”:

  • 随机配图
    主发行
    :通过编写智能合约直接部署,灵活性高,但需要一定开发能力,适合有技术团队的项目。
  • 发行平台:借助OpenZeppelin、CoinTool等第三方工具,通过可视化界面生成合约,适合零代码基础用户,但定制化较弱。

本文以“自主发行”为例,覆盖从代码到部署的全流程。

技术准备:开发环境与工具部署

编写智能合约需要以太坊开发环境,核心工具包括:Solidity(智能合约编程语言)、Remix IDE(在线开发工具)、MetaMask(钱包插件)

安装必备工具

  • MetaMask:浏览器钱包(支持Chrome、Firefox等),用于管理私钥、与以太坊网络交互、支付部署 gas 费,访问 metamask.io 下载安装,创建钱包并备份助记词(⚠️ 助记词即资产,切勿泄露!)。
  • Remix IDE:在线集成开发环境(无需安装),支持智能合约编写、编译、测试、部署,访问 remix.ethereum.org 即可使用。

了解以太坊网络与Gas

以太坊上任何操作(如合约部署、转账)都需要支付“Gas”,即网络手续费,以ETH计价,Gas费由“Gas Limit”(最大 gas 量)和“Gas Price”(单位 gas 价格)决定:

  • Gas Limit:预估操作消耗的 gas 量,部署ERC-20合约约需 200,000-500,000 gas(具体取决于代码复杂度)。
  • Gas Price:单位 gas 的价格,用Gwei(1 ETH = 10^9 Gwei)表示,价格越高,交易被矿工打包越快(可通过 Etherscan Gas Tracker 查看实时建议价格)。

部署前需确保MetaMask中有足够的ETH(建议至少0.1 ETH,用于支付gas费)。

编写ERC-20代币智能合约(以Solidity为例)

ERC-20代币的核心功能由IERC20接口(定义标准方法)和ERC20合约(实现具体逻辑)构成,我们可以基于OpenZeppelin(以太坊安全合约库)的模板编写,避免重复造轮子且降低安全风险。

在Remix IDE中创建合约

  • 打开Remix IDE,点击左侧“File”图标,创建新文件,命名为MyToken.sol
  • 粘贴以下ERC-20合约代码(以OpenZeppelin 4.9.3版本为例):
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyToken is ERC20, Ownable {
    constructor(string memory name, string memory symbol) ERC20(name, symbol) Ownable(msg.sender) {
        // 代币总量:1亿,18位小数(以太坊标准)
        _mint(msg.sender, 100000000 * 10**18);
    }
}

代码解析

  • SPDX-License-Identifier: MIT:开源协议,声明合约可自由使用。
  • pragma solidity ^0.8.20:指定Solidity编译器版本(0.8.20及以上,避免低版本漏洞)。
  • import "@openzeppelin/contracts/token/ERC20/ERC20.sol":导入OpenZeppelin的ERC-20标准合约,包含totalSupply()balanceOf()transfer()等核心方法。
  • import "@openzeppelin/contracts/access/Ownable.sol":导入所有权合约,限制mint()(增发)等方法仅合约所有者(部署者)可调用。
  • contract MyToken is ERC20, Ownable:继承ERC-20和Ownable,获得代币功能与权限控制。
  • constructor(string memory name, string memory symbol):构造函数,在部署时执行,用于设置代币名称(name)和符号(symbol)。
  • _mint(msg.sender, 100000000 * 10**18):初始铸币,将1亿枚代币(18位小数,实际为1亿*10^18个最小单位)铸造给部署者(msg.sender即MetaMask当前账户)。

自定义参数(可选)

可根据需求调整代码:

  • 修改代币总量:将100000000改为目标数值(如10亿:1000000000)。
  • 增加小数位数:ERC-20标准支持0-18位小数,默认18位(如USDT有6位小数,需将10**18改为10**6)。
  • 添加预分配地址:在构造函数中增加_mint(address1, amount1); _mint(address2, amount2);,为不同地址预设代币。

编译与测试合约:确保代码正确性

部署前必须编译合约,检查代码是否存在语法错误。

编译合约

  • 在Remix IDE左侧点击“Solidity Compiler”图标(第二个)。
  • 确认“Compiler Version”与代码中pragma solidity版本一致(如0.8.20)。
  • 点击“Compile MyToken.sol”,若无报错,下方会显示绿色对勾✅。

测试合约(可选)

如果需要更复杂的测试(如转账、授权),可使用Remix的“Deploy & Run Transactions”功能:

  • 切换到“Deploy & Run Transactions”图标(第三个)。
  • “ENVIRONMENT”选择“Remix VM (London)”——这是Remix内置的本地测试网络,无需真实ETH。
  • “ACCOUNT”选择任意测试账户(默认有多个,每个有10000个测试ETH)。
  • 点击“Deploy”部署合约到测试网络,测试功能无误后再部署到主网。

部署合约到以太坊主网

测试通过后,即可将合约部署到以太坊主网(正式上线的网络)。

连接MetaMask与主网

  • 在Remix“Deploy & Run Transactions”界面,“ENVIRONMENT”选择“Injected Provider - MetaMask”(连接MetaMask钱包)。
  • MetaMask会弹出窗口,确认连接当前网站(需在MetaMask中点击“连接”)。
  • 确认网络为“Ethereum Mainnet”(主网),若显示“Goerli Testnet”等测试网络,需在MetaMask中手动切换到主网(点击右上角网络名称,选择“主网”)。

部署合约

  • “CONTRACT”选择“MyToken - MyToken.sol”(下拉

本文由用户投稿上传,若侵权请提供版权资料并联系删除!