Skip to content

Routing a pool that triggers an arb recapture

Read what a router, an aggregator or an indexer has to change for a pool that triggers an arb recapture: gas, the route's effect on the split, and the events.

On this page

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. The root reaches the arb recapture lane only for a pool that turned arb recapture on at launch; a pool without it never reaches the lane code. The registry holds one lane per root: the executor, its runtime code hash, the gas cap and the partner share. 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.

Hookr’s contracts

The table lists Hookr’s 35 core contracts, rendered from the hookr-1 release book the app ships, source commit 412960b37a631ce145d49fb4a1887f04a4d1fa74, in deployment order.

Each one’s source is verified on RobinScan, on Sourcify as an exact match and on Blockscout as a full match. The arb recapture table below repeats HookrLane and adds What The Hook’s executor and the whole-pot King of the Pool contracts, and the Wallet Cap table adds Wallet Cap’s core and its module. None of the contracts they add is in the release book.

ContractAddress
HookrRegistryChecks0xB9F5c54E5Cc7ac6c7a96335E5A334Cf4eA496E98
HookrRegistryAdmin0x675ac2102E8c69E2467F64656E3c235AF3901Ac1
HookrRegistry0x463c82beA1a52F4Cc05ca0741a24F0AD24bA4602
HookrTreasury0x2242F7FC75606500503075f29ea8cDA684EfB4a9
HookrForwarder0xe7863CC0E2Fb783b44c279aB159bcD812c2ceA1c
HookrRouter0xC2Bc9a3fe6c4Ce8C2F7EB4655b0869b01D8c93C9
HookrQuoter0x445D7891381Aa7F91F5048EdBC6a611ccBDe7865
HookrLaunchChecks0x8567369a70100828611BB6F44ec051B48F10fb59
HookrTokenDeployer0x1B23D6d7beBcB61E39317E9F0Bc02AEB91aFCcAe
HookrLauncher0x1cf2748A6670572425eAbf9Ab9e5BC4eb2eB8Ef4
HookrReferralRegistry0xefD1DfBA80c06E72F793601706c3a1c71aab3057
HookrProgramsAdmin0x40B40D65543E70a9C757eda1A2208517a8BC7292
HookrPrograms0x9fA204AC99176782Fd20615b2b2A516D1F8C328F
HookrMilestoneNFTFactory0xa340F964F1E685c681dC3ABB5B0405E608914d00
HookrProgramValidator0x33e0249083Be7Cd8bD2fe175E0671AcfD0516850
HookrReferralDistributor0x690539c53212899A9c6AEEE3b4B6737A5c4851d9
HookrRoot0x89c9FB50d1f03192230FFB1c279BB6E7d3Fe6aCc
HookrRules0x4a71c270b1520F94064268102AebD744b0DE7942
HookrFamilyRouter0x854f3Fa7AC342B244DF0d9A8c8F597b051aAE559
HookrFamilyLock0xfAFEcE64099C1E791C4B46189c277f00c0c7e00b
HookrLane0x9A8a1006469BA196f8FEfc017a53505C83A060BB
HookrRecapture0xF83569E564d70daebc35950f66a73f2e2B915583
HookrCompliance0x9D205e8a68464761A9d84bdeCcEa0C3CB1e7B1EC
HookrComplianceGuard0x6CD70db1ac99344416a6fD7184e23FA8f09f313A
HookrAccountCalls0x0579a95A7760070E2d6D34e5beCe571e5F1c4818
HookrPaymasterAdmin0x1d81F4B131832f741392edf7B91b4CF099FbB008
HookrPaymaster0x1c4682915092E742231ea038C4fcA61e96a83c99
HookrRootFactory0x21E438FaBE10770afb4407cF6b09d32369CBdCE4
HookrSessionAdvisory0x78Bc6b7302Dda8632e661c8d74966bdBea1c66b1
HookrFeeAdvisory0x3B6b3f00684987B831fcF9EB5f0d5B806afF7306
HookrLiquidityVault0xA408923EF811945Ef119Bc700B1950Dab65467Fc
HookrOwnedProfiles0xb46c318B6AEA2d6274f5566da414b09fDa6CC325
HookrOwnedRootsLens0x6Bb5c9d21dD095F788cb8373d0143429ad277366
HookrOwnedRootFactory0xA6c2a401597301dFf57A59bC8F70a9622499f3ec
HookrLpBoost0x52536F5F4E5BC7cEA2197c8F1BB49bf2B133E7f1

Arb recapture

The registry opened the lane on HookrRoot on 2026-10-07. The executor is What The Hook’s contract, not Hookr’s. King of the Pool is live on ETH/HOOKR (0xd7cc047d…bc99), on the whole-pot Rules: each arb profit splits What The Hook 25% · Hookr 25% · Pot 50%, with nothing to traders or LPs, and the round’s winner takes the whole pot.

ContractAddress
HookrLane, the arb recapture lane on HookrRoot0x9A8a1006469BA196f8FEfc017a53505C83A060BB
What The Hook's arb recapture executor, 25% of each arb recapture's profit0x4B4c16681401454140a9dBca55e5c186BBE8D728
HookrRules, King of the Pool whole-pot Rules0x10f684361b35c8411a2c07f68a6fb1f4b7e555f7
HookrRecapture, the whole-pot Rules' module0x60efc4a41498e9433be2155b6cc1677aec31d649

Wallet Cap

Wallet Cap runs on a core of its own: the whole-pot core with a cap on each wallet’s buys while a pool’s launch guard lasts. Hookr’s hook admits it, and a Wallet Cap pool’s claims are made on it.

ContractAddress
HookrRulesWalletCap, Wallet Cap's core0xb67b73e28c522a3aac438be970bf94976deee52a
HookrRecapture, the module of Wallet Cap's core0xbbc43dc2f01f5e7882cacd78ef094a44ef0e4d23

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 keeps up to the lane's share, Hookr takes its cut, and the rest is the pool's, as it froze it at launch. recaptureSplit in hookr-sdk works it out to the wei at the lane's share. On a King of the Pool pool, the pool's part feeds the pot.

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 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.