可用守卫
NFT Payment 守卫
概述
NFT Payment 守卫允许通过向付款人收取指定 NFT 集合中的一个 NFT 来铸造。NFT 将被转移到预定义的目标地址。
如果付款人没有来自所需集合的 NFT,铸造将失败。
守卫设置
NFT Payment 守卫包含以下设置:
- Required Collection(所需集合):所需 NFT 集合的铸币地址。我们用于支付的 NFT 必须属于此集合。
- Destination(目标地址):将接收所有 NFT 的钱包地址。
使用 NFT Payment 守卫设置 Candy Machine
create(umi, {
// ...
guards: {
nftPayment: some({
requiredCollection: requiredCollectionNft.publicKey,
destination: umi.identity.publicKey,
}),
},
});
API 参考:create、NftPayment
铸造设置
NFT Payment 守卫包含以下铸造设置:
- Destination(目标地址):将接收所有 NFT 的钱包地址。
- Mint(铸币账户):用于支付的 NFT 的铸币地址。这必须属于所需集合并且必须属于铸造者。
- Token Standard(代币标准):用于支付的 NFT 的代币标准。
- Token Account(代币账户)(可选):您可以选择显式提供将 NFT 与其所有者链接的代币账户。默认情况下,将使用付款人的关联代币账户。
- Rule Set(规则集)(可选):如果我们使用具有规则集的可编程 NFT 支付,则为用于支付的 NFT 的规则集。
请注意,如果您计划在没有我们 SDK 帮助的情况下构建指令,您需要提供这些铸造设置以及更多作为指令参数和剩余账户的组合。有关更多详细信息,请参阅 Candy Guard 程序文档。
使用 NFT Payment 守卫铸造
您可以使用 mintArgs 参数传递 NFT Payment 守卫的铸造设置,如下所示。
import { TokenStandard } from "@metaplex-foundation/mpl-token-metadata";
mintV2(umi, {
// ...
mintArgs: {
nftPayment: some({
destination,
mint: nftToPayWith.publicKey,
tokenStandard: TokenStandard.NonFungible,
}),
},
});
API 参考:mintV2、NftPaymentMintArgs
Route 指令
NFT Payment 守卫不支持 route 指令。
