すべての法的文書は英語版のみで提供しており、法的拘束力を持つのは英語版のみです。
Google 翻訳で翻訳する新しいタブで開きます。参考情報としてご利用くださいHow the receipt format and the API are versioned, which changes can happen within a version and which need a new one, and why a receipt issued today stays verifiable for good.
Last updated November 6, 2026.
| What | Current version | Where it is stated |
|---|---|---|
| Receipt format | "1" | The version member of every receipt |
tls.watch receipt body | 4 | bodyVersion in the body |
monitor.http hourly digest body | 1 | digestVersion in the body |
Bodies of agent.boundary, agent.plan, refusal.attest, handoff.attest, guardrail.attest, rag.attest, eval.attest, model.attest, heartbeat.attest, residency.attest, sla.certify, optout.snapshot, invoice.attest, esign.evidence, lockfile.snapshot, backup.attest, dataset.snapshot, sbom.notarize and the watches (agentcard.watch, apispec.watch, catalog.snapshot, status.capture, terms.watch, registry.watch, rdap.watch, posture.watch, control.snapshot) | 1 | bodyVersion in the body |
Bodies of the chained-record and verification tools (consent.record, terms.accept, decision.attest, erasure.attest, exam.integrity, cra.report, report.receipt, approval.attest, mcp.session, disclosure.attest, draw.fair, payment.event, inbound.receipt, reading.attest, email.dkim_notarize, provenance.check, page.provenance, api.witness, botauth.verify, mandate.witness, tee.verify) | First version | No bodyVersion member; a later version adds one |
| API | v1 | The path, /api/v1/ |
@agined/verify | 0.1.0 | npm |
In plain language: a receipt says which format version it uses, and that version never changes meaning. Old receipts keep verifying with the same four steps, whatever we add later.
Within version "1", changes are additive only:
tls.watch does with bodyVersion. A body that has no bodyVersion member is the first version of that body; its next version adds the member.None of these affects verification. The signature covers every member present in the receipt, whatever it is called, so a verifier that canonicalizes the whole receipt, as the four steps in Verifying receipts require, verifies receipts with members it has never seen. Software that reads the fields should ignore members it does not know.
Any change to how receipts are canonicalized, to the signature scheme, or to the members every receipt must have, requires a new value of version. Version "1" receipts stay verifiable for good: we will not reinterpret them, and verifiers must keep accepting them alongside any later version.
Before any receipt is issued in a new format version, we will publish its description, support it in our verification libraries and on the /verify page, and announce it in the changelog. The move to post-quantum signatures, described on Post-quantum status, is the change most likely to need one.
The API is versioned by its path. Within /api/v1/, changes are additive: new endpoints, new optional request fields and new response fields. A change that would break existing callers gets a new path prefix, and /api/v1/ keeps working alongside it. There is no version header and no date-based versioning.
We announce API changes in the changelog. Removing a paid feature is announced by email at least 30 days ahead, as the Terms of Service say.
The verification libraries follow semantic versioning. A new major version may drop support for an old runtime, but never for an old receipt format or an old published key: every library version verifies every receipt format version that existed when it was released. There is no fixed support window for library versions yet; the four steps are simple enough that any current version, or your own code, will do.
Three things keep an old receipt verifiable without us:
"1" receipt means the same thing in twenty years as it does today.For evidence that must outlast a possible future quantum computer, see Post-quantum status.
We update this page when a version changes. Questions: support@agined.com.