以太坊发行代币全攻略,从零开始创建你的第一个ERC代币
以太坊作为全球领先的智能合约平台,不仅支持加密货币以太坊(ETH)的交易,更重要的是,它使得任何人都可以在其区块链上发行自己的代币,这些代币遵循以太坊上的标准,其中最著名和广泛使用的是ERC-20标准(用于 fungible tokens,即同质化代币,如交易所的交易币)和ERC-721标准(用于 NFTs,即非同质化代币,每个代币独一无二),本教程将以最常用的ERC-20代币为例,带你一步步了解如何在以太坊上发行自己的代币。

重要提示: 发行代币涉及技术、财务和法律风险,在尝试之前,请确保你已充分了解相关风险,并可能需要咨询法律和财务专业人士,本教程仅供学习和参考,不构成任何投资建议。
第一部分:发行代币前的准备工作
在开始编写智能合约之前,你需要准备以下工具和环境:
-
一个以太坊钱包:
- 这是你与以太坊交互的工具,用于存储ETH和代币,以及支付交易费用。
- 推荐使用 MetaMask,它是一款浏览器扩展钱包,支持Chrome、Firefox等,使用广泛且易于上手。
- 访问 MetaMask 官网 (metamask.io) 下载并安装,按照提示创建钱包并妥善保存好你的助记词(Seed Phrase),这是你找回钱包的唯一凭证,绝对不要泄露给他人。
-
以太币(ETH):
- 在以太坊网络上执行任何操作(包括部署智能合约)都需要支付 gas 费用,这个费用是以 ETH 支付的。
- 确保你的 MetaMask 钱包中有足够的 ETH,用于支付部署代币合约时的 gas 费,费用会根据网络拥堵程度而变化。
-
代码编辑器:

- 用于编写和修改智能合约代码,推荐使用 Visual Studio Code (VS Code),它免费且功能强大,并支持 Solidity 语言插件。
-
Solidity 编译器:
- Solidity 是以太坊智能合约的主要编程语言,你可以在 VS Code 中安装 Solidity 插件,它内置了编译器,方便你编译代码。
-
(可选)Remix IDE:
- 如果你不想在本地配置环境,可以使用 Remix IDE,它是一个基于浏览器的 Solidity 开发环境,无需安装,非常适合初学者快速上手和测试智能合约,本教程将以 Remix IDE 为例进行讲解,因为它更简洁直观。
第二部分:使用 Remix IDE 创建 ERC-20 代币
Remix IDE 是一个对初友好的在线工具,我们通过它来创建和部署代币合约。
-
访问 Remix IDE:
- 打开浏览器,访问
remix.ethereum.org。
- 打开浏览器,访问
-
创建新文件:

- 在 Remix IDE 左侧的文件浏览器中,点击“新建文件”图标,创建一个新文件,命名为
MyToken.sol(或你喜欢的任何名字,后缀必须是.sol)。
- 在 Remix IDE 左侧的文件浏览器中,点击“新建文件”图标,创建一个新文件,命名为
-
编写 ERC-20 代币合约代码:
- 在右侧的代码编辑区,粘贴以下标准的 ERC-20 代币合约代码,这是一个非常基础的代币合约,包含了代币名称、符号、总供应量以及基本的转账功能。
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MyToken is ERC20 { constructor(uint256 initialSupply) ERC20("My Token", "MTK") { _mint(msg.sender, initialSupply); } }代码解释:
SPDX-License-Identifier: MIT:声明许可证类型。pragma solidity ^0.8.0;:指定 Solidity 编译器版本,这里使用 0.8.0 或更高版本。import "@openzeppelin/contracts/token/ERC20/ERC20.sol";:导入 OpenZeppelin 库中的标准 ERC-20 合约实现,OpenZeppelin 提供了经过审计的安全合约模板,强烈建议使用,而不是自己从头实现所有逻辑,以避免安全漏洞。contract MyToken is ERC20 { ... }:定义一个名为MyToken的新合约,它继承自 OpenZeppelin 的ERC20合约,因此自动获得了所有 ERC-20 标准的功能(如总供应量、余额查询、转账、授权等)。constructor(uint256 initialSupply) ERC20("My Token", "MTK") { ... }:构造函数,在合约部署时执行一次。ERC20("My Token", "MTK"):调用父类 ERC20 的构造函数,设置代币的名称(Name)为 "My Token",符号(Symbol)为 "MTK"。_mint(msg.sender, initialSupply);:铸造代币。_mint是 ERC20 合约提供的内部函数,用于创建新的代币,这里将initialSupply数量的代币铸造给合约的部署者(msg.sender)。
-
编译智能合约:
- 在 Remix IDE 左侧,点击“Solidity 编译器”图标(第二个图标)。
- 确保编译器版本与你代码中指定的
pragma solidity版本兼容(0.8.7 或更高)。 - 点击蓝色的“Compile MyToken.sol”按钮,如果编译成功,编译器图标旁边会显示一个绿色的对勾。
-
部署智能合约:
- 在 Remix IDE 左侧,点击“部署 & 运行事务”图标(第三个图标,像一个以太坊标志)。
- ENVIRONMENT(环境): 选择 "Remix VM (Shanghai)" - 这是一个在浏览器中模拟的以太坊环境,适合测试,无需真实 ETH。
- ACCOUNT(账户): 选择一个账户作为部署者,Remix VM 会提供几个测试账户,每个账户都有 100 个模拟 ETH。
- CONTRACT(合约): 在下拉菜单中选择 "MyToken" - 即你刚才编译的合约。
- DEPLOY(部署):
- 在 "MyToken" 合约下方,你会看到一个
initialSupply的输入框,这是你想要发行的代币初始总量。注意: 这里输入的数量是最小单位,如果你想发行 1,000,000 个代币,并且每个代币没有小数位(decimals = 0),那么你就输入1000000,如果你想发行 1,000,000 个代币,并且有 18 位小数(ERC-20 标准默认小数位数),那么你就输入1000000 * 10**18,在 Remix 中可以简写为1000000e18。 - 输入初始供应量后,点击橙色的 "Deploy" 按钮。
- 在 "MyToken" 合约下方,你会看到一个
- 确认交易: 会弹出一个交易确认窗口,点击 "Confirm"。
- 部署成功: 几秒钟后,部署状态会显示 "Deployed",恭喜你!你的 ERC-20 代币合约已经成功部署到以太坊测试网络上了!
-
验证和测试你的代币:
- 获取合约地址: 在 "Deployed Contracts" 区域,你会看到你刚刚部署的
MyToken合约,旁边有一长串以0x开头的字符串,这就是你的代币合约地址。 - 添加到 MetaMask(测试网络):
- 打开你的 MetaMask 钱包,确保网络切换到 "Sepolia"(如果使用 Remix VM Shanghai,可能对应的是其他测试网,请根据 Remix 提示选择)。
- 点击 MetaMask 顶部的网络名称,选择 "添加网络" -> "手动添加网络"。
- 输入 Remix VM 对应的测试网络参数(如果不确定,可以查看 Remix IDE 的帮助文档或默认网络配置)。
- 在添加的测试网络中,点击 "导入代币"。
- 在合约地址框中粘贴你刚刚复制的代币合约地址,代币符号和 decimals 会自动填充(如果未填充,可能需要手动输入 decimals,默认通常是 18)。
- 点击 "添加代币"。
- 查看代币余额: 回到 MetaMask,你应该就能看到你刚刚添加的代币,以及你的账户中拥有的初始供应量。
- 测试转账: 你可以在 Remix IDE 中使用 "Deployed Contracts" 区域的
transfer函数,或者其他支持 ERC-20 代币的测试 DApp 来测试你的代币是否可以正常转账。
- 获取合约地址: 在 "Deployed Contracts" 区域,你会看到你刚刚部署的
**第三部分:部署到以太坊主
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。




