Development Setup

Set up a local environment to build and test NozyWallet.

Prerequisites

  • Rust 1.70+rustup.rs
  • Git
  • Zebrad (for integration tests and manual sync) — Zebra Node Setup
  • protoc — required for zeaking / lightwalletd gRPC builds (sudo apt install protobuf-compiler on Debian/Ubuntu)

Optional for desktop: Node.js 18+, Tauri prerequisites per Tauri docs.

Clone and build

git clone https://github.com/LEONINE-DAO/Nozy-wallet.git
cd NozyWallet
cargo build
cargo test
cargo fmt --all -- --check

Workspace layout

PathCrate / app
src/nozy — core wallet + CLI
zeaking/Compact sync / LWD
api-server/HTTP companion
zeaking-ffi/Mobile bindings
desktop-client/Tauri app (separate Cargo.toml)
browser-extension/wasm-core/WASM (excluded from root workspace)

See AGENTS.md for where code belongs.

Desktop development

cd desktop-client
npm install
cargo tauri dev

Use the desktop window, not the browser tab on port 5173.

api-server

cd api-server
cargo run
# http://127.0.0.1:3000

Environment variables

VariableEffect
ZEBRA_RPC_URLOverride Zebrad URL for this process
LIGHTWALLETD_GRPClightwalletd gRPC URL
NOZY_LWD_DBCompact block SQLite path

Zebrad on Windows + WSL

. .\scripts\zebra-wsl-rpc.ps1   # sets ZEBRA_RPC_URL to WSL IP
cargo run --bin nozy -- test-zebra

Next steps

Full detail: CONTRIBUTING.md.