Docs
Contents

ZOL developer docs

ZOL (Zcash Operating Layer) is programmable Zcash privacy on Solana's SVM. Apps are Solana programs: they accept shielded ZEC, run real-time sessions in a MagicBlock/SVM rollup, and pay the result back to Zcash. Players never handle SOL or a Solana wallet, and nothing public links their in-app identity to their Zcash wallet. New to the terms? See Concepts or the glossary.

These pages are for developers building apps on ZOL. Internal designs, plans and runbooks live in ../docs/.

Start here

PageWhat it covers
OverviewWhat ZOL is, what it guarantees, the moving parts
ConceptsVault, deposits, balances, session keys, pots and seats, the rollup, exits
QuickstartA player key, a shielded deposit, coin flips in the rollup and a withdrawal, from code, in about 15 minutes

Build

PageWhat it covers
Build an appThe anatomy of a ZOL app, walked through on the coin flip
Example appsCoin flip (VRF), ZEC Up/Down (price oracle), sealed-bid auction (commit-reveal)
App design patternsSessions, a counterparty service, closing without a keeper, deciding outcomes, many players
Session keys and passkeysThe player's key: what it signs, passkey derivation, backups, privacy

Reference

PageWhat it covers
Ledger programEvery account, instruction, event and error of zol-ledger
Gateway HTTP APIThe operators' public API: app info, deposit intents, deposit status, the ZOL1 memo
TypeScript clientInstruction builders, decoders, session keys, passkeys, deposits
Networks and addressesProgram IDs, endpoints, testnet settings, MagicBlock in ZOL

Ship

PageWhat it covers
Security modelWho can do what, what the ledger guarantees, an app review checklist, known limitations
TestingLiteSVM, the local stack, devnet scripts
DeployingFrom build to an active app on the testnet, services and pages
FAQ, glossary, troubleshootingCommon questions, terms, errors and their causes

Status

ZOL runs as a fully functional beta on testnet: Zcash testnet (NU7), Solana devnet, MagicBlock's devnet rollup, three operators on one host. Players use testnet ZEC (TAZ). The live demo is at /play.html. The design is reviewed in ../docs/design-v0.3.1.md; the ledger has had internal review only.