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

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 reservey: 受け取る側のtoken reservek: 定積
ここでは、次の単純な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...
この例は、仕組みを切り出すために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の自動設定は、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に対して**「大きな価格差」**と表示されました。
エラー名を検索して同じ文言がない場合でも、次を確認すれば意味を追えます。
- 入力額と受取額の法定通貨換算差
- Price impactまたは価格差の警告
- minimum outputまたはminimum received
- 最大スリッページ
- token、chain、route、pool version
警告が大きいときは、まず署名せずに止めます。スリッページを上げる前に、contract address、chain、入力桁、route、liquidityを確認してください。
MEV・sandwichとslippageの関係
MEVは、blockへ入る取引の選択や順序などから抽出される価値です。DEXで問題になりやすい例がsandwichです。
- searcherが利用者のswapより先に同方向の取引を入れる
- 利用者のswapが動いた価格で実行される
- searcherが利用者の後で反対売買を試みる
最大スリッページが広いほど、不利な価格でも利用者の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、設定値、取引を推奨するものではなく、約定や損失回避を保証しません。
確認した一次情報
- Uniswap Developers: Glossary確認日: 2026/8/28
- Uniswap Developers: How Uniswap Works確認日: 2026/8/28
- Uniswap Developers: Concentrated Liquidity確認日: 2026/8/28
- Uniswap Labs: What is price impact?確認日: 2026/8/28
- Uniswap Labs: What is Slippage?確認日: 2026/8/28
- Uniswap Labs: How to change default trade options確認日: 2026/8/28
- Uniswap Labs: Why did my transaction fail?確認日: 2026/8/28
- ethereum.org: Maximal extractable value確認日: 2026/8/28
- Uniswap Web App: Ethereum swap UI確認日: 2026/8/28



