区块链、以太坊、加密货币、ERC-20标准、代币发行流程、智能合约、发行代币教程、加密货币代币、DeFi、web3钱包
区块链世界的创新从未停歇:从比特币的转账实验,到以太坊的通用计算,再到层出不穷的ICO与DeFi项目,都在提醒我们——任何人都有机会创造自己的加密代币。本指南将带你亲手完成一次完整的代币发行流程,并用最主流的ERC-20标准在以太坊 Sepolia 测试网部署 100 万枚属于自己的代币。
开始之前:你需要准备的 3 样东西
- Web3 钱包
推荐使用 MetaMask(Chrome 扩展)或任何支持 WalletConnect 的钱包。 - 测试网 ETH
在 Sepolia 网络需消耗少量Gas,可从 Sepolia 官方水龙头领取。 - Chrome 浏览器
MetaMask 与 Remix IDE 当前在 Chrome 下兼容性最佳。
ERC-20 标准到底是什么?
历史与意义
2015 年,德国开发者 Fabian Vogelsteller 在 GitHub 的第 20 条评论里首次提出 ERC-20 协议;2017 年底正式成为 Ethereum Improvement Proposal 20 (EIP-20)。过去,代币开发者各自为政;ERC-20 出现后,统一的接口规范让整个生态的钱包与交易所,都能“一眼识别”你的代币。
6 个硬核函数
要合规地称自己为 ERC-20 代币,必须实现以下函数:
- totalSupply:代币总量上限
- balanceOf:查询指定地址余额
- transfer:直接从合约调用者转账
- transferFrom:第三方代转授权后转账
- approve:授权第三方可动用的额度
- allowance:查询剩余可用授权额度
3 个可选增强字段
- name:代币全称
- symbol:代币符号
- decimals:小数位精度(默认 18)
你可以把 ERC-20 想成“接口”或“模板”,只要完整实现这些函数,就能获得整个 以太坊生态的互通性。
场景化常见疑问 FAQ
| Q1 | 我只有一点 Solidity 基础,能否完成这次教程? |
|---|---|
| A | 可以。我们将使用业界最安全的 OpenZeppelin 库,无需从零编写所有函数。 |
| Q2 | 100 万枚是不是太多了?
| A | 这只是示例数字,稍后你将学会如何自定义总量与符号。
| Q3 | 测试网成功后再上主网,需要改哪些参数?
| A | 网络切换、合约构造函数里的 name/symbol 与 decimals,以及白名单审计即可。
| Q4 | ERC-20 代币能用于哪些 DeFi 场景?
| A | 可以接入任何支持 ERC-20 的流动性池、借贷协议、Yield Farming,甚至返现支付。
| Q5 | Gas 费会不会血本无归?
| A | 在测试网 0 成本试错;正式启用时建议把合约 预编译优化 或用 Layer 2。
实战:5 步发行你的 MyNewToken (MNT)
1️⃣ 拿到测试网 ETH
- MetaMask 切到 Sepolia → 复制收款地址 → 前往水龙头粘贴 → 领取 0.05 ETH
- 提示:若钱包空空,可先用同一地址在主网存在少量历史交易,跳过水龙头人工验证。
2️⃣ 打开 Remix IDE 写合约
- 浏览器地址栏直接输入 remix.ethereum.org
- 左侧目录右键 Create new file → 命名为
MyNewToken.sol
复制并粘贴下方极简代码:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyNewToken is ERC20 {
constructor() ERC20("MyNewToken", "MNT") {
_mint(msg.sender, 1_000_000 * 10 ** decimals());
}
}代码拆解:
import引入经过 200+ 审计的 OpenZeppelin ERC-20 实现_mint向部署者地址 直接铸造 100 万枚(并考虑 18 位小数)
3️⃣ 编译合约
- Solidity Compiler 标签 → 版本选择 ≥ 0.8.20
- 点击 Compile MyNewToken.sol → 绿色 ✅ 出现即代表编译成功
4️⃣ 部署到 Testnet
- 切到 Deploy & Run Transactions,Environment 选 Injected Provider
- Remix 会自动唤起 MetaMask,你需确认 网络:Sepolia
- 点击 Deploy → MetaMask 弹出交易确认 → 耐心等待区块高度 +1
5️⃣ 在区块浏览器查看
- MetaMask → Activity → 点最近交易 → 跳转 Etherscan 测试网版
- Contract Address 复制后可在 钱包自定义代币,符号填 MNT,小数 18,立即看到余额 1,000,000 MNT!
进阶玩法:让你的代币“活”起来
- 添加 Logo 与简介
登录区块链浏览器的合约验证 (Verify & Publish) 页面,上传 tokenURI.json,连接品牌视觉。 - 空投与锁仓
在构造函数中预留若干代币到多签合约地址,未来用transferFrom分批空投。 - 集成 Uniswap
部署配合一个简单的流动性池,让你的代币可以 随时买卖。 - 升级合约
使用 OpenZeppelin 的ERC20Votes或ERC20Permit模块,为治理或跨链桥做准备。
操作错误排查表
| 现象 | 可能原因 | 快速解决 |
|---|---|---|
| Remix 无法编译 | 忘记选 Solidity 版本 0.8.20+ | 下拉框切换版本后重试 |
| MetaMask Gas 估算失败 | 测试网拥堵或额度不足 | 刷新水龙头领取剩余额度 |
| 部署后钱包看不到余额 | 代币未添加 | 粘贴合约地址 → “导入代币” |
一句话总结
只要你具备 Chrome 浏览器、若干测试 ETH 与 5 分钟耐心,就能用短短 20 行 Solidity 带出功能完备、随取随用的 ERC-20 代币。下一步,把这份合约复制到主网,你就正式成为全球 25,000+ 代币发行者之一。祝你在不断演进的区块链浪潮中,玩出自己的新花样!