メインコンテンツへスキップ
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
Stable AMM は独立したプログラムであり、独自のプログラム ID を持ちます。AMM v4 プログラムのモードではなく、AMM v4 を通じて取引されるものではなく、別途デプロイ、アップグレード、呼び出しされます。フィーとアカウントレイアウトの規約においてのみ AMM v4 に似ています。
2026-06-22 アップグレード — 不要な OpenBook(マーケット)コードの削除。 Stable AMM は長い間 OpenBook に注文を投稿していません。オーダーブック マーケットメイキング パスは数年間休止状態にありました。このアップグレードは残されたマーケット関連のアカウントとコードを削除します — ライブ取引動作は変更されませんインテグレーターにとって 2 つの結果があります:
  1. より小さいアカウントレイアウト。 SwapBaseIn / SwapBaseOut18 → 9)、Deposit14 → 12)、Withdraw21/22 → 12)は不要な Serum/マーケット アカウントを削除します。古いレイアウトは後方互換性のため引き続き解析されます。WithdrawPnl16 → 10)は互換性パスのない厳密な破壊的変更です(管理者のみ)。
  2. ほとんどの命令が削除されました。 SwapBaseInSwapBaseOutDepositWithdrawWithdrawPnl のみが呼び出し可能です。他のすべての命令は呼び出せなくなりました。
変更ログ:reference/changelog

命令インベントリ

呼び出し可能

命令カテゴリ注記
Depositリクイディティリクイディティを追加し、LP を受け取ります。新しい 12 アカウント レイアウト。古い 14 アカウント レイアウトも互換性があります。
WithdrawリクイディティLP をバーン、両側を受け取ります。新しい 12 アカウント レイアウト。古い 21/22 アカウント レイアウトも互換性があります。
SwapBaseInスワップ正確な入力スワップ。新しい 9 アカウント レイアウト。古い 18 アカウント レイアウトも互換性があります。
SwapBaseOutスワップ正確な出力スワップ。新しい 9 アカウント レイアウト。古い 18 アカウント レイアウトも互換性があります。
WithdrawPnl管理者蓄積されたプロトコル フィーをスイープします。新しい 10 アカウント レイアウト(厳密な破壊的変更 — 古いレイアウト互換性なし)。

削除済み(呼び出し不可)

これらは 2026-06-22 アップグレードで削除され、呼び出せなくなりました。削除された命令を参照してください。
命令旧カテゴリ旧目的
Initializeライフサイクルプールを作成します。
PreInitializeライフサイクルレガシー事前割り当てヘルパー。
InitModelDataモデル設定ルックアップ テーブルを作成して初期化します。
UpdateModelDataモデル設定呼び出しごとに最大 5 つのテーブル要素を入力します。
MonitorStepクランクOpenBook フィルを決済し、注文を再投稿します。
SetParams管理者プール パラメーターを変更します。
WithdrawSrmレガシーSRM フィー割引リベートをスイープします。
SimulateInfo診断読み取り専用クォート ヘルパー。

Deposit

リクイディティを追加し、LP トークンを受け取ります。 引数
max_coin_amount: u64
max_pc_amount: u64
base_side: u64          // 0 = base on coin, 1 = base on pc
アカウント — 新しいレイアウト、12 アカウント(書き込み可能 W、署名者 S
#名前WS注記
0token_programSPL Token。
1ammWプールの AmmInfo
2amm_authorityプログラム全体の PDA。
3amm_target_ordersW
4amm_lp_mintWLP ミント。
5amm_coin_vaultWプール コイン ボールト。
6amm_pc_vaultWプール pc ボールト。
7model_data_account読み取り専用ルックアップ テーブル。
8user_source_coinWユーザーのコイン入力。
9user_source_pcWユーザーの pc 入力。
10user_dest_lpWユーザーの LP ATA。
11user_source_ownerSトランザクション署名者。
互換性: amm_open_orders(旧 #3)と serum_market(旧 #9)は削除されました。14 アカウントが渡される場合、命令は古い 14 アカウント レイアウトで解析されます。Serum アカウントは無視されます。 数学 — ルックアップ テーブルを使用した標準的なプロラタ計算で比率を計算します。SDK は目的の LP 量に対するコイン/pc ペアを計算し、最大上限に対してチェックします。

Withdraw

LP をバーン、両側をプロラタで受け取ります。 引数
amount: u64            // バーンする LP トークン
アカウント — 新しいレイアウト、12 アカウント(書き込み可能 W、署名者 S
#名前WS注記
0token_programSPL Token。
1ammWプールの AmmInfo
2amm_authorityプログラム全体の PDA。
3amm_target_ordersW
4amm_lp_mintWLP ミント。
5amm_coin_vaultWプール コイン ボールト。
6amm_pc_vaultWプール pc ボールト。
7model_data_account読み取り専用ルックアップ テーブル。
8user_source_lpWユーザーの LP ソース。
9user_dest_coinWユーザーのコイン出力。
10user_dest_pcWユーザーの pc 出力。
11user_lp_ownerSトランザクション署名者。
互換性: 9 つの Serum アカウント(amm_open_ordersserum_programserum_marketserum_coin_vaultserum_pc_vaultserum_vault_signerserum_event_qserum_bidsserum_asks)は削除されました。古い 21 または 22 アカウント レイアウトは引き続き受け入れられます。ただし、22 番目のオプション referrer_pc_wallet アカウントのリファラル フィー ロジックは削除されました — 引き続き渡すことはできますが、効果がなくなりました。 前提条件
  • user_source_lp は少なくとも amount を保有しています。
事後条件
  • amount LP トークンがバーンされます。
  • ユーザーは現在のプロラタに従ったコインと pc の量を受け取ります。蓄積されたフィーで調整されます。

SwapBaseIn

ルックアップ テーブルを使用した価格設定による正確な入力スワップ。 引数
amount_in: u64
minimum_amount_out: u64
アカウント — 新しいレイアウト、9 アカウント(書き込み可能 W、署名者 S
#名前WS注記
0spl_token programSPL Token。
1ammWプールの AmmInfo
2amm_authorityプログラム全体の PDA。
3amm_coin_vaultWプール コイン ボールト。
4amm_pc_vaultWプール pc ボールト。
5model_data_account読み取り専用ルックアップ テーブル。
6user_source_tokenWユーザーの入力トークン アカウント。
7user_destination_tokenWユーザーの出力トークン アカウント。
8user_source_ownerSユーザー(トランザクション署名者)。
互換性: 9 つの OpenBook アカウント(amm_open_ordersserum_programserum_marketserum_bidsserum_asksserum_event_queueserum_coin_vaultserum_pc_vaultserum_vault_signer)は削除されました。渡されるアカウント数が 9 でない 場合、命令は古い 18 アカウント レイアウトで解析されます。Serum アカウントは引き続きそれらの位置を占める必要がありますが、その内容は検証または使用されなくなります。 前提条件
  • amm.status はスワップを許可します。
  • user_source_tokenamount_in 以上を保有しています。
事後条件
  • ユーザーは amount_in を失い、amount_out ≥ minimum_amount_out を獲得します。
  • プール フィーは need_take_pnl_* カウンターをインクリメントします。
数学products/stable/math で説明されているルックアップ テーブル補間。

SwapBaseOut

正確な出力スワップ(SwapBaseIn の逆)。同じ 9 アカウント レイアウト、異なる数学方向。 引数
max_amount_in: u64
amount_out: u64

WithdrawPnl

管理者のみ。need_take_pnl_* から蓄積されたプロトコル フィーを指定された PnL アカウントにスイープします。
厳密な破壊的変更 — 互換性パスなし。 この命令には古いレイアウトの解析がありません。古いレイアウトを送信すると、アカウント位置のずれにより InvalidTokenCoin などの検証エラーで失敗します(旧 #3 は open_orders でした)。WithdrawPnl を呼び出す管理者ツールは新しい 10 アカウント レイアウトに更新する必要があります
引数 — なし(状態駆動)。 アカウント — 新しいレイアウト、固定 10 アカウント、管理者のみ(書き込み可能 W、署名者 S
#名前WS注記
0spl_token programSPL Token。
1ammWプールの AmmInfo
2amm_authorityプログラム全体の PDA。
3amm_coin_vaultWプール コイン ボールト。
4amm_pc_vaultWプール pc ボールト。
5amm_target_ordersW
6model_dataルックアップ テーブル。
7user_coinW管理者のコイン アカウント(フィーを受け取ります)。
8user_pcW管理者の pc アカウント(フィーを受け取ります)。
9amm_adminSプール管理者(署名者)。
ロジック変更: プールの利用可能な資金が蓄積された PnL を引き出すのに不十分な場合、プールはもはや CancelAllOrdersState / Disabled に置かれません。命令は直接 TakePnlError を返します。オプションの referrer_pc_wallet も削除されました。 前提条件
  • amm_admin は認可されている必要があります。
事後条件
  • need_take_pnl_coinneed_take_pnl_pc は管理者のアカウントに転送されます。
  • カウンターはゼロにリセットされます。

削除された命令

以下の命令は 2026-06-22 アップグレードで削除され、呼び出せなくなりました。これらは、インテグレーターが履歴トランザクションと SDK でそれらを認識できるようにするためにのみ、ここで文書化されています。
  • Initialize — 以前は新しい Stable AMM プールをブートストラップしました。削除されました。
  • PreInitialize — レガシー事前割り当てヘルパー。削除されました。
  • InitModelData — 以前は ModelDataInfo ルックアップ テーブルを作成して初期化しました。削除されました。
  • UpdateModelData — 以前は呼び出しごとに最大 5 つのルックアップ テーブル要素を入力しました。削除されました。
  • MonitorStep — フィルを決済し、注文グリッドを再投稿した OpenBook クランク。プールが OpenBook への投稿を停止した後、既に長い間休止状態でした。削除されました。
  • SetParams — 管理者パラメーター変更(ステータス、フィー、所有者、モデル データ キーなど)。削除されました。
  • WithdrawSrm — 初期の Serum 時代のプールから SRM フィー割引リベートをスイープしました。削除されました。
  • SimulateInfo — 読み取り専用クォート ヘルパー。削除されました。SDK のオフチェーン安定曲線ヘルパーを使用してクォートしてください(コード デモを参照)。

次のステップ

  • アカウント — アカウント フィールド レイアウトとサイズについて。
  • 数学 — ルックアップ テーブル補間ロジックについて。
  • コード デモ — SDK からこれらを呼び出す方法を確認します。
ソース:
  • raydium-stable/program/src/instruction.rs(列挙型と pack/unpack)
  • raydium-stable/program/src/processor.rs(実行ロジック)