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
- USDT / WBNB (Dynamic fee) — 24h volume $1.32, TVL $0, 2 swaps today