ClaudiusHook on Ethereum
Uniswap v4 Hook Contract 0x5a24e479bbef4412432f04051956a641d44460cc on Ethereum · Fee sharing · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 4 (2 traders)
- Total swaps
- 4
What it does
Every swap in the ETH/$CLAUDIUS pool pays a flat 3% tax on its ETH side, identical for buys and sells, and that tax is split between the team, treasury, token buyback-and-burn, holder cashback and an event purse.
How it works step by step
- Charges a fixed 3% tax on the ETH side of every swap in the ETH/$CLAUDIUS pool, taken via return deltas in beforeSwap (ETH specified) or afterSwap (ETH unspecified).
- Accrues one third of the tax (1% of trade) as pendingTeam and two thirds as pendingCommunity.
- Anyone can call flush(), which splits the community share by the current split from the court contract into treasury, buyback-and-burn, holder cashback and imperial purse.
- Buyback-and-burn is executed by the hook unlocking the pool manager, swapping ETH for $CLAUDIUS, and burning the bought tokens via the token contract.
- Holder cashback is forwarded to the token's distribute function once accumulated pendingHolders reaches MIN_CASHBACK (0.02 ETH).
- Swap behaviour
- Every swap where ETH is the specified side pays a 3% tax taken in beforeSwap as a positive return delta; swaps where ETH is the unspecified side pay the same 3% taken in afterSwap from the ETH that moved. Swaps with zero computed tax pay nothing. Tax is identical for buys and sells.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- The LP fee is fixed at 0 and the hook tax of 3% of the ETH side (TAX_BPS=300) is the only fee; the team receives 1% of trade and the remaining 2% community share is split by the court's current decree between treasury, burn, holders and purse.
- Owner & admin controls
- No owner, pause or upgrade functions are present; TAX_BPS, TEAM_BPS, MIN_CASHBACK and the addresses of the manager, token, team and court are constants or immutables. The split of the community share is controlled externally by the court contract's currentSplit, which is set by Claudius's decrees, and the court and team addresses receive funds.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts the pool to the single ETH/$CLAUDIUS pool with fee 0 and tickSpacing 60. beforeSwap takes the tax as a return delta when ETH is the specified currency. afterSwap takes the tax as a return delta when ETH is the unspecified currency. beforeSwapReturnDelta and afterSwapReturnDelta allow these deltas to be returned.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: No privileged key is present in the hook. The team address receives 1% of each trade and the court address receives treasury funds and can shape the split of the community share, so those parties control where the tax goes after it is flushed.
Risk to user funds: The hook takes 3% of the ETH side of every swap and holds it until flush; funds can be moved only to the team, court, token burn and holder distribution paths, and swaps are not blocked by any pause or admin gate.
Security findings
- [medium] Split controlled by external court contract: flush() trusts court.currentSplit() to divide the community share; changes to the court contract can redirect the two-thirds community share between treasury, burn, holders and purse, although the hook itself cannot raise the tax.
- [info] Hook takes ETH via return deltas on every swap: beforeSwap and afterSwap call manager.take to pull 3% of the ETH side and return matching deltas, so all swaps in the pool pay the tax and the hook holds accumulated ETH until flush.
- [low] Permissionless flush with external calls: flush() is callable by anyone and makes external calls to court, the token, the team and the pool manager; it is nonReentrant but depends on those contracts behaving as expected, and a failing team or court transfer reverts the whole distribution.
- [info] Immutable hook addresses and no upgrade path: The manager, token, team and court are immutable and the hook is not a proxy, so the tax rate and recipients cannot be changed after deployment.
Contract details
- Verified source
- Yes (ClaudiusHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 6,221 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta, self-unlock, tax