Dynamic fee hook on Arc
Uniswap v4 Hook Contract 0xf674625f56a1d03a4d03bd221d2ff0afb45080c0 on Arc · Dynamic fee
- Volume (24h)
- $2.14
- Value locked (TVL)
- $0
- All-time volume
- $2.14
- Pools using this hook
- 3
- Swaps (24h)
- 2 (2 traders)
- Total swaps
- 2
What it does
A dynamic-fee hook where owner-registered quoters pay a different swap fee than other traders, combined with a bid mechanism settled after swaps, while normal LPs keep the ability to withdraw freely.
How it works step by step
- Sets a dynamic swap fee in beforeSwap, with one fee rate for registered quoters and another for everyone else (quoteFee and settleFee).
- The owner can change these fees and register or remove quoter addresses.
- Lets users place payable bids that appear to add liquidity at chosen ticks, which are filled or settled in afterSwap and can be cancelled.
- Uses PoolManager unlock, modifyLiquidity, swap, take and settle to manage bid positions on its own account.
- Swap behaviour
- Before each swap the hook picks a fee, likely lower or different for addresses flagged as quoters, and may apply a time-based fee setting. After the swap it checks stored bids and may settle them. It cannot take tokens from swaps through return deltas.
- Liquidity behaviour
- No remove-liquidity callbacks, so ordinary LPs can add and withdraw freely. Bidders deposit funds through the hook's own bid function, and the hook holds those positions until they are filled or cancelled.
- Fee behaviour
- The fee is dynamic and is chosen from owner-set values: a quoter fee and a settle fee. A BadFee check exists, but the exact cap cannot be confirmed from bytecode. Fees go to LPs through the normal pool fee.
- Owner & admin controls
- The owner can set the two fee values (bounded by an unknown BadFee check), set a time- or amount-based parameter, and add or remove quoter addresses that get different fee treatment.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap
beforeSwap: chooses the dynamic fee depending on who is swapping. afterSwap: processes stored bids after price moves.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: A single owner sets the fees and the quoter list. The worst they can do is raise fees up to an unverified cap or favor certain swappers.
Risk to user funds: Normal LP principal cannot be locked, and swaps cannot be deducted through return deltas. Bid deposits are held through the hook's own positions, and the exact fee maximum is unknown.
Security findings
- [medium] Owner-set dynamic fees with unverified cap: The owner can change swap fees. A BadFee revert suggests there is a bound, but its exact value is unknown from bytecode.
- [low] Quoter allowlist affects fees: The owner chooses which addresses count as quoters, and those addresses get a different fee than other traders.
- [low] Hook holds bid funds: Bidders' deposits are managed by the hook through its own liquidity positions, and refunds depend on the cancel logic, which is not verified.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook cannot block normal LPs from withdrawing.
Contract details
- Verified source
- No
- Bytecode size
- 9,102 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, moves-currency, ownable, self-unlock
Pools using Dynamic fee hook
- USDC / cirBTC (Dynamic fee) — 24h volume $1.48, TVL $0, 1 swaps today
- USDC / cirBTC (Dynamic fee) — 24h volume $0.67, TVL $0, 1 swaps today
- USDC / cirBTC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today