사용 가능한 가드

Token Payment Guard

Last updated March 10, 2026

Token Payment 가드는 민터에게 구성된 수량의 SPL 토큰을 청구하고 지정된 대상 지갑으로 전송한 후 민팅을 진행합니다.

개요

Token Payment guard는 구성된 민트 계정에서 지불자에게 일정 토큰을 청구하여 민팅을 허용합니다. 토큰 수량과 대상 주소 모두 구성할 수 있습니다.

지불자가 지불할 필요한 양의 토큰을 보유하지 않은 경우 민팅에 실패합니다.

Guard 설정

Token Payment guard는 다음 설정을 포함합니다:

  • Amount: 지불자에게 청구할 토큰 수량.
  • Mint: 지불하려는 SPL Token을 정의하는 민트 계정의 주소.
  • Destination Associated Token Address (ATA): 토큰을 보낼 연결된 토큰 계정의 주소. Token Mint 속성과 이 토큰을 받을 지갑의 주소를 사용하여 연결된 토큰 주소 PDA를 찾아 이 주소를 얻을 수 있습니다.

Token Payment guard를 사용하여 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 References: create, TokenPayment

민팅 설정

Token Payment guard는 다음 민팅 설정을 포함합니다:

  • Mint: 지불하려는 SPL Token을 정의하는 민트 계정의 주소.
  • Destination Associated Token Address (ATA): 토큰을 보낼 연결된 토큰 계정의 주소.

SDK의 도움 없이 직접 명령어를 구성할 계획이라면, 이러한 민팅 설정과 추가 설정을 명령어 인수 및 나머지 계정의 조합으로 제공해야 합니다. 자세한 내용은 Core Candy Guard의 프로그램 문서를 참조하세요.

NFT Burn Guard로 민팅하기

다음과 같이 mintArgs 인수를 사용하여 Token Payment guard의 민팅 설정을 전달할 수 있습니다.

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

API References: mintV1, TokenPaymentMintArgs

Route Instruction

Token Payment guard는 route instruction을 지원하지 않습니다.

Notes

  • 이 가드는 기존 SPL Token 프로그램을 사용합니다. Token-2022 프로그램에서 발행된 민트의 경우 Token2022 Payment 가드를 대신 사용하세요.
  • 결제자는 민팅 시점에 연결된 토큰 계정에 구성된 Amount 이상의 토큰을 보유해야 합니다. 그렇지 않으면 트랜잭션이 실패합니다.
  • Destination ATA는 민팅 전에 이미 존재해야 합니다. 가드에 의해 자동으로 생성되지 않습니다.
  • Token Gate 가드와 달리, Token Payment 가드는 실제로 결제자의 지갑에서 토큰을 전송합니다.