このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
2026-07 プログラムアップグレード以降、AMM v4 の OpenBook / Serum 依存関係は削除されました。レガシー v1 の
SwapBaseIn / SwapBaseOut、Deposit、Withdraw 命令は古いアカウントレイアウトを保持しており、後方互換性のためにマーケットアカウントは古い位置で受け入れられていますが、検証または使用されなくなりました(CPI は発行されません)。新しい統合では V2 スワップエントリポイントを使用してください。これらはマーケットアカウントを完全に省略します。いくつかの命令は削除され、リバートするようになりました。変更ログエントリを参照してください。以下のアカウントリストは Raydium SDK のフィールド名を使用しています。基礎となる IDL は時々 serum_* プレフィックスを使用します。命令インベントリ
SDK はユーザー向け命令のビルダーのみを公開しています。メンテナンス命令は通常、Raydium キーパーによって呼び出されます。
削除済み / 呼び出し不可(
unimplemented! でリバートし、クライアントビルダーは削除されました):Initialize(タグ 0、Initialize2 を使用)、MonitorStep(2)、MigrateToOpenBook(5)、WithdrawSrm(8)、PreInitialize(10、Initialize2 を使用)、SimulateInfo(12)、AdminCancelOrders(13)。
Initialize2
既存の OpenBook マーケットにバインドされた新しい AMM v4 プールをブートストラップします。
引数
W、署名者 S)
事後条件
lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN。ここでINIT_BURN≈ 100 LP ユニットは流通から除外されます。- OpenBook オーダーは投稿されません(オーダーブックグリッドは削除されました)。
market_program/marketは引き続き渡されますが、参照フィールドとしてのみ保存されます。coin_lot_size/pc_lot_size/min_sizeは0に初期化されます。
InvalidInput(小数点の不一致、ソート順序が正しくない)、NotAllowed。
Deposit
リクイディティを追加します。
引数
計算 — 標準的な按分。プールの有効リザーブ(ボルト + オンブック)を使用して、SDK は指定された LP 量を生成する coin/pc ペアを計算し、
max_* に対してチェックします。どちらかの側がキャップを超える場合、ExceededSlippage でリバートします。
Withdraw
LP をバーン、両側を受け取ります。
引数
Deposit と同じですが方向が逆です。lp_mint はバーン用に書き込み可能で、ユーザー ATA はレシーバーです。アカウントレイアウトは変更されていません(マーケットアカウントは引き続き位置的に渡され、無視されます)。OpenBook からのセットル手順はなくなりました。按分計算はボルト残高を直接使用します。
SwapBaseIn
正確な入力スワップ。常にAMM パススワップです(OpenBook マッチングを経由しません)。
新しいコードでは V2 バリアントを使用してください。 AMM v4 の OpenBook 依存関係が削除されたため、V1 エントリポイント(
SwapBaseIn、SwapBaseOut)は引き続き完全な 17 アカウントリスト(またはオプションのターゲットオーダーアカウント付きで 18)を期待していますが、OpenBook/マーケットアカウントは位置的に受け入れられ、無視されます — 検証されず、CPI は発行されません。間違ったアカウント数を渡すと引き続き WrongAccountsNumber でリバートしますが、マーケットアカウント内容はチェックされなくなりました。新しい統合では SwapBaseInV2 / SwapBaseOutV2 を使用してください。これらはより小さなアカウントリストを取り、今日の正規実行パスを表しています。V1 フォームは完全性のため、および既存のオンチェーントランザクションを読むためにここに記載されています。
計算 —
products/amm-v4/math を参照してください。
前提条件
amm.statusはスワップを許可します(ステータスビットマスクのビット 0 が設定されていません)。amm.state_data.pool_open_time <= now。amount_in > 0。user_source_token_accountは少なくともamount_inを保有しています。
- ユーザーはソーストークンの
amount_inを失い、デストトークンのamount_out ≥ minimum_amount_outを獲得します。 need_take_pnl_*はプロトコル手数料シェアだけ増加します。- 注記:
state_data.swap_*_in_amount/swap_*_out_amount分析カウンターは更新されなくなりました — それらの値は凍結されています。ボリューム分析にはトレードログを使用してください。
ExceededSlippage、InvalidInput、InvalidStatus、NotAllowed(coin/pc ミント同一)。
SwapBaseOut
正確な出力、SwapBaseIn の逆。同じアカウント。
引数
SwapBaseInV2 / SwapBaseOutV2
OpenBook アカウントを完全にスキップするバリアントスワップエントリポイント(タグ 16 / 17)。計算は V1 パスと同じですが、アカウントリストは AMM 側とユーザーだけに縮小します — 8 アカウント、amm_open_orders は渡されません:
プールリザーブはボルト残高(保留中の PnL を除く)になるため、クォート計算は簡潔で v1 パスと同じです。V2 を使用してコンピュートを節約し、(現在無視されている)マーケットアカウントの渡却を避けてください。Raydium ルーターは AMM v4 を経由してルーティングする場合、常に V2 フォームを使用します。
引数は V1 フォームと同じです(
SwapBaseInV2 の場合は amount_in / minimum_amount_out、SwapBaseOutV2 の場合は max_amount_in / amount_out)。
MonitorStep およびその他の削除された命令
歴史的に、MonitorStep はプールの OpenBook インタラクションをクランクしました:満たされたオーダーをセットル(OpenBook CPI を経由してマーケットボルトからプールボルトに収益を移動)、古いオーダーをキャンセル、target_orders と amm_open_orders の間のギャップを閉じるために新しいオーダーを投稿しました。OpenBook 依存関係が削除されたため、クランクするものはなく、命令は削除されました。引き続き呼び出すキーパーまたは統合は、呼び出しを削除する必要があります。
WithdrawPnl / TakePnl
累積プロトコル手数料の管理者スイープ。
引数
WithdrawPnlは引数を取りません。need_take_pnl_*を読み、正確な金額を移動します。
効果
need_take_pnl_coinをpool_coin_token_accountからpnl_coin_token_accountに転送します。- pc についても同じ。
need_take_pnl_coinとneed_take_pnl_pcをゼロにします。- ロジック変更:ボルト残高が累積 PnL をカバーするのに不十分な場合、命令は
TakePnlErrorを直接返します(オーダーブック状態を操作しなくなりました)。
SetParams
Raydium マルチシグによって呼び出される管理者パラメータ変更。引数は param: u8 タグ + ペイロードです。
状態変更マトリックス
OpenBook 列は削除されました — どの命令もオーダーブックに触れなくなりました。次のステップ
products/amm-v4/code-demos— スワップと LP フローの TypeScript 例。products/amm-v4/fees—WithdrawPnlの詳細と手数料分割。reference/error-codes— 前方参照テーブル(AMM v4 エラーはそのページに記載されています)。
- Raydium AMM プログラム —
raydium-io/raydium-amm - Raydium SDK v2
Liquidityモジュール - OpenBook プログラム — マーケット側のアカウント検証

