ZClassic is an Equihash-based proof-of-work implementation of the Zerocash protocol. It offers privacy through shielded transactions using zero-knowledge proofs that preserve transaction confidentiality. Based on Bitcoin's code and derived from Zcash, ZClassic builds three main binaries: zclassicd (daemon), zclassic-cli (RPC client), and zclassic-tx (transaction utility).
Mainnet: P2P port 8033, RPC port 8023
ZClassic implements the "Zerocash" protocol, offering far higher privacy than Bitcoin through a zero-knowledge proving scheme that preserves the confidentiality of transaction metadata. For technical details, see the Protocol Specification.
This software is the ZClassic client. It synchronizes the entire blockchain history to your computer.
Security Warning: ZClassic is experimental and a work-in-progress. Use at your own risk. For a security issue, please open an issue; see also the upstream Zcash security background.
Deprecation Policy: A release is considered deprecated approximately 70 weeks after its release; an automatic shutdown then halts the node at a block height past that point. Keep your node updated.
Pre-built release binaries are published on GitHub Releases. Download the bundle for your platform and verify it against the checksums published alongside it before running. If you prefer to build it yourself, see Build from Source below.
For comprehensive build instructions, cross-compilation, and troubleshooting, see BUILD.md.
# Clone
git clone https://github.com/ZclassicCommunity/zclassic.git
cd zclassic
# Install build dependencies
./zcutil/install-deps.sh
# Build (dev binaries land in src/)
./zcutil/build.sh -j$(nproc)build-release.sh builds depends and a stripped binary set for a target, written to release/<host-triple>/.
# Native build for the current host (Linux on a Linux box, macOS on a Mac)
./zcutil/build-release.sh linux -j$(nproc)
# Windows (Win64) cross-build — needs the mingw-w64 toolchain
./zcutil/install-deps.sh --mingw
./zcutil/build-release.sh win64 -j$(nproc)To produce macOS binaries, run the native build on macOS (Apple Silicon arm64 build support is included). Cross-building to macOS from another host is not provided by these scripts.
Before running zclassicd, obtain the ZCash proving parameters (~1.6 GB):
./zcutil/fetch-params.shOn a fresh data directory, the node automatically fast-syncs from a compiled-in default bootstrap peer over parallel streams (4 by default), turning a multi-day initial sync into minutes. The downloaded snapshot's tip is verified against a compiled fast-sync anchor commitment, and every block after the anchor is forward-validated.
./src/zclassicdUses ~/.zclassic as the data directory.
# Fast-sync from a specific peer (default port 8033)
./src/zclassicd -bootstrappeer=192.0.2.10
# Adjust parallel download connections (1–16, default 4)
./src/zclassicd -bootstrapstreams=8For complete trustlessness, disable fast-sync and validate the entire chain from genesis:
./src/zclassicd -bootstrap=0The node then performs normal P2P sync, validating every block.
Auto-serve: the node retains a copy of the snapshot it fast-syncs and serves it to peers (uses extra disk).
./src/zclassicd -bootstrapserve=autoOr serve a prepared snapshot directory:
./src/zclassicd -bootstrapserve -bootstrapsourcedir=/path/to/prepared-snapshot| Flag | Purpose |
|---|---|
-bootstrap=0 |
Disable fast-sync; validate from genesis (full validation mode). Default is 1. |
-bootstrappeer=<host> |
Download the snapshot from a specific peer (default port 8033). |
-bootstrapstreams=<n> |
Parallel connections for the snapshot download (default 4, max 16; 1 = legacy single stream). More streams improve throughput on lossy/distant links. |
-bootstrapserve |
Serve snapshots to peers. Requires -bootstrapsourcedir=<dir>. |
-bootstrapserve=auto |
Auto-retain and serve the snapshot this node fast-syncs (no -bootstrapsourcedir needed; uses extra disk). |
-bootstrapsourcedir=<dir> |
Prepared snapshot directory (blocks/ + chainstate/) to serve. |
-bootstrapdatadir=<dir> |
Import a snapshot from a local prepared directory at startup, before the databases open. |
-bootstrapforce |
Force import into a non-empty data directory (overwrites existing chain data). |
For the full set of bootstrap options (serving rate limits, peer caps, freeze interval, trustless mode), run ./src/zclassicd -help | grep bootstrap.
Create zclassic.conf in your data directory (e.g. ~/.zclassic/zclassic.conf):
txindex=1
gen=0
rpcuser=yourusername
rpcpassword=yourpassword
port=8033
rpcport=8023Interact with the running daemon via JSON-RPC:
./src/zclassic-cli getblockchaininfo
./src/zclassic-cli gettransaction <txid>getblockchaininfo reports overall sync progress in verificationprogress. When the node is running with the experimental trustless bootstrap mode, its bootstrap_validation object reports the background re-validation state; in the default anchor-pinned fast-sync mode that object reports state: disabled.
See doc/bootstrap-snapshots.md for:
- Full validation vs. fast-sync trust models (anchor mode vs. experimental trustless mode)
- Preparing and serving snapshots, including serving bandwidth/peer limits
- Local snapshot import (
-bootstrapdatadir) and its requirements
- Build Issues: see BUILD.md for troubleshooting.
- Bug Reports: github.com/ZclassicCommunity/zclassic/issues.
For license information, see COPYING.
Contributions are welcome. Fork the repository, create a feature branch, make your changes, and open a pull request.