Fee sharing hook on Robinhood Chain
Uniswap v4 Hook Contract 0xf43c7cc459a9430093f06b081f672f27e103a544 on Robinhood Chain · Fee sharing
- Volume (24h)
- $108
- Value locked (TVL)
- $56
- All-time volume
- $108
- Pools using this hook
- 1
- Swaps (24h)
- 14 (4 traders)
- Total swaps
- 14
What it does
A fee-sharing hook that takes a protocol cut from swaps on pools it initializes and routes it to a configurable recipient, with a distributor whitelist controlling liquidity-side accounting.
How it works step by step
- Validates pool initialization in beforeInitialize and records pool state
- Tracks distributor addresses in a whitelist that the owner can update
- On afterSwap, takes a protocol fee (PROTOCOL_FEE_BPS) and returns it as a hook delta
- Routes collected fees to a configurable protocolFeeRecipient
- Runs afterAddLiquidity and afterRemoveLiquidity checks tied to distributor status and pool state
- Swap behaviour
- After each swap the hook may take a protocol fee via the pool manager and adjusts the swap delta, so users receive slightly less output than the pool price alone would give.
- Liquidity behaviour
- afterAddLiquidity and afterRemoveLiquidity callbacks are implemented and appear to check distributor status and per-pool state; they may adjust accounting or settle balances for distributors.
- Fee behaviour
- A protocol fee constant PROTOCOL_FEE_BPS is exposed and a protocolFeeRecipient is stored; the hook appears to skim a share of fees or swap deltas after swaps and route them to the recipient. Exact fee amount and source of fees could not be fully confirmed from bytecode alone.
- Owner & admin controls
- Owner (Ownable with two-step ownership handover) can set the protocol fee recipient via setProtocolFeeRecipient, manage a distributor whitelist via setDistributors, and transfer or renounce ownership. No pause function was identified in the dispatched selectors.
Enabled Uniswap v4 callbacks
beforeInitialize, afterAddLiquidity, afterRemoveLiquidity, afterSwap, afterSwapReturnDelta
beforeInitialize checks pool/initialization state and rejects duplicate initialization; afterAddLiquidity and afterRemoveLiquidity inspect caller and pool state for distributor handling; afterSwap may take a protocol fee and returns a hook delta; afterSwapReturnDelta allows the hook to adjust the swap output amount.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: The owner can change the protocol fee recipient at will and manage which addresses are distributors, so a compromised owner key could redirect the fee stream or grant distributor rights to arbitrary addresses.
Risk to user funds: The hook can take currency from swap settlements via the pool manager and can return a delta that changes swap output, so a portion of user swap value can be diverted to the protocol fee recipient. The hook does not appear able to block swaps outright, but exact fee caps could not be confirmed.
Security findings
- [medium] Hook takes currency from swaps via return delta: afterSwapReturnDelta is enabled and the hook calls take on the pool manager, so the hook can extract value from swaps and shift balances to the protocol fee recipient.
- [medium] Owner-controlled fee recipient and distributor set: setProtocolFeeRecipient can redirect all protocol fees; the owner can also whitelist distributors.
- [low] No timelock on privileged actions: Ownership is managed by a two-step handover and the owner can renounce, which is a standard pattern; no timelock is evident.
- [info] Unverified source: Source is unverified and the function names of several dispatched selectors are unknown, so behavioural claims are inferred from storage and selectors.
Contract details
- Verified source
- No
- Bytecode size
- 11,594 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, ownable, return-delta
Pools using Fee sharing hook
- ETH / STRATM (0.00% fee) — 24h volume $108, TVL $56, 14 swaps today