Likely custom pricing hook on Ethereum
Uniswap v4 Hook Contract 0xeb0a06be355a5fb9bcf3d75f4dd10d8ac321a8cc on Ethereum · Custom pricing
- Volume (24h)
- $44
- Value locked (TVL)
- $44
- All-time volume
- $44
- Pools using this hook
- 1
- Swaps (24h)
- 2 (2 traders)
- Total swaps
- 2
What it does
A single-pool hook that gates where liquidity can be added and takes an unverified share of swaps into an owed balance paid out via pay(), while LPs can always withdraw freely.
This read was written for the hook 0x6c6f…a8cc on Ethereum 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
- Attached to a single pool (fixed pool key, token, and tick spacing) and checks pool setup at initialization.
- Gates liquidity additions, apparently allowing only a specific tick band or opening once an 'opened' flag is set.
- Can adjust swap amounts through return deltas and tracks an amount 'owed' that grows during swaps.
- A pay() function settles the owed amount, recording the total in 'paid', likely routing value to a fixed 'FERRY' address.
- Swap behaviour
- On each swap the hook runs before and after the trade and can change the amounts traded through return deltas, adding to an internal owed balance. The exact deduction size cannot be confirmed from bytecode.
- Liquidity behaviour
- Adding liquidity is checked by the hook and may be limited to an allowed tick band or blocked until the pool is opened. Remove-liquidity callbacks are disabled, so LPs can always withdraw freely.
- Fee behaviour
- The hook appears to take an unknown portion of swaps via return deltas, accumulated as 'owed' and paid out through pay(), probably to the FERRY address; the exact percentage cannot be determined from bytecode.
- Owner & admin controls
- An OWNER address is stored as a constant, but no owner-only setter functions are visible; key values like token, tick spacing, and open tick appear fixed at deployment.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: validates the pool being created; beforeAddLiquidity: restricts where or when liquidity can be added; beforeSwap: can adjust swap input and track owed amounts; afterSwap: can adjust swap output and update owed amounts; beforeSwapReturnDelta/afterSwapReturnDelta: lets the hook change swap amounts.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: An OWNER and FERRY address are hard-coded, with no visible setters, so admin power appears limited; the contract is not upgradeable.
Risk to user funds: Traders' swap amounts can be adjusted by an unknown amount via return deltas. LP principal cannot be locked or drained by the hook.
Security findings
- [medium] Unverified swap deltas: The hook can modify swap amounts via return deltas, and the size of any deduction cannot be verified without source.
- [low] Liquidity add gating: Adding liquidity may be limited to a specific band or until the pool opens; this does not affect withdrawals.
- [info] Withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LPs cannot be blocked from withdrawing.
Contract details
- Verified source
- No
- Bytecode size
- 6,088 bytes
- Upgradeable proxy
- No
- Detected patterns
- return-delta, self-unlock
Pools using Likely custom pricing hook
- ETH / LETHE (0.00% fee) — 24h volume $44, TVL $44, 2 swaps today