Privacy
Who sees what
Privacy boundaries for Zcash-funded venues and public Robinhood-chain swaps.
The Zcash-funded architecture aims to reduce links between trading wallets. It does not guarantee anonymity: timing, amounts, user behavior and external data may reveal links.
Robinhood swaps use a separate public EVM wallet flow. Addresses, balances, approvals and trades are visible, and RPC calls are not OHTTP-shielded. The architecture below describes supported Zcash-funded venues, not Robinhood swaps.
Who sees what
| Party | Sees | Never sees |
|---|---|---|
| Your browser | Everything: your words, balance and which wallets are yours, encrypted on this device | — it sends none of it in the clear |
Relay (Cloudflare, mitoshi-web) | Your IP, the size and time of each request, and which public markets you look at | What you ask about your wallets: every such call is sealed |
| Gateway (Vercel, Dublin) | One request's content, such as an address's balance, arriving from the relay | Your IP or cookies; nothing in a request says who sent it (timing can still group requests, see What stays public) |
| Each venue | That one wallet's orders and positions, sent from Ireland | Your other wallets, your balance, your IP or country |
| NEAR Intents | One swap: a standard ZEC amount in and a fresh wallet out (a funding), or a venue asset in and a fresh shielded address out (a trip home) | Who sent it, or your other swaps |
| The Zcash chain | That shielded transactions happened, and two public steps per wallet: the standard-size payment to NEAR's deposit address, and NEAR's payout into a fresh shielded address when the wallet comes home | Amounts and addresses inside the pool, or that it was you |
| Umbra Trade's servers | Only what the relay and gateway rows say; there is no database and no account | Your keys, your wallet list, your positions |
umbra-trade.vercel.app


What keeps your wallets apart
- One wallet per position. An order goes to the wallet that already holds that market; otherwise to a ready wallet
that has never traded; otherwise you fund a new one. Another position's wallet is never used
(
positionWallet,packages/engine/src/registry.ts). - Its own key on a hardened path of Umbra Trade's own, so no two wallets share a key, a refund address or a request.
- Standard sizes at random moments. See the rules.
- Every call sealed. See Oblivious HTTP.