基于Remix 在线 IDE+MetaMask 钱包,零本地开发环境,新手可完整落地;采用 OpenZeppelin 安全标准 ERC20 合约,支持测试网预部署、主网正式发币、合约验证、钱包添加代币全套流程。
风险提示:发行代币、上交易所、募资相关行为需遵守各国法律法规;主网部署消耗真实 ETH,合约上线前务必完成安全审计。
一、前置准备工具
1. MetaMask 浏览器钱包
- Chrome/Firefox 商店安装 MetaMask 插件,创建钱包并离线备份 12 位助记词,严禁泄露私钥;
- 网络切换:
- 测试网:Sepolia(免费测试 ETH,无真实成本,推荐先测试)
- 主网:Ethereum Mainnet(部署消耗真实 ETH)
- 获取 Gas 燃料:
- Sepolia 测试网:水龙头网站领取免费测试 ETH,部署合约约消耗 0.01~0.02 测试 ETH;
- 以太坊主网:交易所充值 ETH,部署 ERC20 合约 Gas 消耗约 0.05~0.1 ETH(随链上拥堵浮动)。
2. Remix Solidity IDE(在线编辑器)
浏览器打开官网:https://remix.ethereum.org,无需安装本地环境。
3. 代币参数提前确定(部署前必填)
表格
| 参数 | 说明 | 通用规范 |
|---|---|---|
| Token Name | 代币全称 | 如Eco Green Coin |
| Symbol | 代币简称 | 3~4 位大写字母,如EGC |
| Decimals | 代币小数位 | 统一 18(ETH、主流代币标准) |
| Total Supply | 代币总发行量 | 数值后补 18 个 0,1 亿代币 = 100000000000000000000000000 |
二、标准安全 ERC20 合约代码(OpenZeppelin)
新建文件MyToken.sol,复制以下代码,内置铸造、销毁、暂停安全功能,无溢出漏洞GitHub。
solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
// 引入OpenZeppelin安全库
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
contract MyToken is ERC20, ERC20Burnable, Ownable, Pausable {
// 构造函数:部署时传入代币名称、代号、总供应量
constructor(
string memory name,
string memory symbol,
uint256 initialSupply
) ERC20(name, symbol) Ownable(msg.sender) {
_mint(msg.sender, initialSupply); // 全部代币铸造给部署者钱包
}
// 紧急暂停所有转账(仅合约拥有者可操作)
function pause() public onlyOwner {
_pause();
}
// 解除转账暂停
function unpause() public onlyOwner {
_unpause();
}
// 增发代币(仅拥有者,可按需关闭此功能)
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}
// 转账前置校验:暂停状态禁止转账
function _update(address from, address to, uint256 value) internal override whenNotPaused {
super._update(from, to, value);
}
}
三、合约编译操作步骤
- Remix 左侧「文件浏览器」新建
MyToken.sol,粘贴上述完整代码; - 左侧切换至「Solidity 编译器」:
- Compiler 版本选择
0.8.20(与合约 pragma 匹配); - 开启「Auto compile 自动编译」;
- 点击「Compile MyToken.sol」,出现绿色对勾即编译成功,红色报错需修正代码CSDN博…。
- Compiler 版本选择
- 编译成功后自动生成 ABI、Bytecode,用于链上部署。
四、部署代币合约(核心步骤)
步骤 1:配置部署环境
左侧切换「部署 & 运行交易」面板:
- Environment 环境下拉选择 Injected Provider – MetaMask;
- MetaMask 弹窗授权 Remix 连接钱包,确认当前网络为 Sepolia 测试网(优先测试);
- Contract 合约下拉选中
MyToken。
步骤 2:填写代币参数并部署
在部署输入框按顺序填入代币全称、代币符号、总发行量:
示例:"Eco Green Coin","EGC",100000000000000000000000000
- 点击「Deploy 部署」,MetaMask 弹出交易确认窗口;
- 自定义 Gas 费用:链上拥堵时调高 Gas Price,避免交易打包失败;
- 点击确认,等待区块打包确认(测试网约 10~30 秒,主网 1~5 分钟)。
步骤 3:保存合约地址
交易确认成功后,部署面板会显示已部署合约,复制合约地址0x...,妥善保存,后续添加钱包、验证合约、DEX 上币均需要。
五、合约源代码验证(Etherscan)
部署完成后,必须验证合约源代码,浏览器可查看合约逻辑,是代币公信力基础:
- 打开 Etherscan 对应网络页面(Sepolia 测试网 / 以太坊主网);
- 搜索框输入代币合约地址,进入合约页面;
- 切换「Contract – 验证合约」,填写信息:
- 编译器版本:0.8.20;
- 开源协议:MIT;
- 上传完整 MyToken.sol 源码;
- 提交验证,几分钟后显示「Contract Verified」完成验证。
六、MetaMask 钱包添加自定义代币
- 打开 MetaMask 插件,切换至「资产」页面,点击「导入代币」;
- 代币合约地址粘贴部署时保存的
0x开头地址; - 自动识别代币符号、小数位,点击「导入」;
- 返回资产列表,即可查看持有的全部代币余额,支持转账、授权操作。
七、代币基础功能操作(Remix 交互面板)
部署成功后,Remix 部署面板会出现合约交互按钮,常用功能:
totalSupply():查询代币总发行量;balanceOf(address):输入钱包地址,查询对应地址代币余额;transfer(to, amount):代币转账,输入接收地址、转账数量;burn(amount):销毁自身持有代币,减少总供应量;mint(to, amount):增发代币(仅部署钱包可调用);pause():紧急冻结全部转账(仅合约拥有者)。
八、测试网→主网完整迁移流程
- 先在 Sepolia 测试网完整走完:编译→部署→验证→钱包添加代币→转账测试;
- 确认合约无逻辑漏洞、转账 / 销毁 / 增发功能正常;
- MetaMask 切换网络为「Ethereum Mainnet」,确保钱包内有充足 ETH 支付 Gas;
- 重复第三、四章节编译、部署步骤,部署至以太坊主网;
- 主网合约部署完成后,同步完成 Etherscan 源码验证。
九、常见问题与故障排查
- 部署交易一直 pending(未打包) 解决:重新发起部署,调高 Gas Price;测试网水龙头补充测试 ETH,确保钱包余额充足。
- 合约编译红色报错 解决:检查 Solidity 版本与代码 pragma 匹配;网络正常加载 OpenZeppelin 依赖库。
- MetaMask 无法识别代币 解决:确认合约地址复制无误;合约已部署成功且区块确认完成。
- 调用 mint/pause 提示报错 解决:仅部署合约的钱包(合约拥有者)可调用管理员权限函数,其他地址无操作权限。
十、合规与安全补充说明
- 安全审计:主网正式上线前,必须委托第三方区块链安全公司审计合约代码,避免漏洞盗币;
- 法律合规:严禁发行代币开展非法募资、ICO;各国对加密资产监管政策不同,发行前需确认本地合规要求;
- 私钥安全:部署代币的钱包私钥、助记词离线存储,不联网备份;不要向任何人泄露私钥,避免代币被盗。
