> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-07-22 — AMM v4: OpenBook / Serum 依存関係の削除

> AMM v4 は休止状態の OpenBook/Serum 依存関係、CPI、マーケットメイキング命令を削除します。v1 Swap/Deposit/Withdraw は互換性を保ちますが、WithdrawPnl と SetParams は大きな破壊的変更であり、複数の命令は呼び出し不可になります。

<Info>
  **このページは AI による自動翻訳です。すべての内容は英語版を正とします。**

  [英語版を表示 →](/reference/changelog/2026-07-22-amm-v4-openbook-removal)
</Info>

AMM v4 は**長年前から OpenBook（旧 Serum）へのリクイディティ共有を停止**しており、ハイブリッド・オーダーブック・マーケットメイキング・パスは数年間休止状態にありました。このアップグレードはクリーンアップです。**Serum 依存関係、すべてのオーダーブック CPI、および休止状態のマーケットメイキング命令をプログラムから削除**し、AMM v4 を純粋な定数積（`x·y=k`）AMM として残します。ライブ取引動作は**変わりません**。OpenBook オーダーは既に存在しないため、停止するものはありません。

## インテグレーター向け TL;DR

* **Swap / Deposit / Withdraw は変更なしで動作し続けます。** 古いアカウント レイアウトで構築されたトランザクションは実行されます。削除された Serum/マーケット アカウントは単に無視されます（検証なし、CPI なし）。`SwapBaseIn` / `SwapBaseOut` は依然として **17（+1 オプション）** アカウントを期待します。`Deposit` と `Withdraw` レイアウトは変わりません。既存フローを維持するためにクライアント アップデートを配信する必要は**ありません**。
* **V2 スワップ エントリポイントに移行してください。** `SwapBaseInV2` / `SwapBaseOutV2` はマーケット アカウントと `amm_open_orders` を持たず（合計 8 アカウント）、トランザクションはより小さく、より安価です。ルーター/アグリゲーターは V2 経由でルーティングすべきです。
* **`WithdrawPnl` は大きな破壊的変更です（管理者のみ）。** **17（+1 オプション）→ 10** アカウントに削減され、**互換性解析がありません**。古いレイアウトはミスアライン（古い #5 は `amm_open_orders`）し、検証に失敗します。管理者ツールは更新が必要です。
* **`SetParams` は大きな破壊的変更です（管理者のみ）。** アカウントは `[amm, admin]` に縮小され、`param` 列挙型は**番号が付け直されます**（`Fees` 9 → 2、`SetOpenTime` 11 → 3）。`AmmOwner`、`LastOrderDistance`、`UpdateOpenOrder` およびグリッド パラメーターは削除されます。
* **複数の命令は呼び出し不可になります。** `Initialize`、`PreInitialize`、`MonitorStep`、`MigrateToOpenBook`、`WithdrawSrm`、`SimulateInfo`、および `AdminCancelOrders` は現在リバートします。プールを作成するには `Initialize2` を使用してください。
* **オンチェーン アカウント レイアウトはバイト安定であり、エラー コードは変わりません。** `AmmInfo` / `StateData` はレイアウトを保持します（古い OpenBook フィールドは保持されていますが非推奨/凍結）。`AmmError` 番号は保持され、新しい `NotAllowed` のみが追加されます。

## これが重要な理由（トレーダー、LP、インテグレーター向け）

* **トレーダー** はスワップ動作または価格設定に変化を見ません。定数積曲線は変わりません。V2 レイアウト スワップは、約 8 つ少ないアカウントを持つため、ランディングがより安価です。
* **LP** は同じデポジット/ウィズドロー経済を保持します。リクイディティは長い間プール ボールトに完全に存在していたため、プール価値は完全にオンプール上にあります。このアップグレードは古いマーケット配管を削除するだけです。
* **インテグレーター** はより小さく、シンプルなトランザクションと、ボールトから直接読み取るクォーティング モデルを取得します。既存のインテグレーション（管理者 `WithdrawPnl` / `SetParams` を除く）は破壊されませんが、v1 スワップ互換性シムは一時的です。都合の良い時に V2 に移行してください。

## 命令レベルの変更

### 呼び出し可能、レイアウト変更なし（後方互換）

`Initialize2`、`Deposit`、`Withdraw`、`SwapBaseIn`、`SwapBaseOut`、`CreateConfigAccount`、および `UpdateConfigAccount` は既存のアカウント リストを保持します。`SwapBaseIn` / `SwapBaseOut`、`Deposit`、および `Withdraw` では、OpenBook/マーケット アカウントは依然として位置的に受け入れられますが、**検証または使用されなくなります**。CPI は発行されず、プール リザーブはボールトのみで計算されます。アカウント**数**は依然として一致する必要があるため、既存のトランザクションは変更なしで実行され続けます。

### `SwapBaseInV2` / `SwapBaseOutV2` — 推奨パス

マーケット アカウントと `amm_open_orders` を完全に省略します（8 アカウント、タグ 16 / 17）。クォート数学は v1 と同じです。新しいインテグレーションとルーターは V2 を使用すべきです。

### `WithdrawPnl` — 17（+1 オプション）→ 10 アカウント（⚠️ 大きな破壊的変更、互換性パスなし）

`amm_open_orders` とすべての 6 つのマーケット アカウントが削除されます。新しい固定 10 アカウント、管理者のみレイアウトには**互換性解析がありません**。古いレイアウトはミスアライン し、`InvalidCoinVault` などのエラーで失敗します。

### `SetParams` — `[amm, admin]` に削減（⚠️ 大きな破壊的変更）+ パラメーター番号付け直し

権限、オープン オーダー、ターゲット オーダー、ボールト、およびすべてのマーケット アカウントが削除されます。`param` 列挙型は番号が付け直され、トリミングされます：

| パラメーター        | 古い値 | 新しい値  |
| ------------- | --- | ----- |
| `Status`      | 0   | 0     |
| `State`       | 1   | 1     |
| `Fees`        | 9   | **2** |
| `SetOpenTime` | 11  | **3** |

すべてのオーダーブック グリッド パラメーター（`OrderNum`、`Depth`、`AmountWave`、`MinPriceMultiplier`、`MaxPriceMultiplier`、`MinSize`、`VolMaxCutRatio`、`InitOrderDepth`、`SetSwitchTime`、`ClearOpenTime`、`Seperate`）および `AmmOwner`、`LastOrderDistance`、`UpdateOpenOrder` が削除されます。`SetParamsInstruction` 構造体は `new_pubkey` と `last_order_distance` を削除します。

### 呼び出し不可（実行時にリバート、ビルダー削除）

| 命令                  | タグ | 置き換え                 |
| ------------------- | -- | -------------------- |
| `Initialize`        | 0  | `Initialize2`        |
| `MonitorStep`       | 2  | なし（オーダーブック クランク、廃止）  |
| `MigrateToOpenBook` | 5  | なし                   |
| `WithdrawSrm`       | 8  | なし（SRM フィー割引、廃止）     |
| `PreInitialize`     | 10 | `Initialize2`        |
| `SimulateInfo`      | 12 | オフチェーン / SDK クォーティング |
| `AdminCancelOrders` | 13 | なし                   |

## リザーブ / 状態の変更

* **プール資産フォーミュラ。** 総プール資産は `ボールト残高 − 保留中 PnL（need_take_pnl）` です。OpenBook オープン オーダー項（実際には既にゼロ）は削除されます。クォーティング コードはボールト残高から直接読み取ることができます。
* **非推奨状態フィールド。** `StateData.total_pnl_pc`、`total_pnl_coin`、`orderbook_to_init_time`、`swap_coin_in_amount`、`swap_pc_out_amount`、`swap_acc_pc_fee`、`swap_pc_in_amount`、`swap_coin_out_amount`、および `swap_acc_coin_fee` はレイアウト互換性のために保持されていますが、**更新されなくなります**。`swap_*` ボリューム カウンターに依存するコンシューマーはトレード ログに切り替えるべきです。
* **`AmmInfo` 初期化。** `coin_lot_size`、`pc_lot_size`、および `min_size` は現在 `0` に初期化されます。
* **削除された依存関係と CPI。** `serum_dex` クレートは `Cargo.toml` から削除されます。すべての Serum DEX CPI（`invoke_dex_new_order_v3`、`invoke_dex_cancel_order_v2`、`invoke_dex_settle_funds`、`invoke_dex_init_open_orders`、…）は `invokers.rs` から削除されます。削除されたデータ構造体：`LastOrderDistance`、`SimulateParams`、`RunCrankData`、`GetPoolData`、`GetSwapBaseInData`、`GetSwapBaseOutData`。
