Uniswap V4 Hooks MEV 2026: Searcher Opportunities and Risks
**Answer first** — Uniswap V4 hooks turn each pool into a programmable contract with custom logic at swap, modify-liquidity, and donate boundaries. For searchers, this creates thre

Answer first — Uniswap V4 hooks turn each pool into a programmable contract with custom logic at swap, modify-liquidity, and donate boundaries. For searchers, this creates three new opportunity categories — custom-curve arbitrage between hook-altered prices and reference AMMs, dynamic-fee front-of-block races where hook fee logic can be predicted, and JIT-style liquidity hooks that legally extract value via beforeSwap/afterSwap callbacks. It also introduces new risks: hook reentrancy traps, asymmetric gas costs, and pool-specific simulation requirements that break "universal" arb bots designed for V2/V3 invariants.
What Hooks Actually Change
A V4 pool isn't just x * y = k with a fee tier. It's a PoolKey plus a deployed IHooks contract that can interpose logic at up to ten callback points:
| Callback | When It Fires | MEV Relevance |
|---|---|---|
beforeInitialize |
Pool creation | Low (one-shot) |
afterInitialize |
Pool creation | Low |
beforeAddLiquidity |
LP deposit | Medium — gates JIT |
afterAddLiquidity |
After deposit | Medium |
beforeRemoveLiquidity |
LP withdraw | Low |
afterRemoveLiquidity |
After withdraw | Low |
beforeSwap |
Before swap math | High — fee/route logic |
afterSwap |
After swap math | High — donations, rebalancing |
beforeDonate |
Donation hook | Low |
afterDonate |
Donation hook | Medium |
The two that matter for searchers are beforeSwap and afterSwap. These let a pool implement dynamic fees, custom pricing curves, or per-swap rebalancing — all of which create exploitable asymmetries vs. plain V3 quotes.
Opportunity 1: Custom-Curve Arbitrage
V4 hooks can replace the constant-product price calculation entirely. A pool might use a TWAMM curve, a constant-sum stable curve, or a fully oracle-priced curve. When that pool's effective price deviates from the rest of the market, an arb opportunity opens.
The constraint: you cannot price V4 hook pools off-chain using V3 math. Every simulation must invoke the hook's beforeSwap to get the real quote. This means:
- Discover the hook contract behind each pool you care about
- Either decompile the hook logic or simulate via
eth_callon each tick - Add the gas overhead of the hook callback (5k–80k extra gas) to your profit threshold
Realistic per-trade arb sizes on hook-altered pools in early 2026: $30–$2,000, with much higher variance than V3. Pools with untested custom curves tend to mispriced for hours before anyone notices, then close once one good searcher writes the simulator.
Opportunity 2: Dynamic Fee Races
A common hook pattern is volatility-adjusted dynamic fees — the hook reads a volatility oracle in beforeSwap and raises fees during turbulence. This creates two MEV plays:
Play A — front-run the fee hike. If the oracle is on-chain and you can predict its next update (e.g. Uniswap's own observation queue), you can route a large swap one block before the hike at the lower fee.
Play B — back-run the fee normalization. When volatility drops and the hook lowers fees, the first trade after the fee change captures unusual elasticity. Watch the oracle's "decay" function and queue a bundle that fires immediately after.
Both require per-pool fee-prediction logic. Generic bots that assume a static 5/30/100 bps tier will mis-price these pools by 10–50 bps consistently. See How Fast MEV Bots Execute for the latency budget this implies.
Opportunity 3: JIT-via-Hook Liquidity
V3 JIT (just-in-time) liquidity required searchers to wrap a swap with mint and burn in the same block. V4 hooks let a pool internalize JIT — the hook itself adds and removes liquidity around incoming swaps, capturing the LP fees.
For an external searcher, this changes the strategy:
- Pools with internal JIT hooks are harder to JIT-attack — the hook already takes the LP fee. Don't waste gas competing.
- Pools without internal JIT still allow classic V3-style JIT, but you must check the hook flags first (
hasPermission(BEFORE_ADD_LIQUIDITY_FLAG)) to know whether your mint will trigger extra callbacks.
The on-chain check is one storage read. Skip pools where internal JIT is active and focus capital on the half of the market without it. See JIT Liquidity Strategy Explained for the underlying mechanic.
Risk 1: Hook Reentrancy Traps
V4's singleton design means all pools share state in the PoolManager. A malicious hook can call back into the manager during your swap and front-run your own bundle from inside the callback. This isn't theoretical — early V4 audits flagged several hook patterns that allow exactly this.
Defensive rules:
- Whitelist hooks. Never swap through a hook contract you haven't verified is on a maintained allowlist (Uniswap Labs publishes one; community lists exist for hooks they don't bless).
- Cap loss per pool. Per-pool max-loss limits in your bundle's revert guard catch hook drain attempts.
- Gas-bomb detection. If a hook's
beforeSwapconsumes >200k gas in simulation, treat it as hostile and exclude the pool.
Risk 2: Asymmetric Gas Costs
Hook callbacks make gas cost a function of the pool, not the swap size. A simple swap through a complex hook can cost 250k gas; the same swap through a no-hook pool costs 95k. If your arb model assumes uniform gas, your "profitable" trades will lose money on hook-heavy paths.
Track per-pool gas cost over a rolling window of executed swaps. Update your profitability threshold per pool, not per chain. The bots that survive 2026 V4 trading will have per-pool unit economics.
Risk 3: Simulation Drift
The biggest operational risk: your off-chain simulator can drift from on-chain reality if a hook upgrades. Some hooks are upgradeable proxies. A silent upgrade can change the pricing curve mid-day and your bot will keep submitting bundles based on stale logic.
Mitigation:
- Subscribe to the hook contract's events for upgrade signals
- Re-simulate every 100 blocks against a recent on-chain swap to detect drift
- Auto-pause any pool whose simulator-vs-actual delta exceeds 25 bps for three consecutive trades
How V4 Hooks Compare With V3 MEV
| Dimension | Uniswap V3 | Uniswap V4 + Hooks |
|---|---|---|
| Pricing math | Universal (concentrated liquidity) | Pool-specific (custom curves) |
| Fee logic | Static tiers (1, 5, 30, 100 bps) | Dynamic per-swap |
| Gas cost | Predictable | Pool-dependent (95k–280k) |
| JIT viability | Always | Depends on hook flags |
| Sim complexity | Off-chain math | On-chain simulation required |
| Profitable bot type | Generic invariant solver | Per-pool specialist |
The shift is from invariant solvers to per-pool specialists. Searchers who tooled up early on hook-aware simulation are extracting outsized share because most existing bots have not adapted.
Hook-Aware Bundling Pattern
A robust V4 bundle structure for arb:
- Static call simulate
swap(poolKey, params)against forked state at current block - Read hook flags and re-simulate if hook flags include
beforeSwap - Compute expected output minus all gas (including callback overhead)
- If profit > threshold, submit bundle through your private relay
- Include a per-pool revert guard checking actual output ≥ 98% of simulated
The third step — accurate gas inclusion — is where most non-specialist bots lose money on V4. See Profitability Gas Budget Calculator for the calculation framework.
What FRB Agent Supports
FRB Agent supports Uniswap V4 swaps on Ethereum mainnet, Base, Arbitrum, Optimism, and Polygon through its multi-chain DEX router. The simulation layer auto-detects hook contracts and applies per-pool gas adjustment when building atomic-arbitrage bundles. Hook whitelisting is configurable per chain in the dashboard — the default ships with Uniswap Labs' published hook list and the user can extend it.
What the agent does not do: decompile arbitrary unknown hooks. If a pool's hook is not on the whitelist, the agent skips it. This is by design — running blind through unverified hooks is the fastest way to lose your inventory to a malicious pool.
Realistic Returns On V4 Hook Arb
Indicative early-2026 monthly returns for a $30k inventory solo searcher running V4-hook-aware arb across mainnet + Base + Arbitrum:
- Quiet month (low volatility, few new hook pools): 1.5–3% return
- Active month (new pools launching, oracle resets): 5–12% return
- Volatility spike month: highly variable, can be 15–25% or negative
These are illustrative, not promises. The distribution skews more positive than V3 arb because the simulator competition is thinner — but a single hook-misclassification incident can wipe a month. See the FRB risk disclosure for the full risk model.
Further Reading
Step after reading
Launch FRB dashboard
Connect your wallet, pair the node client with a 6-character PIN, and assign the contract mentioned above.
Need the signed build?
Download & verify FRB
Grab the latest installer, compare SHA‑256 to Releases, then follow the Safe start checklist.
Check Releases & SHA‑256Related Articles
Further reading & tools
Discussion
No notes yet. Add the first observation, or share the link with your team on X (@MCFRB).