Access control hook on Robinhood Chain

Uniswap v4 Hook Contract 0x529568c854833d46e4d2db3769955a8cb3814080 on Robinhood Chain · Access control

Volume (24h)
$66
Value locked (TVL)
$3.16K
All-time volume
$5.53K
Pools using this hook
6
Swaps (24h)
74 (1 traders)
Total swaps
6,046

What it does

A Uniswap v4 hook that restricts swaps in its pool to an owner-managed allowlist of addresses.

How it works step by step

  • Enables only the beforeSwap callback among the hook permissions
  • beforeSwap reads an address-to-bool allowlist stored in slot 1
  • Owner adds or removes allowed addresses via allow and disallow
  • Owner is stored in slot 0 and can transfer ownership
  • Hook exposes view functions for poolManager, owner and allowed status
  • Reverts with HookNotImplemented for unimplemented callbacks
Swap behaviour
beforeSwap checks the caller against the allowlist mapping and is expected to revert for addresses that are not permitted; no fee or delta changes were identified.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee.
Owner & admin controls
Owner (slot 0) can transfer ownership and maintain an allowlist via allow(address) and disallow(address), which writes a mapping(address=>bool) in slot 1; the allowlist is read in beforeSwap, so the owner decides which addresses may swap.

Enabled Uniswap v4 callbacks

beforeSwap

beforeSwap is enabled and is used to gate swaps against the owner-managed allowlist mapping.

Security & trust assessment

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

Who controls it: The owner can add or remove addresses from the allowlist, so it can effectively block any trader from swapping, or let only chosen addresses trade, and can transfer ownership to any address.

Risk to user funds: The hook does not take custody of tokens or modify balances, but it can block non-allowlisted addresses from swapping, which limits user access to the pool rather than directly moving funds.

Security findings

  • [medium] Swap gating by owner-controlled allowlist: beforeSwap reads the allowlist mapping in slot 1, indicating that swaps are restricted to permitted addresses.
  • [low] Single-key ownership: Ownership can be transferred via transferOwnership with no visible timelock or two-step acceptance, so a single key controls the allowlist.
  • [info] Liquidity not gated: Only beforeSwap is enabled; liquidity operations are not restricted by this hook, so LPs can still add or remove liquidity.

Contract details

Verified source
No
Bytecode size
1,839 bytes
Upgradeable proxy
No
Detected patterns
ownable

Pools using Access control hook