Hook
EthereumHook is a Uniswap v4 hook on Ethereum. Runs code on every swap. Can take tokens from swaps. Takes a cut when LPs withdraw. Runs at pool creation.
- Contract name
- Hook
How this hook works
Sell feeA simple launch hook for ETH pools that charges a fee only on sells, and also on ETH taken out when liquidity is removed. The fee goes straight to the token creator.
Fee on sells only
When a trader sells the token for ETH, a share of the ETH they get is sent straight to the token creator. Buys pay no hook fee.
The code that does this (_afterSwap):function _afterSwap(address, PoolKey calldata key, SwapParams calldata params, BalanceDelta delta, bytes calldata) internal override returns (bytes4, int128) { if (params.zeroForOne) return (this.afterSwap.selector, 0); int128 ethOut = delta.amount0(); if (ethOut <= 0) return (this.afterSwap.selector, 0); uint256 fee = uint256(uint128(ethOut)) * creatorFeeBps / 10_000; poolManager.take(key.currency0, creator, fee); emit CreatorFeeTaken(creator, fee); return (this.afterSwap.selector, int128(int256(fee))); }Fee on removing liquidity
When liquidity providers take liquidity out, the same share of the ETH they remove goes to the token creator too.
The code that does this (_afterRemoveLiquidity):function _afterRemoveLiquidity( address, PoolKey calldata key, ModifyLiquidityParams calldata, BalanceDelta delta, BalanceDelta, bytes calldata ) internal override returns (bytes4, BalanceDelta) { int128 ethOut = delta.amount0(); if (ethOut <= 0) { return (this.afterRemoveLiquidity.selector, toBalanceDelta(0, 0)); } uint256 fee = uint256(uint128(ethOut)) * creatorFeeBps / 10_000; poolManager.take(key.currency0, creator, fee); emit CreatorFeeTaken(creator, fee); return (this.afterRemoveLiquidity.selector, toBalanceDelta(int128(int256(fee)), 0)); }Fixed rate
The fee rate is set when the hook is made, at most 10%, and never changes.
Who controls it: The fee rate is fixed. The token creator can hand their role, and the fee, to another wallet. The code cannot be upgraded.
Based on the hook’s published code.
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 can change what LPs get back when they remove liquidity.
It runs when a pool is created, often to lock in that pool’s settings.
Hook history
- Paid the token creator its fee 1 time
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.