MEV protection hook on Robinhood Chain
Uniswap v4 Hook Contract 0xc164cfc3f5c6371ca731992eab75a8849c1be0cc on Robinhood Chain · MEV protection
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
This hook gates and adjusts swaps during a short anti-sniper window after pool creation and takes part of the swap amounts as fees, though the exact direction and size of that charge could not be confirmed from the bytecode.
How it works step by step
- Records the pool initialization block and runs an anti-sniper window of fixed length (ANTI_SNIPER_DURATION) after initialization, during which swaps are gated in beforeSwap.
- Uses beforeSwap with return delta to take or adjust swap amounts, and afterSwap with return delta to settle a portion of swap output.
- Holds fee or surplus amounts in its own accounting and withdraws them through the pool manager via unlock and unlockCallback.
- Mints and burns ERC6909 claim tokens against pool manager balances, so it can keep currency inside the pool manager rather than transferring it out.
- Exposes quoteSwap so off-chain callers can preview swap results through the hook.
- Exposes redeemFees, which is callable by anyone and triggers settlement of accumulated fees to the pending vault.
- Swap behaviour
- beforeSwap and afterSwap both run on every swap and can return deltas that change the amounts settled, so swappers may receive or pay amounts different from the plain pool price; the exact rule is not recoverable from decoded bytecode alone.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Exposes LP_FEE, BASE_FEE_PPM and FEE_DENOMINATOR constants and moves fee amounts through the hook's own accounting; the precise fee formula and which trades pay more or less could not be determined from bytecode.
- Owner & admin controls
- No owner or pause selector is visible in the decoded functions; pendingVault and redeemFees suggest a vault destination for fees, but whether its address can be changed could not be determined.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize records initialization state and block for the anti-sniper window; beforeSwap gates or adjusts swaps and can return a delta; afterSwap settles a post-swap delta; beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take a share of the swap amounts.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: Privileged control could not be confirmed from the decoded selectors; if an admin can alter the vault or fee constants, that could redirect or change fees charged to traders.
Risk to user funds: The hook can take currency through return deltas and hold claims via ERC6909 mint and burn, so swap proceeds and fee balances are under hook control during each swap.
Security findings
- [medium] Return deltas let the hook take user funds: beforeSwapReturnDelta and afterSwapReturnDelta are enabled and the bytecode moves currency via take, mint and burn, so the hook can take a share of each swap.
- [medium] Anti-sniper gating in beforeSwap: beforeSwap reads the initialization block and ANTI_SNIPER_DURATION, so swaps during the window may be restricted or taxed depending on logic not visible without source.
- [low] Public fee redemption: redeemFees is nonpayable with no visible caller restriction in the selector list, so anyone can trigger settlement of accumulated fees to the pending vault.
- [info] Unverified logic: No verified source is available, so exact fee maths and access checks on pendingVault changes are inferred only from selectors and storage.
Contract details
- Verified source
- No
- Bytecode size
- 6,774 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc6909-claims, liquidity-management, mev-protection, moves-currency, return-delta, self-unlock
Pools using MEV protection hook
- IMD / TEST (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today