想亲手把“数字资产”写进区块链,却不知道从哪一步开始?本篇手把手教程浓缩 ERC20 代币标准、Solidity 实战细节与完整部署流程,让你 30 分钟就能发行一条完全属于自己的加密代币。
什么是 ERC20?一句话读懂核心逻辑
- ERC20 = Ethereum Request for Comments #20。
- 它是一套合约接口规范,让所有代币在以太坊生态里互通(钱包、交易所、DeFi 协议都能即插即用)。
- 九大必备函数:
name()、symbol()、decimals()、totalSupply()、balanceOf()、transfer()、transferFrom()、approve()、allowance()。
这九大关键词组成了代币“记账方式”的骨架,简单却强大。
四个日常场景,告诉你 ERC20 到底能做什么
| 场景 | 传统痛点 | ERC20 解法 |
|---|---|---|
| 团体内积分 | Excel 表易篡改 | 链上透明结算 |
| 项目众筹 | 信任问题 | 智能合约锁仓 |
| 游戏道具 | 孤岛经济 | 代币溢出到 DeFi |
| 公司期权 | 记账不透明 | 代码即法律 |
准备工作:三条命令搭好本地环境
- 安装 Node.js(≥ 18 LTS)
npm install --global hardhat(最流行的 Solidity 开发框架)新建项目 & 私钥隔离:
npx hardhat init mkdir secrets && echo ".env" > .gitignore
👉 如果本地配置踩坑,点这里获取一键脚本,秒速跳过常见错误。
手把手:10 行代码生成最小可行代币(MVT)
文件:contracts/MyToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor() ERC20("MyToken", "MTK") {
_mint(msg.sender, 1000000 * 10 ** decimals()); // 发行量 100 万
}
}Hardhat 三连胜:
npx hardhat compile
npx hardhat test
npx hardhat run scripts/deploy.js --network goerli常见坑位与预防
- 精度错位:Solidity 不支持小数,
decimals=18是默认规范,1 代币 = 1e18 wei。 - 转币黑洞:合约地址也能收币,但通常没人持有私钥,千万核对地址。
- approve 无限授权:传统做法
approve(spender, 2^256-1)虽省 Gas,但存在被钓鱼风险,新版 Dapp 建议每次按需授权。
FAQ | 新手机率问答
Q1:刚发行,为什么会提示 “Insufficient Allowance”?
A:合约默认不会自动授权他人动你的币。调用 approve(spender, amount) 解决,链上交互时也别忘了留足 Gas。
Q2:18 位 decimals 能改吗?
A:可以,但主流钱包会按 18 位显示 UI,改成 8 位后,用户看到的余额会乘以 10^10,体验崩坏。除非做特定行业(如游戏 0 位 decimals),否则别动。
Q3:ERC20 与 ERC777、BEP20、TRC20 差别?
A:
- ERC777:向下兼容 ERC20,新增钩子回调,但复杂度剧增。
- BEP20:Binance Smart Chain 的 ERC20 克隆,接口一摸一样。
- TRC20:Tron 版 ERC20,底层语言为 Solidity + TVM,手续费以能量计算。
进阶玩法:30 秒把代币加进 MetaMask 自动识别
- 打开移动端 MetaMask → 添加代币 → 合约地址自动填充其余字段
- 如果找不到,把
MyToken、MTK、18 decimals 手工填进去即可。 - 上线去中心化交易所只需添加流动性;主流聚合器(Uniswap、Sushi)会自动发现。
👉 这里有一份“主流测试网水龙头导航”,轻松领取 Goerli ETH 免 Gas 费
实战案例:如何用新代币换来首场“流动性首矿”
- 准备 0.3 ETH + 等量 MyToken → Uniswap V2 Pair → 获得 LP Token
- 把 LP 质押到激励池 → 实时获得治理代币奖励
- 在社区宣告 “提供流动性抽奖” → 30 分钟攻占社媒热搜
写在最后的三句话
- ERC20 只是开始:理解记账接口后,可继续向 NFT、DAO、DeFi 拓展。
- 代码即法律,审计要跟得上:上主网前读 OpenZeppelin 的 Checklist,或直接用 Defender 一键扫描。
- 牛市熊市都一样:会写合约,你自带“印钞机”;会读合约,你自带“防火墙”。
准备好了吗?现在就打开编辑器,把上文的 10 行代码黏进去,下一个代币创始人也许就是正在阅读的你。