Custom pricing hook on Monad

Uniswap v4 Hook Contract 0x3444d991e555caa383fe7c547747221798448088 on Monad · 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
3

What it does

A custom-accounting hook that intercepts swaps with a return delta and appears to route pool assets into an Aave lending market for yield.

How it works step by step

  • Implements beforeSwap with beforeSwapReturnDelta to adjust swap settlement
  • Calls take on the PoolManager to pull currency during swaps
  • References Aave supply and aToken balances, suggesting deposits of assets into Aave
  • Exposes underlying, aavePool, aToken and poolManager getters for integration
  • Reverts with ExactOutputNotSupported on exact-output swaps
  • Liquidity callbacks exist in the bytecode but are not enabled by permissions
Swap behaviour
beforeSwap is dispatched and the hook can return a delta and move currency via take and transfer during swaps; exact-output swaps are rejected via ExactOutputNotSupported.
Liquidity behaviour
Liquidity add and remove callbacks are present (beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity) but are not enabled in the hook permissions, so they are not invoked by the PoolManager.
Fee behaviour
Does not appear to set a dynamic fee; fee handling is not evident from decoded selectors. Likely the pool's static fee applies.
Owner & admin controls
No admin controls found; no owner or setter selectors are dispatched, though underlying(), aavePool(), aToken(), poolManager() are public immutable-style getters.

Enabled Uniswap v4 callbacks

beforeSwap, beforeSwapReturnDelta

beforeSwap: intercepts swaps and can return a delta that offsets the swap amount. beforeSwapReturnDelta: lets the hook take over part of the swap settlement, so it can move currency on the pool's behalf.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, medium confidence).

Who controls it: No privileged key is evident from the decoded selectors, so no admin role can be identified from the bytecode alone.

Risk to user funds: The hook can take and move pool currency during swaps and appears to supply assets to an external Aave pool, so user funds depend on the hook and Aave for custody and withdrawal. Without source the exact accounting and any withdrawal guards cannot be verified.

Security findings

  • [medium] Hook settles currency during swaps: Hook is permitted to return a beforeSwap delta and the bytecode calls take(address,address,uint256) and ERC20 transfer, so it can move tokens during swaps.
  • [medium] Funds deposited into external Aave market: Bytecode references Aave selectors supply(address,uint256,address,uint16) and balanceOf, indicating deposits of pool-held funds into an Aave pool via aToken.
  • [low] Swap amounts altered by return delta: Hook declares a swap return delta that can change swap amounts, which is a common source of unexpected routing outcomes.
  • [info] Yield wrapper behaviour: Strategy appears to be a yield-bearing or rehypothecation design wrapping an underlying asset via aToken.

Contract details

Verified source
No
Bytecode size
3,934 bytes
Upgradeable proxy
No
Detected patterns
erc20, liquidity-management, moves-currency, return-delta

Pools using Custom pricing hook