The z4ts whitepaper.
999 pixel z4ts on Zcash. The art in the open, the owners in the shade.
Abstract
Z4ts is a collection of 999 pixel characters on Zcash: the art is public and fully on-chain, and who owns each one stays private.
Every z4ts is a 24×24 portrait in the CryptoPunks tradition, built from fixed-colour traits under strict rules so that each one reads cleanly as a profile picture. The whole collection weighs 373,540 bytes, small enough to write every image onto the chain itself.
Ownership is designed for Zcash shielded assets. Anyone can verify the pixels, the traits and the supply; nobody can look up who holds which z4ts, how many they hold or what they paid. The name is said “zats”, after the smallest unit of ZEC.
The collection
Z4ts has 999 tokens: 990 dealt by a generator (#1–#990) and nine one of ones set by hand (#991–#999).
Each image is 24×24 pixels of art placed in a 28×28 frame. The margin keeps every trait clear of the circle that X and most apps crop avatars to. Images are scaled only by whole numbers with nearest-neighbour, so a pixel is always a square.
The type of every generative token is dealt from an exact deck, not rolled, so the shares below are guaranteed rather than expected.
| Type | Coat | Tokens | Share |
|---|---|---|---|
| z4ts | 16 coats, from Black to Diamond | 842 | 84.3% |
| Robot | Steel | 64 | 6.4% |
| Zombie | Moss | 64 | 6.4% |
| Alien | Cosmic | 10 | 1.0% |
| Mascot | Lucky Calico | 10 | 1.0% |
| One of One | hand-set | 9 | 0.9% |
The 16 z4ts coats are Black, White, Grey, Ginger, Fawn, Chocolate, Siamese, Slate, Lilac, Rose, Sage, Gold, Silver, Rose Gold, Diamond and Pearl.
Design principles
The brief is one line: simple, quiet, expensive. Every rule below is checked by the generator, so no token can break it.
- One body, drawn once. Every z4ts shares the same symmetric bust and 14-pixel-wide head. Character lives in the face, the coat and what it wears, never in a stretched or lopsided body.
- Fixed-colour traits. Each accessory is drawn in its own set colours from one shared palette, like a real object. Nothing is tinted to match the coat.
- Few colours per token. At most two colour families besides the neutrals, and never gold and silver together.
- Nothing hides. A trait is only dealt where it stands out from the coat and background around it. Two traits never cover the same pixel, and never touch in the same colour.
- Made for the avatar circle. Headwear, eyewear and earrings stay at least 3 pixels inside the crop circle; mouth items at least 1. Every trait was checked at 48 px, the size a timeline shows.
- Quiet grounds. Ten light, low-colour backgrounds, each with enough contrast against every coat it is paired with.
Traits and rarity
A generative z4ts is a coat, a background, an expression and up to five accessories drawn from 30 traits. Shares below are of the 990 generative tokens.
| Layer | Traits | Tokens with one | Rarest trait |
|---|---|---|---|
| Clothing | 8: White Shirt, Tank Top, Black Hoodie, Turtleneck, Cream Hoodie, Tuxedo, Camel Coat, Velvet Blazer | 702 (70.9%) | Velvet Blazer, 15 (1.5%) |
| Headwear | 9: Mohawk, Mohawk Thin, White Headband, Black Headband, Bandana, Black Headphones, Halo, Tiara, Crown | 516 (52.1%) | Tiara, 12 (1.2%) |
| Earring | 3: Gold, Silver, Diamond | 324 (32.7%) | Diamond Earring, 42 (4.2%) |
| Mouth | 4: Cigarette, Cigar, Red Lipstick, Gold Grill | 316 (31.9%) | Red Lipstick, 28 (2.8%) |
| Eyewear | 6: Tortoise Glasses, Classic Shades, Gold Shades, Eye Patch, VR Headset, Cyber Visor | 296 (29.9%) | Cyber Visor, 24 (2.4%) |
| Expression | 7: Neutral, Smirk, Bored, Frown, Wink, Angry, Laser | 990 (100%) | Laser, 23 (2.3%) |
| Background | 10: Bone, Stone, Mist, Sage, Blush, Sand, Lavender, Sky, Champagne, Pearl | 990 (100%) | Pearl, 15 (1.5%) |
Trait count is dealt from a deck too. Trait count is the number of accessories, plus one for any expression other than Neutral. The deck deals 0–1 traits to 5% of tokens, 2–3 to 75%, 4–5 to 19% and all 6 to 1%, so most z4ts stay simple.
Rare stays rare. Each layer draws its trait at that trait’s own weight. When a draw would break a design rule, the layer is left empty rather than redrawn, so a rare item never gets extra chances. 159 tokens (16.1%) also carry a theme, a set of traits that belong together, such as Mob Boss or Old Money.
How rarity is ranked. Each attribute scores its information content, −log2 of its share of the supply, and a token’s score is the sum. This is how marketplaces compute rarity from metadata. Traits are also tiered by share: Common from 10%, Uncommon 5–10%, Rare 2–5%, Epic 0.5–2%, Legendary under 0.5%.
The Nine
Nine one of ones close the collection, #991–#999. The generator never deals them: each carries a coat or an item that appears nowhere else.
| No. | Name | What only it has | Its line |
|---|---|---|---|
| #991 | Solid Gold | a solid gold coat, with shades and a tuxedo | Cast, not drawn. |
| #992 | Void | a void coat, with a white shirt and a gold earring | The absence of a cat, with eyes. |
| #993 | Golden Laser | gold laser eyes, on a slate coat | Looked at the sun. Kept looking. |
| #994 | Diamond Crown | a diamond crown, on a diamond coat | The crown the generator was never allowed to deal. |
| #995 | Diamond Grill | a diamond grill, with a diamond earring | Smiles rarely. Worth it. |
| #996 | Lucky Cat | a raised paw and a gold coin | The mascot: one paw up, one coin held. |
| #997 | Onyx | an onyx coat, with gold shades, a cigar and a camel coat | Old money in a camel coat. |
| #998 | Pharaoh | a striped nemes headdress, on a gold coat | On-chain since before there were chains. |
| #999 | Robot Prime | a bronze coat and an antenna light | The first of the machines. |
Fully on-chain
Every z4ts image is written onto Zcash as its own PNG file: no IPFS link, no server, nothing that can go dark. The whole collection is 373,540 bytes.
| Measure | Bytes |
|---|---|
| Smallest z4ts | 282 |
| Median z4ts | 369 |
| Largest z4ts | 552 |
| All 999 | 373,540 |
The files are small because the art is small: 28×28 pixels, a few flat colours, no gradients except two background ramps. The images are published in the open, as data any indexer can read, so anyone can check any token’s pixels without trusting the team.
Provenance. Before the mint opens, the SHA-256 hash of all 999 images in token order is published. Anyone can then confirm that the art sold is the art that was shown, and that no token was swapped after the fact.
Privacy
The art is public; the owner is not. Z4ts keeps the collection verifiable and the holders private, which is the one thing only Zcash can offer a PFP.
On most chains a profile picture is a name tag: click it and anyone sees the wallet behind it, what it paid and everything else it holds. The same is true of NFTs inscribed on Zcash’s transparent pool, where any indexer reconstructs who owns what (zcash.ink). Z4ts is not issued that way.
| Public, for anyone to verify | Private, for the holder alone |
|---|---|
| All 999 images and their traits | Who holds any given z4ts |
| The 999 supply and the provenance hash | How many z4ts one person holds |
| The mint price and how many have minted | What each holder paid |
| That a token exists and is genuine | Every transfer after the mint |
How ownership stays private. Each z4ts is held as a shielded note, so ownership lives inside Zcash’s shielded pool instead of on the public record. Two routes lead there:
- Zcash Shielded Assets (ZIP 226/227). The native asset layer, with private ownership built in. It is not on mainnet today, and no date is scheduled (NSCV).
- Shielded Orchard notes with client-side validation. An item is an ordinary shielded note; a transfer spends it into a new one; provenance is checked against the chain, not a registry. This works on mainnet now (NSCV).
The route is fixed before the mint, and the mint happens only on a route where ownership is never public.
Shown when you choose. Wear a z4ts as your avatar and reveal nothing else. To prove one is yours, to a buyer or a holder chat, you disclose that one item to them and to no one else.
Mint and distribution
Z4ts mints at one fixed price in ZEC, open to everyone at the same time: no blind auction, no bidding, no hidden allocation.
| Parameter | Value |
|---|---|
| Supply | 999, fixed forever |
| Generative | 990 (#1–#990) |
| One of ones | 9 (#991–#999) |
| Payment | ZEC |
| Price | one fixed price, announced before the mint |
| Ownership | shielded, on the route chosen in Privacy |
| Provenance hash | published before the mint opens |
Because holders are private, a per-wallet limit cannot be enforced, so any cap applies per mint transaction. For the same reason, resale royalties cannot be enforced on-chain, and Z4ts does not count on them.
Still to decide before the mint:
- The mint price in ZEC
- How the Nine are distributed
- Whether there is an allowlist, and who is on it
- Whether tokens are revealed at mint or dealt from a committed shuffled order
Open books
Privacy is for holders, not for the team. Whatever the team does with the mint is public; whatever holders do is theirs.
What Z4ts commits to.
- The mint price, the supply and the number minted are public from the first block.
- The provenance hash is published before the mint, and the art never changes after it.
- The team’s mint address and any tokens the team keeps are disclosed.
- No blind auction, no hidden rounds, no second collection sold to the same holders as “the real one”.
What Z4ts does not promise. No roadmap of utilities, no token, no yield, no price. A z4ts is a piece of pixel art you own privately; that is the whole product. Anything built later is a bonus, announced when it is ready, never sold in advance.
Community
Z4ts is built to be worn: as an avatar first, and as a small world around it second.
- X: @z4tspfps is the one official channel for news, the mint date and the price.
- The website shows the collection in the open: the anatomy of a z4ts layer by layer, a z4ts of the block, every trait with its share, the Nine, the privacy model and the real on-chain bytes.
- Try it as your avatar. Any z4ts can be previewed in X’s light and dark avatar circles before anyone mints.
- Pairs, the memory game: flip two cards at a time and match every z4ts pair before the clock runs out. Easy, normal and hard (look-alike pairs from one coat family) levels, and a result card to download and share.
The site and the game collect no personal data; scores stay in the player’s own browser.
Roadmap
The art is finished; the mint waits on one thing, a shielded route that keeps every owner private. No phase has a date until the one before it is done.
| Phase | What it delivers | Status | Waits on |
|---|---|---|---|
| 1. Art and generator | 999 tokens, every design rule checked in code, all layers exported | Done | nothing |
| 2. Brand and website | avatar, banner, @z4tspfps, the site, Pairs | In progress | nothing |
| 3. Shielded route | ZSA or shielded Orchard notes chosen; trial mints on testnet | Next | the Zcash tooling for the route |
| 4. Pre-mint | price, provenance hash, the mint page | Planned | phase 3 |
| 5. Mint | 999 z4ts at one fixed price | Planned | phase 4 |
| 6. After the mint | rarity ranks, and a page that checks any token’s pixels against the chain | Planned | phase 5 |
Risks and disclaimers
A z4ts is digital art, not an investment, and it can lose all of its market value.
- The shielded route may take time. Zcash Shielded Assets have no mainnet date. If the Orchard-note route is used instead, it depends on wallets and marketplaces that support it.
- Private means private. If you lose the keys to the shielded address holding a z4ts, no one can recover it, the team included.
- Fewer places to trade. Shielded NFTs are new; fewer marketplaces and wallets will show them than transparent inscriptions at first.
- Market risk. NFT and ZEC prices move sharply, and interest in Zcash NFTs rose quickly in 2026 and may fall as quickly.
- Rules and taxes. Laws on NFTs and privacy coins differ by country and can change. Each holder is responsible for following their own.
Nothing in this paper is financial, legal or tax advice. Z4ts makes no promise of profit, utility or future work.
Technical appendix
The collection is produced by a deterministic generator: the same seed always yields the same 999 tokens, byte for byte.
- Seed
- Type deck
exact shares - Trait-count deck
- Draw layers
own weights - if it breaks a ruleLayer left empty
- Checks
- Compose 28x28 PNG
- Metadata and layers
Each token is drawn in that order; a token must also differ from every other in its visible traits.
Checks run on every build.
- Every trait uses only the fixed palette and stays inside the canvas and the avatar circle.
- Clothing stays inside the body outline; headwear never covers the ears.
- Every dealt trait shows on at least half of all coat and background pairs.
- No two traits overlap or touch in the same colour; colour families stay in harmony.
- The type and trait-count decks add up to 100%, and each one of one has something the generator never deals.
- Stacking the exported layer files reproduces every generative token exactly, pixel for pixel.
Files.
| File set | Contents |
|---|---|
| Pixels | 999 PNGs at 28×28, the bytes written on-chain |
| Layers | 210 transparent 28×28 PNGs: backgrounds, skins, expressions per skin, 30 accessories, the Nine |
| Metadata | one JSON per token: type, skin, background, expression, five accessory layers, theme, trait count |
| Rarity | each token’s score and rank |
The metadata is written in the common marketplace format today and is converted to the chosen shielded standard before the mint.
Sources
- zcash.ink: how ZRC-721 NFTs work on Zcash’s transparent pool
- NSCV: private NFTs on Zcash with shielded Orchard notes
- PANews: the 2026 Zcash NFT wave
- Collection figures: the Z4ts generator and its metadata, 999 tokens