Fee sharing hook on Robinhood Chain
Uniswap v4 Hook Contract 0x49d8e239878ba17ebd2ec9de5f8b25fc66d5aaec on Robinhood Chain · Fee sharing
- Volume (24h)
- $31.10K
- Value locked (TVL)
- $5.17K
- All-time volume
- $341.16K
- Pools using this hook
- 16
- Swaps (24h)
- 350 (154 traders)
- Total swaps
- 3,245
What it does
A Uniswap v4 hook that takes a configurable fee share on swaps for a protocol recipient, with pool creator and recipient roles managed by privileged keys.
How it works step by step
- Registers each pool on initialization and tracks creator rights per pool id
- Takes a protocol share of swap fees via return deltas (FEE_BPS, PROTOCOL_SHARE_BPS)
- Settles and custodies currency with the PoolManager through unlock, take, mint and burn
- Tracks liquidity add and remove timing per pool and exposes owed and claimable balances
- Allows a claim and claimMany flow for accrued ERC-6909 claims by recipients
- Uses a two-step creator proposal and acceptance with a recipient delay
- Swap behaviour
- beforeSwap and afterSwap are implemented with return-delta permissions, so the hook can adjust swap amounts and take a protocol fee portion during swaps.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity are implemented and appear to record per-pool timestamps (uint40 mapping written on add) and may gate removal; afterAddLiquidity and afterRemoveLiquidity are present as view-stubs. Specific gating logic is not confirmed.
- Fee behaviour
- Contains constants FEE_BPS, LP_FEE, PROTOCOL_SHARE_BPS and a feeTerms(bytes32) getter, indicating a hook-managed fee with a protocol share split, likely taken via return deltas on swaps; exact formula cannot be confirmed without source.
- Owner & admin controls
- Unverified bytecode shows an owner-like role (mapping keyed by uint8 role id, setters via selectors 0xd6c4dad5 and 0x05ea488e) and a two-step creator proposal/accept flow (proposeCreator, acceptCreator, pendingCreator) keyed by pool id. A RECIPIENT_DELAY constant and DelayNotOver/NotRecipient errors suggest a timelocked recipient change. No pause or upgrade function identified.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize registers pool metadata; beforeAddLiquidity and beforeRemoveLiquidity track liquidity timing and ranges (CURVE_TICK_LOWER, FULL_RANGE_UPPER, TICK_SPACING suggest a bounded curve position); beforeSwap and afterSwap with return-delta flags let the hook take or redirect a portion of swap amounts; beforeDonate is enabled but its effect is unclear; the self-unlock and take/mint/burn selectors indicate the hook settles currency and ERC-6909 claims through the PoolManager.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: A privileged role can propose and accept creator changes, reassign role addresses and possibly change the recipient, redirecting protocol fee share and claimable balances to a new party.
Risk to user funds: The hook can take a share of swap output through return deltas and holds or mints ERC-6909 claims on behalf of pool participants, so user and LP funds flow through its accounting; a compromised privileged key could redirect the protocol share or claimable balances.
Security findings
- [medium] Return-delta fee capture: Hook uses beforeSwapReturnDelta and afterSwapReturnDelta to take or redirect tokens from swaps, so swap flows depend on the hook's accounting.
- [medium] Hook custodies claims and moves currency: Hook calls unlock, take, mint and burn on the PoolManager and holds ERC-6909 claims, so it can custody user-facing balances between operations.
- [medium] Privileged role reassignment: proposeCreator and acceptCreator plus role setters allow an authorised key to change who controls pool creator rights and recipients; a delay constant limits some changes.
- [info] Unverified bytecode: Without verified source, the exact fee formula, delay enforcement and role checks cannot be confirmed; findings are inferred from selectors and errors.
Contract details
- Verified source
- No
- Bytecode size
- 15,919 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc6909-claims, moves-currency, return-delta, self-unlock
Pools using Fee sharing hook
- ETH / CWORM (0.10% fee) — 24h volume $24.47K, TVL $622, 264 swaps today
- ETH / LONGY (0.10% fee) — 24h volume $5.84K, TVL $1.41K, 56 swaps today
- ETH / WORMY (0.10% fee) — 24h volume $740, TVL $339, 17 swaps today
- ETH / WORMBOOK (0.10% fee) — 24h volume $21, TVL $4.50, 2 swaps today
- ETH / CA (0.10% fee) — 24h volume $21, TVL $0.02, 1 swaps today
- ETH / LONGY (0.10% fee) — 24h volume $17, TVL $217, 4 swaps today
- ETH / WORMINATOR (0.10% fee) — 24h volume $0.16, TVL $2.34K, 1 swaps today
- ETH / WORMX (0.10% fee) — 24h volume $0.15, TVL $143, 1 swaps today
- ETH / WARMHOLE (0.10% fee) — 24h volume $0.14, TVL $6.08, 1 swaps today
- ETH / CAT (0.10% fee) — 24h volume $0.14, TVL $0.86, 1 swaps today
- WORM / SWORMY (0.10% fee) — 24h volume $0, TVL $0, 2 swaps today
- ETH / SLUG (0.10% fee) — 24h volume $0, TVL $24, 0 swaps today
- ETH / BIRD (0.10% fee) — 24h volume $0, TVL $48, 0 swaps today
- ETH / REALWORM (0.10% fee) — 24h volume $0, TVL $4.80, 0 swaps today
- ETH / CATER (0.10% fee) — 24h volume $0, TVL $4.80, 0 swaps today
- ETH / BOOK (0.10% fee) — 24h volume $0, TVL $0, 0 swaps today