Hey Zcashers ![]()
Last month, we took a step back and carefully considered the team’s feedback. Instead of releasing isolated milestones and leaving gaps, we focused on building a complete, end-to-end solution. Here’s where things stand now.
What We Built
Zcash Web Gateway is a gRPC-web proxy layer that enables browser-based Zcash wallets to communicate with lightwalletd. Since browsers do not support native gRPC, this layer is essential. The project makes the setup easy to run, reliable, and independent, reducing reliance on a single hosted endpoint across the ecosystem.
Milestone 1: Working Prototype
We now have a fully functional core stack: an Envoy-based gRPC-web gateway connected to lightwalletd and zebrad (running in regtest and mainnet). The entire setup is containerized with health checks, making it simple to bring online using Docker Compose.
To validate the full flow, we built a browser demo using WebZjs (ChainSafe’s WASM wallet library). From the browser, users can fetch the latest block and receive a valid response, confirming the full path works from browser to gateway to lightwalletd to zebrad.
What is currently live includes a Docker Compose setup for both regtest and mainnet, an Envoy configuration with proper ZIP-307 routing and timeout tuning, a working /healthz endpoint with validated CORS support in Chrome and Firefox, and access to key ZIP-307 RPC methods through the proxy. There is also a public gateway connected to a live lightwalletd instance, along with a WebZjs demo supporting seed generation, account creation, address derivation, and block fetching.
Milestone 2: Production Hardening and Zaino Integration
With the prototype in place, the focus shifted to production readiness. Logging is privacy-conscious by default, with client IPs never stored, so operators do not need additional configuration to maintain privacy.
Zaino integration is also complete. Using a simple Docker Compose overlay, the gateway connects to zaino.zfnd.org over TLS, removing the need to run a local Zaino node. ZIP-316 Unified Addresses and ZIP-317 transaction payloads pass through without any modification.
Reliability has been improved through better connection handling, including circuit breakers, TCP keepalive, and carefully tuned timeouts for different request types. This ensures fast reads, stable transaction broadcasts, and uninterrupted long-running sync operations.
The build process has also been strengthened. A two-stage Docker build validates the Envoy configuration during the build phase, so any issues are caught early rather than appearing in production.
Codebase
http://github.com/okeoyebade-del/zcash-Web-Gateway/