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.
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
AMM v4 は、すべての操作が OpenBook 状態に接触するため、CPMM や CLMM よりも大幅にアカウント数が多くなります。このページではアカウントを「プール所有」と「OpenBook 所有」のセクションに分けており、インテグレータは各側がどちらなのかをすぐに確認できます。
インベントリ
AMM v4 プールは、作成時に正確に 1 つの OpenBook マーケットにバインドされます。現在の全体像は以下の通りです:| カテゴリ | アカウント | オーナー | 役割 |
|---|---|---|---|
| Pool | AmmInfo | AMM v4 プログラム | プール状態:累積フィー、ステータス、ボルト・OpenBook マーケットへの参照。 |
| Pool | amm_authority | AMM v4 プログラム | ボルト移動に署名するプログラム所有 PDA。すべての AMM v4 プール全体で共有。 |
| Pool | amm_open_orders | OpenBook | このマーケット用のプールの OpenBook OpenOrders アカウント。 |
| Pool | amm_target_orders | AMM v4 プログラム | OpenBook に戻すターゲットリミットオーダーのプール側グリッド。 |
| Pool | pool_coin_token_account | SPL Token | プールのコイン側ボルト(amm_authority の ATA)。 |
| Pool | pool_pc_token_account | SPL Token | プールの pc 側ボルト。 |
| Pool | lp_mint | SPL Token | Fungible LP ミント。 |
| Pool | pool_withdraw_queue | AMM v4 プログラム | 遅延引き出しのレガシーキュー;ゼロ長で保持。 |
| Pool | pool_temp_lp | AMM v4 プログラム | Initialize 中に使用される補助 LP アカウント。 |
| Market (OpenBook) | serum_market | OpenBook | マーケット自体(ベース/クォート ミント、ボルト署名者など)。 |
| Market | serum_bids, serum_asks | OpenBook | ビッド・アスク キュー。 |
| Market | serum_event_queue | OpenBook | 保留中のイベント(約定、キャンセル)。 |
| Market | serum_coin_vault, serum_pc_vault | SPL Token | OpenBook のマーケット レベル ボルト。 |
| Market | serum_vault_signer | OpenBook | serum_*_vault 移動に署名するマーケット レベル PDA。 |
AmmInfo
プールのルート状態アカウント。プール参照と OpenBook 参照の両方をインラインで含んでいるため、大きいです(≈ 752 バイト)。
coin_vault、pc_vault— プールの SPL Token ボルト。Serum/OpenBook の慣例により、coinはtoken_0(ベース)、pcはtoken_1(クォート)です。coin_decimals、pc_decimals— ミントに合致します。open_orders、target_orders、market— すべてのスワップ/デポジット/引き出し命令に渡す必要があります。fees.swap_fee_numerator / swap_fee_denominator— 統合トレード フィー。デフォルトは25 / 10_000 = 0.25%。status— 操作をゲートするビットマスク。AdminSetStatus経由で管理者が設定可能。state_data.need_take_pnl_*— 総累積フィーとスイープされた額との差分。TakePnlがこれらをゼロにします。
OpenBook 配線
非アクティブ。 AMM v4 プールは OpenBook にリクイディティを共有しなくなりました—リミット オーダー グリッドは無効化されています。このセクションで説明されている OpenBook アカウントは、各プールの
AmmInfo に残っており、V1 スワップ エンドポイント(および Initialize、Deposit、Withdraw)で後方互換性のために検証されていますが、実際には参照されるオン ブック状態は空です。V2 スワップ エンドポイント(SwapBaseInV2 / SwapBaseOutV2)を使用してください。これらはこれらのアカウントをまったく必要としないため、今日の標準的な実行パスを表します。amm_open_orders は OpenBook 所有アカウントで、このマーケット上のプールのリミット オーダー状態を保有しています:アクティブなオーダー、決済残高、リファラーなど。amm_target_orders は AMM 側です:プログラムが現在ポストされているものと安価に比較でき、差分をプレイス/キャンセルできるように、AMM の意図されたグリッド(各オーダー スロットの価格/サイズ)を保有しています。
オーソリティ PDA
AMM v4 プログラム全体で正確に 1 つのamm_authority PDA があります。そのシード は簡単(["amm authority"])で、そのバンプはすべての AmmInfo に保存されています。このオーソリティはすべての AMM v4 プールのすべてのトークン移動に署名します。
amm_authority は実際にはこのプログラムの設計では両方をカバーしていますが、異なるバージョンは異なる導出を使用したため、コードで特定のプールの AmmInfo.nonce を確認してください)。
ボルト
プールの SPL Token ボルトは、オーナーがamm_authority である標準的なトークン アカウントです。ATA ではありません—それらのアドレスは ["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id] シードで Initialize で導出される特定の PDA です。アドレスは AmmInfo に保存されています;導出は 1 回限りの curiosity です。
Token-2022 はサポートされていません。プログラムはすべてのボルト移動に対して SPL Token のプログラム ID をハードコードしています。Token-2022 ミント に AMM v4 プールをバインドしようとすると、Initialize で失敗します。
LP ミント
オーソリティがamm_authority である classic SPL Token ミント。総供給はプール内の LP 所有権を追跡します;LP を burn するとトークンを両方のボルトから比率通りに返します。AMM v4 は CPMM より前の時代のため、プール状態には lp_supply ミラーはありません—ミントのオン チェーン供給を直接読んでください。
ステータス ビットマスク
AmmInfo.status は操作をゲートします。ビット(位置はプログラム バージョン全体で異なる場合があります—ソースで確認してください):
| ビット | フラグ | エフェクト |
|---|---|---|
| 0 | SWAP_DISABLED | Swap* が拒否します。 |
| 1 | DEPOSIT_DISABLED | Deposit が拒否します。 |
| 2 | WITHDRAW_DISABLED | Withdraw が拒否します。 |
| 3 | CLMM_LIKE_MIGRATE | ops によって使用されるマイグレーション ゲート フラグ。 |
AdminCancelOrders、AdminSetParams などで これらを設定します。
Observation / オラクル
AMM v4 には専用の observation アカウントがありません。 オン チェーン TWAP が必要な他のプロトコルは、通常は OpenBook のブック クロッシングを間接的に使用するか、オフ チェーンを読みます。プログラム サポートで Raydium TWAP が必要な場合は、CPMM または CLMM を使用してください。スクラッチからプールのアカウントを導出する
AMM v4 は決定的なペアごとの PDA 用に設計されていなかった(Solana の慣例より前)ため、標準的なamm_id は以下でシードされた keypair です:
amm_open_orders、amm_target_orders、amm_withdraw_queue、pool_temp_lp、pool_coin_token_account、pool_pc_token_account、lp_mint にも同じ seeded-key パターンが適用されます。SDK と API がこれらを事前計算しています;raydium-sdk-v2 の Liquidity.getAssociatedPoolKeys を参照してください。
実装では、インテグレータは GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> またはSDK からプールの全アカウント セットを読みます。手動導出が必要なことはほとんどありません。
ライフサイクル クイック リファレンス
| イベント | 作成されたアカウント | 破棄されたアカウント |
|---|---|---|
Initialize2 | amm_info、amm_open_orders、amm_target_orders、ボルト、lp_mint、pool_withdraw_queue、pool_temp_lp | — |
Deposit | —(ユーザー LP ATA を作成する可能性) | — |
Withdraw | — | — |
SwapBaseIn / SwapBaseOut | —(ユーザー ATA を作成する可能性) | — |
TakePnl | — | — |
MonitorStep(crank) | — | — |
AmmInfo は残ります。
どこで何を読むか
- 数学とフィー算術:
products/amm-v4/math。 - フィー分割と CPMM/CLMM との比較:
products/amm-v4/fees。 - 命令アカウント リスト:
products/amm-v4/instructions。 - OpenBook アカウント導出:OpenBook プログラム ドキュメント(
github.com/openbook-dex/program)。
- Raydium AMM プログラム —
raydium-io/raydium-amm reference/program-addresses標準的なプログラム ID の場合- OpenBook / Serum プロトコル(相手方アカウントの場合)


