在今天的教程中,我们将向您展示如何按照以下三个步骤创建 ERC721 代币:
设置安全帽项目
建立ERC721合约
创建 ERC721 代币
完成上述步骤后,您将了解将来创建任何 ERC721 代币的基本原理。因此,如果这听起来令人兴奋,请加入我们,我们将从头到尾介绍整个过程!
现在,除非你过去几年一直与世隔绝,否则你很可能不会错过 2021 年的非同质化代币 (NFT) 热潮。在此期间,NFT 成为 Web3 行业最突出的组成部分之一,即使去年交易量有所下降,它们仍然是一个令人兴奋的前景。话虽如此,您可能对创建自己的 ERC721 代币 (又名 NFT) 感兴趣。因此,我们将通过这篇文章教您如何快速创建 ERC721 代币!除了向您展示如何创建 ERC721 代币外,本文还说明了如何使用 Moralis 根据合约地址获取 NFT 代币数据。在此过程中,您将学习如何使用 Moralis 的 NFT API 和“ getContractNFTs ”端点。

教程:如何创建 ERC721 代币
在以下部分中,我们将向您展示如何使用 NodeJS、Hardhat 和 Solidity 创建 ERC721 代币。我们还将说明如何使用 Moralis 确认交易并获取代币数据!
不熟悉 ERC721 标准或只是需要刷新记忆,您将在教程之后找到一个部分来回答“什么是 ERC721 代币? ”这个问题。
现在,事不宜迟,加入我们,通过介绍所需的先决条件来启动本教程,了解如何创建 ERC721 令牌!
先决条件
在继续阅读本文的核心部分(ERC721 代币创建)之前,您需要准备好以下内容:
NodeJS – 访问“ https://nodejs.org/en/download/ ”并安装 NodeJS。
MetaMask – 前往“ metamask.io ”并设置一个 Web3 钱包。
QuickNode – 创建一个 QuickNode 账户。
步骤 1:设置安全帽项目 我们将通过向您展示如何设置基础项目来启动有关如何创建 ERC721 代币的本教程。因此,打开一个新终端并使用以下命令创建一个新目录:
从那里,“ cd ”进入项目文件夹:
接下来,初始化一个新的“ npm ”项目:
初始化“ npm ”项目后,安装“ dotenv ”依赖项:
从那里安装 Hardhat 和相关依赖项:
接下来,使用以下终端输入创建一个新的 Hardhat 项目:
运行上面的命令会提示你的终端,你可以选择创建一个 JavaScript 项目:

如果一切顺利,你现在应该在终端中看到一条成功消息:

最后,在本创建 ERC721 代币的教程中,我们将使用 OpenZeppelin。因此,使用以下命令安装依赖项:
第 2 步:构建 ERC721 合约
设置项目后,在您首选的集成开发环境 (IDE) 中打开目录。我们将使用 Visual Studio Code (VSC),您应该会发现文件结构类似于以下结构:

从那里,打开“合同”文件夹并删除示例合同:

接下来,在“contracts”文件夹中创建一个新的“.sol”文件,您将在其中添加合约代码本身。在本例中,我们将文件命名为“MNFT.sol”。
首先,指定要使用的 Solidity 版本。为此,请在文件顶部添加以下代码片段:
接下来,导入 OpenZeppelin ERC721 代币标准:
最后,添加合约本身的自定义代码:
在第一行,我们提供一个名称并指定合约是 ERC721 代币标准的实例。接下来,我们定义一个构造函数,它是部署合约时自动执行的函数。在构造函数中,还有另一个构造函数接受两个参数:代币名称和符号。
最后,我们添加“ _mint ”函数,该函数接受两个参数。第一个“ msg.sender ”参数指定部署合约的人接收代币。第二个参数确定将创建的代币数量。
总而言之,你的合同文件现在应该是这样的:
最后,打开一个新终端,“ cd ”进入项目文件夹,并通过运行以下命令来编译合约:
步骤 3:创建 ERC721 代币
本教程的最后一步不仅将说明如何创建 ERC721 代币,还将向您展示如何部署它。为此,请打开“deploy.js”文件并将其内容替换为以下代码片段:
在初始行中,我们需要来自 Hardhat 的 ethers.js。接下来,我们定义“ main() ”,其中我们首先使用代币符号调用“ getContractFactory() ”函数。从那里,我们调用“ deploy() ”函数并等待它完成。最后,我们记录合约地址。
接下来,您必须在项目的根文件夹中创建一个新的“.env”文件。对于此文件,您需要添加两个环境变量:
对于第一个,用 QuickNode URL 替换“ REPLACE_ME ”,对于第二个,添加您的 MetaMask 的私钥。
配置完环境变量后,让我们打开“hardhat.config.js”文件。从那里,用下面的代码替换此文件的内容:
这里我们首先导入第二步安装的库和环境变量,然后通过” module.exports ”部署合约。
最后,剩下的就是通过在终端中执行以下命令来运行代码,将合约部署到 Goerli 测试网:
就是这样,恭喜!现在,您只需三个简单的步骤即可创建自己的 ERC721 代币!从这里开始,您可以按照相同的流程在将来创建更多 ERC721 代币。
如果您在本演练过程中遇到任何问题,请查看本教程顶部的视频。您还可以在以下 GitHub 存储库中找到此项目的代码:
完成创建 ERC721 代币文档 – https://github.com/MoralisWeb3/youtube-tutorials/tree/main/moralis-ERC721-token
除了创建 ERC721 代币之外 – 使用 Moralis 获取代币数据
当您按照本教程的步骤创建 ERC721 代币时,您将收到合约地址作为响应。从那里,您可以使用该地址确认交易并获取与代币相关的数据,最简单的方法是使用 Moralis 的NFT API和“ getContractNFTs ”端点。
如果这听起来很有趣,您可以通过访问通过合约获取 NFT 文档页面直接在浏览器中尝试。这将带您进入以下页面:

在左侧,你会看到一堆输入字段。在本例中,你可以输入合约地址并选择部署合约的链:

接下来,按右上角的“尝试一下”,它将使用您的参数执行下面的代码:

作为回报,您将收到类似这样的回复:
如您所见,您可以获得很多信息,例如代币地址、代币 ID、合约类型等。此外,如果您计划构建与 NFT 相关的平台,您可以轻松地将此端点实现到您的项目中。
此外,如果您对 NFT 开发很认真,我们推荐您阅读我们的教程,了解如何获取钱包拥有的所有 NFT。本教程将介绍如何根据钱包地址查询钱包持有的所有 NFT!
什么是 ERC721 代币?
简而言之,ERC721 代币是实现 ERC721 标准的代币。因此,为了充分回答本节标题中的问题,我们必须从探索 ERC721 标准开始。那么,什么是 ERC721 标准?

ERC721 是针对智能合约和非同质化代币 (NFT) 的以太坊标准。该标准确保源自 ERC721 合约的代币实现最低标准接口。因此,例如,ERC721 标准确保以下内容:
可以查询代币余额
代币可以在账户之间交易
任何人都可以获取代币的总供应量
除了这些功能之外,合约还需要实现某些方法和事件才能被视为 ERC721 合约。您可以在我们的指南中了解有关这些事件和方法的更多信息,该指南进一步解释了ERC721 智能合约。
尽管 ERC721 标准最初是为以太坊生态系统创建的,但它并不仅限于该网络。ERC721 通常是所有兼容以太坊虚拟机 (EVM) 的区块链网络上的通用 NFT 标准。
ERC721 是什么时候创建的?
ERC 是“以太坊征求意见”的缩写。此外,各种 ERC 提案用于为以太坊网络建议协议更新或新标准。数字“721”只是表示这是评论编号 721,这表明了该标准是何时推出的。
但更具体地说,ERC721 是由 William Entriken、Jacob Evans、Dieter Shirley 和 Nastassia Sachs 于 2018 年 1 月提出的。
其他 ERC 代币
ERC721 并不是唯一的代币标准。另外两个突出的例子是 ERC20 和 ERC1155:
ERC20 标准–与 ERC721 不同,ERC20 是可替代代币的标准。实施 ERC20 标准的代币的一个很好的例子是 ETH,它是以太坊的原生货币。您可以在以下文章中阅读有关该标准的更多信息:“什么是 ERC20 合约? ”。
ERC1155 标准– ERC1155 针对可替代、半可替代和不可替代代币,使其更具动态性。如果您想了解有关此标准的更多信息,请查看我们的指南,其中回答了“什么是 ERC-1155 标准? ”的问题