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

本文将“手把手教你在以太坊上发行自己的代币”,并引导你理解整个过程,让你能够从零开始,创建并部署你的第一个以太坊代币。
在以太坊上发行代币是进入区块链世界、开启去中心化应用(DApp)、社区治理、资产通证化或进行项目众筹的重要一步,无论是创建社区积分、治理代币,还是代表某种权益或资产,ERC-20代币都为你提供了一个标准化、易于兼容的解决方案。
在开始之前,你需要准备以下几样东西:
一个以太坊钱包:
以太坊(ETH):
部署智能合约(即你的代币合约)需要支付Gas费(网络交易费),你需要向MetaMask钱包中转入一些ETH,确保有足够的余额来支付部署过程中的Gas费用,你可以通过交易所购买ETH然后提现到你的MetaMask地址。
代码编辑器:
基本编程知识(可选但推荐):

了解一点Solidity(以太坊智能合约编程语言)和JavaScript/TypeScript会有帮助,但即使没有,我们也会尽量解释。
以太坊上最广泛使用的代币标准是 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:
contracts/token/ERC20/ 目录下的 ERC20.sol 文件。创建你的代币合约文件:
MyToken.sol。MyToken.sol 文件中,这是一个基于OpenZeppelin ERC-20的简单代币合约示例:// 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):
MyToken.sol 代码粘贴进去。pragma 版本兼容(如0.8.20或更高)。获取ABI和Bytecode:
我们将编译好的合约部署到以太坊主网(或测试网)上。
在Remix中切换到 "Deploy & Run Transactions" 选项卡:
MetaMask确认交易:
等待交易确认:
MyToken 合约就成功部署到以太坊上了!合约部署后,你会得到一个合约地址,为了让大家能信任你的代币,并且能在Etherscan等浏览器上查看合约代码,你可以进行合约验证。
访问Etherscan:
点击 "Contract" 标签,"Verify and Publish":