RobinhoodMixedFeeHook on Robinhood Chain

Uniswap v4 Hook Contract 0xa4555952075bdfd473521f3d754d13442ee3e0cc on Robinhood Chain · Fee sharing · Verified contract

Volume (24h)
$1.28K
Value locked (TVL)
$16.11K
All-time volume
$2.59M
Pools using this hook
3
Swaps (24h)
4 (4 traders)
Total swaps
17,264

What it does

Adds an extra fee to every swap in pools that use it, splitting the fee between a dividend pool for token holders and creator, protocol and referral recipients.

How it works step by step

  • Reads per-pool fee splits (dividend, creator, protocol, referral) from an external dividend fee helper contract
  • Takes dividend fees in the reward token and deposits them into a dividend controller for holders
  • Takes creator, protocol and referral fees in the swap's unspecified currency and transfers them to configured recipients
  • Reverts any swap where the combined fee exceeds 9.9% (99,000 ppm)
  • Restricts pool initialization to addresses approved as deployers
Swap behaviour
On every swap the hook reads the pool's fee configuration from a dividend fee helper, validates the total fee against a cap, and takes a dividend fee in the reward token (if the swap is in that currency) before the swap and creator, protocol, referral and dividend fees from the unspecified currency after the swap.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Fees are charged on swaps as a fraction (ppm of 1e6) read from an external dividend fee helper per pool: a dividend fee in the configured reward token, plus creator, protocol and referral fees taken in the swap's unspecified currency. Total fees are capped at 99,000 ppm (9.9%) and the hook reverts if the helper reports more.
Owner & admin controls
Owner (Ownable2Step, two-step transfer) can set the dividend fee helper address via setDividendFeeHelper and grant or revoke deployer status via setDeployer; owner can renounce ownership or transfer it. No pause or upgrade mechanism found.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool initialization to addresses marked as deployers. beforeSwap takes the dividend fee in the reward token via a return delta and deposits it into a dividend controller. afterSwap takes creator, protocol, referral and (when applicable) dividend fees from the unspecified currency via an return delta and transfers them to the respective recipients or dividend controller. beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take a share of swap amounts.

Security & trust assessment

Risk level: medium (verified source, high confidence).

Who controls it: The owner can point the hook at an arbitrary dividend fee helper, which controls fee rates, recipients, token id and the dividend controller address; a malicious or changed helper could redirect fees or set fee values up to the 9.9% cap. The owner also controls which addresses can initialize pools.

Risk to user funds: The hook takes a share of every swap in either the reward token or the unspecified currency via return deltas and forwards it to the dividend controller and fee recipients. It holds tokens only transiently during a swap. It cannot block swaps directly, but a reverting helper or an invalid total fee would cause swaps to revert.

Security findings

  • [medium] Owner-replaceable fee source: The hook pulls fee values and recipient addresses from an owner-settable dividend fee helper; swaps trust whatever it returns, subject only to the 9.9% total cap.
  • [low] Fee recipients come from external helper: Swaps route fees to creator, protocol, referral and dividend controller addresses returned by the helper; misconfigured or compromised recipients would receive user-paid fees.
  • [low] Trusted dividend controller approval: Dividend deposits approve the dividend controller for the deposit amount using forceApprove, so the controller is a trusted spender for hook-held reward tokens.
  • [info] Non-upgradeable with reentrancy guard: The hook is not upgradeable and has a reentrancy guard on swap callbacks; ownership uses a two-step transfer.

Contract details

Verified source
Yes (RobinhoodMixedFeeHook)
Compiler
solc 0.8.30+commit.73712a01
Bytecode size
6,192 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, ownable, return-delta

Pools using RobinhoodMixedFeeHook