How the woods work.
woods.cash is an open-source fork of Tornado Cash Classic for Robinhood Chain. A shared pool and a zero-knowledge proof separate a deposit from its withdrawal.
Save a private note
Your browser generates a random secret and nullifier. The note contains both, along with the network, pool address and amount. Save it privately before sending ETH. Anyone with the note can spend the deposit.
Deposit 0.1 ETH plus the fee
A deposit costs 0.101 ETH plus gas. The 0.001 ETH fee goes to the $WOODS buyback reserve; your note retains 0.1 ETH of withdrawal value. The contract stores a commitment derived from your note in a Merkle tree. Deposits in this pool all have the same amount. Your deposit address, amount and time remain public.
Prove and withdraw
Your browser downloads the pool's commitments and generates a Groth16 proof that you hold an unspent note. The contract verifies the proof, marks its nullifier as spent and transfers ETH to the recipient. It does not reveal which commitment you used.
Where privacy ends
A small pool offers little cover. If yours is the only deposit, the withdrawal is easy to infer. Timing, amounts, wallet funding and other onchain activity can narrow the set of possible deposits.
Direct withdrawals expose the gas payer. This version has no relayer. The connected wallet signs and pays for the withdrawal. Paying from the deposit wallet creates a visible link. A separately funded wallet can still reveal relationships through its funding history.
RPC providers see requests. The public Robinhood endpoint receives your IP address and blockchain requests. A zero-knowledge proof does not hide network metadata or protect a compromised device.
The network controls transaction inclusion. Robinhood Chain applies sequencer screening. A valid proof does not guarantee that a transaction will be included. If a withdrawal remains pending, keep your note and check its transaction before trying again.
Lost notes cannot be restored. There is no note recovery. Keep the note until the withdrawal confirms, and do not share it with support or paste it into another website.
Network and implementation
The target is Robinhood Chain mainnet, chain ID 4663, with ETH for deposits and gas. This is an independent project, not a Robinhood product.
The interface blocks transfers until a contract deployment is configured.
The pool, verifier and hasher use upgradeable proxies. The deployer controls upgrades and can replace withdrawal logic, including logic that moves deposited funds. Holding a private note does not protect against a malicious upgrade.
The protocol retains Tornado Cash Classic's contracts and v2.1 proving artifacts. Upstream audits do not audit this integration. The inherited proof toolchain uses legacy dependencies with known advisories; this fork has not received an independent security audit.

