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
- ETH / QUIVER (1.25% fee) — 24h volume $156, TVL $17, 5 swaps today