<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="urn:ietf:params:xml:ns:rfc2629" type="application/xml"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     ipr="trust200902"
     docName="draft-emirdag-scitt-ai-agent-execution-01"
     category="info"
     submissionType="IETF"
     
     version="3">

  <front>
    <title abbrev="SCITT AI Agent Execution">AI Agent Execution Profile of SCITT</title>
    <seriesInfo name="Internet-Draft" value="draft-emirdag-scitt-ai-agent-execution-01"/>
    <author initials="P." surname="Emirdag" fullname="Pinar Emirdag">
      <organization>Veridic Inc.</organization>
      <address>
        <email>e.pinar@theveridic.ai</email>
        <uri>https://theveridic.ai</uri>
      </address>
    </author>
    <author initials="D." surname="Feichtinger" fullname="Daniel Feichtinger">
      <organization>Veridic Inc.</organization>
      <address>
        <email>f.daniel@theveridic.ai</email>
        <uri>https://theveridic.ai</uri>
      </address>
    </author>
    <date year="2026"/>
    <area>Security</area>

    <abstract>
      <t>This document defines a SCITT (Supply Chain Integrity, Transparency,
      and Trust) profile for creating independently verifiable,
      tamper-evident records of autonomous AI agent actions. The profile defines the AgentInteractionRecord (AIR)
      as the COSE_Sign1 signed statement payload for material agent
      actions; maps SCITT roles to the agent execution context, with the
      Agent Operator as Issuer and an independent Evidence Custodian as
      Transparency Service; specifies Registration Policy requirements
      including hash chain integrity, temporal ordering, and sequence
      completeness; defines a redaction receipt mechanism for
      privacy-preserving evidence custody; and provides compliance
      mappings to EU AI Act Articles 12 and 19, DORA, NIST AI RMF,
      MAS AI Risk Management Guidelines, PCI DSS, and MiFID II.</t>
    </abstract>

  </front>

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

      <section anchor="post-execution-evidence-problem">
        <name>The Post-Execution Evidence Problem</name>
        <t>Autonomous AI agents execute consequential actions -- payments,
        trades, contracts, regulated data access -- at machine speed,
        often without contemporaneous human review. When such an action
        is later disputed, a counterparty, an auditor, or a regulator
        needs to be able to establish, without relying on the agent
        operator, who made the record of it, the latest time at which
        that record can have been made, and that the record has not been
        altered since.</t>
        <t>Operator-controlled audit logs are mutable by the operator,
        carry no third-party attestation, and are not designed for
        independent verification.</t>
        <t>This profile addresses the gap by defining how independently
        custodied, post-execution evidence records bind to the SCITT
        architecture.</t>
        <t>The requirement that an agent's actions be recorded as signed,
        timestamped entries held by a party other than the agent's operator
        draws on the triple-entry accounting model
        <xref target="GRIGG-2005"/>, in which a signed receipt, held by a
        third party as well as by the two transacting parties, becomes the
        shared record that binds them. Under this profile, an agent that
        acts without producing a signed record has left the scope of what
        can be externally verified. This profile does not establish that a
        record is accurate.</t>
      </section>

      <section anchor="relationship-to-scitt">
        <name>Relationship to SCITT</name>
        <t>This profile is an application of <xref target="RFC9943"/>.
        It:</t>
        <ul>
          <li>REQUIRES compliance with <xref target="RFC9943"/></li>
          <li>REQUIRES AIRs to be encoded as COSE_Sign1 Signed Statements <xref target="RFC9052"/></li>
          <li>DEFINES domain-specific extensions for AI agent execution evidence</li>
        </ul>
        <t>The first item above has one exception in this revision.
        <xref target="RFC9943" section="5.1"/> requires a Transparency
        Service to produce COSE Receipts as defined in
        <xref target="RFC9942"/>. The Evidence Receipt in
        <xref target="evidence-receipt"/> is not yet specified in that
        form.</t>
        <t>The SCITT architecture's non-equivocation property is particularly
        significant for this domain: its purpose is that two different
        Relying Parties cannot be shown two different versions of the same
        Evidence Chain. This revision does not yet define the proofs on
        which that property rests (<xref target="evidence-receipt"/>). Combined with the three-role separation (Issuer,
        Transparency Service, Relying Party), this provides the structural
        independence required for evidence to withstand institutional
        scrutiny.</t>
      </section>

      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies:</t>
        <ul>
          <li>AgentInteractionRecord (AIR) schema as COSE_Sign1 payload</li>
          <li>SCITT role mappings for the agent execution context</li>
          <li>Registration Policy requirements for AIR admission</li>
          <li>Hash chain construction and four-step verification algorithm</li>
          <li>Identity binding levels (Minimum, Institutional, Delegation)</li>
          <li>Redaction receipt mechanism for privacy-preserving custody</li>
          <li>Evidence Receipt semantics</li>
          <li>Compliance mappings to applicable regulatory frameworks</li>
        </ul>
        <t>This document does not specify:</t>
        <ul>
          <li>General SCITT architecture (see <xref target="RFC9943"/>)</li>
          <li>COSE Receipt format (see <xref target="RFC9942"/>)</li>
          <li>Capture mechanism (MCP middleware, framework wrappers, proxies are all conforming implementations)</li>
          <li>Storage backend technology</li>
          <li>Identity infrastructure (DIDs, SPIFFE <xref target="SPIFFE"/>, Verifiable Credentials are external systems)</li>
          <li>Analytics or query APIs</li>
          <li>Specific regulatory requirements applicable to any deployment</li>
          <li>Content evaluation, risk scoring, or analytical interpretation of recorded actions</li>
        </ul>
      </section>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
      and "OPTIONAL" 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>
      <dl>
        <dt>Agent:</dt><dd>An autonomous software system that perceives inputs, makes decisions, and takes actions on behalf of a principal, using one or more AI models.</dd>
        <dt>Agent Operator:</dt><dd>The organisation that deploys, configures, and directs an Agent. Responsible for the Agent's actions in law and contract. The Issuer in this profile.</dd>
        <dt>Material Action:</dt><dd>An action taken by an Agent that creates, modifies, or extinguishes an external obligation, transfers value, accesses regulated data, or produces a consequential output. See <xref target="material-action"/>.</dd>
        <dt>AgentInteractionRecord (AIR):</dt><dd>A structured, signed, hash-chained record of a single Material Action. The signed statement payload for this profile.</dd>
        <dt>Evidence (in this profile):</dt><dd>Information derived from a signed, hash-chained AgentInteractionRecord that attests to the integrity, provenance, and temporal ordering of a Material Action. Evidence attests to what was recorded and that the record has not been altered; it does not attest to the correctness, legality, or commercial merit of the recorded action.</dd>
        <dt>Evidence Chain:</dt><dd>The ordered, hash-chained sequence of AIRs registered with a Transparency Service for a given agent deployment.</dd>
        <dt>Evidence Custody:</dt><dd>The independent, append-only holding of integrity proofs and signed records on behalf of a principal, without access to, control over, or liability for the underlying assets, transactions, or decisions those records reference.</dd>
        <dt>Evidence Custodian:</dt><dd>The party performing Evidence Custody by operating the Transparency Service. Independent of the Agent Operator. Holds the append-only Evidence Chain.</dd>
        <dt>Evidence Receipt:</dt><dd>A receipt issued by the Transparency Service upon successful registration of an AIR. See <xref target="evidence-receipt"/>.</dd>
        <dt>Redaction Receipt:</dt><dd>A record within the AIR attesting that a specific field was redacted before signing, preserving the SHA-256 hash of the original value.</dd>
        <dt>Principal:</dt><dd>The human or institutional entity on whose behalf the Agent acts.</dd>
        <dt>EES:</dt><dd>Evidence Envelope Specification. The open format specification defining the AIR schema and verification algorithm. See <xref target="ees-relationship"/>.</dd>
      </dl>
    </section>

    <section anchor="scitt-role-mapping">
      <name>SCITT Role Mapping</name>

      <section anchor="issuer">
        <name>Issuer -- the Agent Operator</name>
        <t>The Agent Operator is the Issuer. The Operator's evidence pipeline
        captures Material Actions at execution time, normalises them to
        the AIR schema, applies redaction policy, and signs the record
        using an ECDSA P-256 key pair.</t>
        <t>The Issuer's signing key MUST be registered with the Transparency
        Service before first submission, bound to the Operator's
        organisational identity, and rotated on a schedule no longer than
        12 months. Key rotation events MUST themselves be registered as
        records in the Evidence Chain.</t>
      </section>

      <section anchor="transparency-service">
        <name>Transparency Service -- the Evidence Custodian</name>
        <t>The Evidence Custodian is an independent party -- not the Agent
        Operator, without financial or operational interest in the Agent's
        behaviour -- that holds the append-only Evidence Chain under
        custodial SLAs.</t>
        <t>The Transparency Service MUST maintain the chain as append-only
        (records once admitted cannot be deleted, modified, or reordered),
        issue an Evidence Receipt for each admitted record via <xref target="I-D.ietf-scitt-scrapi"/>, and implement
        the non-equivocation guarantee.</t>
      </section>

      <section anchor="relying-party">
        <name>Relying Party</name>
        <t>Relying Parties arrive after the fact, with zero prior context, and
        must be able to verify records without operator cooperation.</t>
      </section>

      <section anchor="role-mapping-summary">
        <name>Role Mapping Summary</name>
        <table>
          <thead><tr><th>SCITT Role</th><th>This Profile</th></tr></thead>
          <tbody>
            <tr><td>Issuer</td><td>Agent Operator</td></tr>
            <tr><td>Signed Statement</td><td>AgentInteractionRecord</td></tr>
            <tr><td>Transparency Service</td><td>Evidence Custodian</td></tr>
            <tr><td>Receipt</td><td>Evidence Receipt (<xref target="evidence-receipt"/>)</td></tr>
            <tr><td>Relying Party</td><td>Auditor / Regulator / Insurer / Counterparty</td></tr>
          </tbody>
        </table>
      </section>
    </section>

    <section anchor="material-action">
      <name>The Material Action</name>

      <section anchor="material-action-definition">
        <name>Definition</name>
        <t>A Material Action is the unit of record in this profile. Every
        Material Action MUST produce exactly one AgentInteractionRecord.
        An action is material if it satisfies one or more of:</t>
        <dl>
          <dt>(a) Value transfer</dt><dd>initiates, authorises, or confirms a transfer of monetary value or financial instruments.</dd>
          <dt>(b) Contract formation or modification</dt><dd>creates, amends, or terminates a legal obligation between parties.</dd>
          <dt>(c) Regulated data access</dt><dd>accesses, modifies, or transmits data subject to regulatory protection.</dd>
          <dt>(d) Consequential decision</dt><dd>produces a decision that materially affects the rights or interests of a person.</dd>
          <dt>(e) External system commitment</dt><dd>commits state to an external system that cannot be trivially undone.</dd>
        </dl>
        <t>This list is not exhaustive. Implementations SHOULD treat any
        autonomous action with externally observable consequences as material.</t>
      </section>

      <section anchor="action-type-classification">
        <name>Action Type Classification</name>
        <t>This profile defines the following action types:</t>
        <table>
          <thead><tr><th>Action Type</th><th>Material Action Category</th></tr></thead>
          <tbody>
            <tr><td>payment_initiation</td><td>Value transfer</td></tr>
            <tr><td>payment_execution</td><td>Value transfer</td></tr>
            <tr><td>trade_execution</td><td>Value transfer</td></tr>
            <tr><td>contract_execution</td><td>Contract formation or modification</td></tr>
            <tr><td>regulated_data_access</td><td>Regulated data access</td></tr>
            <tr><td>regulated_data_export</td><td>Regulated data access</td></tr>
            <tr><td>credit_decision</td><td>Consequential decision</td></tr>
            <tr><td>configuration_change</td><td>External system commitment</td></tr>
          </tbody>
        </table>
        <t>Implementations MAY define additional values using a reverse-DNS
        namespace (e.g., com.example.custom-action). Values without a
        namespace prefix are reserved for this profile.</t>
      </section>
    </section>

    <section anchor="air">
      <name>AgentInteractionRecord</name>

      <section anchor="air-overview">
        <name>Overview</name>
        <t>The AIR captures eight categories of evidence about a Material
        Action: what the agent was given; what it produced; what resources
        it used; what it reasoned; who it is; what authorised it; when it
        acted; and where it fits in a causal chain.</t>
      </section>

      <section anchor="air-schema">
        <name>Schema (CDDL)</name>
        <t>The following CDDL <xref target="RFC8610"/> reproduces the AgentInteractionRecord schema
        from the Evidence Envelope Specification [EES] for implementer
        convenience.</t>
        <sourcecode type="cddl"><![CDATA[
AgentInteractionRecord = {
  "schema_version"         : tstr,        ; MUST be "air-1.0"
  "record_id"              : tstr,        ; UUID v7
  "session_id"             : tstr,
  "action_type"            : tstr,
  "action_subtype"         : tstr / null,
  "action_timestamp_ms"    : uint,        ; Unix epoch, ms
  "captured_timestamp_ms"  : uint,
  "written_timestamp_ms"   : uint / null,
  "agent_id"               : tstr,        ; Stable deployment ID
  "agent_version"          : tstr,
  "agent_did"              : tstr / null,  ; W3C DID
  "agent_workload_id"      : tstr / null,  ; SPIFFE ID
  "operator_id"            : tstr,
  "operator_pubkey_id"     : tstr,
  "principal_id"           : tstr / null,
  "delegation_chain"       : [* tstr] / null,
  "intent_attestation"     : tstr / null,
  "auth_context"           : AuthContext / null,
  "input_hash"             : bstr,        ; SHA-256
  "input_summary"          : tstr / null,
  "outcome_state"          : tstr,
  "outcome_hash"           : bstr,
  "outcome_summary"        : tstr / null,
  "tool_calls"             : [* ToolCallRecord],
  "jurisdiction"           : tstr,        ; ISO 3166-1 alpha-2
  "retention_class"        : tstr,
  "policy_refs"            : [* tstr],
  "external_refs"          : [* ExternalRef],
  "parent_record_id"       : tstr / null,
  "workflow_id"            : tstr / null,
  "trace_id"               : tstr / null,
  "consumer_instructions"  : tstr / null,
  "reasoning_hash"         : bstr / null,  ; SHA-256
  "redaction_receipts"     : [* RedactionReceipt],
}
; The COSE protected header carries: content_hash, chain_hash,
; prev_chain_hash, sequence_number, action_timestamp_ms, and
; agent_id. The latter two also appear in the payload; the
; protected header copies enable chain verification without
; payload access. See Section 5.6.

AuthContext = { "token_type" : tstr, "scopes" : [* tstr],
  "audience" : tstr / null, "expires_at_ms" : uint / null }

ToolCallRecord = { "tool_id" : tstr, "tool_type" : tstr,
  "input_hash" : bstr, "output_hash" : bstr,
  "is_write" : bool, "timestamp_ms" : uint }

ExternalRef = { "ref_type" : tstr, "ref_value" : tstr,
  "ref_system" : tstr / null }

RedactionReceipt = { "field_path" : tstr,
  "original_hash" : bstr, "policy_id" : tstr,
  "timestamp_ms" : uint }

; COSE protected header fields (not in payload):
; The COSE_Sign1 signature covers this header and the payload
; per RFC 9052; it is not a field within the header itself.
;
; Per RFC 9943 Section 6 and RFC 9597,
; the protected header MUST include CWT Claims (label 15) with
; iss (Issuer, claim 1) and sub (Subject, claim 2), plus key
; identification via kid (label 4), x5t (label 34), or
; x5chain (label 33).
;
; In this profile:
;   iss (claim 1) = operator_id (the Agent Operator identity)
;   sub (claim 2) = agent_id (the agent deployment identity)
;   kid (label 4) = operator_pubkey_id
CoseProtectedFields = {
  ; --- SCITT-mandated parameters (integer labels) ---
  &(alg: 1)          => int,           ; -7 for ES256
  &(kid: 4)          => bstr,          ; operator_pubkey_id
  &(CWT_Claims: 15)  => CWT_Claims_Map,
  ; --- Profile-specific integrity fields ---
  "content_hash"       : bstr,
  "prev_chain_hash"    : bstr,
  "chain_hash"         : bstr,
  "sequence_number"    : uint,
  "action_timestamp_ms": uint,
  "agent_id"           : tstr,
}

CWT_Claims_Map = {
  &(iss: 1) => tstr,   ; operator_id
  &(sub: 2) => tstr,   ; agent_id
}
]]></sourcecode>
      </section>

      <section anchor="key-field-definitions">
        <name>Field Definitions</name>

        <t>Core Identity Fields:</t>
        <dl>
          <dt>schema_version REQUIRED:</dt><dd>MUST be "air-1.0". Identifies the AIR schema version for forward compatibility.</dd>
          <dt>record_id REQUIRED:</dt><dd>UUID v7 (<xref target="RFC9562"/>), time-ordered. Unique identifier for this record. Enables deduplication on resubmission.</dd>
          <dt>session_id REQUIRED:</dt><dd>UUID grouping related Material Actions within a single workflow or conversation.</dd>
          <dt>agent_id REQUIRED:</dt><dd>Stable deployment identifier for the agent. Assigned by the Agent Operator. Does not change across restarts or model updates. Forms the primary grouping key for the Evidence Chain.</dd>
          <dt>agent_version REQUIRED:</dt><dd>String encoding the model name, model version, agent framework, and framework version. Format is implementation-defined but MUST be deterministic for a given execution environment.</dd>
          <dt>agent_did OPTIONAL:</dt><dd>W3C Decentralized Identifier providing a portable, cryptographically verifiable identity anchor that survives across sessions and operators.</dd>
          <dt>agent_workload_id OPTIONAL:</dt><dd>SPIFFE ID (<xref target="SPIFFE"/>) identifying the specific runtime workload instance. More specific than agent_id; different instances of the same deployment will have different workload IDs.</dd>
          <dt>operator_id REQUIRED:</dt><dd>Identifier for the Agent Operator. Corresponds to the Issuer identity (CWT Claims iss) in the COSE protected header.</dd>
          <dt>operator_pubkey_id REQUIRED:</dt><dd>Key identifier for the signing key used. Corresponds to kid in the COSE protected header.</dd>
          <dt>principal_id OPTIONAL:</dt><dd>Identifier for the human or institutional entity on whose behalf the Agent acts.</dd>
        </dl>

        <t>Authorisation Fields:</t>
        <dl>
          <dt>delegation_chain OPTIONAL:</dt><dd>Ordered array of references to Verifiable Credentials establishing the authority chain from Principal to Agent.</dd>
          <dt>intent_attestation OPTIONAL:</dt><dd>Reference to a signed attestation of the principal's intent.</dd>
          <dt>auth_context OPTIONAL:</dt><dd>OAuth/authorisation context at execution time. Contains token_type, scopes, audience, and expires_at_ms. Records which scopes the Agent was operating under at the moment of the Material Action.</dd>
        </dl>

        <t>Timestamp Fields:</t>
        <dl>
          <dt>action_timestamp_ms REQUIRED:</dt><dd>Unix epoch in milliseconds. The moment the Material Action completed. Distinct from captured_timestamp_ms and written_timestamp_ms. Also carried in the COSE protected header for chain verification without payload access.</dd>
          <dt>captured_timestamp_ms REQUIRED:</dt><dd>Unix epoch in milliseconds. When the capture pipeline recorded the action.</dd>
          <dt>written_timestamp_ms OPTIONAL:</dt><dd>Unix epoch in milliseconds. When the Transparency Service admitted the record. Null until admission.</dd>
        </dl>

        <t>Action Classification Fields:</t>
        <dl>
          <dt>action_type REQUIRED:</dt><dd>Classification of the Material Action. Values defined by this profile are listed in <xref target="action-type-classification"/>. Implementations MAY define additional values using a reverse-DNS namespace.</dd>
          <dt>action_subtype OPTIONAL:</dt><dd>Refinement of the action type. Implementation-defined.</dd>
        </dl>

        <t>Input and Outcome Fields:</t>
        <dl>
          <dt>input_hash REQUIRED:</dt><dd>SHA-256 hash of the raw input to the agent. Preserves evidence of input without storing the input itself.</dd>
          <dt>input_summary OPTIONAL:</dt><dd>Human-readable summary of the input, post-redaction.</dd>
          <dt>outcome_state REQUIRED:</dt><dd>Terminal state of the Material Action. MUST be one of: completed, failed, partially_completed, reversed, pending_confirmation.</dd>
          <dt>outcome_hash REQUIRED:</dt><dd>SHA-256 hash of the raw output.</dd>
          <dt>outcome_summary OPTIONAL:</dt><dd>Human-readable summary of the outcome, post-redaction.</dd>
          <dt>tool_calls REQUIRED:</dt><dd>Array of ToolCallRecord objects. Each records a single tool or API invocation: tool_id, tool_type, input_hash, output_hash, is_write, timestamp_ms. MAY be empty if no tools were invoked.</dd>
        </dl>

        <t>Reasoning Fields:</t>
        <dl>
          <dt>reasoning_hash OPTIONAL:</dt><dd>SHA-256 hash of the reasoning trace. Preserves evidence of reasoning without requiring the raw trace in the AIR.</dd>
        </dl>

        <t>Regulatory and Policy Fields:</t>
        <dl>
          <dt>jurisdiction REQUIRED:</dt><dd>ISO 3166-1 alpha-2 country code identifying the applicable jurisdiction.</dd>
          <dt>retention_class REQUIRED:</dt><dd>Retention period label: regulatory_7yr, regulatory_5yr, regulatory_3yr, operational_1yr, custom. These are informational classification labels.</dd>
          <dt>policy_refs REQUIRED:</dt><dd>Array of references to policies governing this action. MAY be empty.</dd>
          <dt>consumer_instructions OPTIONAL:</dt><dd>Principal-defined constraints for agentic commerce: price thresholds, merchant restrictions, product scope, recurrence limits.</dd>
        </dl>

        <t>Provenance and Correlation Fields:</t>
        <dl>
          <dt>external_refs REQUIRED:</dt><dd>Array of ExternalRef objects cross-referencing external systems (trade IDs, payment references). MAY be empty.</dd>
          <dt>parent_record_id OPTIONAL:</dt><dd>UUID of the parent AIR in a multi-step workflow. Enables causal chain reconstruction.</dd>
          <dt>workflow_id OPTIONAL:</dt><dd>Identifier for the broader workflow this action belongs to.</dd>
          <dt>trace_id OPTIONAL:</dt><dd>OpenTelemetry trace ID for observability correlation.</dd>
        </dl>

        <t>Privacy Fields:</t>
        <dl>
          <dt>redaction_receipts REQUIRED:</dt><dd>Array of RedactionReceipt objects attesting to redacted fields. MAY be empty.</dd>
        </dl>
      </section>

      <section anchor="identity-binding">
        <name>Identity Binding Levels</name>
        <t>Level 1 -- Minimum: agent_id and operator_id present. Signing
        key pre-registered and signature verifies.</t>
        <t>Level 2 -- Institutional: Level 1 plus auth_context present
        with valid scopes and non-expired token claims.</t>
        <t>Level 3 -- Delegation: Level 2 plus at least one resolvable
        Verifiable Credential in delegation_chain.</t>
      </section>

      <section anchor="integrity-envelope">
        <name>Integrity Envelope</name>
        <t>Every AIR is accompanied by integrity fields carried in the COSE
        protected header (see <xref target="cose-encoding"/>): content_hash (SHA-256 of
        the payload), prev_chain_hash (preceding record's chain
        hash), chain_hash, sequence_number (monotonically increasing,
        0-based), action_timestamp_ms, and agent_id. The protected header
        also carries the SCITT-mandated CWT Claims (iss and sub) and key
        identification (kid) as specified in <xref target="cose-encoding"/>.
        The COSE_Sign1
        signature covers the protected header and payload per
        <xref target="RFC9052"/> and is the fourth element of the COSE_Sign1
        array, not a field within the protected header.
        These fields are structurally separate from the payload,
        enabling full chain verification -- including identity and
        temporal ordering -- without payload access, and
        supporting payload redaction without breaking the chain.</t>
        <t>The chain_hash construction uses four inputs:
        SHA-256(content_hash || prev_chain_hash ||
        action_timestamp_ms || agent_id). This binds identity
        and temporal ordering into the chain at the cryptographic
        level: the chain_hash commits to who, when, and what without
        requiring payload access. Both agent_id and
        action_timestamp_ms are mandatory fields supplied by the
        upstream agent platform at capture time; the Registration
        Policy (<xref target="registration-policy"/>) MUST reject submissions missing either field.</t>
      </section>

      <section anchor="cose-encoding">
        <name>COSE Encoding</name>
        <t>AIRs are encoded as COSE_Sign1 structures <xref target="RFC9052"/> with algorithm
        ES256 (ECDSA with SHA-256 over P-256). The payload is the canonical
        JSON serialisation of the AIR (<xref target="RFC8785"/>), encoded as a CBOR byte
        string.</t>
        <t>The COSE protected header includes both SCITT-mandated parameters
        and profile-specific integrity fields. Per
        <xref target="RFC9943" section="6"/> and
        <xref target="RFC9597"/>, the protected header MUST include CWT Claims
        (COSE label 15) containing the Issuer claim (iss, claim label 1,
        as defined in <xref target="RFC8392"/>) set to the operator_id, and
        the Subject claim (sub, claim label 2) set to the agent_id. The
        protected header MUST also include key identification via kid
        (COSE label 4) set to the operator_pubkey_id. Implementations MAY
        use x5t or x5chain (<xref target="RFC9360"/>) as alternatives to
        kid when X.509 certificates are used.</t>
        <t>In addition, the protected header carries the profile-specific
        integrity fields: content_hash, prev_chain_hash, chain_hash,
        sequence_number, action_timestamp_ms, and agent_id.
        The agent_id value in the protected header is identical to the
        CWT Claims sub value; the protected header copy enables chain
        verification without CWT Claims parsing.
        The payload contains only the remaining AIR
        content fields. This separation
        allows the Transparency Service to validate chain
        integrity from the protected header without parsing
        the payload, and supports Selective Disclosure and
        payload redaction without breaking the chain.</t>
        <t>The profile-specific integrity fields use string labels in this
        revision for readability. A subsequent revision will propose
        integer label registration via IANA for these fields.</t>
      </section>

      <section anchor="hash-chain-construction">
        <name>Hash Chain Construction</name>
        <t>For sequence_number = 0: prev_chain_hash = 32 zero bytes.
        For all subsequent records: prev_chain_hash = chain_hash of preceding record.
        For every record:</t>
        <sourcecode type="pseudocode"><![CDATA[
content_hash = SHA-256(COSE_Sign1.payload)
chain_hash   = SHA-256(content_hash || prev_chain_hash ||
                       action_timestamp_ms || agent_id)
]]></sourcecode>
        <t>COSE_Sign1.payload is the raw byte string from the COSE
        structure's payload field -- the CBOR-encoded canonical JSON
        serialisation (RFC 8785) of the AIR content fields.</t>
        <t>The concatenation inputs are encoded as follows:</t>
        <dl>
          <dt>content_hash (32 bytes)</dt><dd>Raw SHA-256 digest bytes.</dd>
          <dt>prev_chain_hash (32 bytes)</dt><dd>Raw SHA-256 digest bytes. For the first record in a chain (sequence_number = 0), 32 zero bytes (0x00 * 32).</dd>
          <dt>action_timestamp_ms (8 bytes)</dt><dd>Unsigned 64-bit integer in big-endian (network) byte order.</dd>
          <dt>agent_id (4 + N bytes)</dt><dd>Length-prefixed UTF-8 string: a 4-byte big-endian unsigned 32-bit integer containing the byte length of the UTF-8 encoding, followed by the UTF-8 encoded bytes. No null terminator.</dd>
        </dl>
        <t>The total input to SHA-256 is exactly 76 + len(agent_id) bytes.
        This encoding is deterministic: two conforming implementations
        given the same field values MUST produce the same chain_hash.</t>
        <t>The Transparency Service MUST verify hash chain continuity before
        admitting each record.</t>

        <t>Concurrency and Serialisation:</t>
        <t>The hash chain construction requires sequential production of
        records within a single Evidence Chain. Because each record's
        chain_hash depends on the preceding record's chain_hash via
        prev_chain_hash, a conforming implementation cannot produce record
        N+1 until record N has been finalised and signed. This dependency
        provides a cryptographically enforced total ordering guarantee
        rather than an administratively asserted one.</t>
        <t>Evidence Chains are scoped per agent_id. Agents with distinct
        agent_id values operate independent chains with no cross-chain
        ordering dependency. Concurrent agent deployments do not contend
        with each other.</t>
        <t>Within a single agent_id, implementations MUST serialise record
        production. Two conforming patterns exist: (a) the Issuer's capture
        pipeline maintains a per-agent_id serialisation point (queue or
        mutex) and produces fully signed, sequenced records before
        submission to the Transparency Service; or (b) the Transparency
        Service assigns sequence numbers at admission time and returns
        chain_hash to the Issuer for use in the next record. Pattern (a)
        requires Issuer-side state but minimises round trips. Pattern (b)
        centralises ordering but introduces a synchronous dependency on the
        Transparency Service for each record.</t>
        <t>If an agent produces multiple Material Actions concurrently, the
        capture pipeline queues them and serialises into the chain in
        arrival order. Records MAY share the same action_timestamp_ms;
        the sequence_number provides the authoritative total ordering.</t>
      </section>

      <section anchor="verification-algorithm">
        <name>Verification Algorithm</name>
        <t>Four-step algorithm. Requires only the record, preceding chain_hash
        (or Evidence Receipt), and the Issuer's public key.</t>
        <ol>
          <li>Payload integrity. Compute SHA-256 of the COSE
          payload directly. Compare to content_hash in the
          COSE protected header. Mismatch = FAIL.</li>
          <li>Chain integrity. From the COSE protected header, extract
          content_hash, prev_chain_hash, action_timestamp_ms, and
          agent_id. Compute SHA-256(content_hash || prev_chain_hash ||
          action_timestamp_ms || agent_id) using the byte encoding
          defined in <xref target="hash-chain-construction"/>.
          Compare to chain_hash. Mismatch = FAIL.</li>
          <li>Signature validity. Verify the COSE_Sign1 signature
          per <xref target="RFC9052"/> using the operator's public key.
          Invalid = FAIL.</li>
          <li>Sequence completeness. Verify sequence_number is exactly
          one greater than the preceding record (or zero). Gap = FAIL.</li>
        </ol>
        <t>If all four steps pass: the record is VERIFIED -- intact, untampered,
        correctly positioned, and signed by the claimed Issuer.</t>
      </section>

      <section anchor="algorithm-agility">
        <name>Algorithm Agility</name>
        <t>This profile mandates ES256 (ECDSA with SHA-256 over P-256) as the
        mandatory-to-implement algorithm. Implementations SHOULD design for
        algorithm transition. The schema_version field in the AIR payload
        and the alg parameter in the COSE protected header together provide
        the mechanism for introducing new algorithms in future revisions
        without breaking existing chains.</t>
        <t>A chain MAY contain a key rotation record (action_type: key_rotation)
        that transitions to a new algorithm. Records before and after the
        transition point are verified with their respective algorithms as
        indicated by the alg parameter in each record's COSE protected header.
        Transparency Services MUST retain the prior public key and algorithm
        identifier to enable verification of pre-transition records.</t>
        <t>A future revision of this profile will specify post-quantum
        transition mechanisms, including ML-DSA (FIPS 204) as a candidate
        additional algorithm for Evidence Receipt signatures.</t>
      </section>
    </section>

    <section anchor="registration-policy">
      <name>Registration Policy</name>
      <t>A Transparency Service operating this profile MUST enforce the
      following policy. Records failing any requirement MUST be
      rejected.</t>
      <t>The Registration Policy and associated trust anchors MUST be
      registered as Signed Statements on the Transparency Service's
      verifiable data structure, per
      <xref target="RFC9943" section="5.1.1.1"/>.</t>
      <t>6.1. Schema Conformance: Valid COSE_Sign1 with ES256; protected
      header MUST include CWT Claims (label 15) with iss and sub per
      Section 6 of <xref target="RFC9943"/> and <xref target="RFC9597"/>, and key identification via kid, x5t, or
      x5chain; valid AIR per CDDL; schema_version "air-1.0"; all REQUIRED
      fields non-null; valid action_type.</t>
      <t>6.2. Identity Binding: Minimum Level 1. Services MAY require Level 2
      or 3 for specific categories.</t>
      <t>6.3. Temporal Ordering: action_timestamp_ms &lt;= captured_timestamp_ms;
      captured within 300s of submission; prev_chain_hash matches;
      sequence_number correct.</t>
      <t>6.4. Redaction Receipt Requirement: For regulated_data_access,
      regulated_data_export, payment_initiation, payment_execution, and
      credit_decision, at least one RedactionReceipt MUST be present.</t>
      <t>6.5. Error Semantics: A Transparency Service rejecting a submission
      MUST return an error response per <xref target="I-D.ietf-scitt-scrapi"/>.
      The response SHOULD carry a detail string identifying which of the
      above requirements (6.1 through 6.4) the submission failed to
      satisfy.</t>
    </section>

    <section anchor="evidence-receipt">
      <name>Evidence Receipt</name>
      <t>Upon successful admission, the Transparency Service issues an
      Evidence Receipt (COSE_Sign1 signed by the Service's own key)
      containing: record_id, chain_hash, sequence_number,
      admission_timestamp_ms, and Service operator identifier. The
      admission_timestamp_ms is assigned by the Transparency Service. The
      AIR existed no later than that time. The timestamps inside the AIR
      are asserted by the Issuer.</t>
      <t>The Evidence Receipt is the primary artefact presented in
      verification, audit, or legal proceedings.</t>
      <t>7.1. Verifiable Data Structure: This profile uses the hash chain
      defined in <xref target="hash-chain-construction"/> as its verifiable data structure. This
      revision does not define an inclusion proof in the sense of
      <xref target="RFC9942"/>. Instead, the Evidence Receipt attests
      the chain_hash, which binds the record to a position in the
      Evidence Chain.</t>
      <t>Evidence Receipts are intended to align with the COSE Receipts
      structure defined in <xref target="RFC9942"/>, with the verifiable
      data structure identifier carried in the protected header (COSE
      label 395) and the inclusion proof in the unprotected header (COSE
      label 396). The choice of registered verifiable data structure,
      and the resulting proof encoding, is deferred to a subsequent
      revision of this profile. Until then, the Evidence Receipt described
      in this section remains the receipt for this profile. Implementers
      are advised to retain the information needed to re-issue receipts
      in the RFC 9942 form once the structure is specified.</t>
      <t>7.2. Transparent Statement: Per
      <xref target="RFC9943" section="7"/>, a
      Transparent Statement is a Signed Statement with one or more
      Receipts embedded in the unprotected header (COSE label 394).
      <xref target="RFC9942"/> defines the value of that header parameter
      as an array of COSE Receipts. The Evidence Receipt described in this
      section is not yet in that form, and is therefore stored and
      presented as a standalone artefact, independent of the AIR. Once a
      subsequent revision specifies the Evidence Receipt as a COSE
      Receipt, it can be attached to the AIR to form a Transparent
      Statement.</t>
    </section>

    <section anchor="compliance-mapping">
      <name>Compliance Mapping</name>
      <t>The mappings in this section are informational and illustrative.
      They describe how properties of this profile may be relevant to
      specific regulatory frameworks. They do not constitute legal
      advice, regulatory interpretation, or a claim of compliance with
      any regulation. The frameworks listed below are representative
      examples; they do not form an exhaustive list of potentially
      applicable regulations.</t>

      <section><name>EU AI Act Articles 12 and 19</name>
        <t>AIRs provide properties relevant to Article 12 (record-keeping:
        automatic recording of events over the lifetime of a high-risk AI
        system) and to the retention of automatically generated logs by
        providers (Article 19) and by deployers (Article 26(6)). Annex
        III, point 5, classifies credit scoring and life/health insurance pricing AI as
        high-risk.</t>
      </section>

      <section><name>DORA (Regulation (EU) 2022/2554)</name>
        <t>DORA <xref target="DORA"/> sets requirements for ICT risk
        management, ICT-related incident reporting, and ICT third-party
        risk for financial entities. Article 30(3)(e) requires contracts
        for ICT services supporting critical or important functions to
        provide rights of access, inspection, and audit. Commission
        Delegated Regulation (EU) 2024/1774 <xref target="DORA-RTS"/>,
        which supplements DORA, requires in its Article 12 (Logging) that
        the logging procedures, protocols, and tools of financial entities
        include measures to protect logging systems and log information
        against tampering, deletion, and unauthorised access. AIRs provide
        records relevant to reconstructing ICT-related
        incidents.</t>
      </section>

      <section><name>NIST AI Risk Management Framework</name>
        <t>The framework organises outcomes under four functions: Govern,
        Map, Measure, and Manage. Issuer/Custodian separation and identity
        binding are relevant to accountability under Govern. Evidence
        Chains provide a tamper-evident record of the behaviour of a
        deployed system, relevant to Measure. Evidence Receipts support
        incident reconstruction, relevant to Manage.</t>
      </section>

      <section><name>US Financial Record-Keeping</name>
        <t>FINRA Rule 4511 <xref target="FINRA-4511"/> requires member firms to make and preserve
        books and records; SEC Rule 17a-4 <xref target="SEC-17a-4"/> prescribes retention
        periods (6yr/3yr) and electronic storage requirements.</t>
        <t>AIRs with action_type "trade_execution" provide independent execution
        records. The retention_class label "regulatory_7yr" covers both
        periods.</t>
      </section>

      <section><name>MAS AI Risk Management Guidelines (Singapore)</name>
        <t>MAS consulted on Guidelines on Artificial Intelligence Risk
        Management in November 2025 <xref target="MAS-AI-RM"/>; the
        consultation paper explicitly covers AI agents. MAS issued the
        final Guidelines in October 2026. In its response to the consultation
        <xref target="MAS-AI-RM-RESP"/>, MAS states that clear records should
        also be kept of post-deployment activities such as actions, decisions,
        recommendations, and outputs made by, or with the assistance of, AI,
        and that monitoring of agentic AI should extend, where relevant, to
        actions taken and tools used. AIRs are records of this kind.</t>
      </section>

      <section><name>PCI DSS</name>
        <t>Requirement 10 of PCI DSS v4.0.1 <xref target="PCI-DSS-4"/> covers logging and monitoring of all access to
        system components and cardholder data. The PCI SSC AI
        Principles (September 2025), which are guidance, discuss
        agentic AI systems that make payments on behalf of
        cardholders. A PCI SSC information supplement of September 2026
        <xref target="PCI-AI-SUPP"/>, which is guidance, recommends
        logging AI systems in enough detail to support investigation,
        attribution, and reconstruction of AI-assisted actions without
        storing account data, and says that logs of actions an AI system
        takes autonomously should not be removable. The supplement does
        not address the use of AI to perform payments.</t>
      </section>

      <section><name>MiFID II</name>
        <t>MiFID II <xref target="MIFID-II"/> Article 16(6), record-keeping;
        Regulation (EU) No 600/2014 (MiFIR) Article 25(1), five-year
        retention of order and transaction data; Delegated Regulation (EU)
        2017/565 Article 72, records retained in a form that cannot be
        manipulated or altered.</t>
      </section>
    </section>

    <section anchor="ees-relationship">
      <name>Relationship to the Evidence Envelope Specification</name>
      <t>The Evidence Envelope Specification (EES) is an open format
      specification for independently custodied AI agent execution
      records, defining the AIR schema, verification algorithm, and
      capture interface contract.</t>
      <t>This SCITT profile and the EES complement each other. The EES defines the
      canonical schema (JSON Schema), verification algorithm (pseudocode
      + reference implementation), and writer interface contract (IDL).
      This profile defines the SCITT binding: COSE encoding,
      Transparency Service submission, and the Evidence Receipt.</t>
      <t>The AgentInteractionRecord schema reproduced in <xref target="air-schema"/> is a
      conformant subset of the EES schema. The canonical definition,
      including the full field set and extensibility model, is
      maintained in the EES. Implementations of this profile do not
      require the EES; the AIR schema in <xref target="air-schema"/> is self-contained.
      The EES provides additional guidance for implementers building
      capture interfaces.</t>
      <t>The schema in <xref target="air-schema"/> is taken from EES v0.1
      <xref target="EES"/>.</t>
    </section>
    <section anchor="related-work">
      <name>Related Work</name>
      <t>Several individual Internet-Drafts profile
      <xref target="RFC9943"/> for AI agent actions or define adjacent
      record formats. This section positions the AgentInteractionRecord
      relative to each. All are individual submissions at the time of
      writing, and the comparisons below describe the published revisions
      cited.</t>
      <t>The documents differ along three axes: the lifecycle stage they
      record, the unit of record, and the custody model they assume.</t>
      <section anchor="related-lifecycle">
        <name>Lifecycle Stage</name>
        <t>Pre-execution profiles record an authorisation decision before
        the action is dispatched.
        <xref target="I-D.munoz-scitt-permit-profile"/> defines a Permit
        that binds an allow, deny, or challenge decision to the canonical
        bytes of the request subsequently dispatched, and
        <xref target="I-D.munoz-wimse-authorization-evidence"/> applies
        it to WIMSE-authorised agent actions.
        <xref target="I-D.nivalto-agentroa-route-authorization"/> binds
        an agent's authorised scope to a signed policy at session start
        and produces a receipt at each capability invocation.
        <xref target="I-D.rampalli-scitt-capsule-provenance-binding"/>
        binds per-action authorisation and memory-provenance records into
        the Agent Action Capsule described in
        <xref target="related-unit"/>.</t>
        <t>This profile records what was executed. It is complementary to
        pre-execution profiles: an AIR can carry a reference to a Permit
        or equivalent authorisation record in external_refs, so that a
        Relying Party can pair the authorisation record with the
        execution record for the same Material Action.
        <xref target="I-D.munoz-scitt-permit-profile"/> recommends that
        an Issuer emitting both records carry the Permit's identifier in
        parent_record_id and a reference to a paired Closure Record in
        external_refs. <xref target="key-field-definitions"/> defines
        parent_record_id as the identifier of a parent AIR, and
        external_refs as the field for references into other systems.
        This revision changes neither field. This profile does
        not define the authorisation record itself.</t>
      </section>
      <section anchor="related-unit">
        <name>Unit of Record</name>
        <t><xref target="I-D.mih-scitt-agent-action-capsule"/> defines the
        Agent Action Capsule, a digest-committed record of one agent action
        carrying a verdict-level disposition (executed, blocked, denied,
        errored, timed out), the constraints evaluated, and a
        confirmed-effect binding.
        <xref target="I-D.noa-scitt-ai-agent-receipt"/> defines an
        AI-agent action receipt as a signed, JCS-canonical JSON object,
        hash-chained for ordering, which can be carried in a COSE_Sign1 to
        form a Signed Statement.
        <xref target="I-D.sato-soos-gar"/> defines a Governance Audit
        Record, and <xref target="I-D.kamimura-scitt-refusal-events"/>
        records AI content refusal events.</t>
        <t>The unit of record in this profile is the Material Action
        (<xref target="material-action"/>): an action that transfers value,
        forms or modifies a contract, accesses regulated data, produces a
        consequential decision, or commits state to an external system.
        The AIR field set is designed for institutional Relying Parties who
        arrive after the fact: it carries jurisdiction, retention class,
        policy references, delegation chain, authorisation context at
        execution time, and redaction receipts that preserve a hash of
        each redacted field. The Capsule's disposition vocabulary
        includes blocked and denied actions; this profile's outcome_state
        has no corresponding values. The Capsule's constraint evaluation
        and confirmed-effect binding have no direct equivalent here. The
        two are distinct statement profiles. A
        deployment can record both a Capsule and an AIR for the same
        action and correlate them by trace_id or external_refs.</t>
      </section>
      <section anchor="related-custody">
        <name>Custody Model</name>
        <t>This profile is narrower on purpose than a general SCITT
        statement profile. It defines the Transparency Service as an
        Evidence Custodian independent of the Agent Operator
        (<xref target="transparency-service"/>). It treats that
        independence as a trust assumption:
        <xref target="security-considerations"/> states that if the same
        entity operates both roles, the tamper-evidence guarantees are
        void.</t>
      </section>
      <section anchor="related-offline">
        <name>Formats Verifiable Without a Transparency Service</name>
        <t>Several documents define record formats that are verifiable
        without a Transparency Service.
        <xref target="I-D.sahu-agent-action-receipts"/> specifies
        individually signed JSON action receipts linked into an
        append-only hash chain and verifiable offline from the records and
        the signer's public key.
        <xref target="I-D.sparysh-pala-audit"/> specifies PALA-1, a compact
        binary, hash-chained audit record format for constrained and
        disconnected deployments. Both describe registration of a chain
        head with a Transparency Service as optional.
        <xref target="I-D.izmaylov-agent-permission-receipts"/> defines a
        permission signed by a person, a receipt signed by the agent for
        each action, and a signed log head, all checked offline.
        <xref target="I-D.sabey-succession-receipts"/> defines a signed
        receipt for a completed transfer of authority between two
        agents.</t>
        <t>This profile addresses cases where registration with an
        independent Evidence Custodian is required. It does not
        define a binding from those formats to an Evidence Custodian.</t>
      </section>
      <section anchor="related-domain">
        <name>Domain Profiles</name>
        <t><xref target="VCP"/> profiles SCITT for algorithmic trading
        audit trails and <xref target="I-D.dawkins-scitt-ai-article50"/>
        for EU AI Act Article 50 transparency receipts. Both are
        domain-specific and can coexist with this profile: a
        trade_execution AIR and a VCP event describing the same trade are
        distinct Signed Statements that a Relying Party correlates through
        external_refs.</t>
      </section>
      <section anchor="related-audit">
        <name>Audit Architecture</name>
        <t><xref target="I-D.kuehlewind-audit-architecture"/> describes an
        architecture for auditing agent delegation and interactions. It
        sets out Interaction, Action, Delegation, and Authorization
        Transition records and an Auditing Service that is logically
        distinct from the parties it records, and it follows the SCITT
        architecture <xref target="RFC9943"/> so that the existence of a
        record cannot later be denied. This revision does not define a
        mapping of the AIR or of the Evidence Custodian role to that
        architecture.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section describes the threat model, trust assumptions, and
      required security controls for implementations of this profile.
      It supplements the security considerations in the SCITT
      architecture <xref target="RFC9943"/>.</t>

      <section><name>Threat Model</name>
        <t>This profile addresses the following threats:
        (a) Evidence fabrication, (b) Evidence suppression,
        (c) Evidence modification, (d) Timing manipulation.
        This profile does not address threats arising from compromise of
        the AI agent model itself (prompt injection, goal misalignment,
        adversarial inputs). It does not address an Issuer that records
        an action inaccurately or not at all
        (<xref target="capture-pipeline-compromise"/>).</t>
      </section>

      <section><name>Trust Assumptions</name>
        <t>(a) The Transparency Service (Evidence Custodian) is structurally
        independent of the Issuer (Agent Operator). If the same entity
        operates both roles, the tamper-evidence guarantees are void.
        (b) The Transparency Service is operationally honest.
        (c) The Issuer's signing key is not compromised at the time of signing.</t>
      </section>

      <section anchor="signing-key-management"><name>Signing Key Management</name>
        <t>Implementations MUST store signing keys in hardware security modules
        (HSMs) or equivalent tamper-resistant environments. Keys MUST be
        rotated at least annually.</t>
      </section>

      <section><name>Replay Attack Prevention</name>
        <t>The combination of sequence_number, prev_chain_hash, and
        captured_timestamp_ms prevents replay attacks.</t>
      </section>

      <section anchor="capture-pipeline-compromise"><name>Capture Pipeline Compromise</name>
        <t>If the capture pipeline is compromised, an attacker can
        fabricate or suppress AIRs before they are signed. This threat
        is mitigated by the Issuer's signing key being held in an HSM
        separate from the capture pipeline, and by the Transparency
        Service's Registration Policy validating temporal ordering
        and sequence completeness. A gap in sequence_number is
        evidence that a record was produced and not registered. An
        action that was never recorded leaves no gap.</t>
      </section>

      <section><name>Custodian Compromise</name>
        <t>If the Transparency Service itself is compromised, the attacker
        cannot forge Issuer signatures on existing AIRs or retroactively
        alter hash chain values without detection by any Relying Party
        holding a prior Evidence Receipt.</t>
      </section>

      <section><name>Append-Only Integrity</name>
        <t>Append-only integrity is enforced by both the hash chain structure
        and the Transparency Service operational policy. Neither alone is
        sufficient. Storage backends MUST implement write-once-read-many
        (WORM) semantics or equivalent immutability guarantees.</t>
      </section>

      <section><name>Collusion</name>
        <t>If the Issuer and the Transparency Service collude, they can
        jointly fabricate, suppress, or modify evidence without detection
        by Relying Parties who rely solely on receipts from the compromised
        Transparency Service. This is the fundamental limitation of any
        two-party evidence system.</t>
      </section>
    </section>

    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Access to Evidence Chains MUST be permissioned and purpose-limited.
      Checking chain integrity and sequence (steps 2 and 4 of
      <xref target="verification-algorithm"/>) does not require access to
      record content. Payload integrity and signature validation (steps 1
      and 3) do.
      Transparency Services SHOULD expose verification endpoints that do
      not expose payloads.</t>
      <t>The redaction receipt requirement in
      <xref target="registration-policy"/> is intended to keep raw PII out
      of signed records for action types involving regulated data or
      payment information. The content_hash
      covers the redacted form; the original_hash in the Redaction Receipt
      allows authorised parties to verify specific field values without
      the Transparency Service holding the raw data.</t>
      <t>Even without payload access, the COSE protected header exposes
      agent_id, action_timestamp_ms, and sequence_number. An observer
      with access to chain metadata can infer activity frequency, timing
      patterns, and action volume for a given agent deployment.
      Transparency Services SHOULD apply access controls to chain
      metadata with the same rigour as payload content.</t>
      <t>This profile does not define data subject access or erasure
      mechanisms. These are operational responsibilities of the
      Transparency Service operator and are outside the scope of this
      specification.</t>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. If this profile progresses beyond
      Informational status, the authors will propose an IANA registry
      for action_type values. A subsequent revision is expected to
      request integer labels for the profile-specific protected header
      parameters listed in <xref target="cose-encoding"/>, and any
      registration needed in the "COSE Verifiable Data Structure
      Algorithms" and "COSE Verifiable Data Structure Proofs" registries
      established by <xref target="RFC9942"/>.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>

      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front><title>Key words for use in RFCs to Indicate Requirement Levels</title><author initials="S." surname="Bradner"/><date year="1997" month="March"/></front>
          <seriesInfo name="BCP" value="14"/><seriesInfo name="RFC" value="2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front><title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title><author initials="B." surname="Leiba"/><date year="2017" month="May"/></front>
          <seriesInfo name="BCP" value="14"/><seriesInfo name="RFC" value="8174"/>
        </reference>
        <reference anchor="RFC8610">
          <front><title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title><author initials="H." surname="Birkholz"/><author initials="C." surname="Vigano"/><author initials="C." surname="Bormann"/><date year="2019" month="June"/></front>
          <seriesInfo name="RFC" value="8610"/>
        </reference>
        <reference anchor="RFC8785">
          <front><title>JSON Canonicalization Scheme (JCS)</title><author initials="A." surname="Rundgren"/><author initials="B." surname="Jordan"/><author initials="S." surname="Erdtman"/><date year="2020" month="June"/></front>
          <seriesInfo name="RFC" value="8785"/>
        </reference>
        <reference anchor="RFC9052">
          <front><title>CBOR Object Signing and Encryption (COSE): Structures and Process</title><author initials="J." surname="Schaad"/><date year="2022" month="August"/></front>
          <seriesInfo name="RFC" value="9052"/>
        </reference>
        <reference anchor="RFC9562">
          <front><title>Universally Unique IDentifiers (UUIDs)</title><author initials="K." surname="Davis"/><author initials="B." surname="Peabody"/><author initials="P." surname="Leach"/><date year="2024" month="May"/></front>
          <seriesInfo name="RFC" value="9562"/>
        </reference>
        <reference anchor="RFC8392">
          <front><title>CBOR Web Token (CWT)</title><author initials="M." surname="Jones"/><author initials="E." surname="Wahlstroem"/><author initials="S." surname="Erdtman"/><author initials="H." surname="Tschofenig"/><date year="2018" month="May"/></front>
          <seriesInfo name="RFC" value="8392"/>
        </reference>
        <reference anchor="RFC9597">
          <front><title>CBOR Web Token (CWT) Claims in COSE Headers</title><author initials="T." surname="Looker"/><author initials="M.B." surname="Jones"/><date year="2024" month="June"/></front>
          <seriesInfo name="RFC" value="9597"/>
        </reference>
        <reference anchor="RFC9360">
          <front><title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title><author initials="J." surname="Schaad"/><date year="2023" month="February"/></front>
          <seriesInfo name="RFC" value="9360"/>
        </reference>
        <reference anchor="RFC9943">
          <front><title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title><author initials="H." surname="Birkholz"/><author initials="A." surname="Delignat-Lavaud"/><author initials="C." surname="Fournet"/><author initials="Y." surname="Deshpande"/><author initials="S." surname="Lasker"/><date year="2026" month="June"/></front>
          <seriesInfo name="RFC" value="9943"/><seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
        <reference anchor="RFC9942">
          <front><title>CBOR Object Signing and Encryption (COSE) Receipts</title><author initials="O." surname="Steele"/><author initials="H." surname="Birkholz"/><author initials="A." surname="Delignat-Lavaud"/><author initials="C." surname="Fournet"/><date year="2026" month="June"/></front>
          <seriesInfo name="RFC" value="9942"/><seriesInfo name="DOI" value="10.17487/RFC9942"/>
        </reference>
        <reference anchor="I-D.ietf-scitt-scrapi">
          <front><title>Supply Chain Integrity, Transparency, and Trust (SCITT) Reference APIs</title><author initials="H." surname="Birkholz"/><author initials="J." surname="Geater"/><author initials="A." surname="Delignat-Lavaud"/><date year="2026" month="June" day="26"/></front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-scrapi-11"/>
        </reference>
      </references>

      <references>
        <name>Informative References</name>
        <reference anchor="FINRA-4511">
          <front><title>General Requirements</title><author><organization>FINRA</organization></author><date/></front>
          <seriesInfo name="FINRA Rule" value="4511"/>
        </reference>
        <reference anchor="SEC-17a-4">
          <front><title>Records to be preserved by certain exchange members, brokers and dealers</title><author><organization>SEC</organization></author><date/></front>
          <seriesInfo name="17 CFR" value="240.17a-4"/>
        </reference>
        <reference anchor="DORA">
          <front><title>Digital Operational Resilience Act</title><author><organization>European Parliament and Council</organization></author><date year="2022"/></front>
          <seriesInfo name="Regulation (EU)" value="2022/2554"/>
        </reference>
        <reference anchor="DORA-RTS">
          <front><title>Regulatory technical standards specifying ICT risk management tools, methods, processes, and policies and the simplified ICT risk management framework</title><author><organization>European Commission</organization></author><date year="2024" month="March" day="13"/></front>
          <seriesInfo name="Commission Delegated Regulation (EU)" value="2024/1774"/>
        </reference>
        <reference anchor="MAS-AI-RM-RESP">
          <front><title>Response to Feedback Received on Guidelines on Artificial Intelligence Risk Management</title><author><organization>Monetary Authority of Singapore</organization></author><date year="2026" month="October" day="7"/></front>
          <refcontent>P017-2025</refcontent>
        </reference>
        <reference anchor="MAS-AI-RM">
          <front><title>Consultation Paper on Guidelines on Artificial Intelligence Risk Management</title><author><organization>Monetary Authority of Singapore</organization></author><date year="2025" month="November"/></front>
        </reference>
        <reference anchor="PCI-DSS-4">
          <front><title>Payment Card Industry Data Security Standard v4.0.1</title><author><organization>PCI SSC</organization></author><date year="2024" month="June"/></front>
        </reference>
        <reference anchor="PCI-AI-SUPP">
          <front><title>Information Supplement: Security Considerations for AI Systems</title><author><organization>PCI SSC</organization></author><date year="2026" month="September"/></front>
          <refcontent>Version 1.0</refcontent>
        </reference>
        <reference anchor="MIFID-II">
          <front><title>Markets in Financial Instruments Directive</title><author><organization>European Parliament and Council</organization></author><date year="2014"/></front>
          <seriesInfo name="Directive" value="2014/65/EU"/>
        </reference>
        <reference anchor="EES">
          <front><title>Evidence Envelope Specification v0.1</title><author><organization>Veridic Inc.</organization></author><date year="2026"/></front>
          <seriesInfo name="URL" value="https://theveridic.github.io/VERIDIC/standards/ees/v0.1"/>
        </reference>
        <reference anchor="SPIFFE">
          <front><title>Secure Production Identity Framework for Everyone</title><author><organization>SPIFFE Project</organization></author><date year="2024"/></front>
        </reference>
        <reference anchor="VCP">
          <front><title>A SCITT Profile for Verifiable Audit Trails in Algorithmic Trading: The VeritasChain Protocol (VCP)</title><author initials="T." surname="Kamimura"/><date year="2026" month="July"/></front>
          <seriesInfo name="Internet-Draft" value="draft-kamimura-scitt-vcp-03"/>
        </reference>
        <reference anchor="GRIGG-2005" target="https://iang.org/papers/triple_entry.html">
          <front><title>Triple Entry Accounting</title><author initials="I." surname="Grigg"/><date year="2005"/></front>
          <refcontent>Systemics, Inc.</refcontent>
        </reference>
        <reference anchor="I-D.mih-scitt-agent-action-capsule">
          <front><title>An Agent Action Capsule Profile for SCITT</title><author initials="S." surname="Mih"/><date year="2026" month="September" day="26"/></front>
          <seriesInfo name="Internet-Draft" value="draft-mih-scitt-agent-action-capsule-05"/>
        </reference>
        <reference anchor="I-D.munoz-scitt-permit-profile">
          <front><title>A SCITT Profile for Pre-Execution AI Action Authorization Records</title><author initials="C." surname="Munoz"/><date year="2026" month="July" day="18"/></front>
          <seriesInfo name="Internet-Draft" value="draft-munoz-scitt-permit-profile-01"/>
        </reference>
        <reference anchor="I-D.munoz-wimse-authorization-evidence">
          <front><title>Signed Authorization-Evidence Records for WIMSE-Authorized AI Agent Actions</title><author initials="C." surname="Munoz"/><date year="2026" month="July" day="18"/></front>
          <seriesInfo name="Internet-Draft" value="draft-munoz-wimse-authorization-evidence-01"/>
        </reference>
        <reference anchor="I-D.nivalto-agentroa-route-authorization">
          <front><title>Agent Route Origin Authorization (AgentROA): A Cryptographic Policy Enforcement Framework for AI Agent Actions</title><author initials="J." surname="Michalak"/><date year="2026" month="April" day="16"/></front>
          <seriesInfo name="Internet-Draft" value="draft-nivalto-agentroa-route-authorization-01"/>
        </reference>
        <reference anchor="I-D.rampalli-scitt-capsule-provenance-binding">
          <front><title>Binding Per-Action Authorization and Memory Provenance into Agent Action Capsules</title><author initials="K." surname="Rampalli"/><date year="2026" month="July"/></front>
          <seriesInfo name="Internet-Draft" value="draft-rampalli-scitt-capsule-provenance-binding-00"/>
        </reference>
        <reference anchor="I-D.noa-scitt-ai-agent-receipt">
          <front><title>A SCITT Profile for AI-Agent Action Receipts</title><author initials="T." surname="Toraman"/><date year="2026" month="August" day="15"/></front>
          <seriesInfo name="Internet-Draft" value="draft-noa-scitt-ai-agent-receipt-01"/>
        </reference>
        <reference anchor="I-D.sato-soos-gar">
          <front><title>The Governance Audit Record (GAR) for Agentic AI Systems</title><author initials="T." surname="Sato"/><date year="2026" month="September" day="7"/></front>
          <seriesInfo name="Internet-Draft" value="draft-sato-soos-gar-08"/>
        </reference>
        <reference anchor="I-D.kamimura-scitt-refusal-events">
          <front><title>Verifiable AI Refusal Events using SCITT</title><author initials="T." surname="Kamimura"/><date year="2026" month="August" day="2"/></front>
          <seriesInfo name="Internet-Draft" value="draft-kamimura-scitt-refusal-events-03"/>
        </reference>
        <reference anchor="I-D.dawkins-scitt-ai-article50">
          <front><title>A SCITT Profile for EU AI Act Article 50 Transparency Receipts</title><author initials="V. S." surname="Dawkins"/><date year="2026" month="May"/></front>
          <seriesInfo name="Internet-Draft" value="draft-dawkins-scitt-ai-article50-00"/>
        </reference>
        <reference anchor="I-D.kuehlewind-audit-architecture">
          <front><title>An Architecture for Auditing Agent Delegation and Interactions</title><author initials="M." surname="Kuehlewind"/><author initials="H." surname="Birkholz"/><date year="2026" month="September" day="7"/></front>
          <seriesInfo name="Internet-Draft" value="draft-kuehlewind-audit-architecture-01"/>
        </reference>
        <reference anchor="I-D.sahu-agent-action-receipts">
          <front><title>Signed, Hash-Chained Action Receipts for AI Agents</title><author initials="N." surname="Sahu"/><date year="2026" month="August" day="16"/></front>
          <seriesInfo name="Internet-Draft" value="draft-sahu-agent-action-receipts-00"/>
        </reference>
        <reference anchor="I-D.sparysh-pala-audit">
          <front><title>PALA-1: A Tamper-Evident Audit Record Format for Constrained and Disconnected Deployments</title><author initials="A." surname="Sparysh"/><author initials="O." surname="Verteletskyi"/><date year="2026" month="October" day="2"/></front>
          <seriesInfo name="Internet-Draft" value="draft-sparysh-pala-audit-01"/>
        </reference>
        <reference anchor="I-D.izmaylov-agent-permission-receipts">
          <front><title>Signed Permissions and Action Receipts for Automated Agents</title><author initials="P." surname="Izmaylov"/><date year="2026" month="October" day="6"/></front>
          <seriesInfo name="Internet-Draft" value="draft-izmaylov-agent-permission-receipts-00"/>
        </reference>
        <reference anchor="I-D.sabey-succession-receipts">
          <front><title>Succession Receipts: Portable Signed Evidence of Authority Succession Between Autonomous Agents</title><author initials="J." surname="Sabey"/><date year="2026" month="September" day="23"/></front>
          <seriesInfo name="Internet-Draft" value="draft-sabey-succession-receipts-05"/>
        </reference>
      </references>
    </references>

    <section anchor="changes" removeInRFC="true">
      <name>Changes from -00</name>
      <t>This is a maintenance revision. It updates references, positions
      the profile against related drafts, narrows several statements to
      what the mechanisms deliver, and records deferred items. It
      makes no change to the AIR schema, the hash chain construction, the
      verification algorithm, or the admission requirements of the
      Registration Policy. No field of the AIR schema is renamed, retyped,
      or removed, and no normative requirement is added. Three
      recommendations are withdrawn, as listed below.</t>
      <ul>
        <li>Normative references updated: draft-ietf-scitt-architecture-22 replaced by RFC 9943; draft-ietf-cose-merkle-tree-proofs-18 replaced by RFC 9942; draft-ietf-scitt-scrapi pinned to -11, which is in the RFC Editor queue.</li>
        <li>Pointers into RFC 9943 checked against the published text. The CWT Claims requirement is now cited to Section 6 of RFC 9943, and the requirement that Registration Policies be made transparent to Section 5.1.1.1 of RFC 9943. The Scope list cites RFC 9942 for the COSE Receipt format.</li>
        <li>The Verifiable Data Structure paragraph of <xref target="evidence-receipt"/> now references the RFC 9942 COSE Receipts structure (labels 395 and 396). The statement in -00 that a subsequent revision will register the hash chain as a verifiable data structure is replaced by a statement that the choice of registered structure is deferred. The statement that the hash chain provides the same structural guarantee as a Merkle tree inclusion proof is removed, and the statement that the chain_hash serves as the inclusion proof is replaced by a statement that this revision does not define an inclusion proof in the sense of RFC 9942. The paragraph also advises implementers to retain the information needed to re-issue receipts in the RFC 9942 form.</li>
        <li>The recommendation to attach the Evidence Receipt to the AIR under COSE header parameter 394 is withdrawn until the Evidence Receipt is specified as a COSE Receipt (RFC 9942). Until then, the Evidence Receipt is presented as a standalone artefact, which -00 permitted as an alternative. <xref target="relationship-to-scitt"/> states the same gap, and the definition in <xref target="terminology"/> and the summary in <xref target="ees-relationship"/> no longer describe the Evidence Receipt as a SCITT Receipt. Table 1 now points to <xref target="evidence-receipt"/> for the Evidence Receipt.</li>
        <li>The error type URN recommended in the error semantics of <xref target="registration-policy"/> is withdrawn. It does not appear in draft-ietf-scitt-scrapi-11.</li>
        <li>The recommendation in <xref target="ees-relationship"/> to reference EES v0.1 is withdrawn and replaced by a statement that the schema in this document is taken from it. That section already states that implementations do not require the EES. Its pointer to the VCP profile is removed; that profile is covered in <xref target="related-domain"/>.</li>
        <li><xref target="compliance-mapping"/> corrected: the EU AI Act and DORA descriptions and article pointers, the status of the MAS Guidelines, the PCI DSS version and date, and the MiFID II and MiFIR pointers. NIST AI RMF subcategory numbers are removed and the mapping is restated at the level of the framework's functions. The retention_class sentence in the US record-keeping mapping is restated as a description. A statement about demand for custody is removed from the EU AI Act mapping, the MAS mapping now cites the MAS response to its consultation, the DORA mapping now cites the logging provision of Commission Delegated Regulation (EU) 2024/1774, and the PCI DSS mapping is restated in the terms of Requirement 10 and of the PCI SSC guidance and now cites the PCI SSC information supplement on AI systems of September 2026.</li>
        <li>Statements narrowed to what the mechanisms deliver. <xref target="relationship-to-scitt"/> states that this revision does not yet define the proofs on which non-equivocation rests. <xref target="integrity-envelope"/> says that the chain_hash, not a receipt, commits to who, when, and what. <xref target="security-considerations"/> says that a sequence gap shows a record that was produced and not registered, and that an action never recorded leaves no gap. <xref target="privacy-considerations"/> says that the chain checks, not the full algorithm, work without record content, and describes the redaction receipt requirement as intended to keep raw PII out of signed records. <xref target="security-considerations"/> also says that an Issuer that records an action inaccurately or not at all is outside the threats addressed, and <xref target="evidence-receipt"/> says that the admission timestamp is assigned by the Transparency Service and that the timestamps inside the AIR are asserted by the Issuer.</li>
        <li>New <xref target="related-work"/> positioning the AgentInteractionRecord against the Agent Action Capsule, Permit, WIMSE authorisation evidence, AgentROA, capsule provenance binding, AI-agent action receipt, GAR, refusal event, VCP, and Article 50 profiles, against four record formats that are verifiable without a Transparency Service, and against the audit architecture of draft-kuehlewind-audit-architecture. The section is informative. Later sections are renumbered.</li>
        <li>The second sentence of <xref target="post-execution-evidence-problem"/> is restated as what a Relying Party needs to be able to establish without relying on the agent operator, in place of the properties listed in -00, among them completeness. The section now cites the triple-entry accounting model (Grigg 2005), on which the requirement for third-party-held signed records draws, states that an action without a signed record is outside what can be externally verified, and states that this profile does not establish that a record is accurate.</li>
        <li><xref target="iana-considerations"/> expanded to list the registrations a subsequent revision is expected to request.</li>
        <li>The VCP reference is updated to its current revision.</li>
        <li>Editorial corrections, including reference titles and the capitalisation of the organisation name, and wording changes that do not alter meaning. The note naming a discussion list is removed.</li>
        <li>Daniel Feichtinger joins as an author.</li>
      </ul>
      <t>The record encoding, the mechanism for selective disclosure of
      record fields, the representation of lineage between records, and
      the verifiable data structure used for Evidence Receipts are under
      revision. A subsequent
      revision may change them. This revision changes none of them.</t>
      <t>Deferred to a subsequent revision:</t>
      <ul>
        <li>Registered verifiable data structure and COSE Receipts proof encoding for Evidence Receipts (<xref target="evidence-receipt"/>).</li>
        <li>Integer label registration for the profile-specific protected header parameters (<xref target="cose-encoding"/>).</li>
        <li>Post-quantum transition, including ML-DSA as a candidate additional algorithm (<xref target="algorithm-agility"/>).</li>
        <li>Key compromise recovery semantics distinguishing compromise from retirement (<xref target="signing-key-management"/>).</li>
        <li>Worked examples in CBOR Extended Diagnostic Notation.</li>
      </ul>
    </section>
  </back>
</rfc>
