Access control hook on Robinhood Chain
Uniswap v4 Hook Contract 0x4f7bafec33fb476908d8de233dc694d846e4a0c4 on Robinhood Chain · Access control
- Volume (24h)
- $0
- Value locked (TVL)
- $0.39
- All-time volume
- $24
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 2
What it does
This hook only allows swaps while a linked market contract says trading is open and may adjust each swap's output by an amount that cannot be verified from bytecode, while LPs can always add and withdraw liquidity freely.
How it works step by step
- Links a Uniswap v4 pool to an external 'market' contract and a fixed pool manager, with no adjustable storage of its own.
- On pool creation, checks the pool setup (likely the pool key and fee) against the market contract and rejects invalid fees.
- Before each swap, asks the market contract whether trading is enabled and blocks swaps with a 'trading closed' error if not.
- After each swap, can adjust swap amounts through a return delta, likely to take a fee. The exact amount cannot be confirmed from bytecode.
- Never runs on liquidity adds or removals, so LPs can always withdraw.
- Swap behaviour
- Swaps only go through while the linked market contract reports trading as enabled; otherwise they revert. After a swap the hook may change the swap output via a return delta, with the amount unknown from bytecode.
- Liquidity behaviour
- No liquidity callbacks; LPs can add and withdraw freely.
- Fee behaviour
- The hook validates the pool fee at creation and may take or adjust swap amounts after each swap. The exact fee percentage and recipient cannot be determined from the unverified bytecode.
- Owner & admin controls
- The hook has no owner functions or storage. Whoever controls the external market contract can open or close trading, which pauses swaps.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, afterSwapReturnDelta
beforeInitialize: checks the pool configuration and fee when the pool is created; beforeSwap: blocks swaps when the market says trading is closed; afterSwap: runs post-swap logic; afterSwapReturnDelta: lets the hook change the swap output amount.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: The hook itself is immutable and not a proxy, but trading status depends on an external market contract whose controller can close trading. The bytecode does not show who that controller is or what limits apply to them.
Risk to user funds: The hook can affect traders' swap output through the afterSwap return delta, with an unknown maximum amount. LP principal cannot be locked or taken by this hook.
Security findings
- [medium] Swaps can be paused by the market contract: Every swap reverts unless the external market contract reports trading as enabled, so whoever controls that contract can halt trading.
- [medium] Swap return delta with unverified amount: The hook can change swap outputs after each trade. Without source code, the size of any deduction cannot be confirmed.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook can never block or charge LP withdrawals.
Contract details
- Verified source
- No
- Bytecode size
- 3,316 bytes
- Upgradeable proxy
- No
- Detected patterns
- return-delta
Pools using Access control hook
- ETH / Roadster (0.30% fee) — 24h volume $0, TVL $0.39, 0 swaps today