Kaspa x402

Versioning Policy

Status: alpha policy. This file describes how breaking changes should be labeled before a stable release exists.

Spec Versions

The umbrella Kaspa x402 proposal remains v1, while individual bindings and covenant templates are versioned independently. Until the first stable tag, these identifiers describe compatibility families rather than production-stable contracts.

Breaking wire changes before stability should update vectors, schemas, package minor/pre-release versions, and the affected docs in the same change.

Current alpha wire notes:

Alpha.10 is a clean active replacement. The current runtime, schemas, examples, and hosted test surface do not accept or migrate older batch bindings or channel state. Published alpha releases remain immutable historical snapshots; they are not compatibility targets for the active alpha.

Package Versions

Alpha packages use semver prereleases:

0.1.0-alpha.N

Rules:

Template IDs

Template IDs identify covenant families. The current template ids are:

kaspa-x402-escrow-v2
kaspa-x402-kip10-additive-v1

Change the template id when the script source, argument layout, successor-output rules, hash commitments, or claim/refund semantics change in a way that makes old and new channel states incompatible.

Domain Tags

Domain tags version signed preimages and hash scopes. Changing a preimage layout or signed meaning requires a new domain tag.

Current examples include:

kaspa:x402:escrow-voucher:v2
kaspa:x402:channel:v1

Vector Sets

Vectors are part of the compatibility surface. Any change to canonical JSON, header bytes, digest preimages, transaction ids, sighashes, transaction hashes, compute-budget assumptions, or stable error identifiers must update the related vectors in the same change.

Network Strings

The supported network strings are:

kaspa:testnet-10
kaspa:mainnet

kaspa:mainnet is a reserved profile name in the draft spec. It is not a readiness claim.

Source: /docs/versioning-policy.md