Dynamic fee hook on Base

Uniswap v4 Hook Contract 0x67b76760bf76dbd9d92d0d1599253685fba980c0 on Base · Dynamic fee

Volume (24h)
$5.03
Value locked (TVL)
$0
All-time volume
$5.03
Pools using this hook
1
Swaps (24h)
1 (1 traders)
Total swaps
1

What it does

This unverified hook charges an owner-set dynamic swap fee, which can differ for approved quoters versus other traders and steps up or down automatically, and it manages limit-style bids that auto-close after swaps, while LPs adding directly to the pool can withdraw freely.

How it works step by step

  • Sets a dynamic swap fee on each trade, with a separate fee level for approved quoter addresses and a settle fee for other traders.
  • Can automatically step the fee up or down within a configured floor and ceiling based on recent fills.
  • Lets users place bids (limit-style liquidity positions at a chosen tick) that the hook adds to the pool and can auto-close after swaps cross them.
  • Users can cancel their own bids, and the hook removes that liquidity and returns the tokens.
  • The owner can set fee levels, manage the quoter list and toggle auto-close.
Swap behaviour
Before each swap the hook picks a fee, which can differ for approved quoters versus other traders and can step up or down automatically. After the swap it may close bids the price has crossed. It cannot take tokens from swaps through return deltas.
Liquidity behaviour
No liquidity callbacks. LPs who add liquidity directly to the pool can withdraw freely. Bids placed through the hook become hook-owned positions that are closed by auto-close or by cancel.
Fee behaviour
Uses a dynamic LP fee chosen per swap from owner-set values, including a quote fee, a settle fee and a floor with step-up and step-down sizes. Exact caps cannot be confirmed from bytecode, though a BadFee check suggests some validation. Fees go to pool liquidity providers.
Owner & admin controls
The owner can set the fee values and fee step parameters, add or remove quoters, and toggle auto-close. Exact maximum fee bounds are not verifiable from bytecode.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap

beforeSwap: chooses the dynamic fee based on caller type and the step logic; afterSwap: records fills and auto-closes crossed bids.

Security & trust assessment

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

Who controls it: A single owner sets the fees, the quoter allowlist and the auto-close setting. The worst case is high or discriminatory swap fees, up to an unverified cap.

Risk to user funds: The hook cannot deduct tokens from swaps or block normal LP withdrawals. It does hold liquidity for user bids it manages, and the fee range is not verifiable from bytecode.

Security findings

  • [medium] Owner-set dynamic fees with unverified cap: The owner can change the swap fee levels, and a BadFee error suggests a cap exists, but its value cannot be confirmed from bytecode.
  • [low] Quoter-based fee discrimination: Allowlisted quoter addresses can receive a different fee than other traders, as chosen by the owner.
  • [low] Hook custody of bid positions: Bid liquidity is held as hook-owned positions, so returning those funds depends on the hook's cancel and auto-close logic working correctly.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks and return deltas are disabled, so the hook cannot block withdrawals or skim swap amounts.

Contract details

Verified source
No
Bytecode size
11,124 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, erc20, moves-currency, ownable, self-unlock

Pools using Dynamic fee hook