@zcash/sdk — a TypeScript developer layer over WebZjs (RFC, feedback wanted)

Hi all — posting this for feedback before anything formal like a grant application.

What it is: @zcash/sdk is a small set of composable TypeScript packages that sit on top of WebZjs and ZIP-321, for developers who want to build Zcash-native payment flows without dealing with Wasm initialization, gRPC-web, or manual memo/amount encoding.

Three packages, usable independently or together:

  • @zcash/uri — ZIP-321 payment URI construction and parsing. Zero runtime dependencies, pure TypeScript, works in browsers/edge/serverless.
  • @zcash/qr — generates a QR code (SVG) from a payment URI. One line.
  • @zcash/monitor — wraps WebZjs’s init lifecycle (initWasminitThreadPoolWebWalletcreate_account → sync) behind a single await monitor.waitForPayment(...) call or an event stream. This is the one that saves the most time — going from “install a Wasm wallet library” to “get notified when a payment arrives” in a handful of lines.

This is meant to complement WebZjs, not replace it — WebZjs does the hard cryptographic and sync work; this makes it pleasant to consume from a typical web app.

Repo: GitHub - ronykris/zcash-sdk · GitHub

What I’d love feedback on:

  • Is anyone here building a web app, Zapp, or point-of-sale tool who’s hit the WebZjs integration complexity firsthand — did you end up building your own wrapper, like the hackathon teams? Would something like this have helped, or is the actual blocker somewhere else?
  • Any gaps in the API (waitForPayment, event stream, URI/QR helpers) supported in this sdk that wouldn’t fit a real use case you have?

Not asking for funding at this stage — just want to know if this is genuinely useful to people before taking it further.

Looking forward to hear from you.

Thank you,

Krish