Comb on Robinhood Chain

Uniswap v4 Hook Contract 0xfb4a76c44da426cc6775cc05c335c7cd7acb20cc on Robinhood Chain · Fee sharing · Verified contract

Volume (24h)
$239
Value locked (TVL)
$0
All-time volume
$239
Pools using this hook
1
Swaps (24h)
5 (2 traders)
Total swaps
5

What it does

Every swap in the Comb/ETH pool pays a flat 0.5% of its ETH side, taken by the hook and split between keeper, meadow and queen cells, with no direction-based difference, while liquidity providers are not hooked and no owner remains to change the terms.

This read was written for the hook 0x347e…a0cc on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Hiving: constructor mints the entire 1,000,000,000 supply to the deployer, validates the brief strings and payee addresses, and renounces ownership in the same constructor
  • Hook permissions: beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta; no liquidity hooks are enabled
  • Home pool: beforeInitialize accepts exactly one pool, with ETH as currency0, this contract as currency1, zero static fee and tick spacing 1
  • Honey: a flat 0.5% of the ETH side of every swap is booked as an ERC-6909 claim on the PoolManager and split 80% keeper, 10% meadow, 10% plus rounding queen
  • Harvest: each payee can withdraw their own cell in ETH through manager.unlock; no other party can move cell balances
  • Listing: contractURI assembles ERC-7572 metadata on-chain from immutable-by-convention strings written at hiving
Swap behaviour
Every swap in the home pool pays honey of 0.5% of the ETH side. For ETH-specified exact-in legs the honey is carved off the ETH input in beforeSwap; for ETH-specified exact-out legs the pool is asked for a grossed-up ETH amount so honey is a slice of it. For comb-specified legs the honey is computed in afterSwap from the ETH that actually moved and is taken via afterSwap return delta. Buyers paying ETH and sellers receiving ETH both pay the same 0.5%; the fee is uniform, not directional.
Liquidity behaviour
No liquidity callbacks. Liquidity providers add and remove through Uniswap normally and are not hooked.
Fee behaviour
Fixed 0.5% honey on the ETH side of every swap, booked to keeper (80%), meadow (10%) and queen (10% plus rounding) cells. The pool itself uses a static fee of zero; the honey is taken via return deltas, not through the LP fee.
Owner & admin controls
No admin controls found. Ownership is renounced in the constructor so owner() returns the zero address. No pause, upgrade, blocklist or parameter-change function exists. Payee addresses are immutable and only the payee can harvest its cell.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool creation to the home pool with exact canonical key. beforeSwap computes honey for ETH-specified legs and returns a before-swap delta. afterSwap validates ETH-specified legs were fully filled, computes honey for comb-specified legs and returns an after-swap delta. beforeSwapReturnDelta and afterSwapReturnDelta are enabled so the hook can take a share of the swap.

Security & trust assessment

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

Who controls it: No privileged key remains after renounceOwnership; the constructor-set payees can only withdraw their own cell and cannot alter parameters.

Risk to user funds: The hook holds ETH-denominated ERC-6909 claims on the PoolManager equal to accumulated honey in the three cells. Honey is booked from swap deltas; users' LP principal is not held by the hook. Comb transfers are standard ERC-20 with no tax or blocklist.

Security findings

  • [info] Hook takes honey through return deltas: beforeSwap and afterSwap return deltas take 0.5% of the ETH side of every swap in the home pool into ERC-6909 claims held by the hook, so traders pay this on every swap regardless of direction.
  • [low] Swaps revert when legs are not filled exactly: afterSwap reverts with Unfilled if an ETH-specified leg does not move the expected ETH amount, so partial fills in the home pool are refused rather than settled.
  • [info] Payee addresses fixed at hiving: keeper, meadow and queen are immutable; if one is a contract that cannot receive ETH, harvest for that cell would fail, locking its honey.
  • [info] Harvest reentrancy guarded: harvest sets a _harvesting flag around manager.unlock and unlockCallback requires it, limiting entry to the harvest path.

Contract details

Verified source
Yes (Comb)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
11,326 bytes
Upgradeable proxy
No
Detected patterns
erc20, erc6909-claims, moves-currency, ownable, return-delta, self-unlock

Pools using Comb