docs
How zipcoin works
Everything on this site runs on Ethereum mainnet. No accounts, no custody, no server-side keys to your coins.
What is zipcoin
In Snowmoon, Vitalik Buterin's novel set in the country of Veridia, the zipcoin is money. Payments are fully anonymized, people burn zipcoins to make a message worth reading, and sales tax flows to the government in real time.
$ZC is that currency, shipped as an ERC-20 on Ethereum. It launched on sender.family with a fixed supply of 1,000,000,000, all liquidity locked in Uniswap v4 forever, no mint, no owner.
Zip and unzip
Zip deposits ZC into a Privacy Pool. Unzip withdraws any amount to any address. A zero-knowledge proof, generated in your browser, shows that the coins come from some approved deposit without saying which one. The receiving address has no on-chain link to the wallet that zipped.
Privacy Pools is the design from the 2023 paper co-authored by Vitalik Buterin. Deposits pass through an association set: after a short vetting delay, deposits are approved and their notes can be unzipped. Deposits from blocklisted addresses are never approved. Any depositor can always exit publicly (ragequit) back to the original wallet, approved or not.
Unzips are submitted by our relayer, which pays the gas so the new address never needs ETH from you. The relayer sees the request, never your coins, and cannot change where they go: the recipient and the fee are sealed inside the proof.
Privacy grows with the number of notes in the pool. Unzip to a fresh address, wait a while, and avoid unzipping the exact amount you zipped.
Burn to speak
Burn at least 1,000 ZC to post a message of up to 280 characters, optionally addressed to someone (“to: someone who ate at Beautiful Plants, 18, successful”). Burned coins go to 0x…dEaD and are gone. The bigger the burn, the higher the message ranks.
Public speech burns from your wallet and shows your address. Anonymous speech burns from a zipped note through the relayer: the message is sealed inside the proof, so nobody, including the relayer, can alter it, and nobody can tell who sent it.
Every burn appears in the live strip at the top of the site and on the burns page.
Your zip key
Your notes are controlled by a zip key. By default it is derived in your browser from a signature of a fixed message by your wallet. The signature never leaves the browser. Sign the same message with the same wallet and you get the same key back.
Back up the 12-word zip phrase (“back up phrase” after unlocking). With it you can unzip from any device or wallet. Smart-contract wallets can produce a different signature every time: if you use one, the backup phrase is mandatory. Only sign the zip key message on this site.
Fees and where they go
Veridian sales tax (0.7% of every trade). sender.family charges 1% per swap: 70% goes to the zipcoin treasury in ETH, forever; the rest goes to the $SEND burn and the protocol. It funds the relayer, the association set and the builders.
Vetting fee (0.5% of each zip). Kept by the zipcoin Entrypoint for running the association set.
Relay fee (1% of each unzip or anonymous speech). Paid to the relayer out of the withdrawn amount. Each relayed transaction costs real mainnet gas; while the daily gas budget lasts the treasury covers it, afterwards the minimum amount rises so the fee covers gas.
Contracts
$ZC token: 0x6f40cbaFAF9AA2ADFA5800E141A95c5120bb1a7d
Privacy Pool (ZC): 0xecEa5a101d55b7b0CB04cef67aBC0A1C3df4AB04
Entrypoint (proxy): 0x7a8DA01D241C3cFcF7803cdB007EcE5663749193
Burn contract (ZipBroadcaster): 0x6b39d0fa310e560628e4eB192eB86aA49A1d4F52
Withdrawal verifier (0xbow trusted setup): 0x022891F938Ae7fDC8Ab9Ead0FBf50aBA8C897D6d
Ragequit verifier (0xbow trusted setup): 0xa45ACa8604a73D80C551fAad6355A5c3A5565eC6
Entrypoint implementation (0xbow, audited): 0x15e355024de1CDc74ADdea7EBDf98418Ba5B1a2c
The pool and Entrypoint are the audited privacy-pools-core contracts (Apache-2.0). Proofs are checked by the same verifier contracts that secure the 0xbow ETH pool, built from their public trusted setup, so no one on the zipcoin team can forge a proof. The burn contract is ours: about 100 lines, no owner, holds nothing between calls.
Risks
The burn contract and the sender.family contracts are unaudited. The Entrypoint is upgradeable by the zipcoin owner key, like the original. The relayer and association set are run by the zipcoin team: they can delay approvals or refuse to relay, but they cannot move your coins, and public exit always works. Anonymity depends on how many people use the pool.
$ZC is a volatile token. Nothing here is investment advice. zipcoin is inspired by Snowmoon and is not affiliated with Vitalik Buterin.
FAQ
Do I need ETH to unzip? No. The relayer pays the gas and takes its fee in ZC.
How long until I can unzip? Usually a few minutes, once the association set includes your deposit.
I lost my zip phrase. Sign the zip key message with the same wallet again. If that wallet is gone too, the original depositor wallet can still exit publicly.
Where do I buy? $ZC on sender.family.