Genesis 명령어

Launch Pool

수행할 작업

CLI에서 전체 Launch Pool 생명주기를 실행합니다:

  • 할당량과 시간 창으로 Launch Pool bucket 추가
  • 선택적 패널티, 베스팅, 허용 목록 구성
  • 입금, 출금, 전환, token 청구

요약

Launch Pool은 입금 기간 동안 예치금을 수집하고 token을 비례적으로 배포합니다. 이 페이지는 bucket 생성부터 token 청구까지 전체 Launch Pool 생명주기를 다룹니다.

  • 배포: 비례 — 입금 비율이 token 비율을 결정
  • 명령어: bucket add-launch-pool, deposit, withdraw, transition, claim
  • 선택적 기능: End behavior, 입금/출금 패널티, 보너스 스케줄, 청구 베스팅, 허용 목록
  • Quote token: 기본값은 Wrapped SOL — 입금 전에 SOL을 래핑하세요

범위 외

Presale bucket, unlocked bucket, Genesis 계정 생성, finalize, 프론트엔드 통합, 토큰 경제 모델링.

바로가기: Bucket 추가 · 입금 · 출금 · 전환 · 청구 · 전체 생명주기 · 일반적인 오류 · FAQ

Launch Pool Bucket 추가

mplx genesis bucket add-launch-pool 명령어는 Genesis 계정에 Launch Pool bucket을 추가합니다.

Launch Pool bucket 추가
mplx genesis bucket add-launch-pool <GENESIS_ADDRESS> \
--allocation 500000000000000 \
--depositStart 1704067200 \
--depositEnd 1704153600 \
--claimStart 1704153601 \
--claimEnd 1735689600

옵션

플래그단축설명필수
--allocation <string>-abase unit으로 표시된 base token 할당량
--depositStart <string>입금 시작 Unix 타임스탬프
--depositEnd <string>입금 종료 Unix 타임스탬프
--claimStart <string>청구 시작 Unix 타임스탬프
--claimEnd <string>청구 종료 Unix 타임스탬프
--bucketIndex <integer>-bbucket 인덱스 (기본값: 0)아니요
--endBehavior <string>형식: <destinationBucketAddress>:<percentageBps>, 10000 = 100%. 여러 번 지정 가능아니요
--minimumDeposit <string>트랜잭션당 최소 입금액 (base unit)아니요
--depositLimit <string>사용자당 최대 입금액 (base unit)아니요
--minimumQuoteTokenThreshold <string>bucket 성공에 필요한 최소 총 quote token아니요
--depositPenalty <json>패널티 스케줄 JSON아니요
--withdrawPenalty <json>출금 패널티 스케줄 JSON (depositPenalty와 동일 형식)아니요
--bonusSchedule <json>보너스 스케줄 JSON아니요
--claimSchedule <json>청구 베스팅 스케줄 JSON아니요
--allowlist <json>허용 목록 구성 JSON아니요

JSON 옵션 형식

패널티 스케줄 (입금 또는 출금):

패널티 스케줄 형식
{"slopeBps":0,"interceptBps":200,"maxBps":200,"startTime":0,"endTime":0}

보너스 스케줄:

보너스 스케줄 형식
{"slopeBps":0,"interceptBps":0,"maxBps":0,"startTime":0,"endTime":0}

청구 베스팅 스케줄:

청구 스케줄 형식
{"startTime":0,"endTime":0,"period":0,"cliffTime":0,"cliffAmountBps":0}

허용 목록:

허용 목록 형식
{"merkleTreeHeight":10,"merkleRoot":"<hex>","endTime":0,"quoteCap":0}

예제

  1. 기본 Launch Pool:
기본 Launch Pool
mplx genesis bucket add-launch-pool <GENESIS_ADDRESS> \
--allocation 500000000000000 \
--depositStart 1704067200 \
--depositEnd 1704153600 \
--claimStart 1704153601 \
--claimEnd 1735689600
  1. End behavior와 최소 입금액 포함:
End behavior 포함
mplx genesis bucket add-launch-pool <GENESIS_ADDRESS> \
--allocation 500000000000000 \
--depositStart 1704067200 \
--depositEnd 1704153600 \
--claimStart 1704153601 \
--claimEnd 1735689600 \
--endBehavior "<DESTINATION_BUCKET_ADDRESS>:10000" \
--minimumDeposit 100000000
  1. 청구 베스팅 포함:
청구 베스팅 포함
mplx genesis bucket add-launch-pool <GENESIS_ADDRESS> \
--allocation 500000000000000 \
--depositStart 1704067200 \
--depositEnd 1704153600 \
--claimStart 1704153601 \
--claimEnd 1735689600 \
--claimSchedule '{"startTime":1704153601,"endTime":1735689600,"period":86400,"cliffTime":1704240000,"cliffAmountBps":1000}'

입금

mplx genesis deposit 명령어는 입금 기간 동안 Launch Pool bucket에 quote token을 입금합니다. SOL을 quote token으로 사용하는 경우, 먼저 래핑하세요.

Launch Pool에 입금
mplx genesis deposit <GENESIS_ADDRESS> --amount 10000000000 --bucketIndex 0

옵션

플래그단축설명필수
--amount <string>-abase unit으로 표시된 quote token 수량 (예: lamport)
--bucketIndex <integer>-bLaunch Pool bucket의 인덱스 (기본값: 0)아니요

예제

  1. SOL을 래핑하고 10 SOL 입금:
래핑 후 입금
mplx toolbox sol wrap 10
mplx genesis deposit <GENESIS_ADDRESS> --amount 10000000000 --bucketIndex 0

출금

mplx genesis withdraw 명령어는 Launch Pool bucket에서 quote token을 출금합니다. 입금 기간 동안에만 사용 가능합니다.

Launch Pool에서 출금
mplx genesis withdraw <GENESIS_ADDRESS> --amount 5000000000 --bucketIndex 0

옵션

플래그단축설명필수
--amount <string>-a출금할 quote token 수량 (base unit)
--bucketIndex <integer>-bLaunch Pool bucket의 인덱스 (기본값: 0)아니요

전환

mplx genesis transition 명령어는 입금 기간 종료 후 end behavior를 실행하여, 수집된 quote token을 대상 bucket으로 이동시킵니다.

End behavior 전환
mplx genesis transition <GENESIS_ADDRESS> --bucketIndex 0

옵션

플래그단축설명필수
--bucketIndex <integer>-bLaunch Pool bucket의 인덱스

참고사항

  • 입금 기간 종료 후에 호출해야 합니다
  • bucket에 end behavior가 구성된 경우에만 필요합니다

청구

mplx genesis claim 명령어는 Launch Pool bucket에서 base token을 청구합니다. 사용자는 입금 비율에 비례하여 token을 받습니다.

Launch Pool에서 청구
mplx genesis claim <GENESIS_ADDRESS> --bucketIndex 0

옵션

플래그단축설명필수
--bucketIndex <integer>-bLaunch Pool bucket의 인덱스 (기본값: 0)아니요
--recipient <string>청구된 token의 수령인 주소 (기본값: 서명자)아니요

예제

  1. 자신의 지갑으로 청구:
자신에게 청구
mplx genesis claim <GENESIS_ADDRESS> --bucketIndex 0
  1. 다른 지갑으로 청구:
다른 지갑으로 청구
mplx genesis claim <GENESIS_ADDRESS> --bucketIndex 0 --recipient <WALLET_ADDRESS>

전체 생명주기 예제

완전한 Launch Pool 생명주기
# 1. Create the Genesis account
mplx genesis create \
--name "My Token" \
--symbol "MTK" \
--totalSupply 1000000000000000 \
--decimals 9
# (copy GENESIS_ADDRESS from output)
GENESIS=<GENESIS_ADDRESS>
# 2. Timestamps
NOW=$(date +%s)
DEPOSIT_END=$((NOW + 86400))
CLAIM_START=$((DEPOSIT_END + 1))
CLAIM_END=$((NOW + 31536000))
# 3. Add a launch pool bucket with end behavior
mplx genesis bucket add-launch-pool $GENESIS \
--allocation 500000000000000 \
--depositStart $NOW \
--depositEnd $DEPOSIT_END \
--claimStart $CLAIM_START \
--claimEnd $CLAIM_END \
--endBehavior "<UNLOCKED_BUCKET_ADDRESS>:10000"
# 4. Add an unlocked bucket to receive SOL
mplx genesis bucket add-unlocked $GENESIS \
--recipient $(solana address) \
--claimStart $CLAIM_START \
--allocation 0
# 5. Finalize
mplx genesis finalize $GENESIS
# 6. Wrap SOL and deposit
mplx toolbox sol wrap 10
mplx genesis deposit $GENESIS --amount 10000000000 --bucketIndex 0
# 7. After deposit period, transition
mplx genesis transition $GENESIS --bucketIndex 0
# 8. Claim tokens
mplx genesis claim $GENESIS --bucketIndex 0
# 9. Revoke mint authority
mplx genesis revoke $GENESIS --revokeMint

일반적인 오류

오류원인해결 방법
Deposit period not active현재 시간이 depositStartdepositEnd 범위 밖genesis bucket fetch로 타임스탬프를 확인하세요
Claim period not activeclaimStart 전에 청구 시도청구 시작 타임스탬프 이후까지 기다리세요
Withdrawal period ended입금 기간 종료 후 출금 시도출금은 입금 기간 동안에만 가능합니다
No wrapped SOL래핑된 SOL 대신 네이티브 SOL로 입금 시도먼저 mplx toolbox sol wrap <amount>를 실행하세요
Below minimum deposit입금액이 minimumDeposit보다 적음최소 요건을 충족하도록 입금액을 늘리세요
Exceeds deposit limit사용자의 총 입금액이 depositLimit을 초과입금액을 줄이세요 — 사용자당 한도에 도달했습니다
End behavior not configuredend behavior가 없는 bucket에서 transition 실행전환은 --endBehavior가 구성된 bucket에만 필요합니다
Deposit period not ended입금 마감 전에 transition 실행depositEnd 타임스탬프 이후까지 기다리세요

FAQ

Launch Pool에서 token은 어떻게 배포되나요? token은 비례적으로 배포됩니다. 풀의 총 quote token 중 10%를 입금했다면, bucket의 base token 할당량의 10%를 받습니다.

입금 후 출금할 수 있나요? 네, 하지만 입금 기간 동안에만 가능합니다. 입금 기간이 종료되면 출금이 더 이상 불가능합니다.

End behavior란 무엇인가요? End behavior는 입금 기간 종료 후 Launch Pool에서 수집된 quote token을 대상 bucket(보통 unlocked bucket)으로 전달합니다. genesis transition을 호출하여 실행해야 합니다.

Claim schedule이란 무엇인가요? Claim schedule은 token 청구에 베스팅을 추가합니다. 한꺼번에 모든 token을 받는 대신, 구성된 period, cliffTime, cliffAmountBps에 따라 점진적으로 릴리스됩니다.

minimumQuoteTokenThreshold에 도달하지 못하면 어떻게 되나요? 총 입금액이 임계값에 도달하지 못하면 bucket이 성공하지 않으며, 입금자는 자금을 회수할 수 있습니다.

End behavior를 여러 대상으로 분할할 수 있나요? 네. --endBehavior를 다른 대상 주소와 비율(basis point로, 총합 10000)로 여러 번 지정하세요.

용어집

용어정의
Launch Pool입금 비율에 따라 token을 비례적으로 배포하는 bucket 유형
End Behavior입금 종료 후 수집된 quote token을 대상 bucket으로 전달하는 규칙
Transitionend behavior를 실행하는 명령어 — 입금 기간 후 명시적으로 호출해야 함
Claim Schedule시간에 따른 점진적 token 릴리스를 제어하는 베스팅 구성
Deposit Penalty입금에 적용되는 수수료, 선택적 시간 기반 기울기와 함께 basis point로 구성
Withdraw Penalty입금 기간 동안 출금에 적용되는 수수료
Bonus Schedule조기 또는 특정 시점 입금에 대한 추가 token 할당
Allowlist입금 가능한 사용자를 제한하는 Merkle 트리 기반 접근 제어
Basis Points (bps)퍼센트의 1/100 — 10000 bps = 100%, 100 bps = 1%