手把手教你在以太坊上发行自己的代币,从零开始打造你的首个以太坊钱包代币
“手把手教以太坊钱包发行”——这个说法可能需要稍微澄清一下,通常我们所说的“发行代币”,并不是指发行一个全新的、独立的“钱包”应用(如MetaMask、Trust Wallet这样的软件本身),而是在以太坊(或兼容以太坊的网络,如BNB Chain、Polygon等)的区块链上,遵循一定的代币标准(最常见的是ERC-20),创建一种新的数字代币,这种代币可以存放在支持该标准的以太坊钱包中。

本文将“手把手教你在以太坊上发行自己的代币”,并引导你理解整个过程,让你能够从零开始,创建并部署你的第一个以太坊代币。
前言:为什么要在以太坊上发行代币?
在以太坊上发行代币是进入区块链世界、开启去中心化应用(DApp)、社区治理、资产通证化或进行项目众筹的重要一步,无论是创建社区积分、治理代币,还是代表某种权益或资产,ERC-20代币都为你提供了一个标准化、易于兼容的解决方案。
第一步:准备工作——工欲善其事,必先利其器
在开始之前,你需要准备以下几样东西:
-
一个以太坊钱包:
- 推荐MetaMask:这是最流行、最易用的浏览器钱包插件,它可以帮助你管理以太坊地址、私钥,并与区块链进行交互(发送交易、部署合约等)。
- 安装与配置:在浏览器(如Chrome、Firefox)中搜索并安装MetaMask扩展,然后按照提示创建钱包并妥善备份你的助记词(Seed Phrase),这相当于你的私钥,丢失将意味着资产永久丢失!
-
以太坊(ETH):
部署智能合约(即你的代币合约)需要支付Gas费(网络交易费),你需要向MetaMask钱包中转入一些ETH,确保有足够的余额来支付部署过程中的Gas费用,你可以通过交易所购买ETH然后提现到你的MetaMask地址。
-
代码编辑器:
- 推荐VS Code:一款免费、强大的代码编辑器,支持多种编程语言和插件。
-
基本编程知识(可选但推荐):

了解一点Solidity(以太坊智能合约编程语言)和JavaScript/TypeScript会有帮助,但即使没有,我们也会尽量解释。
第二步:选择代币标准——ERC-20是基石
以太坊上最广泛使用的代币标准是 ERC-20,它定义了一套接口(Interface),确保所有ERC-20代币都具有相同的基本功能,如:
totalSupply():总供应量balanceOf(address):查询某个地址的代币余额transfer(address, uint256):转账代币transferFrom(address, address, uint256):授权后转账approve(address, uint256):授权某个地址花费你的代币allowance(address, address):查询授权额度
我们今天的任务就是部署一个符合ERC-20标准的代币合约。
第三步:编写或获取代币合约代码
对于简单的代币,我们可以直接使用OpenZeppelin提供的经过审计和广泛测试的ERC-20合约模板,这是最安全、最推荐的方式。
-
访问OpenZeppelin Contracts:
- 打开OpenZeppelin的GitHub仓库:https://github.com/OpenZeppelin/openzeppelin-contracts
- 我们主要关注
contracts/token/ERC20/目录下的ERC20.sol文件。
-
创建你的代币合约文件:
- 在你的项目文件夹中,创建一个新的Solidity文件,
MyToken.sol。 - 将以下代码复制到
MyToken.sol文件中,这是一个基于OpenZeppelin ERC-20的简单代币合约示例:
- 在你的项目文件夹中,创建一个新的Solidity文件,
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor(string memory name, string memory symbol) ERC20(name, symbol) {
// 在部署时,向合约部署者(也就是你)发行一定数量的代币
// _msgSender() 是OpenZeppelin提供的一个函数,返回调用当前交易的人的地址
_mint(_msgSender(), 1000000 * 10**18); // 发行100万代币,18是小数位数
}
}
代码解释:
SPDX-License-Identifier: MIT:许可证标识。pragma solidity ^0.8.20;:指定Solidity编译器版本。import "@openzeppelin/contracts/token/ERC20/ERC20.sol";:导入OpenZeppelin的ERC-20合约。contract MyToken is ERC20 { ... }:定义一个名为MyToken的合约,它继承自ERC20。constructor(string memory name, string memory symbol) ERC20(name, symbol) { ... }:构造函数,在合约部署时执行一次。name和symbol是代币的全称和符号(如 "My Awesome Token" 和 "MAT")。_mint(_msgSender(), 1000000 * 10**18);:_mint是ERC-20合约内部的一个函数,用于铸造新代币,这里我们向合约部署者(_msgSender())铸造了100万代币。10**18是因为ERC-20标准通常使用18位小数,所以100万实际是1000000 * 10^18个最小单位。
第四步:编译智能合约
你需要一个Solidity编译器来将你的 .sol 代码编译成以太坊虚拟机(EVM)可以理解的字节码(Bytecode)和ABI(Application Binary Interface,应用程序二进制接口,是与合约交互的接口)。

-
使用在线编译器(如Remix IDE):
- 访问 Remix IDE(这是一个基于浏览器的Solidity开发环境,非常适合初学者)。
- 在Remix中,创建一个新文件,将你刚才写的
MyToken.sol代码粘贴进去。 - 在 "Solidity Compiler" 选项卡中,确保编译器版本与你的代码中指定的
pragma版本兼容(如0.8.20或更高)。 - 点击 "Compile MyToken.sol" 按钮,如果编译成功,你会在 "Compile" 选项卡下看到绿色的对勾。
-
获取ABI和Bytecode:
- 编译成功后,在 "Compile" 选项卡下展开你的合约,点击 "ABI" 旁边的复制按钮,将其保存下来(后续部署会用到)。
- 同样,点击 "Bytecode" 旁边的复制按钮,将其保存下来。
第五步:部署智能合约到以太坊网络
我们将编译好的合约部署到以太坊主网(或测试网)上。
-
在Remix中切换到 "Deploy & Run Transactions" 选项卡:
- ENVIRONMENT:选择 "Injected Provider - MetaMask",这样Remix会连接到你浏览器中已安装的MetaMask钱包。
- ACCOUNT:确认MetaMask账户是否正确,并且有足够的ETH支付Gas费。
- CONTRACT:确保选择的是 "MyToken" 合约。
- DEPLOY:点击 "Deploy" 按钮。
-
MetaMask确认交易:
- 点击Deploy后,MetaMask会弹出一个交易确认窗口,你会看到交易的Gas费估算。
- 仔细检查信息无误后,点击 "Confirm"。
-
等待交易确认:
- 交易被发送到以太坊网络后,需要等待几个区块确认(通常几十秒到几分钟不等),你可以在MetaMask或Etherscan(以太坊浏览器)上查看交易状态。
- 交易确认成功后,你的
MyToken合约就成功部署到以太坊上了!
第六步:验证你的代币(可选但推荐)
合约部署后,你会得到一个合约地址,为了让大家能信任你的代币,并且能在Etherscan等浏览器上查看合约代码,你可以进行合约验证。
-
访问Etherscan:
- 打开 Etherscan,在搜索框中输入你的合约地址(可以在Remix的 "Deploy" 选项卡下方找到)。
-
点击 "Contract" 标签,"Verify and Publish":
- 按照提示填写信息:
- Contract Address:自动填充。
- Contract Compiler Type:选择 "Solid
- 按照提示填写信息:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。




