Dynamic fee hook on Arc
Uniswap v4 Hook Contract 0x7f4af755f1b57d8ee249a9fdc993ace675572080 on Arc · Dynamic fee
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 2
- Swaps (24h)
- 8 (1 traders)
- Total swaps
- 8
What it does
This hook sets a dynamic, admin-tunable fee for each pool that it manages and can pause pools, while also taking a claim fee from accrued fees for a designated recipient.
This read was written for the hook 0xf8f5…6080 on BNB Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.
How it works step by step
- Sets a per-pool dynamic LP fee in beforeInitialize and beforeSwap, read through currentFee and autonomousFee keyed by pool id
- Tracks a fee floor, pokes, day-of-week and early-close session overrides that adjust the fee over time
- Supports pausing individual pools or the whole hook via pause, setPoolPaused and setPaused, with a pausedUntil timestamp
- Tracks a claim fee (claimFeeBps) that is taken from fees via claimFees, withdrawAndClaim and setClaimFee and routed to a claim fee recipient
- Exposes an operator and authority model (setOperator, setAuthority, canCall) gating privileged configuration
- Swap behaviour
- beforeSwap is registered and reads the stored dynamic fee for the pool, so swap fees depend on the current fee state, floor, pokes and session overrides; the exact direction of which trades pay more or less could not be confirmed from decoded bytecode alone.
- Liquidity behaviour
- Liquidity add and remove hooks are present as view-style selectors in the dispatch table but no callback permission is enabled for them; liquidity is managed through deposit, withdraw and withdrawAndClaim which move funds via the pool manager, including a claim fee on withdrawal.
- Fee behaviour
- The hook sets a dynamic fee per pool, bounded by ABSOLUTE_MAX_FEE and MIN_POOL_FEE, with pokes, floors, asymmetry settings and day or early-close overrides; claimFeeBps takes a share of fees for the claim fee recipient.
- Owner & admin controls
- An authority and operator model controls setPoolConfig, setPoolAsymmetry, setDayOverrides, setSessionHours, setEarlyClose, setClaimFee, setClaimFeeBps, sweepClaimFee, pause and setPaused, plus setAuthority and setOperator; the authority can change parameters and pause pools.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap
beforeInitialize registers the pool and seeds its dynamic fee; beforeSwap applies the dynamic fee for each swap.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: A single authority or operator key can reconfigure fees, the claim fee and claim recipient, pause pools and sweep claim fees, so users depend on that key's behaviour.
Risk to user funds: The hook holds and moves funds through deposit, withdraw and claim paths using the pool manager, so user and pool balances are exposed to its logic and to pausing or fee-configuration changes.
Security findings
- [medium] Privileged fee configuration: Authority or operator roles can change pool fee configuration, floors, asymmetry and day overrides, which directly changes what swappers pay.
- [medium] Pausing can block swaps and withdrawals: pause, setPoolPaused and setPaused exist, so a privileged key could halt swaps or liquidity actions for a pool or the whole hook.
- [info] Claim fee takes a share of fees: claimFeeBps with claimFees, withdrawAndClaim and sweepClaimFee routes a portion of fees to a claim fee recipient, which an admin can change.
- [info] Hook moves currency: Heuristics indicate the hook moves currency (take, settle and transfer paths), so it handles user and pool funds during withdrawals and claims.
Contract details
- Verified source
- No
- Bytecode size
- 24,565 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, pausable, self-unlock
Pools using Dynamic fee hook
- tQQQ / tUSDC (Dynamic fee) — 24h volume $0, TVL $0, 4 swaps today
- tUSDC / tCRCL (Dynamic fee) — 24h volume $0, TVL $0, 4 swaps today