Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0xe873d35b8aafc450f780291ca206212d736aa880 on Robinhood Chain · Launchpad

Volume (24h)
$9.31K
Value locked (TVL)
<$0.01
All-time volume
$43.05K
Pools using this hook
6
Swaps (24h)
499 (123 traders)
Total swaps
3,255

What it does

An unverified Uniswap v4 hook that appears to gate liquidity additions and set or read a configurable fee for pools that use it, with the exact behaviour undetermined from decoded bytecode.

How it works step by step

  • beforeInitialize reads stored state to validate pool setup
  • beforeAddLiquidity reads a per-address mapping to gate liquidity additions
  • beforeSwap reads packed fee and configuration storage
  • currentFee exposes a fee value derived from storage
  • A nonpayable setter writes numerous configuration slots and a per-address mapping
  • afterAddLiquidity, afterRemoveLiquidity, afterSwap, afterDonate and beforeDonate are pure stubs
Swap behaviour
beforeSwap (0x575e24b4) is a view function that reads fee and configuration state from storage, and afterSwap is a pure stub, so swaps do not appear to move funds through the hook.
Liquidity behaviour
beforeAddLiquidity (0x259982e5) is a view function that reads a per-address mapping at slot 0x20, so it likely gates which addresses may add liquidity; afterAddLiquidity and afterRemoveLiquidity are pure stubs, and beforeRemoveLiquidity is a pure stub that performs no checks.
Fee behaviour
currentFee() (0xda3c300d) reads packed fee and flag fields from storage slot 2, so the hook appears to compute or return a fee value on demand, likely a dynamic or configurable fee; the exact formula cannot be determined from the decoded bytecode.
Owner & admin controls
A privileged account is stored at slot 0 and admin-type functions (selector 0x6cbdf96b, nonpayable, three uint256 arguments) write several storage slots including a mapping keyed by address at slot 0x20 and slot 0x21; the exact access checks cannot be confirmed without source, and no owner-setter name is available.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap

beforeInitialize is used to check the pool's initialization parameters against stored state; beforeAddLiquidity is used to gate liquidity additions with a per-address mapping; beforeSwap is used to read fee and state data before each swap.

Security & trust assessment

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

Who controls it: A privileged account can likely change the stored admin address and the configuration written by the nonpayable setter at selector 0x6cbdf96b, and could thereby alter gating or fee-related state for all users of pools using this hook.

Risk to user funds: The hook declares no return-delta permissions and its swap and liquidity callbacks are view or pure, so it does not appear to take or hold user tokens directly; however, it may block liquidity addition or swaps through its gating logic and could alter fees through its admin-writable configuration.

Security findings

  • [high] Broad unverified state-writing admin function: The nonpayable function 0x6cbdf96b writes to slots 0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15 and 16 along with the address mapping at slot 0x20, indicating a broad configuration surface that is controllable by its caller under unverified access rules.
  • [medium] Possible allowlist gating of liquidity: beforeAddLiquidity reads a mapping keyed by address at slot 0x20 and can likely reject liquidity additions from addresses not in that mapping, which could block LP entry.
  • [info] Category inferred from selectors only: The hook is in the launchpad-style category based on storage fields and a launches(address) call, but this is inferred only from selectors and not from verified source.
  • [info] No verified source: The hook is not verified, so access control, fee logic and pause behaviour cannot be confirmed from source.

Contract details

Verified source
No
Bytecode size
8,369 bytes
Upgradeable proxy
No

Pools using Launchpad hook