Launch and contracts
The IMD launch, the deployment order and the addresses.
Through IMD
Pupate launches through IMD’s launchpad as a univ4_hook launch. The request points at the public repository and one commit; the swarm reviews the code, deploys the token and the hook from that commit, and opens and seeds the pool in one transaction. The launch rule gives 10% of supply to the swarm that did the work and puts 85% into the pool, single-sided. The developer’s 5% is delivered to the requesting wallet and moved into the vesting contract straight after.
Order of deployment
- Before the launch: the timelock, FloorFeed and Cocoon are deployed, so the hook can take the vault and the timelock as constructor arguments. The first oracle request is made with FloorFeed as its consumer, which fixes the question hash.
- The launch: IMD deploys PupateToken and PupateHook and opens the pool. On-chain checks follow: the hook’s sink is Cocoon, its owner is the timelock, its launch pool is the intended one.
- After the launch: Cocoon is wired to the pool (it refuses any pool whose hook does not name it as the sink), PupateVesting is deployed and funded, the question is pinned, and FloorFeed and Cocoon are handed to the timelock. From here every change waits 48 hours.
- Then: the first report, the keeper, this site at pupate.fun, and the first paired seat.
The whole sequence is rehearsed on Sepolia first, against a FloorFeed that reads mainnet sales.
The launch window
For 93 minutes after the open the buy tax falls from 99% to 6%, one point a minute. Sells pay 6% from the first block. The tax of the moment is shown beside the trade button; there is no reason to buy in the first minutes unless you want to pay for the vault’s first seat. Whoever does, does exactly that.
Contracts
| identity.md collection | 0x0000eC93127BAA929E58E97dd0095A2BFb38ec1D |
| Seaport 1.6 | 0x0000000000000068F116a894984e2DB1123eB395 |
| IMD token | 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7 |
| IMD oracle signer | 0x5598Aa9146215Bc13eb26f2c692Ad1461Fd32982 |
| PUPATE token | published here with verified source at launch |
| PupateHook | published here with verified source at launch |
| Cocoon | published here with verified source at launch |
| FloorFeed | published here with verified source at launch |
| PupateVesting | published here with verified source at launch |
| Timelock | published here with verified source at launch |
Built with
- Uniswap v4 core 1.0.2 for the pool and the hook.
- Seaport 1.6 for every seat order, signature-free and validated on-chain.
- The IMD oracle for the reference price, and IMD’s worker authorisation for pairing.
- OpenZeppelin’s TimelockController for the 48-hour delay.
- Foundry: 203 tests, including fuzz and stateful invariant tests, plus a mainnet-fork test of the Seaport path.