AutoBurnHook on Base

Uniswap v4 Hook Contract 0x2588587e21d5df55c80abccd555c3d9b9365e8c8 on Base · Utility · Verified contract

Volume (24h)
$2.33
Value locked (TVL)
$186
All-time volume
$215.00K
Pools using this hook
18
Swaps (24h)
4 (3 traders)
Total swaps
26,544

What it does

A Uniswap v4 hook that takes a fixed percentage fee on each swap in ETH-paired pools and burns the collected tokens by sending them to a dead address.

How it works step by step

  • Restricts pools to ETH as currency0 in beforeInitialize.
  • Sets a per-pool fee on the first liquidity addition, defaulting to 1% when no hookData is supplied.
  • Takes the fee from each swap as a positive BeforeSwapDelta that reduces the amount swapped.
  • Claims the fee via manager.take in afterSwap.
  • On ETH to token swaps, sends the ETH fee to SwapExecutor which swaps it into tokens and transfers them to the dead address.
  • On token to ETH swaps, transfers the fee tokens directly to the dead address.
Swap behaviour
beforeSwap skips the hook's own swaps and otherwise reduces the swap amount by the pool fee (default 1%) via BeforeSwapDelta. afterSwap claims the fee with manager.take, then either forwards ETH to SwapExecutor for a second swap and burns the received tokens, or transfers the fee tokens to the dead address directly.
Liquidity behaviour
beforeAddLiquidity only sets the per-pool fee on the first liquidity addition; it does not alter or hold liquidity. No remove liquidity callbacks are enabled.
Fee behaviour
On each swap the hook takes a fee of amountSpecified times poolHookFees (default 10000 parts per million, i.e. 1%) via a positive BeforeSwapDelta that reduces the amount swapped, then claims that amount with manager.take. The fee is set once per pool at first liquidity addition from hookData, bounded between 0.1% and 90%. Fee is taken in ETH on ETH-to-token swaps and in the output token on token-to-ETH swaps.
Owner & admin controls
No admin controls found. The contract has no owner, pause, or upgrade functions; the only setters are poolHookFees, which is written once per pool by whoever first adds liquidity (first-caller sets fee via hookData, range 0.1% to 90%).

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta

beforeInitialize restricts pools to ETH as currency0. beforeAddLiquidity records the per-pool hook fee on first liquidity addition. beforeSwap returns a positive BeforeSwapDelta reducing the swap amount by the fee. afterSwap claims the fee with manager.take, burns tokens or forwards ETH to SwapExecutor for a second swap that burns the received tokens. beforeSwapReturnDelta lets the hook take its fee through the delta.

Security & trust assessment

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

Who controls it: No privileged key exists, so no single party can change fees, pause swaps or upgrade the hook after deployment. Risk is concentrated in the design rather than in an admin.

Risk to user funds: The hook takes a fee on every swap, and by design holds ETH and tokens transiently during the swap. It cannot freeze funds because it has no pause or withdrawal path controlled by a key. Users trading on a pool with a high fee bear that fee as reduced swap input.

Security findings

  • [info] Fee set by first liquidity provider per pool.:
  • [medium] Nested swap and value transfer inside afterSwap.: The afterSwap hook calls swapExecutor.swapETHForTokens, which performs a new swap and burns the output using a transfer to the dead address. This makes the hook depend on a second pool swap inside the first and on ETH balances held by the hook and SwapExecutor.
  • [medium] High fee ceiling enables near-total extraction.: The beforeSwap delta can be as high as 90% of the swap amount because the hook fee is only checked at liquidity addition. A pool creator who sets a very high fee can make most of each swap go to the hook.
  • [low] Unchecked token transfer and no reentrancy guard.: The hook calls manager.take and then transfers tokens to the dead address without checking the return value of the ERC20 transfer. Tokens that revert or return false on transfer would break swaps for that pool.
  • [info] Burn is a transfer to a dead address.: Burns occur through an ERC20 transfer to 0x...dEaD, which is not a true burn for tokens that track total supply. Holders should not assume reduced supply.

Contract details

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

Pools using AutoBurnHook