Skip to content

danielAsaboro/zurf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Zev Toolkit

A modern, visual developer toolkit that makes Zcash development as easy as Ethereum development

License: MIT OR Apache-2.0 Rust

Zev Toolkit combines local testnet orchestration, transaction visualization, and interactive debugging in one cohesive tool. Built to dramatically reduce the barrier to entry for Zcash development.

Features

  • πŸš€ One-Command Setup - Local Zcash testnet running in <5 minutes
  • πŸ” Transaction Inspector - Visual breakdown of shielded transactions
  • πŸ§ͺ Test Harness - Integration with darksidewalletd for deterministic testing
  • πŸ“Š Network Monitor - Real-time view of local network activity
  • πŸ› οΈ CLI Tools - Interactive transaction builder and address manager
  • πŸ“š Developer-Friendly - Clear documentation and examples

Quick Start

Prerequisites

  • Rust 1.70+ (install)
  • Docker and Docker Compose (install)
  • 8GB+ RAM, 20GB+ disk space

Installation

# Clone the repository
git clone https://github.com/your-org/zev-toolkit
cd zev-toolkit

# Build from source
cargo build --release

# Install globally
cargo install --path crates/cli

Usage

# Initialize a new Zev environment
zev init

# Start the local Zcash network
zev start

# Check network status
zev status

# Open the transaction inspector UI
zev ui

# Stop the network
zev stop

# Clean up all data
zev clean

Project Structure

zev-toolkit/
β”œβ”€β”€ crates/
β”‚   β”œβ”€β”€ cli/          # Command-line interface
β”‚   β”œβ”€β”€ core/         # Core library (network, RPC, transactions)
β”‚   β”œβ”€β”€ types/        # Shared types
β”‚   └── web/          # Web API for UI
β”œβ”€β”€ docker/           # Docker configurations
β”œβ”€β”€ docs/             # Documentation
└── web-ui/           # React frontend (coming soon)

Available Commands

Network Management

  • zev init - Initialize Zev environment
  • zev start - Start local Zcash network
  • zev stop - Stop local network
  • zev status - Show network status
  • zev clean - Clean up all data

Transaction Operations

  • zev tx create - Interactive transaction builder
  • zev tx send - Send a transaction
  • zev tx decode <txid> - Decode and inspect transaction
  • zev tx simulate - Simulate transaction without broadcasting

Address Management

  • zev addr generate - Generate new address
  • zev addr validate <addr> - Validate address format
  • zev addr balance <addr> - Check address balance

Testing

  • zev test start - Start test harness
  • zev test scenario <name> - Run test scenario
  • zev test reorg <height> - Trigger chain reorganization
  • zev test mine <count> - Mine blocks

Configuration

  • zev config --show - Display configuration
  • zev config --edit - Edit configuration

Architecture

Zev Toolkit is built with a modular architecture inspired by tools like surfpool:

  • CLI Layer: User-facing commands with rich terminal UI
  • Core Library: Network management, RPC client, transaction parsing
  • Docker Orchestration: Containerized Zebra/zcashd + lightwalletd
  • Web API: REST endpoints for transaction inspector UI
  • Event-Driven: Asynchronous communication via channels

Development Status

🚧 Early Development - This project is actively being built!

Implemented

  • βœ… Project structure and workspace setup
  • βœ… Basic CLI commands framework
  • βœ… Configuration system
  • βœ… Docker Compose setup
  • βœ… RPC client foundation

In Progress

  • πŸ”¨ Transaction parser using zcash_primitives
  • πŸ”¨ Interactive TUI with ratatui
  • πŸ”¨ Web UI for transaction inspector

Planned

  • πŸ“‹ Test harness integration
  • πŸ“‹ Address book manager
  • πŸ“‹ Performance profiler
  • πŸ“‹ Network monitor dashboard

Configuration

Configuration is stored in .zev/config.toml:

[network]
node_type = "Zebra"  # or "Zcashd"
chain = "Regtest"    # or "Testnet", "Mainnet"
mining_interval = 2
prefunded_accounts = 5

[rpc]
host = "127.0.0.1"
port = 18232
lightwalletd_port = 9067

[web_ui]
enabled = true
host = "127.0.0.1"
port = 3000

Contributing

Contributions are welcome! This project is being developed for the Zcash Privacy Infrastructure & Developer Tools bounty.

Building from Source

# Clone the repo
git clone https://github.com/your-org/zev-toolkit
cd zev-toolkit

# Build all crates
cargo build

# Run tests
cargo test

# Run the CLI
cargo run --bin zev -- --help

Why Zev Toolkit?

The Problem

Zcash development has a steep learning curve:

  • Complex setup for shielded transactions
  • Opaque zero-knowledge proofs
  • Fragmented tooling
  • Poor debugging visibility

The Solution

Zev Toolkit makes Zcash development accessible:

  • One-command setup - No manual node configuration
  • Visual tools - Understand shielded transactions visually
  • Unified interface - Everything in one tool
  • Interactive - Build and test transactions interactively

Roadmap

  • Phase 1: Foundation (Weeks 1-3)

    • Project structure
    • Basic CLI
    • Docker setup
    • Transaction parsing
  • Phase 2: Core Features (Weeks 4-6)

    • Transaction inspector
    • Transaction builder
    • Test harness integration
    • Web UI
  • Phase 3: Polish (Weeks 7-9)

    • Performance profiler
    • Network monitor
    • Address book
    • Documentation
  • Phase 4: Launch (Weeks 10-12)

    • Beta testing
    • Video demo
    • Bounty submission

License

Licensed under either of:

at your option.

Acknowledgments

  • Inspired by surfpool for Solana
  • Built for the Zcash Privacy Infrastructure & Developer Tools bounty
  • Uses official Zcash libraries: zcash_primitives, zcash_client_backend, orchard

Links

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors