Skip to main content
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
2026-07 アップグレード以降、AMM v4 の OpenBook / Serum 依存関係は 削除されました — 命令がもう OpenBook の状態を読み書きすることはありません。以下のマーケット アカウントは、レガシー v1 命令レイアウト上の位置プレースホルダーとして(受け入れられるが無視される)、および AmmInfo の参照フィールドとしてのみ保持されます。V2 スワップ エントリポイントを使用してください。これらのアカウントを完全に省略します。このページは、古いトランザクションを読むために、アカウントを「プール所有」と「OpenBook(レガシー)」セクションにグループ化しています。

インベントリ

AMM v4 プールは作成時に 1 つのバインドされたマーケットを AmmInfo に記録します。全体像は以下の通りです: 注:「serum」プレフィックスは、後方互換性のため AMM v4 の IDL とフィールド名に保持されています。これらのアカウントは OpenBook 削除後、もう機能していません。

AmmInfo

プールのルート状態アカウント。プールと OpenBook 参照の両方をインラインで保持するため、大きい(≈ 752 バイト)です。
構造体の レイアウトは変更されていません(バイト互換)ため、既存のデシリアライザーは動作し続けますが、OpenBook 削除後、上記の DEPRECATED とマークされたフィールドは もう書き込まれませんswap_* ボリューム カウンターは最後の値で凍結されます。ボリューム分析には、これらのフィールドではなくトレード ログを使用してください。need_take_pnl_*pool_open_time のみがアクティブに保持されます。
インテグレーター向けフィールド:
  • coin_vaultpc_vault — プールの SPL Token ボルト。coin は Serum/OpenBook 規約により token_0(ベース)、pctoken_1(クォート)です。
  • coin_decimalspc_decimals — ミントに対応します。
  • open_orderstarget_ordersmarket — レガシー参照フィールド。AmmInfo に存在し、v1 命令レイアウトで位置的に渡されますが、プログラムはもう読み取りまたは検証しません。V2 スワップ エントリポイントはこれらを省略します。
  • fees.swap_fee_numerator / swap_fee_denominator — 合計トレード フィー。デフォルト 25 / 10_000 = 0.25%
  • status — 操作をゲートするビットマスク。AdminSetStatus 経由で管理者が設定可能です。
  • state_data.need_take_pnl_* — 蓄積された総フィーと掃引されたもの間のデルタ。TakePnl はこれらをゼロにします。

OpenBook 配線

削除されました。 OpenBook / Serum 依存関係はプログラムから削除されました(2026-07 アップグレード)。このセクションで説明されているアカウントはもう検証または使用されません。AmmInfo の参照フィールドおよびレガシー v1 命令レイアウトの位置プレースホルダーとして残ります。V2 スワップ エントリポイントSwapBaseInV2 / SwapBaseOutV2)を使用してください。これらのアカウントを完全にスキップします。
レガシー v1 SwapBaseIn / SwapBaseOutDeposit、または Withdraw 命令を呼び出すとき、アカウント は古いレイアウトと一致する必要があります(マーケット アカウントは歴史的位置を占めます)が、その 内容はもう確認されません — CPI は発行されません。新しいコードは V2 スワップ バリアントを使用する必要があります。これらはこれらのアカウントをまったく取りません。
AMM の amm_open_orders は OpenBook 所有のアカウント。このマーケット上のプールのリミット オーダー状態を保持します:アクティブなオーダー、決済残高、リファラーなど。amm_target_orders は AMM 側:プログラムが現在ポストされているものと安価に比較でき、差分をプレイス / キャンセルできるように、AMM の 意図された グリッド(各オーダー スロットの価格/サイズ)を保持します。

オーソリティ PDA

AMM v4 プログラム全体に対して、正確に 1 つの amm_authority PDA があります。そのシードは単純です(["amm authority"])。そのバンプはすべての AmmInfo に保存されます。このオーソリティはすべての AMM v4 プールのすべてのトークン移動に署名します。
OpenBook 操作に署名するために、プールごとに導出される別の プール スコープ オーソリティがあります(amm_authority 上記は実際にこのプログラムの設計ではその両方をカバーします。異なるバージョンは異なる導出を使用したため、コード内の特定のプールの AmmInfo.nonce を確認してください)。

ボルト

プールの SPL Token ボルトは、owneramm_authority である標準的なトークン アカウントです。ATA ではありません — それらのアドレスは Initialize["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id] シードで導出される特定の PDA です。アドレスは AmmInfo に保存されます。導出は 1 回限りの好奇心です。 Token-2022 は サポートされていません。プログラムはすべてのボルト移動に対して SPL Token のプログラム ID をハードコードします。AMM v4 プールを Token-2022 ミントにバインドしようとすると、Initialize で失敗します。

LP ミント

オーソリティが amm_authority である古典的な SPL Token ミント。総供給はプールの LP 所有権を追跡します。LP を焼却すると、両方のボルトからトークンが比例的に返されます。AMM v4 は CPMM より前のため、プール状態に lp_supply ミラーはありません — ミントのオンチェーン供給を直接読み取ってください。

ステータス ビットマスク

AmmInfo.status は操作をゲートします。ビット(位置はプログラム バージョン間で異なる可能性があります — ソースで確認してください): Raydium マルチシグは SetParamsparam = Status で)経由でこれらを設定します。(AdminCancelOrders は削除されました。)

オブザベーション / オラクル

AMM v4 には専用のオブザベーション アカウントがありません。 オンチェーン TWAP が必要な他のプロトコルは、通常 OpenBook のブック クロッシングを間接的に消費するか、オフチェーンを読み取ります。Raydium TWAP とプログラム サポートが必要な場合は、CPMM または CLMM を使用してください。

スクラッチからプールのアカウントを導出する

AMM v4 は決定論的なペアごと PDA 用に設計されていません(Solana 規約より前)。正規の amm_idシード キーペア です。以下で導出されます:
同じシード キー パターンは amm_open_ordersamm_target_ordersamm_withdraw_queuepool_temp_lppool_coin_token_accountpool_pc_token_account、および lp_mint に適用されます。SDK と API はこれらを事前計算します。raydium-sdk-v2Liquidity.getAssociatedPoolKeys を参照してください。 実際には、インテグレーターは GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> または SDK からプールの完全なアカウント セットを読み取ります。手動導出はめったに必要ありません。

ライフサイクル クイック リファレンス

プールとそのアカウントは無期限に存続します。流動性が完全に引き出されても、AmmInfo は残ります。

どこで何を読むか

ソース: