GTokenTool全网最好的代币发行工具平台

当前位置:首页 >> 发币教程 >> 如何创建 ERC721 代币的完整教程

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

admin 发币教程 578

在今天的教程中,我们将向您展示如何按照以下三个步骤创建 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 标准? ”的问题


    如有不明白或者不清楚的地方,请加入官方电报群:https://t.me/gtokentool
    协助本站SEO优化一下,谢谢!
    关键词不能为空
    同类推荐
    请先 登录 再评论,若不是会员请先 注册!