The rules

Short version: trade the match coin, take profit before the bell, biggest profit taken wins the purse. The long version is below, and the code is public.

  1. One coin, one matchWe launch a new coin on pump.fun. In the same transaction the program buys the creator's share and locks it. The program checks that nobody bought before it did.
  2. The purse comes from feesThe program is the coin's creator on pump.fun, so it gets every creator fee the coin earns. A quarter goes into the purse. The rest goes to the creator.
  3. The lock ends at a set timeThen the program sells the whole bag. The creator gets back what it cost. Half of any profit goes into the purse. Right after the lock ends only our keeper can sell, with a price floor, so nobody can front-run it.
  4. The final bell is randomAfter the lock ends, anyone can ring it. It picks a random moment in the last stretch of the match. Only trades before that moment count. Nobody knows the moment until it is picked.
  5. Score is the profit you tookWhat you got from your sells minus what those tokens cost you, straight from the chain. Tokens you still hold count for nothing. If you never sold, you are not scored.
  6. Anyone can check the decisionThe scorer posts the winner and a hash of the full card. Anyone can redo the math from public data and compare. After a short wait, anyone can trigger the payout.
  7. Nobody can get stuckIf no decision is posted in time, the purse goes to a backup address set at launch. Once the purse is paid, anyone can close the match and the creator gets the rent back.

Check the program

36ZCF6tSXPc8FpG9wYsVZrWnPNtqUAd7b619MZ8MqKtR

Open it on Solscan. It carries the Verified badge: the code on GitHub builds to exactly the bytes running there (hash 713f4b41…). Verification status: verify.osec.io.

On each match coin's pump.fun page the dev is the match vault, an account the program controls. It has no private key. Nobody can sell the bag early, not even us.

What a match account holds

cost_basis
what the program paid for the bag
tokens_locked
the bag
unlock_ts
when the lock ends
window
the earliest and latest second the final bell can ring
fee_total / fee_prize
fees collected, and the part in the purse
proceeds / gain_prize
what the bag sold for, and the profit share in the purse
prize_pot
what the winner gets
candle_end
when the final bell rang
winner / results_hash
the winner and the card hash
deadline
when the payout can happen

Matches so far

#CoinLengthWinnerProfit takenPurse paid
1oGPKDMCp…EKmrpump15 min53DnQU1d…+0.11260.0237 SOL
2vCj92uzM…BVnpump5 min8ptvshQR…+0.06860.0014 SOL
32ux5Tai9…YAdpump5 min3SJHbVjv…−0.00180.0012 SOL

All three ran with no human in the loop after the launch transaction: dev buy, lock, fee sweeps, sale, random bell, scoring from the chain, payout, close.