跳转至主要内容

只需3步即可创建ERC20代币并部署

更新于
2026年1月15日

阅读时间 10 分钟

概述

ERC20 代币是以太坊生态系统的基石,为 DeFi 协议、DAO、忠诚度系统等提供支持。但它们并非一直都遵循统一标准。在以太坊早期,代币的创建缺乏统一标准,这使得钱包和应用程序难以与每种新代币实现兼容。为了解决这一问题,社区推出了ERC20 标准,从而为代币开发带来了统一性和互操作性。

在本指南中,我们将逐步讲解如何编写符合 ERC20 标准的智能合约,并使用Remix 对其进行编译和部署,提供分步操作指南并重点介绍最佳实践——不会涉及不必要的细节。

更喜欢视频教程吗?跟着 Radek 一起学习,15 分钟内掌握如何创建和部署 ERC20 代币。
订阅我们的YouTube频道,观看更多视频!

您将负责的工作内容


  • 了解 ERC-20 代币及其应用场景
  • 使用 Remix.IDE 创建并部署 ERC-20 代币

您需要准备的物品


  • 一个 Web3 钱包(例如 MetaMask、Coinbase Wallet、Phantom 或兼容 WalletConnect 的钱包)
  • 测试以太币(您可以在多链 Quicknode 水龙头上领取一些)
  • 一款现代网络浏览器(例如 Chrome 或 Brave)
  • 一个免费的 Quicknode 账户,用于发布后的构建
想突破“混音”的局限吗?

在本指南中,为了简化操作,我们使用 Remix IDE,通过基于浏览器的开发方式来加快开发和测试速度。如果您准备提升技能,不妨查看我们使用 Foundry 和 Hardhat 等现代框架编写的更高级部署教程:

什么是 ERC-20 代币?

ERC 代表“以太坊意见征询”(Ethereum Request for Comment),20 是该提案的标识号。ERC-20 的设计旨在改进以太坊网络。

ERC-20是最重要的 ERC 标准之一。它已成为以太坊区块链网络上编写智能合约的技术标准,用于代币的发行。ERC-20 包含一套规则,所有基于以太坊的代币都必须遵循这些规则。

ERC-20 将代币定义为基于区块链的资产,这些资产可以进行发送和接收,并且具有价值。ERC-20 代币在许多方面与比特币和莱特币相似。然而,最显著的区别在于:ERC-20 代币并非运行在独立的区块链网络上,而是运行在以太坊的区块链网络上,并使用“gas”作为交易手续费。

在 ERC-20 出现之前,每个创建代币的人都不得不“从头开始”,这意味着所有代币彼此之间都不尽相同。例如,如果一位开发者想要使用另一个代币,由于缺乏构建新代币的具体结构或指南,他必须完全理解该代币的整个智能合约代码。

这对钱包和交易平台来说尤其令人头疼——要添加不同类型的代币,开发人员必须逐一查阅每种代币的代码并加以理解,才能在平台上支持这些代币。毋庸置疑,向任何应用程序添加新代币都相当困难。

如今,钱包和交易所采用 ERC-20 标准,将各种标准化代币整合到其平台上,同时也便于在 ERC-20 代币与其他代币之间进行便捷的兑换。ERC-20 代币标准使得代币之间的交互几乎无缝且轻松自如。

关于 ERC-20 代币的关键要点

标准化功能:ERC-20 代币遵循一套特定的标准,这意味着它们具有一套通用的规则和功能。这包括代币的转移方式、交易的批准流程、用户如何访问代币相关数据,以及代币的总供应量。

智能合约与去中心化金融(DeFi):在 ERC-20 代币中应用智能合约,能够实现复杂金融操作的自动化和强制执行。这对 DeFi 平台至关重要,因为这些代币可以代表各种金融工具,例如贷款或流动性池中的份额。

互操作性:由于 ERC-20 代币遵循同一标准,因此它们易于互换,并能与以太坊网络上其他符合 ERC-20 标准的代币和应用程序无缝协作。这种标准化简化了创建新代币的过程,并使其能够立即与现有钱包、交易所及其他服务兼容。

用例:ERC-20 代币可以代表各种资产或实用功能。例如,ERC-20 代币可以发挥多种作用,如贷款的抵押品、收益耕作中的生息资产,以及在去中心化自治组织(DAO)中赋予投票权的治理代币。

可转让性与交易:这些代币可以作为支付手段在不同账户之间转移,类似于比特币等加密货币,并且可以在各种加密货币交易所进行交易。

ERC-20 是一项用于创建新代币的标准或指南。该标准定义了智能合约应实现的六个必备函数和三个可选函数。

以下列出了必选功能及其说明。


  • totalSupply:一个用于定义代币总供应量的方法;当达到该上限时,智能合约将拒绝创建新的代币。
  • balanceOf:一个返回钱包地址所持代币数量的方法。
  • transfer:一种从总供应量中提取一定数量的代币并将其分配给用户的机制。
  • transferFrom:另一种用于在用户之间转移代币的转账方式。
  • approve:该方法会根据总供应量,验证智能合约是否被允许向某用户分配一定数量的代币。
  • 额度:该方法与已批准的方法完全相同,唯一的区别在于它会检查某位用户是否拥有足够的余额,以向另一位用户发送一定数量的代币。

除了下面列出的必备功能外,其他功能虽为可选,但能提升该令牌的易用性。


  • name:一个返回令牌名称的方法。
  • symbol:一个返回该令牌符号的方法。
  • 小数: 一个返回代币所用小数位数的方法。它用于定义代币的最小单位。例如,如果一个 ERC-20 代币的 小数 值为 6,这意味着该令牌可以精确到小数点后六位。

如果你熟悉面向对象编程,可以将 ERC-20 比作一个接口。如果你希望自己的代币成为 ERC-20 代币,就必须实现 ERC-20 接口,这会迫使你实现这 6 个方法。

如何创建 ERC-20 代币

既然我们已经了解了什么是 ERC-20 代币以及它们的工作原理,接下来让我们看看如何构建和部署自己的代币。

在本指南中,我们将使用以太坊 Sepolia测试网,因为它速度快、免费且支持广泛。 但无论您是将项目部署到测试网,还是部署到 Arbitrum、Base 或 Avalanche 等主网,这些步骤都同样适用。

步骤 1:获取测试以太币

要开始在以太坊 Sepolia 测试网部署您的合约,您需要获取一些测试版 ETH。具体操作如下:


  • 如果您还没有钱包,请安装MetaMask浏览器扩展程序,或者使用其他兼容 web3 的钱包,例如RabbyPhantom
  • 访问Quicknode 以太坊 Sepolia 水龙头
  • 连接您的钱包或输入钱包地址,然后继续。您将有机会通过分享一条推文获得额外奖励。如果您选择不分享,只需选择“不用了,直接给我 0.05 ETH”选项,即可领取测试用的 ETH。

注意:您需要在以太坊主网中至少持有 0.001 ETH 的余额,才有资格使用该水龙头。

Quicknode 多水龙头链

步骤 2:为您的代币编写智能合约

以太坊区块链上已有大量由不同团队开发的、符合 ERC20 标准的代币投入运行。这些实现方式各不相同,有些侧重于降低 gas 费用,有些则优先考虑增强安全性。

为了实现稳健且安全的实施,许多开发者选择使用 OpenZeppelin 的 ERC20 代币标准。OpenZeppelin 提供了一个经过充分测试、经社区审计的可复用智能合约库,其中包含一个可靠且安全的 ERC20 代币框架,因此成为确保代币开发合规性和安全性的首选方案。

为了方便和安全起见,我们将使用OpenZeppelinERC-20合约来创建我们的代币。借助 OpenZeppelin,我们无需编写完整的 ERC-20 接口,而是可以导入该库合约并使用其中的函数。

请前往以太坊 RemixIDE,创建一个新的 Solidity 文件,例如:MyToken.sol

将以下代码粘贴到你的新 Solidity 脚本中:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
constructor() ERC20("MyToken", "MT") {
_mint(msg.sender, 1000000 * (10 ** uint256(decimals())));
}
}

上述代码的说明:


  • SPDX-License-Identifier 注释指定了合同所依据的许可协议。
  • pragma 该指令指定了要使用的编译器版本。
  • ERC20 从 OpenZeppelin 导入的合约被用作基础。
  • MyToken 这是您的合约名称,它继承了 ERC20 合约。
  • 构造函数 该函数会使用一个名称("MyToken") 和一个符号 ("MTK")。
  • _mint 构造函数中的该函数会铸造初始代币供应量。在此示例中,共铸造了 100 万枚代币,并分配给部署合约的地址。代币数量由 小数 该值在 OpenZeppelin 的实现中默认设为 18。

由于我们导入了 ERC20 来自 OpenZeppelin 的智能合约以及 MyToken contract 继承了 ERC20 根据约定,无需定义所有函数。在 ERC20 合同被导入到 MyToken 合同。如果您想查看更详细的完整 ERC-20 代码,请查阅该文件 这里

现在,如果您愿意,请花一分钟时间根据您的具体情况自定义智能合约。您可以通过修改以下部分来更新代币名称和符号—— ERC20("MyToken", "MT").

您的 ERC20 代币需要具备可升级性吗?

请阅读我们的指南,了解如何使用 OpenZeppelin 和 Hardhat 部署可升级的 ERC20 合约。

第 3 步:部署您的令牌

完成智能合约的定制后,请继续进行编译。

第一: 点击 Solidity 编译器 按钮。检查编译器版本和所选合约。编译器版本应至少为 0.8.20 因为那条线 pragma solidity ^0.8.20; 在智能合约中。然后,点击 编译 MyToken.sol 按钮。如果一切顺利,您会在“编译”按钮上看到一个绿色的对勾。

混音合集

下一步:转到“部署与运行交易”选项卡。在部署时,请在“环境”下选择“注入的提供程序”选项。部署前,请确保您的 MetaMask 已设置为Sepolia 测试网,并且已选中要部署的MyToken合约。最后,点击“部署”按钮以部署您的合约。

如果您不确定如何切换网络,请打开 MetaMask 扩展程序,点击左上角的“网络选择器”,然后选择Sepolia。如果未看到该选项,请确保已启用“显示测试网络”选项。如果您想了解如何将您的 Quicknode RPC URL 添加到 MetaMask 中,请参阅此Quicknode 指南

Remix 部署

如果在部署前收到错误提示——“此合约可能是抽象的”,请确保在“合约”选项卡下选择了正确的合约。

最后:在 MetaMask 中确认交易:

Metamask 交易确认

就这样!您的代币合约现已部署到以太坊的Sepolia测试网上了!

现在,让我们来试用一下。点击“已部署合约”部分下合约名称旁边的箭头(>),查看该合约的功能。然后,点击名称按钮,你应该会看到你在合约中自定义的名称。不妨也试用一下其他功能。


提示

在 Remix.IDE 中,函数会在界面中根据其性质和效果进行颜色标记:

  • 蓝色按钮功能:这些按钮代表常量函数函数。点击这些按钮不会发起新交易,也不会改变合约的状态。它们仅从合约中返回一个值,且不会产生任何 gas 费用。

  • 橙色按钮功能:这些是无需支付费用的功能,它们会改变合约的状态,但不接受以太币。调用这些功能会生成一笔交易,这意味着它们会产生 gas 费用。

  • 红色按钮功能:带有红色按钮的功能需要付费,且会生成接受以太币的交易。这些交易的金额需填写在“Gas Limit”(Gas 限制)字段下方的“Value”(金额)字段中。执行这些功能时也会产生 Gas 费用。

重混已部署的合约

若要在区块链浏览器(一种用于分析各类区块链数据的、适合初学者的实用工具)上查看您的合约,请访问Etherscan Sepolia 浏览器并搜索您的合约地址。

您将在“代币追踪器”部分看到您的代币名称和代币符号。

Etherscan Sepolia 合约

现在,点击您的代币名称。打开的页面将显示该代币的名称、代码、最大总供应量和小数位数等信息。

Etherscan Sepolia 代币

如果您想在 MetaMask 中查看您的代币,请点击合约名称旁边的“复制”按钮,复制已部署合约的地址。然后,打开 MetaMask,点击“导入代币”按钮,并将合约地址粘贴到“代币合约地址”字段中。 MetaMask 将自动获取代币符号和小数位数。点击“下一步”和“导入”,您的代币就会被添加到钱包中;您可以在 MetaMask 的“资产”部分查看该代币。

Metamask 自定义代币


在Etherscan上验证您的代币

请按照我们的分步指南,在Etherscan上验证您的智能合约。

常见问题解答

要创建和部署一个 ERC20 代币,我需要什么?

您需要一个 web3 钱包(如 MetaMask)、从水龙头获取的测试以太币、一款现代网络浏览器,以及 Remix IDE 的访问权限。建议注册一个 Quicknode 免费试用账户,以便在部署后进行开发。

为什么应该使用 OpenZeppelin 的 ERC20 库?

OpenZeppelin 提供了一种经过充分测试、经社区审核且安全的 ERC20 实现方案,既能降低 gas 费用,又能确保合规性。您只需将其导入,而无需从头开始编写整个标准。

如何获取用于在Sepolia测试网部署的测试ETH?

访问 Quicknode 多链水龙头,连接您的钱包或输入您的地址,即可领取免费的测试版 ETH。您需要在以太坊主网上至少持有 0.001 ETH,才有资格领取水龙头奖励。

我能否将我的 ERC20 代币部署到以太坊 Sepolia 以外的其他网络上?

是的,相同的 Remix 部署步骤适用于任何 EVM 兼容链(如 Arbitrum、Base 或 Avalanche),无论测试网还是主网,只要您拥有用于支付 gas 费的原生代币,并在钱包中切换网络即可。

什么是 ERC20 代币标准?

ERC20 是用于在以太坊区块链上创建代币的技术标准,该标准定义了六个必备函数(totalSupply、balanceOf、transfer、transferFrom、approve、allowance)和三个可选函数(name、symbol、decimals),以确保不同钱包和应用程序之间的互操作性。

如何从 Remix 部署我的代币合约?

在 Remix 中,请使用 Solidity 编译器 0.8.20 或更高版本编译您的合约,然后转到“部署与执行交易”页面,选择“注入提供程序”(此时需确保 MetaMask 已连接到 Sepolia),选择您的合约,点击“部署”,并在钱包中确认该交易。

如何将已部署的 ERC20 代币添加到 MetaMask 中?

从 Remix 复制已部署合约的地址,打开 MetaMask,点击“导入代币”,粘贴合约地址,MetaMask 会自动获取代币符号和小数位数,并在您的资产页面中显示。

部署一个 ERC20 代币需要多少钱?

部署成本取决于网络状况和当前的 gas 费用。在 Sepolia 测试网中,您使用的是免费的测试版 ETH。在以太坊主网中,部署需要使用真实的 ETH 来支付根据网络拥堵情况计算的 gas 费用。

结论

恭喜您在以太坊 Sepolia 测试网成功创建了自己的代币!

既然您已经发行了首个代币,不妨通过注册一个免费的 Quicknode 账户,迈出您链上之旅的下一步。立即注册,即可立即使用最快的 RPC 节点、全面的 Web3 API 库以及性能最优的区块链 ETL 工具——所有这些均由企业级基础设施提供支持。

如需进一步了解其他代币标准和智能合约部署,请参阅以下 Quicknode 指南:


您还可以浏览以下不同的 Quicknode 指南栏目:


订阅我们的新闻通讯,获取更多关于 Web3 和区块链的文章与指南。如果您有任何疑问或需要进一步帮助,欢迎加入我们的Discord服务器,或通过下方的表单提供反馈。关注我们的Twitter 账号(@Quicknode)和Telegram 公告频道,随时掌握最新动态。

我们 ❤️ 您的反馈!

如果您有任何反馈或对新主题的建议,请告诉我们。我们非常期待您的来信。

分享本指南