FAQ
Short answers to the questions traders ask first.
Can I still prove where my funds came from?
Yes, and that is the whole design. Your trading position stays off the public tape while it stays disclosable to an auditor on your terms. The deposit that funded it is public on chain the way any transfer is, so the trail into the pool is there when you need to show it.
Is it compliant?
That is the whole thesis, and it runs on disclosure rather than on gatekeeping. View keysare read-only and let you prove positions, P&L, and source of funds to whoever is owed an answer, whenever you are asked. Every deposit and withdrawal is also on the public ledger for anyone to point at. You hide from the crowd, not from the law.
Do I need the chain’s gas token?
No. Once you hold shielded funds, the gasless relayer pays gas and deducts a small fee from your shielded balance. You never touch a public gas balance.
Can validators or the explorer see my trades?
No. They see commitments and nullifiers — opaque hashes with no amounts and no addresses attached. Your size, entries, and identity stay in shielded state. See the shielded pool.
What can an auditor see?
Exactly what your view key scopes them to — a time range, an asset, a flow — and nothing outside it. There is no switch that makes your whole account public.
What if a relayer goes offline or censors me?
Route through another. Relayers are independent and interchangeable; the worst one can do is ignore you. None can read or move your funds.
What do I actually trade?
Tokenized stocks and tokens native to Robinhood Chain — AAPLx, TSLAx, and the rest — settled in USDG. See private trading.
Do I need to install anything?
No. app.cowlprotocol.com runs the whole protocol in a browser tab, proofs included. The CLI is there when you want every flag and something scriptable. Same pool, same contracts, either way.
Where are my shielded keys?
On your machine, always. The app derives them from a single wallet signature and keeps them in the tab; the CLI keeps an encrypted keystore in ~/.cowl. Neither uploads anything, and no part of Cowl can reconstruct them. Point the CLI at the app’s derivation with cowl config set shieldedAccount sig-v1 and both read the same book.
Why did my withdrawal go out in several transactions?
Because the amount was not a round size. Boundary amounts travel in shared denominations so your figure does not fingerprint you, and anything between sizes gets split. Withdraw on a size and it goes out as one transaction, for one fee.
Why can I not move my whole balance at once?
One spend reads two notes and writes two, so the ceiling on a single move is the sum of your two largest notes, not your total. Merge first and the ceiling rises. Both clients offer it exactly when it matters, and show the bill before running it.
How long does a proof take?
Seconds. A transfer proof is around 2.3 seconds and a shield proof under one, generated on your own machine. The first run of a browser session takes longer because the proving system fetches its reference string once and caches it.
Is the protocol audited?
Every security control runs on every push and publishes its findings: invariant suites over the pool, an adversarial harness over the circuits, two static scanners gating the build, CodeQL, and live monitoring of the deployed contracts. All of it is public and reproducible on the audits page, and paid third-party review lands there in full when it happens.