Skip to content

MEV taxonomy

Maximal extractable value (MEV) is the profit that whoever controls transaction ordering in a block can capture by inserting, reordering, or censoring transactions. The main strategies are DEX arbitrage, liquidations, backrunning, sandwiching, and off-chain-to-on-chain (CEX-DEX) arbitrage; only sandwiching and frontrunning take value directly from a specific user. The 2019 “Flash Boys 2.0” paper named the problem, Paradigm’s 2020 “Dark Forest” posts made it visceral, and Flashbots (2020–2021) turned the chaotic public-mempool bidding war into a private, sealed-bid auction that later became MEV-Boost.

Imagine a stock exchange where one clerk decides the order in which the day’s orders are filled and can slip in orders of their own. If the clerk sees a huge buy order arriving, they can buy first, let your order push the price up, then sell to you at the higher price. If two markets show different prices, the clerk can buy in one and sell in the other before anyone else. Every such trick has a dollar value, and the sum of all of them is the value the clerk’s position is worth. On a blockchain the “clerk” is the block producer, and the bots that hunt for these tricks are the searchers who pay the clerk for priority.

On a blockchain, transactions wait in a public waiting room before being put in a block. Whoever builds the block chooses the order. Clever bots watch the waiting room and pay to jump ahead of, or land right behind, other people’s trades. Sometimes that is helpful (they fix prices that drifted apart between two exchanges). Sometimes it is harmful (they squeeze a trader between two of their own trades, so the trader gets a worse price). “Maximal extractable value” is the name for all the money that can be made this way. Because the block builder ultimately controls the order, most of that money ends up paid to them.

A sandwich on a constant-product pool holding 1,000 ETH and 3,000,000 USDC (spot price 3,000 USDC/ETH; fees ignored):

  1. Before: Alice broadcasts a swap of 30,000 USDC for ETH with a minimum output of 9.80 ETH. Alone, she would receive 9.901 ETH.
  2. Front-run: a searcher sees her pending transaction and buys 4.975 ETH with 15,000 USDC first. Pool becomes 995.025 ETH / 3,015,000 USDC; the price is now 3,030.
  3. Victim executes: Alice’s 30,000 USDC now buys 9.803 ETH (just above her 9.80 floor). Pool becomes 985.222 ETH / 3,045,000 USDC.
  4. Back-run: the searcher sells its 4.975 ETH back into the pool and receives 15,299 USDC. Pool ends at 990.197 ETH / 3,029,701 USDC.
  5. After: the searcher’s balance is +299 USDC (before gas and the bid paid for ordering); Alice holds 9.803 ETH instead of 9.901 ETH, a loss of 0.098 ETH (about 294 USDC). The pool’s liquidity providers are roughly unchanged; the value moved from Alice to the searcher and the block producer.
  • Myth: MEV is “miner” money. Reality: the term was coined as miner extractable value (Daian et al., 2019), but in practice most extraction is done by independent searchers who pay block producers for priority; Flashbots’ 2020 estimate was that only 18.7% of bot-extracted MEV reached miners via gas fees (as of 2020-11).
  • Myth: All MEV is theft. Reality: DEX arbitrage and liquidations are competitive services that keep prices consistent and lending protocols solvent; sandwiches and frontrunning are the toxic subset that directly harms users.
  • Myth: Private transactions eliminate MEV. Reality: they remove the public-mempool attack surface, but backrunning of on-chain state changes, CEX-DEX arbitrage, and liquidations remain; and a trusted relay or builder can still see your transaction.
  • Myth: Solana has no MEV because it has no mempool. Reality: arbitrage, liquidations, and (via Jito bundles and private mempools) sandwiches all occur; Jito’s detector found 90.4 million successful arbitrages on Solana in 2024 (as of 2025-01).

MEV is the value of controlling transaction order; who captures it, and at whose expense, depends entirely on the market structure built around the block producer.

Let SS be the pre-block state and BB an ordered list of transactions. The block producer’s revenue is R(B)=fees(B)+π(B)R(B) = \text{fees}(B) + \pi(B), where π(B)\pi(B) is the profit of any transactions the producer inserts. Daian et al. define MEV as the maximum over all orderings and insertions the producer can choose:

MEV(S)=maxBB(S)R(B)Rhonest(S)\text{MEV}(S) = \max_{B \in \mathcal{B}(S)} R(B) - R_{\text{honest}}(S)

where B(S)\mathcal{B}(S) is the set of valid blocks from SS and RhonestR_{\text{honest}} is what a “dumb” fee-sorted block would earn. Flash Boys 2.0 called the extra fees a producer can extract by reordering “ordering optimization (OO) fees”, and the combined total “miner extractable value” (Flash Boys 2.0, §I).

StrategyWho losesAtomic?Where the opportunity comes from
DEX–DEX arbitragenobody directly (LPs via stale prices)yesprice gap between two on-chain pools
Backrunnobody directlyyesa large user trade leaves a pool mispriced
Liquidationborrower (by design)yesposition falls below the liquidation threshold
Sandwich / frontrunthe targeted useryesa visible pending trade with slippage tolerance
CEX–DEX arbitrageLPs (loss-versus-rebalancing)no (one leg off-chain)on-chain price lags the centralized-exchange price
Generalized frontrunningthe original senderyesany profitable transaction copied with addresses swapped
Multi-block / time-banditchain securityn/acontrolling consecutive blocks or reorging past ones

Qin, Zhou and Gervais (2021) separate block-state MEV (visible from confirmed state: arbitrage, liquidations) from network-state MEV (requires seeing pending transactions: sandwiches, replay); only the latter disappears if you hide the mempool. McMenamin’s SoK (2023) adds intrinsic-extractable versus time-extractable value for cross-domain settings.

Before Flashbots, competing bots bid up gasPrice in the public mempool. Flash Boys 2.0 modelled this as a continuous-time, all-pay auction with two bidders and latency Δi\Delta_i; losers still pay gas for reverted transactions, which is why the authors observed a cooperative equilibrium of gradual raises rather than an immediate jump to full value (§V). The waste is visible on chain: Flashbots’ MEV-Inspect estimated that 10k of 443k blocks analysed were “wasted on inefficient MEV extraction” and that removing it could raise throughput by at least 2.4% (as of 2020-11).

For a constant-product pool with reserves xx (ETH) and yy (USDC), a victim who sells δy\delta_y USDC receives Δx=xxyy+δy\Delta x = x - \dfrac{xy}{y+\delta_y}. If the victim sets a minimum output mm, the attacker chooses the largest front-run ff such that the victim still receives m\ge m after the pool has moved to (x,y)=(xyy+f,y+f)(x', y') = \big(\tfrac{xy}{y+f},\, y+f\big). The attacker’s back-run then sells the ETH bought in the front-run at the post-victim price. Attack profit is bounded above by the victim’s slippage allowance, which is why sandwiching concentrates on high-slippage flows (memecoins on Solana; SHIB on Ethereum, per Qin et al.).

Flash Boys 2.0 showed two mechanisms: fee-based forking (a miner is paid more to extend a fork than the canonical chain) and time-bandit attacks (rewriting history to capture past MEV). Qin et al. quantified the threshold: “a rational miner with a 10% hashrate will fork Ethereum if a BEV opportunity exceeds 4x the block reward” (2101.05511, abstract). Their largest single opportunity was 4.1M USD, 616.6× the block reward (as of 2021-08).

Same pool as §2: x=1,000x = 1{,}000 ETH, y=3,000,000y = 3{,}000{,}000 USDC, k=xy=3×109k = xy = 3\times10^{9}. Alice sells 30,000 USDC with minimum output 9.80 ETH.

No attack. Δx=10003×1093,030,000=1000990.099=9.901\Delta x = 1000 - \dfrac{3\times10^9}{3{,}030{,}000} = 1000 - 990.099 = 9.901 ETH.

Front-run of 15,000 USDC. Pool → y=3,015,000y' = 3{,}015{,}000, x=3×109/3,015,000=995.025x' = 3\times10^9/3{,}015{,}000 = 995.025; attacker receives 4.9754.975 ETH.

Victim. y=3,045,000y'' = 3{,}045{,}000, x=3×109/3,045,000=985.222x'' = 3\times10^9/3{,}045{,}000 = 985.222; Alice receives 995.025985.222=9.803995.025 - 985.222 = 9.803 ETH 9.80\ge 9.80, so her transaction succeeds.

Back-run. Attacker returns 4.975 ETH: x=990.197x''' = 990.197, y=3×109/990.197=3,029,701y''' = 3\times10^9/990.197 = 3{,}029{,}701; attacker receives 3,045,0003,029,701=15,2993{,}045{,}000 - 3{,}029{,}701 = 15{,}299 USDC.

Accounting. Attacker gross profit =15,29915,000=299= 15{,}299 - 15{,}000 = 299 USDC. Alice’s shortfall =9.9019.803=0.098= 9.901 - 9.803 = 0.098 ETH 294\approx 294 USDC at the ~3,000 price. The difference of a few dollars is the pool’s fee-free path dependence. Had Alice set a 0.5% tolerance (minimum 9.85 ETH), the largest feasible front-run would shrink to roughly 7,000 USDC and the attacker’s profit to under 100 USDC; had she submitted through a private channel (see /mev/order-flow-auctions/), the front-run would have been impossible and only the backrun (≈ the arbitrage her trade created) would remain, which an orderflow auction can refund to her.

  • Flashbots MEV-Inspect / MEV-Explore — classified MEV by trace inspection; reported 0.34 ETH of MEV per block from arbitrage and liquidations (as of 2020-11) and at least $350M cumulative extracted MEV since January 2020, one third of it in February 2021 (as of 2021-03, cited in Paradigm’s “Ethereum Blockspace”). docs.flashbots.net
  • MEV-Boost / builders — the searcher → builder → relay → proposer pipeline; see /mev/pbs-and-epbs/ and /foundations/mev-supply-chain/.
  • CEX–DEX arbitrage — RIG found 157,205 CEX-DEX arbitrages in 101,022 blocks (5 May–16 July 2023), almost all top-of-block, 74.65% on Uniswap v3, one searcher (0xa69) taking 55.7% and beaverbuild landing 52.91% (as of 2023-12). ethresear.ch/17620
  • Orderflow auctions (MEV-Share, MEV Blocker) — monetize the backrun and refund the user; see /mev/order-flow-auctions/.
  • Lending liquidations — Aave, Compound, dYdX liquidation events yielded 89.18M USD to liquidators over 32 months (as of 2021-08, Qin et al.).
  • Jito bundles / block engine — atomic bundles of up to five transactions bid with tips for ordering; the main channel for arbitrage and backruns; see /mev/solana-mev/.
  • Arbitrage — Jito’s detector counted 90,445,905 successful arbitrages in 2024, average profit $1.58, largest $3.7M, $142.8M total (as of 2025-01, Helius Solana MEV Report).
  • Backruns — the 10 January 2024 WIF backrun paid an 890.42 SOL ($91,621) tip on a single bundle (as of 2024-01, Helius).
  • Sandwiches — via Jito bundles and private validator mempools: DeezNode’s “vpe” program made 65,880 SOL (≈$13.43M) from 1.55 million sandwiches in 30 days (as of 2025-01, Helius); Gerzon et al. measured 521,903 sandwiches and over $7.7M in victim losses on Jito in Feb–Jun 2025.
  • The Dark Forest rescue failure (26 August 2020). Robinson and Konstantopoulos tried to recover ~$12,000 of Uniswap LP tokens stuck in a pair contract using an obfuscated set/get contract pair. When the second transaction slipped into a later block, a generalized frontrunner copied the internal burn call and swept the funds within seconds. Root cause: any profitable call visible in the public mempool can be replayed with the caller’s address swapped (Paradigm, “Ethereum is a Dark Forest”).
  • Lien Finance rescue (September 2020). samczsun found a bug letting anyone mint and burn tokens for the ~25,000 ETH ($9.6M) in Lien’s contract. Rather than risk the mempool, the team had SparkPool ship a private-transaction endpoint (Taichi) within hours and mined four signed transactions directly, bypassing the mempool entirely (Paradigm, “Escaping the Dark Forest”, 2020-09-24). This was the template for private orderflow.
  • Generalized replay at scale. Qin et al. implemented an application-agnostic transaction-replay algorithm and estimated it would have earned 57,037.32 ETH (35.37M USD) over 32 months, showing that “generalized frontrunners” are not folklore (as of 2021-08).
  • Consensus risk. Qin et al.’s largest opportunity (4.1M USD) was 616.6× the block reward, far above the 4× threshold at which a 10%-hashrate miner rationally forks (as of 2021-08); Flashbots cited time-bandit reorgs as an “existential risk” (2020-11).
  • Solana: private mempools. After Jito suspended its public mempool (March 2024), sandwiching moved to private validator mempools; DeezNode’s validator held 811,604.73 SOL (~$168.5M) of delegated stake (as of 2025-01, Helius), and the Solana Foundation removed over 30 operators from its delegation program in June 2024 for participating in sandwiching mempools (The Block, 2024-06-10, secondary).
  • Sandwich extraction has fallen but not vanished. EigenPhi data put Ethereum sandwich profit near $24M per 30 days (as of 2024-03, via Helius, secondary) and about $2.5M/month by October 2025 (Cointelegraph/EigenPhi, secondary), as private orderflow grew to over half of Ethereum gas (Flashbots, as of 2025).
  • How much MEV is “necessary”? Qin et al. argue block-state MEV like arbitrage and liquidations is structural; the Shutter authors counter that “most of” documented MEV is harmful. The split between toxic and benign MEV remains contested and measurement-dependent (MEV-Explore’s own dashboard was criticized in 2022 for excluding sandwiches, which MEV-Inspect data put at ~37% of MEV over six months, as of 2022-03).
  • Multi-block MEV. Stichler’s analysis of 4.3M post-Merge slots found fewer consecutive-builder sequences than a random model predicts, but MEV-Boost payments rise from ~0.05 ETH for single slots to ~0.08 ETH over nine consecutive slots (as of 2024-08), leaving open whether multi-slot control is a live threat for preconfirmation and ticket designs.
  • Cross-domain measurement. McMenamin’s SoK notes that cross-domain MEV is largely invisible on chain; the estimate that CEX-DEX arbitrage dominates by revenue (Frontier Research’s “at least 60%”, as of 2023-10) relies on heuristics.
  • Whether solutions relocate rather than remove MEV. Helius’s BAM analysis warns that TEE sequencing “does not erase MEV—it relocates it” (as of 2025-07), an argument that applies to most mitigations on both chains.
AspectEthereumSolana
Visibility of pending txspublic mempool (plus growing private share)no protocol mempool; txs go straight to upcoming leaders
Dominant toxic MEV channelpublic-mempool sandwiches (declining), builder-levelJito bundles and private validator mempools
Dominant benign MEVCEX-DEX arbitrage, DEX-DEX arbitrage, liquidationsatomic DEX arbitrage, backruns, liquidations
Competition mechanismsealed-bid bundle auction → builder auction (MEV-Boost)Jito tip auction (50 ms ticks) plus priority-fee spam
Consensus riskreorg/time-bandit concerns; timing gamesleader knows its 4 slots in advance; spam and failed txs (75.7% reverted in April 2024)
Scale of measured extraction540.54M USD over 32 months to Aug 2021 (Qin et al.)$142.8M arbitrage profit in 2024 (Jito/Helius)

Ethereum’s MEV market grew up around a public mempool, so its history is one of hiding transactions (Flashbots bundles, private RPCs) and then formalizing the builder market. Solana never had a mempool, so its MEV is latency- and infrastructure-driven: searchers co-locate with high-stake validators, spam probabilistic arbitrage, and buy ordering through Jito tips; the toxic subset appeared only when Jito’s 200 ms pseudo-mempool (2022–March 2024) and later private mempools recreated pending-transaction visibility.

Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges — Philip Daian, Steven Goldfeder, Tyler Kell, Yunqi Li, Xueyuan Zhao, Iddo Bentov, Lorenz Breidenbach, Ari Juels, 2019-04-10 (IEEE S&P 2020). https://arxiv.org/abs/1904.05234

The paper opens by documenting that decentralized exchanges, promised as fair and transparent, host a growing population of arbitrage bots that “exploit inefficiencies in DEXes, paying high transaction fees and optimizing network latency to frontrun … ordinary users’ DEX trades”. Section II gives background on smart contracts, Ethereum’s gas market, and DEXes, and introduces the two bot behaviours it will measure: pure revenue opportunities (risk-free arbitrage such as buying a token cheaply on one exchange and selling it on another in one atomic transaction) and frontrunning of pending orders.

Section III describes the measurement infrastructure: modified Geth nodes at several geographic locations logging every observed mempool transaction, so that the losing bids in an auction (which never appear on chain) can be reconstructed. From this the authors observe priority gas auctions (PGAs): bots repeatedly re-issue the same transaction with a higher gas price to win block position. Section IV quantifies the economy: an oligopolistic pure-revenue market of over USD 6M cumulative at the time (as of 2019-04), with the top bots’ profits and the share of revenue they pay to miners tracked over time; PGA bids show a clear downward trend in the winner’s gas cost as strategies improved.

Section V formalizes the PGA as a continuous-time, imperfect-information game between n=2n=2 players who each observe others’ bids with latency Δi\Delta_i and raise by a minimum increment. The key modelling choices are that the auction is all-pay (losers pay gas for reverted transactions) and that bids cannot be cancelled. The authors show a cooperative equilibrium in which players grid-raise rather than bid their full valuation, and validate it against observed strategy evolution.

Section VI generalizes: PGAs are one instance of ordering optimization fees, and the miner’s ability to reorder, insert, and censor gives a broader quantity, miner extractable value (MEV). Two consensus attacks follow. In fee-based forking, OO fees exceed the block reward and pay a miner to mine on a fork instead of the head. In time-bandit attacks, high-MEV regimes make it profitable to reorg history to capture past MEV; the authors argue empirically that pure-revenue profits and PGA fees already suffice to fund such attacks on Ethereum. The paper closes by releasing frontrun.me and calling MEV a “concrete, measurable, consensus-layer security risk”.

“We observe bots engage in what we call priority gas auctions (PGAs), competitively bidding up transaction fees in order to obtain priority ordering” (Abstract)

“We introduce the notion of MEV, value that is extractable by miners directly from smart contracts as cryptocurrency profits.” (§I, contributions)

“Time-bandit attacks: We show that high-MEV regimes in general lead to a new attack in which miners rewrite blockchain history to steal funds allocated by smart contracts in the past.” (§I, contributions)

“high fees paid for priority transaction ordering poses a systemic risk to consensus-layer security.” (Abstract)

Background needed: how Ethereum gas pricing worked pre-EIP-1559 (first-price auction), what a DEX order book (EtherDelta-style) and atomic arbitrage are, and basic game theory (Nash equilibrium, all-pay auctions). On first pass read the abstract, §I, §IV (measurements), and §VI (MEV and consensus); skip the formal model in §V and the appendices. The hardest paragraph is the PGA model definition in §V-B: the difficulty is that each player’s strategy is a function of the observed bid history with latency, and the payoff includes gas for losing bids, which is what makes “raise slowly” rather than “bid true value immediately” an equilibrium.

  • 2020-08/09: Paradigm’s “Ethereum is a Dark Forest” and “Escaping the Dark Forest” popularized generalized frontrunners and private transaction channels.
  • 2020-11/2021-01: Flashbots proposed and shipped MEV-Geth, replacing PGAs with sealed-bid bundles; MEV-Explore quantified >$350M extracted since 2020 (as of 2021-03).
  • 2021-01: Qin, Zhou, Gervais (“Quantifying Blockchain Extractable Value”) extended the taxonomy to sandwiches, liquidations, and replay and measured 540.54M USD over 32 months.
  • 2021-08: EIP-1559 replaced the first-price gas auction with base fee + priority fee, changing PGA dynamics.
  • 2022-09: The Merge and MEV-Boost moved extraction into a builder auction; “miner” became “maximal” extractable value.
  • 2023–2025: cross-domain MEV (CEX-DEX) became the largest category by revenue; orderflow auctions and private RPCs moved most user flow out of the public mempool.
  1. “Ethereum is a Dark Forest” (Robinson & Konstantopoulos, 2020) — read if you want the visceral, narrative version of generalized frontrunning.
  2. “Quantifying Blockchain Extractable Value: How dark is the forest?” (Qin, Zhou, Gervais, 2021) — read if you need the numbers and formal heuristics for sandwiches, liquidations, arbitrage, and replay.
  3. “Flashbots: Frontrunning the MEV crisis” (ethresear.ch/8251, 2020) — read if you want to see how the PGA problem was translated into the bundle auction design.
  4. “SoK: Cross-Domain MEV” (McMenamin, 2023) — read if you work on rollups, bridges, or CEX-DEX flows.
  5. “Solana MEV Report” (Helius, 2025) — read if you want the same taxonomy applied to a chain without a mempool.

Ethereum is a Dark Forest — Dan Robinson, Georgios Konstantopoulos, 2020-08-28. https://www.paradigm.xyz/writing/ethereum-is-a-dark-forest

The post is a first-person account structured as “The Challenge”, “The Dark Forest”, “The Rescue”, and “The Lesson”. A Uniswap user had accidentally sent liquidity tokens to the pair contract itself; because Uniswap v2’s burn measures the contract’s own LP-token balance and pays out to whatever address the caller specifies, “they could be recovered — by anyone”. About $12,000 was at stake and had already sat unclaimed for eight hours.

“The Dark Forest” introduces the metaphor from Liu Cixin’s novel: an environment where “detection means certain death”. The mempool is worse than the chain because arbitrage bots watch pending transactions, and Phil Daian’s “generalized frontrunner” looks for any transaction it can profitably copy, replacing addresses with its own, even copying profitable internal calls found by executing the transaction’s trace.

“The Rescue” describes the obfuscation plan: deploy a Getter contract whose get() only calls burn if a flag has been set, and a Setter that flips the flag, then submit set and get in the same block so a bot simulating get alone sees a revert. Infura rejected the get transaction because it looked like it would fail; under time pressure the team let the second transaction land in a later block, and within seconds a bot executed the call and swept the funds.

“The Lesson” has four parts: monsters are real (the obfuscation did not help); don’t get sloppy (the plan would probably have worked if both transactions had landed together); don’t rely on normal infrastructure (run your own node; better, hand the transaction to a miner directly, “skipping the mempool — and the monsters — entirely”); and the future is scarier, because “Today, the frontrunners are just bots. Tomorrow, it will be miners”, who could also reorg blocks to steal MEV. The post ends by pointing at Optimism’s MEV Auction and StarkWare as attempts to redirect MEV.

“If the chain itself is a battleground, the mempool is something worse: a dark forest.” (§The Dark Forest)

“Generalized frontrunners look for any transaction that they could profitably frontrun by copying it and replacing addresses with their own.” (§The Dark Forest)

“Today, the frontrunners are just bots. Tomorrow, it will be miners.” (§The Lesson)

No background beyond knowing what a mempool and a Uniswap pair are. Read it straight through; the Solidity for Setter/Getter can be skimmed. The subtle point is why the obfuscation failed: a generalized frontrunner does not need to understand the contracts, it only needs to simulate the pending transaction (or the pair set+get) and observe that its own address could be substituted as recipient.

  • 2020-09: “Escaping the Dark Forest” showed the fix the post hinted at (a miner-run private endpoint) working for a $9.6M rescue.
  • 2021-01: Flashbots Alpha gave every searcher a private channel to miners, generalizing SparkPool’s Taichi.
  • 2022-09 onward: MEV-Boost and later private RPCs (Flashbots Protect, MEV Blocker) made private submission the default for many wallets.
  1. “Escaping the Dark Forest” (samczsun et al., 2020) — read if you want the successful sequel and the origin of private transactions.
  2. “MEV and me” (Paradigm, 2021) — read if you want the argument for why MEV should be minimized rather than merely democratized.
  3. “How mistX uses Flashbots bundles” (Paradigm, 2021) — read if you want to see the first consumer product built on bundle privacy.