Fee sharing hook on Robinhood Chain

Uniswap v4 Hook Contract 0xcec04964a0e92ee11fb3faa55a2e7d909055e0cc on Robinhood Chain · Fee sharing

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

What it does

Every swap in the Lantern/ETH pool pays a fixed oil fee of 0.75% to 5% in ETH, taken from the ETH side of the trade and split across four basins that their keepers can drain, while liquidity provision is blocked and no owner can change the terms.

This read was written for the hook 0x6dfe…60cc 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

  • Charges a fixed ETH oil fee of 0.75% to 5% (set once at deployment) on every swap in the home pool, taken via beforeSwap or afterSwap return deltas depending on swap direction and exact-in/exact-out mode.
  • Keeps the collected ETH as ERC-6909 claims held by the hook inside the PoolManager and splits each oil amount into four basins: 80% lighter side (with a creditsBps share routed to shoal), 10% reef, and the remainder to wick.
  • Lets each basin's registered keeper drain its ETH balance to itself through poolManager.unlock, burning the matching claim and taking ETH out.
  • Opens exactly one pool (the home pool) with native ETH as currency0 and the coin as currency1, tick spacing 1, zero static fee, only from the Wick deployer.
  • Mints the full one billion token supply to the deployer at construction and renounces ownership immediately; the token itself has no transfer tax, pause or blacklist.
  • Reverts liquidity add/remove and donate calls and the initialize-after hook, so the pool can only be traded through the oil-taking swap path.
Swap behaviour
Every swap in the home pool pays oil in ETH. Buying coins with exact ETH in: oil is cut from the ETH input before the pool sees it. Selling coins for exact ETH out: the pool is asked for a grossed-up ETH amount and the difference is oil. Buying exact coins out or selling exact coins in: oil is computed in afterSwap on the ETH actually moved, and the swap reverts with PartialFill if a pre-computed leg does not fill completely. Oil is the same percentage on every swap regardless of size or trader.
Liquidity behaviour
Adding and removing liquidity, and donations, are blocked: those hook callbacks revert with NotWired, so liquidity can only be managed outside this hook.
Fee behaviour
A fixed oil rate between 0.75% and 5% in ETH, set in the constructor and immutable. It is taken from every swap as a hook return delta and is not changeable afterwards. The pool's own static fee is zero.
Owner & admin controls
No active owner: ownership is renounced in the constructor, so owner() returns zero. The rate, basin split and keepers are immutable. The only privileged actions are the four basin keepers draining their own ETH balance. No pause, upgrade, blacklist or parameter-change function exists in the decoded interface.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool creation to the Wick and the canonical ETH/coin key. beforeSwap and afterSwap take oil on swaps and enforce the lagoon-only pool and fill checks. beforeSwapReturnDelta and afterSwapReturnDelta let the hook claim ETH from the swap amount as oil.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, high confidence).

Who controls it: No owner or upgrade path exists, so no one can change fees, pause trading or change the pool. Power is limited to the four keeper addresses, which can each withdraw their own basin's ETH balance; the keepers are fixed at deployment and cannot be swapped.

Risk to user funds: Traders' ETH is not held by the hook beyond the swap itself: oil is minted as ERC-6909 claims inside the PoolManager and tracked per basin. Liquidity providers are not affected since liquidity callbacks are blocked. Users depend on the keepers not draining or misusing the accrued fees, and on the hook's return-delta accounting being correct; no direct transfer path lets the hook or keepers take a user's coin balance.

Security findings

  • [info] Hook takes ETH on every swap via return deltas: beforeSwap and afterSwap return positive deltas equal to the oil amount, so each swap diverts a fixed 0.75% to 5% of ETH into basin claims. Traders should expect this cost on every trade.
  • [medium] Basin keepers can drain accrued ETH at any time: drain lets the registered keeper of each basin (lighter, shoal, reef, wick) withdraw any amount up to its balance to its own address via poolManager.unlock. The keepers are fixed addresses chosen by the Wick, so a compromised keeper key could empty that basin's share of fees.
  • [low] Unbounded swap path gated only by pool identity: Swaps revert with StrangeWater unless the pool id matches the lagoon, and with PartialFill when a coin-named leg does not fill in full. This makes the fee path strict but means partial or failed fills will revert the trade.
  • [info] Immutable configuration with no escape hatch: Oil rate, keepers, basin split and pool key are all immutable and the owner is renounced, so no party can change the terms or pause trading after deployment.

Contract details

Verified source
No
Bytecode size
8,095 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, ownable, return-delta, self-unlock

Pools using Fee sharing hook