ZCG / maintainer path
10-minute reviewer path
Browser-only checks on the live desk. CLI and clone path: REVIEWER.md on GitHub. Live demo: zcash-invoice-preflight.vercel.app.
What this is
Compose-time ZIP-321 preflight for Zcash invoices — a BTCPay companion, not a plugin rewrite, not live chain detection, not an indexer observatory.
-
Confirm engine + detection
On the desk mast: Address engine · zaddr-wasm and Detection · mock · chainWatch=false.
-
Good UA → PASS
Click Good UA → green PASS ticket, QR, and valid
zcash:URI. -
Bad t+memo → FAIL
Click Bad t+memo → red FAIL with
memocheck (transparent + memo is invalid ZIP-321). -
Export BTCPay handoff
On a PASS ticket, click Export BTCPay handoff → JSON with
schema: btcpay-zec-helper.handoff/v1,source.chainWatch: false, andownershipfields. npm package:zcash-invoice-preflight. -
Advance (mock)
Click Advance (mock) — status lane stays labeled MOCK — NOT CHAIN. This does not detect on-chain payment.
-
Session telemetry
After a few runs, scroll to Session telemetry on the desk — pass rate, fail-code bars, and a recent trend sparkline from the local roll (not chain data).
Acceptance questions (LOI)
- Is compose-time preflight + handoff JSON useful as a BTCPay companion?
- Which fail codes does your stack already enforce at invoice create?
- Which handoff fields should the plugin mirror?
CLI path (optional)
git clone https://github.com/panagot/ZCASH-INVOICE-preflight.git
cd ZCASH-INVOICE-preflight
npm ci && npm test
node bin/doctor.js --file fixtures/good-ua.json
node bin/doctor.js --file fixtures/bad-transparent-memo.json