CryptoFunks — Litepaper
A bonded generative NFT, backed by a token, drawn from future-block randomness.

TL;DR
CryptoFunks is a 24×24 generative pixel-art NFT collection where every funk is backed by 10 $FUNKS. You don't buy a funk — you redeem one: lock 10 $FUNKS as a permanent bond and pay a small ETH fee, and a commit-reveal draws your funk's art from future-block randomness. Burn the funk anytime to release its 10 $FUNKS.
Two assets and a fee, one loop:
| $FUNKS | ERC-20, fixed 100,000 supply | the bond — 10 locked per funk |
| CryptoFunk | ERC-721, max 10,000 | the art — generated on redeem |
| Mint fee | a small flat fee in native ETH (0.00069420 ETH) | paid to the protocol on each redeem, reroll, and burn |
Every funk locks exactly 10 $FUNKS, so 10,000 is the hard cap (100,000 ÷ 10). The claimable number is lower, though: any $FUNKS sitting in amounts below 10 — dust, partial holdings, fragments left in the LP — can't redeem a funk, so it's stranded. The live collection approaches 10,000 asymptotically but only reaches it if every $FUNKS is consolidated into clean multiples of 10. Expect a long tail short of the cap.
1. The bonded-NFT model
Most NFTs are sold; the proceeds leave. CryptoFunks are minted against collateral that stays.
- Redeem: send 10 $FUNKS (locked as the funk's bond) + a small ETH fee → you get a CryptoFunk.
- Burn: burning a CryptoFunk destroys it for good — the token and its art are gone — and unlocks its 10 $FUNKS bond back to you, for the same small ETH fee as a mint.
This makes the NFT a wrapper around a bonded position in $FUNKS. Its hard floor is the token: a funk is always worth at least the 10 $FUNKS locked inside it. And the two sides breathe against each other:
- Minting locks $FUNKS → removes it from circulation → supports the price.
- Burning releases $FUNKS → returns float.
At theoretical full mint-out, all 100,000 $FUNKS are bonded inside 10,000 funks — the collection is the token, re-shaped as art. In practice fragmentation strands a residue of sub-10 dust (in wallets and the LP) that can never be redeemed, so the effective supply settles just under the cap — a soft scarcity the hard number alone doesn't capture.
2. How a funk is born

Nothing is pre-drawn. There's no hidden folder of 10,000 finished images waiting to be handed out — no funk exists until it's claimed. Each one is generated at the moment you claim it, computed from randomness that didn't exist when you committed. Nobody — not even us — can see it coming or cherry-pick a good one.
The generation runs as a commit-reveal, so neither the minter nor a block proposer can grind for rares:
- Commit —
redeem()locks your 10 $FUNKS, takes a small ETH fee, and records a commit at the current block. - Wait ~2 blocks (~30s).
- Reveal — anyone can finalize; the seed is hashed from
blockhash(commitBlock+1)— the hash of the block right after your commit, which did not exist when you committed and is identical no matter when, or by whom, it's finalized.
The window is 256 blocks (~1 hour) — the chain's blockhash horizon. Reveal in time and the art is yours forever; miss it and the bond is refundable (your 10 $FUNKS come back). Don't like your roll? Reroll the seed for a small ETH fee.
Why future-block randomness? Generative mints that read their seed from values already known when the mint transaction lands — most commonly
block.prevrandao, as in uPeg — can be computed ahead of time. That lets minters grail-snipe (only complete a mint when the predicted roll is rare) and game duplicates. EIP-4399, which definesprevrandao, explicitly warns it is proposer-biasable and unfit for high-value randomness. CryptoFunks draws its seed after you commit, from a block that does not exist yet — so no one, not even the block proposer, can see your funk before it's locked in.
The seed lives on-chain and is immutable. The image is deterministically derived from it by an open, reproducible renderer — same seed, same funk, anywhere.
3. The art
24×24 sprites in the CryptoPunks lineage — types (Human male/female tones, and rare Aliens), plus hats, hair, eyewear, facial hair, mouth props, and accessories. A vanishing ~0.5% roll a rare skin tint.

Left to right: Human 3 + Crazy Hair + VR · Human 1 + Cowboy Hat + Eye Patch · Human Female 1 + Tassle Hat · a rare-skin-tint roll (~0.5%).
No gender lock. In the original CryptoPunks, trait pools were split by type — some hair, eyewear, and accessories appeared only on male punks, others only on female, and the two pools never crossed. CryptoFunks deliberately breaks that. Male and female faces have different proportions (the male face spans more rows than the female), so every attribute sprite is resampled and resized to land correctly on whichever face it's drawn over. The effect: combinations the source never produced — long hair and pink eyeshadow on a male, hoodies and hats on a female, female zombies and aliens — which roughly doubles the effective trait space and makes the cross-gender rolls some of the most distinctive funks in the set.

Traits the originals kept apart, now freely mixed: a female in a bandana · a bearded, lipsticked female · a male in green eye shadow · a male with a blonde bob. The type pool goes further still, adding Zombie, Ape, Alien, and Female Zombie.
4. Rarity — relative and live
Rarity is relative to the live collection, not a fixed pre-baked table. Every trait — including the type itself (e.g. Human 3 Male) — is scored by how much of the live set shares it. Lower share = rarer.
Each funk also gets a rarity rank: the rarest live funk is ★1, recomputed on every load.
It cuts both ways. Because rarity is measured against the live set, every mint and every burn re-weights it. Mint more of a trait and it dilutes — you might hold the only Zombie today, but ten more minted tomorrow changes that. Burn copies and the survivors concentrate — one fewer Zombie in circulation lifts every remaining Zombie's score. A rank isn't a permanent stamp; it breathes with the collection.
Representative frequencies over a 1,000-funk sample:
| Rarest | Commonest | ||
|---|---|---|---|
| Alien (type) | 0.1% | Earring | 28.2% |
| Clown Hair (Yellow/White/Pink…) | 0.1% | Human 4 Male (type) | 15.8% |
| Hoodie (Red/Purple) | 0.1% | Human 3 Male (type) | 15.6% |
5. The mint fee
Every claim, every reroll, and every burn pays a small flat fee in native ETH (0.00069420 ETH), straight to the protocol. It isn't there to gate supply — it's the cost of drawing new art:
- $FUNKS is never burned — only locked as the redeemable bond — so the 100,000 supply stays intact and fully reclaimable. The only thing spent to mint is the ETH fee (plus gas).
- Reroll on demand. Don't like your CryptoFunk? Roll a new seed for the same flat ETH fee — same bond, fresh future-block randomness.
- Recurring revenue — the fee accrues on every claim, reroll, and burn for the life of the collection, not a one-time primary sale.
- No free-grind loophole. Because a reroll costs the same fee as a fresh mint, "burn and re-mint" is never cheaper than rerolling — so there's no way to fish for rares for free.
6. The market
$FUNKS is a fixed-supply ERC-20 — 100,000 minted once at deploy, no minter, no admin — traded on a Uniswap v3 pool, the primary and only market. At launch 99,000 $FUNKS (99% of supply) were seeded single-sided into the pool and the LP position was burned, so the liquidity is locked forever and can never be pulled — no rug, no team-controlled liquidity. Price is set purely by the market; there is no bonding curve.
The remaining 1,000 $FUNKS (1%) are held by the team to cover operational costs — protocol/network fees, DEXScreener listing & boosts, and community giveaways. That is the entire team allocation: no other premint, no reserve, no vesting.
Since each funk's floor is 10 bonded $FUNKS, a rising $FUNKS price lifts the floor of every CryptoFunk together — upside that accrues to all holders, not just early buyers.
7. Contracts
| Contract | Role |
|---|---|
| Funks | ERC-20, fixed 100,000 supply — minted once at deploy, no minter, no admin (99% to the burned Uniswap LP, 1% team bag) |
| Uniswap v3 pool | the $FUNKS/ETH market (0.01% fee) — 99% of supply seeded single-sided, LP position burned so liquidity is locked forever |
| CryptoFunks | ERC-721 — commit-reveal mint, bonded redemption, reroll; flat ETH fee on mint, reroll + burn |
Plain OpenZeppelin ERC-721 — no transfer restrictions, so contract wallets, Safes, smart wallets, and 7702 EOAs can all hold and move funks freely (escrow, packs, vaults, games all work).
8. Status
- Live on Robinhood Chain testnet (chain 46630) — an Arbitrum Orbit L2 with native ETH gas. Full claim → reveal → reroll → burn loop verified on-chain, bonding-curve $FUNKS/ETH market, and a public dashboard (gallery, rarity ranks, holder leaderboards, live fee stats).
- Robinhood Chain mainnet (chain 4663) deployment to follow.
9. Lineage & references
CryptoFunks stands on a specific genealogy:
- CryptoPunks — Larva Labs' 10,000 24×24 originals (2017); the aesthetic root of the entire 24×24-face tradition.
- CryptoPhunks and the broader Phunks movement — including Missing Phunks — flipped, left-facing, community-run derivatives (2021→). After Larva Labs' DMCA takedowns pulled them from OpenSea, holders rebuilt on their own royalty-free venues, turning "a copy" into a statement about decentralization and provenance. CryptoFunks inherits that derivative-as-movement spirit.
- Slonks + $SLOP, by Michael Hirsch (the Slopfather,
hirsch.howdy.eth) — Uniswap-v4-hook NFTs where "the slop is the art," with $SLOP minted by voiding a Slonk. CryptoFunks shares the token-backed generative-NFT spirit, but settles on a plain Uniswap pool instead of a v4 hook and carries no $SLOP dependency. - uPeg / Unipeg (
$UPEG) — the closest prior art: a v4-hook token that renders a 24×24 on-chain image per swap, capped at 10,000, where crossing a whole-token threshold mints the NFT (~$1,500–2,100 / UPEG, ~$34M market cap, mid-2026 — a thinly-traded v4 token, so quotes vary widely by venue). CryptoFunks adopts the 24×24 + 10k-cap shape and the token↔NFT coupling — implemented as a fixed-supply token on a Uniswap pool rather than a v4 hook — but fixes the randomness (see §2): uPeg-style same-blockprevrandaogeneration is predictable in-transaction, enabling grail-sniping and duplicate games; CryptoFunks uses a future-block commit-reveal with a 256-block expiry. - EIP-4399 — the spec that introduced
prevrandao; it explicitly cautions the value is proposer-biasable, which is why CryptoFunks never mints directly from it.
Sources: CryptoPunks · CryptoPhunks (Not Larva Labs) · Slonks · uPeg / Unipeg · UPEG price — CoinGecko · EIP-4399 (prevrandao)
CryptoFunks is experimental software on testnet. Nothing here is financial advice. CryptoPunks, CryptoPhunks, Slonks, and uPeg are independent projects referenced for lineage and comparison; CryptoFunks is not affiliated with or endorsed by them.