可用守卫

门卫守卫

Last updated March 10, 2026

Gatekeeper 守卫要求铸造钱包持有来自指定 Gatekeeper 网络(如 Civic Captcha Pass)的有效 Gateway Token 才能允许铸造。

概述

Gatekeeper 守卫检查铸造钱包是否拥有来自指定 Gatekeeper 网络 的有效 Gateway Token

在大多数情况下,此令牌将在完成验证码挑战后获得,但可以使用任何 Gatekeeper 网络。

Core Candy Machine 端没有太多需要设置的内容,但根据选择的 Gatekeeper 网络,您可能需要要求铸造钱包执行一些预验证检查以授予他们所需的 Gateway Token。

以下是设置 Gatekeeper 网络时可能有帮助的一些额外推荐材料。

守卫设置

Gatekeeper 守卫包含以下设置:

  • Gatekeeper Network:用于检查铸造钱包有效性的 Gatekeeper 网络的公钥。例如,您可以使用 "Civic Captcha Pass" 网络——确保铸造钱包已通过验证码——使用以下地址:ignREusXmGrscGNUesoU9mxfds9AiYTezUKex2PsZV6
  • Expire On Use:铸造 NFT 后是否应将铸造钱包的 Gateway Token 标记为过期。
    • 设置为 true 时,他们需要再次通过 Gatekeeper 网络才能铸造另一个 NFT。
    • 设置为 false 时,他们可以继续铸造另一个 NFT 直到 Gateway Token 自然过期。

使用 Gatekeeper 守卫设置 Core Candy Machine

create(umi, {
// ...
guards: {
gatekeeper: some({
network: publicKey("ignREusXmGrscGNUesoU9mxfds9AiYTezUKex2PsZV6"),
expireOnUse: true,
}),
},
});

API 参考:createGatekeeper

铸造设置

Gatekeeper 守卫接受以下铸造设置:

  • Gatekeeper Network:用于检查铸造钱包有效性的 Gatekeeper 网络的公钥。
  • Expire On Use:铸造 NFT 后是否应将铸造钱包的 Gateway Token 标记为过期。
  • Token Account(可选):作为一个小免责声明,您很少需要提供此设置,但如果需要可以使用。这指的是从付款人和 Gatekeeper 网络派生的 Gateway Token PDA,用于验证付款人是否有资格铸造。我们的 SDK 可以推断此 PDA 地址,因此您不需要提供它。但是,某些 Gatekeeper 网络可能会向同一钱包发放多个 Gateway Token。为了区分它们的 PDA 地址,它使用 Seeds 数组,默认为 [0, 0, 0, 0, 0, 0, 0, 0]

注意,如果您计划在没有我们 SDK 帮助的情况下构建指令,您需要将这些铸造设置和更多内容作为指令参数和剩余账户的组合提供。详情请参阅 Candy Guard 的程序文档

使用 Gatekeeper 守卫铸造

您可以使用 mintArgs 参数传递 Gatekeeper 守卫的铸造设置,如下所示。

mintV1(umi, {
// ...
mintArgs: {
gatekeeper: some({
network: publicKey("ignREusXmGrscGNUesoU9mxfds9AiYTezUKex2PsZV6"),
expireOnUse: true,
}),
},
});

Route 指令

Gatekeeper 守卫不支持 route 指令。

注意事项

  • 铸造钱包必须在尝试铸造之前从配置的 Gatekeeper 网络获取有效的 Gateway Token。令牌获取过程(例如完成验证码)发生在 Candy Machine 程序之外。
  • expireOnUse 设置为 true 时,每次铸造都需要一个新的 Gateway Token,实际上将每次验证码完成限制为一次铸造。
  • Civic Captcha Pass 网络地址为 ignREusXmGrscGNUesoU9mxfds9AiYTezUKex2PsZV6。其他 Gatekeeper 网络可能有不同的要求和令牌发放流程。