Access control hook on BNB Chain

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

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$2.59M
Pools using this hook
377
Swaps (24h)
0 (0 traders)
Total swaps
42,884

What it does

An allowlist hook that only lets approved addresses add liquidity to pools using it, with an owner who manages the list.

How it works step by step

  • On beforeAddLiquidity it reads a mapping(address => bool) of allowed providers and reverts if the caller is not on it (inferred from the storage reads and the custom error selectors).
  • The function 0xb7d1a2b7, isAllowedProvider(address), exposes the allowlist status of an address.
  • An owner stored in slot 0 can update the allowlist, either one address at a time (0xc4ed4354 address,bool) or in batches (0x65d24453 address[],bool).
  • Function 0x6ff1f06e (address) writes slot 0, which is the owner, so it most likely transfers ownership.
  • The hook only handles liquidity additions. Swaps and removals are not restricted.
Swap behaviour
No swap callbacks.
Liquidity behaviour
Before liquidity is added, the hook checks the allowlist and reverts for non-approved providers. Liquidity removal has no callback, so it is never restricted. Which address is checked, the sender passed in by the pool manager or something else, cannot be confirmed from the decoded output.
Fee behaviour
Uses the pool's static fee.
Owner & admin controls
A single owner (slot 0, readable via owner()) can add or remove allowed providers individually or in batches. A further owner-only function (0x6ff1f06e) writes the owner slot and probably transfers ownership. There is no pause and no upgrade mechanism in the decoded code, and no fee parameters.

Enabled Uniswap v4 callbacks

beforeAddLiquidity

beforeAddLiquidity is used to gate who may add liquidity by checking the allowlist.

Security & trust assessment

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

Who controls it: The owner decides which addresses may add liquidity and can transfer ownership. It cannot change fees, touch swaps, or block withdrawals through this hook.

Risk to user funds: Low. The hook has no return-delta permissions and no swap or removal callbacks, and the decoded functions show no token transfers, so it appears unable to hold or move funds. Its only effect is to revert liquidity additions from non-allowlisted callers.

Security findings

  • [low] Owner controls who can provide liquidity: The owner can change the allowlist mapping in slot 1 through 0xc4ed4354 and 0x65d24453, which decides who can add liquidity. It could stop new liquidity from being added by removing every provider.
  • [info] Ownership transfer without evident two-step process: Function 0x6ff1f06e(address) writes the owner slot. Whether it uses a two-step handover or validates the new address cannot be determined without source.
  • [info] No swap or removal restrictions: Only beforeAddLiquidity is enabled, so the hook cannot block swaps or liquidity removals, and there are no return-delta permissions.
  • [info] Unverified source: The analysis is inferred from decoded selectors, storage reads and writes, and error selectors. Exact checks, such as which address is validated, are not confirmed.

Contract details

Verified source
No
Bytecode size
1,685 bytes
Upgradeable proxy
No

Pools using Access control hook