Aggregator hook on Base
Uniswap v4 Hook Contract 0x9e1e7a1f3096da2ed4b83b54abe2da02ad82e888 on Base · Aggregator
- Volume (24h)
- $0
- Value locked (TVL)
- $111.86K
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
This hook routes exact-input swaps through a fixed Curve StableSwap pool, charging an immutable fee of at most 1% of the output to a vault; up to four operator contracts pay nothing when calling the PoolManager directly, and adding liquidity is disabled.
This read was written for the hook 0xa40a…6888 on Arbitrum and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.
How it works step by step
- Routes every swap in the Uniswap v4 pool through a single fixed Curve StableSwap pool instead of v4 liquidity.
- Supports exact-input swaps only; exact-output swaps revert.
- Charges an optional fixed vault fee on the swap output, set at deployment and capped at 1%.
- Up to four fixed addresses (the operator's own bots) skip the fee, but only when they call the PoolManager directly.
- Blocks anyone from adding liquidity to the v4 pool, since all liquidity comes from Curve.
- Swap behaviour
- On each exact-input swap the hook takes your input tokens, trades them on the linked Curve pool, and returns the Curve output to you minus the vault fee. The hook sets no minimum output, so your router's slippage check is what protects you, and exact-output swaps are rejected.
- Liquidity behaviour
- Adding liquidity always reverts because the pool is a pure routing shell. Remove-liquidity callbacks are disabled, so the hook can never block withdrawals, though no v4 LP positions can exist anyway.
- Fee behaviour
- A fixed fee set at deployment, between 0% and a hard cap of 1%, is taken from the swap output and sent to an immutable vault address. Up to four fixed exempt addresses pay 0% when they call the PoolManager directly; trades routed through any router pay the fee. Curve's own pool fee also applies.
- Owner & admin controls
- No admin controls found. The fee, vault, exempt addresses and Curve pool are all immutable, and the dust sweep can be called by anyone but only sends stray hook balances to the fixed vault.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta
beforeInitialize: checks the Curve pool is registered and not a meta pool, maps the token indices and approves Curve to spend them; beforeAddLiquidity: always reverts so no one can add liquidity; beforeSwap: executes the trade on Curve; beforeSwapReturnDelta: replaces the v4 swap with the Curve result and deducts the vault fee.
Security & trust assessment
Risk level: low, estimated (decoded bytecode, high confidence).
Who controls it: No owner or admin keys exist; every parameter is fixed at deployment. The deployer chose the vault, the fee (at most 1%) and the exempt addresses, and none of these can change.
Risk to user funds: The hook handles a swapper's input only for the duration of one atomic swap and deducts 0% to 1% of the output as the vault fee. No LP principal is held, and withdrawals cannot be blocked.
Security findings
- [info] Immutable fee capped at 1%: The vault fee is fixed at deployment and the constructor rejects any value above 1% of the swap output; there is no setter.
- [info] Fee exemption for operator contracts: Up to four fixed addresses pay no fee when they call the PoolManager directly, which gives the operator's own bots a small edge over routed trades.
- [low] Relies on external Curve pool and router slippage: Swaps run on Curve with no minimum output set by the hook, so users need a router-level minimum-output check to avoid bad fills.
Contract details
- Verified source
- No
- Bytecode size
- 13,803 bytes
- Upgradeable proxy
- No
- Detected patterns
- aggregator, moves-currency, return-delta
Pools using Aggregator hook
- USDC / USDbC (0.00% fee) — 24h volume $0, TVL $111.86K, 0 swaps today