Likely access control hook on BNB Chain
Uniswap v4 Hook Contract 0xaac61949eb98cdfa19249851e50c8986336048c0 on BNB Chain · Access control
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
An upgradeable, admin-managed hook that restricts who can add liquidity and gates swaps on registered pools with configurable per-pool settings, without taking any extra cut of trades through deltas and leaving LP withdrawals always open.
This read was written for the hook 0xae58…08c0 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 or pool-initializer role and stores a per-pool configuration, including a small numeric setting (likely a fee or limit value).
- Checks every liquidity addition against a per-pool allowlist, so only approved addresses (for example a position manager) can add liquidity.
- Runs checks before and after each swap and tracks a per-pool counter or timestamp, which suggests trading gates, cooldowns or a launch phase.
- Has an owner-controlled on/off switch that affects swap behaviour, possibly a global pause or mode toggle.
- Sits behind an upgradeable proxy whose owner can replace the logic, though only within the fixed callbacks.
- Swap behaviour
- Before each swap the hook reads the pool's registration, its per-pool setting and a global flag, and updates a per-pool tracker, so swaps may be restricted or blocked depending on admin settings. It cannot take tokens from swaps because return-delta permissions are disabled.
- Liquidity behaviour
- Adding liquidity is gated by a per-pool allowlist checked before the deposit. Removal callbacks are disabled, so LPs can always withdraw freely, even after an upgrade.
- Fee behaviour
- No return-delta fee is possible; the hook may set a pool-specific value, likely a fee, but the exact percentage and cap cannot be confirmed from bytecode.
- Owner & admin controls
- The owner can upgrade the implementation, toggle a global flag, and transfer or renounce ownership; the admin or pool initializer can register pools, set per-pool settings and manage the liquidity allowlist. Exact caps on any per-pool fee value are unknown.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeSwap, afterSwap
beforeAddLiquidity: enforces the per-pool allowlist of depositors; beforeSwap: checks pool registration and global flag and updates per-pool state, possibly gating or pricing swaps; afterSwap: post-swap bookkeeping.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: An owner controls upgrades and a global switch, and an admin/initializer manages pool registration, settings and depositor allowlists. At worst they can block or reprice swaps and stop new deposits, but cannot freeze LP withdrawals or take swap tokens via deltas.
Risk to user funds: The hook does not hold pool reserves and cannot deduct tokens from swaps or liquidity via return deltas; any dynamic fee value is unverified. LP principal cannot be locked since removal callbacks are disabled.
Security findings
- [medium] Upgradeable proxy with bounded permissions: The owner can swap the implementation, but the hook address has no return-delta or remove-liquidity permissions, so an upgrade cannot take swap tokens or block withdrawals; it can change swap gating or fee logic.
- [medium] Swap gating and pause-like toggle: An owner-set flag and per-pool settings are read in beforeSwap, so admins can likely restrict or halt trading on registered pools.
- [low] Liquidity allowlist: Only allowlisted addresses can add liquidity to each pool; withdrawals are never affected.
Contract details
- Verified source
- No
- Bytecode size
- 100 bytes
- Upgradeable proxy
- Yes
- Detected patterns
- ownable, upgradeable
Pools using Likely access control hook
- YY / WBNB (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today