<?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.39 (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-02" 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="August" day="08"/>

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

    <abstract>


<?line 31?>

<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 41?>

<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>

</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>Lexicographically sorted array of UTF-8 string policy identifiers. <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 string is not well-formed UTF-8. <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 and no whitespace between tokens.</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). This canonicalisation aligns
in intent with the JSON Canonicalization Scheme <xref target="RFC8785"/> but does not adopt
its number serialisation. A later version of this format <bcp14>MAY</bcp14> adopt RFC 8785
fully; such a change requires a new v value.</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>
<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.</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="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="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="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="20" month="July" 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 freshness and integrity,
   build provenance, threat-framework taxonomy, server-built enforcement
   attestation, 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.  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-07"/>
   
</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="28" month="June" 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 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-02"/>
   
</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>



    </references>

</references>


<?line 480?>

<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-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>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

