Likely access control hook on BNB Chain

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

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

What it does

An upgradeable, admin-controlled hook that restricts who can add liquidity and applies per-pool swap checks or settings, without the ability to take swap tokens or block LP withdrawals.

This read was written for the hook 0x5623…48c0 on BNB Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Registers pools through an admin/pool-initializer and stores a per-pool configuration including a small fee-like value (uint16) and a per-pool counter.
  • Gates adding liquidity: beforeAddLiquidity checks a per-pool allowlist of addresses (likely only an approved position manager or whitelisted LPs can add).
  • Runs checks before and after swaps on registered pools, apparently tracking per-pool state and a global mode flag the owner can toggle.
  • Is an upgradeable UUPS proxy controlled by an owner, with a separate admin role managing pool configs and allowlists.
Swap behaviour
Before and after each swap the hook checks the pool is registered and reads per-pool settings and a global switch, possibly restricting or pausing swaps; it cannot take tokens from swaps because return-delta permissions are disabled. Exact swap rules cannot be confirmed from bytecode.
Liquidity behaviour
Adding liquidity is gated by a per-pool allowlist managed by the admin, so unapproved addresses may be blocked from depositing. Remove-liquidity callbacks are disabled, so LPs can always withdraw.
Fee behaviour
A per-pool 16-bit setting may be used as a dynamic fee override, but its exact value and cap cannot be verified from bytecode; the hook cannot skim swap tokens directly.
Owner & admin controls
The admin can register pools, set per-pool config values, and add or remove addresses from the liquidity allowlist; the owner can toggle a global flag and upgrade the implementation at any time. Caps on configured values are unknown.

Enabled Uniswap v4 callbacks

beforeAddLiquidity, beforeSwap, afterSwap

beforeAddLiquidity: enforces per-pool LP allowlist; beforeSwap: checks pool registration/config and global flag, possibly sets fee or blocks swaps; afterSwap: updates per-pool tracking state.

Security & trust assessment

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

Who controls it: An owner (upgrades, global toggle) and an admin (pool config, allowlists) hold control; worst case they can block new deposits, restrict or pause swaps, or change fee settings via upgrade.

Risk to user funds: The hook holds no return-delta rights and cannot deduct tokens from swaps or LP positions; any fee setting is unverified in range. LP principal cannot be locked or drained by the hook.

Security findings

  • [medium] Upgradeable proxy: The owner can swap the implementation, changing swap gating or fee logic, but address bits prevent taking swap tokens via deltas or blocking LP withdrawals.
  • [medium] Admin-gated liquidity and swaps: Admin controls who can add liquidity and a global switch read during swaps may pause or restrict trading.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LPs can always remove liquidity.

Contract details

Verified source
No
Bytecode size
100 bytes
Upgradeable proxy
Yes
Detected patterns
ownable, upgradeable

Pools using Likely access control hook