“如果我也能拥有自定义代币就好了”——只要 10 分钟,你就能把这句心声变成链上现实。本文以 Goerli 测试网 为例,手把手教你用 Ankr RPC 与 Hardhat 编写、部署一枚完全符合 ERC-20 标准 的代币,并借助 MetaMask 实时查看余额与交易记录。
ERC-20 基础知识快速扫盲
- 同质性(Fungible):每枚代币属性完全一致,可互换。
- 可转账(Transferable):可在任意 EVM 地址间流转。
- 扩展性:所有 DeFi 协议原生支持,流动性最高。
掌握这三个关键词,你已经站在 Web3 创新创业的起跑线。
准备阶段:工具与环境
- MetaMask 浏览器插件
- Node.js ≥ 16.x
- Git(可选)
- Goerli ETH 测试币
步骤 1:安装并配置 MetaMask
打开 MetaMask 官网 完成插件安装后:
- 创建或导入钱包
- 网络下拉菜单 → 选择 Goerli Test Network
步骤 2:领取 Goerli 测试币
访问官方水龙头 Chainlink Faucet:
- 连接钱包 → 点击 Request 0.2 Test ETH
- 30 秒内到账,不可提现但足够部署数次合约
步骤 3:初始化 Hardhat 项目
mkdir erc20-token-demo && cd erc20-token-demo
npm init -y
npm install --save-dev hardhat
npx hardhat选择 Create a JavaScript project,一路回车。安装完毕后:
rm contracts/Greeter.sol scripts/sample-script.js
mkdir -p contracts scripts test
npm install -D dotenv加密的 .env 用于存放私钥,防止误提交:
PRIVATE_KEY=Your_MetaMask_Private_Key_Without_0x声明:私钥只部署本地设备,切勿上传 GitHub。
步骤 4:对接 Ankr 公共 RPC
Ankr 提供高速、免费的 Goerli 节点 无注册即可使用。复制 RPC 端点:
https://rpc.ankr.com/eth_goerli编辑 hardhat.config.js:
require("dotenv").config();
require("@nomicfoundation/hardhat-toolbox");
module.exports = {
solidity: "0.8.20",
networks: {
goerli: {
url: "https://rpc.ankr.com/eth_goerli",
accounts: [process.env.PRIVATE_KEY]
}
}
};步骤 5:编写 ERC-20 智能合约
安装 OpenZeppelin 现成模板:
npm install @openzeppelin/contracts在 contracts/ 新建文件 MyFirstToken.sol,命名即未来代币名:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyFirstToken is ERC20 {
constructor(uint256 initialSupply) ERC20("MyFirstToken", "MFT") {
_mint(msg.sender, initialSupply * 10 ** decimals());
}
}initialSupply填 1000000,表示发行 100 万枚。- 合约编译验证:
npx hardhat compile步骤 6:部署脚本一键上链
新建 scripts/deploy.js:
const hre = require("hardhat");
async function main() {
const MyFirstToken = await hre.ethers.getContractFactory("MyFirstToken");
const token = await MyFirstToken.deploy(1000000);
await token.deployed();
console.log("Token deployed to:", token.address);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});命令行运行:
npx hardhat run scripts/deploy.js --network goerli终端输出一串 42 字符地址,即 ERC-20 代币合约地址,复制保存。
浏览器打开 Goerli Etherscan 输入该地址,查看 合约源码、创建区块、交易哈希,确认部署成功。
步骤 7:MetaMask 手动添加代币
- 在钱包内选择 导入代币
- 填入合约地址 → 符号 MFT、小数点位数 18
- 即可看到 100 万枚 MyFirstToken 躺在余额栏
FAQ:新手最常遇到 5 个问题
Q1:水龙头领不到 Goerli ETH?
A:推特、谷歌登录成功后多次刷新页面;可尝试官方 Discord 二次申请。
Q2:Windows 编译报错 nothing to compile?
A:运行 npm install [email protected] 再次编译即可。
Q3:私钥泄露后果?
A:立即停止该账号,换新地址并转移资产。Hardhat 支持配置文件多网络,可为生产环境单独设置。
Q4:合约已部署还能改总供应量吗?
A:除非在代码内加入 铸币权限,否则不可增发。若想通涨/通缩,请在部署前引入 ERC20Burnable 或 ERC20Capped。
Q5:Mainnet 部署要注意什么?
A:Verify 合约源码、预留足够 ETH 做 Gas、提前做安全审计、引入多签管理。
结语与下一步
恭喜,你已完整部署 自定义 ERC-20 代币,利用 Ankr RPC、Hardhat 与 OpenZeppelin 的标准库仅花费 <0.01 USD 测试网成本。现在可以将代币用于:
- 空投测试(Airdrop)
- Uniswap v3 池子流动性实验
- 去中心化治理 DAO Snapshot 提案代币