HedgeFunHook on Robinhood Chain

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

Volume (24h)
$976
Value locked (TVL)
$8.75K
All-time volume
$248.13K
Pools using this hook
10
Swaps (24h)
3 (3 traders)
Total swaps
3,021

What it does

A per-strategy tax hook that taxes trades on a token's own pool, burning token-denominated tax and splitting stock-denominated tax between the protocol, the creator and the strategy treasury, with launch-window and sell-spike rates.

How it works step by step

  • Taxes every trade on a strategy token's pool in afterSwap, using a flat rate in both directions
  • Applies a launch-window snipe rate to buys that decays linearly over snipeSeconds from registration
  • Applies a sell spike after treasury buy-backs that decays linearly, bounded to one spike per 2x spikeSeconds
  • Burns token-denominated tax and splits stock-denominated tax between protocol, creator and treasury via a permissionless sweep
  • Records a V3-style TWAP observation ring on every swap so the treasury can bound buy-backs against a time-weighted price
  • Blocks pool creation and third-party liquidity so that every trade in the pool pays the tax
Swap behaviour
afterSwap charges a tax on the unspecified currency: buys are taxed in the token (burned) and sells in the stock (split), with launch-window and post-buy-back spike rates; exact-output swaps are grossed up for flat-rate buys and refused otherwise. Treasury swaps are untaxed and every swap writes an observation to the pool's TWAP ring.
Liquidity behaviour
beforeAddLiquidity only permits the factory (as seeder) to add liquidity; third-party liquidity positions are blocked so that tax cannot be avoided. No removal callbacks are implemented (they revert HookNotImplemented if used).
Fee behaviour
A flat per-pool tax (taxBps, capped at 15%) is charged in afterSwap on both buys and sells, taken as ERC-6909 claims on the unspecified currency. Sells can carry a linearly decaying spike (up to 90%) for spikeSeconds after each treasury buy-back, and buys carry a launch-window snipe rate (up to 99%) decaying linearly to the flat rate. Burned token take is sent to the burn; stock take is split between the protocol, the creator and the strategy treasury, with a sweep tip (up to 1%) to whoever triggers the sweep.
Owner & admin controls
The factory owner (read live via factory.owner()) can set a pool's protocol payout address at any time with no delay, and can propose replacing a creator's payout address which takes effect after 14 days unless the creator vetoes; the creator can veto, which blocks re-proposals for 180 days. No pause, no upgrade path, no rate or treasury change is possible by the owner. Hook is not upgradeable (immutable bytecode, flags checked in constructor).

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, afterSwap, afterSwapReturnDelta

beforeInitialize and beforeAddLiquidity restrict pool creation and seeding to the factory and to pools registered by the factory. afterSwap applies the tax and records a TWAP observation ring for the treasury. afterSwapReturnDelta lets the hook take the tax from the unspecified leg of the swap.

Security & trust assessment

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

Who controls it: The factory owner controls the protocol payout address for every pool and can redirect a vanished creator's payout after a 14-day public delay; it cannot change rates, treasury, pool liquidity or user balances.

Risk to user funds: The hook holds ERC-6909 tax claims and parked stock for protocol, creator and treasury roles; it can move these only via sweep and claim paths that burn or pay out specified amounts. Traders pay the tax on the unspecified leg by design and the hook cannot block swaps except through its own revert-based refusals and issuer-controlled stock transfers.

Security findings

  • [info] Exact-output tax gross-up: Exact-output swaps are taxed by grossing up the input; exact-output buys inside a launch window or any exact-output sell are refused, which limits price manipulation but relies on correct rounding of r/(1-r).
  • [medium] Owner can redirect protocol and vanished-creator payouts: The owner can permanently set protocol payout addresses and, after a 14-day delay, replace a creator payout address unless the creator vetoes. Funds parked for a role move with the role.
  • [medium] Issuer can block or burn the hook's stock balance: Stock tokens are held in the shared hook; if the stock issuer burns or deny-lists this hook address, transfers of parked stock can fail or shrink, handled by write-down and parking logic but still a dependency on the issuer.
  • [low] Sell spike griefing bounded by design: Sell spike is bounded to at most one per 2x spikeSeconds so the rate always decays back to the flat rate; buy-back is permissionless but cannot pin the spike indefinitely.

Contract details

Verified source
Yes (HedgeFunHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
18,481 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, moves-currency, return-delta, self-unlock, tax

Pools using HedgeFunHook