# Routing a pool that triggers an arb recapture

What changes for a router, an aggregator, a quoter or an indexer when the pool on the other side of a swap has arb recapture on. Three things change: the gas the swap needs, how the profit splits, and how close to execution a quote should be taken.

## Which Pools These Are

Every pool on Hookr's shared hook names `HookrRoot` in `PoolKey.hooks`. Arb recapture is on by default: the root reaches the arb recapture lane for every pool that did not opt out at launch, and a pool that opted out never reaches the lane code. `laneOf(id)` on the root answers the lane for a pool: the executor, its runtime code hash, the partner share, whether the pool is on it, the gas cap and the gas floor. A pool fixes its terms when it opens, so whether it recaptures is read once from the pool and holds for its life.

The root's address renders below from the release book the app ships.


## The Gas Point

A swap on a pool with arb recapture on must carry the lane's gas floor plus its own gas. Read the floor as `gasFloor` from `laneOf(id)` on the root, or `laneGasFloor` in `hookr-sdk`. It is 6,802,619 at the lane's 3,000,000 gas cap. The root requires the whole floor before the first arb recapture runs, whether or not the lane finds a profit, so `eth_estimateGas` includes it.

A 0.001 ETH buy on ETH/HOOKR estimates at about 7.5 million now. Send the estimate plus a sixth, and never override the result downwards. A fixed limit should be at least 8.8 million. Unused gas is refunded.

## How the Profit Splits

Each arb recapture profit splits three ways: the partner's executor keeps up to the lane's share, 25% today; Hookr takes its cut of the profit; and the rest is the pool's, split as it froze it at launch between the King of the Pool pot where the pool has one and its LPs. `recaptureSplit` in `hookr-sdk` works out a pool opened at 25% to the wei at the lane's share.

What The Hook's executor runs the arb recapture, and if it cannot, the trade goes through without it.

## Quoting

Quote the path you route: `HookrQuoter`'s `quoteExactInputSingle` and `quoteExactOutputSingle`, in `V4Quoter`'s shape, for the Universal Router, and `quote(Swap, payer)` for `HookrRouter`. `quoteDetailed(Swap, payer)` adds the payer's arb recapture claim. [Swapping and quoting](/docs/guides/swapping-and-quoting) has each call.

An arb recapture moves the pool's price, so a quote can be stale by one arb recapture even within the same block. Quote close to execution and use the amount bound for slippage.

## What an Indexer Sees

Read the pool's terms from the pool, never from events: its Hook Blocks and its lane are frozen at launch. Keep arb recapture profit apart from swap fees: it is paid out of the arb's profit, never out of a trade.

---

This page: https://hookr.fun/docs/integrations/routing-an-arb-recapture-pool. Every docs page as Markdown: https://hookr.fun/docs.md.
