/ 币圈行情

手把手教你,以太坊ERC20代币制作全流程指南

发布时间:2026-01-06 22:44:36

区块链和加密货币的世界里,以太坊(Ethereum)凭借其智能合约平台的功能,成为了发行代币的首选网络,ERC20是以太坊上最常用、最标准的代币技术标准,它规定了代币的基本功能,如转账、余额查询、授权等,确保了代币之间的互操作性,本文将为你提供一份详尽的以太坊ERC20代币制作教程,即使你是新手,也能一步步跟随完成自己的代币创建。

准备工作:在开始之前,你需要这些

  1. 一个以太坊钱包

    • 推荐MetaMask:这是最流行且用户友好的浏览器钱包插件,支持Chrome、Firefox等浏览器,它不仅能存储ETH和ERC20代币,还能让你与去中心化应用(Dapps)交互,包括智能合约的部署。
    • 创建并备份钱包:安装MetaMask后,按照提示创建新钱包,务必妥善保存助记词(Seed Phrase),这是你恢复钱包的唯一凭证,绝对不要泄露给他人。
  2. 以太币(ETH)

    部署智能合约需要支付一定的Gas费(网络交易费),你需要向MetaMask钱包中转入足够的ETH,以支付部署代币合约的费用,Gas费价格会因网络拥堵程度而波动,建议提前了解当前Gas价格。

  3. 基本的编程概念(可选但推荐)

    虽然我们可以使用现成的模板,但了解一点Solidity(以太坊智能合约编程语言)的基础知识,能帮助你更好地理解代币的机制,并根据需求进行修改。

  4. 代码编辑器

    如Visual Studio Code (VS Code),用于编写和查看智能合约代码。

选择代币合约模板

对于大多数简单代币,我们不需要从零开始编写智能合约,可以使用经过社区广泛验证的模板,最著名的是OpenZeppelin Contracts

  1. 访问OpenZeppelin官网

    • 打开浏览器,访问 OpenZeppelin Contracts。
  2. 获取ERC20合约代码

    • 在OpenZeppelin文档中,你可以找到标准的ERC20合约代码,我们会使用ERC20.solOwnable.sol(可选,用于添加所有权功能,只有合约所有者可以执行某些操作,如增发代币)。
    • 你可以直接复制这些代码到你的VS Code中,或者通过npm(Node包管理器)安装OpenZeppelin合约库,但这对于初学者来说可能稍复杂,直接复制代码更直观。

编写你的代币合约(以简单ERC20为例)

让我们创建一个名为“MyAwesomeToken”(简称MAT)的简单代币。

  1. 创建Solidity文件

    • 在VS Code中,新建一个文件,命名为MyAwesomeToken.sol
  2. 编写合约代码

    复制以下代码到你的文件中,并根据需要修改注释部分:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyAwesomeToken is ERC20, Ownable {
    constructor(
        string memory name,
        string memory symbol,
        uint256 initialSupply
    ) ERC20(name, symbol) Ownable(msg.sender) {
        _mint(msg.sender, initialSupply);
    }
    // 可选:添加一个mint函数,允许所有者增发代币
    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
}

代码解释

  • // SPDX-License-Identifier: MIT:指定许可证类型,MIT是常用的宽松许可证。
  • pragma solidity ^0.8.20;:指定Solidity编译器版本,^0.8.20表示使用0.8.20到0.9.0(不含0.9.0)的版本。
  • import "@openzeppelin/contracts/token/ERC20/ERC20.sol";:导入OpenZeppelin的ERC20标准合约。
  • import "@openzeppelin/contracts/access/Ownable.sol";:导入Ownable合约,用于实现所有权管理。
  • contract MyAwesomeToken is ERC20, Ownable:定义我们的合约,继承自ERC20和Ownable。
  • constructor(...):构造函数,在合约部署时执行一次。
    • namesymbol:代币的名称(如"My Awesome Token")和符号(如"MAT")。
    • initialSupply:初始供应量,注意这里是以最小的单位(如 wei 对于ETH),但对于ERC20,通常是18位小数,所以1000000 * 10**18 表示100万枚代币,每个代币有18位小数。
    • ERC20(name, symbol):调用父合约ERC20的构造函数,设置名称和符号。
    • Ownable(msg.sender):将合约部署者设置为所有者。
    • _mint(msg.sender, initialSupply):向合约部署者铸造(发行)初始供应量的代币。
  • function mint(...) public onlyOwner:可选的增发函数,只有合约所有者可以调用,向指定地址增发代币。

注意:如果你直接复制代码,@openzeppelin/contracts 这部分路径可能需要你在项目中配置,或者你可以直接从OpenZeppelin官网复制完整的ERC20.sol和Ownable.sol代码内容到你的文件中(如果不想处理import的话,可以把这两个合约的内容直接粘贴到你的文件顶部,确保依赖关系正确)。

编译智能合约

  1. 访问Remix IDE

    • Remix IDE是一个基于浏览器的Solidity智能合约开发、测试和部署环境,非常适合初学者,访问 Remix IDE。
  2. 创建新文件

    • 在Remix IDE的文件浏览器中,点击“Create New File”,命名为MyAwesomeToken.sol
  3. 粘贴代码

    将你在VS Code中编写好的合约代码粘贴到Remix的编辑器中。

  4. 选择编译器版本

    • 在Remix IDE的左侧工具栏,点击“Solidity Compiler”(图标像一个齿轮)。
    • 在“Compiler”下拉菜单中,选择与你代码中pragma solidity版本匹配或接近的编译器版本(例如0.8.20)。
  5. 编译合约

    • 确保右侧的“Contract”输入框中是你的合约名MyAwesomeToken
    • 点击“Compile MyAwesomeToken.sol”按钮,如果编译成功,你会看到绿色的对勾,如果有错误,根据错误提示修改代码。

部署智能合约到以太坊网络

  1. 连接钱包

    • 在Remix IDE的左侧工具栏,点击“Deploy & Run Transactions”(图标像一个以太坊标志和箭头)。
    • 在“ENVIRONMENT”下拉菜单中,选择“Injected Provider - MetaMask”,这会弹出MetaMask窗口,请求连接你的钱包,点击“连接”。
  2. 选择网络

    • 确保MetaMask选择的是你想要部署到的以太坊网络(如以太坊主网、Goerli测试网、Sepolia测试网等)。新手建议先在测试网(如Goerli或Sepolia)练习,因为这些网络有免费的测试ETH。
  3. 配置部署参数

    • CONTRACT:确保选择的是MyAwesomeToken
    • DEPLOY FROM:显示你的MetaMask账户地址。
    • VALUE:部署合约时发送的ETH数量,通常为0,因为部署ERC20代币本身不消耗ETH(只消耗GasGas)。
    • 参数
      • _name:输入你的代币全称,如 "My Awesome Token"。
      • _symbol:输入你的代币符号,如 "MAT"。
      • _initialSupply:输入初始供应量,1000000000000000000000000 (这表示100万枚,18位小数,即1后面跟6个0,再跟18个0)。
  4. 部署合约

    • 点击“Deploy”按钮。
    • MetaMask会弹出交易确认窗口,显示Gas预估费用,点击“确认”。
    • 等待几秒到几分钟,交易被打包上链,部署成功后,Remix的“Deployed Contracts”区域会显示你的合约地址,以及“Transact”和“At Address”等按钮。

验证代币(可选但推荐)

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com