Access control hook on BNB Chain
Uniswap v4 Hook Contract 0x7940233d825cbd48beddc541d1809225fae9a080 on BNB Chain · Access control
- Volume (24h)
- $105.37K
- Value locked (TVL)
- $24.61K
- All-time volume
- $105.37K
- Pools using this hook
- 1
- Swaps (24h)
- 2,618 (425 traders)
- Total swaps
- 2,618
What it does
This hook keeps an owner-set sale address that its swap and initialization checks read, but without source the exact effect on which trades pay more or less cannot be determined.
How it works step by step
- Hook is registered with beforeInitialize and beforeSwap permissions only
- Stores a sale address in storage slot 2, set by the owner through setSale(address)
- beforeSwap reads the stored sale address, suggesting swaps are gated or routed based on it
- Owner state is kept in slot 0 with a two-step transfer via pendingOwner in slot 1
- beforeInitialize also reads the sale address, so pool initialization is tied to the same configured sale
- Swap behaviour
- beforeSwap reads the stored sale address (slot 2) and may gate or route swaps against it; the exact condition cannot be determined from bytecode alone. No afterSwap fee or delta changes are enabled by the permissions.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Uses the pool's static fee. A FEE() getter exists, but the hook has no permission to override the fee and the bytecode does not show it being applied to swaps.
- Owner & admin controls
- Owner can call setSale to change the sale address that beforeSwap relies on. Ownership can be transferred with a two-step process (transferOwnership then acceptOwnership) or renounced.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap
beforeInitialize: reads the sale address during pool initialization. beforeSwap: reads the sale address and likely checks it during swaps.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: A single owner key can point the hook at any sale address, which can change how swaps behave for all users of pools using this hook.
Risk to user funds: The hook takes no return deltas and has no visible token transfer logic, so it does not hold funds directly; however, owner changes to the sale address could block or redirect swap execution.
Security findings
- [medium] Owner-controlled sale address: The owner can change the stored sale address via setSale, which the swap path reads, so the owner can alter swap gating or routing at will.
- [info] Unverified swap logic: No verified source is available, so the exact conditions in beforeSwap that use the sale address cannot be confirmed.
- [info] Ownable with renounce option: Ownership is controlled by a single key that can be transferred or renounced; no timelock is visible in the bytecode.
Contract details
- Verified source
- No
- Bytecode size
- 2,234 bytes
- Upgradeable proxy
- No
- Detected patterns
- ownable
Pools using Access control hook
- SHIT / U (Dynamic fee) — 24h volume $105.37K, TVL $24.61K, 2,618 swaps today