PDAIBurnHook on Ethereum

Uniswap v4 Hook Contract 0xb8a3be1ee585beaff86f68e4d3f8412eedf000cc on Ethereum · Token · Verified contract

Volume (24h)
$12
Value locked (TVL)
$360
All-time volume
$6.27K
Pools using this hook
2
Swaps (24h)
3 (1 traders)
Total swaps
781

What it does

This hook burns 1% of pDAI on every swap that involves pDAI, in either direction, so traders selling or receiving pDAI get 1% less pDAI and WETH is never burned.

How it works step by step

  • Hooks the WETH/pDAI pool on Ethereum mainnet and burns 1% of pDAI on every swap in either direction
  • beforeSwap burns 1% of the specified-side amount when pDAI is the specified currency, by calling PoolManager.take to the 0x...dEaD address and returning that amount as a before-swap specified delta
  • afterSwap burns 1% of the unspecified-side amount when pDAI is the unspecified currency, returning the fee as an after-swap unspecified delta
  • WETH is never burned; all token and pool addresses are hardcoded constants with no constructor arguments
  • If the take call reverts (for example a token that blocks the dead address), the swap still succeeds and no burn occurs
  • Emits FeeBurned for each successful burn
Swap behaviour
On every swap that touches pDAI, 1% of the pDAI amount is taken from the swap by the hook and sent to the dead address. If pDAI is the specified side, the burn is deducted in beforeSwap; if it is the unspecified side, it is deducted in afterSwap. Swaps that do not involve pDAI, or where the burn amount is zero or exceeds int128 range, proceed without a burn. Traders who sell pDAI or receive pDAI effectively pay an extra 1% of the pDAI leg; the 1% is burned rather than paid to LPs.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee for the swap itself; the hook adds a separate 1% pDAI burn on each swap via return deltas, which is not paid to LPs or the protocol.
Owner & admin controls
No admin controls found. There is no owner, pause, upgrade path or parameter setter; the contract is immutable and only the PoolManager can call the hook functions.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap is used to burn 1% of the specified pDAI amount via PoolManager.take and return it as a specified delta; afterSwap is used to burn 1% of the unspecified pDAI amount via PoolManager.take and return it as an unspecified delta; beforeSwapReturnDelta and afterSwapReturnDelta are required so these take amounts are netted against the swap.

Security & trust assessment

Risk level: medium (verified source, high confidence).

Who controls it: No privileged key is present. Because the contract is non-upgradeable and has no admin functions, no party can alter fees, pause swaps or redirect burns.

Risk to user funds: The hook takes 1% of pDAI from swaps through PoolManager.take and sends it to the dead address; it does not hold user funds. Swaps can only be affected if pDAI transfers to 0x...dEaD revert, in which case the swap continues with no burn.

Security findings

  • [medium] Hook removes 1% of pDAI from every swap: The hook takes 1% of the pDAI leg through return deltas and sends it to 0x...dEaD, so traders receive less pDAI than the pool would otherwise pay. This is a design feature, but it is a permanent, non-optional tax on the token.
  • [low] Burn failures are silently ignored: Both hook functions wrap PoolManager.take in try/catch and return a zero delta on failure, so a pDAI transfer that reverts lets the swap succeed without burning; the burn can be skipped without notice.
  • [info] Immutable, no admin keys: All addresses are constants and there is no owner, pause or upgrade mechanism, so the hook's behaviour cannot be changed after deployment.

Contract details

Verified source
Yes (PDAIBurnHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
2,117 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using PDAIBurnHook