Likely fee sharing hook on Robinhood Chain
Uniswap v4 Hook Contract 0xf91fa276746feff8021edfc76d44a856a579e044 on Robinhood Chain · Fee sharing
- Volume (24h)
- $64
- Value locked (TVL)
- $61.48K
- All-time volume
- $3.60M
- Pools using this hook
- 1
- Swaps (24h)
- 1 (1 traders)
- Total swaps
- 18,387
What it does
A Uniswap v4 hook that charges owner-set buy and sell fees on swaps, routes those fees to a dev wallet, and applies per-swap quote-token limits that the owner can remove.
How it works step by step
- Charges a buy fee and a sell fee expressed in basis points, bounded by MAX_FEE_BPS.
- Takes the fee from swap output through afterSwapReturnDelta and transfers it to the dev wallet.
- Enforces a maximum quote-token amount per swap while limits are enabled.
- Lets the owner exempt specific addresses from the limits.
- Lets the owner permanently disable limits via removeLimits.
- Swap behaviour
- afterSwap takes a buy or sell fee in basis points from the swap delta and transfers it to the dev wallet, with limit checks against maxQuotePerSwap when limits are enabled and exempt addresses bypassing them.
- Liquidity behaviour
- beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are exposed but the permissions do not enable them, so the hook does not act on liquidity changes.
- Fee behaviour
- Buy and sell fees are set by the owner in basis points through setSwapFees and bounded by MAX_FEE_BPS; afterSwap takes a fee via return delta and routes it to the dev wallet, with the quote token used as the fee currency.
- Owner & admin controls
- Owner (slot 0) can set the dev wallet, set buy and sell fee basis points (up to MAX_FEE_BPS), toggle per-address limit exemptions, remove the per-swap quote limits permanently via removeLimits, transfer ownership, and call an unnamed nonpayable function with selector 0xf73c5829 that writes the boolean stored in slot 2 (likely a pause or toggle) while the owner-only setters are not gated by a verified modifier in source.
Enabled Uniswap v4 callbacks
beforeInitialize, afterSwap, afterSwapReturnDelta
beforeInitialize is used to validate or set up the pool at creation; afterSwap is used to take a fee from the swap output and send it to the dev wallet; afterSwapReturnDelta lets the hook adjust the swap delta so it can take a share of the traded amount.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: The owner key can change fees up to the cap, redirect fee proceeds by changing the dev wallet, exempt addresses from limits, transfer ownership, and call the unnamed toggle function, so a compromised owner can alter trading costs for all users immediately.
Risk to user funds: The hook takes a fee in the quote token on swaps via return delta and sends it to the dev wallet, so it can hold or move a portion of swap proceeds; it does not hold LP principal, and the unnamed toggle could block swaps if it acts as a pause.
Security findings
- [medium] Owner-adjustable swap fees: Owner can set buy and sell fees via setSwapFees, bounded by MAX_FEE_BPS, which changes the cost of every swap.
- [medium] Owner can redirect fee proceeds: setDevWallet is owner-controlled and afterSwap moves fee tokens to the stored dev wallet, so changing the address redirects fee revenue.
- [medium] Hook moves swap currency: The hook uses afterSwapReturnDelta and the take function, so it moves currency out of the pool on swaps; a bug in fee math could misroute pool funds.
- [low] Unnamed state-changing function: Selector 0xf73c5829 is an unnamed nonpayable owner-reachable function writing slot 2, whose purpose cannot be confirmed without source and may block trading.
- [info] Limits can be permanently removed: removeLimits is irreversible and clears the limitsEnabled flag, which is an intentional one-way change by the owner.
Contract details
- Verified source
- No
- Bytecode size
- 4,726 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, ownable, return-delta
Pools using Likely fee sharing hook
- MCD / USDG (0.00% fee) — 24h volume $64, TVL $61.48K, 1 swaps today