このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
2 つの異なる概念
価格インパクトとスリッページは UI では混同されることが多いですが、異なるものを指します。-
価格インパクトは、特定のプール状態に対するトレードの決定論的な特性です。
(Δin, reserves)が与えられれば、価格インパクトはトレード送信前に完全に計算可能です。 - スリッページは、クォート時に予想した価格と実行時に実際に得た価格の実現差です。これはレイテンシ、同時トランザクション、ブロック包含順序の関数であり、プール数学の関数ではありません。
正式な定義
価格インパクト
impact ≈ 2 · Δin / reserve_in。CLMM の場合:トレードが横切るティック数に依存します。現在のティック範囲内ではほぼフラットで、各ティック交差時にジャンプします。
実現スリッページ
minAmountOut と maxAmountIn のサイズ設定
すべての Raydium スワップはスリッページ保護バウンドを取ります:
SwapBaseInput(amount_in, min_amount_out)— 正確な入力、出力の下限。SwapBaseOutput(max_amount_in, amount_out)— 正確な出力、入力の上限。
minAmountOut は amountOut × (1 − slippage) であり、オンチェーンバウンドとして使用されます。priceImpact はプール状態のみから決定論的です。fee は請求される合計です。
スリッページ許容度は価格インパクト自体ではなく、価格インパクト周辺のバッファです。0.5% の許容度は「クォートより最大 0.5% 悪い状態を受け入れる」という意味です。価格インパクトが 0.01%(小さなトレード)か 2%(大きなトレード)かに関係なく。2% の価格インパクトトレードで 0.5% の許容度の場合、minAmountOut はプリトレードスポットから 2.5% 下です。本質的にインパクトと許容度の合計です。
推奨スリッページ許容度
単一の正しい数値はありません。正しいバウンドは以下に依存します:- ペアの安定性。 ステーブルコイン・ステーブルコインプールは 0.1% を安全に使用できます。ボラティルなミームペアプールは確実に着地するために 3~5% が必要なことが多いです。
- トレードサイズ。 より大きなトレードはより大きな価格インパクトを持つため、リバージョンを避けるために許容度はそれらとスケールする必要があります。SDK の自動スリッページはこの理由で
max(0.5%, 2 × price_impact)周辺でデフォルト設定されます。 - ブロック包含レイテンシ。 メモリプールに複数のブロック分留まるトランザクションは、より多くの同時トレードにさらされます。Jito バンドルと優先度フィーはこれを削減します。
AMM タイプ間の違い
CPMM
価格インパクトは滑らかで連続的です(クローズドフォーム2 · Δin / reserve_in)。スリッページ許容度はトレードサイズとともに線形にスケールします。
AMM v4
CPMM と同じ曲線数学。OpenBook 削除以降、「有効リザーブ」は単に 2 つのボルト残高です:- 生のボルト残高からクォートします。オンブック成分を追加するものはありません。
Initialize2はすべての新しいプールでAmmInfo.open_orders = Pubkey::default()を書き込み、OpenOrdersアカウントを読み込む命令はありません。 - 蓄積されたプロトコル PnL(
state_data.need_take_pnl_coin/need_take_pnl_pc)をボルト残高から差し引いて、不変量が実際に使用するリザーブを取得します。 - 事前実行するクランクはありません:
MonitorStepはunimplemented!でパニックし、送信してはいけません。
CLMM
価格インパクトは区分的です。現在のティック範囲内では、インパクトはΔin / L でほぼ線形です。ティック境界を横切ると L が離散的に変わり、限界価格が急激にジャンプします。スパースに配置されたティックをいくつか横切るトレードは、2 · Δin / reserve の経験則が示唆するよりもはるかに高いインパクトを持つことができます。
SDK の CLMM クォートはスワップステップを決定論的に反復して、正確な予想 amountOut を返すため、minAmountOut = amountOut · (1 − slippage) は正しいです。しかし、priceImpact 戻り値は「プリトレードスポットとポストトレードスポット間のスプレッド」として解釈されるべきであり、CLMM では amount_out のみを気にするユーザーのスワップの有効スリッページよりもはるかに大きくなる可能性があります。
LaunchLab 曲線
CPMM に似ていますが、非対称曲線(二次またはバーチャルリザーブ)です。卒業に向けて曲線が急になるにつれて、後期の買い手のインパクトが速く成長します。プリバイヤー UI は、買いが 1 つのトランザクションでquote_reserve_target の約 5% 以上曲線をプッシュすることが予想される場合に警告する必要があります。
MEV に関する考慮事項
Solana では、スワップに対する MEV 抽出は主にサンドイッチ攻撃の形をとります:ボットはあなたのトレード後に取引するバックラン トランザクション、および同じスロットで前に取引するフロントランを配置します。あなたのトレードはサンドイッチがない場合よりも悪い価格で約定します。バックランはその差を捕捉します。 軽減策:- タイトな
minAmountOut。 積極的なスリッページバウンドは、サンドイッチされた場合、被害者トランザクションをリバートさせ、資金を保護します(ただしガスを浪費します)。Solana ではこれは標準的な慣行です。リジェクションは安いです。 - Jito バンドル。 Jito を通じてバンドルされたチップで送信すると、仲介者があなたの tx を並べ替えることから除外されます。バンドルはアトミックブロックとして着地します。
- 優先度フィー。 高い優先度フィーは、サンドイッチャーが反応する前にあなたのトレードが現在のリーダーのブロックに着地する可能性を高めます。バンドルより堅牢性は低いですが、より標準的です。
- プライベート RPC。 プライベート RPC(またはバリデータの直接エンドポイント)を通じて送信すると、メモリプール サンドイッチャーがあなたのトランザクションを観測できるウィンドウが削減されます。
integration-guides/routing-and-mev を参照してください。
マルチホップルートのスリッページ
スワップが複数のプールを通じてルーティングされる場合(例:USDC → SOL → RAY)、スリッページ許容度はエンドツーエンドだけでなく、ホップごとに適用される必要があります:
raydium.tradeV2.swap を呼び出すときにホップごとのバウンドを自動的に適用します。(ファサードは tradeV2 です。raydium.trade は存在しません。)カスタムルータの場合、パターンを複製してください。
ユーザーへのレポート
良いスワップ UI のための経験則:- 予想価格インパクトとスリッページ許容度を両方別々に表示します。
- 価格インパクトが約 2% を超える場合は強調表示します。「高インパクト」警告。
- 価格インパクトが許容度を超える場合は強調表示します。トランザクションはほぼ確実にリバートします。
- ボラティルペアの場合、バウンドを緩和し、より強い警告を表示する「高スリッページモード」を提供します。
ポインタ
products/cpmm/math、products/amm-v4/math、products/clmm/math— プールタイプごとのインパクト導出。integration-guides/routing-and-mev— マルチホップルーティング + MEV 防御。integration-guides/priority-fee-tuning— スリッページを削減するための優先度フィーのサイズ設定。
- Raydium SDK v2 スリッページ / インパクト実装。
- Flashbots / Solana 上の Jito MEV。

