Fee sharing hook on Robinhood Chain
Uniswap v4 Hook Contract 0x2194c5d0169456be1603df807974b1821231c8c4 on Robinhood Chain · Fee sharing
- Volume (24h)
- $682
- Value locked (TVL)
- $233
- All-time volume
- $3.86K
- Pools using this hook
- 7
- Swaps (24h)
- 617 (92 traders)
- Total swaps
- 2,732
What it does
A Uniswap v4 fee-sharing hook that takes a share of swap fees and splits them between a creator, a platform owner and a vault, with a TWAP-based check on swaps.
How it works step by step
- Registers pools with creator, platform and vault fee-share parameters
- Gates trading per pool through an openTrading switch
- Reads a TWAP window in beforeSwap to validate swap pricing
- Takes a share of swap value in afterSwap via return delta and accrues it per pool and per recipient
- Lets authorised callers sweep accrued fees to their recipients
- Uses a self-unlock callback to interact with the PoolManager
- Swap behaviour
- beforeSwap reads a TWAP-window price oracle and may gate the swap; afterSwap accounts the fee and takes a delta through afterSwapReturnDelta, which is credited to fee accrual.
- Liquidity behaviour
- beforeAddLiquidity is called and returns without modifying liquidity; beforeRemoveLiquidity and afterRemoveLiquidity and afterAddLiquidity are present in the dispatch table but are not enabled in the hook permissions, so they are not invoked by the PoolManager.
- Fee behaviour
- Fees are split between creator, platform owner and a vault by basis-point parameters (ownerBps, creatorBps, vaultBps, bounded by maxCreatorBps and MAX_TOTAL_BPS); accrued amounts are tracked per pool and per address in storage slot 2 and claimed via sweepFees and sweepAccrued. Exact split logic cannot be confirmed without source.
- Owner & admin controls
- Storage slot 0 maps pool keys to a per-pool configuration address, and registerPool, registerPoolWithCreatorBps and registerPoolWithQuote are nonpayable and can be called to set pool parameters; openTrading gates trading open per pool. The contract exposes platformOwner, ownerBps, creatorBps, vaultBps and maxCreatorBps as constants or immutables, and sweepFees and sweepAccrued let a privileged caller withdraw accrued fees. Whether registration and sweeping are restricted to a specific owner cannot be confirmed without source, so this is unverified.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeSwap, afterSwap, afterSwapReturnDelta
beforeAddLiquidity is enabled and may be used to gate or validate liquidity additions. beforeSwap is enabled to inspect swaps before execution, including a TWAP-window oracle read. afterSwap is enabled to account fees after each swap. afterSwapReturnDelta is enabled, so the hook can take a currency delta from the swap and route it into fee accrual, which means it moves funds.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: Privileged callers that can register pools, open trading and sweep accrued fees could redirect fee revenue or lock trading for a pool if access control is weak or keys are compromised. Without source the exact role checks are unknown.
Risk to user funds: The hook can hold accrued fee balances and take currency deltas on swaps via afterSwapReturnDelta, so user swap value passes through hook accounting. It does not appear to block swaps unconditionally, but trading gates such as openTrading can prevent trading on a pool.
Security findings
- [medium] Hook takes swap deltas: afterSwapReturnDelta lets the hook take a delta on each swap, so the hook holds and moves user-generated value through accrual and sweeps.
- [medium] Privileged sweep functions: sweepFees and sweepAccrued withdraw accrued amounts; if access control is missing or owner-only with a single key, that key can drain accrued balances.
- [medium] Pool registration sets fee parameters: registerPool, registerPoolWithCreatorBps and registerPoolWithQuote set pool parameters including creator share and quote side; misuse could alter fee splits for affected pools.
- [low] Oracle-based pricing check: The hook uses a TWAP-window oracle read in beforeSwap, which can be manipulated over short windows if the window is small.
- [info] Self-unlock and external calls: Bytecode contains self-unlock and external swap and take selectors, meaning the hook calls back into the PoolManager; reentrancy protection cannot be confirmed without source.
Contract details
- Verified source
- No
- Bytecode size
- 18,298 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc6909-claims, moves-currency, oracle, return-delta, self-unlock
Pools using Fee sharing hook
- WETH / CCAT (0.00% fee) — 24h volume $682, TVL $11, 414 swaps today
- GME / BUY (0.00% fee) — 24h volume $0, TVL $183, 203 swaps today
- WETH / AILAUNCH (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / CONDOM (0.00% fee) — 24h volume $0, TVL $40, 0 swaps today
- WETH / THREE (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / TWO (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / ONE (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today