Installation
Official release artifacts are published for Linux only; see Platform support for what is promised on each platform (including macOS and Windows) and how that affects issue triage.
There are multiple ways to install the zallet binary. The table below has a summary of
the simplest options:
| Environment | CLI command |
|---|---|
| Debian | Debian packages |
| Ubuntu | Debian packages |
Help from new packagers is very welcome. However, please note that Zallet is currently BETA software, and is rapidly changing. If you create a Zallet package before the 1.0.0 production release, please ensure you mark it as beta software and regularly update it.
Choosing a chain backend
Each chain backend is a separate binary, built from its own cargo workspace so that it
can track its own zebra release. The zallet command is a small launcher that runs
whichever backend your config file names:
# zallet.toml — the default if the key is absent is "zebra"
backend = "zebra"
| Backend | Default | Platform | Reaches the chain via | Requires | Regtest |
|---|---|---|---|---|---|
zebra | Yes | Linux only | co-located zebrad’s state database (ReadStateService) | zebrad built with the indexer feature + [indexer.read_state_service] config + shared state dir | Yes |
The zebra backend reads finalized chain state directly from a co-located
zebrad’s state database. It only works against a zebrad built with the
non-default indexer feature, and zebrad’s state directory must be on the same
machine as Zallet. In a container deployment, mount zebrad’s state directory into the
Zallet container (see Docker).
Pre-compiled artifacts (Docker image / Debian package)
The official Docker image and Debian package ship the launcher and the backend:
| Binary | Role | Notes |
|---|---|---|
zallet | launcher | the default command / image ENTRYPOINT; dispatches on the config’s backend key |
zallet-zebra | zebra backend | directly runnable |
Both share the same CLI surface, config format, and subcommands. You can bypass the
launcher by running the backend binary directly (it will refuse to run against a config
whose backend key names a different backend). The GitHub Releases page ships one signed
tarball per platform, zallet-<version>-linux-<arch>.tar.gz, containing both binaries
(zallet, zallet-zebra) side by side — extract it and run whichever one you need
directly, or run zallet for config-driven dispatch.
Building from source with a chosen backend
Each backend is its own package in its own cargo workspace, so you install the one you want by name (plus the launcher, if you want config-driven dispatch):
# The zebra backend (Linux only, reads zebrad's state database)
cargo install --locked --git https://github.com/zcash/zallet.git zallet-zebra
# The launcher (optional; dispatches to whichever backend the config names)
cargo install --locked --git https://github.com/zcash/zallet.git zallet
Backend-independent features such as rpc-cli and zcashd-import are enabled per
backend package with --features as usual.
Pre-compiled binaries
WARNING: This approach does not have automatic updates.
Executable binaries are available for download on the GitHub Releases page.
Build from source using Rust
WARNING: This approach does not have automatic updates.
To build Zallet from source, you will first need to install Rust and Cargo. Follow the instructions on the Rust installation page. Zallet currently requires at least Rust version 1.95.
WARNING: The following does not yet work because Zallet cannot be published to crates.io while it has unpublished dependencies. This will be fixed before the 1.0.0 release. In the meantime, follow the instructions to install the latest development version.
Once you have installed Rust, the following command can be used to build and install Zallet:
cargo install --locked zallet
This will automatically download Zallet from crates.io, build it, and install it in
Cargo’s global binary directory (~/.cargo/bin/ by default).
To update, run cargo install zallet again. It will check if there is a newer version,
and re-install Zallet if a new version is found. You will need to shut down and restart
any running Zallet instances to apply the new version.
To uninstall, run the command cargo uninstall zallet. This will only uninstall the
binary, and will not alter any existing wallet datadir.
Installing the latest development version
If you want to run the latest unpublished changes, then you can instead install Zallet directly from the main branch of its code repository:
cargo install --locked --git https://github.com/zcash/zallet.git