이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
LaunchLab은
Initialize에서 선택할 수 있는 세 가지 곡선 형태를 지원합니다: constant-product (가장 일반적이며, 표준 x · y = k 곡선의 가상 예비금 형태), linear-price, fixed-price. 졸업 임계값 공식은 세 가지 모두에서 동일합니다. 이 페이지에서는 constant-product 수학을 자세히 설명하고, linear 및 fixed 형태는 끝부분에 요약되어 있습니다.LaunchState에 저장된 파라미터
Rust 구조체의 필드 이름은
accounts에 설명된 PoolState 필드와 일치합니다. 위의 단위는 개념적입니다.
가상 예비금이 있는 Constant-product 곡선 (curve_type = 0)
기본값이며 가장 많이 사용되는 곡선입니다. Pump 스타일 런칭은 모두 이 형태를 사용합니다. 곡선은 처음부터 가상 견적 예비금 V_q와 가상 기본 예비금 V_b가 있다고 가정합니다 (PoolState의 virtual_quote와 virtual_base로 저장됨). 따라서 유효한 풀은 이러한 예비금을 가진 CPMM처럼 보입니다. 매수는 x · y = k 수학을 따릅니다:
base_out에 대해 풀면:
s에서의 유효 가격:
x · y = k 불변식은 졸업 후 CPMM 곡선이므로, 인수인계는 기계적으로 원활합니다: base_sold = base_supply_graduation에서의 한계 가격은 졸업 후 풀이 (quote_vault, base_vault_remaining)을 예비금으로 하여 개설되는 가격과 같습니다.
Fixed-price 곡선 (curve_type = 1)
평탄한 가격 곡선입니다. 모든 매수/매도는 Initialize에서 설정 가능한 상수 가격으로 발생합니다:
base_supply_graduation이 판매되었을 때 트리거됩니다 (선형 비용 관계는 quote_reserve_target을 간단하게 도출합니다).
Linear-price 곡선 (curve_type = 2)
가격이 base_sold에 따라 선형으로 증가합니다:
base_sold에 대해 이차식입니다 — 초기 매수자는 거의 0에 가까운 가격을 지불하고, 후기 매수자는 상당히 더 많이 지불하며, 한계 가격은 항상 고정된 기울기로 상승합니다. 온체인 구현은 curve/linear_price.rs에 있습니다.
곡선 형태 비교
졸업 임계값
quote_reserve_target은 Initialize에서 base_sold를 0에서 base_supply_graduation으로 구동하는 데 필요한 견적으로 계산됩니다:
quote_vault.balance ≥ quote_reserve_target이 되는 즉시 졸업합니다. 매수가 이산적인 크기로 들어오기 때문에, 졸업 시점의 실제 잔액은 목표를 약간 초과할 수 있습니다 — 잉여는 결과 CPMM 풀의 추가 견적 측 유동성이 됩니다.
실제 예시 — 이차 런칭
파라미터:base_supply_max = 1_000_000_000(10억 기본 토큰, 6 소수점)base_supply_graduation = 800_000_000(80% 판매 시 졸업 트리거)k = 40(가격 스케일)- 수수료: 1% 매수, 1% 매도, 분할
lp:creator:protocol = 60:20:20.
s = 0): 0 (순수 이차식은 0에서 시작).
50% 판매 시 가격 (s = 500_000_000):
s = 800_000_000):
- 가상 상태:
s = 0,quote_vault = 0. - 수수료 차감:
quote_after_fee = 10 × 0.99 = 9.9. (40 / (3e18)) × s³ = 9.9풀면 ⇒s ≈ 6.22e6기본 토큰 매수.- 1% 수수료 (
0.1 USDC) 분할: lp0.06, creator0.02, protocol0.02. lp 몫은quote_vault에 남고, 나머지 둘은 각각의 누적 카운터로 라우팅됩니다.
s₀ = 750e6에서 quote_in_after_fee = 9.9로 Newton 풀이를 하면 대략 ∆s ≈ 0.4e6을 얻습니다 — 첫 번째 매수에 비해 USDC당 기본의 약 15배 감소입니다.
곡선 단계 중 수수료 메커니즘
모든Buy에서:
lp_share은quote_vault에 남습니다. 이것이 유효한 곡선을 더 타이트하게 만드는 것입니다 (동일한 기본 공급에 대해 더 많은 견적 예비금).protocol_share은LaunchState.state_data.protocol_fees_quote를 증가시킵니다.creator_share은LaunchState.state_data.creator_fees_quote를 증가시킵니다.
Sell에서 동일한 분할이 적용되지만 수수료는 아웃바운드 quote_out에서 차감됩니다.
두 카운터 모두 CollectFees를 통해 스윕됩니다 (관리자 또는 크리에이터, 각각 자신의 카운터로).
정밀도
- 기본 측 금액:
u64. - 견적 측 금액:
u64. - 중간 세제곱 / 곱:
u128. - “정확한 견적 매수” 및 “정확한 견적 매도”에 대한 Newton 풀이는 설정 가능한 최대 반복 횟수 (기본값 10)로
u128고정 소수점에서 반복됩니다. 실패 모드는NotConverged입니다 — 졸업 근처 엣지 케이스 외에는 드뭅니다.
CPMM으로의 인수인계
Graduate가 실행될 때:
cpmm_initial_price는 기계적으로 price(base_sold)입니다 (인수인계 순간의 한계 곡선 가격입니다). CPMM 풀은 정확히 그 가격으로 개설되므로, 곡선 UI에서 CPMM UI로 전환하는 관찰자는 점프를 보지 않습니다.
다음 단계
products/launchlab/accounts— 이러한 파라미터를 저장하는LaunchState필드.products/launchlab/instructions—Buy,Sell,Graduate계정 목록.algorithms/constant-product— 졸업 후 풀이 사용하는 CPMM 수학.
- Raydium SDK v2
LaunchLab모듈 - Raydium LaunchLab 프로그램 소스

