Dynamic fee hook on Arc
Uniswap v4 Hook Contract 0x8ca486e0ee09307880d428c0089ea683a24a40c0 on Arc · Dynamic fee
- Volume (24h)
- $0
- Value locked (TVL)
- $4.00
- All-time volume
- $0
- Pools using this hook
- 16
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
This hook sets each swap's fee based on the trader, so owner-approved quoters pay one rate and everyone else pays another. It also runs a bid system after swaps, while LPs can always withdraw freely.
How it works step by step
- Charges a swap fee that depends on who is swapping: approved 'quoter' addresses get one fee rate (quoteFee) and everyone else gets another (settleFee).
- The owner can set both fee rates and add or remove approved quoter addresses.
- Includes a bid feature: a user can place a bid tied to a pool and a price tick. The hook can later execute it after swaps or let the bidder cancel it.
- The hook can itself call the PoolManager to create pools, add or remove its own liquidity, and swap for bid settlement.
- Swap behaviour
- Before each swap the hook checks whether the swapper is an approved quoter and returns a dynamic fee override, either the quoter rate or the standard rate. After the swap it may process stored bids, but it cannot take tokens from the swap through return deltas.
- Liquidity behaviour
- No liquidity callbacks; LPs can add and withdraw freely. The hook can manage its own liquidity positions for bids, but it cannot block other LPs.
- Fee behaviour
- The swap fee is overridden per swap: approved quoters pay the quote fee and other traders pay the settle fee. Both are owner-set and rejected with a BadFee error above an unknown cap. Fees go to LPs through the normal pool fee mechanism.
- Owner & admin controls
- The owner can change the two fee rates with setFees, which has a cap check whose exact limit is not visible in bytecode, and can approve or revoke quoter addresses. No pause or withdrawal controls were found.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap
beforeSwap: picks the fee rate based on whether the swapper is an approved quoter; afterSwap: checks and settles stored bids after price moves.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: A single owner sets the fee rates and the quoter allowlist. At worst they could raise the fees for regular traders up to an unverified cap or favor chosen addresses.
Risk to user funds: The hook cannot take swap tokens or LP principal, and LP withdrawals are unrestricted. Only funds bidders voluntarily deposit into bids pass through the hook, and the exact fee ceiling is unknown from bytecode.
Security findings
- [low] Owner-set fees with unverified cap: The owner can change both fee rates. A BadFee check exists, but the maximum cannot be confirmed from bytecode.
- [info] Preferential pricing for whitelisted quoters: Addresses approved by the owner pay a different, likely lower, fee than ordinary traders.
- [low] Bid funds held via hook: Bidders deposit tokens through a payable function and transferFrom. Settlement and cancellation logic cannot be fully verified without source.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks and return deltas are disabled, so LPs can always withdraw.
Contract details
- Verified source
- No
- Bytecode size
- 8,554 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, moves-currency, ownable, self-unlock
Pools using Dynamic fee hook
- USDC / FOCI (Dynamic fee) — 24h volume $0, TVL $2.00, 0 swaps today
- USDC / TOLLY (Dynamic fee) — 24h volume $0, TVL $2.00, 0 swaps today
- USDC / FOCI (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / TOLLY (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ASTOCK (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ARGUS (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ASTOCK (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ARGUS (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / EURC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / EURC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / EURC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / EURC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / EURC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / cirBTC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / cirBTC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / cirBTC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today