Skip to main content
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
バージョン情報
  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • クラスタ: Solana mainnet-beta
  • Stable AMM プログラム ID: 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3hreference/program-addresses を参照)
  • 最終確認: 2026-04
SDK の 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 つの同等のシグナル:
AMM v4(version: 4、定数積)と Stable AMM(version: 5)の両方は、SDK 上の同じ LiquidityModule API を通じて流れます。内部的にモジュールは以下にディスパッチします:
  • v4 プール用の InstructionType.AmmV4AddLiquidity / AmmV4RemoveLiquidity
  • v5(Stable)プール用の InstructionType.AmmV5AddLiquidity / AmmV5RemoveLiquidity
プールの programId(プールキーと共に返される)は、SDK がどのプログラムに CPI するかを指示します。ハードコードする必要はありません。

ミントペアでプールを検索

ミントペアに v4(定数積)プールと v5(stable)プールの両方がある場合、レスポンスには両方が含まれます。フローに必要なものを選択するか、AMM ルーティングプログラムに渡して最適なルートを選択させます。

Stable プール経由でスワップ

LiquidityModule.swap フローは v4 プールと同じ形状です。v5 プールオブジェクトを渡すだけです:
SDK はプールキーからプールの programId を読み取り、Stable AMM プログラムにディスパッチします。特別な programId 引数は不要です。

リクイディティの追加と削除

addLiquidityremoveLiquidity は v4 と v5 プール全体で同じように機能します:
内部的に SDK は pooltype.includes("StablePool") が true であるため InstructionType.AmmV5AddLiquidity を発行します。対応する removeLiquidity フローは対称です。lpAmount と各側で受け入れる最小額を入力します。

オフチェーンクォートヘルパー(stable.ts)

サーバー側のクォートまたはバックテストの場合、SDK は基礎となる stable-curve 数学を公開します:
これらは純粋な関数です。RPC なし、署名なし。オンチェーン ModelDataInfoinitLayout() によって 1 回フェッチされ、raydium.liquidity.stableLayout にキャッシュされます。現在のリザーブ(xy)を渡すと、ヘルパーはルックアップテーブルをバイナリサーチし、周囲の 2 つの DataElement 行の間で線形補間することで計算します。基礎となるアルゴリズムについては products/stable/math を参照してください。

AMM ルーティング経由でのルーティング(マルチホップ / 最適価格)

ベニューを自分で選択したくない場合、AMM ルーティングプログラムはすべての Raydium AMM(v4 / CPMM / CLMM / Stable)を検討し、最適な組み合わせを通じてルーティングします:
これは本番スワッパーとアグリゲーター向けの推奨パスです。Stable プールが存在するかどうか、または今日がより良いベニューであるかどうかを手動で決定する必要はありません。

推奨事項

  1. エンドユーザースワップの場合tradeV2 ルーティングフローを優先します。Stable を含むすべての Raydium プールタイプを処理します。
  2. プール固有の操作(既知の Stable プール上の LP 追加 / 削除)の場合、LiquidityModule を直接使用します。v5 プールを自動検出します。
  3. オフチェーンクォート / 分析の場合initLayout() 後に getStablePrice / getDyByDxBaseIn / getDxByDyBaseIn を呼び出します。モデルデータがキャッシュされた後、クォートごとに RPC トラフィックはありません。
  4. 生の 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 全体のマルチプールルーティング。
ソース: