这篇文章提供了一个关于如何使用已过时的Candy Machine V1在Solana上部署NFT集合的分步指南。它详细介绍了设置开发环境、管理NFT元数据(使用Strapi)以及最终铸造NFT的过程。
Candy Machine V1 已过时
Metaplex Core Candy Machine 已取代 Candy Machine 成为在 Solana 上发布 NFT 合集的推荐方式。请查阅 How to Launch an NFT Collection with Metaplex Core Candy Machine 开始。本指南仅用于历史教育目的。
你好,亲爱的读者!我们收到了大量关于 Solana 上另一份 NFT 指南的请求。在之前的指南中,我们没有深入到最精彩的部分,也就是如何链接图像和 Token 的元数据。
为了实现这一点,我们将使用一个名为 Candy Machine 的程序。它是一个工具,允许你在互联网上搭建自己的 Solana NFT 商店。
在本指南中,我们将引导你完成所有这些的安装过程。
note
本指南旨在向你展示如何在 Solana 上创建自己的 NFT 以及所需的一切。它不是为了教你所有底层技术。Solana 生态系统中有太多东西需要学习,如果你想做更多本指南提供的内容,那么你将需要研究和学习更多!加油!:)
在继续之前,需要安装以下先决条件,我们提供了每个安装指南的链接,他们肯定比我们更好地解释了如何安装每项技术。
Candy Machine 是一个程序,它使用 Metaplex CLI 来生成 NFT,链接 NFT Token 的图像和相关元数据,并执行所谓的“公平拍卖”(Fair auction)。公平拍卖主要包括两点:第一是拍卖同时向所有人开放,没有预售!第二是如果不再有 NFT 可以被创建,交易将不会被发送。
你再也不必白白浪费你的 SOL,不确定是否还有 NFT 可以被创建。尽管在这里有很多东西需要学习和探索,但最好的学习方式是边做边学。
有两种不同的仓库你可以使用,一个由 Candy Machine 支持团队创建,另一个由社区成员在前者基础上创建,以使事情更简单,并创建一个更流畅的工作流程。在本教程中我们将使用后者,如果你想自己探索并偏离本教程的路线,你必须了解 Metaplex 的工作原理。
为了 Fork 仓库,你需要前往社区创建的仓库并点击右上角的 Fork 按钮。

一旦你 Fork 了仓库,你需要克隆它:
git clone https://github.com/<NombreDeUsuario>/solana-candy-factory
一旦代码下载到你的电脑,你需要用代码编辑器打开 solana-candy-machine 文件夹。
现在我们将开始配置我们的项目以进行开发。第一步是安装依赖项,运行以下命令:
yarn
安装完必要的依赖后,需要运行 Docker 中的 Postgres 数据库,该数据库将存储 NFT 在发行到区块链网络之前的信息。
yarn start-nft-manager-db
这将配置数据库,并为其提供连接到 Strapi 的权限,Strapi 是一个无头内容管理系统,将包含所有 NFT 信息。
这是整个仓库最棒的地方。可以使用无头内容管理系统来管理所有 NFT 在发行到区块链之前的信息。为了配置它,使用以下命令:
yarn nft-manager
之后,你可以导航到地址 http://localhost:1337/admin。第一次你需要创建一个账户并登录。然后,你需要创建一个“用户”,为此,点击下图所示的选项:

填写以下信息:

剩下的就是保存用户。完成此步骤后,我们可以开始创建我们的合集。
一个合集与 NFT 具有一对多的关系。一个合集将包含许多 NFT。
这个过程与创建用户非常相似。导航到“Collections”部分以创建新合集。
这里有两个字段,Name 和 Family,它们与合集相关,因为我们在 Strapi 中填写的字段必须与 Solana NFT 元数据标准中定义的 JSON 属性相匹配。
Name 必须是你正在发布的项目的具体名称,而 Family 可以是一个更广泛的集合。
为了本指南的透明度,我将按其名称命名这些字段。
Name 将是 Collection_Name,Family 将是 Collection_Family。现在你可以保存合集并前往 NFT 部分创建你的单个 NFT。
我将向你展示我的 NFT 是怎样的,并顺便解释每个字段:
以下信息的格式 --> FieldName: 值 -- 解释
- Name: CoolNFTName -- 你的 NFT 名称
- Symbol: CNN -- 这是你的 NFT 的“股票代码”,即标识符。例如 Degenerate APE Academy 的 DAPE。
- Description: 这是我超酷 NFT 的描述 -- 单个 NFT 的描述
- Seller_fee_basis_points: 500 -- 这是 NFT 创作者在每次购买中收到的版税百分比(500 等于 5%)。使用此框架你无需过多担心这一点,因为我们使用命令行,但最好检查它是否按照我们真正想要的方式配置,而不仅仅是它在命令行中的实现方式。
- Image: Image.png -- 图像文件名。将此字段保留为 Image.png(无论实际图像名称如何),因为它会动态更改。它必须与我将在下面展示的 Properties --> Files --> Uri 部分的 JSON 相匹配。
- Animation URL: N/A -- 这是指向多媒体文件的 URL,支持 MP4 和 MOV 用于视频,MP3、FLAC 和 WAV 用于音频,GLB 用于 AR/3D。你可以使用
?ext={file_extension}来提供文件类型信息。 External URL: https://www.quicknode.com/ -- 这是一个可以作为备用地址,用于在 imgur 等中心化服务中查看图像。但是,你可以将其留空 (blank == "")。- Traits:
"attributes": [\ {\ "value": "Solana",\ "trait_type": "Chain"\ },\ {\ "value": "Quicknode",\ "trait_type": "Company"\ },\ {\ "value": "Tutorial",\ "trait_type": "Category"\ },\ {\ "value": "Degen",\ "trait_type": "Status"\ }\ ]这些将是你的 NFT 的属性。你不需要拥有这些,它们是完全任意的。但是,如果你设置任何属性,它必须有一个值和一个
trait_type字段。该值可以是文本或数字。
- Properties:
"files": [\ {\ "uri": "image.png",\ "type": "image/png"\ }\ ], "category": "image", "creators": [\ {\ "share": 100,\ "address": "7K6XCSwVh3YZAh7GhARZ9pQ7gWkFNuWQ77U5CbV3PcF3"\ }\ ]属性包含大量关于正在显示的内容的信息。它链接文件类型(你可以在这里查看支持的类型),设置 uri(上传到 arweave),然后链接 NFT 的创建者,可以有多个创建者,因此 share 可以高达 100。
- Content: 这是你可以上传图像的地方。这就是我选择的!

注意:图像必须是 PNG 格式
一旦你用你选择的数据填写了所有这些信息,你就可以铸造 NFT 了。
到目前为止,我们所做的一切,距离开始只剩下几个命令了。这归因于我们使用的框架,它将事情简化为只需几个命令。
我们首先需要做的是确保所有从 NFT 产生的资金都将进入你的账户。使用以下命令:
yarn update-creator-all-rows
它会询问正确的地址,输入你的 Solana 地址,这是我们之前看到的创建者地址。
然后你可以设置你希望从 NFT 未来销售中获得的版税百分比,这就是 Seller_fee_basis_points 字段。
检查完这些,我们就可以生成 NFT 信息了。
yarn update-creator-all-rows
它会询问你是否要打乱 (shuffle) 顺序,这将随机交换人们铸造 NFT 的顺序。如果你正在创建大量 NFT(介于 5 千到 1 万个之间),你肯定不希望它们按顺序生成,它会为你打乱。在本教程中,我们只创建一个 NFT,所以这样做没有任何意义。
运行完上面的命令后,你会在 nft-manager/nfts-sources 文件夹中看到两个文件:0.json 和 0.png。
如果这些文件存在,你就可以将它们发布到区块链了。
由于我们使用的是 devnet,情况会与你将 NFT 发布到 mainnet 有所不同,但仓库的 Readme 文件很好地涵盖了这些差异。你可以运行以下命令,并通过按 Enter 键接受所有默认值,无需添加任何其他内容。
yarn setup-dev
如果你想了解这个命令背后发生了什么,它在 readme 文件中可用!你只需要明白,这是负责铸造你之前生成的 NFT 的部分。
这就是发布到区块链的整个过程!
随着所有程序都已创建并发布到区块链,剩下的就是与之交互了。要运行网站,你需要运行以下命令:
yarn dev
这将为你提供一个网页 http://localhost:3000。你可以连接你的 Wallet 并点击“Mint”按钮,如下所示:

正如你在图中看到的,由于我们刚刚铸造了唯一一个存在的 NFT,因此没有更多的可用。如果你现在在没有可用 NFT 的情况下再次尝试铸造,它会询问你是否确认交易,然后程序将拒绝该交易,因为没有更多的 NFT 可以给你。这是我们之前提到的公平拍卖的一部分。
如果一切顺利,你现在应该在你的 Phantom Wallet 中拥有一个 NFT。我的看起来像这样:


恭喜!你刚刚在 Solana 上铸造了你的第一个 NFT!我们还有很多没有涉及的内容。如果你想在 mainnet 上进行更大规模的 NFT 发布,我建议你更深入地研究 Metaplex,了解现有不同命令的工作原理,事情并不总是那么直接,你必须能够解决出现的问题。话虽如此,你仍然学到了很多!
订阅我们的 newsletter 以获取更多关于 Ethereum 的文章和指南。如果你有任何评论,请随时在我们的 Twitter 上发表。你也可以随时在我们的 Discord 服务器上与我们交谈,在那里你可以找到一些最棒的开发者 :)
- 原文链接: quicknode.com/guides/sol...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!