사용 가능한 가드
Token2022 Payment Guard
Last updated March 10, 2026
Token2022 Payment 가드는 민터에게 지정된 수량의 SPL Token-2022 토큰을 청구하고 구성된 대상 지갑으로 전송한 후 민팅을 진행합니다.
개요
Token2022 Payment guard는 구성된 민트 계정에서 지불자에게 일정 토큰을 청구하여 민팅을 허용합니다. 토큰 수량과 대상 주소 모두 구성할 수 있습니다.
지불자가 지불할 필요한 양의 토큰을 보유하지 않은 경우 민팅에 실패합니다.
Token2022 Payment guard는 Token Payment guard와 동일하게 작동합니다—유일한 차이점은 민트 및 토큰 계정이 SPL Token-2022 프로그램에서 가져와야 한다는 것입니다.
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: {
token2022Payment: 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의 도움 없이 직접 명령어를 구성할 계획이라면, 이러한 민팅 설정과 추가 설정을 명령어 인수 및 나머지 계정의 조합으로 제공해야 합니다. 자세한 내용은 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
- Token2022 Payment 가드는 민트 및 토큰 계정이 기존 SPL Token 프로그램이 아닌 SPL Token-2022 프로그램에 속해야 합니다. 레거시 SPL 토큰으로 청구해야 하는 경우 Token Payment 가드를 대신 사용하세요.
- 결제자는 민팅 시점에 연결된 토큰 계정에 구성된 Amount 이상의 토큰을 보유해야 합니다. 그렇지 않으면 트랜잭션이 실패합니다.
- Destination ATA는 민팅 전에 이미 존재해야 합니다. 가드에 의해 자동으로 생성되지 않습니다.
