Access control hook on BNB Chain

Uniswap v4 Hook Contract 0x824be9428749f110b24a06f99e7f1bbf5f82a800 on BNB Chain · Access control

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$66.21M
Pools using this hook
3,399
Swaps (24h)
0 (0 traders)
Total swaps
1.1M

What it does

Gates pool setup and liquidity provision for Uniswap v4 pools on BSC, likely limiting which addresses may add liquidity.

How it works step by step

  • Runs logic when a pool is initialized, referencing the pool key and a registration mapping
  • Checks a per-pool, per-address mapping before liquidity is added
  • Stores an address mapping keyed by pool identifier, likely tracking the pool owner or manager
  • Exposes view functions for pool registration status, pool key lookup, and config version
  • Exposes an admin-controlled setter that toggles boolean permissions
Swap behaviour
No swap callbacks.
Liquidity behaviour
beforeAddLiquidity (0x259982e5) is implemented and reads a mapping keyed by pool and address, suggesting it gates which addresses may add liquidity to registered pools. Whether it reverts for unauthorized LPs or only records state could not be confirmed.
Fee behaviour
Uses the pool's static fee. No fee logic was identified in the decoded functions.
Owner & admin controls
An ADMIN() getter and a per-pool-config-version mapping suggest an admin role that can enable or disable addresses via the nonpayable selector 0xc4452e52 (takes uint256, address, bool). Exact admin functions could not be confirmed without source, so the scope of admin power is uncertain.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity

beforeInitialize: validates or registers a pool when it is initialized, checked against the poolKey and pool registration mapping. beforeAddLiquidity: runs a check before liquidity is added, likely restricting which LPs may provide liquidity.

Security & trust assessment

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

Who controls it: An admin key can likely register pools and change which addresses are allowed to add liquidity. Without source it is unclear whether the admin can also pause pools or change the allowlist arbitrarily.

Risk to user funds: The hook does not appear to hold or move pool funds because it has no return-delta or swap callbacks. However, the liquidity gate could prevent non-allowlisted addresses from adding liquidity, which blocks deposits rather than endangering existing funds.

Security findings

  • [medium] Allowlist-gated liquidity provision: beforeAddLiquidity reads a per-pool, per-address boolean mapping and an initializer-style flag, which indicates an allowlist gate. An admin-controlled setter (0xc4452e52) can alter this state.
  • [info] Unclear state flag written during liquidity add: A uint8 storage slot at slot 3 is written in beforeAddLiquidity, which may act as a state flag or reentrancy-style guard. Its purpose could not be confirmed.
  • [info] No direct fund custody indicated: The hook does not appear to take tokens or alter swap deltas, since no swap or return-delta permissions are enabled.

Contract details

Verified source
No
Bytecode size
5,427 bytes
Upgradeable proxy
No

Pools using Access control hook