Getting started

Architecture

Cowl is a set of contracts and services on Robinhood Chain that let you hold and trade tokenized stocks with your book shielded from the public ledger — while keeping the ability to disclose, on your terms.

The big picture

  you ── web app / CLI
        │  ZK proof, built on your machine
        ▼
  Gasless Relayer ──────────► ZK Shielded Pool ──► On-chain Verifier
        (pays gas)                  │
                                    ├── Trade Adapter ──► Uniswap V3 ──┐
                                    │      (spend · fill · re-shield)  │
                                    │   ◄──────────────────────────────┘
        view key ──► auditor        ├── Fee Collector ──► burn / treasury
        unshield ──► stealth addr   └── notes: commitments + nullifiers
                       Robinhood Chain · Arbitrum L2 · settles in USDG

Both clients are thin. They hold your keys, build a proof, and hand it to a relayer — every rule that matters is enforced by the contract and the verifier, not by the software you happen to be running.

Components

ComponentRole
Shielded poolHolds private notes; deposits, private trades, and withdrawals settle here.
Verifier & circuitsChecks the zero-knowledge proof for every state change on-chain.
Relayer networkPays gas and broadcasts your shielded transactions so no wallet points back at you.
Trade adapterSpends shielded notes, fills against public liquidity, and re-shields the result — one atomic transaction, or it never happened.
View keysRead-only credentials you generate and hand out yourself, so you can prove what you hold without anything going public.
Fee collectorRoutes protocol fees to buyback & burn and the treasury.

Data model

  • Notes. Value in the pool is held as private notes, not account balances.
  • Commitments. The chain stores a commitment to each note — never the amount, asset, or owner.
  • Nullifiers. Spending a note publishes a nullifier that prevents double-spends without revealing which note was spent.
  • Two in, two out. A spend reads two notes and writes two, which is why a single operation is capped at your two largest notes rather than your balance. Merging raises the ceiling — see the shielded pool.

Trust boundaries

  • Your keys stay on your device. No service can move your funds.
  • A relayer can drop a transaction, but never read amounts or deanonymize you.
  • Disclosure is opt-in and scoped — there is no switch that makes an account public.
Where the pieces live
Contracts and circuits are open source under the Cowl-Protocol org. See the security model for the guarantees each component makes.