protocol
how print works
mechanic on the left, numbers on the right. everything is utc. prices are pyth price and exponent, formatted at the edge.
the week
the us stock market is open 32 hours a week. tokenized stocks on solana trade all 168.
every friday at 21:00 utc, print launches two pump.fun coins per stock on the board, PUMP and DUMP, both quoted in that stock token through custom pairs. they trade all weekend.
monday at 13:30 utc the first pyth price update flagged market open is the print. above friday's close, PUMP wins. below, DUMP wins.
- freeze
- fri 21:00 utc
- first print
- mon 13:30 utc
- stocks per board
- 8
- coins per week
- 16
the pot
creator fees from both curves flow into one settlement vault per stock. the vault is an associated token account of the quote mint, owned by the pair pda.
the protocol is a fee collector, a snapshot and a distributor. no custom amm, no custom oracle.
anyone can call collect to pull creator fees from pump.fun into the vault. the pot is whatever has been pulled.
- creator fee
- 1 %
- paid in
- the quote token
- vaults
- one per stock
the print
the crank posts the pyth update in the same transaction as settle. settle checks the update has status open and a publish time at or after 13:30 utc.
the winner is stored on the pair. a tie, exact integer equality at the feed exponent, voids the pair and refunds both sides.
if there is no valid print within 24 hours of 13:30 utc, a holiday or a feed outage, admin can void and the pot is refunded pro rata.
- oracle
- pyth pull
- status required
- open
- void window
- print + 24 h
the claim
at the settle slot the indexer snapshots every wallet holding the winning coin, excluding the bonding curve, the pumpswap pool and protocol wallets.
the crank posts the merkle root. holders claim with a proof and the vault pays pot times amount over snapshot supply. one claim per wallet per pair.
in v0 the crank is trusted for the snapshot. the full snapshot is published as json with its slot so anyone can recompute it.
- payout
- pot × amount / supply
- claims per wallet
- 1 per pair
- losing coin
- stays on curve
instructions
| instruction | signer | does |
|---|---|---|
| init_config | admin | once |
| open_board | admin | creates the board for the week |
| register_pair | admin | creates the pair and its vault |
| collect | anyone | pulls creator fees into the vault, updates the pot |
| settle | crank | verifies the pyth update, sets the print price and the winner |
| post_snapshot | crank | posts the merkle root and eligible supply, once |
| claim | holder | verifies the proof, pays pro rata, marks claimed |
| void | admin | no valid print by print + 24 h, refunds both sides |