frame_id (SHA-256 of the JCS-canonical preimage) and an optional detached RFC 9421 signature field.
It is AlgoVoi-authored, specified in IETF Internet-Draft draft-hopley-x402-payment-evidence-frame-00 (published 2026-05-30, Independent Submission), and published as a standalone reference implementation:
- Python:
algovoi-pef(live, v0.1.0) - TypeScript:
@algovoi/pef(live, v0.1.0)
algovoi-substrate / @algovoi/substrate for the JCS canonicalisation primitive. Apache 2.0.
Lifecycle position
PEF is the outermost envelope. It wraps every receipt type in the payment lifecycle stack:urn:x402:canonicalisation:jcs-rfc8785-v1). A verifier holding a PEF can independently re-derive frame_id from the enclosed receipt without trusting the issuer’s assertion.
Why this format
Downstream consumers of payment evidence — auditors, regulators, acquiring counterparties — receive receipts from multiple sources in multiple formats. PEF answers three problems:- Canonical identity:
frame_idis a SHA-256 of the JCS-canonical preimage. Any party can recompute it offline. There is no proprietary identifier or opaque token to trust. - Uniform verification surface: a single verifier handles all five receipt types without format-specific parsing logic. The
claim_typefield is the sole discriminator. - Optional signature binding: RFC 9421 HTTP Message Signatures attach a detached signature to the frame bytes, binding the issuer’s keypair to the canonical
frame_id. The frame is fully verifiable without the signature; the signature narrows the trust surface for regulated contexts.
Frame shape
A PEF frame is a six-field JSON object canonicalised under RFC 8785 (JCS):
The optional
signature field carries a detached RFC 9421 / RFC 9530 Content-Digest over the canonical frame bytes. Its presence is indicated by the sig key; its absence does not invalidate the frame.
Claim types
Five claim types, each mapping to an IETF I-D-anchored receipt format:frame_id derivation
frame_id is excluded from the JCS preimage — standard JCS self-describing identifier pattern. Any verifier with the receipt bytes can recompute receipt_hash, recompute preimage, and independently verify frame_id without trusting the issuer.
Cross-implementation validation
frame_id derivation has been independently validated across eight JCS implementations in eight programming languages — 64/64 byte-for-byte agreements across all five claim types (both receipt_hash and frame_id layers per vector):
Full attestation record:
_attestations/2026-05-30-8-impl-pef-v1.md in chopmob-cloud/algovoi-jcs-conformance-vectors.
The cumulative cross-validation corpus now stands at 880/880 byte-for-byte agreements across fourteen vector sets covering the full AlgoVoi agentic-payment receipt stack (as of 2026-06-18).
Quick start
Python
TypeScript
Platform integration
The platform wraps receipts automatically viapef_or_none() — returns None if algovoi-pef is not installed, so existing API responses are unaffected during a rolling deploy:
What this is NOT
- Not a receipt format itself. PEF is a wrapper. The enclosed receipt retains its own canonical identity (
receipt_hash) and IETF I-D normative status. - Not a cryptographic settlement proof. PEF records the operator’s categorical claim. Cryptographic proofs of payment conditions are orthogonal and compose on top.
- Not a transport protocol. PEF is a JSON envelope. How it is transmitted (HTTP response header, webhook payload, audit-log row) is out of scope.
Companion IETF Internet-Draft
draft-hopley-x402-payment-evidence-frame-00 (Independent Submission, published 2026-05-30). AlgoVoi-authored, sole authorship. Normatively references draft-hopley-x402-canonicalisation-jcs-v1 and all five receipt-format I-Ds.
See also
- Canonicalisation substrate — the JCS discipline
- Compliance gate — admission-time receipt (payment_admission)
- Settlement attestation — post-settlement receipt (payment_settlement)
- Cancellation receipt — mandate termination (payment_cancellation)
- Refund receipt — post-settlement refund (payment_refund)
- Composite trust query — multi-issuer verdict (composite_verdict)
- Conformance vectors — full vector corpus
- Substrate authorship and provenance — citable AlgoVoi authorship record