Privacy Layer 2 on Solana — real SVM execution, a native ZUL gas token, and a multi-asset zk shielded pool.
A real Layer 2 chain that settles to Solana: own block production (single PoA
sequencer), real SVM execution via Agave's solana-svm, native gas token ZUL,
and a multi-asset zk shielded pool (ZUL + bridged SOL).
See docs/PLAN.md for the full implementation plan and trust model.
chain/ Rust workspace: the ZUL node
zul-primitives blocks, genesis, hashing, config
zul-store accounts (redb), blocks, blockhash queue, state SMT
zul-executor solana-svm integration (transaction execution)
zul-privacy shielded pool builtin (Groth16 + Poseidon)
zul-rpc Solana-compatible JSON-RPC (HTTP + WS)
zul-bridge L1 deposit watcher + settlement batcher
zul-node the sequencer binary
programs/ Anchor workspace: settlement, bridge, da_log (Solana L1)
circuits/ circom 2 circuits + build/setup scripts
sdk/ TypeScript SDK (bridge + shielded client)
indexer/ TypeScript indexer worker (node -> Postgres)
explorer/ Next.js 16 block explorer
docs/ plan and protocol notes
# chain node (Rust)
cd chain
cargo test # unit + integration tests
cargo run -p zul-node -- --config ../config/node.example.toml
# web stack (TypeScript)
pnpm install
pnpm -r buildKeys, RPC endpoints, and SSH material are intentionally absent from this repo;
copy config/node.example.toml and .env.example files and fill them locally.