Fee sharing hook on Robinhood Chain

Uniswap v4 Hook Contract 0xe278cc179a490d83f317d4abc2745797943b60cc on Robinhood Chain · Fee sharing

Volume (24h)
$16.09K
Value locked (TVL)
$108
All-time volume
$16.09K
Pools using this hook
1
Swaps (24h)
128 (55 traders)
Total swaps
128

What it does

This hook takes an adjustable, capped fee from every swap and splits it between a project recipient and another party, while a controller can pause trading; LPs can always withdraw freely.

This read was written for the hook 0x1a4d…a0cc on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Charges a swap fee (feeBps) taken from swaps via return deltas, capped by a maxFeeBps value whose exact number is not readable from bytecode.
  • Splits collected fees between a project recipient and another party (likely a protocol vault), with balances stored for later claiming.
  • Lets a controller pause trading, change the fee within the cap, and update fee recipients.
  • Restricts pool initialization to an authorized initializer and is tied to a single pool.
Swap behaviour
Every swap is checked against a trading-pause flag and reverts if trading is paused. A fee is deducted from the swap amounts through return deltas and credited to recipients.
Liquidity behaviour
No liquidity callbacks are enabled, so LPs can add and withdraw freely and the hook can never block withdrawals.
Fee behaviour
A controller-set fee in basis points is taken from each swap, bounded by a maxFeeBps cap that cannot be confirmed from bytecode. Fees are split between a project recipient and a second party (likely a vault) using a configurable split, and recipients claim them later.
Owner & admin controls
A controller can pause or unpause all trading, set the fee up to maxFeeBps (exact value unknown), change fee recipients, and adjust a fee split parameter. It cannot touch LP withdrawals.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: restricts who can create the pool; beforeSwap: enforces the pause and may take fee from input; afterSwap: computes and records fee splits; beforeSwapReturnDelta/afterSwapReturnDelta: let the hook deduct its fee from swap amounts.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, medium confidence).

Who controls it: A single controller address can pause swaps, change the fee within its cap, and redirect fee recipients. It cannot block LP withdrawals.

Risk to user funds: The hook deducts a fee from swap amounts up to an unknown maxFeeBps cap and holds accrued fees for claiming. LP principal cannot be locked or drained by the hook.

Security findings

  • [medium] Controller can pause trading: setTradingPaused lets the controller halt all swaps in the pool at any time.
  • [low] Adjustable swap fee with unverified cap: The fee can be changed up to a maxFeeBps limit; the cap's exact value is not visible in unverified bytecode.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LPs can always withdraw.

Contract details

Verified source
No
Bytecode size
7,477 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, return-delta

Pools using Fee sharing hook