ZiaFeeHook on Robinhood Chain
Uniswap v4 Hook Contract 0x64e9ae1066c47ac4a3cc0a5bd7b135908590e088 on Robinhood Chain · Dynamic fee · Verified contract
- Volume (24h)
- $211.48K
- Value locked (TVL)
- $502.92K
- All-time volume
- $19.32M
- Pools using this hook
- 22
- Swaps (24h)
- 5,324 (1,375 traders)
- Total swaps
- 274,939
What it does
Applies a keeper-adjustable LP fee (default 0.25%, max 1%) on swaps in dynamic-fee pools and skims a small bounded hook fee (default 0.05%, max 0.25%) from each swap, which accrues to an immutable treasury.
How it works step by step
- Requires pools to use the dynamic-fee flag at initialization and records default config per pool.
- Returns a keeper-set LP fee override (capped at 1.00%) on every swap.
- Charges a hook fee (capped at 0.25%) on the specified amount of each swap via a beforeSwap return delta.
- Holds the hook fee as ERC-6909 claims that anyone can redeem to the immutable treasury through collectFees.
- Exposes keeper-only setters for per-pool LP and hook fees with hard caps and events.
- Swap behaviour
- beforeSwap sets the per-swap LP fee override and, when the hook fee is nonzero, takes a fee of the specified amount in the specified currency as ERC-6909 claims, returning it as a positive specified delta.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Each pool carries a keeper-settable LP fee override (default 0.25%, capped at 1.00%) returned from beforeSwap with the override flag. A hook fee (default 0.05% of the specified swap amount, capped at 0.25%) is taken in the specified currency as an ERC-6909 claim owned by the hook; anyone can redeem those claims to the immutable treasury via collectFees.
- Owner & admin controls
- No owner, proxy, upgrade path or pause. Immutable keeper can call setLpFee (max 1.00%, bounded) and setHookFee (max 0.25%, bounded) per initialized pool. Treasury is immutable and is the only redemption destination for accrued fees. collectFees is permissionless but fixed to treasury.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, beforeSwapReturnDelta
beforeInitialize: requires dynamic-fee pools and registers per-pool config. beforeSwap: applies the LP fee override and takes the hook fee through a positive beforeSwap specified delta. beforeSwapReturnDelta: enables the hook to take a portion of the swap's specified amount.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: The keeper can raise LP fees on any pool up to 1.00% and the hook fee up to 0.25% instantly, affecting swap pricing for all users in those pools, but cannot redirect funds, pause swaps, or change the treasury. Keeper key compromise would limit damage to these fee caps.
Risk to user funds: The hook does not custody LP principal; it holds only ERC-6909 claims accrued from its own hook fee. It cannot block swaps or liquidity actions (it has no liquidity callbacks and no pause). Users pay the bounded LP and hook fees on swaps.
Security findings
- [info] Swap-level fee extraction via return delta: The hook takes a fee on the specified side of every swap via a beforeSwap return delta, so it can divert up to 0.25% of swap amounts to its claim balance.
- [low] Keeper can change fees instantly within caps: setLpFee and setHookFee are instantly effective with no timelock, so the keeper can change swap costs for live pools, capped at 1.00% LP and 0.25% hook fee.
- [info] Permissionless claim redemption to fixed treasury: collectFees is permissionless but its destination is fixed to the immutable treasury, and it reverts on reentrancy via the _collecting flag.
- [info] No owner, proxy or pause: Pool fee configuration is set at initialization and no owner or upgrade path exists; the contract holds no user principal beyond transient claims.
Contract details
- Verified source
- Yes (ZiaFeeHook)
- Compiler
- solc 0.8.30+commit.73712a01
- Bytecode size
- 7,853 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc6909-claims, moves-currency, return-delta, self-unlock
Pools using ZiaFeeHook
- WETH / USDG (Dynamic fee) — 24h volume $63.10K, TVL $102.17K, 2,156 swaps today
- SPY / USDG (Dynamic fee) — 24h volume $57.42K, TVL $55.74K, 621 swaps today
- BUN / USDG (Dynamic fee) — 24h volume $31.74K, TVL $53.27K, 530 swaps today
- USDG / AAPL (Dynamic fee) — 24h volume $13.34K, TVL $12.44K, 442 swaps today
- USDG / cbBTC (Dynamic fee) — 24h volume $10.70K, TVL $34.08K, 339 swaps today
- ETH / cbBTC (Dynamic fee) — 24h volume $10.45K, TVL $32.20K, 315 swaps today
- W0G / USDG (Dynamic fee) — 24h volume $9.88K, TVL $185.99K, 20 swaps today
- SPCX / USDG (Dynamic fee) — 24h volume $7.53K, TVL $5.59K, 631 swaps today
- ETH / GAGE (Dynamic fee) — 24h volume $4.32K, TVL $903, 108 swaps today
- WETH / AUR (Dynamic fee) — 24h volume $1.73K, TVL $14, 64 swaps today
- USDG / SHERWOOD (Dynamic fee) — 24h volume $1.04K, TVL $2.38K, 28 swaps today
- GOOGL / USDG (Dynamic fee) — 24h volume $223, TVL $783, 37 swaps today
- USDG / NVDA (Dynamic fee) — 24h volume $10, TVL $222, 9 swaps today
- LINK / USDG (Dynamic fee) — 24h volume $0, TVL $17.13K, 21 swaps today
- GAGE / sGAGE (Dynamic fee) — 24h volume $0, TVL $0, 3 swaps today
- TSLA / USDG (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- PONS / USDG (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / CASHCAT (Dynamic fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- ETH / GIWA (Dynamic fee) — 24h volume $0, TVL $4.86, 0 swaps today
- ETH / SHERWOOD (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today