本頁內容由 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 中是二次的——早期購買者支付接近零,晚期購買者支付更多,邊際價格始終以固定斜率上升。鏈上實現位於 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(純二次從零開始)。
售出 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 的牛頓求解大約給出 ∆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。 - 「買確切報價」和「賣確切報價」的牛頓求解在
u128定點中迭代,最大迭代次數可配置(預設 10)。失敗模式是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 程式源代碼

