このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
バージョン情報。
- SDK:
@raydium-io/raydium-sdk-v2@0.2.42-alpha - クラスタ: Solana
mainnet-beta - Stable AMM プログラム ID:
5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h(reference/program-addressesを参照) - 最終確認: 2026-04
liquidity モジュールは Stable AMM プールをネイティブに対応しています。Stable プールは ApiV3PoolInfoStandardItem 上に version: 5 または pooltype: "StablePool" として表示され、AMM v4(version: 4)の定数積プールと同じ addLiquidity / removeLiquidity / スワップ ヘルパーが機能します。SDK は自動的にバリアントを検出し、正しいインストラクションを生成します。オフチェーン stable-curve 計算は src/raydium/liquidity/stable.ts に格納されています。セットアップ
Stable プールの識別
ApiV3PoolInfoStandardItem の 2 つの同等のシグナル:
version: 4、定数積)と Stable AMM(version: 5)は両方とも SDK の同じ LiquidityModule API を通じます。内部的には、モジュールは以下にディスパッチします:
- v4 プールの場合:
InstructionType.AmmV4AddLiquidity/AmmV4RemoveLiquidity - v5(Stable)プールの場合:
InstructionType.AmmV5AddLiquidity/AmmV5RemoveLiquidity
programId(プールキーとともに返される)は SDK にどのプログラムへ CPI するかを指示します。ハードコードする必要はありません。
ミント ペアでプールを検索
Stable プール経由でスワップ
LiquidityModule.swap フローは v4 プールの場合と同じです。v5 プール オブジェクトを渡すだけです:
programId を読み取り、Stable AMM プログラムにディスパッチします。特別な programId 引数は不要です。
リクイディティの追加と削除
addLiquidity と removeLiquidity は v4 と v5 のプール間で同じように動作します:
pooltype.includes("StablePool") が true であるため InstructionType.AmmV5AddLiquidity を生成します。対応する removeLiquidity フローは対称です。lpAmount と各側で受け入れる最小額を入力します。
オフチェーン クォーティング ヘルパー (stable.ts)
サーバー側のクォーティングまたはバックテストの場合、SDK は基盤となる stable-curve 計算を公開しています:ModelDataInfo は initLayout() で 1 回フェッチされ、raydium.liquidity.stableLayout にキャッシュされます。現在のリザーブ(x、y)を渡すと、ヘルパーはルックアップテーブルをバイナリサーチして、周囲の 2 つの DataElement 行の間で線形補間により計算します。基盤となるアルゴリズムについては products/stable/math を参照してください。
AMM ルーティング経由でルーティング (マルチホップ / 最高価格)
ベニュー自体を選択したくない場合、AMM ルーティング プログラムはすべての Raydium AMM(v4 / CPMM / CLMM / Stable)を検討し、最適な組み合わせを通じてルーティングします:推奨事項
- エンドユーザー スワップの場合、
tradeV2ルーティング フローを優先してください。すべての Raydium プール タイプ(Stable を含む)を処理します。 - プール固有の操作の場合(既知の Stable プール上での LP の追加 / 削除)、
LiquidityModuleを直接使用してください。v5 プールを自動的に検出します。 - オフチェーン クォーティング / 分析の場合、
initLayout()後にgetStablePrice/getDyByDxBaseIn/getDxByDyBaseInを呼び出してください。モデルデータがキャッシュされた後、クォートごとに RPC トラフィックはありません。 - 生の
SwapBaseInインストラクションを手動でエンコードしないでください。 Stable AMM プログラム(AMM v4 からフォーク)は V1 スワップ エントリポイントに対して 17~19 個の OpenBook アカウントが必要で、model_data_accountはそれらの間にスロットされています。SDK の事前構築ヘルパーはすべてのアカウントと順序を正確に処理します。独自にローリングするとエラーが発生しやすくなります。
次のステップ
- Math — ルックアップテーブル補間がどのように機能するか。
- Instructions — 完全なインストラクション リファレンス。
- AMM ルーティング — AMM v4、CPMM、CLMM、Stable 全体のマルチプール ルーティング。
raydium-sdk-V2/src/raydium/liquidity/liquidity.ts— モジュール エントリポイント; v4 / v5 ディスパッチ。raydium-sdk-V2/src/raydium/liquidity/stable.ts—StableLayout、getStablePrice、getDxByDyBaseIn、getDyByDxBaseIn。

