Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

EnvironmentCLI command
DebianDebian packages
UbuntuDebian 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"
BackendDefaultPlatformReaches the chain viaRequiresRegtest
zebraYesLinux onlyco-located zebrad’s state database (ReadStateService)zebrad built with the indexer feature + [indexer.read_state_service] config + shared state dirYes

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:

BinaryRoleNotes
zalletlauncherthe default command / image ENTRYPOINT; dispatches on the config’s backend key
zallet-zebrazebra backenddirectly 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