Installation
This page covers how to install the ZeroStyl CLI tools and set up your development environment.
Prerequisites
Before installing ZeroStyl, ensure you have the following:
Rust 1.85 or Later
ZeroStyl requires Rust 1.85+ for stable features used in the halo2 backend.
# Check your current Rust version
rustc --version
# Install or update via rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update stable
Cargo
Cargo is included with every Rust installation. Verify it is available:
cargo --version
ZeroStyl is tested on Linux (x86_64) and macOS (Apple Silicon and x86_64). Windows support via WSL2 is experimental. Native Windows builds are not currently supported.
Build from source
The CLI binaries are not published to crates.io — they are built from the workspace. Clone the repository and compile in release mode:
git clone https://github.com/kazai777/zerostyl.git
cd zerostyl
cargo build --release
The reusable library crates are published — zerostyl-circuits, zerostyl-runtime,
zerostyl-orbit, and the Rust zerostyl-sdk — so you can depend on them from your own project
with cargo add zerostyl-sdk without cloning. The four command-line tools below are only available
by building from source.
The first build compiles halo2 and its dependencies from source (a few minutes); subsequent builds
are incremental. The compiled binaries are placed in ./target/release/:
| Binary | Crate | Purpose |
|---|---|---|
zerostyl-debug | zerostyl-debugger | Inspect circuits and debug witnesses |
zerostyl-prove | zerostyl-cli | Generate and verify proofs |
zerostyl-export | zerostyl-exporter | Generate circuits, ABIs, and SDKs from annotations |
zerostyl-orbit | zerostyl-orbit | Per-chain deployability analysis |
zerostyl-verifier is a library crate (no binary) — add it to a Stylus contract's Cargo.toml;
see Verifier Integration.
To run the binaries directly from the workspace, use cargo run:
cargo run --bin zerostyl-debug -- --help
Or make them available on your PATH by copying them from target/release/, or with
cargo install --path:
cargo install --path crates/zerostyl-cli # installs zerostyl-prove
cargo install --path crates/zerostyl-debugger # installs zerostyl-debug
cargo install --path crates/zerostyl-exporter # installs zerostyl-export
cargo install --path crates/zerostyl-orbit # installs zerostyl-orbit
Running tests
# Run all unit and integration tests
cargo test
# Run tests for a specific crate
cargo test -p zerostyl-cli
cargo test -p zerostyl-verifier
Verify the Installation
List the circuits bundled with the toolkit to confirm the build works:
cargo run --bin zerostyl-prove -- info list
You should see the built-in circuits (example, state_mask, tx_privacy, private_vote) with
their versions. If that command runs, your installation is working correctly.
Optional: Arbitrum Stylus Toolchain
To deploy a Stylus contract that uses zerostyl-verifier, you need the Stylus toolchain on top of the standard Rust setup.
Install the Stylus CLI
cargo install --force cargo-stylus
Add the wasm32-unknown-unknown target
rustup target add wasm32-unknown-unknown
Install the Stylus WASM optimizer
cargo install wasm-opt
Verify the Stylus setup
cargo stylus --version
Next Steps
With the tools installed, follow the Quick Start guide to debug your first circuit and generate a proof in under five minutes.