OmniHook on Ethereum

Uniswap v4 Hook Contract 0xf1233150d60d96f4f9086a535738b53625a980cc on Ethereum · Fee sharing · Verified contract

Volume (24h)
$0
Value locked (TVL)
$20
All-time volume
$14.12K
Pools using this hook
14
Swaps (24h)
0 (0 traders)
Total swaps
651

What it does

Takes a flat 10 bps fee on every exact-input and exact-output swap through the pool and splits it among five hardcoded addresses, with no owner, setter, or way to skip it.

How it works step by step

  • Charges 10 basis points (0.1%) of the swap amount on each swap that has a nonzero fee, using the specified side for exact-input swaps and the unspecified output side for exact-output swaps.
  • Takes the fee to the hook contract itself through the pool manager's take function, in the same unlock as the swap.
  • Splits each fee into eighths: 1/8 to STACC, 2/8 to DEPLOYER, 2/8 to PART2, 1/8 to PART1A, and 2/8 plus rounding dust to PART1B.
  • Books each share in an owed[currency][recipient] ledger rather than transferring it to recipients during the swap, so a failing recipient cannot revert swaps.
  • Lets anyone call claim or claimAll to pay out accrued balances to the recipients, with failed transfers left owed.
Swap behaviour
beforeSwap takes the fee on the specified currency for exact-input swaps and returns a positive specified delta so the pool manager accounts for it. afterSwap takes the fee on the unspecified output currency for exact-output swaps and returns it as an unspecified delta. Swaps with zero computed fee (for example very small amounts) pass through unchanged.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
A fixed 10 bps fee on swap amounts, taken by the hook through return deltas on top of the pool's own fee, then divided among five fixed recipients. Not configurable.
Owner & admin controls
No admin controls found. The fee, recipients, and split are constants, and there is no owner, pause, setter, or upgrade path.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap takes the specified-side fee and returns a before-swap delta; afterSwap takes the unspecified-side output fee and returns an after-swap delta; beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to alter the amounts the pool settles for the trader.

Security & trust assessment

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

Who controls it: No privileged key or owner exists. Recipients cannot be changed, and no party can pause or alter swaps. The only effect of centralization is that the five fixed addresses collectively receive all fees.

Risk to user funds: The hook takes up to 0.1% of swap amounts from the pool during swaps and holds them until claimed. It cannot block swaps because claims are best effort and fee transfers only go to the hook, though misbehaving token transfers could strand accrued owed balances.

Security findings

  • [info] Hardcoded, non-changeable fee and recipients: FEE_BPS, the five recipient addresses and the split ratios are constants, so no party can alter the fee or redirect payouts after deployment.
  • [medium] Every swap pays a fee to fixed addresses: The hook takes 10 bps of every eligible swap via return deltas, so traders on pools using this hook pay this extra cost on top of the pool fee, and the recipients receive it irrespective of pool usage.
  • [low] Pull-based payouts with best-effort claims: Recipient shares are credited to owed balances held by the hook, and claim returns false instead of reverting on failed transfers, so funds can stay stuck if a recipient cannot receive a token (for example a blocklisted address or a non-payable contract).
  • [low] Hook holds accrued funds: The hook contract holds unclaimed fees in both native and ERC-20 currencies and depends on token transfer behaviour for payout; a token whose transfer misbehaves could leave balances stranded, though only the owed ledger amounts are at risk.
  • [info] Custom accounting through return deltas: Because beforeSwapReturnDelta and afterSwapReturnDelta are enabled, the hook alters settled amounts, so pool integrators should verify the fee accounting matches their expectations.

Contract details

Verified source
Yes (OmniHook)
Compiler
solc 0.8.28+commit.7893614a
Bytecode size
4,897 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using OmniHook