SPECIFICATION · COMPATIBILITY

Protocol Compatibility Guarantees

What the AxIA Protocol promises will not change inside a profile, what may change additively, and how breaking changes are versioned.

1. Scope

This document specifies which parts of the Axia public surface are frozen (any change requires a new profile version) and which parts may evolve additively without breaking conforming implementations such as @axia/receipt-verify.

Profiles currently covered: axia.receipt.v1, axia.key.v1, axia.key-chain.v1, axia.inclusion-proof.v1, axia.witnesses.v1.

2. Frozen surfaces

2.1 axia.receipt.v1

The following MUST NOT change without bumping to axia.receipt.v2:

2.2 Conformance vectors

The published conformance vectors under /protocol/test-vectors/receipt-v1/ MUST continue to verify successfully (or fail with the same documented reason) across all future implementations claiming axia.receipt.v1 support.

3. Additive evolution (allowed within v1)

Implementations MUST ignore unknown JSON fields (Postel's principle) so additive changes never break conforming verifiers.

4. Disallowed without major version bump

Any change in this list MUST ship as axia.receipt.v2 (or the next-major profile for the affected surface) and MUST NOT reuse the v1 identifier on the wire.

5. Deprecation policy

When a profile is superseded:

6. Where to look