GTokenTool全网最好的代币发行工具平台
当前位置:首页 >> 发币教程 >> 如何创建 ERC721 代币的完整教程

如何创建 ERC721 代币的完整教程

admin 发币教程 93

在今天的教程中,我们将向您展示如何按照以下三个步骤创建 ERC721 代币

  1. 设置安全帽项目

  2. 建立ERC721合约

  3. 创建 ERC721 代币

完成上述步骤后,您将了解将来创建任何 ERC721 代币的基本原理。因此,如果这听起来令人兴奋,请加入我们,我们将从头到尾介绍整个过程! 

现在,除非你过去几年一直与世隔绝,否则你很可能不会错过 2021 年的非同质化代币 (NFT) 热潮。在此期间,NFT 成为 Web3 行业最突出的组成部分之一,即使去年交易量有所下降,它们仍然是一个令人兴奋的前景。话虽如此,您可能对创建自己的 ERC721 代币 (又名 NFT) 感兴趣。因此,我们将通过这篇文章教您如何快速创建 ERC721 代币!除了向您展示如何创建 ERC721 代币外,本文还说明了如何使用 Moralis 根据合约地址获取 NFT 代币数据。在此过程中,您将学习如何使用 Moralis 的 NFT API 和“ getContractNFTs ”端点。 

Moralis 网站的登陆页面

教程:如何创建 ERC721 代币 

在以下部分中,我们将向您展示如何使用 NodeJS、Hardhat 和 Solidity 创建 ERC721 代币。我们还将说明如何使用 Moralis 确认交易并获取代币数据! 

不熟悉 ERC721 标准或只是需要刷新记忆,您将在教程之后找到一个部分来回答“什么是 ERC721 代币? ”这个问题。

现在,事不宜迟,加入我们,通过介绍所需的先决条件来启动本教程,了解如何创建 ERC721 令牌!

先决条件 

在继续阅读本文的核心部分(ERC721 代币创建)之前,您需要准备好以下内容: 

步骤 1:设置安全帽项目 我们将通过向您展示如何设置基础项目来启动有关如何创建 ERC721 代币的本教程。因此,打开一个新终端并使用以下命令创建一个新目录: 

mkdir 项目名称

从那里,“ cd ”进入项目文件夹: 

项目名称

接下来,初始化一个新的“ npm ”项目: 

npm init -y

初始化“ npm ”项目后,安装“ dotenv ”依赖项: 

npm 和 dotenv

从那里安装 Hardhat 和相关依赖项: 

npm install --save-dev Hardhat @nomicfoundation/hardhat-toolbox

接下来,使用以下终端输入创建一个新的 Hardhat 项目: 

npx 安全帽

运行上面的命令会提示你的终端,你可以选择创建一个 JavaScript 项目: 

在 Hardhat 中启动一个新的 JavaScript 项目来创建 ERC721 代币

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

Hardhat 中的项目创建成功消息

最后,在本创建 ERC721 代币的教程中,我们将使用 OpenZeppelin。因此,使用以下命令安装依赖项:

npm 安装@openzeppelin/contracts

第 2 步:构建 ERC721 合约 

设置项目后,在您首选的集成开发环境 (IDE) 中打开目录。我们将使用 Visual Studio Code (VSC),您应该会发现文件结构类似于以下结构: 

Visual Studio Code 展示我们的 ERC721 代币项目的代码结构

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

接下来,在“contracts”文件夹中创建一个新的“.sol”文件,您将在其中添加合约代码本身。在本例中,我们将文件命名为“MNFT.sol”。 

首先,指定要使用的 Solidity 版本。为此,请在文件顶部添加以下代码片段: 

// SPDX 许可证标识符:MIT
编译指示 solidity ^ 0.8 . 0

接下来,导入 OpenZeppelin ERC721 代币标准: 

导入“@openzeppelin/contracts/token/ERC721/ERC721.sol”

最后,添加合约本身的自定义代码: 

合约 MNFT 是 ERC721 {
   构造函数ERC721 “Moralis NFT” “MNFT” {
       // 为自己铸造一个 NFT
       _mint 消息发送者1
   }
}

在第一行,我们提供一个名称并指定合约是 ERC721 代币标准的实例。接下来,我们定义一个构造函数,它是部署合约时自动执行的函数。在构造函数中,还有另一个构造函数接受两个参数:代币名称和符号。 

最后,我们添加“ _mint ”函数,该函数接受两个参数。第一个“ msg.sender ”参数指定部署合约的人接收代币。第二个参数确定将创建的代币数量。 

总而言之,你的合同文件现在应该是这样的: 

// SPDX 许可证标识符:MIT
编译指示 solidity ^ 0.8 . 0
导入“@openzeppelin/contracts/token/ERC721/ERC721.sol”
合约 MNFT 是 ERC721 {
   构造函数ERC721 “Moralis NFT” “MNFT” {
       // 为自己铸造一个 NFT
       _mint 消息发送者1
   }
}

最后,打开一个新终端,“ cd ”进入项目文件夹,并通过运行以下命令来编译合约: 

npx 安全帽编译

步骤 3:创建 ERC721 代币 

本教程的最后一步不仅将说明如何创建 ERC721 代币,还将向您展示如何部署它。为此,请打开“deploy.js”文件并将其内容替换为以下代码片段: 

const { ethers } = require ( "hardhat" ) ;
异步函数main ( ) {
 const nftContract =等待ethers。getContractFactory ( MNFT” )
 const deployedNFTContract = await nftContract.deployment ( ) ;
 等待部署NFTContract。部署
 控制台.log ( "NFT 合约地址:" , deployNFTContract.address ) ;
}
主要的
 .then ( ( ) =>进程.退出( 0 ) )
 .catch 错误= > {
   控制台.错误(错误) ;
   进程。退出1
 }

在初始行中,我们需要来自 Hardhat 的 ethers.js。接下来,我们定义“ main() ”,其中我们首先使用代币符号调用“ getContractFactory() ”函数。从那里,我们调用“ deploy() ”函数并等待它完成。最后,我们记录合约地址。 

接下来,您必须在项目的根文件夹中创建一个新的“.env”文件。对于此文件,您需要添加两个环境变量:

QUICKNODE_HTTP_URL="替换我"
PRIVATE_KEY="替换我"

对于第一个,用 QuickNode URL 替换“ REPLACE_ME ”,对于第二个,添加您的 MetaMask 的私钥。 

配置完环境变量后,让我们打开“hardhat.config.js”文件。从那里,用下面的代码替换此文件的内容:

要求“@nomicfoundation/hardhat-toolbox”
需要“dotenv” 配置{路径:“.env” }
const QUICKNODE_HTTP_URL = 进程. env . QUICKNODE_HTTP_URL ;
const PRIVATE_KEY =进程.env.PRIVATE_KEY ;
模块.出口= {
 可靠性:“0.8.9”
 网络:{
   戈利:{
     url:QUICKNODE_HTTP_URL,
     账户:[ PRIVATE_KEY ]
   }
 }
}

这里我们首先导入第二步安装的库和环境变量,然后通过” module.exports ”部署合约。

最后,剩下的就是通过在终端中执行以下命令来运行代码,将合约部署到 Goerli 测试网: 

npx hardhat 运行脚本/deploy.js --network goerli

就是这样,恭喜!现在,您只需三个简单的步骤即可创建自己的 ERC721 代币!从这里开始,您可以按照相同的流程在将来创建更多 ERC721 代币。 

如果您在本演练过程中遇到任何问题,请查看本教程顶部的视频。您还可以在以下 GitHub 存储库中找到此项目的代码:

完成创建 ERC721 代币文档 – https://github.com/MoralisWeb3/youtube-tutorials/tree/main/moralis-ERC721-token

除了创建 ERC721 代币之外 – 使用 Moralis 获取代币数据 

当您按照本教程的步骤创建 ERC721 代币时,您将收到合约地址作为响应。从那里,您可以使用该地址确认交易并获取与代币相关的数据,最简单的方法是使用 Moralis 的NFT API和“ getContractNFTs ”端点。 

如果这听起来很有趣,您可以通过访问通过合约获取 NFT 文档页面直接在浏览器中尝试。这将带您进入以下页面: 

创建 ERC721 代币并通过合约文档页面获取 NFT

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

ERC721 代币文档页面的输入参数

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

作为回报,您将收到类似这样的回复: 

{
 “总计” 1
 “页数” : 0
 “页面大小” 100
 “光标” null
 “结果” [
   {
     “token_hash” “aa9c01b4eda16cc12774e2c4256fee1f”
     “token_address” “0x900c08fd7ac99dd530558386886a67c756322c0b”
     “token_id” “1”
     “区块生成编号” “8298496”
     “金额” “1”
     “合约类型” “ERC721”
     “名称” “Moralis NFT”
     “符号” “MNFT”
     “token_uri” : null
     “元数据” null
     “last_token_uri_sync” “2023-01-12T11:44:23.074Z”
     “last_metadata_sync”
     “minter_address” “0x449b02452b6d6af4d630bd69fa1f53be7bdff774”
   }
 ]
}

如您所见,您可以获得很多信息,例如代币地址、代币 ID、合约类型等。此外,如果您计划构建与 NFT 相关的平台,您可以轻松地将此端点实现到您的项目中。

此外,如果您对 NFT 开发很认真,我们推荐您阅读我们的教程,了解如何获取钱包拥有的所有 NFT。本教程将介绍如何根据钱包地址查询钱包持有的所有 NFT! 

什么是 ERC721 代币? 

简而言之,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 标准? ”的问题


    作者:GTokenTool一键发币平台

    交流群:https://t.me/+Kz4u3xoDpFo3ZWY1

    同类推荐