Likely fee sharing hook on Robinhood Chain
Uniswap v4 Hook Contract 0x78962ddce80308ce23e778831b725392c5c2a044 on Robinhood Chain · Fee sharing
- Volume (24h)
- $0
- Value locked (TVL)
- $6.47K
- All-time volume
- $855.82K
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 5,169
What it does
A fee hook that takes an owner-set buy and sell fee on swaps, sends it to a dev wallet, and can apply temporary trading limits.
How it works step by step
- Sets buy and sell fees in basis points through setSwapFees, capped by MAX_FEE_BPS.
- Takes the fee from swap output after each swap via afterSwapReturnDelta and the take() call.
- Sends collected fees to devWallet at slot 1.
- Enforces optional trading limits with maxQuotePerSwap while limitsEnabled is true, with per-address exemptions.
- Lets the owner permanently disable limits with removeLimits.
- Checks pool initialization through beforeInitialize.
- Swap behaviour
- afterSwap computes a fee from the configured buy or sell rate and takes it from the swap output using afterSwapReturnDelta, transferring it to devWallet. Limits are checked against limitExempt and limitsEnabled.
- Liquidity behaviour
- beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are exposed but not enabled in the permissions, so no liquidity callbacks run.
- Fee behaviour
- Owner-configurable buy and sell fees in basis points, capped by MAX_FEE_BPS. afterSwap reads the fee settings and takes a fee in the swap's unspecified currency via take() and returns a delta, sending the fee portion to devWallet.
- Owner & admin controls
- Owner (slot 0) can set buy and sell fee basis points via setSwapFees with a MAX_FEE_BPS cap, remove the trading limits permanently via removeLimits, toggle limit exemptions per address (mapping in slot 6), transfer ownership, and call the function at selector 0xf73c5829 which writes the bool at slot 2 (likely a trading or hook enable flag). devWallet at slot 1 receives fee proceeds.
Enabled Uniswap v4 callbacks
beforeInitialize, afterSwap, afterSwapReturnDelta
beforeInitialize: runs a check when the pool is initialized. afterSwap: takes a fee from swaps and sends it to the dev wallet. afterSwapReturnDelta: lets the hook adjust the swap's delta so it can keep part of the output.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: The owner can raise fees up to the cap on buys and sells, block or allow trading through the bool flag at slot 2, exempt specific addresses from limits, and transfer ownership to any address. Removing limits is irreversible.
Risk to user funds: The hook takes a portion of swap output through the return delta and pays it to devWallet, so traders bear the fee on swaps. It has no custody of LP principal beyond what the pool manager settles, but it can block swaps via the enable flag.
Security findings
- [medium] Hook takes swap proceeds via return delta: afterSwapReturnDelta lets the hook take part of every swap output and send it to devWallet. Fee rates are set by the owner.
- [medium] Owner-adjustable swap fees: setSwapFees is callable by the owner and sets buy and sell fees. The cap is MAX_FEE_BPS, but the actual cap value is not visible in the decoded input.
- [medium] Owner controls trading limits: Owner can exempt addresses from trading limits (mapping at slot 6) and can call removeLimits to disable limits for all users permanently.
- [low] Single-owner transfer: Owner is a single address set in slot 0 and can transfer ownership without a two-step process.
- [info] Unverified function semantics: No source is verified, so the function at 0xf73c5829 and the bool at slot 2 are inferred and their exact behaviour is uncertain.
Contract details
- Verified source
- No
- Bytecode size
- 4,373 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, ownable, return-delta
Pools using Likely fee sharing hook
- GMEx3L / USDG (5.00% fee) — 24h volume $0, TVL $6.47K, 0 swaps today