Aggregator hook on Base

Uniswap v4 Hook Contract 0xf5a65c2f2b12f7f31df25653d6f415b7773aa888 on Base · Aggregator

Volume (24h)
$0
Value locked (TVL)
$2.89M
All-time volume
$0
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
0

What it does

Swaps on this pool are filled by a linked Curve stablecoin pool. Router users pay a fixed vault fee between 0% and 1%, while four hard-coded team contracts trade fee-free, and no one can add liquidity to the v4 pool.

This read was written for the hook 0x73c4…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 on this Uniswap v4 pool through a single Curve StableSwap NG pool, so traders get Curve's stablecoin pricing.
  • Supports both exact-input and exact-output swaps, settling the whole trade inside the swap so the v4 pool itself holds no liquidity.
  • Charges an optional fixed vault fee, set at deployment and capped at 1% of the swap's unspecified-side amount. It goes to an immutable vault address.
  • Up to four fixed addresses (the team's own contracts calling the PoolManager directly) are exempt from the fee. Users going through routers always pay it.
  • Blocks anyone from adding liquidity to the v4 pool. Anyone can sweep leftover rounding dust to the vault.
Swap behaviour
Before each swap, the hook takes the trader's input from the PoolManager, swaps it on the linked Curve pool, and returns the output, fully replacing the v4 pool's own pricing. If a fee is configured, it is deducted from the output (exact-in) or added to the input (exact-out). Slippage protection is left to the router, since Curve is called with no minimum output.
Liquidity behaviour
Adding liquidity always reverts, so the v4 pool holds no LP funds. Remove-liquidity callbacks are disabled, so the hook can never block withdrawals.
Fee behaviour
A fixed fee set at deployment, between 0% and a hard cap of 1%, is charged on the swap's unspecified-side amount and sent to the immutable vault. Up to four hard-coded exempt addresses pay nothing; Curve's own pool fee also applies inside the Curve trade.
Owner & admin controls
No admin controls found. The fee rate, vault, Curve pool, and exempt addresses are all immutable, and changing them requires a new deployment.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize: checks that both tokens belong to the configured non-meta Curve pool and approves Curve to spend them. beforeAddLiquidity: rejects all liquidity additions. beforeSwap: executes the trade on Curve and takes the vault fee. beforeSwapReturnDelta: replaces the v4 swap amounts with the Curve result minus the fee.

Security & trust assessment

Risk level: low, estimated (decoded bytecode, high confidence).

Who controls it: There is no owner or admin key. All parameters are immutable, and the only privileged effect is that fees and swept dust go to a fixed vault address.

Risk to user funds: The hook only touches swap amounts while a trade is executing, deducting at most a 1% fee. No LP funds exist in the v4 pool, since liquidity additions are blocked, so nothing can be locked or drained.

Security findings

  • [info] Fixed fee capped at 1%: The vault fee is set once at deployment, can never exceed 1%, and has no setter.
  • [info] Fee exemptions for team contracts: Up to four immutable addresses skip the fee, but only when they call the PoolManager directly; ordinary routed users always pay the configured rate.
  • [low] No slippage check at Curve: The Curve trade uses a minimum output of zero, so traders rely on their router's slippage limit for protection.

Contract details

Verified source
No
Bytecode size
14,573 bytes
Upgradeable proxy
No
Detected patterns
aggregator, moves-currency, return-delta

Pools using Aggregator hook