Custom pricing hook on Robinhood Chain

Uniswap v4 Hook Contract 0x14fce4b7051081c9c6fabde75f2abb3631c38088 on Robinhood Chain · Custom pricing

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

What it does

A custom-accounting hook that runs before each swap, updates its own state and can take currency from the pool through return deltas, altering swap settlement for traders.

How it works step by step

  • Runs logic in beforeSwap on every swap before pricing executes
  • Reads and writes three storage slots that track hook state across swaps
  • Uses beforeSwapReturnDelta to return an amount that offsets the swap
  • Calls take(currency, recipient, amount) to withdraw pool currency during swaps
  • Exposes a view function at selector 0x5860c54f with unknown purpose
Swap behaviour
beforeSwap runs on every swap, reads and writes storage slots 0-2, may call take() to move currency, and returns a delta that adjusts the swap amounts.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Fee behaviour cannot be determined from the decoded input; no fee-related selectors or LP fee override are evident. Likely the pool's static fee applies unless beforeSwap returns an override.
Owner & admin controls
No admin controls found. No owner or upgrade selectors were decoded; the view selector 0x5860c54f and storage slots 0-2 are written only inside beforeSwap, so parameters appear to be set by swap logic rather than an external admin.

Enabled Uniswap v4 callbacks

beforeSwap, beforeSwapReturnDelta

beforeSwap: runs before each swap and is the entry point that reads and updates storage slots 0-2 and calls take(address,address,uint256). beforeSwapReturnDelta: lets beforeSwap return a delta that offsets the swap amount, so the hook can absorb or supply part of the swap's currency flows.

Security & trust assessment

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

Who controls it: No privileged key or admin function was identified, so centralization risk appears low from the decoded surface, though this cannot be fully confirmed without source.

Risk to user funds: The hook can take and move pool currency during swaps through take() and return deltas, so user swap amounts and pool balances depend on logic that cannot be verified from the bytecode alone.

Security findings

  • [high] Hook takes currency via return delta: beforeSwapReturnDelta is enabled and the bytecode calls take(address,address,uint256), so the hook can move pool currency during swaps and alter the amounts users receive or pay.
  • [medium] Swap-time state mutation without source: beforeSwap writes storage slots 0-2 on every swap, so the hook maintains state that changes swap outcomes; the logic cannot be audited without source.
  • [info] Unnamed view function: The 0x5860c54f view selector has no decoded name or arguments, so its purpose is unknown.
  • [info] Panic revert paths: Panic(uint256) is present, indicating checked arithmetic or assert-style reverts that could block swaps on unexpected state.

Contract details

Verified source
No
Bytecode size
1,026 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Custom pricing hook