Skip to main content
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
バージョン情報
  • SDK: @raydium-io/raydium-sdk-v2@0.2.64-alpha
  • クラスタ: Solana mainnet-beta
  • Stable AMM プログラム ID: 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3hreference/program-addresses を参照)
  • 最終確認: 2026-09-09 SDK 0.2.64-alpha ソースおよび raydium-sdk-V2-demo amm/trade デモに対して
SDK の liquidity モジュールは Stable AMM プールをネイティブに処理します。Stable プールは ApiV3PoolInfoStandardItem 上で version: 5(または pooltype: "StablePool")として表示されます。AMM v4(version: 4)定数積プールと同じ addLiquidity / removeLiquidity / スワップヘルパーが機能します。SDK は変種を検出し、正しい命令を自動的に発行します。オフチェーン安定曲線の数学は src/raydium/liquidity/stable.ts に実装されています。

セットアップ

initLayout() は Stable プールでは必須です。 liquidity.computeAmountOutpoolInfo.version で分岐します。version 4 の場合は定数積公式を使用し、その他の場合は this.stableLayout.stableModelData を読み込んでルックアップテーブルを補間します。このキャッシュは initLayout() が実行されるまで空のため、initLayout() なしで v5 プールを見積もるとエラーではなくゴミ値が返されます。べき等で低コストです。起動時に 1 回呼び出してください。トランザクションビルダー(swapaddLiquidityremoveLiquidity)は不要です。pooltype.includes("StablePool") で分岐し、AmmV5* 命令を発行します。渡す金額の上限は既に計算されています。
liquidity.computeAmountIn は Stable プールをサポートしていません。 computeAmountOut と異なり、version 分岐がなく、常に定数積の逆関数を適用するため、v5 プールでは間違った maxAmountIn が返されます。Stable プールに対する正確な出力スワップの場合、getDxByDyBaseIn で自分で逆算し(下の オフチェーン見積もりヘルパー、結果を fixedSide: "out"swap に渡してください。

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(安定)プールの両方を持つ場合、レスポンスには両方が含まれます。フローが必要なものを選択するか、AMM ルーティングプログラムに渡して最適なルートを選択させてください。

Stable プール経由でスワップ

LiquidityModule.swap フローは v4 プールと同じ形状です。v5 プールオブジェクトを渡すだけです。間違いやすい 2 つの詳細があります:computeAmountOut はプールの ライブリザーブ をプール情報に接ぎ木する必要があります(API アイテムだけでは持っていません)。また、その slippagePercent ではなく、プレーンな 数値 です:
SDK はプールキーからプールの programId を読み込み、Stable AMM プログラムに分岐します。特別な programId 引数は不要です。

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

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

オフチェーン見積もりヘルパー(stable.ts)

サーバー側の見積もりまたはバックテストの場合、SDK は基礎となる安定曲線の数学を公開します:
これらは純粋な関数です。RPC なし、署名なし。オンチェーン ModelDataInfoinitLayout() で 1 回フェッチされ、raydium.liquidity.stableLayout 内にキャッシュされ、.stableModelData として読み取り可能です。initStableModelLayout() はべき等です。validDataCount === 0 の間のみ再フェッチするため、initLayout() を再度呼び出すのは無料です。現在のリザーブ(xy)を渡すと、ヘルパーはルックアップテーブルをバイナリサーチし、周囲の 2 つの DataElement 行の間で線形補間することで計算します。基礎となるアルゴリズムについては products/stable/math を参照してください。

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

会場を自分で選択したくない場合、AMM ルーティングプログラムはすべての Raydium AMM(v4 / CPMM / CLMM / Stable)を検討し、最適な組み合わせを通じてルーティングします: ルーターは単一の swap() ではなく 5 呼び出しのパイプラインであり、本番環境で使用可能にするキャッシングアドバイスと共に完全に記述されています。products/routing/code-demos を参照してください。形状は以下の通りです:
raydium.tradeV2.fetchRoutes はなく、tradeV2.swapinputMint / outputMint / slippage を受け入れません。既に計算された getAllRouteComputeAmountOut からの swapInfo を取得します。単一の 既知プールの場合、このページの前半で示したようにそのプールタイプ独自のビルダー(AMM v4 と Stable の場合は raydium.liquidity.swapraydium.cpmm.swapraydium.clmm.swap)を使用してください。
これは本番環境のスワッパーとアグリゲーターの推奨パスです。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 を参照してください。

次に進む場所

  • Math — ルックアップテーブル補間の仕組み。
  • Instructions — 完全な命令リファレンス。
  • AMM ルーティング — AMM v4、CPMM、CLMM、Stable 全体のマルチプールルーティング。
ソース: