NFT 铸币 – 如何生成

生成和铸造NFT是许多代币开发人员所经历的繁琐过程。在许多情况下,发生这种情况是由于缺乏可靠的 API 和可用工具,使得 NFT 的铸造和生成任务复杂且耗时。此外,随着 NFT 市场越来越受欢迎,并且 NFT 创建者正在发现不可替代令牌的新用例,开发人员想要学习NFT 令牌开发,包括 NFT 生成和铸造过程也就不足为奇了。因此,本文将教您如何使用 Moralis 的Web3平台及其各种工具生成不可替代的代币 (NFT) 。因此,您会发现任何有志成为区块链开发人员的人 可以学习如何轻松执行 NFT 生成和铸造过程。

 

开发人员意识到您不需要从头开始生成和铸造 NFT。使用功能强大的 Web3 基础设施提供商(例如 Moralis),您只需要最少的代码来设置您的后端。此外,借助 Moralis,您可以轻松了解如何创建 NFT 市场或为您的 NFT 构建创建移动以太坊 dApp。因此,Moralis 使 NFT 生成和铸造过程变得简单,即使对于新手区块链开发人员也是如此。

在本教程中,您将了解启动 NFT 生成和造币项目是多么容易。无论您想使用ERC721还是ERC1155 代币标准,Moralis 都为您提供了合适的 Web3 工具,让您的不可替代代币的生产变得轻而易举。此外,您会意识到 Moralis 为您的 NFT 基础设施和 NFT dApp(去中心化应用程序)提供 360 度支持。例如,Moralis 的NFT API提供对 NFT 历史、所有权数据等的无缝访问。使用 Moralis,您可以将更多时间用于 NFT dApp 的前端,同时确保您的后端基础设施安全无虞。

NFT 生成和铸币 – 先决条件

要开始创建 NFT,您首先需要了解 NFT 是什么。那么,什么是 NFT?简而言之,首字母缩略词“NFT”代表“不可替代的代币”。 

如果您一直在区块链上构建或交易加密代币,那么您就会了解什么是可替代代币。可替代的代币,例如使用 ERC-20 或BEP20 代币标准生成的代币,建立在一个相对简单的概念之上。这种代币通常具有货币或货币的功能。因此,一个单位等于一个交换单位。因此,当用作交换媒介时,一个 ERC-20 或 BEP-20 代币等效于另一个。此外,可替代代币也可用于表示股票、债券或其他等价物。

另一方面,顾名思义,不可替代的令牌 (NFT) 代表相反。因此,NFT 不是代表可互换的值,而是代表唯一的值。例如,一个 NFT 可以代表一个独特的文档、一个数字艺术作品、一个房地产契约等。因此,这些项目是独一无二的,它们的 NFT 不能与其他 NFT 互换。此外,NFT 包含指向用作区分标签或标识符的信息或元数据的链接。

如何生成 NFT

如果您是创建者、区块链开发人员,或者只是对生成 NFT 的过程感兴趣,那么您将渴望了解启动 NFT 生成和铸造项目的最快方式。  

使用 NFT Minter dApp 生成和铸造 NFT

为了简化 NFT 生成和铸币过程,您需要构建一个 NFT 铸币机 dApp。但是,您可能想知道 NFT 铸币机 dApp 是什么。这是一个简单的 UI(用户界面),您可以在其中输入有关 NFT 或数字创作的信息。例如,您可以向 NFT 添加标题、描述、用户名、电子邮件地址和其他形式的数据。此外,您应该能够上传或输入数字文件本身的链接。 

您还应该能够:

  • 使用简单的前端连接到 MetaMask。
  • 调用智能合约方法。
  • 使用 MetaMask 进行身份验证
  • 使用您的 MetaMask 钱包签署交易。

所有这些都是让您的简单 NFT minter dApp 完美运行的基本功能。

此外,我们将创建的基本烧瓶 dApp 应如下所示:

只需几个简单的步骤即可生成和铸造 NFT

现在您已经了解了需要创建的内容,您可以从注册 Moralis 开始。如果您还没有 Moralis 帐户,请立即注册一个免费的 Moralis 帐户

步骤 1 – 为 Minter dApp 创建服务器

使用 Moralis,您无需从头开始设置服务器。您可以通过 Moralis 的 Web3 平台简单地创建一个新服务器。

注册后,点击界面右上角的“+创建新服务器”按钮。然后,将出现一个下拉菜单。选择“测试网服务器”选项。出于演示目的,以及当您开始一个新项目时,最好从这个替代方案开始。

接下来,在“添加新的测试网服务器”弹出窗口中,您将被要求为您的项目命名,选择您的地区,并选择您想要使用的链。

选择 Eth (Ropsten)

由于以太坊仍然是使用最广泛的链,我们将创建一个基于以太坊的 NFT 铸币厂 dApp。因此,从弹出菜单中选择“Eth (Ropsten)”选项。完成所有必要的选择和信息后,单击“添加实例”

获取服务器信息

您的 Moralis 服务器应该会在几分钟内准备就绪。确保复制在您的服务器实例上找到的服务器 URL 和应用程序 ID。在“NFT 生成和铸造”开发过程中,您将进一步需要它们。

第 2 步 – 在 NFT Minter dApp 上启动

准备好 Moralis 提供的服务器后,您现在可以继续构建 NFT 铸币器 dApp。请记住,“NFT 生成和铸造”过程的这一部分要求您至少安装 Python 3.0。

为了进一步简化流程,我们将为您提供预先开发的智能合约。当然,如果您愿意,您也可以编写自己的智能合约。但是,使用经过充分审查和测试的合同(如下面发布的合同或直接从 GitHub 中选择的合同)是切实可行的。

以“run.py”开头


我们为这个简单的flask dApp 使用“run.py”来触发目录中的所有内容。使用以下代码:

from app import app

if __name__ == "__main__": app.run()

此外,为了说明,您的屏幕应如下所示:

第 3 步 – NFT 生成和铸造代码

要通过 NFT 铸币机 dApp 生成 NFT,您现在需要按照以下小节所示进行操作。

初始化 Moralis

要在您的 NFT 项目中初始化 Moralis,您需要从上一步中获得的服务器信息。输入以下几行:

Moralis.initialize(""); // Application ID from moralis.io

Moralis.serverURL = ""; // Server URL from moralis.io

获取智能合约

既然您已经用几行代码(就这么简单)初始化了 Moralis,请继续执行智能合约。输入以下内容:

const nft_contract_address = "" //NFT Minting Contract Use This One "Batteries Included", code of this contract is in the github repository under contract_base for your reference.

/*

Available deployed contracts

Ethereum Rinkeby 0x0Fb6EF3505b9c52Ed39595433a21aF9B5FCc4431 Polygon Mumbai 0x351bbee7C6E9268A1BF741B098448477E08A0a53

BSC Testnet 0x88624DD1c725C6A95E223170fa99ddB22E1C6DDD */

继续这个“NFT 生成和铸币”项目的GitHub以获取整个合约。

创建 HTML 索引文件

这个简单教程的下一步是创建一个“index.html”文件。这个 HTML 索引文件为您提供了创建 minter dApp 所需的所有元素。此外,它还创建了启用 MetaMask 登录的交互按钮并在 dApp 中生成信息字段。

获取完整代码

对于完整代码,您可以参考 GitHub 存储库的HTML 部分。但是,我们将在此处突出显示代码的某些部分以供您理解。

文件选择和上传

<div class="input-group mb-3">

            <input type="file" disabled = "true" id="file">

          </div>

        </div>

        <div>  

          <button disabled = "true" class="btn btn-primary" id="upload" οnclick="upload();">Upload and Mint</button>

        </div>

        <hr>

          <div class="input-group mb-3" id="resultSpace">

如果您查看 NFT minter dApp 示例,您会发现一个“文件”选择按钮。这是创建它的代码。此外,这允许您上传您选择的任何文件。例如,您可以上传您拍摄的数字艺术作品或照片。触发 dApp 的逻辑后,这个文件会变成 NFT。此外,您的 dApp 将显示交易结果,反映新生成的 NFT。因此,这完成了“NFT 生成和铸造”过程的重要部分。

创建登录功能

完成 HTML 索引文件后,进入 JavaScript 部分。由于您已经初始化了 Moralis 和智能合约,您现在可以编写将 dApp 连接到 MetaMask 的代码。 

async function login(){

  document.getElementById('submit').setAttribute("disabled", null);

  document.getElementById('username').setAttribute("disabled", null);

  document.getElementById('useremail').setAttribute("disabled", null);

  Moralis.Web3.authenticate().then(function (user) {

      user.set("name",document.getElementById('username').value);

      user.set("email",document.getElementById('useremail').value);

      user.save();

      document.getElementById("upload").removeAttribute("disabled");

      document.getElementById("file").removeAttribute("disabled");

      document.getElementById("name").removeAttribute("disabled");

      document.getElementById("description").removeAttribute("disabled");

  })

}

添加上传功能

添加上述代码后,下一步就是启用上传功能。使用此功能,可以轻松地将对象保存到 IPFS 或您的 Moralis 服务器。这完全取决于您喜欢哪种存储解决方案。您可以通过键入以下代码来执行此操作:

async function upload(){

  const fileInput = document.getElementById("file");

  const data = fileInput.files[0];

  const imageFile = new Moralis.File(data.name, data);

  document.getElementById('upload').setAttribute("disabled", null);

  document.getElementById('file').setAttribute("disabled", null);

  document.getElementById('name').setAttribute("disabled", null);

  document.getElementById('description').setAttribute("disabled", null);

  await imageFile.saveIPFS();

  const imageURI = imageFile.ipfs();

  const metadata = {

    "name":document.getElementById("name").value,

    "description":document.getElementById("description").value,

    "image":imageURI

  }

  const metadataFile = new Moralis.File("metadata.json", {base64 : btoa(JSON.stringify(metadata))});

  await metadataFile.saveIPFS();

  const metadataURI = metadataFile.ipfs();

  const txt = await mintToken(metadataURI).then(notify)

}

保存到 IPFS

Moralis 允许您使用 IPFS 以分散的方式保存文件。以下命令启用此功能:

await imageFile.saveIPFS();

获取 URI

要从 Moralis 获取 URI,请键入以下代码:

const imageURI = imageFile.ipfs();

创建元数据对象

Const metadata = {

“name”: document.getElementById(“name”).value,

“description”: document.getElementById (“description”).value,

“Image”: imageURI

 }

下一步是使用上面的代码创建元数据对象。NFT 的元数据包含有关未存储在主区块链上的 NFT 的重要信息。因此,此代码允许我们获取指向该信息的 URI。

存储元数据

您可以将元数据存储为 JSON 对象或 IPFS 中的文件,如下所示: 

const metadataFile = new Moralis.File("metadata.json", {base64 : btoa(JSON.stringify(metadata))});

  await metadataFile.saveIPFS();

  const metadataURI = metadataFile.ipfs();

  const txt = await mintToken(metadataURI).then(notify)

}

创建 JSON JavaScript 对象后,将文件序列化,然后存储在 IPFS 中。IPFS 存储完成后,您现在可以调用“mintToken”函数。此功能允许您获取元数据。

创建薄荷函数

您终于准备好创建薄荷函数,这是“NFT 生成和薄荷”过程的最后一步。以下代码启用它:

async function mintToken(_uri){

  const encodedFunction = web3.eth.abi.encodeFunctionCall({

    name: "mintToken",

    type: "function",

    inputs: [{

      type: 'string',

      name: 'tokenURI'

      }]

  }, [_uri]);

  const transactionParameters = {

    to: nft_contract_address,

    from: ethereum.selectedAddress,

    data: encodedFunction

  };

  const txt = await ethereum.request({

    method: 'eth_sendTransaction',

    params: [transactionParameters]

  });

  return txt

}

async function notify(_txt){

  document.getElementById("resultSpace").innerHTML =  

  `<input disabled = "true" id="result" type="text" class="form-control" placeholder="Description" aria-label="URL" aria-describedby="basic-addon1" value="Your NFT was minted in transaction ${_txt}">`;

}

如您所见,此函数旨在通过编码的函数调用创建一个新对象。需要调用函数来执行事务。

此外,代码将函数与第一步中提到的智能合约地址一起添加到“transactionParameters”对象中。此外,函数的后半部分将交易发送到区块链。因此,区块链会通过交易哈希返回给您。完成所有这些步骤后,将确认的交易 ID 发送给用户。 

NFT 生成和铸币 – 快速入门

如果您需要查看整个教程或想要快速开始您的“NFT 生成和薄荷”项目,您应该观看这个优秀的视频。它解释了如何使用 Moralis 提供的非凡的 Web3 工具生成 NFT:

NFT 生成和铸币 – 如何生成不可替代的代币 – 总结

Beeple 的历史“日常”NFT,以创纪录的价格出售。 

使用 Moralis 的 Web3 平台,我们设法将整个“NFT 生成和铸造”方法浓缩为几个简单的步骤。使用 Moralis,您无需设置自己的服务器即可启动 NFT 项目。只需使用 Moralis 创建一个新服务器!

此外,Moralis 为您提供了更多工具,可将您的 NFT dApp 或平台转变为令人难以置信的体验。使用Moralis Speedy Nodes,您可以立即连接到您选择的各种区块链! 

如果您想进入旅程的下一部分并学习如何批量铸造 NFT,Moralis 提供了一种极好的方法,可以使该过程更快、成本更低。此外,Moralis 提供了从无缝以太坊 API以太坊 dApp 样板React dApp 样板、教育用户如何创建 BSC 令牌等等的一切!例如,创建一个DeFi 仪表板创建您的第一个 Ethereum dApp。使用终极Web3开发平台Moralis,进入 NFT 游戏从未如此简单。

声明 文字转载原作者:nft交易平台开发.nft交易系统开发搭建.nft 平台开发

Guess you like

Origin blog.csdn.net/awf133/article/details/121759883