ZeroPrint Launch App →
Robinhood Chain

Know your footprint.
Leave zero.

Private ETH transfers on Robinhood Chain. See what your wallet gives away, then cut the link: a zero-knowledge proof made in your browser moves your ETH to a fresh wallet that nothing points back from.

–approved deposits in the crowd
–ETH in the pool
0admin keys (owner renounced)
0%protocol fee

What you get

Privacy that you can check, built on audited open-source contracts.

Private withdrawals

Withdraw to any fresh address. A relayer pays the gas, so the new wallet never needs funding from the old one.

Clean-funds proof

Every deposit is screened against OFAC and known scam wallets. Your proof shows you are in the clean set, so honest users never share a crowd with hackers.

No admin keys

The owner role was renounced at deploy. Nobody can upgrade, pause or move funds. Ragequit always returns a deposit to the wallet that made it.

Exit on another chain

Receive on Solana, Base, Arbitrum, Ethereum, BNB Chain, Bitcoin or Zcash. The withdrawal passes through a single-use wallet of your own, so the bridge never sees which deposit was yours.

Privacy meter, and splits

Before you confirm, the app rates the withdrawal from the public deposit set and says what is weak. Split it into smaller parts at random times, to different wallets, in one step.

Footprint scan

See what anyone can see about a wallet: where its money came from and where it went, across Robinhood, Ethereum, BSC, Base and Solana.

How it works

Three steps. The secret part happens on your device.

  1. 01

    Deposit

    Create a 12-word Zero Key. Your wallet sends ETH with a commitment derived from it: a hash that hides who can spend it.

  2. 02

    Blend into the crowd

    The ASP checks the deposit (about 30 minutes). Meanwhile others deposit too. Everyone approved is your anonymity set.

  3. 03

    Withdraw

    Your browser builds a zero-knowledge proof: "I own one of these clean deposits." The relayer submits it to a fresh address, on Robinhood Chain or on Solana, Bitcoin and five other chains. A meter rates how well the withdrawal hides before you confirm it.

Zero-knowledge, for real

Not a mock-up. These are the circuits and contracts the pool runs on.

  • Groth16 proofs from Circom circuits, audited by Oxorio
  • Trusted-setup keys from the public 0xbow ceremony, hash-checked before use
  • Commitment = Poseidon(value, label, Poseidon(nullifier, secret))
  • Lean incremental Merkle trees for the pool and the clean set
  • Proofs made in the browser: your keys, nullifiers and secrets never leave it
  • Owner role renounced: no upgrades, no pause, no fee switch
Verify it yourself →
// packages/circuits/circuits/withdraw.circom (excerpt)

// 3. Your note is somewhere in the pool tree…
component stateRootChecker = LeanIMTInclusionProof(maxTreeDepth);
stateRootChecker.leaf <== existingCommitment;
stateRootChecker.siblings <== stateSiblings;
stateRoot === stateRootChecker.out;

// 4. …and its deposit is in the clean (ASP) set
component ASPRootChecker = LeanIMTInclusionProof(maxTreeDepth);
ASPRootChecker.leaf <== label;
ASPRootChecker.siblings <== ASPSiblings;
ASPRoot === ASPRootChecker.out;

// 6. A spent note can never be spent again
nullifierEqualityCheck.in[0] <== existingNullifier;
nullifierEqualityCheck.in[1] <== newNullifier;
nullifierEqualityCheck.out === 0;

What ZeroPrint does not do

Honest limits. If a privacy tool promises more, be careful.

It doesn't make you invisible

You hide in a crowd. A small pool is a small crowd. Wait, and let others deposit, before you withdraw.

It doesn't hide amounts

Deposits and withdrawals are public. Depositing 0.3712 and withdrawing 0.3712 is easy to match. Use round amounts.

It isn't for stolen funds

Flagged deposits are denied. They can only ragequit, publicly, back to the wallet that sent them.

Bridging is not a disguise

Bridge records are public. Moving to another chain breaks most tracking tools, not a determined one. The crowd you hide in is still the pool.

It can't recover your key

No accounts, no custody. Your 12-word Zero Key is the only way to withdraw. Write it on paper.

FAQ

Is ZeroPrint custodial?

No. Funds sit in a smart contract with no owner. Only someone holding a note's secret can withdraw it, and only the depositing wallet can ragequit.

Who runs the ASP, and what can it do?

We do. It can approve or deny deposits for private withdrawal. It cannot move or freeze funds: a denied deposit can always ragequit back to its sender.

What if this website goes away?

The contracts keep working without us. Your Zero Key rebuilds your deposits from the chain, and ragequit needs nothing but the contract.

Why wait 30 minutes after depositing?

So hacks can be reported before stolen funds get a private exit, and so more people deposit after you.

What is Footprint?

A read-only scan of any wallet's public money trail. Use it before you deposit to see what is already linked to you, and after you withdraw to check that your fresh wallet only shows the relayer.

Can I receive on another chain?

Yes. Pick Solana, Base, Arbitrum, Ethereum, BNB Chain, Bitcoin or Zcash under Receive on. The pool pays a single-use wallet derived from your Zero Key, and that wallet pays the bridge, so the bridge only ever sees an ordinary transfer. We ask Relay and NEAR Intents for quotes through this site, so neither of them sees your IP, and the better quote wins. If a bridge cannot fill the order it refunds your own wallet, and you can retry or sweep it from the app.

Does bridging make me more private?

A little, not a lot. Bridge records are public, so a determined observer can follow the hop to the other chain and see the amount. What it does give you is a bigger crowd on the destination side and a trail most tools stop following. Amount and timing still matter more than the route: read the privacy meter.

What is the privacy meter?

A live rating of the withdrawal you are about to make, computed in your browser from the deposit list everyone can read. It counts how many deposits could have been the source, warns when you are taking out exactly what you put in, and tells you when you are withdrawing too soon. Nothing about you is sent anywhere to compute it.

What does it cost?

No protocol fee. The relayer charges only the gas it pays, capped at 0.5% by the contract. Withdrawing to another chain costs the bridge's own fee, which you see before you confirm; we add nothing to it.

Try it on testnet

Free test ETH, real zero-knowledge proofs.