本文详细介绍了如何使用已废弃的Candy Machine V1在Solana上铸造NFT。它提供了一个逐步的实践指南,包括安装必要的开发工具、设置项目环境(如Docker数据库和NFT管理器Strapi),部署Candy Machine,并最终铸造一个NFT。文章还提及了Candy Machine的“公平拍卖”机制。
Candy Machine V1 已弃用
Metaplex Core Candy Machine 已取代原版 Candy Machine,成为在 Solana 上启动 NFT 系列的推荐方式。请参阅如何使用 Metaplex Core Candy Machine 启动 NFT 系列。本指南仅用于历史教育目的。
本指南将通过一系列技术步骤,深入讲解如何使用 Candy Machine 在 Solana 上铸造 NFT。如果你想更快地完成此任务,并将繁重的工作交给我们,我们推荐使用 Crossmint NFT Mint API [mainnet] 附加组件。通过使用 Crossmint NFT Mint API [mainnet],你可以避免创建 Candy Machine。使用 NFT Mint API 创建集合,降低前期成本,轻松铸造 NFT!
试用 Crossmint NFT Mint API [mainnet]
读者你好!我们收到了许多关于另一个 Solana NFT 指南的请求,希望我们能展示如何在 Solana 上铸造 1-of-1 Token 或 NFT。在之前的指南中,我们并未完全触及核心内容。那便是将图片/元数据实际链接到 Token。为了实现这一点,我们将使用一个名为 Candy Machine 的程序。Candy Machine 是一款工具,允许你在互联网的一隅建立自己的 Solana NFT 商店。在本指南中,我们将逐步讲解如何设置这个 Solana NFT 铸造一站式商店。
注意:本指南旨在向你展示如何在 Solana 上创建和铸造你自己的 NFT 的工作流程和过程,而不是教你底层技术。
Solana 生态系统中有许多值得学习的地方,如果你打算做的不仅仅是我们提供的这条“康庄大道”,你将需要深入研究并学习这些独立的组件!祝你好运 :)
在继续之前,需要安装以下先决条件,我们将提供每个的安装文档/指南链接,因为它们比我们能更好地解释如何安装。
先决条件:
Candy Machine 是一款工具,它利用 Metaplex CLI 来生成 NFT,将图片和相关元数据链接到 NFT Token,并设置“公平拍卖”。“公平拍卖”实际上由两部分组成。第一部分是所有人都同时开始。没有预售!第二个组成部分是,如果没有更多 NFT 可铸造,它将不会发送交易。
不再将你的 SOL 投入虚空,不确定是否还有更多版本可铸造。虽然这里有很多内部机制可以深入研究,但最好的学习方法是边做边学!
你可以使用两个不同的仓库。其中一个是 candy-machine 维护者构建的,另一个是社区成员在此基础上构建的,用于抽象一些功能并创建更简单的工作流。在本教程中,我们将使用后者。但是,如果你需要偏离“康庄大道”,你将需要了解 Metaplex 的工作原理。
要 Fork 仓库,你需要前往社区成员的仓库,然后点击顶部的 Fork 按钮。

Fork 成功后,你需要克隆仓库:
git clone https://github.com/<YourUsernameHere>/solana-candy-factory
成功 Fork 项目后,你现在可以开始项目设置。
将所有代码拉取到你的本地机器后,你应该在你选择的代码编辑器中打开 solana-candy-factory 文件夹。
完成此操作后,我们现在需要开始设置项目进行开发。
首先要做的是通过运行以下命令安装项目的依赖项:
yarn
安装依赖项后,你需要启动 docker 中的 postgres 数据库,该数据库将在 NFT 部署到网络之前保存你的 NFT。
yarn start-nft-manager-db
这将启动你的数据库,并允许 Strapi(一个将保存我们所有 NFT 信息的无头 CMS)连接到 docker 容器。
这是这个仓库的真正亮点。你可以使用无头 CMS 来上传和管理所有 NFT,然后将它们发布到网上进行铸造。要进行此设置,你将运行以下命令:
yarn nft-manager
然后你可以导航到 http://localhost:1337/admin。你首先需要创建一个免费的 Strapi 帐户并登录。然后,你需要创建一个“用户”;为此,请点击下方所示的相应选项卡。

你的用户需要具有以下字段:
Role: Authenticated(这非常重要!)

剩下要做的就是保存你新创建的用户。完成此操作后,我们现在可以继续创建集合。
一个集合与 NFT 具有一对多的关系。一个集合将有许多 NFT 指向它。这个过程与创建用户非常相似。转到 “Collections” 选项卡创建一个新集合。这里只有两个字段。“Name”和“Family”是唯一与“collections”相关的字段,因为我们在 Strapi 中填写的字段需要与 Solana NFT Metadata Standard 中定义的 JSON 属性匹配。
“Name”应该是你正在启动的特定项目的名称,而“Family”可以是一个更大主题的一部分。
为了透明起见,我将按其名称命名字段。
Name 将是 "Collection_Name",Family 将是 "Collection_Family"。你现在可以保存集合,然后转到 "NFTs" 选项卡创建你的单个 NFT。
我将展示我的样子,并解释每个字段的含义:
以下信息的格式 --> FieldName: Value --- 解释。
?ext={file_extension} 查询来提供文件类型信息。{
"attributes": [
{
"value": "Solana",
"trait_type": "Chain"
},
{
"value": "Quicknode",
"trait_type": "Company"
},
{
"value": "Tutorial",
"trait_type": "Category"
},
{
"value": "Degen",
"trait_type": "Status"
}
]
}
这将是你的 NFT 的“属性”。你不必拥有这些,它们是完全任意的。但是,如果你设置了属性,它必须同时具有 value 和 trait_type 字段。Value 可以是字符串或数字。
{
"files": [
{
"uri": "image.png",
"type": "image/png"
}
],
"category": "image",
"creators": [
{
"share": 100,
"address": "7K6XCSwVh3YZAh7GhARZ9pQ7gWkFNuWQ77U5CbV3PcF3"
}
]
}
Properties 包含了许多关于具体显示内容的信息。它将链接到类型(在此处查看支持的类型),指向 uri(上传到 arweave),然后是 NFT 创建者的链接。可以有多个创建者,只要“share”总计为 100 即可。

注意:你的图片必须是 .png 格式!
在填写完所有这些信息并使用适合你的值之后,你就可以铸造 NFT 了!
一切准备就绪后,只需运行几个命令。由于我们所构建的框架,这只需要几个命令。
首先,我们要确保 NFT 产生的所有资金都归你所有!使用以下命令:
yarn update-creator-all-rows
然后它会要求你粘贴正确的地址。在此处输入你的 Solana 地址。这就是之前的创建者地址!
然后你可以输入你未来销售该艺术品应获得的版税百分比。这就是 Seller_fee_basis_points 字段。
确认无误后,我们现在可以生成 NFT 数据。
yarn generate-nfts-sources
它会询问你是否要打乱顺序。这将使人们铸造 NFT 的顺序随机化。如果你要进行 5-10k NFT 的大量空投,你可能不希望它们按顺序进行!这会为你随机化。对于本教程的目的来说,这并不重要,因为只有一个 NFT。
运行上一个命令后,你应该在 nft-manager/nfts-sources 文件夹中看到两个文件:0.json 和 0.png。
如果这些文件都存在,你就可以部署了!
由于我们使用的是 devnet,因此与在 mainnet 上部署会有轻微不同,但该仓库的 README 很好地说明了这些差异。你可以运行以下命令,并通过在不输入任何其他内容的情况下按“Enter”键来接受所有默认值。
yarn setup-dev
如果你想了解此命令内部做了什么,可以在 README 中找到。只需知道这正在设置负责铸造你之前生成的 NFT 的程序。
这就是部署过程的全部内容!
程序启动后,我们只需与之交互!要设置网站,请运行以下命令。
yarn dev
这将在 http://localhost:3000 启动一个网页。你可以连接你的钱包,然后点击下方所示的“Mint”按钮。

你可以看到图片中的那个已经没有可用的了,因为我们已经铸造了唯一的那个。如果你在没有可用 NFT 的情况下尝试铸造,它会要求你确认交易;然后程序会拒绝它,因为没有剩余的可以给你。这又回到了我们前面提到的“公平拍卖”。
如果一切顺利,你的 Phantom 钱包中现在应该有一个 NFT。这就是我的样子!


恭喜!你刚刚在 Solana 上铸造了你的第一个 NFT!幕后发生了很多我们没有涉及的事情。如果你想在 mainnet 上进行更大规模的 NFT 发行,我建议你深入研究 Metaplex,了解每个不同的命令是如何工作的,因为事情并不总是顺利进行,你需要能够解决问题,以防万一出现意外。尽管如此,你仍然学到了很多!
订阅我们的时事通讯,获取更多关于 Ethereum 的文章和指南。如果你有任何反馈,请随时通过 Twitter 与我们联系。你也可以随时在我们的 Discord 社区服务器上与我们聊天,那里有你将遇到的最酷的开发者 :)
- 原文链接: quicknode.com/guides/sol...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!