Buy over the minimum and you catch the TNT: no selling until the fuse burns out or someone else buys big and takes it.
Waiting for live data
Buy at least the minimum on this site and the TNT flies to you. Then try to sell.
Simulated in your browser with a minimum of and a lock of . The other miners buy and sell on a timer so you can watch the TNT move. Nothing here sends a transaction.
Small buys under the minimum always go through and never move the potato. There is no prize and no penalty in money: the module only decides who is allowed to sell.
| What happens | Result |
|---|---|
| Buy at or over the minimum on this site | You catch it. Fuse restarts. |
| Buy at or over the minimum through the Uniswap app, a bot or another router | Reverts |
| Buy under the minimum, any route | Goes through. Potato stays put. |
| Holder sells on this site while the fuse burns | Reverts until the fuse is out |
| Anyone sells through the Uniswap app, a bot or an aggregator while the fuse burns | Reverts |
| Anyone else sells on this site while the fuse burns | Goes through |
| Any sale after the fuse is out | Goes through, any route |
| Holder buys the minimum again | Fuse restarts from full |
While a fuse is burning, sell on this site. The module has to know who is selling, and it can only read that from Universal Router v2.1.1. The Uniswap app now uses a newer router.
Recent on-chain catches and how each fuse ended.
| Holder | Caught | Fuse | Ended |
|---|
Hot Potato is the PoolGamesV1 contract in mode Kind.HotPotato, attached to a Uniswap v4 pool by Programmable. No funds sit in it. It is a rule and nothing else.
abi.encode(uint128 minimum, uint32 pauseSeconds)
minimum is above zero, in raw quote units. For WETH that is wei: 0.1 ETH = 1e17. This launch: . It is compared with the gross quote amount of the buy.pauseSeconds is from 1 to 3600.if (buy && grossQuote >= minimum) {
lastBuyer = buyer;
pausedUntil = now + pauseSeconds;
emit LastBuyerChanged(buyer, pausedUntil);
}
if (!buy && now < pausedUntil
&& seller == lastBuyer)
revert BuyerPaused(pausedUntil);
lastBuyer() pausedUntil() minimum() pauseSeconds() kind() configurationHash()
Event: LastBuyerChanged. Errors: BuyerPaused, UnsupportedRouter, InvalidActor.
Factory: 0x98c5fd3e31E1F8AcFF28C3BAA96492F81BbD9f22
Universal Router v2.1.1: 0x4C82D1fBFe28C977cBB58D8C7FF8FCF9F70a2cCA
Module id: keccak256("programmable.foundation.hot-potato.v1")