Likely custom pricing hook on Base
Uniswap v4 Hook Contract 0x7400aa8c61c5e64a4fccbb7ad377b74af5a2c088 on Base · Custom pricing
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 59
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 1
What it does
A hook that appears to route swaps through an owner-managed set of pools and a router, with an owner-set per-pool fee, and can take over swap accounting using return deltas.
This read was written for the hook 0x9398…8088 on Arbitrum 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
- Enables beforeSwap with beforeSwapReturnDelta, so the hook can take over or modify the swap amounts instead of leaving them to the pool's own pricing.
- Keeps a registry of pools (allPools, getPoolCount, pools(bytes32)) and a mapping from pool id to an address, probably an external pool or engine used on swaps.
- Exposes setPoolFee(bytes32,uint24) so the owner can set a fee per pool, plus an unnamed uint24 setter that likely sets a default fee.
- Has an unlockCallback, which means it can settle and take tokens against the PoolManager itself.
- Has a generic owner-only execute(address,uint256,bytes) that can make arbitrary external calls.
- Swap behaviour
- beforeSwap is the only active swap callback and is nonpayable. It reads a pool-id-to-address mapping, which suggests it redirects or fills swaps against another venue and returns a delta to the PoolManager. The exact pricing logic cannot be confirmed from the decoded bytecode.
- Liquidity behaviour
- No liquidity callbacks are enabled. The add and remove liquidity functions are only stubs that exist for interface compatibility, and the permissions do not call them.
- Fee behaviour
- A fee is stored per pool and in a default slot, and setPoolFee lets the owner change it. How the fee is applied to swaps, and whether the hook keeps part of it, is not determinable from the bytecode.
- Owner & admin controls
- The owner (setOwner, owner) can transfer ownership and call setPoolFee. Other owner-gated functions likely include an unnamed address[] function that registers pools, an address setter, a uint24 setter, and a bfd3da96 function that writes a separate address slot. The owner can also call execute(address,uint256,bytes) to make arbitrary external calls from the hook. No pause or timelock was seen, and no proxy pattern was identified.
Enabled Uniswap v4 callbacks
beforeSwap, beforeSwapReturnDelta
beforeSwap runs custom logic before each swap, apparently looking up the pool's configured address and handling the swap. beforeSwapReturnDelta lets the hook return a delta so it, rather than the pool, determines the swap's token amounts.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: The owner can change ownership, fees, pool and routing configuration, and run arbitrary calls from the hook. This gives it strong control over swap pricing and any assets the hook holds.
Risk to user funds: The hook can hold funds transiently through unlockCallback and return-delta settlement. The owner execute function could move any tokens left in the hook. Pool LP funds are not directly controlled, but swappers are exposed to the hook's delta logic and fee settings.
Security findings
- [high] Arbitrary call by owner: execute(address,uint256,bytes) is gated by the owner slot, so the owner can make the hook call any contract with any data, including moving tokens or approvals the hook holds.
- [medium] Swap deltas controlled by the hook: beforeSwapReturnDelta is enabled, so the hook can change what swappers pay or receive. A faulty or malicious configuration could take value from swaps.
- [medium] Owner-adjustable fees: setPoolFee(bytes32,uint24) and a default uint24 setter are owner-only, and no cap was visible in the decoded bytecode, so fees may be raised arbitrarily.
- [medium] Owner-managed external routing: Pools are mapped to addresses that the owner registers, and beforeSwap reads this mapping, so swaps depend on external contracts chosen by the owner.
- [info] Unverified source: No verified source is available, and the analysis comes only from selectors and the inferred storage layout, so the real behaviour may differ.
Contract details
- Verified source
- No
- Bytecode size
- 20,981 bytes
- Upgradeable proxy
- No
- Detected patterns
- return-delta
Pools using Likely custom pricing hook
- PT-apxUSD-18JUN2026 / apxUSD (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- yoETH / PT-yoETH-24SEP2026 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- yoETH / PLP-yoETH-24SEP2026 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- PT-hBTC-25FEB2027 / hBTC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- hBTC / PLP-hBTC-25FEB2027 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- yoETH / YT-yoETH-24SEP2026 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- hBTC / YT-hBTC-25FEB2027 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / PLP-Morpho-cbBTC-USDC-17SEP2026 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- PT-sKAITO-28JAN2027 / sKAITO (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- YT-40acresUSDC-27AUG2026 / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- sKAITO / PLP-sKAITO-28JAN2027 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- sKAITO / YT-sKAITO-28JAN2027 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- YT-Morpho-cbBTC-USDC-17SEP2026 / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- PT-Morpho-cbBTC-USDC-17SEP2026 / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- PT-40acresUSDC-27AUG2026 / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / PLP-40acresUSDC-27AUG2026 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- PT-apxUSD-5NOV2026 / apxUSD (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- YT-apxUSD-5NOV2026 / apxUSD (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- apxUSD / PLP-apxUSD-5NOV2026 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- sKAITO / PT-sKAITO-30JUL2026 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today