Logo
Developer Quick Start

Zcash Dev
Quick Start

Get up and running with Zcash development. Choose your stack and follow the guide.

Installation

Dependencies

bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt update
sudo apt install libclang-dev clang pkg-config openssl protobuf-compiler npm

From Source

bash
git clone https://github.com/ZcashFoundation/zebra.git
cd zebra
git checkout v4.4.1
cargo build --release --bin zebrad
export PATH="$PATH:(pwd)/target/release"

Alternatively

bash
cargo install --git https://github.com/ZcashFoundation/zebra --tag v4.4.1 zebrad
2

Running zebrad

Initial Setup

Create Configuration Directory

bash
zebrad generate -o ~/.config/zebrad.toml

zebrad.toml

toml
[consensus]
checkpoint_sync = true

[mempool]
eviction_memory_time = "1h"
tx_cost_limit = 80000000

[network]
cache_dir = true
crawl_new_peer_interval = "1m 1s"
listen_addr = "[::]:8233"
network = "Mainnet"
peerset_initial_target_size = 25

[rpc]
listen_addr = "127.0.0.1:8232"
cookie_dir = "/home/your_username/.cache/zebra"
enable_cookie_auth = false

[state]
cache_dir = "/home/your_username/.cache/zebra" # (Change to store in external SSD)
delete_old_database = true
ephemeral = false

[sync]
checkpoint_verify_concurrency_limit = 1000
download_concurrency_limit = 50
full_verify_concurrency_limit = 20

[tracing]
buffer_limit = 128000
use_color = true

Starting zebrad

Command Line

bash
zebrad start
# Or with specific config
zebrad -c ~/.config/zebrad.toml start

Important Notes

  • First run downloads the entire blockchain (~250 GB)
  • Initial sync can take several hours
  • Keep your zebrad.toml secure and private
3

Connecting with lightwalletd

lightwalletd is a server that provides a lightweight interface to the Zcash blockchain, designed for mobile and desktop wallets that don't need to run a full node.

Installation

Prerequisites

bash
# Install Go
sudo apt install golang-go
# Or download from golang.org

Build lightwalletd

bash
git clone https://github.com/zcash/lightwalletd.git
cd lightwalletd
go build
make
make install
export PATH=$PATH:~/go/bin

Configuration

Basic Setup

bash
cat > ~/.config/zcash.conf << EOF
zebrad-rpcuser=your_rpc_username
zebrad-rpcpass=your_rpc_password
zebrad-rpcbind=127.0.0.1
zebrad-rpcport=8232
grpc-bind-addr=127.0.0.1:9067
log-file=lightwalletd.log
EOF

Run

bash
lightwalletd --zcash-conf-path ~/.config/zcash.conf --data-dir ~/data/zebrad/.cache/lightwalletd --log-file ~/.local/state/lwd.log --no-tls-very-insecure

Next Steps & Resources