Getting started

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:

KeyCanCannot
spend keyMove and trade your shielded fundsBe shared without giving away control
viewing keyScan for and read your own notesSpend anything
view keyGrant a third party read-only sight, scopedSpend, 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.
Tip
New to the vocabulary? The glossary defines every term used across these docs in one place.