Protocol coverage
The AlgoVoi gateway returns a signedsettlement_attestation on confirmed payment across all four payment protocols:
In
ALGOVOI_MODE=standard the field is stripped at the MCP client layer. In ALGOVOI_MODE=substrate (default) it is returned alongside the standard verdict fields. See the MCP server docs for details. It records that a payment has reached a particular settlement state on a particular chain, at a particular instant, under the attesting party’s risk model.
It is AlgoVoi-authored, specified in IETF Internet-Draft draft-hopley-x402-settlement-attestation (POSTED on IETF datatracker 2026-05-25, Independent Submission, Informational), and published as a standalone reference implementation:
- TypeScript:
@algovoi/settlement-attestation(live, v0.1.0) - Python:
algovoi-settlement-attestation(live, v0.1.0)
algovoi-substrate / @algovoi/substrate for the JCS canonicalisation primitive. Apache 2.0.
Lifecycle position
urn:x402:canonicalisation:jcs-rfc8785-v1). A verifier walking the audit chain confirms admission → settlement → refund under one byte-deterministic pin.
Why this format
Settlement is the state transition at which a broadcast payment is considered final by the attesting party’s risk model. The operational and regulatory significance is load-bearing:- Under MiCA Article 80 (Regulation (EU) 2023/1114) and AMLR Article 56 (Regulation (EU) 2024/1624), operator records of settled crypto-asset transactions must be retained and re-verifiable for the statutory period.
- Under PSD2 Article 89 (Directive 2015/2366), the unauthorised-payment refund obligation is tied to when the payment was settled, not broadcast. A
PENDING_FINALITYstate is operationally distinct fromSETTLEDfor refund-window calculation. - Under AML Directives 5 and 6, a settled payment that is subsequently
REVERSED(by chain reorganisation or court-ordered fraud reversal) requires an audit trail independent of the original settlement event.
Receipt shape
A settlement attestation is an eight-field JSON object canonicalised under RFC 8785 (JCS). Field names are sorted lexicographically by JCS during canonicalisation.The closed enumeration: settlement_result
Each value produces a byte-distinct
content_hash. Score, depth, or confirmation-count representations are not acceptable substitutes.
Multi-chain settlement_chain identifiers
AlgoVoi’s production xChain runs on 8 chain families. Conventional identifiers:
The string is opaque under JCS — case-sensitive, no decomposition. Operators requiring richer chain metadata emit it in separate operator-layer audit records, not as nested fields.
Composition
A settlement attestationsettled_payment_ref MAY reference a compliance receipt content_hash. A refund receipt original_payment_ref MAY reference a settlement attestation content_hash. The full lifecycle chain:
Conformance vectors
8 byte-level reference vectors + 5 pair invariants + 3 chain invariants atvectors/settlement_attestation_v1/.
Quick start
TypeScript
What this is NOT
- Not a cryptographic settlement proof. Cryptographic proofs of payment conditions are orthogonal; this format records the operator’s categorical claim at the canonical-bytes level. The two layers compose.
- Not a chain-specific finality declaration. Chain-specific finality semantics (block depth, validator quorum) are out of scope; verifiers apply them at verification time.
- Not a cross-chain bridge proof. Cross-asset substitution is permitted in the format; the bridge mechanism is out of scope.
Companion IETF Internet-Draft
draft-hopley-x402-settlement-attestation (Independent Submission, Informational). AlgoVoi-authored, sole authorship. Normatively references draft-hopley-x402-canonicalisation-jcs-v1.
See also
- Canonicalisation substrate — the JCS discipline
- Refund receipt — post-settlement counterpart
- Conformance vectors — full vector corpus
- Substrate authorship and provenance — citable AlgoVoi authorship record
- Verifiable x402 receipts — the full x402 receipt chain (compliance, settlement, refund) in one place