▌ MECHANISM · HOW TO PLAY

Mint. Watch. Freeze. Burn.

Five steps from your first mint to a $EVOLVE payout. Nothing automated for you — and nothing automated against you. The punk does its own evolution; you just choose which moments to keep.

01MINT
— three sample punks from the live pool · every gene is different —
▌ STEP 01

You get one random punk.

A pay-once, get-one transaction. The contract rolls a 256-bit gene for you at the block — that gene is yours, forever.

The gene decides three things, all at mint and all permanent:

  • Your base type — Male / Female / Zombie / Ape / Alien — drawn by the original 10,000-CryptoPunks distribution. Alien is 9-in-10,000.
  • The random order in which your 8 trait slots will unlock over time.
  • Each slot's unlock delay — independently sampled, so you can't predict which slot wakes next.
What does NOT happen at mint: trait selection. At T=0 you have a base + 7 sleeping slots + 1 awake slot that already starts rolling. Most of the punk hasn't been decided yet.
02UNLOCK
Unlock schedule · example punk set by your gene
Head T+0
Earring later
MouthAcc later
Eyes later
LowerFace later
Face later
Expression later
Neck later
▌ STEP 02

Slots wake up one by one.

Your punk has 8 trait slots. They don't all turn on at once — each one sleeps on its own random timer, set by your gene the moment you mint.

The 8 slots are Head · Eyes · LowerFace · MouthAcc · Expression · Face · Earring · Neck. At mint, slot[0] in the random order is already awake. The remaining 7 wait their turn.

You won't know which slot is next until it pops. You won't know the gap until it ticks past. That's by design — the schedule is committed at mint, but it's invisible to everyone (including you) until it plays out.

Schedule is sealed at mint. The order and the wait between each unlock are derived from your mintSeed on-chain — different for every punk, fixed forever, only revealed as time passes. Even we can't look it up; it's only computed when a slot is about to wake.
03EVOLVE
HEAD SLOT · live reroll · every epoch
same slot · 5 consecutive epochs · contract picks a fresh trait every reroll
▌ STEP 03

Every awake slot rerolls forever.

Once a slot is unlocked AND unfrozen, the contract picks a new trait for it on every epoch. There's no end state. The punk keeps moving.

Each reroll is a two-step random draw:

  • 1.Empty or trait? The contract first checks against each slot's empty rate. Neck is empty 96% of the time. Head is empty 2.5% of the time. So you'll see the Neck "off" most epochs, and the Head almost always wearing something.
  • 2.Which trait? If it's a trait, the contract picks one by OG-CryptoPunks rarity. Common things stay common.

No bot does this. No keeper. The rolls are a pure view function — keccak(entropy, slot, epoch). They cost zero gas to watch.

reroll every 6 hoursutes.
reroll every 6 hours.
A full lifecycle plays out over roughly a week.
04FREEZE
Before
Head · Beanie
Eyes · 3D Glasses
MouthAcc · empty
Expression · Smile
🔒LowerFace · sleeping
🔒Face · sleeping
🔒Earring · sleeping
🔒Neck · sleeping
FREEZE()
After
Head · Beanie
Eyes · 3D Glasses
MouthAcc · empty
Expression · Smile
🔒LowerFace · sleeping
🔒Face · sleeping
🔒Earring · sleeping
🔒Neck · sleeping
▌ STEP 04

One click locks every awake slot.

When you see a combo you love, call freeze(). It commits the current roll for every slot that's currently evolving. The sleeping slots are untouched — they'll wake up later and you can freeze them in a separate transaction.

Why one button instead of per-slot? Because partial freezing creates a perverse incentive to wait, watch, cherry-pick one slot, then game the others. By making freeze atomic, the protocol forces you to commit to what's on screen right now.

Each successful freeze also re-mixes your entropy with the current block randomness. That means the future trajectory of your unfrozen slots changes every time you freeze. You can't grind by freezing-and-watching either — the path forks after every commit.

0.001 ETH per call · purely anti-spam. Plus normal gas. The fee exists for one reason and one reason only: to stop people from spamming freeze() in a loop to scramble entropy on their unfrozen slots for free. We're not extracting value here — without it, the protocol's randomness guarantee would break. The fee is therefore charged even on a no-op (a call that doesn't end up freezing anything new), because a no-op spam call would do exactly the damage the fee prevents.
Strategic choice: freeze early = lock in what you have, force the rest down a new path. Freeze late = more reroll attempts but you might lose the rare combo you already saw. The protocol is indifferent. Pick your style.
05BURN
👤
YOUR PUNK
base + N
frozen slots
−log₂(p)
summed across
base + frozen
$EVOLVE
1 bit = 1 token
protocol mints
payout = −log₂(pbase) + Σ −log₂(pfrozen-slot)
e.g. Alien (9/10,000) base + Beanie + Choker = 10.12 + 7.83 + 7.70 = 25.65 EVOLVE
▌ STEP 05

Cash out in Shannon bits.

When you're ready, burn the punk. Your supply drops by 1 forever. In return, the protocol mints $EVOLVE proportional to the rarity you committed to.

The reward is the Shannon surprisal — −log₂(p) — summed across:

  • +Your base rarity (always counts — base is locked at mint, can never be unfrozen).
  • +Each FROZEN slot's trait rarity.
  • ×Unfrozen slots pay zero. The protocol only rewards what you've committed to. This is the whole point of forcing freeze before reward.
1 bit = 1 $EVOLVE. So an Alien base alone (9/10,000) is worth 10.12 EVOLVE at burn, before any frozen slots. Stack rare frozen traits on top and you build a real payout.
▌ Cheat sheet

Five actions, end to end.

Action
What it does
When / cost
mint(qty)
Rolls a random gene per punk. 1–30 per tx. Each punk gets its own base, unlock order, unlock delays. Permanent identity.
0.01 ETH
~90k gas / punk
(auto)
Slots unlock at their pre-committed delays. Once unlocked, they reroll every epoch — no tx, no gas, just keccak.
no cost
view function
freeze(id)
Locks every currently-evolving slot at its current value. Sleeping slots untouched. Mutates entropy → future rolls diverge. Charged even on no-op.
0.001 ETH
(anti-spam)
+ ~50k gas
burn(id)
Destroys the punk · supply –1 forever · protocol mints you $EVOLVE = Shannon bits across base + frozen slots.
irreversible
Phase 2
list / buy
Side-quest: sell on the Market while the punk keeps evolving in escrow. Buyer takes the state at fill time. 5% protocol fee.
ETH only
zero royalty

Now you know the rules.

Time to roll a gene.