메인 콘텐츠로 건너뛰기

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 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
이 페이지는 런칭당 계정 그래프를 문서화합니다: PoolState (한 번의 런칭을 위한 루트 상태 계정), 두 개의 볼트, 권한 PDA, 그리고 런칭이 정산될 때 획득하는 졸업 후 참조입니다.모든 런칭을 제한하는 프로토콜 수준 설정은 products/launchlab/global-config을 참조하세요. 플랫폼별 오버레이는 products/launchlab/platform-config을 참조하세요. 베스팅 계정(PoolStateVestingSchedule, 수익자당 VestingRecord)은 products/launchlab/vesting을 참조하세요.

계정 목록

계정소유자목적
GlobalConfigLaunchLab 프로그램프로토콜 수준 규칙: 수수료, 공급 하한선, 마이그레이션 지갑. 하나의 (curve_type, index)당 하나.
PlatformConfigLaunchLab 프로그램플랫폼별 오버레이: 브랜딩, 플랫폼 수수료, 졸업 시 NFT 분할, 곡선 형태 화이트리스트.
PoolStateLaunchLab 프로그램런칭당 루트 상태: 민트, 볼트, 곡선 매개변수, 판매 카운터, 수수료 카운터, 베스팅 스케줄, 졸업 상태.
authorityLaunchLab 프로그램시드 [b"vault_auth_seed"]에서 파생되는 단일 PDA로, 모든 런칭 전체의 볼트를 소유하고 졸업 후 CPI에 서명합니다.
base_vaultSPL Token / Token-2022미판매 기본 토큰을 보유하는 런칭당 볼트.
quote_vaultSPL Token누적된 인용 토큰을 보유하는 런칭당 볼트.
VestingRecordLaunchLab 프로그램수익자당 클리프 + 선형 해제 기록. 선택사항.
creator_fee_vaultSPL Token크리에이터별 + 인용 민트별 볼트로 누적된 크리에이터 수수료를 보유하며, ClaimCreatorFee로 회수됩니다.
platform_fee_vaultSPL Token플랫폼별 + 인용 민트별 볼트로 누적된 플랫폼 수수료를 보유하며, ClaimPlatformFeeFromVault로 회수됩니다.
(졸업 후) cpmm_pool_state 또는 amm_pool_stateCPMM / AMM v4 프로그램MigrateToCpswap / MigrateToAmm에 의해 생성된 풀.
(졸업 후) Fee Key NFTLP-Lock 프로그램CPMM 졸업 시 크리에이터의 LP 슬라이스를 래핑합니다. 소유자에게 CPMM 풀의 ClaimCreatorFee 권리를 부여합니다.
SDK의 raydium.launchpad.getLaunchByIdPoolState와 런칭이 졸업했는지 여부를 나타내는 플래그를 반환합니다. 졸업했다면 마이그레이션 후 풀 ID가 포함됩니다.

PoolState

런칭당 루트 상태. 아래 필드명은 온체인 Rust 구조체(states/pool.rs)와 일치합니다. 일부 값은 가독성을 위해 단순화되었으므로, 정확한 메모리 레이아웃은 소스를 참조하세요.
// states/pool.rs (abridged)
pub struct PoolState {
    pub epoch:                     u64,        // recent_epoch tracker
    pub auth_bump:                 u8,
    pub status:                    u8,         // PoolStatus enum
    pub base_decimals:             u8,
    pub quote_decimals:            u8,
    pub migrate_type:              u8,         // 0 = AMM v4, 1 = CPMM
    pub supply:                    u64,        // total base tokens (no decimals)
    pub total_base_sell:           u64,        // base supply allocated to the curve
    pub virtual_base:              u64,        // virtual-reserve seed
    pub virtual_quote:             u64,        // virtual-reserve seed
    pub real_base:                 u64,        // base sold so far
    pub real_quote:                u64,        // quote raised so far (excl. fees)
    pub total_quote_fund_raising:  u64,        // graduation threshold in quote

    pub quote_protocol_fee:        u64,        // accrued, pending CollectFee
    pub platform_fee:              u64,        // accrued, pending ClaimPlatformFee
    pub migrate_fee:               u64,        // accrued, pending CollectMigrateFee
    pub vesting_schedule:          VestingSchedule,

    pub global_config:             Pubkey,
    pub platform_config:           Pubkey,
    pub creator:                   Pubkey,
    pub base_mint:                 Pubkey,
    pub quote_mint:                Pubkey,
    pub base_vault:                Pubkey,
    pub quote_vault:               Pubkey,

    pub amm_creator_fee_on:        u8,         // 0 = QuoteToken, 1 = BothToken (CPMM-only)
    pub token_program_flag:        u8,         // bit flags for SPL Token vs Token-2022
    pub padding:                   [u8; 54],
}

#[derive(Default, Debug, Clone)]
pub struct VestingSchedule {
    pub total_locked_amount:    u64,
    pub cliff_period:           u64,
    pub unlock_period:          u64,
    pub start_time:             u64,           // set at graduation
    pub allocated_share_amount: u64,           // running sum across VestingRecords
}
PoolStatus 값 (Anchor IDL에서):
0 = Funding         — 매입/매도 수락 중; quote_reserve_target 아래
1 = Migrate         — quote_reserve_target 도달됨; MigrateTo* 대기 중
2 = Migrated        — MigrateTo* 이미 실행됨; 베스팅 시계 실행 중
통합자 대면 필드:
  • status — 세 가지 값, 단조로운 (Funding → Migrate → Migrated). 읽기는 항상 안전합니다. 쓰기는 제어됩니다.
  • real_base, real_quote — 현재 곡선 상태. virtual_base / virtual_quote와 함께 볼트에 접근하지 않고도 현물 가격을 계산하기에 충분합니다. bonding-curve를 참조하세요.
  • total_base_sell vs real_base — UI를 위한 “졸업 진행도” 비율.
  • migrate_typeMigrateToAmm 또는 MigrateToCpswap이 유효한 졸업 경로인지를 선택합니다. Token-2022 런칭은 CPMM을 사용해야 합니다.
  • amm_creator_fee_on — CPMM으로 졸업할 때만 의미 있습니다. 졸업 후 CPMM 풀에서 creator_fee_on = OnlyQuoteToken (0) 또는 BothToken (1)을 선택합니다. 이름과 무관하게 이 열거형은 마이그레이션 대상도 효과적으로 결정합니다. 현재 운영 관행에서 BothTokenMigrateToAmm과 짝을 이루고, QuoteTokenMigrateToCpswap과 짝을 이룹니다. creator-fees를 참조하세요.
  • quote_protocol_fee / platform_fee / migrate_fee — 세 개의 독립적인 수수료 카운터. 각각 자체 청구 명령이 있습니다. instructions를 참조하세요.
  • vesting_schedule — 모든 PoolState에 있지만 total_locked_amount == 0일 때 비활성입니다. 전체 라이프사이클은 vesting을 참조하세요.

권한 PDA

LaunchLab은 런칭당 시드 없이 모든 런칭 전체에서 단일 권한 PDA를 사용합니다:
const LAUNCHLAB_PROGRAM_ID = new PublicKey("<LAUNCHLAB_ID>"); // see reference/program-addresses

const [authority, bump] = PublicKey.findProgramAddressSync(
  [Buffer.from("vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);
그 단일 PDA는:
  • 모든 런칭의 base_vaultquote_vault의 권한입니다.
  • 각 런칭의 base_mintmint_authority (졸업 전)입니다.
  • AMM v4 / CPMM으로의 졸업 후 CPI(MigrateTo*)의 서명자입니다.
  • ClaimVestedToken 기본 볼트 외 전송의 서명자입니다.
mint_authorityMigrateToAmm / MigrateToCpswap 직후 취소되므로 공급이 영구적으로 고정됩니다. 두 개의 추가 PDA가 수수료 볼트를 제어합니다:
const [creatorFeeVaultAuthority] = PublicKey.findProgramAddressSync(
  [Buffer.from("creator_fee_vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);

const [platformFeeVaultAuthority] = PublicKey.findProgramAddressSync(
  [Buffer.from("platform_fee_vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);
이들은 ClaimCreatorFeeClaimPlatformFeeFromVault 중에 해당 수수료 볼트 외의 전송에 서명합니다.

기본 민트

Initialize에 의해 인라인으로 생성됩니다:
  • mint_authority = authority (졸업 시 취소).
  • freeze_authority = None.
  • supply = supply, 전체가 base_vault에 민팅됩니다.
  • decimalsInitialize에서 크리에이터가 선택합니다 (보통 6).
전체 공급이 사전 민팅되므로, base_mint.supply는 런칭 기간 전체에 상수입니다. 곡선 매입은 토큰을 base_vault에서 구매자로 이동하지만, mint_to를 호출하지 않습니다. Initialize / InitializeV2는 SPL Token 런칭을 생성합니다. 전용 InitializeWithToken2022 명령은 기본 민트가 Token-2022 민트(선택적 TransferFeeConfig 포함)가 되도록 합니다. 인용 민트는 여전히 SPL Token입니다. Token-2022 런칭은 AMM v4가 SPL Token 볼트만 지원하기 때문에 CPMM 풀로 졸업해야 합니다.

볼트

base_vaultquote_vault 모두 LaunchLab authority PDA가 소유하는 표준 SPL Token 계정입니다. 주소는 PoolState에 저장되며 또한 파생될 수 있습니다:
const [baseVault] = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), baseMint.toBuffer()],
  LAUNCHLAB_PROGRAM_ID,
);
const [quoteVault] = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), quoteMint.toBuffer()],
  LAUNCHLAB_PROGRAM_ID,
);
(프로덕션에서 파생에 의존하기 전에 소스의 Initialize 계정 구조에서 정확한 시드 접두사를 확인하세요.)

수수료 볼트

두 개의 PDA가 런칭 전체에서 수수료를 집계합니다:
  • 크리에이터 수수료 볼트 — 시드 [creator, quote_mint]의 PDA. 같은 크리에이터가 같은 인용 민트에서 얻은 모든 런칭은 같은 볼트에 쏟아집니다. 크리에이터는 ClaimCreatorFee를 통해 이를 회수합니다.
  • 플랫폼 수수료 볼트 — 시드 [platform_config, quote_mint]의 PDA. 같은 플랫폼을 통해 라우팅되고 같은 인용 민트를 사용하는 모든 런칭은 같은 볼트에 쏟아집니다. 플랫폼의 platform_fee_walletClaimPlatformFeeFromVault를 통해 이를 회수합니다. 집계된 볼트를 거치지 않고 런칭의 quote_vault에서 직접 끌어가는 런칭별 회수 변형(ClaimPlatformFee)도 있습니다.
집계된 볼트 패턴은 많은 런칭 전체에서 높은 볼륨의 크리에이터나 플랫폼이 수수료 누적의 임차료 비용을 분할할 수 있도록 합니다.

Quote vault ↔ real_quote

quote_vault.balancePoolState.real_quote는 동기화 상태를 유지해야 합니다. 이들은 세 개의 미결 수수료 카운터(quote_protocol_fee, platform_fee, migrate_fee)의 합계만큼 벗어날 수 있습니다. 이 수수료들은 볼트에 있지만 수수료 카운터에 속하며 곡선 준비금에 속하지 않습니다. 곡선 수학은 항상 real_quote를 사용하며 원본 볼트 잔액을 사용하지 않습니다. 졸업 전 불변성:
quote_vault.balance ==
   real_quote
 + quote_protocol_fee
 + platform_fee
 + migrate_fee

라이프사이클 계정 전환

이벤트상태real_basereal_quote졸업 후 풀
InitializeFunding00
BuyExactIn / BuyExactOutFunding+base_out+quote_in_after_fee
SellExactIn / SellExactOutFunding−base_in−quote_out_before_fee
MigrateToAmm / MigrateToCpswapFunding → Migrate → Migrated(동결)(동결)생성됨, LP는 PlatformConfig에 따라 분할됨
ClaimCreatorFee / ClaimPlatformFee*모든수수료 볼트 드레인
CreateVestingAccountFundingvesting_schedule.allocated_share_amount 증가
ClaimVestedTokenMigrated만base_vault 드레인

다음 단계

출처:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — PDA 시드 상수 (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • Raydium SDK v2 launchpad module.