Skip to main content
Start your own AI-powered blog — freeGet started →

MEV Extraction Strategies: Sandwich, Arbitrage, Liquidations

MEV Extraction Strategies: Sandwich, Arbitrage, Liquidations
Photo by www.kaboompics.com on pexels

MEV Extraction Strategies: Sandwich, Arbitrage, Liquidations

Close-up of a healthcare professional drawing blood with a syringe in a clinical setting. Photo by www.kaboompics.com on Pexels

Quick Answer: MEV (Maximal Extractable Value) extraction in 2026 is dominated by three core strategies: (1) DEX Arbitrage — ~45% of all MEV, profit from price differences across AMM pools; (2) Liquidations — ~30% of MEV on lending protocols, claim liquidation bonuses; (3) Sandwich Attacks — ~20% of MEV, front-run and back-run user trades to extract slippage. The remaining ~5% comes from JIT liquidity, backrunning, and time-bandit attacks. Total MEV extracted across all chains in 2026: ~$2.5B/year on Ethereum, ~$800M on Solana, ~$300M on L2s. The searcher landscape has professionalized: top 10 searchers capture ~40% of all MEV, deploying sophisticated algorithms and custom low-latency infrastructure. PBS (Proposer-Builder Separation) has reduced but not eliminated MEV — it has redistributed it from miners/validators to block builders and searchers.

MEV Landscape 2026: By the Numbers

Total MEV Extracted (Annual, All Chains)

Chain202420252026 (est.)Trend
Ethereum$1.8B$2.2B$2.5B↑ Growing
Solana$400M$600M$800M↑↑ Fast growing
Arbitrum$80M$120M$150M↑ Growing
Optimism$40M$60M$75M↑ Growing
Base$30M$55M$75M↑↑ New MEV market
BSC$200M$250M$280M→ Stable

MEV Distribution by Strategy (Ethereum, 2026)

code
DEX Arbitrage:      45%  ────────────────────────────── $1.125B
Liquidations:       30%  ───────────────────── $750M
Sandwich Attacks:   20%  ────────────── $500M
JIT Liquidity:      3%   ──── $75M
Other (backrunning, 2%  ── $50M
time-bandit, etc.)

Who Gets the MEV?

code
Pre-PBS (2022):        Post-PBS (2026):
  Miners: 80%            Block Builders: 45%
  Searchers: 15%        Searchers: 30%
  Users (loss): -5%     Validators: 20%
                         Users (loss): -5%
                          Protocol treasuries: 5% (via MEV burn)

Key change: PBS redistributed MEV from validators to builders.
             Searchers still compete, but builders capture the spread.

Strategy 1: DEX Arbitrage

How It Works

The most basic and most profitable MEV strategy. Exploit price discrepancies between different AMM pools.

code
Arbitrage opportunity:
  Pool A (Uniswap V3): 1 ETH = 3,200 USDC
  Pool B (Curve):      1 ETH = 3,215 USDC

  Profit: 15 USDC per ETH arbitraged

  Arbitrage bot:
  1. Buy ETH on Pool A for 3,200 USDC
  2. Sell ETH on Pool B for 3,215 USDC
  3. Profit: 15 USDC (minus gas: ~$2-5)

  Net: ~$10-13 per arbitrage

Advanced Arbitrage: Multi-Pool and Multi-Hop

Modern arbitrage bots don't just trade between 2 pools — they find the optimal path across multiple pools:

code
Example: ETH → USDC → DAI → ETH
  Uniswap V3 (ETH/USDC): 1 ETH = 3,200 USDC
  Sushiswap (USDC/DAI):  1 USDC = 0.98 DAI
  Balancer (DAI/ETH):    1 DAI = 0.00031 ETH

  Net: 1 ETH → 3,200 USDC → 3,136 DAI → 0.972 ETH
  Profit: 0.028 ETH (~$90) minus gas (~$30)
  Net profit: ~$60

Arbitrage Detection

solidity
// On-chain example of an arbitrage transaction
// Tx: 0xabcd... on block 19,500,000

// 1. Flash loan 5,000 ETH from Aave
// 2. Swap on Uniswap V3: 5,000 ETH → 16,000,000 USDC
// 3. Swap on Curve: 16,000,000 USDC → 5,050 ETH
// 4. Repay flash loan: 5,000 ETH + 0.1 ETH fee
// 5. Profit: 49.9 ETH (~$160K)

// Gas used: 350,000
// Gas price: 50 gwei
// Gas cost: 0.0175 ETH ($56)
// Net profit: $159,944

Searcher Competition

FactorImpact on Profit2026 Data
Number of searchersMore searchers = thinner margins~500 active on Ethereum
Gas price auctionsBids drive costs up to near-profitAvg bid: 60% of profit
Bundle competitionFirst to submit winsWinning time: ~200ms
Flashbots vs publicPrivate = higher win rateFlashbots: 80% of bundles

Monthly Revenue for an Average Arbitrage Searcher

TierMonthly Arbitrage ProfitHardware CostNet
Retail (1 searcher, basic setup)$2K-$8K$100 (VPS)$1.9K-$7.9K
Mid-tier (3 searchers, optimized)$15K-$50K$2K (dedicated server)$13K-$48K
Elite (custom algorithms, low latency)$200K-$1M+$50K (colo + custom hardware)$150K-$950K+

Strategy 2: Liquidations

How Liquidations Work

When a borrower's health factor drops below 1, anyone can liquidate them and claim a bonus.

code
Lending protocol (Aave):

Borrower deposits 100 ETH as collateral ($320K)
Borrows 75 ETH ($240K) → Health factor: 1.33

ETH price drops 25% → Collateral now worth $240K
Loan is $240K → Health factor: 1.0

Anyone can liquidate:
  1. Repay $48K of the loan (20% of debt)
  2. Receive $48K worth of collateral + liquidation bonus
  3. Bonus: 5-10% on Aave = $2,400-$4,800 profit

Liquidation Strategies

StrategyDescriptionTypical Profit
Direct liquidationLiquidate when health factor < 15-10% bonus on liquidated amount
Oracle-frontrunLiquidate before price oracle updates5-10% bonus (first mover advantage)
Gas warBid gas high to get priority inclusionVariable (winner takes all)
Flash loanUse flash loan for large-scale liquidationHigher scale = higher absolute profit

Liquidation Bots: How They Win

python
# Simplified liquidation bot logic
def monitor_positions():
    while True:
        # Scan all lending protocols for positions near liquidation
        for protocol in ["aave", "compound", "morpho", "spark"]:
            positions = protocol.get_risky_positions(health_factor < 1.05)

            for position in positions:
                if position.health_factor < 1.0:
                    # Calculate profitability
                    gas_cost = estimate_gas(protocol)
                    bonus = position.debt * protocol.liquidation_bonus
                    profit = bonus - gas_cost

                    if profit > 0:
                        # Submit liquidation bundle
                        send_bundle_to_builders(
                            txs=[protocol.liquidate(position)],
                            tip=profit * 0.3,  # Bid 30% of profit to builder
                        )

Liquidation Competition

code
The liquidation market is EXTREMELY competitive:

Ethereum: ~200 professional liquidation bots
  - Top 10 bots capture 70% of all liquidations
  - Average time to liquidate after price change: 3-5 seconds
  - Profit per liquidation: $500-$50,000 (depends on loan size)

Solana: ~50 liquidation bots
  - Faster execution (400ms block time)
  - Higher competition due to no mempool
  - Profit per liquidation: $100-$10,000

Key advantage: Low-latency oracle price feeds
  - Chainlink price updates are the trigger
  - First bot to detect new price and submit wins
  - Latency matters: 100ms = 20% lower win rate

Strategy 3: Sandwich Attacks

Anatomy of a Sandwich

code
User transaction: Swap 10 ETH for USDC on Uniswap

Sandwich attack:

1. FRONT-RUN: Attacker swaps 5 ETH for USDC
   → Price moves: 1 ETH = 3,2003,180 USDC

2. VICTIM: User's swap executes at worse price
   → User gets 31,800 USDC instead of 32,000
   → User loses: 200 USDC (0.6% slippage)

3. BACK-RUN: Attacker sells USDC back for ETH at better price
   → Price recovers after user's trade
   → Attacker profits: ~180 USDC (minus gas)

Attacker profit: ~$180 on a single sandwich
Gas cost: ~$30 (high priority gas)
Net profit: ~$150

Sandwich Profitability by DEX

DEXAMM TypeAvg Sandwich ProfitSandwich Frequency
Uniswap V2Constant product$50-$500Very high
Uniswap V3Concentrated liquidity$100-$2,000High (but harder)
CurveStable swap$20-$100Low (stable pairs)
BalancerWeighted pools$100-$1,000Medium

Why Sandwiches Are Controversial

code
Arguments FOR sandwiches:
  - They're "tax" on uninformed traders
  - They provide profit to searchers who secure blocks
  - Slippage protection is the user's responsibility

Arguments AGAINST sandwiches:
  - They're extractive (not value-creating like arbitrage)
  - They harm retail users
  - They increase gas costs for everyone
  - They're the reason for MEV-Burn proposals

Sandwich Detection in the Wild

code
Etherscan transaction analysis:

Original user tx: 0xswap...
  Gas price: 20 gwei
  Slippage: 5%

Front-run tx: 0xsandwich_front...
  From: 0xMEVBot
  Gas price: 30 gwei (higher = priority)
  Same block, same pool, opposite direction

Back-run tx: 0xsandwich_back...
  From: 0xMEVBot (same address)
  Gas price: 25 gwei
  Same block, reverses the front-run

Classic signature: Same address, same block,
opposite trades around user transaction.

Top view of a sandwich with fries and sauces on a tray, showcasing fast food delight. Photo by Mahmut Zeytin on Pexels

Strategy 4: JIT Liquidity and Backrunning

JIT (Just-In-Time) Liquidity

JIT liquidity involves adding concentrated liquidity to a Uniswap V3 pool right before a large swap, earning fees on the swap, then removing liquidity immediately after.

code
1. Searcher detects large pending swap (e.g., 1,000 ETH → USDC)
2. Adds concentrated liquidity at the expected swap price range
3. Large swap executes, paying fees to the liquidity position
4. Searcher removes liquidity immediately

Profit: Fee tier × swap volume
  Fee tier: 0.01%, 0.05%, 0.30%, 1.00%
  Swap volume: 1,000 ETH ($3.2M)
  At 0.05% fee: $1,600 in fees for a single swap

Better than sandwiching:
  - Less harmful to users (no price manipulation)
  - Legitimate value-add (provides liquidity)
  - Lower risk of being front-run

Backrunning

Backrunning means executing a trade immediately after a known event:

code
Types of backrunning:
1. Post-arb: Back-run an arbitrageur's trade
   → If arbitrage corrects price, follow with a small trade

2. Oracle update backrun: Trade after oracle price update
   → Chainlink updates price → trade on the new price

3. Transaction backrun: Execute after a known trader
   → Some whales signal trades (large approvals, etc.)
   → Trade in the same direction after they move the market

PBS Architecture: How Blocks Are Built

Proposer-Builder Separation

code
Pre-PBS:
  Validator:          [Mempool] → Select txs → [Block]

Post-PBS:
                      ┌────────────────────┐
                      │  User / Searcher   │
                      │  Submit bundle     │
                      └─────────┬──────────┘
                                │
                     ┌──────────▼──────────┐
                     │   Block Builder     │
                     │  (Optimized, MEV    │
                     │   extraction engine)│
                     └──────────┬──────────┘
                                │ Block bid
                     ┌──────────▼──────────┐
                     │   Relay (e.g.,     │
                     │  Flashbots, bloxR) │
                     └──────────┬──────────┘
                                │ Best block
                     ┌──────────▼──────────┐
                     │   Validator         │
                     │  (Proposer)         │
                     │  Select best block  │
                     └─────────────────────┘

Block Builder Market (2026)

BuilderMarket ShareMEV CapturedStrategy
beaverbuild~25%Highest win rateAggressive searcher relationships
Flashbots~20%Pioneer, open sourceLargest searcher network
Titan Builder~15%HighVertical integration
Rsync Builder~12%MediumLow latency infrastructure
EigenPhi~8%MediumData-driven optimization

How Searchers Submit Bundles

python
# Using Flashbots SDK (or mev-geth)
from flashbots import flashbots

# 1. Create your bundle of transactions
bundle = [
    {"to": "0x...", "data": "0x...", "gas": 100000},
    {"to": "0x...", "data": "0x...", "gas": 50000},
]

# 2. Bundle must be valid (simulate first)
sim_result = flashbots.simulate_bundle(bundle, block_number=19500000)

if sim_result.success:
    profit = sim_result.profit

    # 3. Bundle pays builder a tip (bribe)
    tip = int(profit * 0.3)  # 30% of profit to builder
    bundle[0]["maxPriorityFeePerGas"] = tip

    # 4. Submit to builder via relay
    result = flashbots.send_bundle(
        bundle,
        target_block=19500000,
        min_timestamp=current_time,
    )

    # 5. Compete: submit to MULTIPLE builders simultaneously
    for builder in ["flashbots", "beaverbuild", "titan"]:
        flashbots.send_to_builder(builder, bundle, tip)

MEV on Solana vs Ethereum vs L2s

Key Differences

FactorEthereumSolanaL2s (Arbitrum, Optimism)
Block time12 seconds400ms0.25-1 second
MempoolPublicNo mempool (but there's a "mempool-like" pattern)Public (on L1)
MEV opportunityHigh (slow blocks, public mempool)Medium (fast blocks, no mempool)Low (fast finality, sequencer control)
Searcher speed requirementModerate (12s to react)Extreme (400ms)Low (sequencer orders txs)
Dominant strategySandwich + ArbitrageArbitrage (no sandwich due to no mempool)Arbitrage (sequencer-controlled)

Solana MEV: Different Challenges

code
Solana has no public mempool — validators see transactions immediately.

MEV on Solana:
1. Arbitrage: Same as Ethereum but faster
   - 400ms block time = must react in <100ms
   - Requires colocation with validators

2. Liquidations: Very fast
   - Oracle price changes → immediate liquidation opportunity
   - First to detect wins (no mempool = no gas war)

3. Sandwich: Much harder (no mempool)
   - But: Jito (Solana's MEV platform) enables "mempool-like" features
   - Searchers can pay validators for "priority" access
   - More difficult but still possible

Solana MEV market: Jito Labs handles ~80% of Solana MEV
  - Top searchers: pay validators directly via "tips"
  - Total MEV: ~$800M/year and growing

L2 MEV: Limited by Sequencer

code
L2s have centralized sequencers that control transaction ordering:

Arbitrum:
  - Sequencer processes txs in order received
  - MEV possible during "sequencer delay" (10 min)
  - Most MEV is cross-L2 arbitrage (Arbitrum ↔ Ethereum)

Optimism:
  - Similar to Arbitrum
  - MEV primarily from interop between OP Stack chains

Base:
  - Coinbase-operated sequencer
  - Minimal MEV (Coinbase's policy limits it)
  - Most MEV is from bridging/arbing with Ethereum

Total L2 MEV: ~$300M/year (growing as L2 TVL grows)

MEV Mitigation: What Actually Works

Protocol-Level Solutions

SolutionDescriptionEffectivenessAdopted By
CowSwapBatch auctions, settle at clearing price★★★★★ (eliminates sandwich)Cow Protocol
UniswapXDutch auctions, filler competition★★★★☆ (reduces MEV significantly)Uniswap
MEV-Burn (EIP-1559 style)Burn MEV profits★★★☆☆ (redistributes, not eliminates)Ethereum research
Flow (consensus)Shutter-style encrypted mempool★★★★☆ (prevents front-running)Gnosis
Threshold encryptionTxs encrypted until inclusion★★★★★ (theoretical ideal)Shutter, Chainlink FSS
Slink (MEV reduction)Coincidence of wants★★★☆☆Various chains

User-Level Protection

MethodHowEffectiveness
Set slippage to 0.5%Limits sandwich profit★★★★☆ (most practical)
Use MEV protection RPCFlashbots Protect, BloxRoute★★★★☆ (80%+ sandwich reduction)
Use CowSwapBatch auction = no sandwich★★★★★
Trade in private mempoolSkip public mempool entirely★★★★☆
Use limit ordersNot sandwichable★★★★★
Trade L2sLess MEV on L2s★★★☆☆ (less liquidity)

Does MEV Protection Actually Work?

code
Flashbots Protect RPC:
  - Sends txs directly to builders (not mempool)
  - 80-90% of sandwiches prevented
  - However: some builders still sandwich
  - Cost: free ($0 for basic protection)

CowSwap:
  - 100% sandwich protection (batch auctions)
  - Best price across all DEXes
  - No gas cost (solver pays)
  - Recommended for all traders >$1K

UniswapX:
  - Dutch auction protects against sandwich
  - Fillers compete = best execution
  - Partial fills possible
  - Built into Uniswap interface

Becoming a Searcher: Infrastructure Guide

Minimum Viable Searcher Setup

ComponentBudget OptionPro Option
ServerAWS c6g.xlarge ($60/mo)Dedicated bare metal ($500/mo)
NodeAlchemy/Infura ($0-50/mo)Self-hosted full node ($200/mo)
MEV relayFlashbots (free)Flashbots + beaverbuild + Titan
MonitoringBasic (homegrown)Grafana + PagerDuty
BacktestingSimple Python simulationsHistorical bundle simulation
Gas optimizationStandardCustom gas estimation ML model

Code: Basic Arbitrage Monitor

python
from web3 import Web3
import json

class ArbitrageFinder:
    def __init__(self, w3: Web3):
        self.w3 = w3
        self.pools = self._load_pools()

    def find_arbitrage(self):
        """Scan all tracked pools for arbitrage opportunities."""
        opportunities = []

        for pool_a in self.pools:
            for pool_b in self.pools:
                if pool_a.address == pool_b.address:
                    continue

                price_a = pool_a.get_price()
                price_b = pool_b.get_price()

                if price_a < price_b:
                    profit_pct = (price_b - price_a) / price_a * 100

                    if profit_pct > 0.3:  # Min 0.3% profit
                        opportunities.append({
                            "buy_pool": pool_a,
                            "sell_pool": pool_b,
                            "profit_pct": profit_pct,
                            "estimated_profit": self._estimate_profit(
                                pool_a, pool_b
                            ),
                        })

        return sorted(opportunities, key=lambda x: -x["profit_pct"])

    def build_bundle(self, opportunity, amount):
        """Build a Flashbots bundle for the arbitrage."""
        return [
            # 1. Flash loan from Aave
            self._flash_loan(amount),
            # 2. Swap on buy pool
            opportunity["buy_pool"].build_swap(amount, direction="buy"),
            # 3. Swap on sell pool
            opportunity["sell_pool"].build_swap(
                self._expected_output(opportunity), direction="sell"
            ),
            # 4. Repay flash loan
            self._repay_flash_loan(amount),
        ]

Becoming Profitable: Key Metrics

MetricRetail SearcherProfessional Searcher
Win rate (bundles accepted)5-15%40-60%
Average profit per bundle$20-$100$200-$2,000
Bundles submitted per day1,000-5,00010,000-100,000+
Latency to builder500ms<50ms
Number of strategies1-35-20+
Monthly profit$1K-$10K$50K-$500K+

Related Reads

Key Takeaways

  • Prioritize DEX arbitrage (45% of MEV) with multi-pool paths (e.g., ETH→USDC→DAI→ETH) and flash loans to maximize profit per trade—target $10–$150 net profit after gas costs, but expect thinner margins as competition grows (500+ active searchers on Ethereum).
  • For liquidations, focus on low-latency oracle feeds (Chainlink) and colocation with validators to win the 3–5 second window post-price drop—top 10 bots capture 70% of profits, with $500–$50K per liquidation depending on loan size.
  • Sandwich attacks remain profitable ($50–$2K per trade) but are high-risk due to regulatory scrutiny and user backlash—mitigate by targeting Uniswap V3 (concentrated liquidity) and using private relays like Flashbots to avoid mempool exposure.
  • Leverage PBS (Proposer-Builder Separation) by submitting bundles to multiple builders (e.g., Flashbots, beaverbuild) with 30% of profit as tips—builders capture 45% of MEV, so optimizing for their preferences (e.g., high-value bundles) is critical.
  • On Solana, arbitrage dominates MEV due to 400ms block times—require <100ms reaction times and direct validator payments via Jito (80% of Solana MEV), while L2s (Arbitrum/Optimism) offer limited MEV opportunities (sequencer-controlled ordering).
  • Use MEV protection tools like CowSwap (100% sandwich protection) or Flashbots Protect RPC (80–90% reduction) for user trades, and adopt protocol-level solutions (e.g., UniswapX Dutch auctions) to minimize extractive MEV while retaining profitability.

Frequently Asked Questions

Is MEV extraction still profitable in 2026?

Yes — total MEV across chains is ~$3.5B/year and growing. But competition is fierce. Retail searchers with basic setups still make $1K-$10K/month. Professional operations with custom hardware, colocation, and ML-driven strategies make $50K-$500K+/month. The barrier to entry is higher than in 2022 but still accessible.

Is sandwiching illegal?

In most jurisdictions: unclear. Sandwich attacks exploit blockchain design (public mempool, MEV), not fraud. However, regulatory trends suggest sandwiches may be classified as market manipulation in the future (especially in the EU under MiCA). In the US, the CFTC has signaled interest in MEV cases. Many searchers operate from jurisdictions with no clear regulation.

How do searchers compete on speed?

Colocation (servers next to validators), custom hardware (FPGAs for signature verification), optimized networking (kernel bypass), and competitive gas/priority fee bidding. At the top level, 10ms speed differences determine who captures a $100K+ arbitrage opportunity.

Does MEV hurt Ethereum as a whole?

Debated. MEV increases validator revenue (making ETH staking more attractive), incentivizes block building efficiency, and provides profit for sophisticated actors. But it also increases gas costs for average users, creates negative externalities (sandwich attacks), and contributes to centralization concerns (professional searchers dominate).

What's the future of MEV?

Three trends: (1) Encrypted mempools (threshold encryption) will eliminate front-running and sandwiches, (2) MEV-Burn proposals will redistribute MEV to protocol treasuries or ETH holders, (3) Intent-based architecture (ERC-7683, CowSwap, Across) will abstract away MEV from users entirely.

S
Synor

1 followers

Deep dives on GPUs, decentralized AI, crypto, and open-source ML — buying guides, benchmarks, and tax/compliance explainers.

Comments

Sign in to join the conversation

No comments yet. Be the first to share your thoughts!

More from Synor

Recommended for you