本文详细介绍了如何使用人工智能生成NFT并部署相关智能合约,内容涵盖了智能合约的开发、部署和前端应用的构建,以及如何将生成的NFT数据存储在IPFS和与区块链连接的步骤。文章条理清晰,结构合理,包含代码示例和截图,适合希望全面了解NFT开发的开发者。
学习如何部署NFT智能合约,生成AI NFT,并构建完整的前端应用程序
以下是我们的智能合约代码。你可以从这里获取它 NFT.sol
根据“设定”规则,你应该在本地区块链节点(例如:Hardhat或Truffle)或像Goreli Testnet这样的公共测试网中部署上述合约。虽然这样做没问题,但有以下几个痛点:
关于本地节点:
localhost
是有原因的!所以别指望了。😭2.1。 这就是 BuildBear 的用武之地。它为你融合了两者的好处:
查看这里: ** 本地localhost的失败 和 * 使用BuildBear测试网的分析赢得Web3黑客马拉松
2.2。 访问 BuildBear App。登录你的GitHub或Google账号后,你将看到一个类似于下面图片的页面:
2.3。 创建一个从以太坊主网分叉的私有节点:
2.4。 使用“添加到MetaMask”按钮将你的私有测试网添加到你的MetaMask钱包:
2.5。 从水龙头中铸造你的以太代币(使用水龙头URL):
2.5.1。 铸造代币
3.1。 访问 Remix 在线 IDE 网站并接受条款和条件。
3.2。 创建一个新合约并粘贴智能合约代码,可以从这里获取👉 GitHub链接
3.3。 使用以下图标和详细信息编译智能合约,Solidity版本为0.8.1:
请注意,合约的ABI仅在编译后提供。你可以在上面的图像中看到可以复制的ABI。请将其保存,我们稍后会用到。
3.4。 选择“部署和运行交易”选项卡:并按照如下步骤部署合约:
3.5。 点击“交易”按钮,将合约部署到你的私有节点网络;完成后,你将看到类似于以下的内容:
3.6。 复制合约地址并访问你的个人分叉测试网的区块链浏览器(链接在 home.buildbear.io 的仪表盘页面可用)并找到你的合约。
3.6.1。 提交合约的ABI以方便交互
你可以访问BuildBear的区块链浏览器上的合约页面,然后访问合约选项卡。你应该会看到类似于以下的内容:
提交我们在步骤3.3中复制的ABI;完成后,你应该在合约页面上看到可用的读取和写入合约按钮:
好耶 🎉 🎉
创建新Next.js应用程序的最简单方法是使用 create-next-app
CLI工具。你可以通过 npm
安装它:
$ npm install create-next-app
安装完成后,你可以通过调用该工具并为项目提供名称来初始化一个新Next.js应用:
$ npx create-next-app nft-app
注意: 如果你还未安装 create-next-app
- npx
将提示你自动安装它。
工具完成初始化骨架项目后,让我们进入该目录并查看里面的内容:
标准的 package.json
,package-lock.json
和 node_modules
都在,但我们还有 /pages
,/public
和 /styles
目录,以及一个 next.config.js
文件!
让我们看看这些是什么。
Next.js实际上是React的扩展,它确实引入了一些新的事物,使React应用程序开发更加简单和快速——从 Next.js页面 开始。
Next.js使得用React创建多页面应用程序变得极其简单,具有默认的 基于文件系统的路由。你不需要安装任何额外的包,例如 react-router-dom
,或者根本不需要配置路由。
所有Next.js项目都包括一个默认的 /pages
目录,这是你将要使用的所有React组件的家。对于每个组件,路由器将根据该组件提供页面。
Next.js项目设置完成
由于在区块链上存储数据是昂贵的,因此我们将使用IPFS来上传NFT数据,为此我们将使用 NFT.storage 服务。
NFT.Storage是一个存储服务,让你可以免费上传链下NFT数据(如元数据、图像和其他资产),目标是将所有NFT数据作为公共资产存储。
数据在Filecoin去中心化存储网络中永久存储,并通过其独特的内容ID在IPFS上提供。
npm install nft.storage
安装包StoreMetadata.jsx
并将此代码添加到文件中这是主要组件,它准备我们输入的元数据,然后通过创建的JS客户端将其上传到IPFS。
你可以根据代币类型的标准自定义元数据。例如,可以编辑元数据文件以选择要添加或选择的数据。
index.js
文件中为输入设置状态(在我们的例子中为名称、描述和图像文件)Home.module.css
中让我们看看如何将DALL-E 2 API集成到我们的应用程序中。
首先,我们需要访问 OpenAI 网站。你需要注册以生成API密钥。你还将获得$18的账户余额供你使用。
注册时选择你在创建应用程序。
创建账户后,转到查看API密钥部分,在那里你可以创建自己的唯一API密钥。查看下面的图像以获取参考。
现在在你的下一个应用程序中,创建一个 .env 文件。这是用来存储API密钥。
将你的API密钥添加进去。
NEXT_PUBLIC_AI_API_KEY= 你的API密钥在这里
现在API密钥已经添加,我们需要在我们的App.js或App.jsx文件中导入一些东西。这些包括来自 openai SDK 的 Configuration 和 OpenAIApi。但首先,我们需要将 openai SDK 安装到React应用中。
安装它,仅需键入以下命令:
npm install openai
可能需要一些时间来安装。然后,像这样导入我们之前提到的两项内容:
import { Configuration, OpenAIApi } from "openai";
我们需要创建一个配置变量,该变量将从.env文件中获取API密钥。
const configuration = new Configuration({ apiKey: import.meta.env.VITE_Open_AI_Key, });
const openai = new OpenAIApi(configuration);
我们需要一些东西将我们的客户端连接到这些区块链节点之一,以便他们可以开始利用区块链的全部功能,这正是ether.js的作用。它是一个用JavaScript编写的库,允许我们创建任何与区块链对话的JavaScript应用程序,因此我们可以使用和创建许多将基于去中心化应用程序(daps)的应用程序。它实质上是一个桥梁,可以将你的客户端连接到区块链。
Ether.js模块
npm install --save ethers
让我们测试应用程序
连接钱包,输入名称、描述,生成图像,然后按下铸造按钮并签署交易。一旦成功,你会收到警报。
去区块浏览器查看交易详情
我们已经成功构建了NFT铸造!!! 🎉🎉🎉
在Twitter和LinkedIn上分享你的项目并标记BuildBear
如果你欣赏我们所做的,请在 Twitter,和 LinkedIn上关注我们,并 加入Telegram 组,如果你还没有加入的话。
如果你喜欢我们的工作,请给我们一个掌声 👏。
作者:Chandan,
顺便说一下,如果你知道任何想和BuildBear合作的人,请查看 这里!!
代码仓库:https://github.com/BuildBearLabs/Tutorials/tree/main/Ai-mint
- 原文链接: medium.com/buildbear/gen...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!