I’ve submitted a grant application to Zcash Community Grants and I would appreciate the community’s review and feedback.
GitHub application: Develop a Go interface to state-of-the-art Zcash light-wallet tech · Issue #501 · ZcashCommunityGrants/zcashcommunitygrants · GitHub
Summary
We’re building a Zcash light-wallet Go module: an idiomatic Go interface over an FFI binding to librustzcash, with function signatures and lifecycle management that Go programmers will find familiar. Any Go project can import it, and it’s free to use under the MIT license.
This is, roughly speaking, an analogue of zcash/zcash-android-wallet-sdk
We’ll also build a command-line JSON-RPC wallet on top of the module, both as a demonstration and as a useful tool in its own right.
- Ironwood-first. The first consumer is Caribou, our multi-wallet, where Zcash will be a usable and tradeable asset (Caribou supports NEAR Intents).
- A wrapper, not a reimplementation. Earlier Go proposals (#133, #191) proposed a full Go Zcash implementation with an FFI as a byproduct. This project is a Go interface to the battle-tested librustzcash codebase.
- Platforms: Linux, Windows, macOS, Android, and iOS, with
uniffi-bindgen-gogenerating the bindings.
Why
There are Go wallet implementations for all the major UTXO-based blockchains except Zcash. Anyone who wants to add Zcash functionality to a Go project has no reasonable path forward today. We aim to fix that.
Team
- Brian Stafford (buck54321), lead. Lead developer of Bison Wallet / DCRDEX, where I built and maintained a Zcash wallet integration (GUI and backend). 766 merged PRs since 2018, including 493 in DCRDEX; creator of TinyDecred.
- Joe (JoeGruffins), advisor and code reviewer, with mobile development expertise. 615 merged PRs since 2019 across the Decred ecosystem, Caribou, and mobile wallets including Cake Wallet.
- Donald (dnldd), critical review of all proposed code. 510 merged PRs, including 193 in Decred’s full node (dcrd), 157 in dcrpool (top contributor), 56 in dcrwallet, and 49 in Caribou.
Approach
I define the architecture and get sign-off from my co-developers, then write the code by hand and with AI assistance. Every change goes through review rounds with the team until it reaches a secure, polished state, and documentation is thorough.
Milestones and budget
| Milestone | Scope | Amount (USD) | Due |
|---|---|---|---|
| M1 | FFI bindings, regtest network, automated testing framework, database interface, documentation | $13,200 | 2026-12-11 |
| M2 | Light wallet: create/open/restore, sync, cancellation, balances, basic sends | $11,800 | 2027-01-08 |
| M3 | Complete Go API: migration into Ironwood, PCZT, ZIP-321, history; unit and regtest integration suites | $12,700 | 2027-02-05 |
| M4 | Mainnet hand testing, command-line wallet with JSON-RPC, platform-specific build scripts, v1.0.0 | $10,300 | 2027-03-15 |
| Total | $48,000 |
Paid per milestone on completion. No startup funding, and no hardware, software, or service costs.
Success metrics
Unit tests, regtest-based integration tests, and hand testing all pass. After final delivery, user-reported issues will be handled promptly for at least one year.
Questions, critiques, and suggestions are welcome here or on the GitHub issue.