사용 가능한 가드

Token Payment Guard

개요

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을 지원하지 않습니다.