Hook 0x2013…e0cc on Robinhood Chain
Uniswap v4 Hook Contract 0x20136e38ca5d45f0e4c5448af00368f319c2e0cc on Robinhood Chain · Other
- Volume (24h)
- $1.46K
- Value locked (TVL)
- $0
- All-time volume
- $1.46K
- Pools using this hook
- 1
- Swaps (24h)
- 25 (17 traders)
- Total swaps
- 25
What it does
An unverified hook that intercepts swaps with return deltas and routes a basis-point cut of flows to configured payees, with an ERC20 token interface and owner-managed roles.
How it works step by step
- Enables beforeSwap and afterSwap return deltas, letting the hook change amounts settled for swappers.
- Uses the unlock callback and take() to transfer pool currency to addresses during swap processing.
- Maintains owner-configured payee mappings and basis-point parameters (cutBps, creditsBps) that control value routing.
- Exposes ERC20 metadata and transfer functions, indicating the contract is also a token.
- Tracks pool-level state such as homePool and booted flags set during initialization and swaps.
- Swap behaviour
- Runs beforeSwap and afterSwap logic that can adjust swap deltas via return-delta permissions and move currency to payees using take(), so swaps may be altered or partially redirected.
- Liquidity behaviour
- Has beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors in the dispatch table, but the hook permission flags do not enable these callbacks, so they are likely unused or non-functional.
- Fee behaviour
- Cannot be determined from decoded bytecode. A cutBps and creditsBps parameter are exposed, suggesting the hook may take a basis-point cut of swap flows and credit or redirect value to payees, possibly via return deltas and take() calls; the exact fee formula is unverified.
- Owner & admin controls
- Ownable: owner can renounce ownership and transfer ownership (renounceOwnership, transferOwnership). Owner-only setter selector 0x2d35e17d (uint8,uint256) writes storage slots 0x0a, 0x0b and 0x0c, which appear to configure a per-index payee/pocket mapping and parameters; exact semantics cannot be confirmed without source. Additional view getters expose operator, manager, guild, lobby, kiosk, player, cutBps, creditsBps, homePool and booted state, implying a privileged operator/manager role system.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: records pool initialization and sets state (slots 0x07 to 0x08). beforeSwap: reads and updates swap-related state including a per-uint8 mapping (slot 0x0b). afterSwap: updates the same state and reads homePool and booted flags. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take or give currency deltas during swaps, meaning it can divert value from swappers and LPs.
Security & trust assessment
Risk level: high (decoded bytecode, low confidence).
Who controls it: The owner and the operator/manager roles can reconfigure payee mappings and fee-like parameters through the owner-gated setter, and can transfer or renounce ownership. A compromised owner key could redirect swap-derived value to arbitrary payees.
Risk to user funds: Because the hook can alter swap deltas and move currency via take() during swaps, it can hold, redirect or skim value from both swappers and pool liquidity. Owner-controlled payee and cut parameters could route a portion of flows to privileged addresses. Exact magnitudes cannot be determined without verified source.
Security findings
- [high] Return-delta swap interception: Hook enables return-delta permissions on both beforeSwap and afterSwap, so it can take or inject currency deltas on every swap, effectively modifying the amounts traders receive.
- [high] Hook moves pool currency via self-unlock and take: The contract has an unlock callback and calls take(), meaning it can move pool currency out to recipient addresses during swap processing.
- [medium] Privileged configuration of payees and parameters: An owner-gated setter (0x2d35e17d) writes multiple storage slots that determine payee routing and state, with no timelock visible in the decoded code.
- [medium] Hook is also an ERC20 token controlled by owner: The contract is Ownable and also exposes an ERC20-like interface (name, symbol, balanceOf, transfer, approve), so it doubles as a token whose supply and balances are tied to the hook's logic.
- [info] Unverified source limits analysis: The source is unverified, so function semantics, the meaning of storage slots and the purpose of many view getters (manager, guild, lobby, kiosk, player, booted) are inferred rather than confirmed.
Contract details
- Verified source
- No
- Bytecode size
- 8,176 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, ownable, return-delta, self-unlock
Pools using Hook 0x2013…e0cc
- ETH / HONKADE (0.00% fee) — 24h volume $1.46K, TVL $0, 25 swaps today