Zcash light client stack with cryptographic verification at every layer. No trusted servers — header chain proofs, commitment proofs, nullifier proofs, and cross-verification against independent nodes.
bin/
zcli/ CLI wallet — ssh ed25519 keys as wallet seed
zidecar/ light server — indexes chain, serves compact blocks + proofs
crates/
zync-core/ shared primitives — verification, scanning, proof types, gRPC proto
ligerito/ polynomial commitment scheme over binary extension fields
ligerito-binary-fields/ binary field arithmetic (GF(2^128))
ligerito-merkle/ merkle trees for ligerito commitments
ligerito-reed-solomon/ reed-solomon erasure coding over binary fields
proto/ canonical protobuf definitions (copied into crate dirs)
www/ zcli.rotko.net website
Zcash CLI wallet that derives keys from SSH ed25519 keys or BIP-39 mnemonics.
- orchard shielded pool (no sapling legacy)
- trial decryption — server never learns which notes are yours
- air-gapped signing via zigner android app
- watch-only wallet (
-w) with QR-based remote signing - merchant payment acceptance with diversified addresses
- agent-friendly:
--jsonoutput, env var config, deterministic key derivation
cargo install zecli
zcli sync
zcli balance
zcli send 0.1 u1...
Light server that indexes the zcash chain and serves:
- compact blocks (orchard actions only)
- epoch proofs — ligerito polynomial commitments over 1.5M+ block headers
- commitment proofs (NOMT merkle) for received notes
- nullifier proofs (NOMT merkle) for unspent verification
- cross-verification data against lightwalletd endpoints
Polynomial commitment scheme over binary extension fields (GF(2^128)). Proves properties of 1.5M+ block headers in a single proof using Reed-Solomon encoding and Merkle-based verification.
- epoch proofs — ligerito proves the header chain from genesis
- commitment proofs — NOMT merkle proves received note commitments exist in the tree
- nullifier proofs — NOMT merkle proves wallet nullifiers are absent (unspent)
- actions commitment — BLAKE2b chain over per-block action roots, verified against proven value
- cross-verification — block hashes checked against independent lightwalletd nodes
If you find this useful, send some shielded ZEC:
u153khs43zxz6hcnlwnut77knyqmursnutmungxjxd7khruunhj77ea6tmpzxct9wzlgen66jxwc93ea053j22afkktu7hrs9rmsz003h3
Include a memo and it shows up on the donation board.
- Bain Capital Crypto / ligerito.jl — the original polynomial commitment scheme we ported to Rust
- thrumdev/nomt — New Ordered Merkle Tree, used for commitment and nullifier proofs
- Penumbra Labs — client-side sync model we build on
MIT