Documentation Index
Fetch the complete documentation index at: https://docs.monaris.co/llms.txt
Use this file to discover all available pages before exploring further.
The two states of your money
In Monaris, your USDC exists in one of two states:| State | Visibility | What you can do |
|---|---|---|
| Public | Visible on-chain to everyone | Send normal payments, receive funds |
| Shielded | Hidden behind ZK proofs | Send private payments, receive privately |
How the engine boots
Before any private operation, the privacy engine initializes silently in the background. The user sees nothing — this happens during login. The engine retries up to 4 times with exponential backoff if network sync fails. Once sync completes, your private balance is available.Shield — moving funds into privacy
Shielding takes USDC from your public wallet and deposits it into the shielded pool. After shielding, the funds are private — no one can see the balance, the owner, or the origin.What happens step by step
What the chain sees: USDC was transferred to a pool contract. Nothing more. No link to your private balance. Time to spendable: ~1–2 minutes after the transaction confirms.Unshield — moving funds back to public
Unshielding generates a zero-knowledge proof that you own funds in the pool, and transfers them back to your public wallet — without revealing which deposit those funds came from.The proof generation process
This is where the cryptography happens. The entire proof is generated in your browser — no server involved.Proof system details
| Component | Specification |
|---|---|
| Proof system | Groth16 (most efficient ZK-SNARK) |
| Curve | BN128 |
| Prover | snarkjs ^0.7.6 — runs entirely in-browser via WASM |
| Circuit type | 2x2 PoseidonMerkle |
| Proof elements | π_A (G1), π_B (G2), π_C (G1) + public signals |
| Server involvement | None — 100% client-side |
The privacy guarantee
The shielded pool acts as an anonymity set. When Alice shields funds and Bob unshields, the ZK proof breaks the on-chain link between the two transactions. Even sophisticated chain analysis cannot connect deposits to withdrawals — because the proof reveals nothing about which deposit funded which withdrawal.What comes next
Private Payment Modes
Learn how shielded funds are used to send private payments — including the future Private Payment Router.
Key Derivation
Understand how the private wallet is created from your existing address.
