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 による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
Raydium のプロダクト プログラムは独立したコードベースですが、共有された規約セットに対して設計されています。このページは、その規約の正式なリファレンスです。プロダクト別の章では、規約がどのようにアカウントに実装されるかを説明します。このページでは、規約そのものを説明します。
ここで「共有」が意味すること
コードベース全体を通じて、3 つのレベルの共有が存在します。- 規約の共有。 すべてのプログラムは同じ PDA 導出パターン、同じ手数料分割形状、同じオブザーベーション アカウントのアイデアを使用します。ただし、各プログラムはそれぞれ独自のプログラムで、独自のシードを使用して実装します。
- アカウント共有。 ごく少数のアカウントは、複数のプール間で文字通り同じレコード(CPMM のグローバル オーソリティ PDA、AmmConfig アカウント)です。
- オフチェーン共有。 1 つの REST API と 1 つの TypeScript SDK がすべての 4 つのプログラムの前面に立ちます。どのプログラムを呼び出すかに関わらず、統合者は 1 つの HTTP ホストと 1 つの NPM パッケージと対話します。
1. オーソリティ PDA
すべての Raydium プログラムには、そのトークン ヴォルトを所有する PDA が正確に 1 つあります。ユーザーはヴォルト オーソリティを直接保有することはありません。オーソリティ PDA は、資金を引き出すことができる唯一の署名者であり、有効なプログラム命令が署名するよう指示したときのみ署名します。 パターンはプロダクト全体で同一です。シードは異なります。| プログラム | オーソリティ PDA シード | 注記 |
|---|---|---|
| AMM v4 | [poolId] | プール単位のオーソリティ。v4 のプール単位設計と同じ形状。 |
| CPMM | [b"vault_and_lp_mint_auth_seed"] | すべての CPMM プール間で共有される単一 PDA。 プール固有のシードなし。 |
| CLMM | [b"pool_vault_and_lp_mint_auth_seed"] | すべての CLMM プール間で共有される単一 PDA。 |
| Farm v3 / v5 / v6 | [farmId] | ファーム単位。PDA はそのファームのステーキング + リワード ヴォルトを所有します。 |
| LaunchLab | [b"vault_auth", launchId] | ローンチ単位。卒業前のベース + クォート ヴォルトを所有します。 |
- CPMM と CLMM の場合、オーソリティ PDA はグローバル アカウントです。そのタイプのすべてのプールはそれを使用します。CPMM に CPI している場合、プールごとではなく 1 回必要です。
- プール単位 / ファーム単位のオーソリティの場合、プール/ファーム ID から PDA を導出します。SDK は
getPoolKeys/getFarmKeysでこれを行います。直接統合する場合は、findProgramAddressSyncで導出します。 - ヴォルト所有権は変更できません。 トークン アカウントがオーソリティ PDA を所有者として作成されると、そのプログラムによって呼び出された PDA のみが転送できます。管理者オーバーライドはありません。
products/cpmm/accounts、products/clmm/accounts、products/amm-v4/accounts、products/farm-staking/accounts、products/launchlab/accounts を参照してください。
2. 管理アカウント設定アカウント
CPMM と CLMM は、AmmConfig と呼ばれる設定アカウント パターンを共有します。これは、小さなグローバル アカウントで、u16 でインデックス付けされ、手数料率とそれがある全体手数料ティアに適用される管理先を保持します。プールは作成時に設定にバインドし、再バインドされません。
- 手数料ティアはグローバルです。 プールが「これは 0.25% プールです」と言う場合、作成時に
trade_fee_rateが 0.25% だった AmmConfig にバインドしていることを意味します。プール単位のレート オーバーライドはありません。 - 設定は変更できますが、プールは従いません。 設定オーソリティが AmmConfig を編集すると、その設定にバインドされたすべての既存プールは新しいレートを即座に取得します。これはバグではなく機能です。プロトコル レベルの経済的な変更がプール単位のマイグレーションなしに伝播する方法です。
disable_create_poolは非推奨レバーです。 手数料ティアが日没すると、プロトコル マルチシグはこのフラグを設定します — 既存プールは動作し続けますが、新しいプールはティアを選択できません。protocol_owner/fund_ownerは手数料徴収呼び出しの署名者です。それらをマルチシグに設定することが、手数料引き出しをゲートしています。それらは手数料自体の宛先アドレスではなく、それは同じアカウント上のprotocol_fee_destination/fund_fee_destinationです。
AmmConfig がありません。その手数料パラメータはプール単位で、作成時にハードコードされています。Farm と LaunchLab はそれぞれのチャプターでカバーされている独自の同等物(FarmConfig、LaunchConfig)を持っています。
誰が何を変更できるかの完全な表は security/admin-and-multisig にあります。現在のユーザー向け手数料分割は ray/protocol-fees にあります。
3. プロトコル・ファンド・クリエイター手数料分割
すべての CPMM と CLMM スワップ手数料は、出ていく際に最大 4 つの宛先に分割されます。- トレード手数料はプールに蓄積します。 手数料はスワップの入力側から削除され、手数料後の金額が定積乗法に見えます。これが「LP が手数料を獲得する」という意味です。
kが上昇し、暗黙の LP トークンの価値ごともそうです。 - プロトコル/ファンド/クリエイター部分がその LP 側の蓄積からプール単位のカウンター アカウントに控除されます。 それらはプール状態(
protocol_fees_token{0,1}、fund_fees_token{0,1}など)に保持されます。誰かがCollectProtocolFee/CollectFundFee/CollectCreatorFeeを呼び出すまで。それらはその時までプールのヴォルトを離れません。スワップの観点から見ると、それらはまだ「プール内」です。 - 徴収はそれらを移動します。 実行する署名者(AmmConfig 上の
protocol_owner/fund_ownerキー、または LaunchLab プール向けのローンチ クリエイター)は徴収命令を呼び出し、プログラムはプール ヴォルトから宛先 ATA に転送します。
- 分割パーセンテージはトレード手数料の端数であって、トレードではありません。 0.25% のトレード手数料と 12% のプロトコル シェアは、プロトコルがトレードの
0.25% × 12% = 0.03%を取得することを意味します。トレードの 12% ではなく。 - クリエイター手数料は LaunchLab 卒業プールにのみ存在します。 標準 CPMM/CLMM プールには 3 方向分割(LP / プロトコル / ファンド)があります。LaunchLab は、誰がトークンをローンチしたかにルーティングされた 4 番目のスロットを追加します。これは
Initializeで設定され、不変です。 - AMM v4 は 2 方向のみ分割し、プール単位でハードコードされます。ファンド スロットなし、クリエイター スロットなし。
- ファンド対プロトコル — 両者ともプロトコル財務宛先ですが、異なる署名者と異なる意図される用途があります。
protocolは歴史的に操作に資金を提供します。fundはより長期的な財務です。2 つの間の分割それ自体が調整可能です。
reference/fee-comparison と ray/protocol-fees にあります。
4. オブザーベーション アカウント(TWAP リング バッファ)
CPMM と CLMM は両方とも、プール単位でオブザーベーション アカウントを維持します。これは、他のコントラクトが操作耐性のある TWAP を導出するために使用できる固定サイズの(timestamp, cumulative_price) サンプルのリング バッファです。
- すべてのスワップが
update_observationを呼び出します。 プログラムは現在の価格を読み、前のオブザーベーションからの経過秒数を乗算し、累積カウンターに追加します。新しいエントリは最も古いスロット(リング バッファ スタイル)を上書きします。 - ウィンドウ上の TWAP =
(cumul[end] − cumul[start]) / (timestamp[end] − timestamp[start])。消費者は目的のウィンドウをブラケットする 2 つのオブザーベーションを選んで除算します。 - Raydium 自体は TWAP を価格付けに使用しません。 AMM 数学は、スポット準備金を直接読みます。オブザーベーション外部性です。Raydium は、他のコントラクトが読めるようにそれらを書く費用を支払います。
- AMM v4 はオブザーベーション アカウントを持ちません。 これは ObservationState デザインより古い。v4 TWAP を望む統合者は、ログ履歴からオフチェーンで計算する必要があります。
products/cpmm/accounts と products/clmm/accounts にあります。
5. REST API + SDK + IDL
オフチェーン サーフェスは、すべてのプロダクトで使用される単一のトリオです。- REST API —
https://api-v3.raydium.io。すべてのオンチェーン状態のほぼ読み取り専用のインデックス付きビューと引用エンジン。1 つのホスト、1 つのスキーマ。 - TypeScript SDK — NPM の
@raydium-io/raydium-sdk-v2。すべてのプログラムのトランザクションを構築して署名します。見積もり/メタデータ用に API と通信し、署名前の状態更新用に Solana RPC と通信します。 - IDL レジストリ — 公開されたすべてのプログラムの Anchor IDL は
raydium-idlリポジトリに存在します(プログラムごとに 1 つの JSON:CPMM、CLMM、LaunchLab)。TypeScript SDK はこれらの IDL を内部的に消費します。ダウンストリーム Rust / Python クライアントは同じファイルから再生成します。
| 部分 | 読み込み元 | 書き込み先 | 古さの許容範囲 |
|---|---|---|---|
| REST API | インデクサー(チェーン ログを解析) | — (統合者向けの読み取り専用) | 数秒 |
| SDK | API + RPC | トランザクションを構築。ブロードキャストしない | なし — 署名前に状態を再取得する必要がある |
| IDL | プログラム ソース | — | プログラム アップグレードごとにバージョン管理 |
sdk-api/ にあり、IDL サーフェスは特に sdk-api/anchor-idl にあります。
6. インデクサーと価格フィード
REST API は Raydium 独自のインデクサーによって給されます。インデクサーは Solana RPC の fleet からプログラム ログにサブスクライブし、非正規化されたレコードを SQL ストアに書き込みます。統合者に対する 2 つの結果:- インデクサーは「クロスプログラム状態を知っている」唯一のもの。 CPMM プールを CLMM の対応にマッピングすること、プログラム バージョン全体で 24 時間ボリューム番号を計算すること、LP ミントに関連付けられたファームを取得することなど、それはすべてインデクサー作業です。プログラム自体はそれを行いません。
- インデクサーのダウンタイムは API のダウンタイム。 API がスタイルまたは空のデータを返す場合、インデクサーが容疑者です。オンチェーン状態は影響を受けません。独自の RPC と SDK を持つ統合者は、トランザクションを続行できます。
priceUsd フィールドを公開します。これはインデクサーのプール準備金の見方のスナップショットと引用リファレンス価格(共通の基軸として USDC プール)からオフチェーンで計算されます。UI には十分です。オンチェーン オラクルとして使用するのは安全ではありません。そのためにオブザーベーション TWAP を使用してください。
共有されていないこと
新しい読者は多くの場合、存在するより多くの共有を仮定するため、明示的にリストアップする価値があります。- プログラムは相互に呼び出しません。 CPMM スワップは決して CLMM または AMM v4 に CPI しません。複数の AMM を構成する唯一のプログラムは、AMM ルーティング プログラムです。それ自体も細いもので、単に各 AMM に順番に CPI を発行します。
- プログラム間での共有アップグレード オーソリティなし。 オンチェーン プログラムごとに、独自のプログラム アップグレード キー(3/4 マルチシグと 24 時間タイムロック)があります。それらはリンクされていません。
- ファームと AMM 間での共有状態なし。 ファームは、それがステークするどの LP が CPMM プール、CLMM ポジション NFT ミント、または無関係の SPL トークンのどれであるかを知りません。ファーム プログラムはステーキング ミントを不透明として扱います。
- オラクル依存なし。 価格はオンチェーン準備金。Pyth/Switchboard フォールバックはありません。AMM はクリアする前にオラクルをチェックしません。
ポインタ
protocol-overview/architecture— これらのピースがどのように構成されるかを示す正式なダイアグラム。protocol-overview/versions-and-migration— 規約がプログラム バージョン全体でどのように進化したか。security/admin-and-multisig— AmmConfigs の背後にあるキーを制御する人。reference/fee-comparison— プロダクトごとの手数料レート マトリックス。reference/program-addresses— 正式なプログラム ID。
- Raydium SDK v2 — PDA シード、アカウント レイアウト、IDL 定義の情報源。
- Raydium IDL レジストリ — Anchor IDL。
- 上記でインラインで引用されたプロダクト単位のアカウント ページ。


