Hook 0x1588…7fff on Robinhood Chain

Uniswap v4 Hook Contract 0x1588da8f700f8124a950ec3d3eb155ef11d17fff on Robinhood Chain · Other

Volume (24h)
$2.13K
Value locked (TVL)
$1.20K
All-time volume
$13.56K
Pools using this hook
2
Swaps (24h)
274 (105 traders)
Total swaps
1,143

What it does

A proxied Uniswap v4 hook that enables most callbacks and return-delta permissions to skim, route or account for fees and liquidity on pools, with behaviour that cannot be fully confirmed from bytecode alone.

How it works step by step

  • Enables before and after callbacks for initialize, liquidity, swap and donate operations
  • Enables return-delta permissions that let the hook alter swap and liquidity deltas
  • Uses unlockCallback and unlock to run self-unlocked operations against the pool manager
  • Calls take, settle, transfer and flush to move currency held by the hook
  • Stores registration, pool and observation state keyed by pool id
  • Upgradeable via a UUPS-style proxy controlled by admin and an upgrade slot
Swap behaviour
beforeSwap and afterSwap callbacks are enabled along with a swap return-delta permission, and the hook calls swap and afterSwap-related paths, so it can adjust swap deltas and move tokens during swaps.
Liquidity behaviour
Both beforeAddLiquidity and afterRemoveLiquidity style hooks are enabled with return-delta permissions, and the hook calls modifyLiquidity, suggesting it can take or add liquidity-related deltas on the pool manager. Exact behaviour cannot be confirmed.
Fee behaviour
Unclear from decoded bytecode. Constants such as STANDARD_FEE, MAX_CUT_BPS, MIN_FEES_USD and MAX_SKIM_BPS suggest fee-skimming or fee-cut logic, but the exact fee path cannot be confirmed without source.
Owner & admin controls
The implementation exposes setAdmin(address), setKeeper(address), setRegistrar(address), setModule(address,bool), upgradeToAndCall(address,bytes) through a UUPS-style proxy slot, and an initialize(address) guarded by an initializer flag. Whoever holds admin or the upgrade authority can upgrade the implementation and reconfigure keeper, registrar and module permissions. Pausing is available via a pause(bytes32) view-style mapping and unregister(bytes32) exists, but the exact checks cannot be confirmed without source.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, afterDonate, beforeSwapReturnDelta, afterSwapReturnDelta, afterAddLiquidityReturnDelta, afterRemoveLiquidityReturnDelta

beforeInitialize and afterInitialize set up pool state; beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity handle liquidity changes with return deltas; beforeSwap, afterSwap and the swap return-delta hook alter swap accounting; donate hooks are enabled; unlockCallback is used for self-unlocking flash-style operations.

Security & trust assessment

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

Who controls it: An admin or upgrade authority can replace the implementation, change the keeper and registrar, and grant module permissions, which could redirect fees or move funds held by the hook.

Risk to user funds: The hook can hold and move pool-related tokens through take, settle, transfer and flush operations, and return-delta permissions let it alter swap and liquidity amounts. An upgrade or privileged key could redirect or block these flows.

Security findings

  • [high] Upgradeable proxy: The hook delegates all calls to implementation 0xf55aae62723654253c75758f88bc0c50678a20a8 with an upgrade entrypoint, so the logic can be replaced at any time by the upgrade authority.
  • [high] Return-delta fund movement: The hook enables before and after swap return-delta permissions and performs take, settle and transfer operations, so it can take or pay tokens during swaps and liquidity changes.
  • [medium] Privileged roles can move funds: Privileged roles include admin, keeper, registrar and modules, with a flush function that moves currency out of the hook, which could let a privileged key drain accrued balances.
  • [medium] Unverified parameter controls: Several parameters (STANDARD_FEE, MAX_CUT_BPS, MAX_FLUSH_IMPACT_BPS) exist, but their enforcement and whether they can be changed by admin cannot be verified without source.
  • [info] No verified source: No verified source is available, so behaviour is inferred from selectors and storage only; the implementation may differ from the inferred purpose.

Contract details

Verified source
No
Bytecode size
163 bytes
Upgradeable proxy
Yes
Detected patterns
moves-currency, return-delta, self-unlock, upgradeable

Pools using Hook 0x1588…7fff