このページは 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")として表示されます。同じ addLiquidity / removeLiquidity / スワップヘルパーが AMM v4(version: 4)定数積プールと同じように機能します。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ルーティングフローを優先します。Stable を含むすべての Raydium プールタイプを処理します。 - プール固有の操作(既知の Stable プール上の LP 追加 / 削除)の場合、
LiquidityModuleを直接使用します。v5 プールを自動検出します。 - オフチェーンクォート / 分析の場合、
initLayout()後にgetStablePrice/getDyByDxBaseIn/getDxByDyBaseInを呼び出します。モデルデータがキャッシュされた後、クォートごとに RPC トラフィックはありません。 - 生の
SwapBaseIn命令をハンドエンコードしないでください。 2026-06-22 アップグレードは無効な OpenBook アカウントを削除したため、新しいスワップレイアウトは 9 アカウントを取ります(古い 18 アカウントレイアウトは後方互換性のために解析されます)。Depositは現在 12 アカウント(古い 14 互換)、Withdrawは 12(古い 21/22 互換)、WithdrawPnlは 10 で 互換性パスなしです。SDK の事前構築ヘルパーは正しいレイアウトと順序を選択します。独自に実装するのはエラーが発生しやすいです。完全なアカウントテーブルについてはproducts/stable/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。

