Aggregator hook on Robinhood Chain

Uniswap v4 Hook Contract 0x9694f7db15283e5bda8f56c49045fb043b1bbacc on Robinhood Chain · Aggregator

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

What it does

This hook runs a gated, dynamic-fee pool that can route swaps through owner-set external venues and take a treasury fee on every swap, while LP deposits are allowlisted and withdrawals may be subject to a time-based vesting check.

This read was written for the hook 0xda39…bacc on Robinhood Chain 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

  • Runs a single pool that can route swaps through external venues and takes a fee on swaps, with part going to a treasury or house share.
  • Sets and updates a dynamic LP fee, bounded by hard-coded floor and ceiling constants whose exact values cannot be read from bytecode.
  • Gates adding liquidity to approved addresses or routers until the owner opens liquidity permanently.
  • Records when liquidity was added and checks it on withdrawal, which suggests a minimum holding time or vesting period.
  • Supports pass signatures, trusted forwarders and reward or campaign grants to traders.
Swap behaviour
Before and after each swap the hook can change swap amounts through return deltas, route part of the trade through owner-configured external venues, take a fee, and donate part of it to the pool. Exact fee amounts and routing limits cannot be confirmed from bytecode.
Liquidity behaviour
Adding liquidity can be limited to allowlisted addresses or routers while the LP gate is on, and the owner can turn the gate off permanently. Withdrawals run a read-only check against the time the liquidity was added, so early removals may be rejected for a vesting period up to a hard-coded maximum.
Fee behaviour
Uses a dynamic LP fee set by the hook, plus a hook fee taken through swap deltas and split between a treasury and a house share. Part may be donated to LPs. Exact percentages and caps are not readable from bytecode.
Owner & admin controls
The owner can set the LP allowlist and liquidity routers, enable or disable routes, add routes up to a maximum count, set trusted forwarders and the pass signer, and open liquidity permanently. Renouncing ownership is disabled, and anyone may be able to sweep funds to the fixed treasury.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: checks pool setup; afterInitialize: stores the pool key and sets the fee; beforeAddLiquidity: enforces the LP allowlist and records deposit time; beforeRemoveLiquidity: checks the deposit time or vesting; beforeSwap: applies routing, fee and pass checks; afterSwap: settles fees and donations; beforeSwapReturnDelta/afterSwapReturnDelta: lets the hook change swap amounts.

Security & trust assessment

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

Who controls it: A single owner controls the LP allowlist, routing venues, forwarders and pass signer, and ownership cannot be renounced. The owner does not appear able to set arbitrary fees beyond the hard-coded floor and ceiling.

Risk to user funds: The hook can take part of each swap through return deltas and send it to the treasury or donate it to LPs, but the exact maximum is unknown from bytecode. LP principal stays in the PoolManager, though withdrawals may be time-locked for up to the maximum vesting duration.

Security findings

  • [medium] Unverified swap deltas: Swap return deltas and external venue routing are active, but the exact fee and slippage limits cannot be verified without source code.
  • [medium] Withdrawal timing check: beforeRemoveLiquidity reads the time liquidity was added and may block withdrawals until a vesting period ends. It is a view-only check with a hard-coded maximum duration.
  • [low] Owner-configured routes: The owner can enable or disable external routes that swaps pass through, up to a fixed route count.

Contract details

Verified source
No
Bytecode size
24,425 bytes
Upgradeable proxy
No
Detected patterns
donates, dynamic-fee, moves-currency, ownable, return-delta

Pools using Aggregator hook