简介
概述
Metaplex协议的Candy Machine是Solana上用于公平NFT集合发布的领先铸造和分发程序。正如其名称所示,您可以将Candy Machine视为一个临时结构,首先由创作者加载,然后由买家卸载。它允许创作者以安全且可定制的方式将其数字资产上链。
该名称来源于通过机械摇柄投币分发糖果的自动售货机。在这种情况下,糖果是NFT,付款是SOL或SPL代币。

本文档涉及Candy Machine V3,可用于铸造Metaplex Token Metadata NFT。如果您想创建Core资产,请参阅Core Candy Machine。
简介
截至2022年9月,Solana上78%的NFT都是通过Metaplex的Candy Machine铸造的。这包括Solana生态系统中大多数知名的NFT项目。
以下是它提供的一些功能。
- 接受SOL、NFT或任何Solana代币作为付款。
- 通过开始/结束日期、铸造限制、第三方签名者等限制您的发布。
- 通过可配置的机器人税和验证码等守门人保护您的发布免受机器人攻击。
- 将铸造限制为特定NFT/代币持有者或精选钱包列表。
- 创建具有不同规则集的多个铸造组。
- 在发布后揭示您的NFT,同时允许您的用户验证该信息。
- 还有更多功能!
感兴趣吗?让我们带您简单了解Candy Machine的工作原理!
Candy Machine的生命周期
第一步是创作者创建一个新的Candy Machine并按照自己的意愿进行配置。
创建的Candy Machine会跟踪其自己的设置,这有助于我们了解如何铸造其所有NFT。例如,有一个creators参数将分配给从此Candy Machine铸造的所有NFT。我们将在以下页面中更详细地了解如何创建和配置Candy Machine,包括一些代码示例:Candy Machine设置和管理Candy Machine。
然而,我们仍然不知道应该从该Candy Machine铸造哪些NFT。换句话说,Candy Machine尚未加载。因此,我们的下一步是向Candy Machine插入项目。
每个项目由两个参数组成:
name:NFT的名称。uri:指向NFT的JSON元数据的URI。这意味着JSON元数据已经通过链上(例如Arweave、IPFS)或链下(例如AWS、您自己的服务器)存储提供商上传。
所有其他参数在所有NFT之间共享,因此直接保存在Candy Machine的设置中以避免重复。有关更多详细信息,请参阅插入项目。
请注意,此时尚未创建真正的NFT。我们只是在Candy Machine中加载所有需要的数据,以便在铸造时按需创建NFT。这就引出了下一步。
一旦Candy Machine加载完成并满足所有预配置条件,用户就可以从中开始铸造NFT。只有在这个时候,NFT才会在Solana区块链上创建。请注意,在铸造之前,某些用户可能需要执行额外的验证步骤——例如完成验证码或发送Merkle证明。有关更多详细信息,请参阅铸造。
一旦从Candy Machine铸造了所有NFT,它就完成了使命,可以安全删除以释放区块链上的一些存储空间并收回一些租金。有关更多详细信息,请参阅管理Candy Machine。
Candy Guard
现在我们了解了Candy Machine的工作原理,让我们深入了解创作者可以保护和自定义其Candy Machine铸造过程的各种方式。
创作者可以使用我们所谓的"Guard"向其Candy Machine添加各种功能。Metaplex Candy Machine附带一个名为Candy Guard的附加Solana程序,该程序提供总共21个默认guard。通过使用附加程序,它允许高级开发人员分叉默认的Candy Guard程序以创建自己的自定义guard,同时仍然能够依赖主Candy Machine程序。
每个guard都可以根据需要启用和配置,因此创作者可以挑选他们需要的功能。禁用所有guard将等同于允许任何人随时免费铸造我们的NFT,这可能不是我们想要的。因此,让我们看一些guard来创建一个更现实的示例。
假设一个Candy Machine具有以下guard:
- Sol Payment:此guard确保铸造钱包必须向配置的目标钱包支付配置的SOL金额。
- Start Date:此guard确保只有在配置的时间之后才能进行铸造。
- Mint Limit:此guard确保每个钱包铸造的数量不超过配置的数量。
- Bot Tax:此guard有点特殊。它不阻止任何东西,但它会改变失败铸造的行为以防止机器人铸造Candy Machine。当此guard激活时,如果任何其他激活的guard未能验证铸造,它将向尝试铸造的钱包收取少量配置的SOL。
我们最终得到的是一个受机器人保护的Candy Machine,它收取SOL,在特定时间启动,并且每个钱包只允许有限数量的铸造。这是一个具体的例子。
如您所见,拥有超过21个默认guard以及创建自定义guard的能力,使创作者能够挑选对他们重要的功能并组成完美的Candy Machine。这是一个非常强大的功能,我们已经为它专门准备了许多页面。了解有关guard的更多信息的最佳起点是Candy Guard页面。
下一步
虽然这提供了Candy Machine的良好概述,但还有更多内容需要发现和学习。以下是您可以在Candy Machine文档的其他页面中期待的内容。
- 入门指南。列出您可以用来管理Candy Machine的各种库和SDK。
- Candy Machine设置。详细解释Candy Machine设置。
- 管理Candy Machine。解释如何管理Candy Machine。
- 插入项目。解释如何将项目加载到Candy Machine中。
- Candy Guard。解释guard的工作原理以及如何启用它们。
- Guard组。解释如何配置多组guard。
- 特殊Guard指令。解释如何执行特定于guard的指令。
- 铸造。解释如何从Candy Machine铸造以及如何处理预铸造要求。
- 参考。列出与Candy Machine相关的API参考。
