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
- aMonUSDC / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today