Zcash Dev Quick Start

Get up and running with Zcash development in minutes

1. Installing Zebrad

System Requirements

  • Linux, macOS, or Windows
  • At least 4GB RAM (8GB recommended)
  • 250GB free disk space for full node
  • Stable internet connection

Linux

Ubuntu/Debian:

sudo apt update 
cargo install --locked zebrad

From Source:

git clone https://github.com/ZcashFoundation/zebra.git 
cd zebra 
git checkout v2.4.0 
cargo build  --release --bin zebrad 
target/release/zebrad start

macOS

Homebrew:

curl https://sh.rustup.rs -sSf | sh 
cargo install --locked zebrad

Manual Download:

git clone https://github.com/ZcashFoundation/zebra.git 
cd zebra 
git checkout v2.4.0 
cargo build  --release --bin zebrad 
target/release/zebrad start

Windows

WSL (Recommended):

wsl --install
# Then follow Linux instructions

2. Running zebrad

Initial Setup

Create Configuration Directory:

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

Create zebrad.toml:

# Basic configuration
                  
[consensus]
checkpoint_sync = true

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

[metrics]

[mining]
internal_miner = false

[network]
cache_dir = true
crawl_new_peer_interval = "1m 1s"
initial_mainnet_peers = [
    "dnsseed.z.cash:8233",
    "dnsseed.str4d.xyz:8233",
    "mainnet.seeder.zfnd.org:8233",
    "mainnet.is.yolo.money:8233",
]
initial_testnet_peers = [
    "dnsseed.testnet.z.cash:18233",
    "testnet.seeder.zfnd.org:18233",
    "testnet.is.yolo.money:18233",
]
listen_addr = "[::]:8233"
max_connections_per_ip = 1
network = "Mainnet"
peerset_initial_target_size = 25

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

[state]
cache_dir = "/home/your_username/.cache/zebra"
delete_old_database = true
ephemeral = false

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

[tracing]
buffer_limit = 128000
force_use_color = false
use_color = true
use_journald = false

Starting zebrad

Command Line:

zebrad start 
# Or with specific config 
zebrad -c /path/to/zebrad.toml start

Important Notes

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

3. Connecting with lightwalletd

What is 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:

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

Build lightwalletd:

git clone https://github.com/zcash/lightwalletd.git
cd lightwalletd
go build

Configuration

Basic Setup:

# Create config file
cat > lightwalletd.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 lightwalletd:

./lightwalletd --config-file=lightwalletd.conf

Next Steps

Ready to Build?

Need Help?