可用守卫

NFT 销毁守卫

Last updated March 10, 2026

NFT Burn 守卫将铸造限制为预定义 NFT Collection 的持有者,并在铸造交易中永久销毁持有者的 NFT 作为铸造成本。

概述

NFT Burn 守卫将铸造限制为预定义 NFT Collection 的持有者,并销毁持有者的 NFT。因此,付款人在铸造时必须提供要销毁的 NFT 铸造地址。

守卫设置

NFT Burn 守卫包含以下设置:

  • Required Collection:必需 NFT Collection 的铸造地址。我们用于铸造的 NFT 必须属于此 collection。

使用 NFT Burn 守卫设置 Candy Machine

create(umi, {
// ...
guards: {
nftBurn: some({ requiredCollection: requiredCollectionNft.publicKey }),
},
});

API 参考:createNftBurn

铸造设置

NFT Burn 守卫包含以下铸造设置:

  • Required Collection:必需 NFT Collection 的铸造地址。
  • Mint:要销毁的 NFT 的铸造地址。此 NFT 必须属于必需的 collection 且必须属于铸造者。
  • Token Standard:要销毁的 NFT 的代币标准。
  • Token Account(可选):您可以选择显式提供将 NFT 与其所有者链接的代币账户。默认情况下,将使用付款人的关联代币账户。

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

使用 NFT Burn 守卫铸造

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

import { TokenStandard } from "@metaplex-foundation/mpl-token-metadata";
mintV1(umi, {
// ...
mintArgs: {
nftBurn: some({
requiredCollection: requiredCollectionNft.publicKey,
mint: nftToBurn.publicKey,
tokenStandard: TokenStandard.NonFungible,
}),
},
});

API 参考:mintV1NftBurnMintArgs

Route 指令

NFT Burn 守卫不支持 route 指令。

注意事项

  • 提供用于销毁的 NFT 必须属于指定的必需 collection,且必须由铸造者拥有。
  • 销毁是不可逆的——一旦 NFT 在铸造交易中被销毁,就无法恢复。
  • 此守卫使用 Token Metadata NFT(非 Core Assets)。tokenStandard 字段必须与被销毁 NFT 的实际标准匹配(例如 NonFungibleProgrammableNonFungible)。