Private withdrawals
Withdraw to any fresh address. A relayer pays the gas, so the new wallet never needs funding from the old one.
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.
Privacy that you can check, built on audited open-source contracts.
Withdraw to any fresh address. A relayer pays the gas, so the new wallet never needs funding from the old one.
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.
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.
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.
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.
See what anyone can see about a wallet: where its money came from and where it went, across Robinhood, Ethereum, BSC, Base and Solana.
Three steps. The secret part happens on your device.
Create a 12-word Zero Key. Your wallet sends ETH with a commitment derived from it: a hash that hides who can spend it.
The ASP checks the deposit (about 30 minutes). Meanwhile others deposit too. Everyone approved is your anonymity set.
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.
Not a mock-up. These are the circuits and contracts the pool runs on.
// 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;
Honest limits. If a privacy tool promises more, be careful.
You hide in a crowd. A small pool is a small crowd. Wait, and let others deposit, before you withdraw.
Deposits and withdrawals are public. Depositing 0.3712 and withdrawing 0.3712 is easy to match. Use round amounts.
Flagged deposits are denied. They can only ragequit, publicly, back to the wallet that sent them.
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.
No accounts, no custody. Your 12-word Zero Key is the only way to withdraw. Write it on paper.
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.
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.
The contracts keep working without us. Your Zero Key rebuilds your deposits from the chain, and ragequit needs nothing but the contract.
So hacks can be reported before stolen funds get a private exit, and so more people deposit after you.
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.
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.
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.
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.
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.