Dynamic fee hook on BNB Chain

Uniswap v4 Hook Contract 0x141984423d1a28242b3dd8888c5b0daa7b13c880 on BNB Chain · Dynamic fee

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$7.85M
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
4,983

What it does

A dynamic-fee hook for Uniswap v4 pools on BNB Chain whose fee tiers and pause state are controlled by an owner, with an allowlist and per-pool registration.

How it works step by step

  • Implements a beforeSwap callback that applies a configurable dynamic LP fee
  • Implements a beforeAddLiquidity callback that updates or checks per-pool liquidity state
  • Stores fee tiers (tierOne, tierTwo, tierThree), a default fee and per-address or per-pool fee overrides
  • Supports pool registration and a pause switch controlled by the owner
  • Maintains an allowlist of addresses and a gas threshold parameter
Swap behaviour
beforeSwap is enabled and appears to select or apply a dynamic LP fee from owner-configured tiers and overrides for each pool.
Liquidity behaviour
beforeAddLiquidity callback is implemented and may gate or track liquidity additions per pool, with per-pool and per-address state being updated; no removal callback is enabled.
Fee behaviour
Fees appear to be configurable per tier and per pool or address via owner-set fee configuration (tierOneFee, tierTwoFee, tierThreeFee, defaultFee, getFeeOverride, MAX_LP_FEE and OVERRIDE_FEE_FLAG). The beforeSwap callback likely returns a dynamic LP fee using the override flag; exact fee selection logic cannot be fully determined without source.
Owner & admin controls
Owner-gated functions include setPaused (pause/unpause swaps and liquidity), setAllowed (allowlist of addresses), setGasThreshold, fee and tier configuration setters (2d398609, 5ddf0f5e, 40bba228, bcbed1cd, 7a9ab2c6, e55b47d6, 179cbdee, af7d96ec, 6c7e6180, c94e2375, 54e4acab) and pool registration (ce07d308). Owner address is stored in the hook; NotOwner revert selector is present. No upgrade proxy pattern was identified.

Enabled Uniswap v4 callbacks

beforeAddLiquidity, beforeSwap

beforeSwap sets a dynamic fee for swaps based on the stored fee configuration; beforeAddLiquidity runs a check or bookkeeping step before liquidity is added.

Security & trust assessment

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

Who controls it: The owner can pause the hook, change fee tiers and default fees (including fee overrides for addresses and pools), manage an allowlist, and register pools. A malicious or compromised owner key could raise fees to the maximum LP fee on any pool or block swaps and liquidity additions via pause.

Risk to user funds: The hook does not appear to hold user tokens or return deltas from the decoded selectors. Users are exposed to fee changes and pausing decisions made by the owner, which can affect swap execution and liquidity additions, but direct custody of pool funds could not be confirmed.

Security findings

  • [medium] Owner-controlled pause: The setPaused function is present and the paused() view is exposed, so an owner can halt hook-dependent operations.
  • [medium] Owner can change swap fees: Multiple setters (fee tiers, default fee, per-address and per-pool fee overrides, LP fee caps) let the owner change swap pricing at will.
  • [low] Allowlist gating: Owner-gated setAllowed and allowedAddresses logic suggests an access list that may restrict who can interact with pools.
  • [info] Unverified source: Bytecode contains a deployment fingerprint and entropy functions, which suggest a non-standard or obfuscated deployment; a full review requires verified source.

Contract details

Verified source
No
Bytecode size
13,524 bytes
Upgradeable proxy
No
Detected patterns
pausable

Pools using Dynamic fee hook