Access control hook on BNB Chain

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

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$13.03M
Pools using this hook
301
Swaps (24h)
0 (0 traders)
Total swaps
223,282

What it does

Gates liquidity provision on a pool so that only addresses on an owner-managed allowlist can add liquidity.

How it works step by step

  • Implements beforeAddLiquidity and reads a mapping(address => bool) allowlist (slot 1) to decide whether the liquidity provider is permitted.
  • Exposes isAllowedProvider(address) so anyone can check whether an address is approved.
  • Lets the owner add or remove a single provider (selector 0xc4ed4354, address and bool) and update many at once (selector 0x65d24453, address[] and bool). The function names are not decoded, so this is inferred from the signatures and the storage writes to the mapping.
  • Has an owner stored in slot 0 and an owner-only function (selector 0x6ff1f06e, address) that writes that slot, which most likely transfers ownership.
  • Contains custom error selectors E1() and E3(address). These are probably used to reject unauthorised callers and disallowed providers, but their purpose is not confirmed.
Swap behaviour
No swap callbacks.
Liquidity behaviour
Before liquidity is added, the hook checks the allowlist for the provider and, judging by the custom errors, reverts if it is not approved. Removing liquidity is not hooked, so existing positions can always be withdrawn.
Fee behaviour
Uses the pool's static fee.
Owner & admin controls
The owner (slot 0) can add or remove addresses from the provider allowlist, singly or in batches, and can call a function that writes the owner slot, most likely an ownership transfer. No pause, upgrade or fee parameters were found in the decoded functions.

Enabled Uniswap v4 callbacks

beforeAddLiquidity

beforeAddLiquidity is used to enforce the provider allowlist before any liquidity is added to the pool.

Security & trust assessment

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

Who controls it: A privileged owner can restrict liquidity provision to chosen addresses and can censor new LPs. It can also hand control to another address. It cannot change fees or block swaps based on the decoded functions.

Risk to user funds: The hook has no token-moving logic or return-delta permissions and does not appear to hold funds. Its only effect is to allow or revert liquidity additions, so exposure for traders and existing LPs is minimal.

Security findings

  • [low] Owner controls who can provide liquidity: Selectors 0xc4ed4354 and 0x65d24453 write the allowlist mapping and read the owner slot, so the owner can approve or block any LP address at will.
  • [info] Ownership change function: Selector 0x6ff1f06e takes an address and writes slot 0, which also holds the owner, so ownership is probably transferable. A single transfer call changes who controls the allowlist.
  • [info] No swap or removal callbacks: Only beforeAddLiquidity is enabled, so the hook cannot block swaps or withdrawals and cannot take tokens through return deltas.
  • [info] Unverified source: Function names and revert conditions are inferred from decoded selectors and storage access, not from verified source.

Contract details

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

Pools using Access control hook