<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 4.0.5) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mih-agent-evidence-layer-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Evidence Layer">Evidence Layer</title>
    <seriesInfo name="Internet-Draft" value="draft-mih-agent-evidence-layer-00"/>
    <author initials="S." surname="Mih" fullname="Steven Mih">
      <organization>Action State Group, Inc.</organization>
      <address>
        <email>spec@actionstate.ai</email>
      </address>
    </author>
    <date year="2026" month="October" day="03"/>
    <area>Security</area>
    <keyword>evidence</keyword>
    <keyword>transparency</keyword>
    <keyword>audit</keyword>
    <keyword>local store</keyword>
    <abstract>
      <?line 92?>

<t>This document defines the evidence layer: the conformance requirements for
a local evidence store that records evidence and the relationships between
records, keeps digests committed while payloads are separately referenced,
and preserves how each record came to be known well enough that a later
reader can tell an observation from a claim. This document defines the
record model, typed links between records, disclosure and retention
semantics, the three classes of index a store may maintain, and the minimum
interface any commitment substrate must supply for a store to conform to
this layer. It exists so that a request for evidence can be answered
honestly from what a store actually holds, and so that an evidence bundle
assembled in response is assembled from committed material rather than
assembled and then made to look committed. Conformance to this layer <bcp14>MUST
NOT</bcp14> require any particular implementation or commitment substrate: a
Checkpointed Local Log is one conforming profile; registration with a SCITT
Transparency Service is another; any other append-only transparency log, or
an implementer's own authenticated log, also qualifies. This document defines
neither evidence sufficiency policy, request routing, settlement, nor any
specific host-identity, signing, payload-storage, or replication mechanism.</t>
    </abstract>
  </front>
  <middle>
    <?line 113?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A request for evidence (<xref target="I-D.mih-agent-evidence-request"/>) says how to ask.
An evidence bundle (<xref target="I-D.mih-zhang-agent-disclosure-bundle"/>)
says what a granting answer looks like. Neither says what a responder must
have held, and preserved, beforehand for that answer to be honest rather
than assembled to order. A responder that can produce a byte-identical
artifact for any requester, refuse with a citable reason, or truthfully
report that it has nothing needs a local substrate with specific properties:
records that do not change meaning after the fact, a place to say how one
record relates to another without editing either, and a way to distinguish
"I have never had this" from "I once had this and no longer do" from "I have
this and will not show you."</t>
      <t>This document names that substrate an <strong>evidence store</strong>, defines the
<strong>evidence layer</strong> a store must conform to, and states nothing about how a
store is implemented beyond that. Conformance to the evidence layer <bcp14>MUST
NOT</bcp14> require any particular implementation or commitment substrate: a
Checkpointed Local Log (<xref target="I-D.mih-scitt-checkpointed-local-log"/>) is one
mechanism satisfying the interface in <xref target="substrate"/>; registration with a
SCITT Transparency Service <xref target="RFC9943"/> is another; any other append-only
transparency log, or an implementer's own authenticated log, also qualifies.</t>
    </section>
    <section anchor="nongoals">
      <name>Non-Goals</name>
      <t>This document deliberately does not define:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Evidence sufficiency, requirements, or verdicts.</strong> Whether a set of
records satisfies a requirement, and what a contract requires in the
first place, is a policy layer that consumes what a store can produce. It
is out of scope here.</t>
        </li>
        <li>
          <t><strong>Request routing or transport policy.</strong> How a request reaches a store,
and what a store's operator decides to answer, are deployment and policy
questions this document does not reach.</t>
        </li>
        <li>
          <t><strong>Settlement.</strong> Any obligation, payment, or remedy that follows from a
recorded fact is outside this document; a store records that something is
true of its own history, never what should happen as a result. Records
of a settlement, such as those of <xref target="I-D.mih-agent-settlement-records"/>,
are ordinary records to a store.</t>
        </li>
        <li>
          <t><strong>A host-identity scheme.</strong> What a <tt>principal_ref</tt> (<xref target="record"/>) names,
and how a party's key relates to any role or standing, is host- or
deployment-defined. This document states only what a <tt>principal_ref</tt>
cannot be taken to mean (<xref target="security"/>).</t>
        </li>
        <li>
          <t><strong>A signing, payload-storage, or replication mechanism.</strong> How a record or
a checkpoint is signed, how payload bytes are stored and retrieved by
digest, and how records travel between stores, delivery intermediaries,
or fleets are implementation seams a host plugs in beneath a conforming store. This
document does not define any of the three, and a store's conformance to
this document does not depend on which implementation of any of them it
uses.</t>
        </li>
      </ul>
    </section>
    <section anchor="terms">
      <name>Conventions and Definitions</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?>

<t><strong>Evidence layer:</strong> the conformance requirements this document defines for a
local evidence store — the record model, typed links, disclosure and
retention semantics, the index classes, and the commitment-substrate
interface. Conformance to the evidence layer <bcp14>MUST NOT</bcp14> require any
particular implementation or commitment substrate.</t>
      <t><strong>Evidence store (a "store"):</strong> a local store that conforms to the evidence
layer: it records evidence and typed links between records (<xref target="links"/>),
keeps a durable, append-ordered commitment to what it has recorded, and can
answer a request against that commitment. The subject of this document.</t>
      <t><strong>Record:</strong> one committed entry in a store: a header (<xref target="record"/>) and,
optionally, digests referencing payload bytes held or resolved separately
(<xref target="retention"/>). A record <bcp14>MAY</bcp14> be an Agent Action Capsule
<xref target="I-D.mih-scitt-agent-action-capsule"/>; this document does not require it.</t>
      <t><strong>Digest:</strong> unless a deployment's evidence format states otherwise, the
lowercase-hexadecimal SHA-256 digest of a value's canonical form — for a
JSON <xref target="RFC8259"/> value, <tt>UTF8(JCS(value))</tt> per <xref target="RFC8785"/>.</t>
      <t><strong>Link:</strong> a typed, directed reference from one record to another, itself
part of a committed record and never a mutation of either record it
relates (<xref target="links"/>).</t>
      <t><strong>Commitment substrate:</strong> the mechanism a store uses to assign append order
to records and to produce checkpoints against which inclusion and
consistency are checkable by a party other than the store (<xref target="substrate"/>).</t>
      <t><strong>Checkpoint:</strong> a value, produced by the commitment substrate, naming one
committed state of a store's history at one point in time.</t>
      <t><strong>Epistemic type:</strong> a closed value naming how a record's content came to be
known or asserted, preserved end to end regardless of what is later signed
or checkpointed about the record (<xref target="record"/>).</t>
      <t><strong>Retention state:</strong> a value naming whether, and how, a record's payload
can currently be resolved to bytes (<xref target="retention"/>).</t>
      <t><strong>Transparency Service, Registration Policy, Receipt:</strong> as defined in
<xref target="RFC9943"/>. A Receipt <xref target="RFC9942"/> proves that a statement is included in a
Transparency Service's log. It proves nothing else: not consistency between
two states of that log, and not that the statement is true.</t>
      <t><strong>Witness:</strong> a party other than the store that receives the store's
checkpoints and checks that each one extends the previous one it saw. A
Transparency Service whose Registration Policy admits a checkpoint only when
it is consistent with the previously registered one is one kind of witness.
"Witness" is not a term defined by <xref target="RFC9943"/>.</t>
      <t><strong>Countersignature:</strong> a signature over a record, or over a set of records,
by a party other than its producer, made after that party independently
recomputed named checks, in the manner of an Auditor <xref target="RFC9943"/>. It is not a
Receipt and not a Transparency Service function.</t>
      <t><strong>Self-attested:</strong> signed only by the record's own producer, with neither a
witness nor a countersignature.</t>
    </section>
    <section anchor="record">
      <name>The Record Model</name>
      <t>A record's durable header carries at least:</t>
      <artwork><![CDATA[
record:
  seq: <substrate-assigned append position>
  record_id: <content-derived or profile-assigned identifier>
  record_type: <open token, e.g. "observation", "claim", "close">
  epistemic_type: <one of the eight values below>
  committed_at: <time this store committed the record>
  event_time_claim: <claimed time of the underlying event, if any>
  payload_commitments: [ <digest>, ... ]
  retention_state: <AVAILABLE|PARTIAL|WITHHELD|DELETED|LEGAL_HOLD>
  links: [ { type: <link type>, target: <digest> }, ... ]
  subject_ref: <opaque correlation identifier>
  principal_ref: <opaque identifier, scheme host-defined>
]]></artwork>
      <t><tt>seq</tt>, <tt>record_id</tt>, <tt>record_type</tt>, and <tt>epistemic_type</tt> are <bcp14>REQUIRED</bcp14>.
<tt>retention_state</tt> is <bcp14>REQUIRED</bcp14> whenever <tt>payload_commitments</tt> is present.
<tt>links</tt> is <bcp14>REQUIRED</bcp14> to be present, possibly empty, on any record that
carries no separate representation of its typed links. All other fields
are <bcp14>OPTIONAL</bcp14>. A profile or deployment <bcp14>MAY</bcp14> add further header fields; this
document takes no position on their semantics, except that no additional
field may change the meaning of <tt>record_id</tt>, <tt>epistemic_type</tt>,
<tt>retention_state</tt>, or any committed link once the record exists.</t>
      <t><tt>record_type</tt> is an open, deployment-extensible token describing what kind
of thing a record is. <tt>epistemic_type</tt> is closed and is this document's
central classification: it states how the record's content came to be
known, independent of what the record is about.</t>
      <t><tt>principal_ref</tt> is an opaque reference; the scheme that gives it meaning is
host-defined and out of scope here (<xref target="nongoals"/>, <xref target="security"/>).
<tt>committed_at</tt> is this store's own local time of commitment and is never a
substitute for <tt>event_time_claim</tt>, which is itself only a claim: nothing in
this document verifies that an <tt>event_time_claim</tt> is accurate.</t>
      <section anchor="epistemic-type">
        <name>Epistemic Type</name>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>observed_event</tt></td>
              <td align="left">directly observed by the recording system or actor</td>
            </tr>
            <tr>
              <td align="left">
                <tt>system_of_record_fact</tt></td>
              <td align="left">asserted by an external system of record</td>
            </tr>
            <tr>
              <td align="left">
                <tt>producer_claim</tt></td>
              <td align="left">asserted by the record's own producer, unverified by the store</td>
            </tr>
            <tr>
              <td align="left">
                <tt>human_report</tt></td>
              <td align="left">asserted by a human, not machine-observed</td>
            </tr>
            <tr>
              <td align="left">
                <tt>semantic_judgment</tt></td>
              <td align="left">a judgment or classification reached by interpretation, not direct observation</td>
            </tr>
            <tr>
              <td align="left">
                <tt>derived_metric</tt></td>
              <td align="left">a value computed or aggregated from other records</td>
            </tr>
            <tr>
              <td align="left">
                <tt>adjudication</tt></td>
              <td align="left">a ruling on a matter that was disputed or required judgment</td>
            </tr>
            <tr>
              <td align="left">
                <tt>obligation_reference</tt></td>
              <td align="left">a reference to an obligation the record does not itself discharge</td>
            </tr>
          </tbody>
        </table>
        <t><strong><tt>epistemic_type</tt> is assigned once, at commit, and is never upgraded.</strong> No
signature, checkpoint, Receipt, witnessing, or countersignature attached to
a record after it is committed changes what kind of statement it was when it
was made, and neither does the assurance a record later reaches
(self-attested, witnessed, or countersigned). Those attach to a record;
they attest to who signed it and when it was committed. They do not attest
to how its content was known, which is what <tt>epistemic_type</tt> alone states.
A record misclassified at commit is corrected only by a later record
(<xref target="retention"/>); the original's <tt>epistemic_type</tt> does not change.</t>
        <t>The registry for this value set is established in <xref target="iana"/>.</t>
      </section>
    </section>
    <section anchor="links">
      <name>Typed Links</name>
      <t>A link is a typed, directed reference from a record to a target record,
identified by the target's digest:</t>
      <artwork><![CDATA[
link:
  type: cites|adjudicates|supersedes|acknowledges|rebuts|closes
  target: <digest of the target record>
]]></artwork>
      <t><strong>A link is itself part of a committed record and <bcp14>MUST NOT</bcp14> mutate its
target.</strong> The target's own header and commitment stand unchanged; a link
adds a new, separately committed fact about a relationship between two
records. Multiple links, of the same or different types, <bcp14>MAY</bcp14> name the same
target. A link's carrying record has whatever <tt>epistemic_type</tt>
(<xref target="epistemic-type"/>) accurately describes what asserting the link is; a
record carrying an <tt>adjudicates</tt> link <bcp14>MUST</bcp14> have <tt>epistemic_type</tt>
        <tt>adjudication</tt>.</t>
      <t>The six link types are:</t>
      <t><strong><tt>cites</tt>:</strong> the carrying record's claim depends on, or is intelligible
only with reference to, the target's committed content. A <tt>cites</tt> link
lifts nothing about the target beyond the target's own committed claim: it
does not inherit whatever the target record itself cites, and a reader
that wants to know what the target's own citations say must resolve them
independently.</t>
      <t><strong><tt>adjudicates</tt>:</strong> the carrying record — necessarily <tt>epistemic_type</tt>
        <tt>adjudication</tt> — renders a judgment about the target's claim. The judgment
covers exactly the target's own committed claim. It does not extend to
claims made inside records the target itself cites; a citing record's
adjudication is not an adjudication of what is cited two hops away.</t>
      <t><strong><tt>supersedes</tt>:</strong> the carrying record replaces the target's content for
current use, without mutating the target. The target's original commitment
stands as part of the store's history; <tt>supersedes</tt> is how a store represents
a correction as a new fact rather than an edit (<xref target="retention"/>).</t>
      <t><strong><tt>acknowledges</tt>:</strong> the carrying record states that its author has seen and
holds the target — establishing receipt, not agreement.</t>
      <t><strong><tt>rebuts</tt>:</strong> the carrying record disputes the target's claim.</t>
      <t><strong><tt>closes</tt>:</strong> the carrying record — a Close record (<xref target="reconcile"/>) — binds a
stated range or set of records as reconciled.</t>
      <t>A link type is closed vocabulary, registered in <xref target="iana"/>. A deployment that
needs a relationship this list does not name registers a new link type; it
<bcp14>MUST NOT</bcp14> overload an existing token to mean something else for some of its
records.</t>
      <t>These link types relate records of an evidence store. They are distinct
from the <tt>chain.relation</tt> and <tt>citation_purpose</tt> vocabularies of
<xref target="I-D.mih-scitt-agent-action-capsule"/>, which govern fields inside a
Capsule. The token <tt>supersedes</tt> appears in both this registry and
<tt>chain.relation</tt>; the two are separate registrations, and neither defines
the other. When a store's records are Capsules, how each link type is
carried in a Capsule's fields is not defined by this revision.</t>
    </section>
    <section anchor="retention">
      <name>Record/Payload Separation, Retention, and Disclosure</name>
      <t>A record's commitment — its presence in the store's committed history, its
<tt>record_id</tt>, its digest — is permanent once committed and is never mutated.
Payload bytes are a separate, possibly-absent resource that
<tt>payload_commitments</tt> point at by digest; a store's durable header commits
to digests, never to storage locations, and losing or withholding payload
bytes never un-commits the record that referenced them.</t>
      <t>A correction to a record's content is represented by a later record
carrying a <tt>supersedes</tt> link (<xref target="links"/>), or, where the change is to
availability rather than content, by a lifecycle record changing
<tt>retention_state</tt>. Neither ever rewrites what was already committed.</t>
      <section anchor="retention-states">
        <name>Retention States</name>
        <table>
          <thead>
            <tr>
              <th align="left">retention_state</th>
              <th align="left">Meaning</th>
              <th align="left">Resolving the payload</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>AVAILABLE</tt></td>
              <td align="left">the payload can be resolved under current policy</td>
              <td align="left">returns bytes</td>
            </tr>
            <tr>
              <td align="left">
                <tt>PARTIAL</tt></td>
              <td align="left">only some fields or preimages remain</td>
              <td align="left">returns the remaining fields; the record's own digest still verifies against what existed at commit time even though full reproduction is no longer possible</td>
            </tr>
            <tr>
              <td align="left">
                <tt>WITHHELD</tt></td>
              <td align="left">the payload may exist but the requester is not authorized</td>
              <td align="left">returns nothing; a policy refusal, not a claim the payload is gone</td>
            </tr>
            <tr>
              <td align="left">
                <tt>DELETED</tt></td>
              <td align="left">the payload was intentionally destroyed or has expired</td>
              <td align="left">returns nothing; commitment integrity survives, semantic reproducibility does not</td>
            </tr>
            <tr>
              <td align="left">
                <tt>LEGAL_HOLD</tt></td>
              <td align="left">deletion is suspended by policy or legal requirement</td>
              <td align="left">behaves as <tt>AVAILABLE</tt> or <tt>PARTIAL</tt> per the payload's actual state; the hold blocks a future transition to <tt>DELETED</tt>, it does not itself change resolvability</td>
            </tr>
          </tbody>
        </table>
        <t><strong><tt>WITHHELD</tt> <bcp14>MUST NOT</bcp14> be conflated with <tt>DELETED</tt>.</strong> Both currently return no
bytes; only one of them is permanent. A party that needs to distinguish
"ask again under different authorization" from "the bytes are gone" reads
<tt>retention_state</tt>, never a resolution failure alone. A responder answering an
Evidence Request (<xref target="I-D.mih-agent-evidence-request"/>) for a <tt>WITHHELD</tt>
payload <bcp14>MUST NOT</bcp14> refuse it with reason <tt>no_such_subject</tt> or
<tt>retention_expired</tt>; those reasons state that the subject does not resolve
or that retention has lapsed, which is the <tt>DELETED</tt> case.</t>
      </section>
      <section anchor="disclosure-records">
        <name>Disclosure Records</name>
        <t>A <strong>disclosure record</strong> documents an act of disclosing payload material —
for example, when a store assembles the artifact response to a request
(<xref target="I-D.mih-agent-evidence-request"/>) or the disclosures overlay of an
evidence bundle
(<xref target="I-D.mih-zhang-agent-disclosure-bundle"/>). Its
<tt>epistemic_type</tt> is <tt>producer_claim</tt>: it is the store's own statement of what
it chose to reveal. It carries:</t>
        <artwork><![CDATA[
disclosure:
  payloads: all|selected
  suppressed_fields: [ <field name>, ... ]
]]></artwork>
        <t><tt>payloads</tt> states whether the disclosure carried all payload material the
store chose to consider, or only a selected subset. <tt>suppressed_fields</tt>
names fields intentionally not carried by this disclosure. For any
suppressed field the store chooses to acknowledge exists at all, the
disclosure record <bcp14>MAY</bcp14> carry that field's committed digest rather than
nothing: a withheld field disclosed with its digest is never reported as
blank and never as if it did not exist, mirroring the target record's own
<tt>WITHHELD</tt> handling above.</t>
        <t>For one Capsule, the Disclosure Envelope
(<xref target="I-D.mih-agent-disclosure-envelope"/>) carries disclosed values beside the
Capsule that commits to their digests. A disclosure record is the store's
own record that such a disclosure was made; it does not replace the
envelope's own verification.</t>
        <t>A disclosure record carries a <tt>cites</tt> link to each record whose payload it
discloses. It states what was revealed about those records; it does not
change their own <tt>retention_state</tt>, and it is not itself evidence that the
underlying record is more, or less, available than its own
<tt>retention_state</tt> says.</t>
      </section>
    </section>
    <section anchor="indexes">
      <name>Index Classes</name>
      <t>A store <bcp14>MAY</bcp14> maintain any or all of three classes of index over its committed
records. Each makes a different claim, and none <bcp14>MAY</bcp14> be substituted for
another:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Operational index.</strong> Fast local query support — by <tt>record_id</tt>,
<tt>subject_ref</tt>, or any other field. Rebuildable from committed history at
any time. Carries no independent trust value: a result from an
operational index is only as trustworthy as the store producing it, and
is not itself checkable by a party that does not trust the store.</t>
        </li>
        <li>
          <t><strong>Authenticated index.</strong> A deterministic structure whose root is
committed into the store's commitment substrate (<xref target="substrate"/>).
Supports membership, range, non-membership, and completeness properties
that a party other than the store can check against a checkpoint,
independent of trusting the store's own operational query results.</t>
        </li>
        <li>
          <t><strong>Semantic or vector index.</strong> Approximate discovery only, always
rebuildable, and never proof of anything. A result from a semantic
index <bcp14>MUST NOT</bcp14> be cited as proof of completeness, and <bcp14>MUST NOT</bcp14> be cited
as proof that a matched record is true — it is a way to find candidates,
never a statement about what exists or what is correct.</t>
        </li>
      </ol>
    </section>
    <section anchor="substrate">
      <name>The Commitment-Substrate Interface</name>
      <t>A conforming store's commitment substrate <bcp14>MUST</bcp14> supply four properties,
regardless of mechanism:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Append order.</strong> Each record receives a position in a monotonic order
the substrate itself assigns and fixes; the store does not renumber
positions after the fact.</t>
        </li>
        <li>
          <t><strong>Inclusion.</strong> For any committed record, the substrate can produce a
proof that it occupies its stated position — checkable by a party that
does not trust the store.</t>
        </li>
        <li>
          <t><strong>Consistency / continuity.</strong> The substrate can produce a proof that one
checkpoint's committed state is a well-defined extension of an earlier
checkpoint's, never a silent rewrite of history already committed.</t>
        </li>
        <li>
          <t><strong>Checkpoint identity.</strong> A checkpoint names one committed state by a
value independent of the store that produced it, so a checkpoint obtained
from any source — the store, a peer, a witness — identifies the same
state.</t>
        </li>
      </ol>
      <t>This document requires these four properties and no specific mechanism. A
Checkpointed Local Log (<xref target="I-D.mih-scitt-checkpointed-local-log"/>) is the
worked example used throughout the evidence family: append, a Merkle
Mountain Range, and periodic signed checkpoints supply all four locally.
Registration with a SCITT Transparency Service <xref target="RFC9943"/> is an alternate
profile. The Transparency Service's log supplies append order and checkpoint
identity, in place of a log the store itself maintains. A Receipt
<xref target="RFC9942"/> proves inclusion of a registered statement, and only inclusion.
Consistency comes from consistency proofs between two states of the
Transparency Service's log, never from a Receipt. <strong>Conformance to this
document <bcp14>MUST NOT</bcp14> require any particular implementation or commitment
substrate.</strong> A Checkpointed Local Log, registration with a SCITT
Transparency Service, any other append-only transparency log, or an
implementer's own authenticated log all qualify: a
store conforms by satisfying the four properties above under whichever
substrate it uses, and states which substrate that is.</t>
    </section>
    <section anchor="answers">
      <name>Answering a Request</name>
      <t><xref target="I-D.mih-agent-evidence-request"/> defines six subject forms and three
mutually exclusive interaction outcomes. This section states, for each
subject form, the store-level capability that answers it — it does not
restate that document's own rules about coverage anchors or refusal
reasons.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Subject</th>
            <th align="left">Store capability</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>record</tt></td>
            <td align="left">resolve one record by <tt>record_id</tt>/digest — operational or authenticated index</td>
          </tr>
          <tr>
            <td align="left">
              <tt>range</tt></td>
            <td align="left">resolve records at stated positions under the substrate's append order, with an inclusion or range proof from the authenticated index</td>
          </tr>
          <tr>
            <td align="left">
              <tt>correlation</tt></td>
            <td align="left">resolve every record whose <tt>subject_ref</tt> (or an equivalent correlation field) matches — operational index</td>
          </tr>
          <tr>
            <td align="left">
              <tt>exchange</tt></td>
            <td align="left">resolve every record carrying a <tt>cites</tt> link (<xref target="links"/>) whose target is the named exchange half's digest</td>
          </tr>
          <tr>
            <td align="left">
              <tt>full_history</tt></td>
            <td align="left">the store's entire evidence body, subject to whatever disclosure policy governs the interaction (<xref target="retention"/>)</td>
          </tr>
          <tr>
            <td align="left">
              <tt>checkpoints</tt></td>
            <td align="left">the commitment substrate's checkpoints and any Receipts or witness records for them (<xref target="substrate"/>), requiring no record-level resolution</td>
          </tr>
        </tbody>
      </table>
      <section anchor="answers-absence">
        <name>Three Kinds of "No"</name>
        <t>A store capable of producing these answers distinguishes three different
things that could be reported as "no evidence for this subject":</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Non-membership:</strong> a proof, from an authenticated index
(<xref target="indexes"/>), that no record occupies the stated position or carries
the stated identity. This is the only one of the three that is itself
checkable by a party other than the store.</t>
          </li>
          <li>
            <t><strong>Withheld:</strong> a record or its payload exists but is not disclosed under
current policy (<xref target="retention"/>). This is a policy refusal, not an
absence, and <bcp14>MUST NOT</bcp14> be reported as if the record did not exist.</t>
          </li>
          <li>
            <t><strong>Asserted absence:</strong> the store's own unproven claim that it holds no
such record, offered when no authenticated index covers the subject.
This is a <tt>producer_claim</tt> about the store's local state; it is not
proof, and it is not a claim about anything on the requester's side.</t>
          </li>
        </ol>
        <t>None of the three is the "recorded absence" outcome of
<xref target="I-D.mih-agent-evidence-request"/>, which is the requester's own record that
no response arrived. A store that holds no such record answers with a
signed refusal carrying reason <tt>no_such_subject</tt>; a store that withholds
answers with a policy refusal. Neither is ever reported as a recorded
absence.</t>
        <t>A <tt>no_such_subject</tt> refusal (<xref target="I-D.mih-agent-evidence-request"/>) <bcp14>MAY</bcp14> be
backed by a non-membership proof where the store's authenticated index
supports one. Where it does not, the refusal is honest only if the store
does not present its own asserted absence as if it carried the same weight.</t>
      </section>
    </section>
    <section anchor="reconcile">
      <name>Reconcile and Close</name>
      <t>Two independently held stores are compared under a declared contract or
profile external to this document. Comparing corresponding candidates
assigns each pairing one of six states:</t>
      <ul spacing="normal">
        <li>
          <t><tt>MATCHED</tt>: both sides hold a corresponding record, and the records agree
under the declared contract or profile.</t>
        </li>
        <li>
          <t><tt>A_ONLY</tt>, <tt>B_ONLY</tt>: a corresponding record was found on one side only.</t>
        </li>
        <li>
          <t><tt>CONFLICTING</tt>: both sides hold a corresponding record, and the records
disagree.</t>
        </li>
        <li>
          <t><tt>INSUFFICIENT</tt>: a candidate was found, but it lacks what the declared
contract or profile needs in order to compare it.</t>
        </li>
        <li>
          <t><tt>UNRESOLVED</tt>: the comparison was not, or could not be, decided.</t>
        </li>
      </ul>
      <t>The precise rules for each state are those of the declared contract or
profile. These are per-pairing states. They are not a judgment over the
reconciliation as a whole, which is a policy layer this document does not
define (<xref target="nongoals"/>).</t>
      <t><strong>One half unavailable is not disagreement.</strong> <tt>A_ONLY</tt> and <tt>B_ONLY</tt> state
that a corresponding record was not found on the other side — it may not
yet be committed there, may be withheld, or may never have existed for that
side. <tt>CONFLICTING</tt> states that both sides hold a corresponding record and
the records disagree. A reconciliation process <bcp14>MUST NOT</bcp14> report <tt>A_ONLY</tt> or
<tt>B_ONLY</tt> as <tt>CONFLICTING</tt>, and <bcp14>MUST NOT</bcp14> infer a substantive dispute from
the mere absence of a counterpart record.</t>
      <t>A <strong>Close</strong> is a record — <tt>record_type</tt> <tt>close</tt>, <tt>epistemic_type</tt>
        <tt>producer_claim</tt> — carrying a <tt>closes</tt> link (<xref target="links"/>) to the range or set
of records it binds, together with the period's inputs and the
contract/profile versions used to reach the state population above. Close
status is read from the links other records make to it, not from a field
the Close itself sets.</t>
      <t>Only a counterparty record counts: a record committed by the counterparty's
store and signed under a key other than the Close's. A link from any record
of the Close's own store, or from a third party, never changes Close
status. How a reader establishes which store committed a record, and under
which key, is profile-defined; the record header of <xref target="record"/> names
neither.</t>
      <ul spacing="normal">
        <li>
          <t><strong>CONTESTED:</strong> a counterparty record carries a <tt>rebuts</tt> link to this
Close. While such a link stands, the Close is not AGREED, whatever else
links to it.</t>
        </li>
        <li>
          <t><strong>AGREED:</strong> the Close is not CONTESTED, and a counterparty record carries
an <tt>acknowledges</tt> link to this Close.</t>
        </li>
        <li>
          <t><strong>UNILATERAL:</strong> neither.</t>
        </li>
      </ul>
      <t>Whether a later counterparty record can withdraw an earlier <tt>rebuts</tt> is not
defined by this revision.</t>
      <t><strong>A Close is never rewritten.</strong> Later evidence, or a correction to a
Close's own population, is a new record carrying a <tt>supersedes</tt> link to the
prior Close and stating the adjustment; the prior Close's committed content
stands unchanged, exactly as <xref target="retention"/>'s rule for any other correction.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t><strong>A self-consistent fabricated history is possible until an external party
pins a checkpoint.</strong> A store that both produces and consumes its own
checkpoints can present a byte-for-byte consistent, provably append-only
history that never happened as its author intends a reader to believe.
Internal consistency proves that the store has not silently rewritten what
it already committed to a witness; it does not prove that what it
committed the first time was true, and it does nothing for a checkpoint no
external party has ever seen. The commitment-substrate properties of
<xref target="substrate"/> close the rewrite path once a checkpoint has left the store's
control; they do nothing for one that has not.</t>
      <t><strong>Key control is not authority.</strong> That a signature over a record verifies
against the key named by <tt>principal_ref</tt> establishes only that the signer
controlled that key at signing time. It establishes nothing about whether
the signer held any role, standing, or authority a relying party cares
about; any such binding is host policy this document does not define
(<xref target="nongoals"/>).</t>
      <t><strong>Non-membership is checkable; asserted absence is not.</strong> A relying party
that cannot tell the two apart (<xref target="answers-absence"/>) can be handed a
fabricated "no evidence" with no way to check it. Recording which of the
three kinds of "no" a store actually returned matters as much as recording
the digest of whatever it did return.</t>
      <t><strong><tt>epistemic_type</tt> is assigned once and is load-bearing.</strong> A record
misclassified at commit — a <tt>producer_claim</tt> recorded as an
<tt>observed_event</tt>, for instance — is not corrected by anything happening
later: no signature, checkpoint, or countersignature changes what kind of
statement a record was when it was made. Any correction is a new record;
the miscategorized original stands and remains readable as what it was.</t>
      <t><strong>Signing, payload storage, and replication are out of scope, and that is
itself a boundary.</strong> This document takes no position on how a record is
signed, how payload bytes are stored, or how records travel between stores
(<xref target="nongoals"/>). A relying party's trust in a record obtained through any of
these mechanisms is exactly its trust in the signature and the commitment
substrate checkpoint it verifies against — never in the fact that a
particular mechanism was used to produce or move it.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>The durable record header (<xref target="record"/>) <bcp14>MUST</bcp14> be privacy-minimized: it
carries what the store's own operation requires — identifiers, digests, and
typed references — and no low-entropy sensitive value beyond that. A
low-entropy value <bcp14>MUST NOT</bcp14> be treated as safe to carry merely because it
has been hashed; a small input space makes a digest invertible by
exhaustive search, so hashing alone is not minimization.</t>
      <section anchor="privacy-checkpoints">
        <name>What a Checkpoint Reveals</name>
        <t>A store hands checkpoints (<xref target="substrate"/>) to parties outside its control:
witnesses, and counterparties receiving a record with an inclusion proof. A
checkpoint carries no record content, but it is not free of information.</t>
        <t><strong>What a checkpoint reveals.</strong> Every checkpoint states the size of the
store's committed history: the number of records appended since the store's
first record, not since the previous checkpoint (in a Checkpointed Local Log
(<xref target="I-D.mih-scitt-checkpointed-local-log"/>), its <tt>log_size</tt>). A party holding
two checkpoints from one store therefore learns how many records the store
committed between them, across every subject and counterparty the store
records, not only those it shares with that party. A checkpoint also
carries a time, and the times at which a store issues checkpoints reveal its
activity pattern.</t>
        <t><strong>What a checkpoint does not reveal.</strong> A checkpoint and an inclusion proof
reveal no record content. The sibling values in an inclusion proof are
digests over other records; they reveal nothing about those records only if
those records cannot be guessed and confirmed by recomputing a digest. To
make that hold, every record <bcp14>MUST</bcp14> include, within the bytes from which its
commitment-substrate entry is derived, a value of at least 128 bits drawn
from a cryptographically secure random source, generated by the store for
that record alone and never reused. A value supplied by or known to another
party (such as a client- or counterparty-supplied nonce), a time, a
sequence number, or a digest of content does not satisfy this requirement.</t>
        <t><strong>Mitigations.</strong> A store <bcp14>SHOULD</bcp14>, before a checkpoint leaves its control,
append <strong>padding records</strong> so that the checkpoint's size falls on a bucket
boundary: for example, the next multiple of a configured bucket size. Two
such checkpoints then reveal the count between them only to within the
bucket size. This document reserves the <tt>record_type</tt> value <tt>padding</tt> for
this purpose. A padding record has <tt>epistemic_type</tt> <tt>producer_claim</tt>; its
only content is a freshly generated random value meeting the requirement
above; and it carries no <tt>payload_commitments</tt>, no links, no <tt>subject_ref</tt>,
and no <tt>principal_ref</tt>. A padding record <bcp14>MUST NOT</bcp14> be the target of any
link. It is appended like any other record and changes none of the
properties of <xref target="substrate"/>.</t>
        <t>A store <bcp14>SHOULD</bcp14> coarsen every time value that leaves its control inside
signed or committed bytes, such as a checkpoint's time or a disclosed
record's <tt>committed_at</tt>, to a granularity no finer than one minute. Such a
value is covered by a signature or a commitment, so it is coarsened when
those bytes are produced; coarsening a copy afterwards invalidates the
signature or the record's inclusion. A store <bcp14>MAY</bcp14> keep finer-grained times
in local state that is neither committed nor disclosed.</t>
        <t>A store operator <bcp14>MAY</bcp14> keep separate stores, each with its own commitment
substrate and checkpoints, for separate scopes (for example, per
counterparty), so that a checkpoint shown within one scope reveals nothing
about record volume in another.</t>
        <t>A verifier <bcp14>MUST</bcp14> treat a padding record as an ordinary record when it checks
inclusion, consistency, or a checkpoint, and <bcp14>MUST NOT</bcp14> reject a checkpoint,
proof, or range because it contains padding records. A reader that counts,
lists, or summarizes records <bcp14>MUST NOT</bcp14> count a padding record as a record,
and a store <bcp14>MUST NOT</bcp14> return one as responsive to a <tt>record</tt>, <tt>correlation</tt>,
or <tt>exchange</tt> subject (<xref target="answers"/>).</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>IANA is requested to create the "Evidence Layer Parameters" registry group
with the two registries below. For both, the registration policy is
Specification Required (<xref target="RFC8126"/>, Section 4.6), and the change controller
is the IETF. Each entry consists of a token (lowercase ASCII,
underscore-separated), a one-line description, and a reference.</t>
      <t>Until IANA creates these registries, the interim registry of record is
<tt>REGISTRY.md</tt> in the source repository of
<xref target="I-D.mih-scitt-agent-action-capsule"/>. It records the same values and
policy, and the same designated-expert criteria it applies to its other
registries.</t>
      <t>Neither registry duplicates an existing one. "Evidence Layer Link Types" is
not the <tt>chain.relation</tt> or <tt>citation_purpose</tt> registry of
<xref target="I-D.mih-scitt-agent-action-capsule"/>, which govern fields inside a Capsule
(<xref target="links"/>). "Evidence Layer Epistemic Types" is not that document's
<tt>domain</tt> registry, which states what kind of act a Capsule records, not how
its content came to be known.</t>
      <section anchor="evidence-layer-epistemic-types">
        <name>Evidence Layer Epistemic Types</name>
        <t>Initial contents, from <xref target="epistemic-type"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Token</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>observed_event</tt></td>
              <td align="left">directly observed by the recording system or actor</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>system_of_record_fact</tt></td>
              <td align="left">asserted by an external system of record</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>producer_claim</tt></td>
              <td align="left">asserted by the record's own producer, unverified by the store</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>human_report</tt></td>
              <td align="left">asserted by a human, not machine-observed</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>semantic_judgment</tt></td>
              <td align="left">a judgment or classification reached by interpretation, not direct observation</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>derived_metric</tt></td>
              <td align="left">a value computed or aggregated from other records</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>adjudication</tt></td>
              <td align="left">a ruling on a matter that was disputed or required judgment</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>obligation_reference</tt></td>
              <td align="left">a reference to an obligation the record does not itself discharge</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="evidence-layer-link-types">
        <name>Evidence Layer Link Types</name>
        <t>Initial contents, from <xref target="links"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Token</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>cites</tt></td>
              <td align="left">the carrying record depends on the target's committed content</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>adjudicates</tt></td>
              <td align="left">the carrying record renders a judgment about the target's claim</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>supersedes</tt></td>
              <td align="left">the carrying record replaces the target's content for current use, without mutating it</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>acknowledges</tt></td>
              <td align="left">the carrying record states its author has seen and holds the target</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>rebuts</tt></td>
              <td align="left">the carrying record disputes the target's claim</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>closes</tt></td>
              <td align="left">the carrying record binds a range or set of records as reconciled</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
        <t>This document makes no other requests of IANA. The <tt>record_type</tt> value
<tt>padding</tt> (<xref target="privacy-checkpoints"/>) is reserved by this document;
<tt>record_type</tt> is an open token and has no registry.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9942">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Receipts</title>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>CBOR Object Signing and Encryption (COSE) Receipts prove properties of a Verifiable Data Structure (VDS) to a verifier. VDSs and associated Proof Types enable security properties, such as minimal disclosure, transparency, and non-equivocation. Transparency helps maintain trust over time and has been applied to certificates, end-to-end encrypted messaging systems, and supply chain security. This specification enables concise transparency-oriented systems by building on Concise Binary Object Representation (CBOR) and COSE. The extensibility of the approach is demonstrated by providing CBOR encodings for Merkle inclusion and consistency proofs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9942"/>
          <seriesInfo name="DOI" value="10.17487/RFC9942"/>
        </reference>
        <reference anchor="RFC9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </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" fullname="Steven Mih">
              <organization>Action State Group, Inc.</organization>
            </author>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mih-scitt-agent-action-capsule-05"/>
        </reference>
        <reference anchor="I-D.mih-scitt-checkpointed-local-log">
          <front>
            <title>The Checkpointed Local Log (CLL)</title>
            <author initials="S." surname="Mih" fullname="Steven Mih">
              <organization>Action State Group</organization>
            </author>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mih-scitt-checkpointed-local-log-01"/>
        </reference>
        <reference anchor="I-D.mih-agent-evidence-request">
          <front>
            <title>An Interaction Model for Requesting Verifiable Evidence</title>
            <author initials="S." surname="Mih" fullname="Steven Mih">
              <organization>Action State Group, Inc.</organization>
            </author>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mih-agent-evidence-request-00"/>
        </reference>
        <reference anchor="I-D.mih-zhang-agent-disclosure-bundle">
          <front>
            <title>AAC Evidence Bundle</title>
            <author initials="S." surname="Mih" fullname="Steven Mih">
              <organization>Action State Group, Inc.</organization>
            </author>
            <author initials="Y." surname="Zhang" fullname="Yiqun Zhang">
              <organization>Independent</organization>
            </author>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mih-zhang-agent-disclosure-bundle-00"/>
        </reference>
        <reference anchor="I-D.mih-agent-disclosure-envelope">
          <front>
            <title>Disclosure Envelope Profile for Agent Action Capsules</title>
            <author initials="S." surname="Mih" fullname="Steven Mih">
              <organization>Action State Group, Inc.</organization>
            </author>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mih-agent-disclosure-envelope-00"/>
        </reference>
        <reference anchor="I-D.mih-agent-settlement-records">
          <front>
            <title>Two-Party Settlement Records for Agent Payments</title>
            <author initials="S." surname="Mih" fullname="Steven Mih">
              <organization>Action State Group, Inc.</organization>
            </author>
            <date year="2026" month="October"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mih-agent-settlement-records-00"/>
        </reference>
      </references>
    </references>
    <?line 763?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document distills operational experience running local evidence
stores against the interaction model of
<xref target="I-D.mih-agent-evidence-request"/> and the presentation format of
<xref target="I-D.mih-zhang-agent-disclosure-bundle"/> into the substrate
layer both depend on.</t>
    </section>
  </back>

</rfc>
