MultiHookHost on Robinhood Chain

Uniswap v4 Hook Contract 0x48c22af8ad989fc9d5e82d6055dc0f263076e0c4 on Robinhood Chain · MEV protection · Verified contract

Volume (24h)
$0
Value locked (TVL)
$6.84K
All-time volume
$57.70K
Pools using this hook
2
Swaps (24h)
0 (0 traders)
Total swaps
868

What it does

Takes a fixed fee of up to 30 percent of swap output (split between platform and launch creator) and an optional anti-sniper trading delay and buyback-burn for newly launched pools.

This read was written for the hook 0x83d6…e0c4 on Robinhood Chain and reused here: the two run the same code.

How it works step by step

  • Takes a fixed platform and creator fee from the unspecified side of every swap, accrued in owed[] balances.
  • Enforces an optional anti-sniper gate that reverts swaps until a set number of blocks after launch.
  • Optionally burns a slice of token buy output to the dead address on exact-input buys.
  • Freezes per-pool config and creator at beforeInitialize and emits a canonical PoolPolicy event.
  • Restricts pool initialization and per-pool config setters to one wired initializer address set once by the deployer.
Swap behaviour
On every swap, afterSwap takes platformBps + creatorBps of the unspecified-side amount into owed balances for the platform and the pool creator. Exact-input buys with buybackBurnBps set also send an extra slice to 0x...dEaD. beforeSwap blocks swaps before launchBlock + antiSniperBlocks and rejects exact-output buys when burn is enabled.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
On each swap, afterSwap takes platformBps + creatorBps (max 30 percent total, constructor-set immutables) of the unspecified-side amount and accrues it to owed[] for the platform and the per-pool creator (fallback to constructor creator). Fee applies to both exact-input and exact-output swaps. On exact-input buys with buybackBurnBps set, an extra slice up to 20 percent is sent to the dead address. Fee is settled via poolManager.take and claimed later via claim or pushOwed.
Owner & admin controls
Deployer can call setInitializer exactly once to wire the authorized Graduator; after that deployer has no authority. Only the initializer can call setPoolConfig and setCreator, and only before a pool launches (frozen at beforeInitialize). No owner, pause, or upgrade functions found; the contract is not a proxy. Creator and platform addresses and bps are immutable.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, afterSwapReturnDelta

beforeInitialize: stamps launchBlock and a canonical PoolPolicy per pool, and rejects any initializer other than the wired one. beforeSwap: enforces anti-sniper window (swaps revert until launchBlock plus antiSniperBlocks) and rejects exact-output buys when buyback-burn is enabled. afterSwap: takes fee and burn amounts from the unspecified currency and returns them as hook delta. afterSwapReturnDelta: lets the hook take a share of swap output, which is the core fee mechanism.

Security & trust assessment

Risk level: medium (verified source, high confidence).

Who controls it: The deployer key has only a one-time power to set the initializer; after that no privileged key exists. The initializer (Graduator) can set per-pool config only before launch. A compromised or buggy initializer could set antiSniperBlocks up to 7200 and buybackBurnBps up to 20 percent for newly launched pools, but cannot change them after launch or alter fee bps.

Risk to user funds: The hook takes tokens or ETH from swap output via poolManager.take and holds them until claim. It can block swaps through the anti-sniper gate, and it can burn a share of buy output. It cannot move LP principal or pull funds from users beyond the fee and burn amounts. Owed balances can be claimed by the recorded recipients only.

Security findings

  • [medium] High immutable fee take on every swap: afterSwap takes up to 30 percent of the unspecified-side amount plus up to 20 percent burn on exact-input buys. Fee bps are immutable, so the rate is fixed at deployment, but it is high relative to typical v4 fees and is paid by traders.
  • [medium] Anti-sniper gate can block trading for up to 7200 blocks: beforeSwap reverts all swaps on a pool until launchBlock plus antiSniperBlocks, which can be up to 7200 blocks (about one day on mainnet). Trading on a fresh launch can be blocked for that window by config set at launch.
  • [low] Hook custodies accrued fees before claim: The contract holds fee tokens and ETH in its balance until claimed, and burn transfers go to 0x...dEaD. Unclaimed owed balances sit in the hook with no expiry or withdrawal for an unreachable recipient.
  • [info] Swap-direction-dependent accounting: Exact-output buys revert when buyback-burn is enabled, and the burn logic depends on the sign of amountSpecified and zeroForOne. Edge cases in unspecified-side accounting (int128 min handling) are clamped but add complexity.

Contract details

Verified source
Yes (MultiHookHost)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
7,700 bytes
Upgradeable proxy
No
Detected patterns
mev-protection, return-delta

Pools using MultiHookHost