TaxHook
EthereumTaxHook is a Uniswap v4 hook on Ethereum. Brand new: its first pool went live today. Still in use: 12 trades in the last week, and 1 new pool this week.
- Contract name
- TaxHook
How this hook works
Trading taxThis TaxHook runs one launch pool with a buy tax and a sell tax in ETH. The tax builds up and is sent to a tax wallet. The rates can only ever be lowered.
Buy and sell tax in ETH
Buys and sells each pay their own tax, taken from the ETH side before or after the swap depending on how the trade is entered.
The code that does this (beforeSwap):function beforeSwap(address, PoolKey calldata key, SwapParams calldata params, bytes calldata) external onlyPoolManager returns (bytes4, int256, uint24) { if (_isLaunch(key) && _quoteSpecified(params)) { uint256 tax = _specifiedTax(params); _collect(_isBuy(params), tax); return (this.beforeSwap.selector, int256(_toInt128(tax)) << 128, 0); } return (this.beforeSwap.selector, 0, 0); }Taxes can only go down
The hook developer can lower the rates but the code blocks any increase.
The code that does this (setTaxes):function setTaxes(uint256 buyBps, uint256 sellBps) external onlyOwner { if (buyBps > buyTaxBps || sellBps > sellTaxBps) revert TaxIncrease(); buyTaxBps = buyBps; sellTaxBps = sellBps; emit TaxesUpdated(buyBps, sellBps); }Paid to a tax wallet
Anyone can trigger sending the collected tax to the tax wallet.
The code that does this (claimTaxes):function claimTaxes() external returns (uint256 amount) { amount = totalTaxes - paidOut; if (amount == 0) revert NothingToClaim(); paidOut += amount; poolManager.unlock(abi.encode(amount)); emit TaxesClaimed(taxRecipient, amount); }
Who controls it: The hook developer can lower taxes, change the tax wallet and hand over control. The code cannot be upgraded.
Based on the hook’s published code.What do these labels mean?
What it can do
Its code executes inside each trade in pools that use it.
It can take or add tokens during a swap. Fees, burns and custom curves work this way, and so do scams.
It runs when a pool is created, often to lock in that pool’s settings.
Hook history
- Took tax from a trade 12 times
Latest transactions
- 0xc8217633…082787 block 26,420,374
- 0xe5145bb6…2b4051 block 26,420,372
- 0xe165a97b…0f958e block 26,420,370
- 0x41217651…254acc block 26,420,140
- 0x4f4f2d75…ffd7e2 block 26,420,094
- 0x2b520932…9860b6 block 26,420,087
- 0x9b9d939c…06f5e7 block 26,420,084
- 0x1a055874…7d6795 block 26,420,080
- 0x43ae85cd…87c0d4 block 26,420,076
- 0x881ab543…ad2e7c block 26,420,074
Counted from what the hook recorded on-chain across all its pools, for every action in its published code, plus token transfers in and out of it.