Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
LaunchLab은 간결한 명령어 집합을 제공합니다: 사용자 대면 6개 호출과 소수의 관리 기본 명령어들입니다. SDK가 모두 래핑하고 있으며, 이 페이지는 애그리게이터, 모니터링 도구, CPI가 필요한 프로그램을 위한 원본 인터페이스를 문서화합니다.
명령어 목록
| 그룹 | 명령어 | 호출 가능 |
|---|
| 글로벌 설정 | CreateConfig / UpdateConfig | 관리자 |
| 출시 라이프사이클 | Initialize / InitializeV2 | 누구나 (생성자) — SPL Token 출시; V2는 향후 CPMM 졸업을 위해 amm_creator_fee_on 기록 |
| 출시 라이프사이클 | InitializeWithToken2022 | 누구나 (생성자) — Token-2022 출시, 선택적 TransferFeeConfig |
| 거래 | BuyExactIn / BuyExactOut | 누구나 — 본딩 곡선에서 정액 입력 / 정액 출력 매수 |
| 거래 | SellExactIn / SellExactOut | 누구나 — 본딩 곡선에서 정액 입력 / 정액 출력 매도 |
| 졸업 | MigrateToAmm | 마이그레이션 지갑 (GlobalConfig에 설정) — AMM v4로 졸업. amm_creator_fee_on = BothToken일 때 사용되므로 생성자 수수료를 양쪽에서 수집할 수 있습니다. |
| 졸업 | MigrateToCpswap | 마이그레이션 지갑 — CPMM으로 졸업. amm_creator_fee_on = QuoteToken일 때 사용되며 Token-2022 출시에 필수입니다. CPMM의 InitializeWithPermission을 래핑합니다. |
| 수수료 | CollectFee | 관리자 — 출시에서 프로토콜 수수료 수집 |
| 수수료 | CollectMigrateFee | 관리자 — 누적된 마이그레이션 수수료 수집 |
| 수수료 | ClaimCreatorFee | 생성자 — 곡선 단계에서 누적된 생성자 수수료 청구 |
| 베스팅 | CreateVestingAccount | 생성자 — 잠금 토큰을 수혜자에게 할당, 졸업 후 잠금 해제 |
| 베스팅 | CreatePlatformVestingAccount | 플랫폼 관리자 — 플랫폼 측 수혜자에게 잠금 토큰 할당 |
| 베스팅 | ClaimVestedToken | 수혜자 — 클리프 후 잠금 해제 토큰 청구 |
| 플랫폼 설정 | CreatePlatformConfig / UpdatePlatformConfig | 플랫폼 관리자 |
| 플랫폼 설정 | UpdatePlatformCurveParam / RemovePlatformCurveParam | 플랫폼 관리자 — 허용된 곡선 형태의 플랫폼별 목록 관리 |
| 플랫폼 수수료 | ClaimPlatformFee / ClaimPlatformFeeFromVault | 플랫폼 관리자 |
| 플랫폼 접근 | CreatePlatformGlobalAccess / ClosePlatformGlobalAccess | 관리자 — 주어진 GlobalConfig를 사용할 수 있는 플랫폼 제어 |
“ExactIn/ExactOut” 분할은 CPMM의 SwapBaseInput / SwapBaseOutput을 반영합니다 — 온체인에서는 약간 다른 반올림을 가진 별도 명령어 판별자입니다.
졸업 경로 선택. migrate_type은 Initialize{V2,WithToken2022} 시점에 PoolState에 기록되며 실행 가능한 두 졸업 명령어 중 하나를 결정합니다. Token-2022 출시는 항상 CPMM으로 마이그레이션합니다. SPL Token 출시는 amm_creator_fee_on 설정에 따라 AMM v4 또는 CPMM으로 마이그레이션합니다:
BothToken → MigrateToAmm → AMM v4 풀 (생성자 수수료를 양쪽에서 수집할 수 있음; AMM v4는 네이티브 생성자 수수료 필드가 없으므로 생성자 수수료는 LP 잠금 NFT 메커니즘으로 대신 취함).
QuoteToken → MigrateToCpswap → creator_fee_on = OnlyQuoteToken을 가진 CPMM 풀 (생성자는 LaunchLab 수수료 키 NFT를 통해 CPMM 풀에서 계속 수수료를 얻습니다 — products/launchlab/creator-fees 참조).
AmmCreatorFeeOn 열거형 이름 참고. Rust 소스는 이 열거형을 AmmCreatorFeeOn이라 호칭하며 변종은 QuoteToken과 BothToken입니다. 이름이 오해의 소지가 있습니다: 현재 운영 실무에서 변종은 졸업 후 CPMM 풀에서 생성자 수수료가 수집되는 쪽을 제어할 뿐만 아니라 졸업 대상 프로그램 (AMM v4 vs CPMM)도 선택하며 출시의 PoolState의 migrate_type과 쌍을 이룹니다. 이 필드를 “마이그레이션 대상 + 졸업 후 생성자 수수료 쪽”으로 하나로 묶인 것으로 생각하세요. 온체인 열거형 이름은 리팩터링되지 않았지만, MigrationTarget으로 추론하는 것이 현실과 더 일치합니다.
Initialize
새 출시를 생성합니다.
인수
launch_params: {
curve_type: u8,
base_supply_max: u64,
base_supply_graduation: u64,
k: u128, // 또는 curve_type=1에 대한 initial_virtual_quote_reserve
open_time: u64,
quote_mint: Pubkey,
base_token_metadata: { // 인라인 name/symbol/uri; 프로그램이 Metaplex로 CPI
name: String,
symbol: String,
uri: String,
},
fees: {
buy_numerator: u64,
buy_denominator: u64,
sell_numerator: u64,
sell_denominator: u64,
lp_share: u64,
creator_share: u64,
protocol_share: u64,
total_share: u64,
},
post_graduation_lp_policy: u8, // 0 = Burn, 1 = Lock, 2 = ToCreator
}
계정 (축약)
| # | 이름 | W | S | 참고 |
|---|
| 1 | creator | W | S | 렌트 + 베이스 민트 생성 비용 지불. |
| 2 | launch_config | | | 프로토콜 설정 바인딩. |
| 3 | launch_state | W | | 새 계정. |
| 4 | launch_authority | | | PDA. |
| 5 | base_mint | W | S | 신규 Keypair (또는 PDA) — 이 명령어가 초기화합니다. |
| 6 | base_vault | W | | launch_authority의 base_mint에 대한 ATA. |
| 7 | quote_mint | | | |
| 8 | quote_vault | W | | launch_authority의 quote_mint에 대한 ATA. |
| 9 | metadata | W | | Metaplex 메타데이터 PDA. |
| 10 | metaplex_program | | | |
| 11 | token_program | | | SPL Token만. |
| 12 | system_program | | | |
| 13 | rent | | | |
사전 조건
quote_mint ∈ launch_config.allowed_quote_mints.
base_supply_graduation ≤ base_supply_max.
- 수수료 파라미터가
launch_config.max_*_fee_rate 검사를 통과합니다.
open_time ≥ now − slop (SDK는 ≥ now를 강제; 프로그램은 약간의 과거 날짜를 허용).
curve_type이 인식됩니다.
사후 조건
base_mint는 supply = base_supply_max, 모두 base_vault에 있습니다.
base_mint.mint_authority = launch_authority, freeze_authority = None.
LaunchState는 status = Active, base_sold = 0, quote_reserve_real = 0으로 초기화됩니다.
quote_reserve_target은 곡선 파라미터 + base_supply_graduation + buy_numerator에서 계산됩니다 (대략적으로).
일반적 오류 — InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (표준 변형: BuyExactIn)
사용자가 고정 quote_in을 제공하고 곡선이 base_out을 계산합니다.
인수
quote_in: u64
minimum_base_out: u64
계정
| # | 이름 | W | S |
|---|
| 1 | user | W | S |
| 2 | launch_state | W | |
| 3 | launch_authority | | |
| 4 | base_vault | W | |
| 5 | quote_vault | W | |
| 6 | user_base_ata | W | |
| 7 | user_quote_ata | W | |
| 8 | base_mint | | |
| 9 | quote_mint | | |
| 10 | token_program | | |
| 11 | associated_token_program | | |
| 12 | system_program | | |
사전 조건
launch_state.status == Active.
now ≥ open_time.
user_quote_ata.balance ≥ quote_in.
quote_in > 0.
효과
quote_in을 quote_in_after_fee와 수수료 부분으로 분할합니다.
- 포스트 수수료 견적에 주어진
base_out에 대해 곡선을 Newton 풀이합니다.
require(base_out ≥ minimum_base_out) 아니면 ExceededSlippage로 되돌립니다.
quote_in을 사용자 → 볼트로 이동합니다. base_out을 볼트 → 사용자로 이동합니다.
base_sold += base_out, quote_reserve_real += quote_in_after_fee × (lp_share / total_share)을 업데이트합니다.
- 수수료 카운터 (
protocol_fees_quote, creator_fees_quote)를 업데이트합니다.
state_data.num_buys += 1.
- 업데이트 후
quote_reserve_real ≥ quote_reserve_target이면, SDK는 일반적으로 같은 거래에서 Graduate ix를 연결합니다. 프로그램은 Buy 내에서 자동 졸업하지 않습니다 — 후속 Graduate이 필요합니다.
BuyExactOut
사용자가 정확한 base_out을 지정하고 프로그램이 quote_in을 계산합니다.
인수
base_out: u64
maximum_quote_in: u64
BuyExactIn과 동일한 계정. Newton 반복 대신 폐쇄형 이차 적분 (또는 curve_type 1에 대한 CPMM 역함수)을 사용합니다.
Sell / SellExactIn / SellExactOut
Buy의 미러. 사용자가 base_in을 곡선에 반환하고 quote_out을 받습니다. 수수료는 quote_out에서 차감되므로 사용자는 원본 통합 수익보다 적게 받습니다.
사전 조건 —
user_base_ata.balance ≥ base_in.
- 매도는
base_sold를 0 이하로 밀어낼 수 없습니다 (위의 것과 중복이며 회계가 일관성이 있음).
- 출시는
Active입니다.
효과 — Buy와 대칭입니다. base_sold는 감소하고, quote_reserve_real은 감소합니다. 수수료는 여전히 누적됩니다.
MigrateToAmm / MigrateToCpswap
곡선이 total_quote_fund_raising에 도달하면 출시를 거래 가능한 AMM 풀로 졸업합니다. 두 명령어는 두 졸업 대상 — AMM v4 및 CPMM —에 해당하며 임의의 주어진 출시에 대해 하나만 유효하며, pool_state.migrate_type에 의해 결정됩니다 (Initialize 시점에 설정).
서명자
MigrateToAmm — 바인딩 GlobalConfig에 기록된 migrate_to_amm_wallet.
MigrateToCpswap — 바인딩 GlobalConfig에 기록된 migrate_to_cpswap_wallet.
이들 지갑은 일반적으로 Raydium 운영 졸업 크랭크에 의해 보유됩니다; 실무에서 졸업은 임계값이 통과된 후 몇 초 안에 나타나며, 최종 매수를 트리거한 사람과 무관합니다.
인수
MigrateToAmm은 3개를 취합니다 (주로 프로그램이 AMM v4로 전달하는 OpenBook 마켓 파라미터):
base_lot_size: u64
quote_lot_size: u64
market_vault_signer_nonce: u8
MigrateToCpswap은 없습니다.
효과 (둘 다에 공통)
pool_state.status == Migrate 확인 (즉, quote_reserve_target에 도달함). 아니면 PoolMigrated (상태는 이미 Migrated) 또는 PoolFunding (여전히 자금 조성 중)으로 되돌립니다.
pool_state.migrate_type이 명령어와 일치하는지 확인 (0 AMM, 1 CPMM). 아니면 MigrateTypeNotMatch로 되돌립니다.
- 졸업 후 예비금을 계산합니다:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- 대상 프로그램 (
AMM v4 Initialize2 또는 CPMM InitializeWithPermission)으로 CPI하고 졸업 후 풀을 생성합니다.
- 결과 LP를 바인딩
PlatformConfig.{platform_scale, creator_scale, burn_scale} (CPMM만)에 따라 분할합니다 — 한 조각은 platform_nft_wallet로 발행되고, 하나는 LP 잠금 프로그램으로 래핑된 생성자 NFT로, 하나는 Burn & Earn으로 소각됩니다. AMM v4 졸업의 경우, LP 배치는 AMM v4의 자체 초기화 파라미터에 의해 관리됩니다.
base_mint.mint_authority 취소 (None으로 설정).
pool_state.status = Migrated로 전환, vesting_schedule.start_time = block_time + cliff_period 설정.
사후 조건 — BuyExactIn, BuyExactOut, SellExactIn, SellExactOut은 이 시점부터 PoolMigrated로 거부합니다. 결과 AMM 풀은 표준이며 다른 AMM v4 / CPMM 풀처럼 거래됩니다.
일반적 오류 — PoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.
CollectFee
단일 출시에서 프로토콜의 누적 거래 수수료에 대한 관리자 수집.
인수 — 없음.
계정
| # | 이름 | W | S | 참고 |
|---|
| 1 | protocol_fee_owner | | S | global_config.protocol_fee_owner와 같아야 합니다. |
| 2 | authority | | | PDA [b"vault_auth_seed"]; 볼트 이전에 서명합니다. |
| 3 | pool_state | W | | quote_protocol_fee를 0으로 만들기 위해 변경됩니다. |
| 4 | global_config | | | 서명자의 진실의 원천. |
| 5 | quote_vault | W | | quote_protocol_fee로 드레인됩니다. |
| 6 | recipient_token_account | W | | protocol_fee_owner의 quote_mint에 대한 ATA. |
| 7 | quote_mint | | | |
| 8 | token_program | | | SPL Token (견적 민트는 항상 SPL Token). |
효과 — quote_vault에서 recipient_token_account로 pool_state.quote_protocol_fee를 이전한 다음 카운터를 0으로 설정합니다. 첫 매수 후 언제든지 호출 가능합니다.
CollectMigrateFee
졸업 시 누적된 마이그레이션 수수료의 관리자 수집. CollectFee와 동일한 계정 형태이지만 protocol_fee_owner 대신 서명자로 migrate_fee_owner를 사용하고 pool_state.migrate_fee를 드레인 카운터로 사용합니다.
ClaimCreatorFee
생성자가 소유한 동일한 견적 민트를 사용하는 모든 출시에 걸쳐 누적된 생성자 수수료의 생성자별 수집. 풀별 항목이 아닌 생성자별 수수료 볼트를 드레인합니다.
인수 — 없음.
계정
| # | 이름 | W | S | 참고 |
|---|
| 1 | creator | W | S | 풀 생성자. |
| 2 | fee_vault_authority | | | PDA [b"creator_fee_vault_auth_seed"]. |
| 3 | creator_fee_vault | W | | 시드 [creator, quote_mint]에서 PDA; 집계된 생성자 볼트. |
| 4 | recipient_token_account | W | | init_if_needed; creator의 quote_mint에 대한 ATA. |
| 5 | quote_mint | | | |
| 6 | token_program | | | |
| 7 | system_program | | | 필요하면 ATA 생성용. |
| 8 | associated_token_program | | | |
효과 — creator_fee_vault의 전체 잔액을 recipient_token_account로 이전합니다. 볼트가 비어 있으면 0보다 큼 검사로 되돌립니다.
출시의 견적 볼트를 직접 드레인하는 플랫폼별 수집. 집계된 플랫폼 볼트를 거치지 않고 플랫폼이 특정 출시에 대한 조각을 청구하려고 할 때 사용합니다.
인수 — 없음.
계정
| # | 이름 | W | S | 참고 |
|---|
| 1 | platform_fee_wallet | W | S | platform_config.platform_fee_wallet과 같아야 합니다. |
| 2 | authority | | | PDA [b"vault_auth_seed"]. |
| 3 | pool_state | W | | pool_state.platform_fee로 드레인됩니다. |
| 4 | platform_config | | | 서명자의 진실의 원천. |
| 5 | quote_vault | W | | 드레인됩니다. |
| 6 | recipient_token_account | W | | init_if_needed; platform_fee_wallet의 ATA. |
| 7 | quote_mint | | | |
| 8 | token_program | | | |
| 9 | system_program | | | |
| 10 | associated_token_program | | | |
효과 — quote_vault에서 recipient_token_account로 pool_state.platform_fee를 이전하고 카운터를 0으로 설정합니다.
플랫폼별 집계 수집. 플랫폼을 통해 라우팅된 모든 출시에서 수수료가 누적되는 견적 민트당 플랫폼 수수료 볼트를 드레인합니다.
인수 — 없음.
계정
| # | 이름 | W | S | 참고 |
|---|
| 1 | platform_fee_wallet | W | S | platform_config.platform_fee_wallet과 같아야 합니다. |
| 2 | fee_vault_authority | | | PDA [b"platform_fee_vault_auth_seed"]. |
| 3 | platform_config | | | |
| 4 | platform_fee_vault | W | | 시드 [platform_config, quote_mint]에서 PDA. |
| 5 | recipient_token_account | W | | init_if_needed; platform_fee_wallet의 ATA. |
| 6 | quote_mint | | | |
| 7 | token_program | | | |
| 8 | system_program | | | |
| 9 | associated_token_program | | | |
효과 — platform_fee_vault의 전체 잔액을 recipient_token_account로 이전합니다. 볼트가 비어 있으면 되돌립니다.
베스팅 및 플랫폼 설정 명령어
이들은 전용 페이지에 문서화되어 있습니다. 각각 자체 상태 모델을 가지고 있기 때문입니다:
상태 변화 행렬
| 명령어 | status | real_base | real_quote | 수수료 카운터 | 졸업 후 풀 |
|---|
Initialize{V2,WithToken2022} | Funding | 0 | 0 | 0 | — |
BuyExactIn(q_in) | Funding | +∆ | +∆q_after_fee | quote_protocol_fee += ∆, platform_fee += ∆ | — |
SellExactIn(b_in) | Funding | −∆ | −∆q_before_fee | (동일) | — |
| 임계값 도달 | → Migrate | — | — | — | — |
MigrateToAmm / MigrateToCpswap | → Migrated | (고정) | (고정) | migrate_fee 설정 | 생성됨, LP는 PlatformConfig에 따라 분할 |
CollectFee / CollectMigrateFee | 임의 | — | — | 카운터 0으로 설정 | — |
ClaimCreatorFee / ClaimPlatformFee* | 임의 | — | — | 볼트 드레인 | — |
CreateVestingAccount | Funding | — | — | — | allocated_share_amount 범프 |
ClaimVestedToken | Migrated | — | — | — | base_vault 드레인 |
다음 단계
출처: