3MIKAN
DeFi

Price impactとslippageの違い|DEXエラー・MEVを安全に確認

DEXのPrice impactとslippageを混同せず、x*y=kの数値例、集中流動性、最大スリッページ、MEV・sandwich、現行Uniswap画面から安全な確認順を解説します。

Price impact、slippage、MEVを扱う記事画像

Price impactは、注文の大きさが流動性に対してどれくらい価格を動かすかです。**slippage(スリッページ)**は、見積もりから実行までに価格が変わり、最終結果がずれることです。

似た数字に見えますが、原因も確認するタイミングも違います。ここを混同すると、「Price impactが高いから最大スリッページを上げる」という危険な対処になりがちです。

この記事では、v2型AMMの小さな数値例、v3・v4の集中流動性、現行Uniswap Webの設定と警告、MEV・sandwichの順に確認します。実機画面は2026年8月28日、Ethereum、日本語UI、ウォレット未接続で撮影し、署名や取引は行っていません。

Price impact・slippage・MEVの違い

まずは、3つを分けます。

用語 何を表すか 主な原因 いつ確認するか
Price impact 注文によってmid-priceと平均約定価格に生じる差 注文量、active liquidity、route、fee 署名前のquote
execution slippage quoteと実際の約定結果の追加差 待ち時間中の価格変動、他の取引、MEV quoteとminimum output、実行後
最大スリッページ quoteからどこまで不利な変化を許すか 利用者またはUIの設定 署名前の設定・確認画面
MEV block内の取引順などから抽出される価値 mempool、ordering、routeの仕組み 送信経路と保護機能

Uniswapの用語集では、slippageを「期待価格と実行価格の総差」と広く定義し、Price impactを含む場合があると説明しています。一方、操作画面を確認するときは、quoteの時点ですでに見える注文影響と、送信後に増える差を分けると原因を追いやすくなります。

最大スリッページは手数料ではありません。1%に設定したから必ず1%失うわけではなく、結果が条件を下回ったときに実行を止める境界です。

v2型のx*y=kでPrice impactを計算する

Uniswap v2型の定積AMMでは、手数料をいったん除くと、2つのreserveが次の関係を保ちます。

x * y = k
  • x: 売る側のtoken reserve
  • y: 受け取る側のtoken reserve
  • k: 定積

ここでは、次の単純なpoolを考えます。

100 ETH
200,000 USDC
mid-price = 2,000 USDC / ETH
k = 20,000,000

このpoolへ10 ETHを入れるとします。手数料を無視した新しいUSDC reserveは次の通りです。

20,000,000 / (100 + 10) = 181,818.18 USDC

受け取れるUSDCと平均約定価格は次のようになります。

amount out = 200,000 - 181,818.18
           = 18,181.82 USDC

execution price = 18,181.82 / 10
                = 1,818.18 USDC / ETH

見積もり前の2,000 USDCと比べると、Price impactは約9.09%です。

1 - 1,818.18 / 2,000 = 0.0909...

定積型AMMで10 ETHを売ると平均約定価格が動く数値例

この例は、仕組みを切り出すためにpool fee、複数poolへの分割、gas、外部市場の価格変動を省略しています。数値はexamples/amm-price-impact.mjsで再計算できます。

実際のUniswap Webは、eligibleな場合のUniswapXと、v2・v3・v4のliquidityを含めてrouteを探します。そのため、画面のquoteを一つのv2 poolだけで再現できるとは限りません。

最大スリッページは約定条件の下限

先ほどのquoteが18,181.82 USDCだったとします。最大スリッページを1%にすると、最低受取量は18,000 USDCです。

minimum output = 18,181.82 * (1 - 0.01)
               = 18,000.00 USDC

実行時の計算結果が18,000 USDC以上なら条件内、18,000 USDC未満なら条件外です。条件外でtransactionがrevertした場合でも、実行に使われたnetwork costが戻らないことがあります。

つまり、最大スリッページを上げると「Price impactが消える」のではありません。より不利な実行結果まで受け入れられるようになるだけです。

Uniswap WebのETHからUSDCへの見積もり画面で、最大スリッページが自動0.25パーセントと表示された設定パネル
2026年8月28日のUniswap Web。自動0.25%は、この時点・このquoteでの観測値であり、固定の既定値や推奨値ではありません。

Uniswapの自動設定は、quoteやsimulationに応じて値が変わります。古い記事にある0.5%や1%をそのまま入力するのではなく、現在の画面でminimum outputとrouteを確認してください。

v3・v4ではactive liquidityを見る

v2型では0から無限大までのフルレンジを前提にreserve全体を考えます。Uniswap v3・v4の集中流動性では、LPが価格rangeを選び、その時点の価格を含むpositionだけがactiveになります。

価格がtickを跨ぐと、swapに使えるpositionが切り替わります。したがって、同じtoken pairで総TVLが大きく見えても、現在価格付近のactive liquidity、fee tier、routeによってPrice impactは変わります。

フルレンジと集中流動性で取引時に使える流動性が異なる図

「pool全体の何%をswapするか」だけでv3・v4のPrice impactを断定できません。現在のquote、route、pool、active rangeを合わせて見ます。

LP側の価格range、資産構成、インパーマネントロスを確認したい場合は、インパーマネントロスのAMM式と集中流動性で分けて解説しています。

現行UIでは警告文が変わることがある

2021年頃のUIではPrice impact too highという文言がよく使われていました。2026年8月28日に確認したUniswap Webの日本語UIでは、極端なquoteに対して**「大きな価格差」**と表示されました。

Uniswap Webの極端なETHからUSDCへの見積もりで、大きな価格差51.50パーセントと警告された画面
警告表示を確認するため100,000 ETHという極端な入力を使った未接続quote。取引・署名・送信は行っておらず、この数量やrouteを推奨するものではありません。

エラー名を検索して同じ文言がない場合でも、次を確認すれば意味を追えます。

  1. 入力額と受取額の法定通貨換算差
  2. Price impactまたは価格差の警告
  3. minimum outputまたはminimum received
  4. 最大スリッページ
  5. token、chain、route、pool version

警告が大きいときは、まず署名せずに止めます。スリッページを上げる前に、contract address、chain、入力桁、route、liquidityを確認してください。

MEV・sandwichとslippageの関係

MEVは、blockへ入る取引の選択や順序などから抽出される価値です。DEXで問題になりやすい例がsandwichです。

  1. searcherが利用者のswapより先に同方向の取引を入れる
  2. 利用者のswapが動いた価格で実行される
  3. searcherが利用者の後で反対売買を試みる

sandwich取引と最大スリッページの関係

最大スリッページが広いほど、不利な価格でも利用者のswapが条件内に残る余地は広がります。ただし、スリッページ設定だけでsandwichが必ず起きるわけではありません。 注文規模、liquidity、価格変動、送信経路、保護routeの有無も関係します。

また、すべてのswapが同じ方法で公開mempoolへ送られるとは限りません。現在のUniswap WebはrouteによってUniswapXなどを使う場合があります。利用するDEXやwalletにMEV protection、private route、intent-based executionの表示がある場合は、その説明と適用条件を確認してください。

DEXの見積もり・エラーを安全に確認する順番

「通らないから設定を上げる」前に、次の順番で切り分けます。

1. tokenとchainを確認する

token symbolだけで判断せず、公式情報にあるcontract addressと一致するか確認します。同じsymbolの別token、別chain、wrapped tokenの取り違えがあると、liquidityもquoteも別物です。

2. 入力額・受取額・価格差を見る

桁、decimals、法定通貨換算、Price impactまたは価格差を見ます。ここですでに大きく不利なら、最大スリッページを変えてもquote自体の悪さは直りません。

3. routeとactive liquidityを確認する

同じpairでもpool version、fee tier、途中token、active liquidityが違います。UIがrouteを分割する場合もあります。特定versionへ固定する前に、default routeのquoteと比較します。

4. 数量を下げたquoteと比較する

注文を小さくしたときにPrice impactが大きく下がるなら、注文量に対してliquidityが浅い可能性があります。ただし、小分けにすれば必ず総コストが下がるわけではありません。network cost、繰り返す間の価格変動、各swapのfeeも含めて比較します。

5. 最大スリッページとminimum outputを確認する

自動値または現在値を基準に、最悪条件で何tokenを受け取るか確認します。失敗回避だけを目的に許容幅を上げ続けないでください。

6. 送信経路とMEV保護を確認する

保護機能がある場合も、名称だけで安全を保証しません。どのchain、route、注文形式で有効かを公式説明で確認します。

7. 不明なtoken仕様をslippageで解決しない

transfer fee、売却制限、rebasing、reflection、contractの不具合や悪意が原因の場合、slippageを上げても安全にはなりません。知らないサイトへwalletを接続したり、追加承認を繰り返したりせず、verified contractと公式資料を確認します。

contract、calldata、event logsを読む場合はABI・function selector・event logsの確認方法、transactionの失敗理由をreceiptから追う場合はreceipt・revert・nonceのデバッグ手順を参照してください。

症状別チェック表

症状 最初に確認するもの やらないこと
quote時点でPrice impact・価格差が大きい 入力桁、token、chain、route、active liquidity slippageだけを上げる
quoteが出ない・liquidity不足 contract address、chain、pool、対応token 別tokenをsymbolだけで選ぶ
minimum received条件で失敗 新しいquote、最大スリッページ、deadline、価格変動 失敗のたびに許容幅を広げる
売却だけ失敗する token contract、transfer fee、制限、router対応 「税tokenだから」と根拠なく断定する
transactionがpending explorerのstatus、nonce、network、replacement 同じnonceを理解せず連続送信する
50%など極端な損失警告 署名前に停止し、contractとrouteを再確認 Swap anywayを機械的に選ぶ

pending、dropped、replacedの判定はnonce・replacement・statusの確認フローで扱っています。

よくある質問

Price impactが高いとき、slippageを上げればswapできますか?

実行できる場合はありますが、安全な解決ではありません。Price impactはquoteへすでに含まれる注文影響で、最大スリッページはそのquoteからさらに許す変化です。まず数量、route、token、active liquidityを見直します。

1%のslippageなら必ず1%損しますか?

いいえ。1%は許容境界です。quote通りに実行されれば追加差は小さくなります。一方、条件内なら1%近く不利な結果でも実行されうるため、minimum outputをtoken数量で確認します。

注文を小分けにすれば必ず得ですか?

必ずではありません。1回ごとのPrice impactが下がっても、複数回のnetwork cost、fee、途中の価格変動が増えます。分割前後の総受取額と総費用をquoteで比べます。

高いslippageは必ずsandwichを招きますか?

必ずではありません。ただし、不利な価格でも成立する幅が広がるため、注文規模や公開経路などの条件が揃うとsandwichの余地を広げます。必要以上に広げず、MEV保護routeの適用条件も確認します。

Price impact too highが表示されません

UIの文言が変わっている可能性があります。Price impact、price difference、minimum received、rate warningなど、quoteと市場価格の差を示す項目を確認してください。文言より、入力額・受取額・割合・routeを見ることが大切です。

まとめ

  • Price impactは、注文自身がliquidityに対して価格を動かす幅
  • execution slippageは、quoteから実行までに増える差
  • 最大スリッページは損失額ではなく、実行を許す境界
  • v3・v4では総TVLだけでなくactive liquidityとrouteを見る
  • 高い許容幅はsandwichの余地を広げうるが、単独の発生原因ではない
  • 警告時は署名前に止まり、token、chain、数量、route、minimum outputを確認する

この記事の数値は仕組みを検算する例です。特定のtoken、DEX、設定値、取引を推奨するものではなく、約定や損失回避を保証しません。

確認した一次情報