Skip to main content
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →バージョン バナー。 すべての例は Solana メインネット ベータに対する @raydium-io/raydium-sdk-v2@0.2.64-alpha を対象としており、2026-09-09 に検証済みです — 以下のビルダー名、パラメータ名、パラメータ型はすべて、そのリリースのソースおよび raydium-sdk-V2-demo/src/amm に対して確認されています。プログラム ID:675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8(reference/program-addressesを参照)。最初の統合でほとんどの人がはまる 2 つの罠:computeAmountOut の slippage は Percent ではなく素の数値(0.005 = 0.5%)であること。そして liquidity.swap は inputMint を base58 文字列として 必須 とすることです。
バージョン情報。 すべてのデモは @raydium-io/raydium-sdk-v2@0.2.64-alpha を対象とし、Solana mainnet-beta に対して検証済み(2026-04)。プログラム ID:675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8(reference/program-addresses を参照)。
新規プール作成はここでは説明していません。 Raydium UI は AMM v4 プール作成を提供しなくなり、新しいペアはデフォルトで CPMM になります。AMM v4 プログラム自体は引き続きオンチェーンで Initialize2 を受け入れていますが、推奨されるパスではありません。以下のデモは、すべてのインテグレーターが必要とするライブプール操作をカバーしています:スワップ、デポジット、ウィズドロー。

セットアップ

ID でプールを取得

poolKeys はインストラクションビルダーが使用する構造体です。プログラムが期待する順序ですべての AMM v4 アカウントを保持し、さらに現在のプログラムが位置的に受け取るもののもう読み取らないレガシーなマーケット フィールドも含みます。

スワップ(ベースイン)

SDK は AMM v4 スワップを V2 エントリーポイント経由でルーティングします。これらは OpenBook アカウントを保持していません。(2026-07 アップグレード後、マーケットアカウントはレガシー v1 パスでも検証されなくなります。)

スワップ(ベースアウト)

リクイディティを追加

fixedSide: "a" は、正確な amountInA を指定し、amountInB は最大で maxAnotherAmount であることを SDK に伝えます。比例計算はボルト残高から蓄積された PnL を差し引いた値に基づいて行われます — 先に決済すべきオンブックのコンポーネントはもう存在しません。

リクイディティを削除

スリッページ最小値は、プリクォートとランドタイム間でプールの状態が変わるのを防ぎます。

コンピュートユニット / プライオリティフィーの調整

OpenBook の削除以降、AMM v4 のスワップはマーケット状態を一切検証しなくなったため、V1 の SwapBaseIn は以前よりも明らかに安価です — そして SwapBaseInV2(8 アカウント、マーケットのプレースホルダなし)はさらに安価です。過去の数値から予算を組むのではなく、自分の経路を測定し、常に明示的なコンピュートユニット制限を渡してください:
computeBudgetConfig を省略した場合、SDK は独自のデフォルトを使用する可能性があります。返された transaction を検査して確認してください。integration-guides/priority-fee-tuning を参照してください。

直接 Rust CPI

独自の Anchor プログラムから AMM v4 に CPI する必要がある場合、SwapBaseIn のアカウントリストを逐語的にモデル化する必要があります。最小限のスケッチ:
AMM v4 は CPI 用の Anchor クレートを提供していません。上記のスケッチは手動で構築された Instruction を使用しています。
上記の CPI スケッチは、既存のトランザクションを読み取り/再現するために レガシー v1 SwapBaseIn レイアウト(タグ 9、17 アカウント)を使用しています。2026-07 アップグレード以降、マーケットアカウントは受け入れられていますが無視されます。新しいコードの場合は SwapBaseInV2 / SwapBaseOutV2 (タグ 16 / 17)を優先してください。これらはマーケットアカウント(および amm_open_orders)を削除し、8 つのアカウントのみを渡します:token_program、amm、amm_authority、2 つのプールボルト、2 つのユーザートークンアカウント、および user_owner。

よくある落とし穴

  • v1 スワップでのアカウント数の誤り。 レガシー SwapBaseIn / SwapBaseOut は引き続き完全な 17 アカウント(または 18 アカウント)リストを必要とします — 不一致の 数 は WrongAccountsNumber で戻ります。マーケットアカウントの 内容 はもはや検証されていませんが、それでもスロットを占める必要があります。これを避けるために V2 エントリーポイントを優先してください。
  • 生のボルト残高を読み取る。 リザーブはボルトのみになりました。累積 PnL(need_take_pnl_*)を差し引いてください。SDK クォートまたは api-v3.raydium.io/pools/info/ids がこれを処理します。
  • 削除されたインストラクションを呼び出す。 MonitorStep、MigrateToOpenBook、WithdrawSrm、SimulateInfo、AdminCancelOrders、およびレガシー Initialize / PreInitialize は現在戻ります。プール作成には Initialize2 を使用してください。呼び出すクランクはありません。
  • Token-2022 ミント。 サポートされていません。AMM v4 プールは Token-2022 ミントに対して作成できません。Token-2022 ペアは CPMM または CLMM にある必要があります。

次のステップ

ソース: