Likely fee sharing hook on Robinhood Chain

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

Volume (24h)
$31
Value locked (TVL)
$7.22K
All-time volume
$342
Pools using this hook
1
Swaps (24h)
11 (4 traders)
Total swaps
189

What it does

Takes a configurable share of swap output after each non-exempt swap and forwards it to a furnace address, letting the pool fund a fee-sharing destination.

How it works step by step

  • Runs logic after each swap through the afterSwap callback
  • Skips the take for addresses flagged in the exemption mapping (isExempt)
  • Calculates a share of the output using shareBps basis points
  • Takes that share from the pool manager with take() and routes it to the furnace
  • Accumulates totalTaken0 and totalTaken1 counters for each currency
Swap behaviour
In afterSwap, for swappers not on the exemption list, the hook computes a share (shareBps) of the output and takes it via the pool manager, adding to the totalTaken counters.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
After each swap the hook takes a share of the unspecified-currency delta via take() and routes it to a furnace address; shareBps() exposes the share in basis points. Fee share is not set by the pool's static fee alone.
Owner & admin controls
No admin controls found.

Enabled Uniswap v4 callbacks

afterSwap, afterSwapReturnDelta

afterSwap is used to run post-swap accounting and tokens transfer logic; afterSwapReturnDelta lets the hook claim a portion of the swap output as a return delta, which it then sends to the furnace.

Security & trust assessment

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

Who controls it: Exemption list membership (isExempt) and the furnace and share parameters are read from storage; no setter selector was decoded, so the decoded bytecode does not show an owner key that can change them, but this could not be fully ruled out.

Risk to user funds: The hook can take a share of the output currency from non-exempt swaps via take() and sends it to the furnace address; it does not hold user principal beyond the swap itself.

Security findings

  • [info] Return delta takes part of swap output: The hook uses afterSwapReturnDelta, so it can take part of the swap output and send it to the furnace, reducing what the swapper receives.
  • [low] Exemption list cannot be confirmed as immutable: Only a whitelist check (mapping(address=>bool)) gates whether a swapper is exempt from the take; no setter for that mapping was decoded.
  • [info] Cumulative tracking of taken amounts: Cumulative totalTaken0 and totalTaken1 counters are updated on every non-exempt swap, which the analytics can use to track the share taken.

Contract details

Verified source
No
Bytecode size
1,418 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Likely fee sharing hook