利用可能なガード

Token2022 Paymentガード

Last updated March 10, 2026

Token2022 Paymentガードは、指定された量のSPL Token-2022トークンをミンターに請求し、設定された宛先ウォレットに転送してからミントを許可します。

概要

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

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

Token2022 PaymentガードはToken Paymentガードと同じように機能します。唯一の違いは、ミントとトークンアカウントがSPL Token-2022プログラムからのものである必要があることです。

ガード設定

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

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

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

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

APIリファレンス: mintV1, TokenPaymentMintArgs

ルート命令

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

注意事項

  • Token2022 Paymentガードは、ミントとトークンアカウントが元のSPL TokenプログラムではなくSPL Token-2022プログラムに属している必要があります。レガシーSPLトークンを使用して請求する必要がある場合は、Token Paymentガードを使用してください。
  • 支払者はミント時に関連トークンアカウントに設定されたAmount以上のトークンを保持している必要があります。そうでない場合、トランザクションは失敗します。
  • Destination ATAはミント前に既に存在している必要があります。ガードによって自動的に作成されることはありません。