Retroactive Grant Application - Zcash Testnet Developer Suite

GitHub issue: Retroactive Grant Application - Zcash Testnet Developer Suite · Issue #94 · Financial-Privacy-Foundation/ZcashCoinholderGrantsProgram · GitHub

Project Summary

A one-command testnet developer suite for Zcash: a CLI faucet that pays shielded testnet TAZ with no account or captcha, and a one-command testnet wallet with address, QR, funding, and a payment watcher — built to remove the first-hour onboarding friction that blocks new Zcash developers and hackathon teams.

Project Description

Getting testnet ZEC (TAZ) kept blocking new developers, hackathon teams, and Zecathon projects. The existing paths were slow: a 15–30 minute Rust build for zcash-devtool with no prebuilt binaries, zingolib tags with no files, a bare zkool2 binary, and WebZjs pre-Ironwood and not on npm — all before a first shielded transaction.

I built two MIT-licensed tools, both shipped and live on testnet in 30 Oct – 7 Nov 2026:

  1. zcash-faucet — npx zcash-faucet <address>. No account, no captcha. Your machine mines a short Argon2id proof-of-work (about 10–60 seconds, 19 MiB memory), then 0.1 TAZ arrives as a real shielded transaction. Supports unified (utest1…), Sapling, and transparent addresses; rejects mainnet. The server wraps zcash-devtool and talks to the public testnet lightwalletd. It also has a regtest mode, a Docker/self-host option, and a 5-minute health monitor that opens a GitHub issue if the faucet is down or dry.

  2. zcash-testnet-wallet — npx zcash-testnet-wallet. In about 2 minutes it gives you a prebuilt zcash-devtool, a fresh testnet wallet (keys local only), a utest1 address with a terminal QR code, 0.1 TAZ from the faucet, and balance. Commands: balance, send <utest1…> 0.01 --memo "hi", viewkey, and watch --ufvk <key> --memo order-42 — a payment watcher that fires on mined and on confirmed, once per transaction, from the viewing key alone, plus a JavaScript watchPayments API.

A portfolio index of all of this is at https://github.com/anukulpandey/zcash-pow (README only, created 7 Nov 2026).

Continuing work (not part of this request, not funded here): I plan to keep building developer tooling on Zcash, including create-zcash-dapp — a boilerplate / starter template for building a first Zcash dApp — and a second public testnet lightwalletd server (Zebra + Zaino), so developers are not dependent on a single public endpoint. None of this future work is claimed or funded by this proposal; this proposal is only for the faucet and wallet already shipped.

Technical Approach

  • zcash-faucet (v1.2.1, 26 commits, 30 Oct – 7 Nov 2026): Node CLI, zero npm dependencies in the client. Argon2id PoW as the default anti-abuse mechanism (Node 24 ships Argon2id natively), with per-address signed challenges and difficulty rising on claim spikes. GitHub device login was the v1.0.0 mechanism; after @strahncryptography flagged it on the forum on 30 Oct, I shipped v1.1.0 the same day (no token written to disk, server verifies the token belongs to the faucet app with no scopes and revokes it via the GitHub API right after the check) and v1.2.0 on 31 Oct making PoW the default, with GitHub login only as an optional fast lane. Server wraps zcash-devtool, talks to public lightwalletd testnet.zec.rocks. Live status page at https://zcash-faucet.vercel.app, live chain stats at https://zcash-faucet.vercel.app/api/stats.
  • zcash-testnet-wallet (v0.1.1, 4 commits, 7 Nov 2026): Node CLI wrapping prebuilt zcash-devtool binaries for macOS (darwin-arm64 and darwin-x64 via optional dependencies, Node >=22.13). Creates a local wallet, prints a utest1 address and QR, funds it from the faucet, and watches payments from a unified full viewing key. Limits stated at launch: macOS only for now, watcher sees payments only once mined (mempool stage is future work, not claimed here), single public testnet lightwalletd.
  • Iteration in public: all of this was built and revised on the Zcash Forum as @anuna, including the security-driven redesign above, with usage numbers posted publicly.

Time Period of Work Completion

30 October 2026 – 7 November 2026

Total Budget (USD)

1500

Budget Breakdown

  • Compensation: $1,500 — 30 hours at $50/hour
    • zcash-faucet: 20 hours, $1,000
    • zcash-testnet-wallet: 10 hours, $500
    • Justification: 30 hours at $50/hour — zcash-faucet 20 hours ($1,000), zcash-testnet-wallet 10 hours ($500). The amount is deliberately modest — a first, low-friction retroactive ask for completed work, not a quote for future work.
  • Technology/Software: $0 — None claimed. Claude (AI coding assistant) was used during development, but no software cost is claimed here.
  • Infrastructure/Hosting: $0 — None claimed. Hosting is currently on free tiers (Vercel). Paid hosting will be used later as usage grows, but no hosting cost is claimed here.
  • Services/Contractors: $0 — None claimed. Solo work, no contractors.
  • Other: $0 — None claimed.
  • Total: $1,500

Previous Funding

No

Other Funding Sources

No

Success Metrics

  • Faucet usage: 47 drips all-time, 5.60545 TAZ sent, first drip 2026-10-31T08:40:20Z. Drips by day: 31 Oct: 11, 1 Nov: 1, 2 Nov: 7, 3 Nov: 1, 4 Nov: 21, 5 Nov: 2, 6 Nov: 1, 7 Nov: 3. Source: https://zcash-faucet.vercel.app/api/stats
  • Community funding of the faucet itself: 9 donors, 20.30534364 TAZ donated back — more than 3x the TAZ the faucet had paid out at that point.
  • npm: zcash-faucet 954 downloads in the last month (2026-10-08 to 2026-11-06), v1.2.1. No download number is claimed for zcash-testnet-wallet — it was published 7 Nov 2026 and the npm downloads API returned no data yet at verification time.
  • Hackathon use: builders at WebZero Free Society Hack, Mumbai, 4–5 Nov 2026 used the faucet on site. Forum user laksh (4 Nov): “the faucet was really helpful for fellow builders at webzero free society hackathon Mumbai :slight_smile: keep building more tools”.
  • Qualitative, from the forum: 0xoucan (31 Oct): “When I started the LeekWallet project I struggled getting TAZ and this is a very well intended solution for people trying to test and build with the Zcash stack.” shieldedonly: “This looks awesome… I love how the website mirrors a terminal.” laurel: “I was looking for something like this, thanks!”
  • Scale, honestly stated: this is small, early, testnet-only usage — 47 drips and 954 downloads in the first week. It is not mainnet or production usage, and the repos have 0 stars/forks. The value claimed is developer-onboarding friction removed, with live proof, not scale.

Proof of completion

Conflict of Interest Disclosure

None known. I am the sole author of the two tools. I have no role in any keyholder organisation, ZCG, ECC, or the Zcash Foundation.

Not claimed here — future work, explicitly excluded

  • Hindi tutorial videos (not yet made)
  • Linux and Windows builds for zcash-testnet-wallet
  • “Seen in mempool” stage for the payment watcher
  • A second public testnet lightwalletd server (Zebra + Zaino)
  • create-zcash-dapp — a boilerplate / starter template for building a first Zcash dApp (not yet built)
  • Any future maintenance or hosting of the faucet/wallet

GitHub issue: Retroactive Grant Application - Zcash Testnet Developer Suite · Issue #94 · Financial-Privacy-Foundation/ZcashCoinholderGrantsProgram · GitHub

I built a small donation widget for the testnet ecosystem, and the payment watcher pattern in your suite was useful to study. Good luck with the application.