Skip to content
ZKBLANK

Privacy rail · Robinhood Chain

Every buy leaves from a wallet that lives once.

Fund a private balance from any chain. Trade through blanks: fresh wallets that retire after one position.

NowPre-launch. Contracts and circuits in build.
NextThe 1,000-Hand Ceremony, then the vault, then $ZKBLANK.

Contract address

Pre-launch

To be announced

$ZKBLANK launches on the Robinhood Chain launchpad after the ceremony closes and the first blanks have traded on mainnet. The address appears here and on @zkblankRH at the same moment.

Trust only the address on this page and on @zkblankRH. Fake addresses show up within minutes of every launch.

01Ceremony
02Vault
03Token

Why trading in public fails

A public chain hands everyone a carbon copy of your trade.

Robinhood Chain shows every wallet to everyone, about ten blocks a second. That is fine for a ledger. It is a gift to anyone who wants to copy, front-run or follow a trader.

  1. 01

    Every buy is a broadcast

    Copy-trading bots mirror size wallets within blocks, and trackers tag those wallets for good.

  2. 02

    Every sell is a signal

    Exit a position and the whole chain can watch you do it.

  3. 03

    A fresh wallet fixes nothing

    The transaction that funds it points straight back to you.

  4. 04

    Stock tokens made it personal

    A portfolio on a public ledger is a portfolio anyone can read.

  5. 05

    The first ZK vaults cut corners

    Each rests on a trusted setup with a single contributor, behind short upgrade timelocks, with sources nobody can check.

the usual ways

Carbon copy

  • Public wallet: every buy is a broadcast, and bots copy it within blocks
  • Fresh wallet by hand: the funding transaction points back to you
  • One-way privacy pools: no trading inside, exits land in a tagged wallet
  • Single-contributor setups: one key-holder could forge proofs
  • Upgradeable in minutes, sources unverified
  • No screening: exchanges refuse the exits

ZKBLANK

Blank

  • Every buy leaves from a blank: a wallet with no past and no future
  • Blanks are paid inside a zero-knowledge proof. There is no funding transaction.
  • Trade from the private balance; sells come back in as fresh notes
  • A 1,000-hand public ceremony: one honest hand is enough
  • Immutable vault, verified source on day one
  • Association sets: every spend proves its deposit is not flagged

Thesis

Privacy on a trading chain is an edge, not a hiding place. The trade nobody can see is the trade nobody can copy. Keep the balance in the dark, send every buy out through a blank, bring every sell back in, and grow the crowd until a blank could belong to anyone.

01Drop

Money in from anywhere. It lands as a private note.

Dark Drop gives you a one-time address on Robinhood Chain. Pay it from any wallet, bridge or exchange. A keeper sweeps it into the vault, and the payment becomes a note only your browser can spend.

Deposit slip

Sample
Pay to
0x7a3F…e91C
single use · predicted, nothing deployed yet
Accepted
ETH · WETH · USDG
From
any wallet · any bridge · any exchange
Status
  1. Waiting
  2. Arrived
  3. Swept
  4. Screened
  5. Ready

Paying from your main wallet links that wallet to this deposit, never to your trades.

A blank paper slip sliding into a slot in a black slab, orange light inside
  1. 1

    A drop key, made in your browser

    It never leaves the device. The drop address is predicted from it (CREATE2), so nothing is deployed until money arrives.

  2. 2

    Pay it from anywhere

    Any Robinhood Chain wallet, any bridge or intent rail from Solana, Base, Ethereum or Bitcoin, or an exchange withdrawal.

  3. 3

    Swept by any keeper

    sweep() deploys the drop box, reads what arrived and computes the note commitment on-chain from the amount and your sealed key.

  4. 4

    Screened

    The association-set provider checks the deposit's source. Clean deposits join the approved set, usually within the hour.

  5. 5

    A private balance

    The chain knows a deposit happened. It never learns which later trade it pays for.

02Blanks

Every buy leaves from a blank. A blank lives once.

A blank is a one-life trading wallet. It is paid inside a zero-knowledge proof, holds exactly one position and retires after the sell. Copy-bots get a wallet with no history and no funder to follow.

A roll of blanks

Sample
  1. Blank014

    $QRS

    Retired

    sold, back in the dark

  2. Blank015

    $LMN

    Retired

    sold, back in the dark

  3. Blank016

    $ABC

    Open

    holding one position

  4. Blank017

    $XYZ

    New

    torn off for this buy

  1. Step 1

    Pick a token and a size

    Say 0.4 ETH of $XYZ. The quote is computed in the browser from pool state, so no quote API sees the trade before it lands.

  2. Step 2

    Tear off blank #017

    Derived in the browser at index 17: a counterfactual smart account with no code, no balance and no history.

  3. Step 3

    Read the grade

    The Privacy Report Card scores the trade A to F and offers one fix per weak factor.

  4. Step 4

    Prove it

    Your browser proves, in zero knowledge, that you own enough unspent notes, that their deposits sit in the approved set, and exactly which swap to pay.

  5. Step 5

    Relayed

    A relayer submits the proof. The vault spends the notes, routes 0.4 ETH through the swap, and the tokens land in blank #017. Change returns as a new private note.

  6. Step 6

    Held

    Blank #017 holds the position. It was never sent gas and never touched your other wallets.

What the proof binds

Sample
pay
0.4 ETH from the vault
swap
ETH → $XYZ
minimum out
1,180,243 $XYZ
recipient
blank #017
deadline
60 s
relayer fee
0.0004 ETH

Change any field and the proof fails. A relayer can carry the trade; it cannot edit it.

  1. 1Blank #017 signs a sell intent off-chain (EIP-712).
  2. 2A relayer deploys its account and sells in the same transaction, paid from the proceeds.
  3. 3Proceeds go straight into the vault as a new note, built on-chain like a Dark Drop.
  4. 4Blank #017 retires. The app refuses to reuse it.
Any Robinhood Chain address
One proof, one relayed transaction.
Another chain
Handed to a bridge rail; every refund address is a fresh one.
Split exit
One note leaves as uneven parts over hours (tier feature).
Ragequit
Flagged deposits only: back to the funding address, in public.

What the chain sees

  • A drop box was paid
  • A note commitment joined the tree
  • Some note was spent (unnamed)
  • Blank #017 bought or sold a token
  • A fee and a relayer were paid
  • The approved-set root

What it never learns

  • Which note is yours
  • Which blank is yours
  • Which deposit paid for which buy
  • Your total balance
  • How many blanks you run
  • Your other wallets

03Grade

Every trade gets a grade before you sign.

The Privacy Report Card reads public data in your browser and grades the trade you are about to make. Nothing about your plan leaves the page.

Change the trade, watch the grade

Cover · Notes newer than yours
Rest · Time since your deposit
Amount · Size of the buy
Token crowd · Other buyers of this token today
Rail timing · Age of the drop that funded you
Holder band · Tier discount on this proof

Good scores 2, fair 1, weak 0, over six factors. 11–12 is A, 9–10 B, 7–8 C, 5–6 D, 4 or less F.

Privacy Report Card

10 / 12

B
  • Cover1,500Good
  • Rest8 hGood
  • AmountRoundGood
  • Token crowdOnly meWeak
  • Rail timing3 hGood
  • Holder bandOffGood

Fixes

  • A token nobody else buys points at you. Wait for a crowd.

Amount

Deposit 1.337 ETH, buy 1.337 ETH a minute later.

Flagged; round sizes or a split across two blanks are suggested.

Timing

A drop lands and a buy follows at once.

A rest timer and a grade penalty until the crowd has moved on.

Rare tokens

A blank is the only buyer of a coin today.

A “you are the crowd” warning before you sign.

IP address

The relayer sees the IP that submits.

Relayers keep no logs, and the app says plainly that only Tor or a VPN hides an IP.

Rails

A bridge sees the source wallet and the drop address.

That is the near side only. A rail never sees a blank.

04Cover

The crowd is your cover. Notes that rest share the pot.

A blank is only as private as the crowd it hides in. Every note resting in the vault is cover for every other note, so ZKBLANK rewards the one habit that makes everyone safer: waiting.

Hundreds of blank white tickets with one orange ticket among them

Crowd meter

Pre-launch
Notes created
0
Spends
0
Rested 24 h+
0
Median rest
–

Pre-launch: the vault opens after the ceremony

Counts every note ever created (leaves in the tree), every spend (nullifiers), and rest times read from the vault's own epoch markers.
Cannot count which notes are still unspent, or how many people own them. One person with ten notes is ten notes here, and the meter says so under the number.
  1. 01

    Spend a rested note

    A buy, an exit or a re-shield. The proof may show how many full 24-hour epochs its oldest input rested: 0 to 7. Nothing else.

  2. 02

    Collect a ticket

    Rested at least one epoch and worth at least 0.02 ETH or 50 USDG? The spend creates a private Crowd ticket, weight = epochs rested.

  3. 03

    The pot fills

    Each epoch's pot is $ZKBLANK bought on the market with 30% of that epoch's fees. The total weight is public.

  4. 04

    Claim the share

    After the epoch closes: pot × your weight ÷ total weight, paid into a private $ZKBLANK note. Tickets left unclaimed for 30 epochs roll into the next pot.

Ticket share

$
Your note rested (epochs)

Includes your own weight

Protocol fees at 0.25%
$2,500
Crowd Pot (30% of fees)
$750
Your weight
3 / 2,000
Your share of the pot
$1.13

A model of the formula, not a forecast. Paid in $ZKBLANK bought with the pot.

05Hands

A thousand hands set up the proofs. One honest hand is enough.

Zero-knowledge proofs need a one-time setup, and whoever keeps that setup's secret could forge any proof. The first ZK vaults on the chain were each set up by a single contributor. ZKBLANK's setup is built by up to 1,000 people in public. If even one of them destroys their secret, nobody can forge a proof. Not even us.

Register

0 / 1,000 · opens before the token

Each hole is one contribution, filled in order. Empty until the ceremony opens.

A white sheet perforated by a grid of tiny holes, orange light shining through
  1. Step 1

    Sign in

    With GitHub or X, on an account at least 90 days old, and bind a Robinhood Chain address for the Hand share.

  2. Step 2

    Contribute

    Your browser downloads the latest key, adds fresh randomness, uploads the result and destroys its secret. About one to two minutes.

  3. Step 3

    Get a receipt

    Your contribution hash and position (#1 to #1,000) go into the public transcript, which anyone can verify.

  4. Step 4

    Claim the Hand share

    At launch, your equal part of 3% of supply goes straight into a private note. Hands also get the SHEET tier free for 90 days.

Hand share

Verified Hands

30,000$ZKBLANK per Hand

3% of supply, bought in the launch transaction at the opening price and split equally. Unclaimed shares are burned after 60 days.

  1. T−21dPublic testnet and a dev ceremony; the bug bounty opens
  2. T−14dThe 1,000-Hand Ceremony opens, one transcript per circuit
  3. T−4dCeremony closes; a public random beacon finalises it; keys and verifiers published
  4. T−3dMainnet contracts deployed, verified, caps set
  5. T−2dThe vault opens to Hands first, then everyone
  6. T 0$ZKBLANK launches; Hand shares claimable
  7. T+30dSecond audit and a clean bounty: caps raised

06Ream

Lock $ZKBLANK in the dark. Pay a lower fee.

A token sitting in a public wallet next to your blanks would undo the point. So tiers are proven, never shown: you lock $ZKBLANK inside the vault, and each burner proof can carry one bit that says “holder band”.

  1. BLANK

    Lock 0

    • Dark Drop, Burner Mode, sell back, exit
    • Report Card, Crowd tickets
    • Burner fee 0.25%
  2. SHEET

    Lock 1M · 0.1% of supply

    • Burner fee 0.15% (holder band)
    • Split exits, up to 4 parts
    • API 10,000 calls a day
  3. STACK

    Lock 5M · 0.5% of supply

    • Everything in SHEET
    • Report Card Pro + scheduled sells
    • Priority relaying · API 50,000 a day
  4. REAM

    Lock 10M · 1% of supply

    • Everything in STACK
    • Split exits up to 12 parts
    • API 250,000 a day · ceremony-2 seat

30-day minimum lock, inside the vault

Lock
$ZKBLANK goes inside the vault as a time-locked note, 30 days or more.
Claim
A burner proof may add “I own a locked $ZKBLANK note above the threshold, still locked”. A locked note cannot be spent, so the claim stays honest.
On-chain
One bit: standard band (0.25%) or holder band (0.15%). SHEET, STACK and REAM look identical on-chain; their extras run in the app and the API.

Trade-off, said plainly: the holder band splits the crowd in two. The Report Card shows when the discount costs more cover than it saves.

The token buys price and convenience, never cover. A tier-0 note is exactly as private as anyone's.

1
Crowd Pot currency
Rested notes receive $ZKBLANK, bought on the market with 30% of all fees.
2
Discount key
A private lock opens the holder band and the app and API extras.
3
Burn target
20% of all fees buy $ZKBLANK and burn it, on a public schedule.
4
Hand share
The ceremony's thank-you, claimed straight into a private note.
  • Buy cover: every note gets the same proofs
  • Boost Crowd tickets: weight follows rest, not holdings
  • Pause a spend or touch a withdrawal
  • Sit next to your blanks: the lock lives in the vault
Total supply
1,000,000,000 $ZKBLANK
Team allocation
0
Launch curve
100% of supply
Hand share
3%, bought in the launch transaction at the opening price
Creator tax
1% to the FeeRouter
Graduation
A Uniswap pool at the launchpad's ETH threshold, LP locked
Token contract
The launchpad's standard ERC-20, burnable
Chain
Robinhood Chain (EVM 4663)

Why it gets bought

  • The Crowd Pot buys $ZKBLANK every epoch with 30% of fees
  • Tier locks: 30-day minimum, holder band and extras
  • Integrators lock for API quotas
  • Hands keep their share in private notes

Why supply tightens

  • 20% of every fee buys and burns $ZKBLANK
  • Locked tier notes sit out of the float
  • Unclaimed Hand shares are burned after 60 days
  • Burns published per epoch, with transaction links

07Fees

Every fee has an address. Here it is.

Fees are taken inside the proof or the swap, in the asset being moved. No subscriptions, no accounts.

  • Dark Drop (money in)0.10%covers the sweep
  • Burner buy0.25%0.15% in the holder band
  • Sell back into the dark0.25%0.15% in the holder band
  • Re-shield (note to note)0.10%
  • Exit to an address or chain0.25%
  • Ragequit (flagged deposits)0%no profit from a flagged deposit
  • Relayer gasat cost + up to 10%to the relayer, not to ZKBLANK

Hard cap in the contract: no fee can ever exceed 0.50%. Changes inside the cap wait 7 days in a timelock.

Where each fee goes

  • 35%Development and operations
  • 30%Crowd Pot: $ZKBLANK for rested notes
  • 20%Buyback and burn $ZKBLANK
  • 10%Security fund: audits, bounty, ceremony 2
  • 5%Reserve
  • Base trading fee 1%: 70% of it to the creator fee recipient
  • Creator tax: 1% on $ZKBLANK trades, all of it to the recipient
  • Recipient = FeeRouter, a contract, swept daily
  • About 1.7% of $ZKBLANK trading volume feeds the same split, from day one

Re-read from the launchpad's verified contracts on launch day. These are the live config at the time of writing.

Bots and agents
Same protocol fee per trade; 20% off above $1M a month
Wallet integrators
Up to 20% of the protocol fee to the wallet, set on-chain
Report Card API
1,000 calls a day free; more with a tier lock
White-label vaults
Never. One crowd is the product; splitting it weakens everyone.
  • Proofs are built in the user's browser, at no cost to the protocol
  • Relayer gas is paid by each trade
  • Sweeps are paid by the 0.10% Dark Drop fee
  • Fixed: indexer, relayers, screening data, audits

Quiet

Blank volume a day
$100k
Protocol fees
$250
$ZKBLANK volume a day
$50k
Launchpad share
$850
Total a day
$1,100
Crowd Pot (30%)
$330
Burn (20%)
$220

Busy

Blank volume a day
$1M
Protocol fees
$2,500
$ZKBLANK volume a day
$250k
Launchpad share
$4,250
Total a day
$6,750
Crowd Pot (30%)
$2,025
Burn (20%)
$1,350

Hot

Blank volume a day
$5M
Protocol fees
$12,500
$ZKBLANK volume a day
$1M
Launchpad share
$17,000
Total a day
$29,500
Crowd Pot (30%)
$8,850
Burn (20%)
$5,900

Illustrative, not forecasts. Blank volume counts buys and sells at 0.25%. Drops, exits and re-shields add more.

  1. 1

    Traders move their balance into the dark

  2. 2

    Every blank trade pays a fee

  3. 3

    30% buys $ZKBLANK for the pot, 20% buys and burns it

  4. 4

    Notes rest longer to collect tickets

  5. 5

    The crowd grows and cover improves

    ↺ back to 1

08Machinery

Built so no single party sees both sides.

Your browser holds the keys, builds the proofs and grades the trade. Everything it asks the outside world is either public data with no parameters, or a finished proof.

  1. Your browser

    keys · prover · Report Card

  2. Indexer

    public chunks, no parameters

  3. Relayers

    finished proofs, no logs

  4. Robinhood Chain

    vault · drops · router · blanks · verifiers

  5. Rails

    bridges, intents, exchanges

  6. ASP

    screens deposits, posts roots

  7. DEX

    curves and Uniswap pools

Bridge or rail

Insource wallet, drop address, IP

Tradenever a blank

Indexer

Infixed public data only

Tradefixed public data only

ASP

Inthe deposit and its source

Tradenever a spend

Relayer

Innever the deposit

Tradeproof, blank, IP

DEX pool

Innothing

Tradethe blank's swap

Browser RPC

Inchunked reads

Tradenothing: trades go through a relayer

Website

Ina page load and an IP

Tradea page load and an IP

No party may see both columns. The website sees an IP on both sides and nothing else, because every plan stays in the browser; for network-level cover, use Tor or a VPN. Every release runs a browser test that records each outbound request and fails on a new host.

Association sets

  • Every spend proves two things: the note is in the vault, and its deposit is in the approved set.
  • The association-set provider screens each new deposit against public sanctions lists and known exploit addresses, then posts the approved root.
  • Flagged deposits can only ragequit: back to the funding address, in public. They never join the crowd.
  • Anyone can read and diff the approved set. Later, users choose between several providers.

Design after Buterin, Illum, Nadler, Schär and Soleimani, “Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium” (2023).

  • Delta audit of the forked circuits and contracts before mainnet; a second, independent audit before caps rise
  • Bug bounty from the first testnet day, paid from the security fund
  • Guarded launch: at most 5 ETH per note and a 500 ETH vault cap for the first 30 days
  • Immutable core and a 7-day parameter timelock; spends can never be paused
  • Every contract verified, its source public, on the day it deploys
  • Relayer requests carry no cookie, no credential, no account
  • The status page tells the truth: if the indexer lags, it says so
BlankVault
Shielded pool: Merkle tree (depth 32), root history, nullifiers. Immutable: no owner, no proxy.
DropFactory
CREATE2 drop addresses; sweep() builds the note on-chain.
BurnerRouter
Runs the bound swap to the blank; sells come back as notes.
BlankFactory
Counterfactual blanks; deploy and signed sell in one call.
AssociationRegistry
Approved roots per provider; a new provider waits 7 days.
Verifiers
Groth16, from the ceremony's final keys.
FeeRouter · CrowdPot · HandsDistributor
The fee split, epoch pots and tickets, the Hand share.
  • spend.circom: a 2-in, 2-out join-split that proves membership, approved labels, value conservation and the action hash
  • ticket.circom: claims a Crowd ticket after its epoch
  • hand.circom: claims a Hand share into a private note
  • Poseidon2 · incremental tree, depth 32 · Groth16 on bn254 · about 2 to 4 s in a desktop browser
  • A fork of an audited, open-source privacy-pool codebase; phase 2 by the 1,000-Hand Ceremony

09Plan

Four phases. The first one carries the weight.

  1. 01

    Now

    MVP

    Weeks 1–6

    • Fork and adapt audited privacy-pool circuits
    • BlankVault, DropFactory, BurnerRouter on testnet
    • Burner Mode end to end: curve buys, Uniswap pools, relayed sells
    • Delta audit and bug bounty
    • The 1,000-Hand Ceremony
    • Mainnet with guarded caps, then $ZKBLANK
  2. 02

    Growth

    Months 2–3

    • Crowd Fees: epochs, tickets, claims
    • Tier locks: SHEET, STACK, REAM
    • Split exits and scheduled sells
    • Burner API and TypeScript SDK
    • One-click rails inside Dark Drop
    • Mobile app with on-device proving
    • Second audit, caps raised
  3. 03

    Upgrade

    Months 4–6

    • Dark Stocks: private balances of official stock tokens, inside each issuer's rules
    • Dark OTC: two notes swap at a fixed price, no pool, no print
    • Several association-set providers
    • Ceremony 2 for the V2 circuits
    • Report Card Pro
  4. 04

    Ecosystem

    Months 6–12

    • Wallet Burner buttons
    • Agent SDK and Proof-of-PnL
    • Browser extension: one toggle
    • Cross-chain exits
    • Fee votes inside the hard cap, cast with locked-note proofs

10Edges

How it gets gamed, and what stops it.

Dust tickets: a pile of tiny notes
Minimum note size, the Dark Drop and re-shield fees, weight capped at 7
Self-churn for tickets
Tickets need a full epoch of rest
Sybil Hands
One Hand per GitHub or X account aged 90+ days; failed contributions struck in public
Association-set abuse
Approved sets are public and diffable; a new provider waits 7 days; ragequit always works
Relayer censorship
Anyone can run a relayer; a user can still submit directly, paying gas from a wallet of their own
Robinhood Chain first
A public trading chain with 100 ms blocks and copy-bots; stock tokens make it personal
One crowd, no white-label vaults
Privacy is a network effect; splitting it hurts everyone
Fork audited circuits
The circuit is the riskiest code; reuse a proven design
Ceremony before launch
A single-contributor setup can forge proofs; one honest hand in 1,000 is enough
Association sets and ragequit
Keeps exits usable at exchanges; flagged funds never join the crowd
Immutable core
A user's exit must never depend on us
Gasless blanks
No funding transaction means nothing to trace back
Quotes in the browser
A quote API would see every plan before it lands
Hard fee cap of 0.50%
A privacy premium bounded in the contract, forever
The token never buys cover
A tier-0 note is as private as any
The holder band is one bit
Tiers split the crowd; keep the split binary and large
Crowd Fees follow rest
It pays for the habit that protects everyone
Product before token
Ceremony, vault and first blanks before the curve
0 team allocation
The Hand share is bought at the open: no premint
Crowd
notes in the tree · spends a day · median rest
Usage
blanks opened a day · blank volume · exits
Trust
ceremony hands · audit status · incidents
Privacy
Report Card grade split · bounty attempts
Money
fees a day · Crowd Pot · burns · FeeRouter
Token
holders · locked supply · tier counts
  • Vault value on its own: one large depositor can look like a crowd
  • Note count without spends
  • Token price as a health signal
  1. 01

    Network effect

    Cover grows with every user. The first vault with a big crowd offers the best privacy, and a newcomer can only offer a smaller one.

  2. 02

    Trust that cannot be added later

    A thousand public hands in the setup. A rival cannot add a ceremony after the fact without new circuits.

  3. 03

    Compliance posture

    Association sets keep exits clean enough for exchanges and integrators to accept.

  4. 04

    The blank UX

    One click per trade, no gas to manage, no wallets to juggle.

  5. 05

    Integrations

    Bots, wallets and agents ship a Burner button and take an integrator fee. Each one feeds the same crowd.

  6. 06

    A token tied to the crowd

    Buys and burns come only from real trades through the vault.

11Honest take

What is strong, and what could go wrong.

Strong

  • Privacy you can trade with, not only hide behind: buys go out through blanks, sells come back in
  • A setup nobody can forge, once one of up to a thousand public hands is honest
  • Exits that stay usable: association sets and ragequit keep flagged money out of the crowd
  • One click per trade: no gas to fund, no wallets to manage
  • A token whose buys and burns come only from real fees

Risks

  • Behaviour still leaks. Amount, timing, IP and token choice can give a user away; the Report Card warns, it cannot undo it.
  • A young crowd is thin cover. The first users have the smallest crowd to hide in.
  • One association-set provider at launch: trust sits with us until several providers exist.
  • The circuits are a fork. The fork, the ceremony and the delta audit all have to land before mainnet, and a ceremony of a thousand takes one to two weeks.
  • The launchpad can redirect future creator fees after a three-day notice. The FeeRouter is swept daily, so nothing sits waiting.
  • Privacy tools draw scrutiny. Screening and ragequit are the answer we chose, not a promise of how every regulator will see it.