このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
バージョン情報
- SDK:
@raydium-io/raydium-sdk-v2@0.2.64-alpha - クラスタ: Solana
mainnet-beta - Stable AMM プログラム ID:
5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h(reference/program-addressesを参照) - 最終確認: 2026-09-09 SDK
0.2.64-alphaソースおよびraydium-sdk-V2-demoamm/trade デモに対して
liquidity モジュールは Stable AMM プールをネイティブに処理します。Stable プールは ApiV3PoolInfoStandardItem 上で version: 5(または pooltype: "StablePool")として表示されます。AMM v4(version: 4)定数積プールと同じ addLiquidity / removeLiquidity / スワップヘルパーが機能します。SDK は変種を検出し、正しい命令を自動的に発行します。オフチェーン安定曲線の数学は 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 プールオブジェクトを渡すだけです。間違いやすい 2 つの詳細があります:computeAmountOut はプールの ライブリザーブ をプール情報に接ぎ木する必要があります(API アイテムだけでは持っていません)。また、その slippage は Percent ではなく、プレーンな 数値 です:
programId を読み込み、Stable AMM プログラムに分岐します。特別な programId 引数は不要です。
リクイディティの追加と削除
addLiquidity と removeLiquidity は v4 と v5 プール全体で同じように機能します:
pooltype.includes("StablePool") が true であるため InstructionType.AmmV5AddLiquidity を発行します。対応する removeLiquidity フローは対称です。lpAmount と各側で受け入れる最小金額を入力してください。
オフチェーン見積もりヘルパー(stable.ts)
サーバー側の見積もりまたはバックテストの場合、SDK は基礎となる安定曲線の数学を公開します:ModelDataInfo は initLayout() で 1 回フェッチされ、raydium.liquidity.stableLayout 内にキャッシュされ、.stableModelData として読み取り可能です。initStableModelLayout() はべき等です。validDataCount === 0 の間のみ再フェッチするため、initLayout() を再度呼び出すのは無料です。現在のリザーブ(x、y)を渡すと、ヘルパーはルックアップテーブルをバイナリサーチし、周囲の 2 つの DataElement 行の間で線形補間することで計算します。基礎となるアルゴリズムについては products/stable/math を参照してください。
AMM ルーティング経由でのルーティング(マルチホップ / 最適価格)
会場を自分で選択したくない場合、AMM ルーティングプログラムはすべての Raydium AMM(v4 / CPMM / CLMM / Stable)を検討し、最適な組み合わせを通じてルーティングします: ルーターは単一のswap() ではなく 5 呼び出しのパイプラインであり、本番環境で使用可能にするキャッシングアドバイスと共に完全に記述されています。products/routing/code-demos を参照してください。形状は以下の通りです:
推奨事項
- エンドユーザースワップの場合、
tradeV2ルーティングフローを優先してください。Stable を含むすべての Raydium プールタイプを処理します。 - プール固有の操作(既知の Stable プール上の LP 追加/削除)の場合、
LiquidityModuleを直接使用してください。v5 プールを自動検出します。 - オフチェーン見積もり / 分析の場合、
initLayout()後にgetStablePrice/getDyByDxBaseIn/getDxByDyBaseInを呼び出してください。モデルデータがキャッシュされた後、見積もりごとに RPC トラフィックはありません。 - 生の
SwapBaseIn命令をハンドコードしないでください。 2026-06-22 アップグレードは死んだ OpenBook アカウントを削除したため、新しいスワップレイアウトは 9 アカウント を取得します(古い 18 アカウントレイアウトは後方互換性のために解析されます)。Depositは現在 12 アカウント(古い 14 互換)、Withdraw12(古い 21/22 互換)、WithdrawPnl10 で 互換性パスなし。SDK の事前構築ヘルパーは正しいレイアウトと順序を選択します。独自にロールするのはエラーが発生しやすいです。完全なアカウントテーブルについてはproducts/stable/instructionsを参照してください。
次に進む場所
- 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。

