Auction hook on Robinhood Chain

Uniswap v4 Hook Contract 0x862e24dc6fbbd69e5904d4f9936d6bfb0b7a8a80 on Robinhood Chain · Auction

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

What it does

This hook queues swaps and liquidity actions into timed batches and settles them through its own unlock callback, so trades and LP changes execute in batches rather than instantly, but the exact fee and pricing effects on individual trades cannot be confirmed from the decoded bytecode.

How it works step by step

  • Hook declares beforeAddLiquidity, beforeRemoveLiquidity and beforeSwap callbacks and reverts liquidity changes unless gated by its liquidityGate() check.
  • Dispatches a batch mechanism: currentBatch(), BATCH_BLOCKS(), castCount() and MAX_CASTS() suggest swaps and liquidity actions are grouped into timed batches over a fixed number of blocks.
  • Uses a self-unlock pattern (unlock(bytes) and unlockCallback(bytes) on the hook) to call poolManager take/transfer during batch settlement.
  • Tracks per-user owed balances in a mapping(address => mapping(address => uint256)) written by collect(address) and read by owed(address,address).
  • Stores per-pool state keyed by poolId, including liquidity and sqrtPriceX96 snapshots readable through view functions.
  • Emits custom errors BatchOpen, EmptyBatch, LiquidityGated, WrongHook, PoolNotInitialized and Zero, indicating explicit gating of batch and liquidity operations.
Swap behaviour
beforeSwap is registered and gated by batch state; swaps appear to be queued into the current batch and settled through the self-unlock callback rather than executed directly. Exact pricing and which trade direction pays more or less cannot be determined from decoded bytecode.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity are registered and can revert via the liquidity gate (LiquidityGated error); liquidity state is tracked per pool and exposed through liquidity(). Precise conditions for allowing add or remove cannot be determined without source.
Fee behaviour
Uses the pool's static fee; no dynamic fee selector or fee-setting function was identified in the decoded bytecode.
Owner & admin controls
No owner, pause or upgrade selectors were identified in the decoded bytecode; parameter values such as BATCH_BLOCKS and MAX_CASTS appear to be constants or immutable, but this could not be confirmed.

Enabled Uniswap v4 callbacks

beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap

beforeAddLiquidity: gates or blocks liquidity additions. beforeRemoveLiquidity: gates or blocks liquidity removals. beforeSwap: routes swaps into batch accounting before they execute.

Security & trust assessment

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

Who controls it: No privileged key was identified in the decoded bytecode; the hook appears to have no owner-only setters, so centralization risk is low unless a hidden role exists in unreviewed code.

Risk to user funds: The hook can hold and move pool and user funds through the self-unlock settlement and collect(address) transfers, and its batch and liquidity gates can block swaps or withdrawals while a batch is open.

Security findings

  • [medium] Hook gates swaps and liquidity: beforeSwap and the liquidity callbacks can revert through batch and liquidity gate checks, so a stuck batch or gate state could block user trades or LP withdrawals.
  • [medium] Self-unlock token movement: The hook calls unlock and take/transfer selectors and holds ERC20 transfer and transferFrom capability, so it moves pool currency during settlement.
  • [low] Per-user owed balances: collect(address) reduces a stored owed mapping and transfers tokens out, so accounting errors could misallocate user credits.
  • [info] No admin selectors found: No owner, pause or upgrade functions were found in the decoded selectors, which reduces centralization risk, though absence of source limits certainty.

Contract details

Verified source
No
Bytecode size
10,859 bytes
Upgradeable proxy
No
Detected patterns
access-control, erc20, moves-currency, self-unlock

Pools using Auction hook