UndoHook on Ethereum
Uniswap v4 Hook Contract 0x65280f2bcd718d26ed76f8b9348ffa0c59f0a8ec on Ethereum · Launchpad · Verified contract
- Volume (24h)
- $236
- Value locked (TVL)
- $0
- All-time volume
- $236
- Pools using this hook
- 1
- Swaps (24h)
- 2 (1 traders)
- Total swaps
- 2
What it does
UNDO is a launchpad hook where the hook owns all pool liquidity and sells tokens through undoable buy windows that carry a premium, plus a fixed tax on ETH-side swaps paid to the dev.
How it works step by step
- Launches the UNDO token and an ETH/UNDO pool where the hook alone holds all liquidity.
- Blocks outside liquidity additions and donations, and blocks pool initialization by anyone but the hook.
- Lets buyers reserve tokens with buy(), lifting matching liquidity from under the price so the price does not move.
- Lets the buyer cancel for a full ETH refund before expiry, or accept the tokens afterwards; the premium is burned as UNDO.
- Taxes ETH-side swaps at a fixed rate and holds the tax for DEV to claim with claimDev().
- Swap behaviour
- Swaps through the pool apply a fixed tax on the ETH side. The hook returns the tax as a delta in beforeSwap or afterSwap depending on swap direction, and the tax accrues to devOwed.
- Liquidity behaviour
- All pool liquidity is owned by the hook. beforeAddLiquidity reverts, so outside LPs cannot add liquidity, and beforeRemoveLiquidity is not supported. Liquidity is only moved internally by the ledger when windows open or close.
- Fee behaviour
- Plain swaps pay a TAX_BPS (fixed at deployment, capped at 500 bps) tax on the ETH side, taken as a mint of ETH claims and accrued to devOwed, withdrawable by DEV via claimDev(). Reserved buy() calls charge tax on the ETH cost plus a premium that is burned as UNDO through the pool. The pool itself has a static fee of 0.
- Owner & admin controls
- No owner or admin role in the hook; launch() is restricted to the immutable LAUNCHER address and can run once. DEV, tax rate, premium parameters and window bounds are immutable constructor values. The token has no owner, mint or pause. Only the dev's accrued tax is claimable, and claimDev() always pays DEV.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize reverts so only the hook can open the pool. beforeAddLiquidity and beforeDonate revert to lock liquidity. beforeSwap and afterSwap take a tax on ETH-side swaps via return deltas. beforeSwapReturnDelta and afterSwapReturnDelta let the hook take those fees. The remaining callbacks revert with NotSupported.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: No privileged key after deployment. The launcher can call launch() once with a starting tick, and DEV only receives tax. No one can pause, upgrade, or change parameters.
Risk to user funds: The hook holds ETH for open windows and tokens reserved for windows, plus the dev's accrued tax in PoolManager claims. Users can always cancel before expiry or accept afterwards, and claimDev can only pay DEV. No function lets a third party move escrowed funds, and no admin can block withdrawals.
Security findings
- [info] Escrowed buy windows: Users who open a buy() window can cancel before expiry for a full refund of the ETH cost, or accept the tokens afterwards. Funds held by the hook are tracked by heldEth/heldTokens and checked by _checkSolvent after each state change.
- [info] Fixed swap tax: The hook takes a percentage tax on swap volume on the ETH side, capped at 5% by MAX_TAX_BPS, and the rate is fixed. Swappers pay this on every ETH-side trade.
- [low] Hook-controlled liquidity: Liquidity is held and rebalanced by the hook only; there is no external LP exit path. Price and depth depend entirely on the ledger logic, so a bug there could strand or misprice funds, though the code includes solvency checks.
- [info] Token has no admin: The token is a plain fixed-supply ERC20 with burn, minted once at construction to the hook, with no owner or fee logic.
Contract details
- Verified source
- Yes (UndoHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 22,777 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, moves-currency, return-delta, self-unlock, tax
Pools using UndoHook
- ETH / UNDO (0.00% fee) — 24h volume $236, TVL $0, 2 swaps today