Custom pricing hook on Robinhood Chain

Uniswap v4 Hook Contract 0x0d41ee5acd5942671af11a118e3a824521cae0cc on Robinhood Chain · Custom pricing

Volume (24h)
$156
Value locked (TVL)
$17
All-time volume
$156
Pools using this hook
1
Swaps (24h)
5 (3 traders)
Total swaps
5

What it does

This hook collects a fee on swaps through return-delta accounting, accumulates it, and redeems it to fund a token buyback and burn, so traders may pay a surcharge on swaps while LPs are not directly affected by a liquidity callback.

How it works step by step

  • Hook is initialized with beforeInitialize and gates pool setup on a fixed configuration (InvalidConfiguration error selector present).
  • On beforeSwap it can take over swap accounting via beforeSwapReturnDelta, so it returns deltas that alter the amounts settled for the swap.
  • On afterSwap it can also adjust the swap via afterSwapReturnDelta, and it moves currency through the pool manager (take, settle, sync, mint, burn selectors present).
  • Accumulates fees and redeems them through redeemFees, and runs a buyback routine (executeBuyback with BUYBACK_GAS and THRESHOLD parameters) that buys and burns a token (BURN, IMD, token getters present).
  • Uses unlock and unlockCallback to re-enter the pool manager and perform the accounting and buyback operations inside a self-unlock flow.
  • Mints and burns ERC6909 claim balances during these flows (mint, burn selectors and the erc6909-claims tag).
Swap behaviour
The hook runs logic before and after each swap and can return deltas that change the swap's settled amounts, so some swaps may be taxed or have accounting diverted to the hook; exact direction-dependent effects cannot be determined from decoded bytecode alone.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Fee handling is not fully determinable from decoded bytecode; POOL_FEE, FEE_DENOMINATOR and redeemFees indicate the hook collects a fee in pool-relevant amounts and later redeems them, likely routed to a buyback.
Owner & admin controls
Storage slot 0 is a bool written by redeemFees and afterSwap, suggesting a busy or reentrancy-style flag; no owner or pause function selector was decoded, so admin controls cannot be confirmed.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize validates or records pool setup; beforeSwap can alter swap accounting through return deltas; afterSwap performs post-swap fee collection and accounting; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take or give back currency during swaps.

Security & trust assessment

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

Who controls it: Without a decoded owner or admin setter, privileged control is unclear; if executeBuyback or fee parameters are governed by a key, that key could alter fee routing or buyback size.

Risk to user funds: The hook can hold and move currency through take, settle and mint/burn claim flows and can alter swap settlement via return deltas, so it does have custody and routing over pool funds during swaps.

Security findings

  • [medium] Return deltas let the hook take currency from swaps: beforeSwapReturnDelta and afterSwapReturnDelta are enabled and the bytecode calls take, settle and mint, so the hook can withhold part of swap amounts from traders.
  • [medium] Buyback executes with a caller-supplied amount: executeBuyback(uint256) is externally callable with a nonpayable signature; access control was not identified in decoded bytecode, so the buyback trigger and its size may be controllable by anyone.
  • [low] Self-unlock callback pattern: unlock and unlockCallback are invoked, meaning the hook re-enters the pool manager mid-operation; correctness depends on the Busy guard, which is only partly visible via storage slot 0.
  • [info] Unverified source: No verified source is available, so function behaviour and access checks are inferred from selectors and storage access only.

Contract details

Verified source
No
Bytecode size
6,630 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, moves-currency, return-delta, self-unlock

Pools using Custom pricing hook