You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Track privacy-preserving receipt and compliance proof extensions #99
The ACK roadmap already mentions advanced privacy-preserving techniques such as zero-knowledge proofs, and ACK-Pay receipts are currently modeled as verifiable payment evidence. A useful next step would be to track how privacy-preserving receipt/compliance proofs could fit into ACK without forcing one proving system or making the core protocol heavy.
Proposed scope
Keep this as a small design track first:
Document the extension points where a receipt may reference privacy-preserving proof material.
Define the minimum metadata shape needed to describe an external proof without embedding verifier-specific payloads in ACK core.
Clarify which claims are good candidates for selective disclosure or ZK-style proofs, for example:
payment satisfied a request without exposing unrelated wallet/account data
policy checks passed before signing
spend limit or merchant category constraints were satisfied
compliance/KYA/KYC attestations were valid at execution time
Add a non-normative example once the metadata shape is stable.
Non-goals
Do not pick a proving system in ACK core.
Do not require ZK proofs for normal ACK-Pay receipt verification.
Do not replace the existing Verifiable Credential receipt model.
Why this matters
Agent payments often need auditability and compliance evidence, but agents should not reveal more identity, wallet, or policy data than necessary. A small extension pattern would let ACK integrations compose with external proof systems while keeping the base ACK-Pay flow simple and interoperable.
I would be happy to help with a first docs-only PR if this direction matches the maintainers' intended roadmap.
A concrete answer to the "minimum metadata shape" question, applying action_ref — a content-addressed identifier from {agent_id, action_type, scope, timestamp} (JCS RFC 8785 + SHA-256, argentum-core/action-ref-v1) — to a synthetic ACK-Pay payment cycle:
Shaped byte-for-byte against packages/ack-pay's own paymentRequestSchema/paymentOptionSchema and createPaymentReceipt()'s W3CCredential return, then anchored permissionlessly on Base mainnet (tx in the repo, independently verifiable via verifier/verify.py, no owner/roles on the registry contract).
Maps onto the non-goals directly: doesnt pick a proving system (its a plain hash, not a ZK circuit), doesnt require the anchor for normal receipt verification (verifyPaymentReceipt()'s DID-based check is untouched), and doesnt replace the VC receipt model — its a sibling metadata field a receipt could optionally reference, giving a verifier who doesnt trust any single issuers DID an existence/precedence check outside that graph.
Worked example against your public docs, not a claim of adoption — PROVENANCE.md in the repo spells out exactly whats real (the derivation, the on-chain tx) vs. synthetic (no live ACK-Pay instance, DID, or payment was called).
Thank you for tracking this. Privacy-preserving receipt and compliance extensions are v2-direction territory, and that conversation now lives in the v2 RFC (#179). Closing this tracker in favor of that discussion.
Activity
giskard09 commentedon Jul 23, 2026
A concrete answer to the "minimum metadata shape" question, applying
action_ref— a content-addressed identifier from{agent_id, action_type, scope, timestamp}(JCS RFC 8785 + SHA-256, argentum-core/action-ref-v1) — to a synthetic ACK-Pay payment cycle:https://github.com/giskard09/ack-pay-action-ref-anchor
Shaped byte-for-byte against
packages/ack-pay's ownpaymentRequestSchema/paymentOptionSchemaandcreatePaymentReceipt()'sW3CCredentialreturn, then anchored permissionlessly on Base mainnet (tx in the repo, independently verifiable viaverifier/verify.py, no owner/roles on the registry contract).Maps onto the non-goals directly: doesnt pick a proving system (its a plain hash, not a ZK circuit), doesnt require the anchor for normal receipt verification (
verifyPaymentReceipt()'s DID-based check is untouched), and doesnt replace the VC receipt model — its a sibling metadata field a receipt could optionally reference, giving a verifier who doesnt trust any single issuers DID an existence/precedence check outside that graph.Worked example against your public docs, not a claim of adoption —
PROVENANCE.mdin the repo spells out exactly whats real (the derivation, the on-chain tx) vs. synthetic (no live ACK-Pay instance, DID, or payment was called).venables commentedon Sep 9, 2026
Thank you for tracking this. Privacy-preserving receipt and compliance extensions are v2-direction territory, and that conversation now lives in the v2 RFC (#179). Closing this tracker in favor of that discussion.