<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 4.0.6) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-chueayen-attestation-receipts-03" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="AI Attestation Receipts">Enforcement Attestation Receipts for AI Inference Decisions</title>

    <author initials="A." surname="Chueayen" fullname="Anya Chueayen">
      <organization>Aqta Technologies Limited</organization>
      <address>
        <postal>
          <city>Dublin</city>
          <country>Ireland</country>
        </postal>
        <email>hello@aqta.ai</email>
      </address>
    </author>

    <date year="2026" month="September" day="20"/>

    <area>Security</area>
    
    <keyword>attestation</keyword> <keyword>AI</keyword> <keyword>receipts</keyword> <keyword>audit</keyword> <keyword>Ed25519</keyword>

    <abstract>


<?line 45?>

<t>This document specifies a compact JSON attestation receipt for an AI inference
decision. A receipt binds an outcome to a request hash under a published
Ed25519 public key, so a party that does not trust the issuer's infrastructure
can still verify offline what the issuer's signing key attested was decided. The format is intentionally small
and version-selected, so independent verifiers stay easy to implement and
audit. It is intended for settings where an operator-controlled log is not, on
its own, sufficient evidence of the decision.</t>



    </abstract>



  </front>

  <middle>


<?line 55?>

<section anchor="introduction"><name>Introduction</name>

<t>AI systems that take or influence consequential actions are increasingly
deployed in regulated settings. When such a decision is later questioned, the
party being questioned is frequently also the party that produced the record of
the decision. A log an operator controls does not, on its own, let an
independent reviewer confirm what was asked or what was decided.</t>

<t>This document defines a compact receipt that an issuer signs for an LLM
inference decision. The receipt is verifiable offline by any holder of the
issuer's public key. The verifier need not contact the issuer at verification
time.</t>

<figure title="Receipt generation and verification (informative)" anchor="lifecyclefig"><artwork><![CDATA[
        Request
           |
           v
   +-------------------+
   |      Issuer       |
   |                   |
   |  SHA-256 over the |
   |  request body     |
   |        |          |
   |        v          |
   |  build receipt    |
   |        |          |
   |        v          |
   |  canonicalise     |
   |  (Section 5)      |
   |        |          |
   |        v          |
   |  sign, Ed25519    |
   +---------+---------+
             |
       signed receipt
             |
             v
   +-------------------+
   |     Verifier      |
   |                   |
   |  trusted public   |
   |  key, obtained    |
   |  out of band      |
   |        |          |
   |        v          |
   |  recompute the    |
   |  canonical bytes  |
   |        |          |
   |        v          |
   |  verify signature |
   |  (Section 6)      |
   +---------+---------+
             |
             v
         VERIFIED
]]></artwork></figure>

<t>The figure is informative. The normative processing rules are in <xref target="canon"/> and
<xref target="verify"/>. Note that the verifier obtains the public key out of band; the key
carried in the receipt establishes integrity, not the identity of the issuer.</t>

<section anchor="relationship-to-other-work"><name>Relationship to Other Work</name>

<t>Related Internet-Drafts address neighbouring problems.
<xref target="I-D.marques-asqav-compliance-receipts"/> profiles signed action receipts for AI
agents. <xref target="I-D.farley-acta-signed-receipts"/> defines signed decision receipts for
machine-to-machine access control, using RFC 8785 for canonicalisation.
<xref target="I-D.tsyrulnikov-rats-attested-inference-receipt"/> profiles COSE and CWT to
bind model identity, input and output hashes and platform attestation evidence
into one signed artefact for inference inside a trusted execution environment.
It answers a question this document explicitly does not, namely what a
TEE-resident workload can assert about the environment that executed a
particular inference. These documents address adjacent or overlapping receipt problems, and AIR in
particular solves a different one: it binds a receipt to a confidential
workload and requires a verifier to appraise platform attestation before
execution provenance is established. This document instead specifies one
deliberately smaller application-layer receipt shape for the LLM inference decision case,
with an explicit verification algorithm, a version-selected signature suite, and
published conformance vectors. Implementations <bcp14>MAY</bcp14> also implement the related
drafts; this document does not redefine them.</t>

<t>The wider literature has moved quickly and this document does not claim the
mechanism. <xref target="AFR"/> records agent actions as canonically serialised, hash-chained
events with Merkle batching and periodic external anchoring, and reports
detection of edit, delete, reorder and fork tampering under its stated system
model. <xref target="NOTARIZED"/> inverts the trust boundary, having the receiving service
sign what it observed rather than relying on the caller's account of it.
<xref target="EXECGOV"/> sets out pre-effect authorisation and authorisation-bound execution
for agent tool calls, including a receiver-signed effect receipt and replay
blocking, and is directly adjacent to <xref target="siblings"/>. <xref target="I-D.sharif-agent-audit-trail"/>
specifies agent audit records with pre-execution recording, recording
independence from the acting component, deny reasons, replay protection and
external anchoring. <xref target="I-D.das-drip-uas-act-finality"/> draws the distinction
between a broad permission and whether one exact act against one exact
destination is authorised to take effect, and binds a receipt to the candidate
act at the last control point before physical consequence.</t>

<t>Taken together, these works establish substantial prior art for agent audit
trails, tamper-evident action histories, act-scoped authority and
execution-bound evidence. This document therefore claims no novelty for signed
records, audit trails, transparency mechanisms or pre-execution authorisation
in isolation. Its subject is the specific record semantics and verification
model set out here, and nothing wider.</t>

<t>What this document contributes is narrower than the category and is stated as
such: one small payload format for the inference-decision case, with an explicit
verification algorithm, a version-selected signature suite, published conformance
vectors, and two separately written reference implementations that are required
to return the same verdict on the same bytes. The value claimed is
reproducibility by a third party, not novelty of construction.</t>

</section>
<section anchor="siblings"><name>Sibling Record Type for Agent Actions</name>

<t>The deployment this document describes has since grown a second record type,
ACTION-v1, for the authorisation of an agent tool action before it runs, as
distinct from a model inference decision. It is a sibling of this format rather
than a successor: it is signed by the same key, verified by the same
implementations, and reuses the canonicalisation of <xref target="canon"/> and <xref target="ordering"/>
unchanged. The receipt described in this document is untouched by its
existence, and every receipt that verified before it was defined verifies
identically now.</t>

<t>Two points about that pairing matter to any implementer of this document.
First, the two record types both carry signature and public_key in the same
shape, so they cannot be told apart by inspecting field names. A verifier that
guesses which type it holds from the shape of the object will misclassify one
as the other and skip checks specific to the type it actually received.
Selection of the record type <bcp14>MUST</bcp14> therefore be explicit, supplied by the
caller, and a verifier <bcp14>MUST</bcp14> reject a record whose type tag does not match the
type it was asked to verify. Second, a conformant verifier for this document
<bcp14>MUST</bcp14> reject an ACTION-v1 record, and the reverse.</t>

<t>ACTION-v1 is specified outside this document. It is described here only so that
an implementer of this format knows the discrimination rule, which is a
property of this format's own verification and not of the other one.</t>

</section>
<section anchor="keylifecycle"><name>Key Lifecycle</name>

<t>This document assumes the verifier already holds a public key it has reason to
trust, and does not define how that key is distributed, rotated, revoked, or
evaluated for validity at a past point in time. For evidence retained over
years these are load-bearing: a key compromised in a later year casts doubt on
receipts nominally issued before it, and this format alone provides no way to
distinguish them. Addressing that requires mechanisms outside this document,
such as key transparency, an append-only log of issuance, or third-party
witnesses. A later version may profile one.</t>

</section>
<section anchor="nongoals"><name>Non-Goals</name>

<t>This document does not:</t>

<t><list style="symbols">
  <t>Claim that a decision was correct, safe, lawful, or free of model error.</t>
  <t>Define policy language, agent tool protocols, or model evaluation methods.</t>
  <t>Require a Trusted Execution Environment, hardware root of trust, or qualified
timestamp authority.</t>
  <t>Define deployment topology, commercial packaging, or product features beyond
the receipt bytes.</t>
  <t>Replace platform attestation documents (for example TEE quotes). A receipt is
application-layer evidence of a decision, not hardware evidence of the
runtime.</t>
</list></t>

<t>A receipt that verifies proves only what <xref target="whatproves"/> states.</t>

</section>
<section anchor="requirements-language"><name>Requirements Language</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="terminology"><name>Terminology</name>

<dl>
  <dt>Issuer:</dt>
  <dd>
    <t>The system that produces and signs a receipt.</t>
  </dd>
  <dt>Subject:</dt>
  <dd>
    <t>The organisation, identified by org_id, for which the decision was made.</t>
  </dd>
  <dt>Verifier:</dt>
  <dd>
    <t>Any party that checks a receipt's signature against a public key it trusts for
the issuer.</t>
  </dd>
  <dt>Trusted public key:</dt>
  <dd>
    <t>The Ed25519 public key the verifier has obtained out of band for the issuer.
It is not sufficient to trust only the public_key field embedded in a receipt.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="structure"><name>Receipt Structure</name>

<t>A receipt is a single JSON object <xref target="RFC8259"/>. Version 1 defines the required
fields in <xref target="required"/> and the optional fields in <xref target="optional"/>.</t>

<t>Unless a field is listed in this document for version 1, it <bcp14>MUST NOT</bcp14> appear at
the top level. Verifiers <bcp14>MUST</bcp14> reject receipts that contain unknown top-level
fields. This closed set keeps independent verifiers simple and prevents silent
semantic drift.</t>

<section anchor="required"><name>Required Fields</name>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>v</c>
      <c>integer</c>
      <c>Format and suite version. <bcp14>MUST</bcp14> be 1 for this document.</c>
      <c>attestation_id</c>
      <c>string</c>
      <c>UUID string, unique per receipt. Production issuers <bcp14>SHOULD</bcp14> use UUID version 4.</c>
      <c>trace_id</c>
      <c>string</c>
      <c>Issuer-assigned identifier for the LLM call.</c>
      <c>org_id</c>
      <c>string</c>
      <c>Identifier of the subject organisation.</c>
      <c>request_hash</c>
      <c>string</c>
      <c>SHA-256 <xref target="RFC6234"/> digest of the canonicalised request body, 64 lowercase hex characters.</c>
      <c>model</c>
      <c>string</c>
      <c>Provider-qualified model identifier.</c>
      <c>outcome</c>
      <c>string</c>
      <c>One of the values in <xref target="outcomes"/>.</c>
      <c>policy_applied</c>
      <c>array</c>
      <c>Array of UTF-8 string policy identifiers, sorted lexicographically by UTF-16 code unit (<xref target="ordering"/>). <bcp14>MAY</bcp14> be empty.</c>
      <c>cost_prevented_eur</c>
      <c>number</c>
      <c>Non-negative number. <bcp14>MUST</bcp14> be 0 when not computed. See <xref target="cost"/>.</c>
      <c>timestamp</c>
      <c>string</c>
      <c>RFC 3339 datetime with an explicit timezone offset.</c>
      <c>public_key</c>
      <c>string</c>
      <c>base64url-encoded raw 32-byte Ed25519 public key, no padding.</c>
      <c>signature</c>
      <c>string</c>
      <c>base64url-encoded 64-byte Ed25519 signature, no padding. Omitted from the canonical payload.</c>
</texttable>

</section>
<section anchor="optional"><name>Optional Fields</name>

<t>The following fields <bcp14>MAY</bcp14> appear. If present, they <bcp14>MUST</bcp14> match the types below.
They are ignored by signature verification except that they participate in the
canonical payload when present (see <xref target="canon"/>).</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>prev_attestation_id</c>
      <c>string</c>
      <c>attestation_id of a prior receipt in an issuer-defined chain.</c>
      <c>prev_attestation_hash</c>
      <c>string</c>
      <c>SHA-256 hex digest binding this receipt to prior receipt bytes, as defined by the issuer.</c>
      <c>spec_version</c>
      <c>string</c>
      <c>If present, <bcp14>MUST</bcp14> be the ASCII string "ATTESTATION-v1".</c>
</texttable>

<t>If prev_attestation_id is present, prev_attestation_hash <bcp14>MUST</bcp14> also be present.
Verifiers that do not implement chaining <bcp14>MUST</bcp14> still accept well-formed receipts
that include these fields, and <bcp14>MUST</bcp14> still enforce the signature and required
field checks.</t>

<t>Because these fields are optional and issuer-populated, they make a sequence
tamper-evident to a party that follows the whole sequence. They do not make an
individual receipt tamper-proof, and they do not constrain an issuer that emits
unchained receipts or that omits a decision from the chain entirely. Detecting
omission requires evidence outside this format.</t>

</section>
<section anchor="cost"><name>cost_prevented_eur</name>

<t>cost_prevented_eur is retained for wire compatibility with existing version-1
issuers. It is an issuer estimate only. It is not part of the security claim of
the receipt. New issuers <bcp14>SHOULD</bcp14> emit 0. Verifiers <bcp14>MUST NOT</bcp14> treat a non-zero
value as proof of savings, risk reduction, or policy quality.</t>

</section>
</section>
<section anchor="outcomes"><name>Outcome Values</name>

<t>The outcome field <bcp14>MUST</bcp14> be one of:</t>

<dl>
  <dt>ALLOWED:</dt>
  <dd>
    <t>The request was permitted to proceed to the model provider.</t>
  </dd>
  <dt>BLOCKED:</dt>
  <dd>
    <t>The request was not sent to the model provider.</t>
  </dd>
  <dt>SUPPRESSED:</dt>
  <dd>
    <t>The request was not sent because the issuer detected a runaway or loop
condition.</t>
  </dd>
  <dt>PASSED:</dt>
  <dd>
    <t>A synonym of ALLOWED retained for backward compatibility. New issuers <bcp14>SHOULD</bcp14>
emit ALLOWED.</t>
  </dd>
</dl>

</section>
<section anchor="whatproves"><name>What a Verified Receipt Proves</name>

<t>A receipt that verifies under a trusted public key proves that the holder of the
corresponding private key attested to the included fields, including outcome,
request_hash and the stated timestamp value. It does not prove that the
underlying model output was correct, that the policy identifiers were
appropriate, or that the issuer's process was fair.</t>

<t>The request_hash is a commitment, not a disclosure. It does not reveal the
request, and it does not on its own establish that any particular request was
the one presented to the issuer. It lets a verifier that already holds a
candidate request test whether that candidate matches the commitment. What was
decided is established by the signed outcome field, not by the hash. See
<xref target="security"/> for the case where the request is low-entropy enough to be
recovered by hashing candidates.</t>

<t>The receipt does not independently establish when the attestation was made. The
timestamp is a field chosen by the issuer and covered by the signature, so a
verifying receipt shows that the issuer signed that value, not that signing
occurred at that time. Establishing when a receipt existed requires evidence
outside this format, such as inclusion in an append-only log observed by a
third party, or a timestamp from an authority this document does not define.</t>

</section>
<section anchor="canon"><name>Canonical Payload and Signing</name>

<t>The canonical payload is produced by:</t>

<t><list style="numbers" type="1">
  <t>Rejecting the receipt if the JSON object contains duplicate member names at
any level, or if any input byte sequence is not well-formed UTF-8. A verifier
<bcp14>MUST</bcp14> decode strictly: it <bcp14>MUST NOT</bcp14> substitute U+FFFD REPLACEMENT CHARACTER for
an ill-formed sequence, because a lossy decode turns bytes that were never
signed into a payload that verifies. <xref target="RFC8259"/> notes that
implementations disagree over which value wins when names repeat, so a
receipt containing them has no single canonical payload and <bcp14>MUST NOT</bcp14> be
treated as verifiable.</t>
  <t>Removing the signature field, if present.</t>
  <t>Serialising the remaining fields to JSON with all object keys sorted
lexicographically by UTF-16 code unit as specified in <xref target="RFC8785"/> Section
3.2.3, and no whitespace between tokens. See <xref target="ordering"/>: "lexicographic"
without a named encoding is not sufficient to make two implementations
agree.</t>
  <t>Encoding the result as UTF-8, with non-ASCII characters emitted literally as
UTF-8 and never as \uXXXX escapes (see <xref target="strings"/>).</t>
  <t>Serialising every integer-valued number, including a float such as 1.0, as
an integer with no decimal point or trailing zero, and every other number as
the shortest decimal representation that round-trips to the same IEEE 754
binary64 value.</t>
</list></t>

<t>A number whose shortest representation requires exponential notation, meaning a
magnitude below 1e-4 or at or above 1e21, is outside the range that common
implementations serialise identically. An issuer <bcp14>MUST NOT</bcp14> sign such a value
directly; where one would arise it <bcp14>MUST</bcp14> first be rounded into the safe range
(for cost_prevented_eur, to two decimal places).</t>

<t>Within that permitted range the rule above is the rule of <xref target="RFC8785"/> Section
3.2.2.3, which is the ECMA-262 Number::toString algorithm: both produce the
shortest decimal that round-trips to the same binary64 value. This format
differs from RFC 8785 only in forbidding the values RFC 8785 would serialise in
exponential notation, rather than in how any permitted value is written. Earlier
revisions of this document said that the format "does not adopt" RFC 8785 number
serialisation, which overstated the difference and disagreed with the
implementation specification; that wording is corrected here.</t>

<section anchor="agility"><name>Signature Suite and Algorithm Agility</name>

<t>The version field v identifies the complete cryptographic suite, not only the
field layout. In version 1 the suite is Ed25519 <xref target="RFC8032"/> over the canonical
payload. The issuer signs the canonical payload bytes and places the
base64url-encoded signature, without padding, in the signature field.</t>

<t>A verifier <bcp14>MUST</bcp14> select the signature algorithm from v and <bcp14>MUST NOT</bcp14> infer it
from the length or contents of the signature field. A future version <bcp14>MAY</bcp14> define
a post-quantum suite. A verifier that does not implement the suite named by v
<bcp14>MUST</bcp14> reject the receipt rather than guess.</t>

</section>
<section anchor="reqhash"><name>Request Hash</name>

<t>The request_hash field is the SHA-256 digest <xref target="RFC6234"/>, encoded as 64
lowercase hexadecimal characters, of the request body serialised by applying
the same canonicalisation algorithm defined in <xref target="canon"/> to the request JSON,
including its number rule. The algorithm is identical; only the input differs. Request bodies often
carry non-integer sampling parameters such as temperature or top_p, so an
issuer whose requests can contain numbers in the exponential range <bcp14>SHOULD</bcp14> round
them before hashing.</t>

<t>The digest is computed over the request body as received from the caller,
before any redaction, so that a verifier holding the original request can
reproduce it. A verifier that does not hold the original request treats
request_hash as an opaque commitment.</t>

</section>
<section anchor="strings"><name>String Canonicalisation</name>

<t>Strings <bcp14>MUST</bcp14> be serialised as literal UTF-8. Escaping non-ASCII characters as
\uXXXX produces different canonical bytes and <bcp14>MUST NOT</bcp14> be done; only the
escapes required by <xref target="RFC8259"/> are permitted. Mainstream JSON serialisers
disagree by default on this point. Issuers and verifiers <bcp14>MUST</bcp14> both emit literal
UTF-8.</t>

</section>
<section anchor="ordering"><name>Ordering</name>

<t>Wherever this document requires strings to be in lexicographic order, whether
object keys under <xref target="canon"/> or the members of policy_applied, the comparison
<bcp14>MUST</bcp14> be by UTF-16 code unit, as <xref target="RFC8785"/> Section 3.2.3 specifies for object
keys. Implementations <bcp14>MUST NOT</bcp14> compare by Unicode code point or by locale.</t>

<t>The two orderings agree across the whole Basic Multilingual Plane and diverge
only when a character outside it is present, because such a character is
represented in UTF-16 by a surrogate pair whose leading unit is numerically
lower than U+E000. U+E000 therefore sorts after U+1F600 by code unit and before
it by code point.</t>

<t>This is stated normatively because the ambiguity has already produced a real
divergence. Two independently written reference verifiers for this format, one
in TypeScript and one in Python, disagreed on signed receipts carrying a
non-Basic-Multilingual-Plane policy identifier: the first used its language's
native string comparison, which is by UTF-16 code unit, and the second used
its language's native comparison, which is by code point. Both implementations
were faithful to the text of earlier revisions, which said only
"lexicographically". A conformance suite containing only ASCII policy
identifiers could not distinguish them.</t>

</section>
</section>
<section anchor="verify"><name>Verification</name>

<t>A verifier that holds a trusted public key for the issuer:</t>

<t><list style="numbers" type="1">
  <t>Confirms all required fields are present and well-typed for <xref target="required"/>,
including: request_hash is 64 lowercase hex characters; public_key and
signature decode as unpadded base64url to 32 and 64 bytes respectively;
cost_prevented_eur is a non-negative number; timestamp is an RFC 3339
datetime with an explicit timezone offset; and policy_applied is an array of
strings in lexicographic order by UTF-16 code unit (<xref target="ordering"/>).</t>
  <t>Confirms no unknown top-level fields exist.</t>
  <t>Confirms optional fields, if present, satisfy <xref target="optional"/>.</t>
  <t>Confirms outcome is one of the values in <xref target="outcomes"/>.</t>
  <t>Confirms the embedded public_key equals the trusted public key.</t>
  <t>Reconstructs the canonical payload per <xref target="canon"/>.</t>
  <t>Verifies the signature over the canonical bytes using the suite named by v
and the trusted public key.</t>
</list></t>

<t>Verifying only against the embedded public_key, without an out-of-band trust
decision, proves integrity of the object but not issuer identity.</t>

</section>
<section anchor="conformance"><name>Conformance</name>

<t>An implementation claiming conformance to this document <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>Produce or accept receipts matching <xref target="structure"/>.</t>
  <t>Implement canonicalisation and verification as specified in <xref target="canon"/> and
<xref target="verify"/>.</t>
  <t>Reject the invalid cases described by the published conformance vectors
referenced in <xref target="vectors"/>.</t>
</list></t>

<t>Informative interoperability artefacts, including valid and invalid receipts
and a fixed test public key, are published with the ATTESTATION-v1
specification repository. Those vectors are not normative text of this
document; if a vector and this document disagree, this document prevails, and
the vector set <bcp14>SHOULD</bcp14> be corrected.</t>

</section>
<section anchor="security"><name>Security Considerations</name>

<t>The trust boundary this format establishes, and the questions it leaves open,
are summarised below. The figure is informative; the normative rules are in
<xref target="canon"/> and <xref target="verify"/>.</t>

<figure title="Trust boundary of a verified receipt (informative)" anchor="trustfig"><artwork><![CDATA[
                    +-------------------------+
                    |         Issuer          |
    Request ------->|  creates the receipt    |
                    |  chooses the timestamp  |
                    |  holds the signing key  |
                    +------------+------------+
                                 |
                          signed receipt
                                 |
                                 v
                    +-------------------------+
                    |        Verifier         |
                    |  holds a trusted key    |
                    |  recomputes the payload |
                    |  checks the signature   |
                    +------------+------------+
                                 |
                                 v
                  the signed fields are authentic
                  and have not been altered

           NOT ESTABLISHED BY THIS FORMAT ALONE
   +-------------------------------------------------------+
   | when the receipt existed        -> append-only log,    |
   |                                    witness, or a       |
   |                                    timestamp authority |
   | that the claimed model ran      -> platform attestation|
   | that no decision was omitted    -> reconciliation      |
   |                                    against a record    |
   |                                    the issuer does not |
   |                                    produce             |
   | that the decision was correct   -> outside any         |
   |                                    evidence format     |
   | that a later key compromise     -> key transparency,   |
   |   does not undermine old        ->   revocation, or    |
   |   receipts                      ->   historical status |
   +-------------------------------------------------------+
]]></artwork></figure>

<t>Note that the issuer controls both the signing key and the timestamp, so a
verifier that trusts the key learns what the issuer asserted and that nobody
altered it afterwards. Every item in the lower box requires a mechanism this
document does not define.</t>

<section anchor="issuer-identity"><name>Issuer Identity</name>

<t>A receipt proves that the holder of a private key signed the stated fields. It
does not, on its own, prove which organisation that key represents. Verifiers
<bcp14>MUST</bcp14> pin the issuer's public key out of band (for example via a published key
URL, an enterprise configuration, or a trust list).</t>

</section>
<section anchor="confidentiality-of-requests"><name>Confidentiality of Requests</name>

<t>Receipts contain no plaintext prompt or response, only a request hash. For a
high-entropy request body the hash reveals nothing useful by inversion. Where
the request body is low-entropy or guessable, an attacker can hash candidates
and match. Deployments <bcp14>MUST</bcp14> treat request_hash as potentially personal data and
apply their own data-protection controls. Issuers that require pseudonymity
<bcp14>SHOULD</bcp14> hash with a key kept secret from verifiers, at the cost of offline
reproducibility by third parties.</t>

</section>
<section anchor="integrity-versus-correctness"><name>Integrity Versus Correctness</name>

<t>Signature verification establishes integrity and issuer attribution under a
pinned key. It does not establish that the decision was the right decision.</t>

</section>
<section anchor="post-quantum-considerations"><name>Post-Quantum Considerations</name>

<t>Ed25519 is not post-quantum secure. An adversary with a cryptographically
relevant quantum computer could forge signatures under an issuer key that was
active before migration, which matters where long audit retention intersects
that horizon. SHA-256 request binding remains useful as a tamper-detection
commitment for detecting alteration of past receipt bytes under known attacks
on hashes. Because v selects the whole suite (<xref target="agility"/>), a later version
can introduce a post-quantum signature suite without changing the field names.
This document does not define such a suite.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions. A future revision may request registration
of a media type for the receipt object.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC8032">
  <front>
    <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8032"/>
  <seriesInfo name="DOI" value="10.17487/RFC8032"/>
</reference>
<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>
<reference anchor="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</reference>
<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.marques-asqav-compliance-receipts">
   <front>
      <title>Compliance Profile of Signed Action Receipts for AI Agents</title>
      <author fullname="João André Gomes Marques" initials="J. A. G." surname="Marques">
         <organization>Asqav</organization>
      </author>
      <date day="31" month="August" year="2026"/>
      <abstract>
	 <t>   This document defines a multi-jurisdiction compliance profile of the
   signed action receipt format used by AI agents to record machine-
   readable evidence of access-control decisions.  The profile binds
   receipt fields to two regulatory surfaces: on the European Union
   side, Articles 12 and 26 of the EU AI Act (Regulation (EU) 2024/1689)
   and Article 17 of DORA (Regulation (EU) 2022/2554); on the United
   States side, the NIST AI Risk Management Framework, the Colorado AI
   Act, the Texas Responsible AI Governance Act, the New York Department
   of Financial Services Cybersecurity Regulation (23 NYCRR Part 500),
   the HIPAA Security Rule, SEC Rule 17a-4, and the Cyber Incident
   Reporting for Critical Infrastructure Act of 2022 (CIRCIA).  Working
   entirely within the existing wire format, canonicalization
   transformation, and signing algorithms of the underlying receipt
   format, the profile tightens a subset of the OPTIONAL fields to
   REQUIRED, imposes a retention floor, and requires at least one
   timestamping anchor (RFC 3161 or OpenTimestamps).  It registers
   OPTIONAL extension fields for risk and incident classification,
   cross-agent envelope binding, per-action validity-window and
   integrity, build provenance, threat-framework taxonomy, server-built
   enforcement-control records, producer-asserted risk acceptance, and
   producer-asserted code authorship, each subject to false-attestation
   guards where applicable, and registers receipt type namespaces for
   passive-telemetry, result-bound observation, risk-acceptance, and
   code-authorship receipts.  Revision -08 additionally defines an
   attestation statement envelope (a Dead Simple Signing Envelope (DSSE)
   Pre-Authentication Encoding wrapping an in-toto Statement v1 under an
   asqav predicate namespace) with two tiers: a voluntary observation
   attestation that signs a caller-supplied digest and is explicitly not
   a capture, and an authoritative attestation whose subject digest the
   issuing platform re-derives from independent evidence (for code, the
   SHA-256 of the raw unified diff re-fetched from the source host);
   revision -08 further defines the capture-layer integrity, independent
   verification protocol, honest-tiering, and service-identity and
   revocation rules that govern those attestation statements, and
   documents the shipped keyed-digest wire tokens and the verifier
   verdict vocabulary (verified, verified_keyed, unverified).  The full
   field set and its normative requirements are defined in the body of
   this document.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-marques-asqav-compliance-receipts-08"/>
   
</reference>

<reference anchor="I-D.farley-acta-signed-receipts">
   <front>
      <title>Signed Decision Receipts for Machine-to-Machine Access Control</title>
      <author fullname="Tom Farley" initials="T." surname="Farley">
         <organization>ScopeBlind (Veritas Acta)</organization>
      </author>
      <date day="3" month="September" year="2026"/>
      <abstract>
	 <t>   This document defines a portable, cryptographically signed receipt
   format for recording machine-to-machine access control decisions.
   Each receipt captures the identity of the decision maker, the tool or
   resource being accessed, the policy evaluation result, and a
   timestamp.  All of these are signed with Ed25519 [RFC8032] and
   serialized using deterministic JSON canonicalization [RFC8785].

   The format is designed for environments where AI agents invoke tools
   on behalf of human operators, particularly the Model Context Protocol
   (MCP) ecosystem.  Receipts are independently verifiable without
   contacting the issuer, enabling offline audit, regulatory compliance,
   and cross-organizational trust federation.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-farley-acta-signed-receipts-03"/>
   
</reference>

<reference anchor="I-D.tsyrulnikov-rats-attested-inference-receipt">
   <front>
      <title>Attested Inference Receipt (AIR): A COSE/CWT Profile for Confidential AI Inference</title>
      <author fullname="Borys Tsyrulnikov" initials="B." surname="Tsyrulnikov">
         <organization>Cyntrisec</organization>
      </author>
      <date day="5" month="July" year="2026"/>
      <abstract>
	 <t>   This document defines the Attested Inference Receipt (AIR), an
   application-layer COSE_Sign1 envelope carrying CWT claims profiled
   per the Entity Attestation Token (EAT) framework.  An AIR receipt
   binds model identity, input/output hashes, attestation-linked
   metadata, and operational telemetry into a single signed artifact
   suitable for independent third-party verification of a confidential
   AI inference.  An AIR receipt is Attester-signed Evidence, not an
   appraisal verdict: a RATS Verifier must appraise the referenced
   platform attestation before the receipt establishes TEE provenance.

   AIR v1 targets single-inference receipts emitted by workloads running
   inside hardware-isolated Trusted Execution Environments (TEEs).  AIR
   is attestation-linked: it carries measurements and a hash reference
   to the platform attestation evidence associated with the inference,
   but it does not replace platform-specific attestation verification.
   This version defines AWS Nitro Enclaves and Intel TDX measurement
   profiles only, and assumes a single platform attestation document per
   receipt.  Pipeline chaining, multi-inference receipts, composite
   attesters, multi-verifier orchestration, accelerator / GPU
   confidential-compute attestation integration, and extensibility
   mechanisms for additional claim or platform profiles are out of
   scope.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-tsyrulnikov-rats-attested-inference-receipt-02"/>
   
</reference>

<reference anchor="I-D.sharif-agent-audit-trail">
   <front>
      <title>Agent Audit Trail: A Standard Logging Format for Autonomous AI Systems</title>
      <author fullname="Raza Sharif" initials="R." surname="Sharif">
         <organization>CyberSecAI Ltd</organization>
      </author>
      <date day="15" month="September" year="2026"/>
      <abstract>
	 <t>   This document specifies a standard logging format for autonomous
   AI agent systems.  The Agent Audit Trail (AAT) defines a
   JSON-based record structure with mandatory fields for agent
   identity, action classification, outcome tracking, and trust
   level reporting.  Records are linked via tamper-evident hash
   chaining using SHA-256 per RFC 8785, with optional ECDSA
   signatures for non-repudiation.

   The format addresses requirements from the EU AI Act
   (Regulation 2024/1689), which mandates automatic recording of
   events for high-risk AI systems, whose application dates were
   staged into 2027-2028 by Regulation (EU) 2026/1744.  It also
   maps informatively to SOC 2 Trust Services Criteria,
   ISO/IEC 42001, the draft ISO/IEC 24970 and prEN 18229-1 logging
   standards, and PCI DSS v4.0.1 logging requirements.

   The design is transport-agnostic and supports export to JSONL,
   Syslog (RFC 5424), and CSV while preserving chain integrity.
   Privacy is addressed through input/output hashing, content
   fingerprinting, and tombstone-based deletion compatible with
   GDPR Article 17.

   The -01 revision added pre-execution recording requirements,
   recording independence, deny reason codes, replay protection,
   external timestamp anchoring, and content fingerprinting based
   on feedback from independent implementers.

   The -02 revision added a Decision Reproducibility section
   (Section 13) that distinguishes record reproducibility,
   available for any model, from decision reproducibility,
   available only for open-weight models executed at temperature
   zero in an attested environment, and defines the associated
   record fields.

   The -03 revision added the Attestation Closure requirement
   (Section 13.6): the digests recorded for decision
   reproducibility MUST cover the complete computational closure
   of the inference function -- model weights, tokenizer, chat
   template, inference engine build, decoding configuration, and
   numeric environment -- together with new record fields
   (tokenizer_digest, chat_template_digest, engine_build_digest)
   and a minimal-change threat analysis (Section 13.7) showing
   that any component left outside the attested set is a forgery
   channel.

   This revision (-04) adds algorithm agility for post-quantum
   signatures (ML-DSA-65, FIPS 204) alongside ECDSA P-256; a key
   identifier (signer_kid, RFC 7638) that resolves which principal
   signed an independently recorded record; a trust-level assignment
   integrity requirement (Section 5.3) so that downgrading a
   consequential action is an attributable event rather than silent
   suppression; and OPTIONAL Merkle batch anchoring (Section 6.4)
   using the RFC 6962 construction for compact inclusion proofs at
   high throughput.  All -04 additions are OPTIONAL to produce, and
   -04 verifiers stay backward compatible with -03: a -04 verifier
   accepts -03 records, and the new signing metadata is required
   only in records that carry a signature.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-sharif-agent-audit-trail-04"/>
   
</reference>

<reference anchor="I-D.das-drip-uas-act-finality">
   <front>
      <title>Cleared to Fly or Drive Is Not Cleared to Act: Actuator-Level Execution Finality and Compact Act Evidence for UAS and Autonomous Vehicles</title>
      <author fullname="Sangam Das" initials="S." surname="Das">
         <organization>Independent Inventor</organization>
      </author>
      <date day="18" month="September" year="2026"/>
      <abstract>
	 <t>   Problem: Unmanned Aircraft System (UAS) trust infrastructure answers
   two questions well.  Remote Identification (RID), strengthened by the
   Drone Remote ID Protocol (DRIP), answers &quot;who is this aircraft?&quot;, and
   UAS Traffic Management (UTM), U-space, and geo-awareness answer &quot;may
   this flight take place here and now?&quot;.  Neither answers the question
   that decides physical consequence: may this specific act -- arming
   motors, crossing into a newly restricted volume, releasing a delivery
   payload, activating a camera over a protected area, emitting on a
   radio band, or joining a coordinated multi-aircraft manoeuvre --
   become effective at this actuator, at this instant, under the
   airspace and revocation state that is current now?  Authorizations
   are granted before or at take-off, while acts are executed
   continuously by mission computers and autonomy stacks that can be
   compromised, misled, coerced with validly signed commands, or cut off
   from their authorities.  Observers on the ground, in turn, can verify
   an aircraft&#x27;s identity but not whether what it is doing was
   authorized before it happened.

   Solution: The IETF-facing contribution of this document is Compact
   Broadcast Act Evidence: 16-octet per-act decision records
   authenticated with a TESLA-style one-way key chain sealed inside a
   Protected Enforcement Domain and anchored to the aircraft&#x27;s DRIP
   identity.  This lets an Observer verify, after a short disclosure
   delay and within the 25-octet Broadcast RID message budget, that the
   protected enforcement domain made an allow, deny, or safe-state
   decision before the corresponding evidence key was disclosed, without
   requiring a public-key signature on every act.  The evidence
   mechanism is coupled to an execution-finality profile in which each
   safety-significant or externally consequential act remains non-
   effective as a Candidate Act until the Protected Enforcement Domain
   verifies an act-bound, sink-bound Execution Handle against live
   trusted context, consumes current authority state atomically, commits
   a Finality Receipt, and only then releases the physical enablement
   condition at the Finality Sink.  The profile also specifies act
   classes and sinks, self-contained object fields, sink processing
   pseudocode, envelope handles for high-rate control, a boundary-
   proximity revalidation policy, bounded offline operation, and
   composite multi-aircraft semantics.  For constrained onboard, air-to-
   air, telemetry, or other small-frame links, the profile also defines
   an optional Beacon Proof Capsule (BPC): a compact act-bound and sink-
   bound execution-proof representation using an Authority Reference,
   freshness and generation state, a context commitment, a keyed binding
   commitment, explicit truncation-risk sizing, authenticated multi-
   frame reconstruction when necessary, and fail-closed resolver
   semantics.  A BPC is an input to execution verification; the AER/KDR/
   Anchor mechanism is output evidence of the PED decision, and the two
   roles are intentionally non-interchangeable.

   Additional profiles: This document also describes three narrowly
   scoped execution-finality embodiments: conflict-set-bound Detect-and-
   Avoid (DAA) resolution finality for UAS, emergency-scene temporary
   authority finality for autonomous road vehicles as an informative
   cross-domain application, and atomic control-authority handover with
   monotonic authority epochs for autonomous motion platforms.  These
   profiles preserve the same rule: an authenticated or correctly
   computed instruction remains a Candidate Act until the current
   effectuation boundary independently verifies the state on which that
   instruction depends.  In an autonomous road vehicle, that boundary
   may be a protected motion-admission gate rather than a motor or ESC
   gate, so the architecture can coexist with the vehicle&#x27;s existing
   perception, planning, braking, steering, and minimal-risk-control
   functions.

   Industrial context and complementarity: The mechanism complements,
   and does not replace, Broadcast and Network RID, DRIP Entity Tags and
   authentication, DET resolution through DNS, UTM and U-space services,
   geo-awareness, Detect-and-Avoid, flight-control safety logic,
   automotive ADAS/autonomy stacks, remote-assistance systems, and
   authenticated command channels.  Publicly described examples of the
   kinds of software-defined or autonomy-enabled platforms to which this
   boundary can be complementary include Tesla driver-assistance
   systems, BYD DiPilot and related intelligent-driving platforms, DJI
   enterprise drone automation, Boeing autonomous and uncrewed aircraft
   systems, and Lockheed Martin/Sikorsky autonomous aircraft systems.
   These names are illustrative only: this document does not state or
   imply that any named organization uses, endorses, requires, or has
   evaluated this profile.  Their existing perception, planning,
   stabilization, DAA, ADAS, command-and-control, and safety mechanisms
   remain in place; the proposed finality layer operates later, at a
   protected motion-admission or actuator boundary, to verify the
   concrete pending act against current protected authority and state
   before effectuation.  The scope of this document remains strictly
   civil and excludes weapon release, targeting, and counter-UAS
   engagement.  This is an individual Informational Internet-Draft, not
   a DRIP WG work item.  In short, its IETF/IRTF relevance is to DRIP
   (DET-anchored compact act evidence for Observers), RATS (attestation
   of the protected enforcement domain), COSE/CBOR (deterministic
   compact objects), ACE (constrained scoped authorization as input
   rather than effectuation), SCITT (later audit of receipts), and T2TRG
   (constrained Things with multiple authorities).  No WG adoption or
   code-point allocation is requested in this version; the draft is
   offered for technical discussion in those communities and in UAS,
   Remote ID, constrained-security, autonomous-vehicle, and aviation
   standards forums.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-das-drip-uas-act-finality-01"/>
   
</reference>

<reference anchor="AFR" target="https://arxiv.org/abs/2609.01931">
  <front>
    <title>Agent Flight Recorder: Tamper-Evident Audit Trails with On-Chain Anchoring for Long-Horizon Tool-Using Agents</title>
    <author >
      <organization></organization>
    </author>
    <date year="2026" month="September"/>
  </front>
</reference>
<reference anchor="NOTARIZED" target="https://arxiv.org/abs/2606.04193">
  <front>
    <title>Notarized Agents: Receiver-Attested Confidential Receipts for AI Agent Actions</title>
    <author >
      <organization></organization>
    </author>
    <date year="2026" month="June"/>
  </front>
</reference>
<reference anchor="EXECGOV" target="https://doi.org/10.2139/ssrn.7414079">
  <front>
    <title>Execution Governance 3.0: From Pre-Effect Authorization to Authorization-Bound Execution</title>
    <author >
      <organization></organization>
    </author>
    <date year="2026" month="August"/>
  </front>
</reference>


    </references>

</references>


<?line 584?>

<section anchor="example"><name>Example Receipt</name>

<t>The following informative example is vector <spanx style="verb">valid/001-allowed.json</spanx> from the
conformance set in <xref target="vectors"/>. A verifier that pins the test public key in
<xref target="vectors"/> <bcp14>MUST</bcp14> accept it. The author regenerated and re-checked this object
against that key before publishing this revision; if verification fails, the
vector set or this figure is wrong and <bcp14>MUST</bcp14> be corrected before relying on
either.</t>

<t>Field order in this figure is for readability; canonical signing order is
defined in <xref target="canon"/>. The signature value is shown on two lines for document
formatting only; in the vector file it is a single base64url string with no
whitespace.</t>

<figure><artwork><![CDATA[
{
  "v": 1,
  "attestation_id": "00000000-0000-0000-0000-000000000001",
  "trace_id": "trace-tv-001",
  "org_id": "org-test-vectors",
  "request_hash":
    "8f3a7e2b9c4d5f6a1b0c9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a",
  "model": "gpt-4o",
  "outcome": "ALLOWED",
  "policy_applied": ["budget_guard"],
  "cost_prevented_eur": 0,
  "timestamp": "2026-04-23T10:15:30.000000+00:00",
  "public_key": "alWzEnrA_z9McN9z_MFfQCnH9mVgOwRZ26wrI7oix4E",
  "signature":
    "gXA2GNEvACSGDtOk9KMEeHDUQMPUhHJHeLFMbbrwKlEI"
    "XY9UkvI5gWQ201Lm3Tkh7K3luXwQtqcua6vv4HmAAg"
}
]]></artwork></figure>

<t>Pinned test public key for this example and the vector set:</t>

<figure><artwork><![CDATA[
alWzEnrA_z9McN9z_MFfQCnH9mVgOwRZ26wrI7oix4E
]]></artwork></figure>

</section>
<section anchor="vectors"><name>Conformance Vectors</name>

<t>Informative conformance vectors (valid receipts, invalid receipts, and the
fixed test public key) are published at:</t>

<t>https://github.com/Aqta-ai/attestation-spec/tree/main/test-vectors</t>

<t>A conformant verifier that pins that test public key <bcp14>MUST</bcp14> accept every receipt
in the valid set and <bcp14>MUST</bcp14> reject every receipt in the invalid set. Those
vectors are generated from a fixed seed documented in that repository so
third parties can reproduce the signatures.</t>

</section>
<section anchor="reference-implementations"><name>Reference Implementations</name>

<t>Open-source reference verifiers implementing this format are published as
aqta-verify-receipt on the Python Package Index and on the npm package registry.
Those packages are informative aids. Conformance is defined by this document
and the vector set in <xref target="vectors"/>, not by any single implementation.</t>

</section>
<section anchor="changes-from-draft-chueayen-attestation-receipts-02"><name>Changes From draft-chueayen-attestation-receipts-02</name>

<t>Every change in this revision corrects a place where the published text was
weaker than the implementation it describes. No wire format change: a receipt
that verified under -02 verifies identically under -03, and no v value changes.</t>

<t><list style="symbols">
  <t>Lexicographic order is now defined normatively as UTF-16 code unit, in a new
Ordering section, and both places that require it point at that section.
Earlier revisions said only "lexicographically", which is not sufficient to
make two implementations agree; the new section records the divergence that
proved it.</t>
  <t>Strict UTF-8 decoding is now required. A verifier <bcp14>MUST NOT</bcp14> substitute U+FFFD
for an ill-formed sequence, because a lossy decode admits bytes that were
never signed.</t>
  <t>The number serialisation paragraph no longer says the format "does not adopt"
RFC 8785 number serialisation. Within the range this format permits, the rule
is RFC 8785 Section 3.2.2.3; the difference is only that values requiring
exponential notation are forbidden here. The old wording overstated the
difference and disagreed with the implementation specification.</t>
  <t>RFC 8785 moves from informative to normative, since ordering and number
serialisation are now defined by reference to it.</t>
  <t>A new section records the sibling record type for agent actions, ACTION-v1,
and states the discrimination rule a verifier of this format must follow:
record type selection is explicit and never inferred from field shape.</t>
</list></t>

</section>
<section anchor="changes-from-draft-chueayen-attestation-receipts-00"><name>Changes From draft-chueayen-attestation-receipts-00</name>

<t><list style="symbols">
  <t>Added explicit non-goals and a "what a verified receipt proves" section.</t>
  <t>Clarified relationship to related Internet-Drafts without requiring them.</t>
  <t>Documented optional chain fields and spec_version for wire clarity.</t>
  <t>Clarified that cost_prevented_eur is non-security and <bcp14>SHOULD</bcp14> be 0 for new
issuers.</t>
  <t>Added conformance language, an example receipt, and a pointer to published
test vectors.</t>
  <t>Normative reference to SHA-256 via RFC 6234.</t>
  <t>Tightened verification steps for issuer identity pinning.</t>
  <t>Softened attestation_id to UUID string with version-4 <bcp14>SHOULD</bcp14>, matching the
published conformance vectors.</t>
  <t>Clarified policy_applied as UTF-8 strings (matches the non-ASCII valid
vector) and tightened verification type checks.</t>
</list></t>

</section>
<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>The ordering divergence described in <xref target="ordering"/> was not found by the author.
It, and further defects in the reference implementations, were reported by
people outside the author's organisation during a public review of those
implementations between August and September 2026. Each was fixed, and each was
added to the published conformance vectors as a regression case, which is why
the vector set contains non-Basic-Multilingual-Plane identifiers at all.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA71963bbRpbu/3qKGvlHJxOC1s2yRc/0DCPTsSay5UhyLtPT
y1MEiiRaIMCgQNGM7H6W8yznyc6+VaFAUm7nZNZodccSCBSqdu3a+9tXJkmi
mrwp7EDvjcpJVad2bstGD5vGusY0eVXqK5vafNE4DR/r4bk+Lye2tmVq9Qub
5g5ucXvKjMe1vYNR4IZdD++prEpLM4cXZbWZNEk6W1qztmVi2ruTWu5O9o9U
aho7rer1QOcwMZUv6oFu6qVrDvf3T/cPlamtGehrmy7rvFkrtxzPc4ezuVkv
LD6U2YWF/5SNurXrVVVnA/2X6GU9WEtP+zf2tFlmedPTo+zwyZOD078quK3M
3puiKmG0tXVqkcMATZX2tKvqprYTeMit5/jLX5VZNrOqHiitE/i/hte7gR72
9Zksky7y+ofl2nSvV/XUlPlvNC34/NfG6BubzsqqqKa5dfoin+eNzejeFBY7
0C+W4yLnh9NqWTZIpvPaFjBlumjnJi8GemaLovp3AwP2Ta7Kqp7DO+4sTvPq
5dmz/aND/+vhk1P59eTw6NhfffrsyUAh+aMHz5MX/bmpf11alxj3q7lL0mq+
KHIDHBE20N84MXVh14lJG5O4fFrabOuWxq3rZVHmt9VdUhvYe94juDP3jOaf
8Y+4manzSWKmsLkJ7VvS1Lhg+TwzLsnqfJEs4Rd4dzLJS1Mg4eCG4curAdHI
8/0Qh9Evi3w6a5BfgVMs8NqNmS9snYzu8oxOBL5G3+BrnF7lzUxflsnZzOQl
bGgKe5+XUzohF1U5TV7B378B+99UVZG8c/gZvQbOAb3a1FPbwP40zcINHj82
9Yf8rg9s8NiM3ePDk/3T/v7B6dEB3ZzBQRjow/3Dk2T/FK68ubwZXp3/5+hF
dxlvKhg1/81m8qYBn707WMNQKKrPqnJCy8lNsXWumQ7DtOET/UXzPOnvH8NE
t+Z5AldGP4/Ovrv8sTvL0Qc4sCQZvqtgaiVyjT7q7w/0y7qa67e1TUaTiU2R
4Hii5FTopupeSL4Fts90GG73fLMqp9ke7PcPD45OHztXl/2nxwfH+09Pt+b8
TCUgDfE/GlYHDJU2St3McqdBdC1JLLoFSLwJHkmjkevhFv0f15dvdCRXvEgh
spoSKRsYWWUiMft6GO4bg6hyeGe1bGBQi2s18CmesEbPjJtpWKqFwfQCj72b
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
hON8VupfUfTV/wOcVNibMn0AAA==

-->

</rfc>

