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 による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
Initialize で選択される 3 つのカーブ形状をサポートします:constant-product(最も一般的で、標準的な x · y = k カーブの仮想リザーブ形式)、linear-price、および fixed-price。卒業スレッショルド式は、すべての 3 つに共通しています。このページでは constant-product の数学を詳細に説明します。linear と fixed の形式は最後に要約されています。
LaunchState に保存されるパラメータ
| フィールド | 意味 |
|---|---|
curve_type | 0 = constant-product(仮想リザーブ)、1 = fixed-price、2 = linear-price。 |
base_supply_max | カーブがミントできるベーストークンの総量。 |
base_supply_graduation | 卒業に到達するために売却する必要があるベーストークン。通常 0.8 × base_supply_max。残りの 20% は卒業後プールの初期 LP になります。 |
quote_reserve_target | 卒業をトリガーするクオート額。Initialize でカーブパラメータ + base_supply_graduation から導出されます。 |
virtual_base / virtual_quote | constant-product カーブの仮想リザーブシード。 |
migrate_type | 卒業ターゲットを選択:AMM v4 対 CPMM。instructions を参照してください。 |
fees.buy_numerator / buy_denominator | 買値側のフィー、例えば 100 / 10_000 = 1.00%。 |
fees.sell_numerator / sell_denominator | 売値側のフィー。通常は買値と同じ。 |
fees.protocol_share、fees.creator_share、fees.lp_share | 上記の分割。合計は denominator。 |
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(または AMM v4)カーブになるため、卒業のハンドオフは機械的にシームレスです:base_sold = base_supply_graduation での限界価格は、(quote_vault, base_vault_remaining) をリザーブとして卒業後プールがオープンする価格と等しい。
固定価格カーブ(curve_type = 1)
フラット価格カーブ。すべての買値・売値は定数価格で発生します。これは Initialize で設定可能です:
base_supply_graduation が売却されると卒業がトリガーされます(線形コスト関係により quote_reserve_target の導出は簡単です)。
線形価格カーブ(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):
10 USDC:
- 仮想状態:
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 での Newton 解を 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。 - 「正確なクオートを買う」および「正確なクオートを売る」ための 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
LaunchLabmodule - Raydium LaunchLab プログラムソース


