Core concepts
Five ideas carry the rest of the docs. Read this once and the protocol pages will click.
Shielded state
Assets live in one of two states. In the public state they sit on an ordinary address and every balance and transfer is visible. In the shielded state they live inside the shielded pool as private notes, and the public ledger sees only cryptographic commitments.
Notes & commitments
A shielded balance is not a number in an account. It is a set of notes — UTXO-like records that encode an amount and an owner. When a note enters the pool the chain stores a commitment (a hash) in a Merkle tree. Nobody can read the note from the commitment.
To spend, you publish a nullifier derived from the note and a ZK proof that the note exists and is yours — without revealing which note. The nullifier is what stops a note being spent twice.
Shield / unshield
Moving value across the public/shielded boundary is shield (in) and unshield (out). The amounts crossing that boundary are the one place metadata can leak, so the boundary gets its own hygiene rules — covered on the shielded pool page.
Keys
Cowl splits authority across three keys so you can see, spend, and disclose independently:
| Key | Can | Cannot |
|---|---|---|
spend key | Move and trade your shielded funds | Be shared without giving away control |
viewing key | Scan for and read your own notes | Spend anything |
| view key | Grant a third party read-only sight, scoped | Spend, or see outside its scope |
The actors
- You — hold the spend and viewing keys, trade from shielded state.
- The relayer — pays gas and broadcasts your shielded transactions so no funding wallet points back at you. See gasless relayer.
- Wallet-watchers & MEV bots — the crowd Cowl hides you from. They read the public tape; shielded state gives them nothing.
- Auditors — the people you may owe answers to. They see only what a view key lets them.