TaxHook
EthereumTaxHook is a Uniswap v4 hook on Ethereum. Brand new: its first pool went live today. Still in use: 5 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 5 times
Latest transactions
- 0x74374feb…c74f9e block 26,419,929
- 0x2cd71575…616046 block 26,419,927
- 0x8413d6da…fdf950 block 26,419,924
- 0x506c2c1b…7b7db6 block 26,419,913
- 0x723c3b14…721126 block 26,419,911
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.