利用可能なガード

Token Paymentガード

概要

Token Paymentガードは、設定されたミントアカウントから支払者にトークンを請求することでミントを許可します。トークンの数と宛先アドレスの両方も設定できます。

支払者が支払うために必要な量のトークンを持っていない場合、ミントは失敗します。

ガード設定

Token Paymentガードには以下の設定が含まれます:

  • Amount: 支払者に請求するトークンの数。
  • Mint: 支払いに使用したいSPLトークンを定義するミントアカウントのアドレス。
  • Destination Associated Token Address (ATA): トークンを送信する関連トークンアカウントのアドレス。このアドレスは、Token Mint属性とこれらのトークンを受け取る任意のウォレットのアドレスを使用して、Associated Token Address PDAを見つけることで取得できます。

Token Paymentガードを使用してCore Candy Machineをセットアップする

この例では、現在のアイデンティティを宛先ウォレットとして使用していることに注意してください。

import { findAssociatedTokenPda } from "@metaplex-foundation/mpl-toolbox";
create(umi, {
// ...
guards: {
tokenPayment: some({
amount: 300,
mint: tokenMint.publicKey,
destinationAta: findAssociatedTokenPda(umi, {
mint: tokenMint.publicKey,
owner: umi.identity.publicKey,
})[0],
}),
},
});

APIリファレンス: create, TokenPayment

ミント設定

Token Paymentガードには以下のミント設定が含まれます:

  • Mint: 支払いに使用したいSPLトークンを定義するミントアカウントのアドレス。
  • Destination Associated Token Address (ATA): トークンを送信する関連トークンアカウントのアドレス。

SDKを使用せずに手動で命令を構築する場合は、これらのミント設定などを命令の引数と残りのアカウントの組み合わせとして提供する必要があることに注意してください。詳細については、Core Candy Guardのプログラムドキュメントを参照してください。

NFT Burnガードを使用してミントする

Token PaymentガードのMint Settingsは、次のようにmintArgs引数を使用して渡すことができます。

mintV1(umi, {
// ...
mintArgs: {
tokenPayment: some({
mint: tokenMint.publicKey,
destinationAta,
}),
},
});

APIリファレンス: mintV1, TokenPaymentMintArgs

ルート命令

Token Paymentガードはルート命令をサポートしていません。