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