:2026-05-21 3:03 点击:1
在区块链世界中,以太坊作为全球最大的智能合约平台,为代币发行提供了成熟的技术生态,无论是社区项目、NFT、稳定币还是治理代币,绝大多数以太坊代币都遵循ERC(以太坊征求意见稿)标准发行,本文将以最主流的ERC-20代币( fungible token,同质化代币)为例,拆解从准备到上线的完整流程,并补充其他常见代币类型的区别,助你零基础掌握以太坊代币发行。
在敲下第一行代码前,清晰的规划是避免“返工”的关键,需要明确三个核心问题:代币用途、代币标准、发行方式。
代币不是“空气”,其价值需要场景支撑,先问自己:
用途越具体,代币设计越合理,也越容易获得社区信任。
以太坊的代币标准主要分为三类,根据需求选择:
代币发行可分为“自主发行”和“通过发行平台发行”:
本文以“自主发行”为例,覆盖从代码到部署的全流程。
编写智能合约需要以太坊开发环境,核心工具包括:Solidity(智能合约编程语言)、Remix IDE(在线开发工具)、MetaMask(钱包插件)。
以太坊上任何操作(如合约部署、转账)都需要支付“Gas”,即网络手续费,以ETH计价,Gas费由“Gas Limit”(最大 gas 量)和“Gas Price”(单位 gas 价格)决定:
部署前需确保MetaMask中有足够的ETH(建议至少0.1 ETH,用于支付gas费)。
ERC-20代币的核心功能由IERC20接口(定义标准方法)和ERC20合约(实现具体逻辑)构成,我们可以基于OpenZeppelin(以太坊安全合约库)的模板编写,避免重复造轮子且降低安全风险。

MyToken.sol。 // 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)。 10**18改为10**6)。 _mint(address1, amount1); _mint(address2, amount2);,为不同地址预设代币。 部署前必须编译合约,检查代码是否存在语法错误。
pragma solidity版本一致(如0.8.20)。 如果需要更复杂的测试(如转账、授权),可使用Remix的“Deploy & Run Transactions”功能:
测试通过后,即可将合约部署到以太坊主网(正式上线的网络)。
本文由用户投稿上传,若侵权请提供版权资料并联系删除!