Likely access control hook on BNB Chain
Uniswap v4 Hook Contract 0x384ff5d3126bb5f54021c2c7196870b3c6994880 on BNB Chain · Access control
- Volume (24h)
- $0
- Value locked (TVL)
- $7.00
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
This is an admin-controlled, upgradeable hook that limits who can add liquidity and checks per-pool settings on every swap (possibly setting a fee or pausing trading), while never taking swap tokens or blocking LP withdrawals.
How it works step by step
- Runs before liquidity is added and checks whether the pool is registered and whether the sender is allowed to add liquidity, likely via a per-pool allowlist.
- Runs before each swap, reads a per-pool setting (a 16-bit value, possibly a fee or limit) and updates a per-pool counter.
- Has a global on/off switch, settable by the owner, that the swap check reads. It may be able to pause or gate swaps.
- An admin or pool initializer registers pools and sets their configuration, including the per-pool parameters and allowlist entries.
- Sits behind an upgradeable (UUPS) proxy controlled by the owner.
- Swap behaviour
- Before each swap the hook checks the pool's registration, its per-pool configuration and a global flag, and records per-pool data such as a counter or timestamp. Swaps may be rejected based on these settings, but the hook cannot take tokens from swaps.
- Liquidity behaviour
- Adding liquidity is checked against pool registration and a per-pool address allowlist, so only approved addresses may be able to add. Remove-liquidity callbacks are disabled, so LPs can always withdraw freely.
- Fee behaviour
- No return-delta fee collection is possible. A per-pool 16-bit configuration value may set a dynamic fee, but its exact range cannot be confirmed from bytecode.
- Owner & admin controls
- The admin or owner can register and configure pools, manage the per-pool liquidity allowlist, toggle a global flag that affects swaps, and upgrade the implementation. Exact parameter caps are not verifiable from bytecode.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeSwap
beforeAddLiquidity: gates who can add liquidity to registered pools; beforeSwap: enforces per-pool configuration and global flags, and may set a fee or block swaps.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: The owner and admin control pool registration, configuration, allowlists, a swap flag and contract upgrades. At worst they can block swaps or new deposits, or change fee behaviour.
Risk to user funds: The hook cannot deduct tokens from swaps or liquidity, and it holds no user funds. LP withdrawals are always unrestricted, though fee levels set through any dynamic fee are unverified.
Security findings
- [medium] Upgradeable proxy: The owner can replace the implementation. The address bits still forbid return deltas and remove-liquidity callbacks, so an upgrade cannot take swap funds or block withdrawals.
- [low] Liquidity allowlist: Adding liquidity appears restricted to addresses the admin approves for each pool.
- [low] Swap gating flag: An owner-set flag and per-pool settings are read during swaps and could pause or restrict trading.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LP principal can never be locked by this hook.
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 $7.00, 0 swaps today