Deposit once and your balance leaves the public ledger. From then on your holdings and your payments are yours alone, and the pool proves every rule it enforces rather than asking you to trust an operator. Below is exactly how, including what it does not hide.
A deposit creates a note. The chain stores only a Poseidon commitment to its four fields, added as a leaf to a Merkle tree. The fields themselves never appear on chain.
Spending a note means proving, in zero knowledge, that you know the secrets behind a commitment somewhere in the tree, without revealing which one. That proof is a Groth16 proof over BN254, roughly ten and a half thousand constraints, generated in your browser. Your spending key never leaves the device.
Paying gas from your own wallet would undo the privacy you just bought: the gas payer is public. So a broadcaster submits for you and is paid from inside the pool. That makes the broadcaster the obvious place to cheat, which is why every field it could tamper with is hashed into one value the proof commits to.
A broadcaster that changes the recipient, skims the amount or inflates its own fee produces a transaction that fails verification. The worst it can do is refuse to submit, at which point you use another one.
The pool hides the middle, not the edges. Money entering and leaving is public, and always will be: that is how a pool on a public chain works.
Testnet only. Nothing goes near mainnet until the circuit, the contract and the agreement between them have been independently audited, and until the trusted setup is redone as a multi-party ceremony. Do not put real money in this.