ClaudiusHook on Ethereum

Uniswap v4 Hook Contract 0x32f3200b78b0e9164987a5b8630ce3956a5baacc on Ethereum · Fee sharing · Verified contract

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0
Pools using this hook
1
Swaps (24h)
2 (1 traders)
Total swaps
2

What it does

Every swap pays a tax on its ETH side: 3% normally, with the tax starting near 35% for the first ten minutes after launch, so early buyers and sellers pay the most while later trades pay 3%, and the tax is the pool's only fee.

How it works step by step

  • Charges a tax on the ETH side of every swap, taken via beforeSwap or afterSwap return deltas depending on which side is specified
  • Starts the tax at 35% at launch and decays linearly to 3% over a 10 minute window, with the excess above 3% going 80% to the treasury and 20% to the team
  • Splits the 2% community share at flush time between treasury, buyback-and-burn, holder cashback and a purse according to a split read from an external court contract
  • Holds hook-owned liquidity in the ETH/CLAUDIUS pool that only the team wallet can withdraw via withdrawLP
  • Gates liquidity add and remove so only the hook itself can modify liquidity, and restricts initialization to one ETH/CLAUDIUS pool with fee 0 and tick spacing 60
Swap behaviour
On every swap the hook takes taxBps() of the ETH amount. When ETH is the specified side the tax is taken in beforeSwap as a specified-side delta; when ETH is the unspecified side it is taken in afterSwap. Buys and sells are both taxed the same way, and the tax is highest in the first 10 minutes after pool creation (up to 35%) and falls to 3% afterward.
Liquidity behaviour
Liquidity added or removed by external users is blocked: beforeAddLiquidity and beforeRemoveLiquidity revert unless the sender is the hook itself. The hook adds its own liquidity once via openPool and can remove it via withdrawLP, which is restricted to the team wallet and emits LPWithdrawn.
Fee behaviour
The pool LP fee is zero; the hook tax is the only fee. The tax is taken as a return delta on the ETH side. Of the base 3%, 1% of the trade goes to the team and 2% is the community share; during the anti-sniper window the portion above 3% is split 80% treasury and 20% team.
Owner & admin controls
No owner or pause function is present in the decoded interface. The team address is an immutable set at construction and controls openPool (once) and withdrawLP (any amount, at any time). The court address is an immutable whose currentSplit determines how the community share is divided; the court is an external contract whose own admin controls were not analysed. No upgrade mechanism is visible in the bytecode interface.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool creation to the single ETH/CLAUDIUS pool. beforeSwap and afterSwap take the tax and record accounting. beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take the tax as a delta. beforeAddLiquidity and beforeRemoveLiquidity restrict liquidity changes to the hook itself.

Security & trust assessment

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

Who controls it: The team address alone can remove all hook-owned liquidity at any time via withdrawLP and can open the pool once; nothing in the hook prevents it from doing so.

Risk to user funds: The hook holds ETH and tokens transiently and holds tax balances until flush, and it holds pool liquidity that can be withdrawn by the team. Traders' swap amounts are not held by the hook; the tax is taken from the ETH side of each swap, and the hook can block liquidity changes by external users but does not block swaps.

Security findings

  • [high] Team can withdraw all hook-owned liquidity at any time: withdrawLP is callable by the team immutable address with no timelock or cap beyond the stored liquidity, and removes liquidity from the pool, which can be used to drain depth from the ETH/CLAUDIUS pool and fully rug trading liquidity. The contract comments and the event acknowledge this capability.
  • [medium] Trust in the external court contract for fund routing: flush sends treasury and purse ETH to the court contract and reads currentSplit from it; the court's behaviour and admin controls determine where the community share ends up and are not verifiable from this hook alone.
  • [medium] Holder cashback routed through an external token: Holder share is sent as ETH via the token's distribute function, and buybacks call the token's burn; the safety of those calls depends on the token contract, which was not analysed.
  • [medium] Tax can be as high as 35% on early trades: taxBps starts at 3500 bps for the first ten minutes after launch, which materially reduces the output of early buyers and sellers.
  • [low] Swap-time ETH transfers and external calls: flush and the buyback path perform external ETH sends and token calls; flush is nonReentrant and the swap path only uses manager.take, so reentrancy risk appears limited but depends on the external contracts.

Contract details

Verified source
Yes (ClaudiusHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
9,997 bytes
Upgradeable proxy
No
Detected patterns
erc20, launchpad, moves-currency, return-delta, self-unlock, tax

Pools using ClaudiusHook