프로그램

개요

Last updated August 27, 2026

이 문서에서 다루는 내용

MPL-Distro 권한자 작업을 위한 완전한 CLI 레퍼런스입니다.

  • 생성: 플래그, JSON, 또는 마법사로 지갑 또는 레거시 NFT 배포 초기화
  • 자금 투입과 회수: 토큰을 입금하고 클레임 창 밖에서 잔여분을 출금
  • 조회: 온체인 구성, 상태, Merkle 루트 가져오기

요약

mplx distro 명령어는 터미널에서 MPL-Distro 배포를 생성, 자금 투입, 조회, 회수합니다.

  • 도구: Metaplex CLI(mplx)의 distro 명령어 그룹
  • 클라이언트: 현재 프로그램에 대해 @metaplex-foundation/mpl-distro 0.4.x 필요
  • 온체인 작업: 배포 PDA 생성, 토큰 입금, 잔여 출금, 계정 데이터 조회
  • 오프체인 작업: Merkle 루트, 증명, 클레임은 JavaScript SDK에 남음

게시된 CLI 0.4.3

이 문서의 Distro 명령어에는 @metaplex-foundation/mpl-distro 0.4.x가 필요합니다. 게시된 @metaplex-foundation/cli 0.4.3은 아직 0.3.x에 의존하므로 mplx distro create가 BorshIoError로 실패합니다. @metaplex-foundation/mpl-distro@^0.4.0에 의존하는 CLI 빌드(또는 이후 CLI 릴리스)를 사용하세요.

바로가기: 사전 요구사항 · 일반 흐름 · 명령어 레퍼런스 · Merkle 루트 인코딩 · 일반적인 오류 · FAQ · 용어집

사전 요구사항

MPL-Distro CLI 명령어에는 자금이 있는 identity, 기존 원본 SPL Token mint, 32바이트 Merkle 루트가 필요합니다.

  • @metaplex-foundation/mpl-distro 0.4.x로 빌드되어 PATH에 있는 Metaplex CLI
  • mplx config로 설정한 Solana 키페어(배포 권한자)
  • 임대료와 트랜잭션 수수료용 SOL
  • 기존 SPL 토큰 mint(Token-2022 아님)와 입금용 자금이 있는 associated token account
  • mplx config rpcs add 또는 -r로 지정한 RPC 엔드포인트

명령어 그룹을 확인합니다.

CLI 확인
mplx distro --help

일반 흐름

권한자 설정은 CLI로 합니다. 수신자는 증명을 저장하는 앱에서 클레임합니다.

  1. 할당 — JavaScript SDK의 prepareDistribution으로 수신자 목록을 만들고 Merkle 루트를 생성합니다. 모든 주소, amount, nonce, 증명을 보존합니다.
  2. 생성 — mplx distro create가 루트, 클레임 창, mint, 접근 모드를 온체인에 기록합니다.
  3. 입금 — mplx distro deposit가 토큰을 배포 볼트로 이동합니다. 입금은 언제든 가능합니다.
  4. 클레임 — 수신자(또는 릴레이어)가 저장된 증명으로 distribute / distributeToLegacyNft를 제출합니다. CLI에는 클레임 명령어가 없습니다.
  5. 회수 — endTime 이후(또는 startTime 이전)에 mplx distro withdraw가 미클레임 토큰을 반환합니다.

증명 저장과 클레임 페이지는 프로덕션 전달을 참조하세요.

생성, 자금 투입, 조회, 회수
mplx distro create \
--name "Community Airdrop" \
--mint <TOKEN_MINT> \
--totalClaimants 2 \
--startTime "2026-09-01T00:00:00Z" \
--endTime "2026-09-08T00:00:00Z" \
--merkleRoot <BASE58_32_BYTE_ROOT>
mplx distro deposit <DISTRIBUTION> --amount 1.0
mplx distro fetch <DISTRIBUTION>
mplx distro withdraw <DISTRIBUTION> --amount 0.5

배포 주소 저장

distro create는 배포 PDA를 base58 공개키로 출력합니다. 그 주소를 그대로 deposit, fetch, withdraw에 전달하세요.

명령어 레퍼런스

mplx distro는 네 가지 명령어를 제공합니다. 증명을 생성하거나 클레임을 제출하지 않습니다.

명령어설명
distro create지갑 또는 레거시 NFT 배포 생성
distro depositSPL 토큰을 배포 볼트에 입금
distro fetch온체인 배포 상세 조회
distro withdraw창이 비활성일 때 미클레임 토큰 출금

CLI는 AllowedDistributor.Permissioned, updateDistribution, withdrawSubsidy, 클레임 명령을 지원하지 않습니다.

Merkle 루트 인코딩

--merkleRoot는 32바이트 할당 루트의 base58 인코딩이며 16진 문자열이 아닙니다.

prepareDistribution으로 생성한 뒤 root 바이트를 인코딩합니다.

Distro Merkle 루트 인코딩
import { prepareDistribution } from '@metaplex-foundation/mpl-distro'
import { publicKey } from '@metaplex-foundation/umi'
import { base58 } from '@metaplex-foundation/umi/serializers'
const { root, proofs, treeHeight } = prepareDistribution([
{ address: publicKey('RecipientWallet111111111111111111111111111'), amount: 100_000n },
{ address: publicKey('RecipientWallet222222222222222222222222222'), amount: 250_000n },
])
const merkleRoot = base58.deserialize(root)[0]
console.log(merkleRoot)

--totalClaimants를 그 목록의 할당 수로 설정하세요. CLI는 computeTreeHeight(totalClaimants)를 온체인에 저장합니다. prepareDistribution 증명은 그 높이보다 길면 안 됩니다.

일반적인 오류

mplx distro에서 가장 자주 보는 실패입니다.

오류원인해결
BorshIoError / Failed to serialize or deserialize account dataCLI가 아직 mpl-distro 0.3.x(게시된 0.4.3)를 사용함@metaplex-foundation/mpl-distro@^0.4.0에 의존하는 CLI 빌드 사용
InvalidPublicKeyError배포 인자가 base58 공개키가 아님distro create가 출력한 PDA를 전달
Missing required flag플래그, JSON, --wizard 없이 create를 실행함--name, --mint, --totalClaimants, --startTime, --endTime, --merkleRoot를 전달하거나 --distroConfig / --wizard 사용
Insufficient balanceidentity ATA에 토큰이 부족함민트 또는 전송 후 입금 재시도
Distribution not foundPDA 또는 클러스터가 다름같은 RPC에서 distro fetch로 주소 확인

참고사항

CLI는 SDK로 만든 Merkle 할당을 다루는 권한자 도구입니다.

  • mint는 원본 SPL Token 프로그램 소유여야 합니다. Token-2022 mint는 거부됩니다.
  • --amount 수량은 mint의 decimals를 사용합니다. --basisAmount는 토큰 최소 단위입니다.
  • 입금은 시간 제한이 없습니다. startTime <= clusterTime <= endTime이면 출금이 거부됩니다.
  • --allowedDistributor는 permissionless 또는 recipient만 받습니다.
  • CLI는 무작위 seed 서명자를 생성하고 seed는 출력하지 않습니다. create 출력에서 배포 PDA를 저장하세요.

FAQ

mplx distro는 무엇을 하나요?

mplx distro 명령어 그룹은 MPL-Distro 계정을 생성하고, SPL 토큰을 입금·출금하며, 온체인 배포 정보를 조회합니다. Merkle 증명을 생성하거나 클레임을 제출하지는 않습니다.

현재 MPL-Distro 프로그램과 맞는 CLI 버전은 무엇인가요?

온체인 프로그램에는 @metaplex-foundation/mpl-distro 0.4.x 클라이언트가 필요합니다. 게시된 @metaplex-foundation/cli 0.4.3은 아직 0.3.x에 의존하며 distro create가 BorshIoError로 실패합니다. mpl-distro 0.4.0 이상에 의존하는 CLI 빌드를 사용하세요.

CLI가 수신자 클레임을 제출하나요?

아니요. prepareDistribution으로 증명을 만들고 JavaScript SDK 또는 클레임 페이지에서 distribute 또는 distributeToLegacyNft를 제출하세요.

권한자는 언제 토큰을 출금할 수 있나요?

시작 타임스탬프 이전 또는 종료 타임스탬프 이후입니다. 클레임 창이 활성일 때 출금은 거부됩니다.

용어집

용어정의
Distribution PDA["distribution", mint, seed]에서 유도된 온체인 계정. CLI가 seed를 내부 생성합니다.
Merkle root할당 트리의 32바이트 해시. create에 base58로 전달합니다.
Basis amount토큰 최소 단위(1.0 토큰당 10 ^ decimals).
Claim windowstartTime부터 endTime까지 포함 기간. 이 기간에 클레임은 성공하고 출금은 실패합니다.
Allowed distributor유효한 증명을 제출할 수 있는 주체. CLI에서는 permissionless 또는 recipient.
Previous
관리