可用守卫

多资产支付守卫

Last updated March 10, 2026

Asset Payment Multi 守卫要求铸造者转移指定 collection 中的一个或多个 Core Asset 作为支付,才能从 Core Candy Machine 铸造。

概述

Asset Payment Multi 守卫通过向付款人收取来自指定资产 collection 的一个或多个 Core Asset 来允许铸造。资产将被转移到预定义的目的地。

如果付款人没有拥有来自必需 collection 的资产,铸造将失败。

该守卫类似于 Asset Payment 守卫,但可以接受多个资产进行支付。

守卫设置

Asset Payment Multi 守卫包含以下设置:

  • Required Collection:必需 Collection 的铸造地址。我们用于支付的资产必须属于此 collection。
  • Destination:将接收所有资产的钱包地址。
  • Number:需要支付的资产数量。

使用 Asset Payment Multi 守卫设置 Candy Machine

create(umi, {
// ...
guards: {
assetPaymentMulti: some({
requiredCollection: requiredCollection.publicKey,
destination: umi.identity.publicKey,
num: 2
}),
},
});

API 参考:createAssetPaymentMulti

铸造设置

Asset Payment Multi 守卫包含以下铸造设置:

  • [Asset Address]:用于支付的资产地址数组。这些资产必须属于必需的 collection 且必须属于铸造者。
  • Collection Address:用于支付的 Collection 地址。
  • Destination:将接收所有资产的钱包地址。

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

使用 Asset Payment Multi 守卫设置 Candy Machine

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

mintV1(umi, {
// ...
mintArgs: {
assetPaymentMulti: some({
requiredCollection: publicKey(requiredCollection),
destination,
assets: [firstAssetToSend.publicKey, secondAssetToSend.publicKey],
num: 2
}),
},
});

API 参考:mintV1AssetPaymentMultiMintArgs

Route 指令

Asset Payment Multi 守卫不支持 route 指令。

注意事项

  • 所有用作支付的资产将被永久转移到目标钱包——铸造者将失去每个资产的所有权。
  • 守卫设置中的 num 字段必须与铸造时 assets 数组中提供的资产地址数量匹配。
  • assets 数组中的每个资产都必须属于指定的必需 collection;如果任何资产来自不同的 collection,铸造交易将失败。
  • 要仅要求一个资产作为支付,请改用 Asset Payment 守卫。