Likely custom pricing hook on Base

Uniswap v4 Hook Contract 0xda503585f39563f2c3383c29f2b5ff6c17250088 on Base · Custom pricing

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

What it does

This hook changes swap outcomes by returning a before-swap delta and taking currency from the pool, but the decoded bytecode does not show which trades pay more or less or how fees are set.

How it works step by step

  • Implements beforeSwap and returns a delta, so it can settle part of a swap itself instead of letting the pool's AMM curve fill it
  • Calls take(address,address,uint256) on the PoolManager, which moves currency out of the pool's accounting to the hook or a recipient
  • Reads and writes three storage slots: two uint256 slots written by the 0x6df902ec function and read in beforeSwap, and a third slot written during beforeSwap
  • Exposes a view function presto() that reads the storage slots
  • Uses Panic(uint256) error handling, indicating arithmetic checks such as overflow or division-by-zero guards
Swap behaviour
On each swap the beforeSwap callback reads stored values, may take currency through the PoolManager and returns a before-swap delta that changes how much of the swap the pool fills. Which trades pay more or less cannot be determined from the decoded bytecode.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee. No fee-setting logic was identified in the decoded bytecode.
Owner & admin controls
The non-view function with selector 0x6df902ec writes to storage slots 0 and 1; its caller check cannot be determined from bytecode alone, so whether it is owner-restricted is unknown.

Enabled Uniswap v4 callbacks

beforeSwap, beforeSwapReturnDelta

beforeSwap is used to run custom logic before each swap and return a delta that can alter the swap amounts; beforeSwapReturnDelta allows that delta to be applied to the pool.

Security & trust assessment

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

Who controls it: If the function behind 0x6df902ec is owner-controlled, that key could change the stored values that beforeSwap reads and so alter swap outcomes for all users. Whether such a key exists cannot be confirmed from bytecode.

Risk to user funds: The hook can take currency from the pool through take() and alter swap deltas through its return value, so it can affect funds held in the pool during swaps.

Security findings

  • [high] Return delta with currency movement: beforeSwapReturnDelta lets the hook change swap amounts and the hook calls take on the PoolManager, so it can move pool currency during swaps.
  • [medium] Unverified storage-writing function: Selector 0x6df902ec is nonpayable and writes storage slots 0 and 1, which are read by beforeSwap; without source it is unclear who may call it or what values it sets.
  • [medium] No source available: Without verified source, the exact pricing and access logic cannot be confirmed and the analysis rests on selectors and storage layout.

Contract details

Verified source
No
Bytecode size
975 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Likely custom pricing hook