Progress update — ZPAD-20
Quick update on where things stand. While building a reference implementation on top of ZPAD-20, I’ve been feeding the lessons learned back into the open spec — so the standard is now both more complete and more clearly scoped as neutral infrastructure.
What changed in the spec (v0.2):
-
Identity & authorization (4.6, new). The spec now defines how a
sell/transferis authorized. Since Zcash addresses can’t sign messages pre-ZSA, authorization uses a claim-key (cpk) — a signature public key. The signature must bind every field of the operation (tick, amount, destination, nonce), and eachcpkenforces a strictly-increasing nonce for replay protection. Importantly, the spec fixes which fields the signature binds and how the nonce behaves — not a specific signing scheme — so any indexer can reproduce verification independently. -
Indexer determinism strengthened (6). Operations now apply atomically — all of an op’s ledger effects commit together or not at all, so there’s no partial-apply or replay window. Confirmation/reorg handling is now explicit too.
-
Settlement clarified (4.2). A
buycarries no signature: the on-chain payment is the authorization (you can’t pay on someone else’s behalf). And settlement is always against the actual on-chain value received — never the memo’s claim. This is the core defense against spoofed-payment attacks.
On scope — keeping the core neutral:
The core protocol stays deliberately minimal: deploy / buy / sell / transfer + identity/auth. Reward and lottery mechanics (the ticket op, monthly draw) are now explicitly optional and non-normative — a conforming indexer can ignore them entirely, and core asset state never depends on them. The goal is for ZPAD-20 to be neutral asset-indexing infrastructure that any wallet, explorer, or application can build on — not something tied to one app’s mechanics.
This is the pattern I hope to continue if the grant moves forward: a real implementation surfacing real questions, and the answers going back into an open, conformance-checkable standard that the whole ecosystem can use.
Spec + reference implementation (MIT): GitHub - tufanaydinn/zpad-20: ZPAD-20 — open bonding-curve token standard for Zcash (meta-protocol spec + reference) · GitHub