利用可能なガード
NFT Payment Guard
概要
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 (オプション): Rule Setを持つプログラマブルNFTを使用して支払いを行う場合、支払いに使用するNFTのRule Set。
注意:SDK の助けなしで命令を構築する予定の場合、これらのミント設定およびそれ以外を命令引数と残りのアカウントの組み合わせとして提供する必要があります。詳細については、Candy GuardのプログラムドキュメントAtionを参照してください。
NFT Paymentガードを使用してCandy Machineを設定する
次のように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
ルート命令
NFT Paymentガードはルート命令をサポートしません。
