이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
LaunchLab은 간결한 명령어 집합을 제공합니다: 사용자 대면 호출 6개와 소수의 관리자 기본 명령어. SDK가 모두를 래핑하며, 이 페이지는 애그리게이터, 모니터링 도구, CPI가 필요한 프로그램을 위한 원본 인터페이스를 문서화합니다.
명령어 목록
“ExactIn/ExactOut” 분할은 CPMM의
SwapBaseInput / SwapBaseOutput을 반영합니다 — 온체인에서는 약간 다른 반올림을 가진 별도의 명령어 판별자입니다.
졸업 경로 선택. 모든 새로운 Initialize, InitializeV2, InitializeWithToken2022 호출은 migrate_type = 1 (CPSWAP)을 설정해야 합니다. 새로운 AMM v4 바운드 풀을 초기화하려는 시도는 MigrateTypeNotMatch를 반환합니다. amm_creator_fee_on은 결과 CPMM 생성자 수수료가 인용 토큰에 적용되는지 또는 두 토큰 모두에 적용되는지만 선택합니다. 대상 프로그램을 선택하지 않습니다.
MigrateToAmm은 이 제한 전에 migrate_type = 0으로 초기화된 기존 PoolState에 대해 호출 가능하게 유지됩니다. 릴리스는 기존 풀 상태를 다시 쓰거나 레거시 명령어를 제거하지 않습니다.
Initialize
새로운 런칭을 생성합니다.
인자
사전 조건
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을 계산합니다.
인자
사전 조건
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는 일반적으로 같은 트랜잭션에서Graduateix를 연결합니다. 프로그램은Buy내에서 자동 졸업하지 않습니다 — 후속Graduate가 필요합니다.
BuyExactOut
사용자가 정확한 base_out을 지정하고, 프로그램이 quote_in을 계산합니다.
인자
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에 도달하면 런칭을 거래 가능한 풀로 졸업시킵니다. 새로운 런칭은 CPMM 전용입니다. MigrateToAmm은 저장된 migrate_type이 0인 기존 풀을 위해 유지됩니다.
서명자
MigrateToAmm— 바인딩GlobalConfig에 기록된migrate_to_amm_wallet.MigrateToCpswap— 바인딩GlobalConfig에 기록된migrate_to_cpswap_wallet.
MigrateToAmm은 3개를 취합니다 (주로 프로그램이 AMM v4로 전달하는 OpenBook 시장 매개변수):
MigrateToCpswap은 없습니다.
효과 (둘 다 공통)
pool_state.status == Migrate확인 (즉,quote_reserve_target에 도달). 아니면PoolMigrated(상태가 이미Migrated) 또는PoolFunding(여전히 펀딩 중)으로 되돌림.pool_state.migrate_type이 명령어와 일치하는지 확인 (0AMM,1CPMM). 아니면MigrateTypeNotMatch로 되돌림.- 사후 졸업 준비금 계산:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- 대상 프로그램 (
AMM v4 Initialize2또는CPMM InitializeWithPermission)으로 CPI하여 그 준비금으로 사후 졸업 풀 생성. - 2026-08-17 업그레이드 후 실행된 CPMM 마이그레이션의 경우,
platform_scale + creator_scale을 하나의 플랫폼 소유 잠긴 LP 공유로 결합하고 최대 하나의 Fee Key NFT를platform_nft_wallet에 민트.burn_scale나머지 소각. 업그레이드 전에는creator_scale이 별도로 잠겼고 그 Fee Key는 토큰 생성자에게 갔습니다. 완료된 과거 마이그레이션은 수정되지 않습니다. 레거시 AMM v4 졸업의 경우, LP 처분은 그 명령어의 기존 흐름을 따릅니다. 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.
CPMM 마이그레이션 남은 계정
MigrateToCpswap을 구축하는 클라이언트는 이 고정 remaining_accounts 인덱스를 사용해야 합니다:
명령어는 업그레이드된 경로에서 최소 10개의 남은 계정이 필요합니다. 지원 민트 계정은 읽기 전용 CPI 입력입니다. 민트가 초기화된 지원 기록이 없을 때도 두 주소를 모두 파생시킵니다. 여전히 생성자 잠금 계정을 추가하거나 인덱스 8–9를 생략하는 이전 빌더는 업데이트해야 합니다.
플랫폼 GlobalConfig 허용 목록
PlatformConfig.restrict_global_config는 검사를 제어합니다:
0: 플랫폼은 유효한GlobalConfig를 수용합니다; 허용 계정이 필요하지 않습니다.1:Initialize,InitializeV2,InitializeWithToken2022는remaining_accounts어디든 일치하는PlatformAllowConfig를 포함해야 합니다.
CreatePlatformAllowConfig와 ClosePlatformAllowConfig로 PDA를 생성하거나 닫습니다. 그 시드는 [b"platform_allow_config", platform_config, global_config]입니다. 이전 관리자 관리 PlatformGlobalAccess 명령어와 PDA는 폐기됩니다.
CollectFee
단일 런칭에서 프로토콜의 누적된 거래 수수료의 관리자 수거.
인자 — 없음.
계정
효과 —
pool_state.quote_protocol_fee를 quote_vault에서 recipient_token_account로 이전한 후 카운터를 0으로. 첫 매수 후 언제든 호출 가능.
CollectMigrateFee
졸업 시 누적된 마이그레이션 수수료의 관리자 수거. CollectFee와 동일한 계정 형태이지만 (protocol_fee_owner 대신) migrate_fee_owner를 서명자로 하고 pool_state.migrate_fee를 배수 카운터로.
ClaimCreatorFee
생성자가 소유한 모든 런칭에서 동일한 인용 민트를 사용하는 누적된 생성자 수수료의 생성자별 수거. 풀별 수수료 금고가 아닌 생성자별 수수료 금고를 배수.
인자 — 없음.
계정
효과 —
creator_fee_vault의 전체 잔액을 recipient_token_account로 이전. 금고가 비어 있으면 0보다 큼 검사로 되돌림.
ClaimPlatformFee
런칭의 인용 금고를 직접 배수하는 플랫폼별 수거. 집계된 플랫폼 금고를 거치지 않고 플랫폼이 특정 런칭 하나에 대한 슬라이스를 청구하려 할 때 사용합니다.
인자 — 없음.
계정
효과 —
pool_state.platform_fee를 quote_vault에서 recipient_token_account로 이전, 카운터를 0으로.
ClaimPlatformFeeFromVault
플랫폼별 집계 수거. 플랫폼을 통해 라우팅된 모든 런칭에서 수수료를 누적하는 플랫폼의 인용 민트별 수수료 금고를 배수.
인자 — 없음.
계정
효과 —
platform_fee_vault의 전체 잔액을 recipient_token_account로 이전. 금고가 비어 있으면 되돌림.
베스팅 및 플랫폼 설정 명령어
각각 자체 상태 모델을 가지므로 전용 페이지에 문서화됩니다:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,UpdatePlatformCurveParam,RemovePlatformCurveParam,CreatePlatformAllowConfig,ClosePlatformAllowConfigCreateConfig,UpdateConfig
상태 변경 매트릭스
다음 단계
products/launchlab/code-demos— 각 명령어의 TypeScript 예제.products/launchlab/accounts— 전체 상태 형태.reference/error-codes— LaunchLab 오류 열거형.
- Raydium SDK v2
LaunchLab모듈 - Raydium LaunchLab 프로그램 소스

