<?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 3.2.3) -->
<?rfc tocindent="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dogru-cedulon-04" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Cedulon">Cedulon: An Audit Layer for Agent-to-Agent Commerce</title>
    <seriesInfo name="Internet-Draft" value="draft-dogru-cedulon-04"/>
    <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
      <organization>VERAX TEKNOLOJI LIMITED SIRKETI</organization>
      <address>
        <postal>
          <country>Turkey</country>
        </postal>
        <email>e.dogru@cedulon.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="30"/>
    <area>sec</area>
    <keyword>Cedulon</keyword>
    <keyword>agent</keyword>
    <keyword>receipt</keyword>
    <keyword>policy</keyword>
    <keyword>SCITT</keyword>
    <abstract>
      <?line 132?>

<t>This document defines the Cedulon Protocol, an audit layer for
agent-to-agent commerce. Payment rails such as HTTP 402 flows (x402) and
mandate protocols (AP2) already move value. They do not, by themselves,
produce a fail-closed policy check and a signed spend receipt that a
verifier can reconcile against a rail extract. Cedulon specifies a Trade
Manifest (signed offer before payment), a Policy Decision Point with
default deny, a Spend Receipt (COSE/CWT claim set after a gated payment),
epoch checkpoints, and rail-extract reconciliation. The reconciliation
shows that no settlement on the extract lacks a receipt and no settled
receipt is absent from the extract. That result is unconditional only
when the verifier pins the rail key out of band and states the period
under audit; otherwise the document requires it to be reported as
conditional. Checkpoints carry the suppression guarantee, so the
document profiles the checkpoint as a Signed Statement, gives the
verification algorithm a step that consumes the transparency receipts
returned for checkpoints, names what a witness holding a checkpoint the
presented chain omits reports, brings equivocation within reach by
comparing recorded copies against the presented chain, and states how
checkpoint totals may be withheld without withholding the fact that
they were. No signed object may be verified against a key it carries
itself, and a presented Trade Manifest must be bound both to the
receipts that name it and to the terms those receipts claim. The
document also names a threat no adversary causes, a settlement
recorded on a rail with no receipt behind it, and defines a Dispute
Evidence Bundle (evidence, not an award) and optional SCITT anchoring.
This revision defines the encodings earlier revisions called canonical
without defining them, and states the exact input to every hash-valued
field, so that an independent verifier can be written from the text
alone. Cedulon is not a competitor to x402 or AP2; it sits above them.</t>
    </abstract>
  </front>
  <middle>
    <?line 164?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><em>Note to Readers:</em> This document is submitted as Informational. The
author's eventual intended track, if the work is taken up, is a
Standards Track profile of COSE <xref target="RFC9052"/> and CWT <xref target="RFC8392"/> for
agent-spend receipts. This -04 does not claim IETF consensus.</t>
      <t>Agents can now pay. Open HTTP 402 protocols <xref target="X402"/> attach
stablecoin settlement to ordinary requests. Card networks and
processors issue agent-scoped tokens. Google's Agent Payments
Protocol (AP2) <xref target="AP2"/> binds user intent to signed mandates.</t>
      <t>What is missing is an interoperable <strong>audit layer</strong>: a machine-checkable
answer to "was this spend allowed by policy, against which offer, and
what bytes were delivered?" Without that layer, a prompt-injected or
looping agent can drain a rail that has already accepted a valid
signature. A counterparty can ship the wrong artifact. A transparency
log, if used at all, is proprietary.</t>
      <t>Cedulon fills that gap. It does not clear funds, hold custody, or
operate a payment facilitator. An optional escrow actor is defined only
as a third-party role interface (<xref target="escrow-role"/>). Implementations of
this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow
(<tt>MUST-T8-custody</tt>).</t>
      <t>The control is an old one. Reconciling an internal ledger against an
external statement is what double-entry bookkeeping <xref target="PACIOLI"/> made
routine, and signing the artifacts on both sides is Grigg's
triple-entry idea <xref target="GRIGG"/>. Neither is claimed here. What this
document contributes is an open wire profile for that control in a
setting where the parties are software: a COSE receipt shape, an
extract shape, a checkpoint chain, and a verification algorithm
precise enough that two implementations reach the same finding on the
same evidence. The novelty is interoperability, not the idea.</t>
      <t>Neighbor drafts are complementary, not substitutes.
draft-bates-atp <xref target="BATES-ATP"/> covers tamper-evident causal lineage as
a signed DAG. Cedulon is the completeness layer: a spend that never
produced a receipt is visible when an authenticated rail extract is
reconciled (<tt>MUST-T10-1</tt>).</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</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>The following terms are used:</t>
      <dl>
        <dt>Trade Manifest:</dt>
        <dd>
          <t>A signed statement produced <strong>before</strong> payment. It binds a description
of goods or service, price, currency, acceptance-criteria hash, cancel
condition, expiry, and an optional AP2 mandate reference.</t>
        </dd>
        <dt>Policy Decision Point (PDP):</dt>
        <dd>
          <t>The function that evaluates a structured spend request against stored
policy. The default is deny.</t>
        </dd>
        <dt>Spend Receipt:</dt>
        <dd>
          <t>A signed statement produced <strong>after</strong> a gated payment attempt. It
binds payer, payee, amount, currency, policy hash, <tt>manifestHash</tt> or
an explicit <tt>noManifest</tt> flag, rail payment reference, <tt>timestampMs</tt>,
nonce, <tt>prevReceiptHash</tt>, and <tt>outcome</tt>.</t>
        </dd>
        <dt>Receipt Issuer:</dt>
        <dd>
          <t>The party that signs Spend Receipts.</t>
        </dd>
        <dt>Anchor:</dt>
        <dd>
          <t>An optional SCITT Transparency Service <xref target="RFC9943"/> that registers a
signed statement and returns a COSE receipt <xref target="RFC9942"/>.</t>
        </dd>
        <dt>Dispute Evidence Bundle:</dt>
        <dd>
          <t>A package of the Trade Manifest, the Spend Receipt, and a delivery
hash. It is evidence for a later human or legal process. It is not an
arbitral award and not an escrow release.</t>
        </dd>
        <dt>Decision Token:</dt>
        <dd>
          <t>A portable, single-use PDP allow encoded as COSE_Sign1. The claim
set binds <tt>requestHash</tt>, <tt>policyHash</tt>, <tt>expiryMs</tt>, <tt>nonce</tt>, and
<tt>singleUseId</tt>. See <xref target="decision-token"/>.</t>
        </dd>
        <dt>Rail Extract:</dt>
        <dd>
          <t>An authenticated list of settlement records for one account, one
rail, and one time window. See <xref target="rail-extract"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>Cedulon has three control-plane objects and one optional log:</t>
      <artwork><![CDATA[
  Principal --policy--> PDP --allow/deny--> x402/AP2 rail
                              |
                              v
                      Receipt Issuer --> Spend Receipt
                              |
                              v
                      Anchor / SCITT (optional)
]]></artwork>
      <t>The payer agent never talks to the rail except through an adapter that
calls the PDP first (<tt>MUST-T5-1</tt>).</t>
      <section anchor="policy-decision-point">
        <name>Policy Decision Point</name>
        <t>The PDP evaluates structured fields only (<tt>MUST-T1-1</tt>): amount,
currency, payee, tool identifier, nonce, optional manifest hash, and
evaluation time. It applies limit, velocity, and scope checks
(<tt>MUST-T2-1</tt>, <tt>MUST-T2-2</tt>). If the PDP is unreachable, uninitialized,
or throws, the result is deny (<tt>MUST-T2-3</tt>). Denied attempts do not
increment success counters (<tt>MUST-T2-4</tt>).</t>
        <t>An allow produces a Decision Token whose <tt>requestHash</tt> covers six
fields: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>
(<tt>MUST-T3-4</tt>, <tt>MUST-T6-1</tt>). The token is a COSE_Sign1 object
(<tt>MUST-T6-4</tt>), is single-use (<tt>MUST-T6-2</tt>), and <bcp14>MAY</bcp14> be carried to
the adapter that performs settlement.</t>
      </section>
      <section anchor="receipt-issuer">
        <name>Receipt Issuer</name>
        <t>After the adapter attempts settlement (success or a recorded deny that
still needs an audit trail for an allowed-then-aborted path), the
Receipt Issuer signs a Spend Receipt over the deterministic CBOR
encoding of its claims (<tt>MUST-T4-1</tt>). Verifiers reject bad signatures and byte mismatch
(<tt>MUST-T4-2</tt>).</t>
      </section>
      <section anchor="anchor-scitt">
        <name>Anchor / SCITT</name>
        <t>Parties <bcp14>MAY</bcp14> register the signed receipt (or a privacy-preserving hash
encoding) as a SCITT Signed Statement <xref target="RFC9943"/> and attach the COSE
receipt (<tt>MAY-T4-6</tt>). This document does not operate a Transparency
Service.</t>
      </section>
    </section>
    <section anchor="trade-manifest">
      <name>Trade Manifest</name>
      <t>A Trade Manifest is the commerce analogue of a promise: it is issued
<strong>before</strong> value moves. It is conceptually symmetric to a later Spend
Receipt (promise then proof), and it <bcp14>MAY</bcp14> carry an AP2 mandate hash so
that user intent and the Cedulon offer stay linked (<tt>SHOULD-T8-5</tt>).</t>
      <t>A Trade Manifest <bcp14>MUST</bcp14> bind all of the following (<tt>MUST-T8-1</tt>):</t>
      <ul spacing="normal">
        <li>
          <t>goods or service description</t>
        </li>
        <li>
          <t>price (integer minor units, encoded as a decimal string matching
<tt>0|[1-9][0-9]*</tt>)</t>
        </li>
        <li>
          <t>currency (ISO 4217 alphabetic or a documented token identifier)</t>
        </li>
        <li>
          <t>acceptance-criteria hash (SHA-256 <xref target="RFC6234"/> of the exact delivery
bytes, lowercase hexadecimal)</t>
        </li>
        <li>
          <t>cancel condition (opaque string agreed by the parties)</t>
        </li>
        <li>
          <t>expiry (POSIX milliseconds, <tt>expiresAtMs</tt>)</t>
        </li>
      </ul>
      <t>The previous revision allowed this hash to be taken over "the exact
delivery bytes or a declared schema instance" and gave a verifier no
way to tell which one an issuer had used. Two implementations reading
the same manifest would then compute different digests over the same
delivery and neither would be wrong. This revision defines the first
reading only. Hashing a schema instance instead would need a marker in
the manifest saying so, this document defines no such marker, and until
one is defined that use is out of scope rather than an alternative a
verifier is expected to guess at.</t>
      <t>It <bcp14>MAY</bcp14> include <tt>ap2MandateHash</tt>. The corresponding CBOR label is
always present; a missing mandate is encoded as CBOR null.</t>
      <t>The manifest is COSE_Sign1 <xref target="RFC9052"/> over a deterministic CBOR claim
map (<xref target="cose-profile"/>). <tt>manifestHash</tt> is the SHA-256 of the signed
COSE bytes (<tt>MUST-T8-7</tt>). A spend bound to a manifest <bcp14>MUST</bcp14> be denied
if the requested amount or currency differs from the manifest
(<tt>MUST-T8-2</tt>) or if the manifest is expired (<tt>MUST-T3-3</tt>).</t>
      <t>A spend that is not bound to a verified manifest <bcp14>MUST</bcp14> be marked
<tt>noManifest</tt> on the receipt and <bcp14>MUST</bcp14> still pass limit, velocity, and
scope checks (<tt>MUST-T1-2</tt>). An implementation <bcp14>MAY</bcp14> refuse all
<tt>noManifest</tt> spend (<tt>MAY-T1-4</tt>).</t>
    </section>
    <section anchor="spend-receipt">
      <name>Spend Receipt</name>
      <t>The Spend Receipt claim set is carried in COSE_Sign1 <xref target="RFC9052"/>
wrapping a CWT-compatible map <xref target="RFC8392"/>. New receipts <bcp14>MUST</bcp14> use the
COSE profile (<xref target="cose-profile"/>).</t>
      <t>Claims (<tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, <tt>MUST-T4-7</tt>):</t>
      <table>
        <thead>
          <tr>
            <th align="left">Claim</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">payer</td>
            <td align="left">Payer agent identifier</td>
          </tr>
          <tr>
            <td align="left">payee</td>
            <td align="left">Payee identifier</td>
          </tr>
          <tr>
            <td align="left">amount</td>
            <td align="left">Minor units as a decimal string <tt>0|[1-9][0-9]*</tt></td>
          </tr>
          <tr>
            <td align="left">currency</td>
            <td align="left">Currency identifier</td>
          </tr>
          <tr>
            <td align="left">policyHash</td>
            <td align="left">SHA-256 of the canonical policy document (lowercase hex)</td>
          </tr>
          <tr>
            <td align="left">manifestHash</td>
            <td align="left">SHA-256 of the signed manifest COSE bytes, or null when <tt>noManifest</tt> is true</td>
          </tr>
          <tr>
            <td align="left">noManifest</td>
            <td align="left">Boolean; <bcp14>MUST</bcp14> be true if and only if <tt>manifestHash</tt> is null</td>
          </tr>
          <tr>
            <td align="left">x402PaymentRef</td>
            <td align="left">Rail payment reference, or null</td>
          </tr>
          <tr>
            <td align="left">timestampMs</td>
            <td align="left">POSIX milliseconds</td>
          </tr>
          <tr>
            <td align="left">nonce</td>
            <td align="left">Unique spend nonce; at least 128 bits of randomness; unique in the issuer scope</td>
          </tr>
          <tr>
            <td align="left">prevReceiptHash</td>
            <td align="left">Previous receipt hash, or null for the first receipt (<tt>SHOULD-T4-5</tt>)</td>
          </tr>
          <tr>
            <td align="left">outcome</td>
            <td align="left">
              <tt>settled</tt> or <tt>aborted</tt></td>
          </tr>
        </tbody>
      </table>
      <t>A receipt with <tt>outcome</tt> = <tt>settled</tt> <bcp14>MUST</bcp14> have a non-null
<tt>x402PaymentRef</tt> (<tt>MUST-T4-7</tt>). An aborted receipt <bcp14>MUST NOT</bcp14> be added
into checkpoint totals.</t>
      <t>All twelve labels in <xref target="receipt-labels"/> are always present. An empty
optional value is encoded as CBOR null, never by omitting the label.</t>
      <t><tt>receiptHash</tt> is the SHA-256 of the receipt's signed COSE bytes,
encoded as lowercase hex.</t>
      <t>Verifiers <bcp14>MUST</bcp14> reject a receipt if the signature fails or if the
decoded claim map does not match the presented claims (<tt>MUST-T4-2</tt>).</t>
      <section anchor="countersign">
        <name>Optional payee countersignature</name>
        <t>A payee <bcp14>MAY</bcp14> attach a countersignature over the issuer's signed
Spend Receipt (<tt>MAY-T8-9</tt>). The profile uses a <strong>detached</strong>
COSE_Sign1 <xref target="RFC9052"/> whose payload is a CBOR map with a single
private-use label:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70401</td>
              <td align="left">receiptCose</td>
              <td align="left">bstr (exact issuer COSE_Sign1 bytes)</td>
            </tr>
          </tbody>
        </table>
        <t>The countersignature uses the header profile in <xref target="cose-profile"/>
and content type <tt>application/cedulon-countersign+cbor</tt>.</t>
        <t>This is a second Sign1 object, not RFC 9052 Countersignature0
(unprotected-header label 11). Countersignature0 would write into
the issuer object and change <tt>receiptHash</tt> after issue, breaking
the receipt chain. A detached Sign1 keeps the issuer bytes
stable, reuses <tt>kid</tt> and content-type, and is absent by simply
omitting the sibling object.</t>
        <t>Absence of a countersignature <bcp14>MUST NOT</bcp14> invalidate the issuer
receipt (<tt>MAY-T8-9</tt>). If a countersignature is present, a
verifier <bcp14>MUST</bcp14> reject it when the signature fails, when <tt>kid</tt> or
content type does not match the configured payee key, or when
label -70401 is not the issuer COSE bytes (<tt>MUST-T8-8</tt>). The
identifier <tt>countersign-bad</tt> <bcp14>SHOULD</bcp14> be used for this condition,
except a countersignature by a key other than the pinned payee key,
for which <tt>countersign-key-mismatch</tt> <bcp14>SHOULD</bcp14> be used. A
Dispute Evidence Bundle that includes a verified countersignature
has stronger evidence that the payee accepted those bytes; the
bundle is still not an award (<tt>MUST-T8-4</tt>).</t>
      </section>
    </section>
    <section anchor="cose-profile">
      <name>COSE Profile</name>
      <t>This profile uses deterministic CBOR <xref target="RFC8949"/> Section 4.2.1
(definite lengths, shortest integer form, map keys sorted in
<strong>bytewise lexicographic</strong> order of their encoded keys).
Implementations <bcp14>MUST</bcp14> encode only the types used by Cedulon claim maps:
null, bool, unsigned and negative integers, UTF-8 text, byte strings,
arrays, and maps (<tt>MUST-T4-1</tt>).</t>
      <t>The previous revision bound the encoder and said nothing about the
decoder, which left the reading side free where the writing side was
not. A decoder <bcp14>MUST</bcp14> refuse a CBOR map that carries a duplicate encoded
key (<tt>MUST-T4-18</tt>). The encoding rules already forbid producing one, so
a decoder that accepts it accepts a document no conforming encoder can
produce, and two decoders may disagree on which of the two values
wins, which is a disagreement about what was signed.</t>
      <t>A decoder <bcp14>MUST</bcp14> also impose a bound on what it will attempt: on encoded
size, on nesting depth, and on the number of elements it will decode
from an audit input. It <bcp14>MUST</bcp14> refuse an input that exceeds a bound with
a named refusal rather than by exhausting memory or the stack, and it
<bcp14>SHOULD</bcp14> document the bounds it applies (<tt>MUST-T4-19</tt>). This document
fixes no numbers. A bound that is right for a desktop verifier is wrong
for a service, and a number written here would be wrong for one of them
within a year. What a reader is entitled to is that the refusal is a
refusal, named and reported, rather than a crash that an operator has
to interpret.</t>
      <section anchor="receipt-labels">
        <name>Claim labels</name>
        <t>Registered CWT claims <xref target="RFC8392"/> are not required by this profile. Cedulon
uses CWT private-use integer labels less than -65536 so that the
profile does not occupy the 100-110 registry range.</t>
        <t>Receipt labels (<tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, <tt>MUST-T4-7</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70001</td>
              <td align="left">payer</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70002</td>
              <td align="left">payee</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70003</td>
              <td align="left">amount</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70004</td>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70005</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (lowercase hex SHA-256)</td>
            </tr>
            <tr>
              <td align="left">-70006</td>
              <td align="left">manifestHash</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70007</td>
              <td align="left">noManifest</td>
              <td align="left">bool</td>
            </tr>
            <tr>
              <td align="left">-70008</td>
              <td align="left">x402PaymentRef</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70009</td>
              <td align="left">timestampMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70010</td>
              <td align="left">nonce</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70011</td>
              <td align="left">prevReceiptHash</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70012</td>
              <td align="left">outcome</td>
              <td align="left">tstr (<tt>settled</tt> / <tt>aborted</tt>)</td>
            </tr>
          </tbody>
        </table>
        <t>Checkpoint labels (<tt>MUST-T11-1</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70101</td>
              <td align="left">epoch</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70102</td>
              <td align="left">startMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70103</td>
              <td align="left">endMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70104</td>
              <td align="left">receiptCount</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70105</td>
              <td align="left">chainHeadHash</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70106</td>
              <td align="left">totals</td>
              <td align="left">map tstr -&gt; tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70107</td>
              <td align="left">prevCheckpointHash</td>
              <td align="left">tstr / null</td>
            </tr>
          </tbody>
        </table>
        <t>Manifest labels (<tt>MUST-T8-1</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70201</td>
              <td align="left">description</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70202</td>
              <td align="left">amount</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70203</td>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70204</td>
              <td align="left">acceptanceCriteriaHash</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70205</td>
              <td align="left">cancelCondition</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70206</td>
              <td align="left">expiresAtMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70207</td>
              <td align="left">ap2MandateHash</td>
              <td align="left">tstr / null</td>
            </tr>
          </tbody>
        </table>
        <t>Decision Token labels (<tt>MUST-T6-4</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70301</td>
              <td align="left">requestHash</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70302</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (lowercase hex SHA-256)</td>
            </tr>
            <tr>
              <td align="left">-70303</td>
              <td align="left">expiryMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70304</td>
              <td align="left">nonce</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70305</td>
              <td align="left">singleUseId</td>
              <td align="left">tstr</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="cosesign1-headers">
        <name>COSE_Sign1 headers</name>
        <t>The protected header <bcp14>MUST</bcp14> be a deterministic CBOR map containing
(<tt>MUST-T4-1</tt>, <tt>MUST-T4-8</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>1</tt> (alg) = <tt>-19</tt> (Ed25519, <xref target="RFC9864"/>; the generic EdDSA value
<tt>-8</tt> from <xref target="RFC9053"/> is deprecated for this profile)</t>
          </li>
          <li>
            <t><tt>3</tt> (content type) = a tstr that distinguishes the payload:
<tt>application/cedulon-receipt+cbor</tt>,
<tt>application/cedulon-checkpoint+cbor</tt>,
<tt>application/cedulon-manifest+cbor</tt>,
<tt>application/cedulon-decision+cbor</tt>, or
<tt>application/cedulon-countersign+cbor</tt></t>
          </li>
          <li>
            <t><tt>4</tt> (kid) = bstr, mandatory. The profile computes <tt>kid</tt> as the
first eight bytes of SHA-256 over the issuer's SubjectPublicKeyInfo
DER. A verifier <bcp14>MUST</bcp14> obtain the public key from an authenticated
channel (preconfigured issuer set, directory, or transparency
statement) and <bcp14>MUST</bcp14> reject a message whose <tt>kid</tt> does not match
that key.</t>
          </li>
        </ul>
        <t>The unprotected header <bcp14>MUST</bcp14> be empty. The payload <bcp14>MUST</bcp14> be the CBOR
encoding of the claim map. The signature is Ed25519 <xref target="RFC8032"/> over
the COSE <tt>Sig_structure</tt>
          <tt>["Signature1", protected, h'', payload]</tt>.</t>
      </section>
    </section>
    <section anchor="canonical-json">
      <name>Canonical JSON encoding</name>
      <t>Not everything this document hashes or signs is CBOR. The policy
document, the six request fields bound by a Decision Token, and the
scoped body of a Rail Extract are JSON, and the previous revision
called each of them "canonical" without saying what that meant. Two
implementations could therefore agree on every requirement in this
document and still produce different bytes, which makes an independent
verifier impossible to write from the text. This section closes that.</t>
      <t>Where this document says "the canonical encoding" of a JSON document,
it means the encoding defined by <xref target="RFC8785"/>, and the octets hashed or
signed are the UTF-8 octets of that encoding.</t>
      <t>Two notes on the boundary of that reference:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="RFC8785"/> Section 3.2.2.2 requires a serializer to terminate on a
lone surrogate. No field defined by this document may contain one, so
a conforming document never reaches that rule. An implementation <bcp14>MAY</bcp14>
emit the escaped form instead; the case is named here because two
implementations that differ on it would differ on bytes, and a
verifier comparing octets is entitled to know that this document does
not depend on the answer.</t>
        </li>
        <li>
          <t><xref target="RFC8785"/> defines no encoding for an integer outside the IEEE 754
double range. No document defined here carries one: every amount and
cumulative limit is already a decimal string before it is encoded,
and every hash is lowercase hexadecimal. A document that would need
such an integer is outside this specification.</t>
        </li>
      </ul>
      <section anchor="hash-inputs">
        <name>Which octets are hashed</name>
        <t>Every hash-valued field in this document is SHA-256 <xref target="RFC6234"/> of the
input named below. All but two are rendered as lowercase hexadecimal.
<tt>kid</tt> differs only in its rendering: the digest is computed over the
same stated input and then truncated to its first 8 bytes, carried as
a byte string rather than as hex (<xref target="cose-profile"/> states the same
rule where the header is defined). <tt>ap2MandateHash</tt> differs in whose
digest it is: AP2 defines the mandate and its octets, and this
document carries the result opaquely rather than restating a rule it
does not own. The previous revision named the digest for some of
these fields and not for others; the omissions were not a deliberate
degree of freedom.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Input to SHA-256</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>receiptHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the receipt</td>
            </tr>
            <tr>
              <td align="left">
                <tt>manifestHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the Trade Manifest</td>
            </tr>
            <tr>
              <td align="left">
                <tt>checkpointHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the checkpoint</td>
            </tr>
            <tr>
              <td align="left">
                <tt>statementHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the statement</td>
            </tr>
            <tr>
              <td align="left">
                <tt>acceptanceCriteriaHash</tt></td>
              <td align="left">the exact delivery bytes, as defined where the Trade Manifest is</td>
            </tr>
            <tr>
              <td align="left">
                <tt>policyHash</tt></td>
              <td align="left">the UTF-8 octets of the canonical policy document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>requestHash</tt></td>
              <td align="left">the UTF-8 octets of the canonical six-field request document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>kid</tt></td>
              <td align="left">the SubjectPublicKeyInfo DER; the digest is then truncated to its first 8 bytes</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ap2MandateHash</tt></td>
              <td align="left">the octets AP2 defines for its mandate; not profiled by this document</td>
            </tr>
          </tbody>
        </table>
        <t>Wherever this table, or any other sentence in this document, says "the
signed COSE_Sign1 octets", those are the octets of the <strong>untagged</strong>
four-element COSE_Sign1 array of <xref target="RFC9052"/>. This profile never wraps
a message in CBOR tag 18, and the vectors in Appendix A carry the
untagged form. A verifier that hashed a tagged copy would compute a
different digest for every object in this profile, so the choice is
stated here once rather than left to be inferred from the vectors.</t>
        <t>The six fields of the request document are the ones <tt>MUST-T6-1</tt> names:
amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>. The previous
revision described <tt>requestHash</tt> as "the six-field hash" while naming
SHA-256 for <tt>policyHash</tt> in the same sentence, which left a reader free
to conclude that the request binding was not a digest at all. It is
one.</t>
        <t>Naming the members is not stating the document, so the document is
stated here. The request document is a JSON object carrying exactly
those six members and no others, every member always present. <tt>amount</tt>
is the decimal string of the request, in the amount syntax the receipt
claims table states, never a JSON number: <xref target="RFC8785"/> encodes the
number 1 and the string "1" differently, and an implementation free to
pick either would produce two digests for one request. <tt>currency</tt>,
<tt>payee</tt>, and <tt>nonce</tt> are the request's text strings. <tt>tool</tt> is the
request's text string, or JSON null where the deployment names none.
<tt>manifestHash</tt> is the lowercase hexadecimal string, or JSON null for a
spend bound to no manifest; an absent value is null, never an omitted
member. A document with a seventh member, a missing member, or another
type for one of these is not the request document this section
defines.</t>
        <t>The policy document is different on purpose, and the difference is
scope rather than an oversight. Its member set is the deployment's
own: this document defines how the bytes of whatever policy document a
PDP evaluates are encoded (<xref target="canonical-json"/>) and digested, not what
its members are. <tt>policyHash</tt> binds a spend to the exact bytes its PDP
evaluated; it is not a value two deployments are expected to compute
from a shared schema, and nothing in the verification algorithm
compares one deployment's <tt>policyHash</tt> to another's.</t>
      </section>
    </section>
    <section anchor="decision-token">
      <name>Decision Token</name>
      <t>A Decision Token is the portable encoding of a PDP allow. It is
COSE_Sign1 with the header profile in <xref target="cose-profile"/> and the
labels in <xref target="receipt-labels"/>. All five labels are always present
(<tt>MUST-T6-4</tt>).</t>
      <t><tt>requestHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical encoding of the six
fields the PDP evaluated (<tt>MUST-T6-1</tt>), rendered as lowercase
hexadecimal; <xref target="canonical-json"/> defines that encoding and
<xref target="hash-inputs"/> states the octets. The previous revision called this
"the six-field hash" in the same sentence that named SHA-256 for
<tt>policyHash</tt>, which left the digest for one of them unstated.
<tt>policyHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical
policy document the PDP evaluated. <tt>expiryMs</tt> is a Unix time in
milliseconds after which the token <bcp14>MUST</bcp14> be treated as expired
(<tt>SHOULD-T6-3</tt>): expired when the evaluation time is strictly greater
than <tt>expiryMs</tt>, not yet expired at exactly <tt>expiryMs</tt>, on the same
boundary discipline <tt>MUST-T3-3</tt> states for the manifest. <tt>nonce</tt> is the request nonce. <tt>singleUseId</tt> is
the identifier consumed on the first settlement attempt
(<tt>MUST-T6-2</tt>).</t>
      <t>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject it if the
signature fails, if <tt>kid</tt> does not match a configured PDP key, if
the content type is not <tt>application/cedulon-decision+cbor</tt>, if
the decoded claim map does not match the presented claims, or if
<tt>expiryMs</tt> is in the past (<tt>MUST-T6-5</tt>).</t>
    </section>
    <section anchor="rail-extract">
      <name>Rail Extract Profile</name>
      <t>A verifier checks completeness against a <strong>rail extract</strong>, not against
the issuer's own receipts alone (<tt>MUST-T10-7</tt>).</t>
      <section anchor="record-schema">
        <name>Record schema</name>
        <t>Each settlement record <bcp14>MUST</bcp14> contain:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ref</td>
              <td align="left">tstr (rail payment reference)</td>
            </tr>
            <tr>
              <td align="left">amount</td>
              <td align="left">tstr matching <tt>0|[1-9][0-9]*</tt></td>
            </tr>
            <tr>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">timestampMs</td>
              <td align="left">uint</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>An extract is scoped to one account identifier, one rail identifier,
and one half-open time window <tt>[windowStartMs, windowEndMs)</tt>.</t>
      </section>
      <section anchor="authentication">
        <name>Authentication</name>
        <t>The mock rail in the companion implementation signs the extract with
Ed25519 over the canonical encoding of the scoped body, which is a
JSON document and therefore takes the encoding of <xref target="canonical-json"/>.
The member names of that body are the rail's to define and publish
with its signature format: a real rail states what it signs, and this
document constrains how any JSON body it signs is encoded, not what
its members are called. A verifier <bcp14>MUST</bcp14>
obtain the extract from the rail or from a signature the rail
published (<tt>MUST-T10-7</tt>). A deployment that cannot do so is running
the reconciliation against evidence it did not obtain independently,
and <bcp14>MUST</bcp14> report the guarantee as conditional.</t>
        <t>A signature on an extract proves internal consistency, not origin: a
key generated by whoever produced the object verifies against itself.
The verifier therefore <bcp14>MUST</bcp14> obtain the rail's public key out of band
and <bcp14>MUST</bcp14> verify the extract signature against that key rather than
against any key the extract carries (<tt>MUST-T10-8</tt>). A verifier that
holds no such key <bcp14>MUST</bcp14> treat the guarantee as conditional.</t>
        <t>Keys are compared as bytes. A verifier <bcp14>MUST</bcp14> compare the pinned key
and the key that signed the extract by their SubjectPublicKeyInfo
DER encoding, not by any text encoding of it, so that the same key
presented in a different envelope still compares equal
(<tt>MUST-T10-9</tt>). A pinned key the verifier cannot decode is a fault in
the verifier's own configuration, not evidence about the extract, and
<bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt> rather than as a key
mismatch.</t>
        <t>What a verifier emits for an extract it cannot authenticate depends on
whether it stated an expectation. With no pinned key the verifier has
asserted nothing, so an extract that does not carry a verifiable
signature is <tt>unauthenticated-extract</tt>, a warning: completeness
findings may still be computed, but the guarantee is <strong>conditional</strong>
on the extract being authentic. With a pinned key the verifier has
asserted what it requires, and an extract that fails to meet it is a
failure rather than a caveat; see the verification algorithm for which
finding applies. -00 defined only the first case, and readers of -00
should note that -02 made the pinned case fail closed.
See <xref target="security"/>.</t>
      </section>
      <section anchor="scope-agreement">
        <name>Scope agreement</name>
        <t>An extract declares a window and carries settlement records. The two
<bcp14>MUST</bcp14> agree: a verifier <bcp14>MUST</bcp14> report every settlement record whose
<tt>timestampMs</tt> falls outside <tt>[windowStartMs, windowEndMs)</tt> as
<tt>extract-scope-mismatch</tt>, identified by that record's <tt>ref</tt>
(<tt>MUST-T10-10</tt>). This check is about the extract's internal
consistency and <bcp14>MUST</bcp14> be performed whether or not a rail key is
pinned.</t>
        <t>A verifier that knows which account, rail, and window it is auditing
<bcp14>MUST</bcp14> also check the extract against that expectation and <bcp14>MUST</bcp14> fail
closed when the extract does not cover it (<tt>MUST-T10-11</tt>). An extract
for another account or rail, or one whose window does not span the
period under audit, cannot support a completeness claim about that
period.</t>
        <t>A verifier that states no period leaves the extract free to define
one, and an extract that reports on a millisecond balances as easily
as one that reports on a month. Pinning a key establishes who signed;
only a stated period establishes what the signature had to cover. A
verifier that has not stated the period under audit therefore <bcp14>MUST</bcp14>
emit <tt>unstated-audit-window</tt> and <bcp14>MUST</bcp14> treat the guarantee as
conditional (<tt>MUST-T10-15</tt>), whatever else verifies.</t>
      </section>
    </section>
    <section anchor="trust-roots">
      <name>Trust roots</name>
      <t><xref target="rail-extract"/> states the rule for one object: a signature proves
internal consistency, not origin, so the verifier obtains the rail key
out of band and checks the extract against that key rather than
against any key the extract carries (<tt>MUST-T10-8</tt>). -02 already
required a verifier to obtain the public key from an authenticated
channel and to reject a <tt>kid</tt> that does not match that key
(<tt>MUST-T4-8</tt>). What -02 did not carry was the verification algorithm,
the separate root inputs, and the error semantics that name a missing
or mismatched pin. This section states those for every signed object
in the profile.</t>
      <t>The gap is not theoretical. A verifier that checks a Spend Receipt
against the key the receipt carries accepts a receipt signed by any
key at all, including one an attacker minted for the occasion. Such a
receipt matches a settlement the attacker was never authorised to
make, the settlement stops looking uncovered, and the audit reports
nothing. The completeness property in <xref target="reconciliation"/> is then
computed over evidence that answers to nobody.</t>
      <section anchor="issuer-root">
        <name>The issuer root</name>
        <t>A verifier <bcp14>MUST</bcp14> obtain the issuer's public key out of band and <bcp14>MUST</bcp14>
verify Spend Receipt and epoch checkpoint signatures against that key
rather than against a key the object carries (<tt>MUST-T4-9</tt>). A
verifier that holds no such key and is presented with any Spend
Receipt or epoch checkpoint <bcp14>MUST</bcp14> treat the completeness guarantee as
conditional and <bcp14>SHOULD</bcp14> report the condition; the identifier
<tt>unauthenticated-issuer</tt> is used for it in this implementation.</t>
        <t>The condition names those two objects because an audit given no
receipts and no checkpoints rests on the extract alone.
There the absent issuer root withholds nothing, and warning about a
root the audit never consulted would spend the warning where it
carries no information.</t>
        <t>Reporting a mismatch is not sufficient on its own. A receipt that
does not answer to the pinned issuer key <bcp14>MUST NOT</bcp14> count as coverage
for the settlement it names, and the settlement <bcp14>MUST</bcp14> still be
reported as uncovered (<tt>MUST-T4-10</tt>). A verifier that reports the
mismatch and then lets the receipt match the settlement anyway has
described the attack in its output while still concluding that the
books balance.</t>
        <t>Keys are compared as bytes, by their SubjectPublicKeyInfo DER
encoding, on the same terms as <tt>MUST-T10-9</tt>. A pinned issuer key the
verifier cannot decode is a fault in its own configuration and <bcp14>MUST</bcp14>
be reported as <tt>trust-key-unreadable</tt> rather than as a mismatch
against the objects; where no pinned key can be decoded at all,
nothing is attested and the verifier <bcp14>MUST NOT</bcp14> fall back to accepting
the keys the objects carry (<tt>MUST-T4-11</tt>). Falling back is how a
mistyped configuration becomes a bypass.</t>
        <t>A verifier <bcp14>MUST</bcp14> accept an issuer root that is a set of keys rather
than a single key (<tt>MUST-T4-12</tt>). An issuer that rotates its key
mid-window otherwise
produces a finding against every honest receipt signed by the
retired key, and the reachable way out of that is to stop pinning,
which is the opposite of what the pin is for. The same acceptance
applies to a publisher pin, a witness pin, and a rail pin: a
verifier <bcp14>MUST</bcp14> accept each of those roots as a set of keys, so a
rotation inside the window does not force it off the pin.</t>
      </section>
      <section anchor="payee-root">
        <name>The payee root</name>
        <t>The optional countersignature in <xref target="countersign"/> travels beside the
issuer signature without being covered by it. Anyone holding an
honest receipt can append a countersignature of their own, so a
verifier that checks it against the key carried next to it learns
only that some key signed something.</t>
        <t>A countersignature <bcp14>MUST NOT</bcp14> be treated as evidence that the payee
approved the payment unless it verifies against a payee key the
verifier obtained out of band (<tt>MUST-T4-13</tt>). Without such a key the
verifier <bcp14>SHOULD</bcp14> report the condition and <bcp14>MUST</bcp14> treat the guarantee as
conditional.</t>
        <t>Naming a payee key states an expectation, and an expectation that
only fires when the evidence is present can be cancelled by deleting
the evidence. Where a verifier has pinned a key for a payee, a
settled receipt naming that payee and carrying no countersignature
<bcp14>MUST</bcp14> be reported (<tt>MUST-T4-14</tt>). Otherwise an attacker removes their
own failed forgery and the report returns to unconditional.</t>
      </section>
      <section anchor="witness-root">
        <name>The witness root</name>
        <t><xref target="witness"/> describes what a transparency witness adds. An inclusion
receipt checked against the key it carries says that some log is
internally consistent, and a log is cheap to invent.</t>
        <t>A verifier <bcp14>MUST</bcp14> obtain the transparency service's public key out of
band and <bcp14>MUST</bcp14> verify inclusion receipts against it (<tt>MUST-T11-15</tt>).
Inclusion receipts that cannot be checked that way <bcp14>MUST NOT</bcp14> be used
as evidence, in either direction: they cannot establish that a
checkpoint was anchored, and they cannot establish that one was
withheld. A verifier <bcp14>SHOULD</bcp14> report that it left them out.</t>
        <t>A log holds statements from everyone who uses it. A statement held by
a pinned log <bcp14>MUST</bcp14> additionally answer to the issuer root before it
counts as something that issuer published (<tt>MUST-T11-16</tt>); otherwise
another user's epoch, sitting in a shared log, reads as this issuer
publishing two checkpoints for one epoch.</t>
        <t>Anchoring and withholding are different claims and need different
evidence. Establishing that a checkpoint was logged needs only the
statement hash. Establishing that an issuer withheld one needs to
know whose statement it is, which an inclusion receipt carrying no
statement body cannot say. Such a receipt <bcp14>MUST NOT</bcp14> be used to report
a withheld checkpoint, and <bcp14>MUST NOT</bcp14> be silently discarded either: a
real withholding must not be buried by removing the body
(<tt>MUST-T11-17</tt>).</t>
      </section>
      <section anchor="decision-root">
        <name>The decision root</name>
        <t>A Decision Token is issued by the policy decision point and consumed
by the same deployment. The consumer therefore holds the key it
signs with and has no reason to ask the token which key to check it
against. A consumer <bcp14>MUST</bcp14> verify a Decision Token against its own
issuing key and <bcp14>MUST NOT</bcp14> accept one it cannot check that way
(<tt>MUST-T6-6</tt>).</t>
      </section>
      <section anchor="manifest-root">
        <name>The manifest root</name>
        <t>A Trade Manifest is optional. A deployment that presents none is not
missing a root, and this requirement does not make such an audit
conditional. The forbidden case is the other one: a manifest is
presented, and the verifier accepts it because the key travelling
inside it verifies against itself.</t>
        <t>A verifier that is presented with a Trade Manifest <bcp14>MUST</bcp14> obtain the
publisher's public key out of band and <bcp14>MUST</bcp14> verify the manifest
signature against that key, not against a key the manifest carries
(<tt>MUST-T4-15</tt>). A verifier without such a key that is presented with
a Trade Manifest <bcp14>MUST</bcp14> report the completeness guarantee as
conditional and <bcp14>SHOULD</bcp14> report the condition; the identifier
<tt>unauthenticated-manifest</tt> is used for it in this implementation.
An audit presented with no Trade Manifest is not made conditional by
this requirement.</t>
        <t>A pinned manifest key the verifier cannot decode is a fault in its
own configuration and <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>
rather than as a mismatch, on the same terms as <tt>MUST-T4-11</tt>. A
manifest that does not verify against a readable pin <bcp14>MUST</bcp14> be
reported as <tt>manifest-key-mismatch</tt> and <bcp14>MUST</bcp14> fail the audit. Falling
back to the key the manifest carries is how a presented document
becomes a bypass.</t>
        <t>Attribution is one question and coverage is another, and a root that
answers only the first leaves the document doing work it was never
spent under. A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare
the manifest hash to the <tt>manifestHash</tt> of the receipts presented to
the audit and <bcp14>MUST</bcp14> report a manifest that no presented receipt
references (<tt>MUST-T4-17</tt>); the identifier <tt>manifest-covers-no-receipt</tt>
is used for it in this implementation, and the completeness guarantee
is conditional. The comparison runs against those presented receipts,
including aborted ones, and is made before any extract window is
applied and before any issuer key is applied; a hash on an aborted
receipt, on a receipt outside the extract window, or on a receipt no
pinned key attests still counts as a reference. This requirement asks
whether any receipt names the terms, not whether a settlement in the
window was made under them, and not whether the receipt that names them
is attributable. A forged receipt can therefore silence this warning.
That is accepted: what it silences is a statement that terms were
named, and the report it leaves behind is still marked conditional and
still carries the finding that the receipt answers to no pinned key. A correctly attributed manifest
travelling beside a set of receipts marked <tt>noManifest</tt> states terms
nothing presented was spent under, and a report that stays silent
about it reads as terms-backed when it is not. This requirement does
not reach the audit presented with no Trade Manifest, which remains a
deployment choice under <tt>MUST-T1-2</tt>.</t>
        <t>Naming a manifest is not obeying one, and that is the third place this
document has had to say the same thing twice. A verifier presented with
a Trade Manifest <bcp14>MUST</bcp14> compare the amount, the currency and the
settlement time of every receipt that names it against the
manifest's amount, currency and expiry, and <bcp14>MUST</bcp14> report a receipt that
departs from them (<tt>MUST-T8-9</tt>); the identifier
<tt>manifest-terms-mismatch</tt> is used for it in this implementation.
Every receipt that names the manifest is measured, aborted ones
included: an aborted receipt that carries the hash of terms and a
departing amount recorded an attempt against terms it misstates, and
<tt>MUST-T4-17</tt> next door already counts it as a reference. The time
compared is the receipt's <tt>timestampMs</tt>, against the boundary
<tt>MUST-T3-3</tt> states: strictly after <tt>expiresAtMs</tt> departs, exactly at
it does not. Amount and currency are compared on the exact-octet
terms of <tt>MUST-T8-2</tt> - the audit asks whether the gate's own rules
were kept, so it compares the way the gate compares.</t>
        <t>Where a usable issuer key is pinned, the comparison is made over the
receipts that verify under it and the audit fails. Where none is
pinned, the departure is still reported and the audit does not fail on
it alone. An issuer key is usable when the pinned issuer root holds at
least one key the verifier can decode. A pinned root none of whose
keys decode is already <tt>trust-key-unreadable</tt> and attests nothing, so
the comparison takes the unpinned branch while that finding stands;
the audit has failed on the configuration fault, and the departure is
still said out loud without becoming a charge no readable key backs. The previous revision stated the first case for both, and an
implementation showed why that is wrong: a receipt signed by any key at
all, carrying the right manifest hash and the wrong amount, made the
verifier report a breach that never happened, against a payment
reference the forger chose. Reporting a departure costs nothing if it
is unattributable; failing an audit on it hands an attacker a way to
accuse an honest payer.</t>
        <t><tt>MUST-T4-17</tt> and this requirement therefore differ, and the difference
is not an inconsistency. Asking whether a manifest hash appears
anywhere is a question about a set of documents, and an unattributable
document is still in that set. Saying that a named party broke terms it
signed is a charge, and a charge needs a key behind it.</t>
        <t>Only receipts that name the manifest are measured against
it: reading the terms onto a receipt that never claimed them would
invent a violation the payer did not commit.</t>
        <t>The rules being enforced here are not new. A gate already refuses a
bound spend whose amount or currency differs from the manifest
(<tt>MUST-T8-2</tt>) and one made against an expired manifest
(<tt>MUST-T3-3</tt>). Both were written for the point where money moves, and
an audit reads the record after that point, where the gate is no longer
present to be asked. Without a counterpart a receipt can carry the hash
of terms it breaks and the report still calls the books balanced. This
is a finding rather than a condition on the guarantee: a verifier that
reports it held every root it needed, and the statement it is making is
unconditional.</t>
        <t>The gate answers differently from the audit, and the difference is
deliberate. A policy decision point presented with a Trade Manifest
it cannot attribute <bcp14>MUST</bcp14> refuse the payment rather than settle and
record the doubt (<tt>MUST-T4-16</tt>). An audit describes what it found
and may say the result is conditional; a gate decides whether money
moves, and a settled payment carrying the hash of terms nobody
authorised cannot be withdrawn by reporting it afterwards. The
receipt would record those terms as agreed.</t>
      </section>
      <section anchor="what-the-roots-do-not-cover">
        <name>What the roots do not cover</name>
        <t>A verifier that supplies none of these roots is not making an error,
and this document does not require it to. It is making a weaker
statement, and the guarantee it reports must say so. With no issuer
key nothing distinguishes one submitted receipt from another, so
conditions computed across the submitted set - two receipts claiming
one settlement reference, for instance - cannot be attributed to
anyone and are reported as conditions of the submission rather than
as failures of a party.</t>
      </section>
    </section>
    <section anchor="reconciliation">
      <name>Reconciliation and Epoch Checkpoints</name>
      <t>Completeness is the property that, given an authenticated rail
extract, every settlement in the extract has a matching settled Spend
Receipt, every settled receipt has a matching settlement, receipt and
checkpoint hash chains verify, and checkpoint totals equal the sum of
<strong>settled</strong> receipts in the checkpoint window. If a spend occurred
without a receipt, the missing receipt is itself the evidence
(<tt>MUST-T10-2</tt>).</t>
      <t>A checkpoint published with its totals withheld (<xref target="redaction"/>) cannot
contribute the last of those to the property. It is not a violation of
completeness and it is not a demonstration of it either: the
comparison was not made, and a result that rests on a comparison
nobody made is conditional (<tt>MUST-T11-12</tt>).</t>
      <section anchor="redaction">
        <name>Checkpoint claims</name>
        <t>An epoch checkpoint <bcp14>MUST</bcp14> be COSE_Sign1-signed with the header profile
in <xref target="cose-profile"/> and <bcp14>MUST</bcp14> bind all of the following
(<tt>MUST-T11-1</tt>):</t>
        <t>epoch, <tt>startMs</tt>, <tt>endMs</tt>, <tt>receiptCount</tt>, <tt>chainHeadHash</tt>,
<tt>totals</tt>, and <tt>prevCheckpointHash</tt>.</t>
        <t>The checkpoint window is half-open <tt>[startMs, endMs)</tt>
(<tt>MUST-T11-7</tt>). <tt>receiptCount</tt> <bcp14>MUST</bcp14> equal the number of receipts
(settled and aborted) whose <tt>timestampMs</tt> falls in that window.
<tt>chainHeadHash</tt> <bcp14>MUST</bcp14> equal <tt>receiptHash</tt> of the last receipt in that
window, or null if the window is empty (<tt>MUST-T11-2</tt>). Where <tt>totals</tt>
is present it <bcp14>MUST</bcp14> sum only receipts with <tt>outcome</tt> = <tt>settled</tt>; the
one permitted absence is the signed redaction below.</t>
        <t>An issuer that publishes a checkpoint without its totals <bcp14>MUST</bcp14> encode
<tt>totals</tt> as null in the signed payload (<tt>MUST-T11-12</tt>). An empty map
is an honest zero for an empty window and is not a redaction. Because
the redaction is inside the signature, it cannot be added to, or
removed from, a checkpoint after signing.</t>
        <t>A verifier <bcp14>MUST NOT</bcp14> accept a redaction asserted anywhere but the
signed payload (<tt>MUST-T11-13</tt>). A presentation-layer flag alongside
a checkpoint is chosen by whoever presents it, which is the party
under audit; honouring such a flag would let that party switch off
the totals comparison for a checkpoint whose signed totals are wrong.
The structural claims (epoch, <tt>startMs</tt>, <tt>endMs</tt>, <tt>receiptCount</tt>,
<tt>chainHeadHash</tt>, <tt>prevCheckpointHash</tt>) <bcp14>MUST NOT</bcp14> be redacted: a
checkpoint missing any of them does not decode, and a verifier <bcp14>MUST</bcp14>
treat it as a failed checkpoint rather than as a redacted one.</t>
      </section>
      <section anchor="genesis">
        <name>Genesis and continuity</name>
        <t>The first checkpoint in a presented chain is the genesis checkpoint
of that chain. Its <tt>prevCheckpointHash</tt> <bcp14>MUST</bcp14> be null. Epoch numbers
<bcp14>MUST</bcp14> be consecutive integers. Adjacent windows <bcp14>MUST</bcp14> satisfy
<tt>next.startMs = prev.endMs</tt> (<tt>MUST-T11-8</tt>).</t>
        <t>A later checkpoint that omits a prefix of earlier epochs (prefix
deletion) is detectable only if an external witness (transparency
log) has recorded the missing prefix (<tt>MUST-T11-9</tt>). Without that
witness, T11 guarantees about suppression are <strong>conditional</strong>.</t>
        <t>-01 stated that dependency and stopped there: nothing in its
verification algorithm read a transparency receipt, so the witness
had no way to speak. -02 gave it one. A verifier that
holds transparency receipts for the period under audit compares what
the witness recorded against what the chain presented, and reports
the difference under its own name (<xref target="witness"/>). A witness that holds
a checkpoint the presented chain omits is not the same condition as
a chain that leaves a gap in its own coverage, and the two <bcp14>MUST NOT</bcp14>
be reported under one identifier (<tt>MUST-T11-11</tt>). The first says
evidence is being withheld; the second says the evidence shown is
incomplete. An operator who cannot tell them apart cannot tell an
incomplete record from a concealed one.</t>
      </section>
      <section anchor="witness">
        <name>The transparency witness</name>
        <t>A checkpoint registered with a Transparency Service <xref target="RFC9943"/> is a
Signed Statement whose payload is the checkpoint COSE object and
whose content type is <tt>application/cedulon-checkpoint+cbor</tt>
(<xref target="anchoring"/>). The service returns a receipt <xref target="RFC9942"/> that binds
the statement it recorded.</t>
        <t>A verifier <bcp14>MAY</bcp14> be given such receipts for the period under audit. It
is a distinct input from the presented checkpoint chain, and supplying
it is optional: a verifier given none performs the same steps, and
reports the same findings, that it would if this input did not exist
(<tt>MUST-T11-10</tt>). Supplying an empty set is not the same as supplying
none. An empty set says a witness is configured and recorded nothing,
which is itself reportable; absence says no witness was consulted.</t>
        <t>A receipt binds a statement hash, not a statement. The body is not
carried by the receipt and a verifier will often not hold it. Two
levels of checking follow from that, and they are not the same
(<tt>MUST-T11-10</tt>).</t>
        <t>Every receipt <bcp14>MUST</bcp14> have its signature verified before it counts for
anything. That is what establishes the hash as one the service signed
for, and it is all that comparing recorded hashes against presented
ones requires: the verifier computes the statement hash of each
presented checkpoint itself.</t>
        <t>A receipt accompanied by the statement body carries more, and <bcp14>MUST</bcp14> be
checked further before that body is relied on. The body's statement
hash <bcp14>MUST</bcp14> equal the hash the receipt binds, and the body <bcp14>MUST</bcp14> itself
verify as a checkpoint. A body that fails either check proves nothing
and <bcp14>MUST</bcp14> be ignored rather than counted, while the receipt it came
with remains usable for the hash comparison. Equivocation is the case
that needs a body, because it compares claims rather than hashes.</t>
        <t>What such a receipt establishes, and what it does not, is worth
stating plainly. It establishes that the service signed for that
statement. Whether the statement is a member of an append-only log,
and whether that log has ever equivocated, are properties of the
service and its own proofs, not of Cedulon. A verifier that treats a
signed receipt as proof of log membership is claiming more than the
receipt carries.</t>
      </section>
      <section anchor="verification-algorithm">
        <name>Verification algorithm</name>
        <t>A verifier <bcp14>MUST</bcp14> perform all of these steps and <bcp14>MUST</bcp14> report every
finding they produce (<tt>MUST-T10-1</tt>, <tt>MUST-T11-2</tt>). They are numbered
for reference, not to require an evaluation order: no step
short-circuits another, and an implementation may evaluate them in any
order that produces the same set of findings.</t>
        <t>Two data dependencies are worth naming, because "any order" read
naively would break them. Step 15 decides which transparency receipts,
and which statement bodies, survive checking. Steps 14 and 16 consume
what survives. An implementation that ran step 14 against unchecked
bodies, or step 16 against unchecked receipts, would not produce the
same set of findings, so that order is not among the permitted ones.</t>
        <t>The second is the issuer pin. The step that resolves it decides the
<strong>attested set</strong> - the receipts and checkpoints that verify under a
usable pinned issuer key, or the whole presented set when no usable
key is pinned - and every later step that walks receipts or
checkpoints consumes that set: the chain walk in step 6, the indexing
and reconciliation in steps 7 through 9, the checkpoint comparisons
in steps 11 through 13, and the <tt>MUST-T8-9</tt> comparison. A receipt the
pin rejects is reported once and then excluded, which is what keeps
the settlement it names visible as uncovered (<tt>MUST-T4-10</tt>); an
implementation that let it back into any of those steps would let a
forged receipt cover a settlement, satisfy a checkpoint count, or
invent a terms charge. Two checks deliberately stay on the presented
set whatever any key says, and <bcp14>MUST NOT</bcp14> acquire the dependency:
<tt>MUST-T4-17</tt>, which asks whether a manifest was named at all, and the
per-receipt defect checks that ask what a receipt says about itself.
The previous draft of this revision named only the <tt>MUST-T8-9</tt>
dependency and repeated -03's sentence that nothing else fed another
step, which the attested set had already made false three more times
over. Nothing else in this list feeds another step.</t>
        <t>When a step names an identifier in backticks, that identifier
<bcp14>SHOULD</bcp14> be used for the condition in diagnostic output. The
normative requirement is the behaviour: report the condition,
identified by the <tt>ref</tt> or other handle given in the step. The
identifiers are not an interoperability surface.</t>
        <ol spacing="normal" type="1"><li>
            <t>Establish the subject of the audit. When an extract is supplied,
the settlement records it carries are the ones reconciled; a
settlement list from any other source <bcp14>MUST NOT</bcp14> be substituted for
them (<tt>MUST-T10-12</tt>). If the caller supplies both and they differ,
the verifier <bcp14>MUST</bcp14> report that the caller-supplied list disagrees
with the extract, and <bcp14>MUST</bcp14> still reconcile the extract. The
identifier <tt>extract-settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for this
condition in diagnostic output.</t>
          </li>
          <li>
            <t>Verify the extract signature against the out-of-band rail key
(<tt>MUST-T10-8</tt>, <tt>MUST-T10-9</tt>). If no key is pinned, the verifier
<bcp14>MUST</bcp14> treat the completeness guarantee as conditional
(<tt>MUST-T10-7</tt>). The identifier <tt>unauthenticated-extract</tt> <bcp14>SHOULD</bcp14>
be used for this condition in diagnostic output. If a key is
pinned and cannot be decoded, the verifier <bcp14>MUST</bcp14> report that the
pinned key is unreadable. The identifier <tt>trust-key-unreadable</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. If a key is pinned and the
signature does not verify against it, or verifies against a
different key, the verifier <bcp14>MUST</bcp14> report that the extract is not
signed by the pinned key. The identifier <tt>extract-key-mismatch</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. A finding that puts the
extract itself in doubt <bcp14>MUST</bcp14> prevent an unconditional guarantee.</t>
          </li>
          <li>
            <t>Check scope. The verifier <bcp14>MUST</bcp14> report each settlement record
whose <tt>timestampMs</tt> falls outside the declared window, identified
by that record's <tt>ref</tt> (<tt>MUST-T10-10</tt>). When the verifier states
an expected account, rail, or window, it <bcp14>MUST</bcp14> report an extract
that does not cover it (<tt>MUST-T10-11</tt>). The identifier
<tt>extract-scope-mismatch</tt> <bcp14>SHOULD</bcp14> be used for both conditions. If
the verifier stated no period, it <bcp14>MUST</bcp14> treat the guarantee as
conditional (<tt>MUST-T10-15</tt>). The identifier
<tt>unstated-audit-window</tt> <bcp14>SHOULD</bcp14> be used for this condition.</t>
          </li>
          <li>
            <t>Decode each Spend Receipt COSE_Sign1. Reject if Ed25519 verify
fails, if <tt>kid</tt> does not match the configured issuer key, if the
content type is not the receipt type, or if the decoded claim map
does not match the presented claims (<tt>MUST-T4-2</tt>, <tt>MUST-T4-8</tt>).
Then apply the issuer root (<xref target="issuer-root"/>): verify the signature
against the out-of-band issuer key rather than the key the receipt
carries. A receipt that does not verify against it is reported and
is excluded from the reconciliation that follows, so the settlement
it names is still reported as uncovered in step 8
(<tt>MUST-T4-9</tt>, <tt>MUST-T4-10</tt>); the identifier <tt>issuer-key-mismatch</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. With no issuer key pinned the verifier
makes no such distinction and reports that it did not; where any
receipt or checkpoint was presented, the guarantee is conditional
on the terms in <xref target="issuer-root"/>.    Where a countersignature is present,
<xref target="payee-root"/> governs what it establishes (<tt>MUST-T4-13</tt>,
<tt>MUST-T4-14</tt>). Where a Trade Manifest is presented, <xref target="manifest-root"/>
governs it (<tt>MUST-T4-15</tt>): with no publisher key pinned the verifier
reports <tt>unauthenticated-manifest</tt> and the guarantee is conditional;
with a pin that cannot be read, <tt>trust-key-unreadable</tt>; with a pin
the manifest does not answer to, <tt>manifest-key-mismatch</tt>; and with
a manifest that no presented receipt references,
<tt>manifest-covers-no-receipt</tt> (<tt>MUST-T4-17</tt>). A receipt that names
the manifest but departs from its amount, currency or expiry is
reported as <tt>manifest-terms-mismatch</tt>; with a usable issuer key
pinned the comparison runs over the attested receipts and the
departure fails the audit, and with no usable issuer key it is a
warning over the presented receipts and does not by itself fail
the audit (<tt>MUST-T8-9</tt>). An audit
presented with no Trade Manifest is not made conditional by this
step.</t>
          </li>
          <li>
            <t>Scope the receipts. When an extract is supplied, only receipts whose
<tt>timestampMs</tt> falls in the extract's declared window are reconciled
against it (<tt>MUST-T10-16</tt>). A receipt outside that window is not a
completeness failure against this extract; auditing a longer period
requires extracts that cover it. Receipts remain subject to every
other check regardless of window.</t>
          </li>
          <li>
            <t>Walk the attested receipts in issuer order. The first <tt>prevReceiptHash</tt> <bcp14>MUST</bcp14>
be null. Each later <tt>prevReceiptHash</tt> <bcp14>MUST</bcp14> equal <tt>receiptHash</tt> of
the previous receipt. A miss <bcp14>MUST</bcp14> be reported as a break in the
receipt chain. The identifier <tt>receipt-chain-break</tt> <bcp14>SHOULD</bcp14> be
used for this condition.</t>
          </li>
          <li>
            <t>Index the attested settled receipts and extract records by <tt>ref</tt>. A <tt>ref</tt>
that appears more than once on either side <bcp14>MUST</bcp14> be reported as a
repeated reference (<tt>MUST-T10-6</tt>). The identifier <tt>duplicate-ref</tt>
              <bcp14>SHOULD</bcp14> be used for this condition.</t>
          </li>
          <li>
            <t>For each <tt>ref</tt> that appears exactly once on each side, require a
one-to-one match on <tt>ref</tt> AND <tt>amount</tt> AND <tt>currency</tt>
(<tt>MUST-T10-1</tt>), compared as exact octets on the terms of
<tt>MUST-T8-2</tt>; step 9's aggregation is the only place this algorithm
reads an amount as a number. Amount or currency mismatch <bcp14>MUST</bcp14> be reported as
a settlement that does not match its receipt, identified by that
<tt>ref</tt>. The identifier <tt>settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for
this condition. A settlement with no receipt <bcp14>MUST</bcp14> be reported as
lacking a receipt, identified by its <tt>ref</tt> (<tt>MUST-T10-2</tt>). The
identifier <tt>settlement-without-receipt</tt> <bcp14>SHOULD</bcp14> be used for this
condition. A settled receipt with no extract row <bcp14>MUST</bcp14> be reported
as a completeness failure (<tt>MUST-T10-3</tt>). The identifier
<tt>receipt-without-settlement</tt> <bcp14>SHOULD</bcp14> be used for this condition.
A settled receipt with a null rail ref <bcp14>MUST</bcp14> be reported as
settled without a rail reference; this check asks what a receipt
says about itself and runs over the presented receipts, attested
or not. The identifier
<tt>settled-without-ref</tt> <bcp14>SHOULD</bcp14> be used for this condition.</t>
          </li>
          <li>
            <t>A <tt>ref</tt> already reported as repeating <bcp14>MUST</bcp14> still be reconciled
by amount rather than dropped from the comparison
(<tt>MUST-T10-13</tt>). For each currency under that <tt>ref</tt>, compare the
total settled against the total receipted. A settled total that
exceeds the receipted total <bcp14>MUST</bcp14> be reported as a settlement
lacking a receipt, and the finding <bcp14>MUST</bcp14> state the unaccounted
amount. The identifier <tt>settlement-without-receipt</tt> <bcp14>SHOULD</bcp14> be
used for this condition. A settled total that is less than the
receipted total <bcp14>MUST</bcp14> be reported as a settlement that does not
match its receipt, identified by that <tt>ref</tt>. The identifier
<tt>settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for this condition. An
amount on that repeating <tt>ref</tt> that cannot be parsed as an
integer <bcp14>MUST</bcp14> be reported without abandoning the audit; the
identifier <tt>malformed-amount</tt> <bcp14>SHOULD</bcp14> be used for this condition.
A verifier <bcp14>MUST</bcp14> still report findings for the remaining records.</t>
          </li>
          <li>
            <t>Aborted receipts are not matched to extract rows and are not
added to totals.</t>
          </li>
          <li>
            <t>Decode each checkpoint. Reject a failed signature, and reject a
   <tt>kid</tt> that does not match the key obtained for the checkpoint
   issuer, on the same terms as a receipt (<tt>MUST-T4-8</tt>). Require
   <tt>receiptCount</tt>, <tt>chainHeadHash</tt>, and <tt>totals</tt> to match the
   attested receipts in <tt>[startMs, endMs)</tt> as defined above
   (<tt>MUST-T11-2</tt>); a receipt step 4 rejected is not among them,
   or a forged receipt could satisfy a checkpoint count. The identifier <tt>checkpoint-total-mismatch</tt>
              <bcp14>SHOULD</bcp14> be used for a failed signature, a wrong <tt>receiptCount</tt>,
   or totals that disagree, and <tt>checkpoint-head-mismatch</tt> for a
   <tt>chainHeadHash</tt> that is not the last in-window receipt. If the
   signed <tt>totals</tt> is null, the verifier
   cannot perform the totals comparison for that checkpoint. It
   <bcp14>MUST</bcp14> report that the comparison was skipped and <bcp14>MUST</bcp14> treat the
   completeness guarantee as conditional; the absence of a
   comparison is not a passed comparison (<tt>MUST-T11-12</tt>). The
   identifier <tt>checkpoint-totals-redacted</tt> <bcp14>SHOULD</bcp14> be used for this
   condition. <tt>receiptCount</tt> and <tt>chainHeadHash</tt> <bcp14>MUST</bcp14> still be
   checked. A checkpoint that fails verification <bcp14>MUST NOT</bcp14> be
   treated as redacted, whatever it claims about its own totals.</t>
          </li>
          <li>
            <t>Every chained receipt <bcp14>MUST</bcp14> fall in exactly one checkpoint
window. A gap or double count <bcp14>MUST</bcp14> be reported as a window
coverage failure (<tt>MUST-T11-7</tt>, <tt>MUST-T11-8</tt>). The identifier
<tt>window-coverage</tt> <bcp14>SHOULD</bcp14> be used for this condition.</t>
          </li>
          <li>
            <t>Walk checkpoints in epoch order. <tt>prevCheckpointHash</tt> <bcp14>MUST</bcp14>
equal the SHA-256 of the previous checkpoint COSE bytes, or null
for genesis (<tt>MUST-T11-4</tt>). The identifier
<tt>checkpoint-total-mismatch</tt> <bcp14>SHOULD</bcp14> be used for a broken chain,
which is the fourth condition its table row names.</t>
          </li>
          <li>
            <t>If two successfully verified checkpoints share an epoch number
and have different hashes, the verifier <bcp14>MUST</bcp14> report
equivocation (<tt>MUST-T11-3</tt>). The identifier <tt>equivocation</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. The checkpoints compared
here are those presented <strong>together with</strong> any carried by
verified transparency receipts (step 15). Comparing only the
presented chain cannot raise this finding: <tt>MUST-T11-8</tt>, applied
in step 12, requires that chain's epochs to be consecutive, so no
two of its members share an epoch. A copy recorded by a witness
is where the second one is found.</t>
          </li>
          <li>
            <t>If transparency receipts were supplied, verify them against the
out-of-band transparency key (<xref target="witness-root"/>); receipts that
cannot be checked that way are not evidence in either direction
and the verifier reports that it left them out (<tt>MUST-T11-15</tt>);
the identifier <tt>unauthenticated-witness</tt> <bcp14>SHOULD</bcp14> be used for this
condition.
Discard any whose signature fails (<tt>MUST-T11-10</tt>). A surviving
receipt whose statement body verifies against the issuer root is
a statement that issuer published; one that does not is another
party's, and is not this issuer equivocating (<tt>MUST-T11-16</tt>).
The survivors are the recorded statement hashes used in step 16. Where a receipt also carries
the statement body, discard that body unless its statement hash
equals the one the receipt binds and it verifies as a
checkpoint; the surviving bodies are what step 14 compares.
Discarding a body does not discard its receipt.</t>
          </li>
          <li>
            <t>Compare the surviving witness records against the presented
chain (<tt>MUST-T11-11</tt>). For each presented checkpoint with no
surviving record, report that it is not anchored; the
identifier <tt>checkpoint-not-anchored</tt> <bcp14>SHOULD</bcp14> be used. This is a
warning: a witness may have been configured after the
checkpoint was issued, and an operator's own gap is not
evidence of concealment. For each surviving record whose
statement is absent from the presented chain, report that a
recorded checkpoint was withheld; the identifier
<tt>checkpoint-withheld</tt> <bcp14>SHOULD</bcp14> be used. This is a finding and the
audit <bcp14>MUST</bcp14> fail. A record that carries no statement body cannot
say whose statement it binds, so it <bcp14>MUST NOT</bcp14> produce this
finding; it is reported as an entry that could not be attributed
and makes the guarantee conditional, because a real withholding
must not be buried by removing the body (<tt>MUST-T11-17</tt>). Such a
record still establishes anchoring in the first half of this
step: proving that a checkpoint was logged needs only its hash. The verifier <bcp14>MUST NOT</bcp14> report a withheld
checkpoint as a window coverage failure (<tt>MUST-T11-11</tt>).</t>
          </li>
          <li>
            <t>If any finding remains that is not a warning (a warning is a
condition that only makes the completeness guarantee
conditional), the audit <bcp14>MUST</bcp14> fail (<tt>MUST-T10-4</tt>).</t>
          </li>
        </ol>
      </section>
      <section anchor="finding-codes">
        <name>Finding codes</name>
        <t>The identifiers below are for diagnostic output. They are not an
interoperability surface. A finding object that can be carried on
the wire is outside the scope of this document and may be defined
later. Two implementations interoperate when they accept the same
inputs and fail or warn on the same conditions, not when they
print the same strings.</t>
        <t>A condition that makes the audit fail is a finding. A condition
that only makes the completeness guarantee conditional is a
warning. Warnings <bcp14>MUST</bcp14> still appear in operator-facing output
(<tt>MUST-T10-14</tt>).</t>
        <table>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Effect</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">settlement-without-receipt</td>
              <td align="left">audit fails</td>
              <td align="left">Extract row has no matching settled receipt, or a repeating <tt>ref</tt> settled more than it receipted</td>
            </tr>
            <tr>
              <td align="left">receipt-without-settlement</td>
              <td align="left">audit fails</td>
              <td align="left">Settled receipt ref is not on the extract</td>
            </tr>
            <tr>
              <td align="left">settlement-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">Same <tt>ref</tt>, different amount or currency, including a repeating <tt>ref</tt> that settled less than it receipted</td>
            </tr>
            <tr>
              <td align="left">duplicate-ref</td>
              <td align="left">audit fails</td>
              <td align="left">Ref appears more than once on one side</td>
            </tr>
            <tr>
              <td align="left">settled-without-ref</td>
              <td align="left">audit fails</td>
              <td align="left">
                <tt>outcome</tt> is settled and <tt>x402PaymentRef</tt> is null</td>
            </tr>
            <tr>
              <td align="left">receipt-chain-break</td>
              <td align="left">audit fails</td>
              <td align="left">Signature or <tt>prevReceiptHash</tt> failed</td>
            </tr>
            <tr>
              <td align="left">checkpoint-total-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">Totals, count, signature, or checkpoint chain failed</td>
            </tr>
            <tr>
              <td align="left">checkpoint-head-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">
                <tt>chainHeadHash</tt> is not the last in-window receipt</td>
            </tr>
            <tr>
              <td align="left">equivocation</td>
              <td align="left">audit fails</td>
              <td align="left">Two distinct hashes for one epoch</td>
            </tr>
            <tr>
              <td align="left">window-coverage</td>
              <td align="left">audit fails</td>
              <td align="left">Gap, overlap, or non-adjacent / non-consecutive windows</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-extract</td>
              <td align="left">guarantee conditional</td>
              <td align="left">No rail key is pinned and the extract carries no signature the verifier could check; with a pinned key the extract fails closed as <tt>extract-key-mismatch</tt> instead</td>
            </tr>
            <tr>
              <td align="left">extract-key-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">Extract is signed by a key other than the pinned rail key, or does not verify against it</td>
            </tr>
            <tr>
              <td align="left">trust-key-unreadable</td>
              <td align="left">audit fails</td>
              <td align="left">A pinned key - rail, issuer, or manifest publisher - could not be decoded; the verifier's configuration is at fault, and nothing falls back to the keys the objects carry</td>
            </tr>
            <tr>
              <td align="left">issuer-key-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">An object is signed by a key other than the pinned issuer key, so it is not coverage for anything it names</td>
            </tr>
            <tr>
              <td align="left">countersign-key-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">A countersignature is by a key other than the one pinned for that payee</td>
            </tr>
            <tr>
              <td align="left">countersign-missing</td>
              <td align="left">conditional</td>
              <td align="left">A payee key is pinned and a settled receipt for that payee carries no countersignature</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-issuer</td>
              <td align="left">conditional</td>
              <td align="left">No verifier-supplied issuer key and at least one receipt or checkpoint presented; those objects were checked against the keys they carry</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-witness</td>
              <td align="left">conditional</td>
              <td align="left">No verifier-supplied transparency key; inclusion receipts were left out of the comparison</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-countersigner</td>
              <td align="left">conditional</td>
              <td align="left">No verifier-supplied payee key; a countersignature is present but proves no approval</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-manifest</td>
              <td align="left">conditional</td>
              <td align="left">No verifier-supplied manifest key and a Trade Manifest was presented; it was checked against the key it carries. An audit presented with no Trade Manifest is not this condition</td>
            </tr>
            <tr>
              <td align="left">manifest-key-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">A presented Trade Manifest is signed by a key other than the pinned publisher key, or does not verify against it</td>
            </tr>
            <tr>
              <td align="left">manifest-covers-no-receipt</td>
              <td align="left">conditional</td>
              <td align="left">A presented Trade Manifest is referenced by no presented receipt, including aborted ones and those outside the extract window; the terms were attributed but no receipt names them</td>
            </tr>
            <tr>
              <td align="left">manifest-terms-mismatch</td>
              <td align="left">audit fails under a usable issuer pin; warning without one</td>
              <td align="left">A receipt names this Trade Manifest but its amount, currency or settlement time departs from the manifest; a gate applying <tt>MUST-T8-2</tt> and <tt>MUST-T3-3</tt> would have refused the payment. The two severities are the two branches of <tt>MUST-T8-9</tt></td>
            </tr>
            <tr>
              <td align="left">witness-entry-unattributable</td>
              <td align="left">conditional</td>
              <td align="left">The witness holds a statement this chain does not present, carrying no body to say whose it is</td>
            </tr>
            <tr>
              <td align="left">extract-scope-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">A record falls outside the declared window, or the extract does not cover the expected account, rail, or window</td>
            </tr>
            <tr>
              <td align="left">extract-settlement-mismatch</td>
              <td align="left">audit fails</td>
              <td align="left">A caller-supplied settlement list disagrees with the extract; the extract is authoritative</td>
            </tr>
            <tr>
              <td align="left">malformed-amount</td>
              <td align="left">audit fails</td>
              <td align="left">An amount on a <tt>ref</tt> already reported as repeating that could not be parsed as an integer</td>
            </tr>
            <tr>
              <td align="left">unstated-audit-window</td>
              <td align="left">guarantee conditional</td>
              <td align="left">The verifier stated no period, so the extract defined its own</td>
            </tr>
            <tr>
              <td align="left">countersign-bad</td>
              <td align="left">audit fails</td>
              <td align="left">Present payee countersignature failed verify (signature, content type, or payload binding); a countersignature by a key other than the pinned payee key is <tt>countersign-key-mismatch</tt></td>
            </tr>
            <tr>
              <td align="left">checkpoint-withheld</td>
              <td align="left">audit fails</td>
              <td align="left">A verified transparency receipt binds a checkpoint the presented chain does not contain</td>
            </tr>
            <tr>
              <td align="left">checkpoint-not-anchored</td>
              <td align="left">guarantee conditional</td>
              <td align="left">A witness was supplied and holds no verified receipt for this checkpoint</td>
            </tr>
            <tr>
              <td align="left">checkpoint-totals-redacted</td>
              <td align="left">guarantee conditional</td>
              <td align="left">The checkpoint was signed with <tt>totals</tt> null, so the totals comparison could not be made</td>
            </tr>
          </tbody>
        </table>
        <t>A finding that puts the extract itself in doubt (<tt>extract-key-mismatch</tt>,
<tt>trust-key-unreadable</tt>, <tt>extract-scope-mismatch</tt>, or
<tt>extract-settlement-mismatch</tt>) <bcp14>MUST</bcp14> also prevent an unconditional
guarantee, not merely fail the audit. A finding that puts a presented
Trade Manifest in doubt (<tt>manifest-key-mismatch</tt>, or
<tt>trust-key-unreadable</tt> on the manifest pin) does the same.</t>
        <t>An unconditional guarantee therefore requires all of: an extract, a
pinned rail key the extract's signature verifies against, a stated
period the extract covers, an issuer root for whatever receipts and
checkpoints are presented, a manifest root for whatever Trade Manifest
is presented, no finding that puts the extract in
doubt, and no warning that withholds part of the comparison. A
checkpoint whose totals were signed as withheld
(<tt>checkpoint-totals-redacted</tt>) removes a comparison the guarantee
rests on, and a presented checkpoint a supplied witness does not
hold (<tt>checkpoint-not-anchored</tt>) leaves part of the chain
unwitnessed. Either one makes the result conditional. Anything less
than the whole list is conditional, and the report <bcp14>MUST</bcp14> say so.</t>
        <t>An implementation <bcp14>MUST</bcp14> make the guarantee and any warnings visible in
whatever human-readable audit report it produces under this document,
not only in a returned structure (<tt>MUST-T10-14</tt>). A report that says the books balance while withholding
that the balance is conditional invites the reader to take a
conditional result for an unconditional one.</t>
        <t>Checkpoints <bcp14>SHOULD</bcp14> be registered with a Transparency Service
(<tt>SHOULD-T11-5</tt>). A test deployment <bcp14>MAY</bcp14> use an in-process
append-only log as the witness (<tt>MAY-T11-6</tt>). Cedulon still <bcp14>MUST
NOT</bcp14> take custody.</t>
        <t>The guarantee named above is about completeness against the extract,
which is the subject of T10. It is not a claim that no checkpoint was
suppressed. Suppression is the subject of T11, and a report <bcp14>MUST NOT</bcp14>
be read as settling it when no witness was consulted: with no
transparency receipts, the presented chain is self-consistent by
construction and says nothing about what it left out (<tt>MUST-T11-9</tt>).
A verifier that consulted a witness and found every presented
checkpoint recorded, with nothing recorded that was not presented,
has discharged T11 for the period those receipts cover, and for no
longer.</t>
      </section>
    </section>
    <section anchor="lifecycle">
      <name>Lifecycle</name>
      <ol spacing="normal" type="1"><li>
          <t><strong>Manifest.</strong> Parties sign a Trade Manifest (optional for metered
API spend; required for goods with acceptance criteria).</t>
        </li>
        <li>
          <t><strong>Policy check.</strong> The adapter submits a structured request to the
PDP. Default is deny. An allow is a Decision Token
(<tt>MUST-T6-4</tt>).</t>
        </li>
        <li>
          <t><strong>Payment.</strong> On allow, the adapter performs the x402 (or other
rail) exchange using exactly the decision fields (<tt>MUST-T6-1</tt>).
The Decision Token is consumed (<tt>MUST-T6-2</tt>). A reused nonce is
denied (<tt>MUST-T3-1</tt>, <tt>MUST-T3-2</tt>). A tampered or expired token
is denied (<tt>MUST-T6-5</tt>).</t>
        </li>
        <li>
          <t><strong>Receipt.</strong> The Receipt Issuer signs a Spend Receipt. Rail
credentials <bcp14>MUST NOT</bcp14> appear in the receipt, logs, or tool
results (<tt>MUST-T5-2</tt>, <tt>MUST-T7-1</tt>).</t>
        </li>
        <li>
          <t><strong>Dispute Evidence Bundle.</strong> If delivery bytes do not match the
acceptance-criteria hash, an implementation <bcp14>MUST</bcp14> be able to emit
a bundle of manifest + receipt + delivery hash (<tt>MUST-T8-3</tt>).
The bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow
release (<tt>MUST-T8-4</tt>).</t>
        </li>
      </ol>
    </section>
    <section anchor="policy-semantics">
      <name>Policy Semantics</name>
      <t>Policy is default deny. The engine understands three families of
rule:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Limit:</strong> maximum amount per payment; maximum cumulative amount
per window (<tt>MUST-T2-2</tt>).</t>
        </li>
        <li>
          <t><strong>Velocity:</strong> maximum number of allowed payments per window
(<tt>MUST-T2-1</tt>).</t>
        </li>
        <li>
          <t><strong>Scope:</strong> optional allow-lists for payee, currency, and tool
name.</t>
        </li>
      </ul>
      <t>Fail-closed: missing engine, crash, or exception yields deny
(<tt>MUST-T2-3</tt>). Implementations <bcp14>SHOULD</bcp14> emit stable reason codes
(<tt>SHOULD-T2-5</tt>). Decision tokens <bcp14>SHOULD</bcp14> expire after a short TTL
(<tt>SHOULD-T6-3</tt>).</t>
      <t>The agent-facing spend interface <bcp14>MUST</bcp14> invoke the PDP and <bcp14>MUST NOT</bcp14>
expose a parallel ungated rail call to the model (<tt>MUST-T5-1</tt>).</t>
    </section>
    <section anchor="anchoring">
      <name>SCITT Anchoring</name>
      <t>A Receipt Issuer or relying party <bcp14>MAY</bcp14> construct a SCITT Signed
Statement whose payload is either the Spend Receipt COSE object or a
privacy profile (<xref target="privacy"/>) and register it with a Transparency
Service <xref target="RFC9943"/>. The service returns a COSE receipt
<xref target="RFC9942"/>. Embedding that receipt yields a Transparent Statement.
Cedulon does not define a new transparency algorithm.</t>
      <t>An epoch checkpoint <bcp14>MUST</bcp14> be registrable on the same terms
(<tt>MUST-T11-14</tt>). Its Signed Statement carries the checkpoint
COSE_Sign1 object as the payload and <tt>application/cedulon-checkpoint+cbor</tt>
as the content type, which is among the media types <xref target="iana"/> asks to
have registered and which, until then, is a placeholder like the rest.
Nothing else about registration differs from a receipt.</t>
      <t>This is a short section for a requirement -01 was missing, and the
omission mattered more than its length suggests. -01 asked for
checkpoints to be registered (<tt>SHOULD-T11-5</tt>) while profiling only
the receipt here, so the object carrying the suppression guarantee
had no stated form to be registered in. Two implementations could
follow -01 to the letter and register incomparable things.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>A public transparency encoding <bcp14>MUST</bcp14> support omitting or hashing
payer and payee identifiers and <bcp14>MUST</bcp14> support amount redaction or
bucket encoding (<tt>MUST-T9-1</tt>). Implementations <bcp14>MUST NOT</bcp14> write
government-ID numbers, payment-instrument PAN, or street address
into a public statement (<tt>MUST-T9-2</tt>). Default public anchors
<bcp14>SHOULD</bcp14> publish <tt>policyHash</tt>, <tt>manifestHash</tt>, <tt>receiptHash</tt>, and
<tt>timestampMs</tt> rather than full claims (<tt>SHOULD-T9-3</tt>). A private
auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band
(<tt>MAY-T9-4</tt>).</t>
      <t>The paragraph above counts receipt fields. A checkpoint publishes
something a receipt does not: a per-currency total for a whole
window, which discloses trading volume even when every individual
receipt is redacted (<tt>MUST-T9-5</tt>). -01 gave no rule for it, so an
implementation could publish that total, or withhold it in a way no
verifier could recognise, and neither reading contradicted the text.</t>
      <t>The rule is the one stated in <xref target="reconciliation"/>: <tt>totals</tt> <bcp14>MAY</bcp14> be
withheld by signing it as null (<tt>MUST-T11-12</tt>), and only that form
counts as a redaction (<tt>MUST-T11-13</tt>). The structural claims are not
redactable, because a verifier that cannot read the window or the
chain head cannot check anything at all, and a checkpoint that hid
them would be indistinguishable from a broken one.</t>
      <t>Withholding is honest and it is also a cost: a verifier that cannot
recompute the totals says so, and the completeness guarantee for that
window is conditional. A deployment that wants an unconditional result
publishes the totals; a deployment that wants the volume private
accepts a conditional one. What a deployment <bcp14>MUST NOT</bcp14> do is obtain
the unconditional result while withholding the evidence for it.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This section is authoritative for the protocol requirements in this
document. The companion repository file <tt>THREAT_MODEL.md</tt> is
informative and <bcp14>MUST NOT</bcp14> be read as overriding this section.</t>
      <t>Requirement identifiers take the form KEYWORD-Tn-k, where KEYWORD
is <bcp14>MUST</bcp14>, <bcp14>SHOULD</bcp14>, or <bcp14>MAY</bcp14>, n is the threat number in this section,
and k is a sequence number within that threat. <bcp14>MUST</bcp14>-T8-custody is
the custody prohibition under T8. The tables below define the
requirement text those citations refer to.</t>
      <section anchor="t1-prompt-injection-leads-to-unauthorized-spend">
        <name>T1: Prompt injection leads to unauthorized spend</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T1-1</td>
              <td align="left">The PDP <bcp14>MUST</bcp14> decide from structured request fields and stored policy, not from model-generated prose.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T1-2</td>
              <td align="left">A spend that is not bound to a verified Trade Manifest <bcp14>MUST</bcp14> be marked <tt>noManifest</tt> on the Spend Receipt and <bcp14>MUST</bcp14> still be subject to limit, velocity, and scope policy.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T1-3</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> require a human confirmation channel for first-use payees.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T1-4</td>
              <td align="left">An implementation <bcp14>MAY</bcp14> refuse all <tt>noManifest</tt> spend.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t2-runaway-agent-loop-spend">
        <name>T2: Runaway agent (loop spend)</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-1</td>
              <td align="left">Policy <bcp14>MUST</bcp14> express a maximum payment count per configured time window (velocity).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-2</td>
              <td align="left">Policy <bcp14>MUST</bcp14> express a maximum amount per payment and a maximum cumulative amount per window.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-3</td>
              <td align="left">If the PDP is unreachable, uninitialized, or throws during evaluation, the spend <bcp14>MUST</bcp14> be denied (fail-closed, default deny).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-4</td>
              <td align="left">A denied attempt <bcp14>MUST NOT</bcp14> increment the allowed-spend counters as if it had succeeded.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T2-5</td>
              <td align="left">Implementations <bcp14>SHOULD</bcp14> emit a stable reason code for velocity and limit denials.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t3-replay-of-payment-authority">
        <name>T3: Replay of payment authority</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-1</td>
              <td align="left">Every spend attempt that the PDP allows <bcp14>MUST</bcp14> include a nonce that the implementation has not accepted before.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-2</td>
              <td align="left">A second attempt that reuses a nonce <bcp14>MUST</bcp14> be denied.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-3</td>
              <td align="left">A Trade Manifest <bcp14>MUST</bcp14> carry an expiry; a spend against an expired manifest <bcp14>MUST</bcp14> be denied. The manifest is expired when the settlement time is strictly greater than <tt>expiresAtMs</tt>; a settlement at exactly <tt>expiresAtMs</tt> is within the manifest. The previous revision said "expired" without fixing the boundary, which two implementations can read two ways.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-4</td>
              <td align="left">A PDP allow decision <bcp14>MUST</bcp14> be bound to the SHA-256 of the canonical encoding of the request fields it evaluated, as stated in <xref target="hash-inputs"/>, and <bcp14>MUST</bcp14> be single-use.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T3-5</td>
              <td align="left">Nonce stores <bcp14>SHOULD</bcp14> persist across process restart when the deployment is not a test fixture.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t4-receipt-forgery-or-repudiation">
        <name>T4: Receipt forgery or repudiation</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-1</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> be signed by the Receipt Issuer over the deterministic CBOR encoding of its claims, as profiled in <xref target="cose-profile"/>. The phrase "canonical encoding" is reserved for JSON documents (<xref target="canonical-json"/>); the previous revision used it for both and left a reader to work out which was meant.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-2</td>
              <td align="left">Verifiers <bcp14>MUST</bcp14> reject a receipt whose signature does not validate or whose canonical bytes do not match the signed payload.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-3</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>payer</tt>, <tt>payee</tt>, <tt>amount</tt>, <tt>currency</tt>, <tt>policyHash</tt>, <tt>timestampMs</tt>, and <tt>nonce</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-4</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>manifestHash</tt> or an explicit <tt>noManifest</tt> flag, never an ambiguous empty hash. Empty optional values are CBOR null; labels are never absent.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T4-5</td>
              <td align="left">Receipts <bcp14>SHOULD</bcp14> form a hash chain (<tt>prevReceiptHash</tt>) so omission is detectable within one issuer stream.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T4-6</td>
              <td align="left">Parties <bcp14>MAY</bcp14> register the signed receipt as a SCITT statement to obtain a COSE receipt.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-7</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>outcome</tt> (<tt>settled</tt> or <tt>aborted</tt>). A settled receipt <bcp14>MUST</bcp14> have a non-null rail ref. Aborted receipts <bcp14>MUST NOT</bcp14> enter checkpoint totals.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-8</td>
              <td align="left">COSE_Sign1 protected headers <bcp14>MUST</bcp14> use alg -19 (Ed25519), a mandatory <tt>kid</tt>, and a payload-specific content type. Verifiers <bcp14>MUST</bcp14> reject a <tt>kid</tt> that does not match the configured issuer key.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-9</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the issuer public key out of band and <bcp14>MUST</bcp14> verify Spend Receipt and epoch checkpoint signatures against that key, not against a key the object carries. A verifier without such a key that is presented with any Spend Receipt or epoch checkpoint <bcp14>MUST</bcp14> report the completeness guarantee as conditional. An audit presented with neither rests on the extract alone and is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-10</td>
              <td align="left">A receipt that does not verify against the pinned issuer key <bcp14>MUST NOT</bcp14> count as coverage for the settlement it names, and that settlement <bcp14>MUST</bcp14> still be reported as uncovered. Reporting the mismatch is not sufficient on its own.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-11</td>
              <td align="left">Pinned issuer keys <bcp14>MUST</bcp14> be compared by SubjectPublicKeyInfo DER encoding. A pinned key that cannot be decoded <bcp14>MUST</bcp14> be reported as a verifier configuration fault rather than as a mismatch, and where no pinned key decodes, the verifier <bcp14>MUST NOT</bcp14> fall back to the keys the objects carry.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-12</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> accept an issuer, publisher, witness, or rail root comprising more than one key, so that a key rotation inside the audited window does not require it to abandon pinning.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-13</td>
              <td align="left">A payee countersignature <bcp14>MUST NOT</bcp14> be treated as evidence of payee approval unless it verifies against a payee key the verifier obtained out of band.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-14</td>
              <td align="left">Where a verifier has pinned a key for a payee, a settled receipt naming that payee and carrying no countersignature <bcp14>MUST</bcp14> be reported, so that deleting the evidence does not delete the question.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-15</td>
              <td align="left">A verifier that is presented with a Trade Manifest <bcp14>MUST</bcp14> obtain the publisher public key out of band and <bcp14>MUST</bcp14> verify the manifest signature against that key, not against a key the manifest carries. A pin that cannot be read <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>; a readable pin the manifest does not answer to <bcp14>MUST</bcp14> be reported as <tt>manifest-key-mismatch</tt> and <bcp14>MUST</bcp14> fail the audit. A verifier without such a key that is presented with a Trade Manifest <bcp14>MUST</bcp14> report the completeness guarantee as conditional. An audit presented with no Trade Manifest is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-16</td>
              <td align="left">A policy decision point presented with a Trade Manifest it cannot verify against a key supplied out of band <bcp14>MUST</bcp14> refuse the payment. Settling and reporting the doubt afterwards is not available to it: the receipt carries the manifest hash as terms the named party agreed to.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-17</td>
              <td align="left">A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the manifest hash against the <tt>manifestHash</tt> of the receipts presented to the audit, including aborted ones, before any extract window is applied and before any issuer key is applied, and <bcp14>MUST</bcp14> report a presented manifest that no presented receipt references. Verifying who published the terms does not establish that any receipt names them, and whether a hash appears is a question a verifier can answer from a document nobody vouches for. An audit presented with no Trade Manifest is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-18</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> refuse a CBOR map that carries a duplicate encoded key. The encoding rules forbid producing one; accepting one accepts a document no conforming encoder can produce, and leaves two decoders free to disagree about which value was signed.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-19</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> impose a bound on encoded size, nesting depth, and the number of elements it will decode from an audit input, and <bcp14>MUST</bcp14> refuse an input that exceeds a bound with a named refusal rather than by exhausting memory or the stack. It <bcp14>SHOULD</bcp14> document the bounds it applies. This document fixes no numbers: the bound is deployment policy, the named refusal is not.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t5-policy-bypass-via-direct-rail-access">
        <name>T5: Policy bypass via direct rail access</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T5-1</td>
              <td align="left">The agent-facing spend interface <bcp14>MUST</bcp14> invoke the PDP and <bcp14>MUST NOT</bcp14> expose a parallel ungated rail call to the model.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T5-2</td>
              <td align="left">Rail credentials, wallet handles, and facilitator tokens <bcp14>MUST NOT</bcp14> be placed in tool results or prompts.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T5-3</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> run the PDP and signing keys in a process the model runtime cannot write.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T5-4</td>
              <td align="left">A deployment <bcp14>MAY</bcp14> use OS or hardware isolation between the model and the PDP.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t6-toctou-between-policy-check-and-payment">
        <name>T6: TOCTOU between policy check and payment</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-1</td>
              <td align="left">Payment settlement <bcp14>MUST</bcp14> use the same six <tt>requestHash</tt> fields the PDP evaluated: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-2</td>
              <td align="left">An allow decision <bcp14>MUST</bcp14> be consumed on the first settlement attempt, success or fail-closed abort, and <bcp14>MUST NOT</bcp14> authorize a later different request.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T6-3</td>
              <td align="left">Implementations <bcp14>SHOULD</bcp14> treat a decision older than a short TTL as expired.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-4</td>
              <td align="left">An allow Decision Token <bcp14>MUST</bcp14> be COSE_Sign1 with CWT private-use labels -70301..-70305 (<tt>requestHash</tt>, <tt>policyHash</tt>, <tt>expiryMs</tt>, <tt>nonce</tt>, <tt>singleUseId</tt>) and content type <tt>application/cedulon-decision+cbor</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-5</td>
              <td align="left">A party that accepts a Decision Token <bcp14>MUST</bcp14> reject a failed signature, a <tt>kid</tt> or content-type mismatch, a claim-map mismatch, or an expired <tt>expiryMs</tt>. The token is expired when the evaluation time is strictly greater than <tt>expiryMs</tt>; at exactly <tt>expiryMs</tt> it is not.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-6</td>
              <td align="left">A consumer of a Decision Token <bcp14>MUST</bcp14> verify it against its own issuing key and <bcp14>MUST NOT</bcp14> accept a token it cannot check that way. The consumer issued the token, so asking the token which key to check it against is a question that answers itself.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t7-signing-key-leakage">
        <name>T7: Signing-key leakage</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-1</td>
              <td align="left">Secret key material <bcp14>MUST NOT</bcp14> appear in receipts, checkpoints, manifests, decision tokens, logs, or example output.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-2</td>
              <td align="left">Example and test keys <bcp14>MUST</bcp14> be generated at runtime or stored as clearly fake fixtures, never as production secrets.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T7-3</td>
              <td align="left">Production deployments <bcp14>SHOULD</bcp14> use an HSM or OS key store and <bcp14>SHOULD</bcp14> rotate keys.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T7-4</td>
              <td align="left">Implementations <bcp14>MAY</bcp14> encrypt keys at rest.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-5</td>
              <td align="left">An implementation that stores a signing key in the clear <bcp14>MUST</bcp14> report the protection it actually obtained, measured from the stored object rather than derived from the platform. A mount that ignores filesystem permissions accepts the call and protects nothing.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-6</td>
              <td align="left">A writable directory anywhere on the path to a stored signing key makes the file permission moot, and a symbolic link on that path hands the destination to whoever placed it. An implementation <bcp14>MUST</bcp14> refuse both rather than report the key as protected.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t8-counterparty-price-gouging-or-defective-delivery">
        <name>T8: Counterparty price gouging or defective delivery</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-1</td>
              <td align="left">A Trade Manifest <bcp14>MUST</bcp14> bind goods or service description, price, currency, acceptance-criteria hash, cancel condition, and expiry.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-2</td>
              <td align="left">A spend bound to a manifest <bcp14>MUST</bcp14> be denied if the requested amount or currency differs from the manifest. Amount and currency are compared as the exact octets of their text strings: no case folding, no Unicode normalisation, no numeric reinterpretation. The amount syntax already forbids the leading zero that would make two spellings of one number, and a verifier that folds case to accept a currency accepts a token the issuer did not write.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-3</td>
              <td align="left">If delivery bytes do not hash to the acceptance-criteria hash, the implementation <bcp14>MUST</bcp14> be able to produce a Dispute Evidence Bundle containing the manifest, the spend receipt, and the delivery hash.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-4</td>
              <td align="left">The Dispute Evidence Bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow release.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-7</td>
              <td align="left">
                <tt>manifestHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the signed Trade Manifest COSE bytes and <bcp14>MUST NOT</bcp14> include the issuer public key encoding.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T8-5</td>
              <td align="left">Manifests <bcp14>SHOULD</bcp14> reference an AP2 mandate hash when one exists.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-6</td>
              <td align="left">Parties <bcp14>MAY</bcp14> add an optional escrow actor as a third-party role interface; this project <bcp14>MUST NOT</bcp14> implement custody.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-custody</td>
              <td align="left">Implementations of this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-8</td>
              <td align="left">If a payee countersignature is present, a verifier <bcp14>MUST</bcp14> reject it when the signature fails, when <tt>kid</tt> or content type does not match the configured payee key, or when the payload is not the issuer COSE_Sign1 bytes.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-9</td>
              <td align="left">A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the amount, currency and settlement time of every receipt that names it, aborted ones included, against the manifest amount, currency and expiry - amount and currency on the exact-octet terms of <tt>MUST-T8-2</tt>, time on the boundary of <tt>MUST-T3-3</tt> - and <bcp14>MUST</bcp14> report a receipt that departs from them. Where a usable issuer key is pinned (a pinned issuer root at least one of whose keys the verifier can decode), the comparison is made over the receipts that verify under it and a departure <bcp14>MUST</bcp14> fail the audit. Where no usable issuer key is pinned, the departure <bcp14>MUST</bcp14> still be reported and <bcp14>MUST NOT</bcp14> by itself fail the audit: this requirement charges a party with departing from terms it signed, and a charge that no key stands behind is one a forged receipt can invent against an honest payer. This differs from <tt>MUST-T4-17</tt> on purpose. That requirement asks whether terms were named, which an unattributable document can answer; this one makes an accusation, which it cannot. <tt>MUST-T8-2</tt> and <tt>MUST-T3-3</tt> bind the gate; an audit reads the record after the gate is gone, so without this the receipt can carry the hash of terms it breaks. Receipts that do not name the manifest are not measured against it.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-9</td>
              <td align="left">A payee <bcp14>MAY</bcp14> attach a detached COSE_Sign1 countersignature over the issuer receipt bytes. Absence <bcp14>MUST NOT</bcp14> invalidate the issuer receipt.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="must-t8-custody">
        <name>MUST-T8-custody</name>
        <t>Implementations of this specification <bcp14>MUST NOT</bcp14> take custody of
funds or operate escrow. See also <xref target="escrow-role"/>.</t>
      </section>
      <section anchor="t9-pii-leakage-into-the-transparency-log">
        <name>T9: PII leakage into the transparency log</name>
        <t>See also <xref target="privacy"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-1</td>
              <td align="left">A transparency encoding <bcp14>MUST</bcp14> support omitting or hashing payer/payee identifiers and <bcp14>MUST</bcp14> support amount redaction or range/bucket encoding.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-2</td>
              <td align="left">Implementations <bcp14>MUST NOT</bcp14> write raw government-ID, payment-instrument PAN, or street address fields into a public transparency statement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T9-3</td>
              <td align="left">Default public anchors <bcp14>SHOULD</bcp14> publish <tt>policyHash</tt>, <tt>manifestHash</tt>, <tt>receiptHash</tt>, and timestamp rather than full claim sets.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T9-4</td>
              <td align="left">A private auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-5</td>
              <td align="left">A checkpoint discloses a per-currency window total, which the receipt-field rules above do not cover. Withholding it is governed by <bcp14>MUST</bcp14>-T11-12 and <bcp14>MUST</bcp14>-T11-13: null in the signed payload, and no other form of redaction honoured.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t10-secret-spend-via-rail-bypass">
        <name>T10: Secret spend via rail bypass</name>
        <t>See <xref target="reconciliation"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-1</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> match each extract settlement to a settled receipt on <tt>ref</tt> AND <tt>amount</tt> AND <tt>currency</tt>. An audit presented with no extract, no receipts and no checkpoints reports no completeness finding: there is nothing to be complete about. It is not thereby unconditional, and the warnings for the roots it was not given still apply.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-2</td>
              <td align="left">A settlement with no matching receipt <bcp14>MUST</bcp14> be reported as a completeness failure identified by that settlement <tt>ref</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-3</td>
              <td align="left">A settled Spend Receipt whose <tt>x402PaymentRef</tt> is not on the extract <bcp14>MUST</bcp14> be reported as a completeness failure.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-4</td>
              <td align="left">An audit that has any fail-severity completeness finding <bcp14>MUST</bcp14> fail (non-zero status in the companion tool).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T10-5</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> still apply T5 (no ungated rail in the model process). Completeness does not replace prevention.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-6</td>
              <td align="left">A <tt>ref</tt> that appears more than once among settled receipts or among extract rows <bcp14>MUST</bcp14> be reported as <tt>duplicate-ref</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-7</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the extract from the rail or from a rail signature. With no pinned rail key, an unverifiable extract <bcp14>MUST</bcp14> be reported as <tt>unauthenticated-extract</tt> and makes the completeness guarantee conditional. With a pinned key, see <bcp14>MUST</bcp14>-T10-8: the extract <bcp14>MUST</bcp14> fail closed rather than warn.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-8</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the rail public key out of band and <bcp14>MUST</bcp14> verify the extract signature against that key, not against a key the extract carries. Without such a key the guarantee is conditional.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-9</td>
              <td align="left">Keys <bcp14>MUST</bcp14> be compared by SubjectPublicKeyInfo DER encoding rather than by any text encoding. A pinned key that cannot be decoded <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>, not as a key mismatch.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-10</td>
              <td align="left">Every settlement record whose <tt>timestampMs</tt> falls outside the extract's declared window <bcp14>MUST</bcp14> be reported as <tt>extract-scope-mismatch</tt>, identified by that record's <tt>ref</tt>. This check <bcp14>MUST</bcp14> run whether or not a key is pinned.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-11</td>
              <td align="left">When the verifier states an expected account, rail, or window, an extract that does not cover it <bcp14>MUST</bcp14> fail closed as <tt>extract-scope-mismatch</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-12</td>
              <td align="left">When an extract is supplied, the records it carries are the subject of reconciliation. A settlement list from another source <bcp14>MUST NOT</bcp14> be substituted; a disagreeing list <bcp14>MUST</bcp14> be reported as <tt>extract-settlement-mismatch</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-13</td>
              <td align="left">A <tt>ref</tt> reported as <tt>duplicate-ref</tt> <bcp14>MUST</bcp14> still be reconciled by aggregate amount per currency, and a shortfall <bcp14>MUST</bcp14> state the unaccounted amount. An unparseable amount <bcp14>MUST</bcp14> be reported as <tt>malformed-amount</tt> without aborting the audit.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-14</td>
              <td align="left">An implementation <bcp14>MUST</bcp14> surface the guarantee and any warnings in any human-readable audit report it produces, not only in a returned structure.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-15</td>
              <td align="left">A verifier that has not stated the period under audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-window</tt> and <bcp14>MUST</bcp14> treat the guarantee as conditional, because an unstated period leaves the extract free to define its own.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-16</td>
              <td align="left">When an extract is supplied, only receipts whose <tt>timestampMs</tt> falls in its declared window are reconciled against it. A receipt outside that window <bcp14>MUST NOT</bcp14> be reported as a completeness failure against that extract.</td>
            </tr>
          </tbody>
        </table>
        <t>In <bcp14>MUST</bcp14>-T10-4, a completeness finding that makes the audit fail is
distinct from a warning that only makes the guarantee conditional.
The verification algorithm states that distinction by behaviour
(<xref target="reconciliation"/>).</t>
      </section>
      <section anchor="t11-checkpoint-suppression-or-rollback">
        <name>T11: Checkpoint suppression or rollback</name>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-1</td>
              <td align="left">An epoch checkpoint <bcp14>MUST</bcp14> be COSE-signed and <bcp14>MUST</bcp14> bind epoch number, time window, receipt count, chain-head hash, per-currency totals, and the previous checkpoint hash.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-2</td>
              <td align="left">Verifiers <bcp14>MUST</bcp14> reject a checkpoint whose signature fails, whose totals do not match settled receipts in the declared window, whose <tt>receiptCount</tt> is wrong, or whose <tt>chainHeadHash</tt> is not the last in-window receipt hash. Where the signed totals are null, <bcp14>MUST</bcp14>-T11-12 governs instead: there is no total to disagree with, the comparison is reported as skipped, and the count and chain-head checks still apply.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-3</td>
              <td align="left">Two verified checkpoints for the same epoch with different hashes <bcp14>MUST</bcp14> be reported as equivocation. The checkpoints compared are those presented together with those carried by verified transparency receipts; the presented chain alone cannot satisfy this requirement, because <bcp14>MUST</bcp14>-T11-8 makes its epochs consecutive.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-4</td>
              <td align="left">A broken checkpoint hash chain <bcp14>MUST</bcp14> fail verification.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T11-5</td>
              <td align="left">Checkpoints <bcp14>SHOULD</bcp14> be registered with a Transparency Service when one is configured.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T11-6</td>
              <td align="left">A test deployment <bcp14>MAY</bcp14> use an in-process append-only log as the witness.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-7</td>
              <td align="left">Checkpoint windows <bcp14>MUST</bcp14> be half-open <tt>[startMs, endMs)</tt>. Every chained receipt <bcp14>MUST</bcp14> fall in exactly one window.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-8</td>
              <td align="left">Presented checkpoint epochs <bcp14>MUST</bcp14> be consecutive and adjacent windows <bcp14>MUST</bcp14> meet at <tt>endMs = next.startMs</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-9</td>
              <td align="left">Prefix-deletion and suppression claims that go beyond the presented chain are conditional on an external transparency witness. A report <bcp14>MUST NOT</bcp14> present a completeness guarantee as settling suppression when no witness was consulted.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-10</td>
              <td align="left">Transparency receipts are an optional, separate input. A verifier given none <bcp14>MUST</bcp14> behave as it did without this input. A receipt <bcp14>MUST</bcp14> have its signature verified before it counts for anything. Where a receipt also carries the statement body, that body <bcp14>MUST NOT</bcp14> be relied on unless its statement hash equals the one the receipt binds and it verifies as a checkpoint; a discarded body does not discard its receipt.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-11</td>
              <td align="left">A verified receipt binding a checkpoint absent from the presented chain <bcp14>MUST</bcp14> be reported as a withheld checkpoint, and <bcp14>MUST NOT</bcp14> be reported as a window coverage failure. A presented checkpoint with no verified receipt, where a witness was supplied, <bcp14>MUST</bcp14> be reported and makes the guarantee conditional.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-12</td>
              <td align="left">Withheld checkpoint totals <bcp14>MUST</bcp14> be encoded as null in the signed payload. A verifier <bcp14>MUST</bcp14> report that the totals comparison was skipped and <bcp14>MUST</bcp14> treat the guarantee as conditional; <tt>receiptCount</tt> and <tt>chainHeadHash</tt> <bcp14>MUST</bcp14> still be checked.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-13</td>
              <td align="left">A redaction asserted outside the signed payload <bcp14>MUST NOT</bcp14> be honoured, and structural claims <bcp14>MUST NOT</bcp14> be redacted. A checkpoint that fails verification <bcp14>MUST NOT</bcp14> be treated as redacted.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-14</td>
              <td align="left">An epoch checkpoint <bcp14>MUST</bcp14> be registrable as a Signed Statement carrying the checkpoint COSE object with content type <tt>application/cedulon-checkpoint+cbor</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-15</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the transparency service public key out of band and <bcp14>MUST</bcp14> verify inclusion receipts against it. Receipts that cannot be checked that way <bcp14>MUST NOT</bcp14> be used as evidence in either direction, and the verifier <bcp14>SHOULD</bcp14> report that they were left out.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-16</td>
              <td align="left">A statement held by a pinned log <bcp14>MUST</bcp14> additionally verify against the issuer root before it counts as something that issuer published, so that another user's epoch in a shared log is not read as equivocation by this issuer.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-17</td>
              <td align="left">An inclusion receipt carrying no statement body <bcp14>MUST NOT</bcp14> be used to report a withheld checkpoint, because it cannot say whose statement it binds. It <bcp14>MUST NOT</bcp14> be discarded silently either: a real withholding must not be buried by removing the body.</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt>Issuer self-attestation:</dt>
          <dd>
            <t>A Receipt Issuer that also produces the only copy of the extract
can omit settlements. Completeness holds only against an
extract the verifier obtained from the rail or from a rail
signature.</t>
          </dd>
          <dt>Key rotation and revocation:</dt>
          <dd>
            <t><tt>kid</tt> identifies the verification key. This -04 does not specify
a revocation list. Verifiers <bcp14>MUST</bcp14> pin the issuer keys they
accept and <bcp14>MUST</bcp14> stop accepting a <tt>kid</tt> after an authenticated
revocation signal.</t>
          </dd>
          <dt>Timestamp trust:</dt>
          <dd>
            <t><tt>timestampMs</tt> is issuer-asserted. Window assignment uses that
field. A lying issuer can slide a receipt between windows.
External timestamping of receipts is out of scope for this revision; the
checkpoint witness covers checkpoints, not receipt
timestamps.</t>
          </dd>
          <dt>Collusion:</dt>
          <dd>
            <t>If the rail operator and the issuer collude, they can publish a
matching extract and receipt set that hides a real-world
settlement. Cedulon does not detect extract-external agreement.</t>
          </dd>
          <dt>Reversal, refund, and partial settlement:</dt>
          <dd>
            <t>State machines for reversal, refund, and partial settlement are
out of scope for this revision.</t>
          </dd>
        </dl>
      </section>
      <section anchor="escrow-role">
        <name>Optional escrow role</name>
        <t>Parties <bcp14>MAY</bcp14> name an escrow actor in a Trade Manifest as a
third-party role that holds funds under rules outside this protocol
(<tt>MAY-T8-6</tt>). Implementations of this specification <bcp14>MUST NOT</bcp14> take
custody or operate escrow (<tt>MUST-T8-custody</tt>).</t>
      </section>
      <section anchor="t12-settlement-without-a-recorded-receipt">
        <name>T12: Settlement without a recorded receipt</name>
        <t>The threats above are about a counterparty, a rail or an attacker.
This one is about the issuer's own implementation, and it produces
exactly the condition the rest of this document exists to make
detectable.</t>
        <t>An issuer that settles a payment, appends the receipt in memory and
then persists its state has three steps where it could have two
outcomes. If the write fails, the rail holds a settlement and the
receipt exists nowhere durable. The next start reads a state that
does not contain it, and the audit in <xref target="reconciliation"/> reports
<tt>settlement-without-receipt</tt> against an honest issuer that did
everything its own policy asked. The evidence is missing because the
issuer lost it, not because anyone hid it, and nothing in the report
can tell those apart.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-1</td>
              <td align="left">An issuer <bcp14>MUST NOT</bcp14> complete a settlement whose receipt it cannot record durably. The ability to record <bcp14>MUST</bcp14> be established before value moves, not after.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-2</td>
              <td align="left">Where a settlement has been made and its record cannot be completed, the issuer <bcp14>MUST</bcp14> undo the settlement in every place it still controls: in memory, on the rail ledger it controls, and in any later write it has not yet issued. A refused payment <bcp14>MUST NOT</bcp14> consume the nonce or the payment allowance it never used.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-3</td>
              <td align="left">Two issuers <bcp14>MUST NOT</bcp14> share one durable state. An implementation that permits it <bcp14>MUST</bcp14> fail loudly rather than let one writer overwrite the other's receipt, and the failure <bcp14>MUST</bcp14> name what an operator can act on.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-4</td>
              <td align="left">Where a settlement has entered a rail the issuer does not control, and the local record cannot be completed, the outcome is indeterminate. The issuer <bcp14>MUST NOT</bcp14> treat the payment as reversed, and <bcp14>MUST NOT</bcp14> return the authority to spend, unless it holds authenticated evidence that the rail did not complete the settlement or that a reversing entry completed.</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt>Ordering:</dt>
          <dd>
            <t>Settle-then-record is the natural order to write and the wrong one
to ship. The record is what makes the settlement accountable, so the
record is what has to be secured first (<tt>MUST-T12-1</tt>), and a
settlement that cannot be recorded has to be undone everywhere the
issuer still controls, including the nonce and the allowance it
never used (<tt>MUST-T12-2</tt>). That undo is what the in-process
<tt>RailLedger</tt> and the session tests measure. Once value has entered a
rail the issuer does not control, a local snapshot cannot retract it.
Persistence failing after that point leaves the outcome
indeterminate; authority is not returned without authenticated
evidence that the rail did not complete the settlement or that a
reversing entry did (<tt>MUST-T12-4</tt>).</t>
          </dd>
          <dt>Recovery:</dt>
          <dd>
            <t>A durable-state conflict is not necessarily fatal, but it <bcp14>MUST NOT</bcp14>
be silent, and an implementation that refuses every subsequent
write without offering a way back has turned a recoverable
condition into an outage. The reason reported has to separate the
cases an operator would act on differently (<tt>MUST-T12-3</tt>): a write
that conflicted with another writer, a write that failed, and a
state another process is holding. A single opaque failure leaves the
operator to guess which of those happened.</t>
          </dd>
          <dt>Observability:</dt>
          <dd>
            <t>A violation of this threat is not visible in the evidence a verifier
receives. The audit sees a settlement with no receipt and reports
<tt>settlement-without-receipt</tt>, which is the same finding an adversary
would produce, and nothing in the extract or the receipt set
distinguishes an issuer that lost the evidence from one that hid it.
That is why the requirements here fall on the issuer rather than on
the verifier, and why an operator-facing reason is required rather
than optional.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>CWT claim labels need no assignment: this profile uses private-use
integer labels below -65536.</t>
      <t>Media types do. This document defines five and makes their values a
normative check inside a protected COSE header (<tt>MUST-T4-8</tt>,
<tt>MUST-T6-5</tt>), so they cannot stay unregistered while that check stands.
If this work is taken up, the following should be registered in the
Standards Tree per <xref target="RFC6838"/>:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Media type</th>
            <th align="left">Carries</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">application/cedulon-receipt+cbor</td>
            <td align="left">Spend Receipt claim set</td>
          </tr>
          <tr>
            <td align="left">application/cedulon-checkpoint+cbor</td>
            <td align="left">Epoch checkpoint claim set</td>
          </tr>
          <tr>
            <td align="left">application/cedulon-manifest+cbor</td>
            <td align="left">Trade Manifest claim set</td>
          </tr>
          <tr>
            <td align="left">application/cedulon-decision+cbor</td>
            <td align="left">Decision Token claim set</td>
          </tr>
          <tr>
            <td align="left">application/cedulon-countersign+cbor</td>
            <td align="left">Payee countersignature</td>
          </tr>
        </tbody>
      </table>
      <t>For each: encoding is binary CBOR <xref target="RFC8949"/>; security considerations
are those in <xref target="security"/>; the change controller would be the IETF; the
contact is the author of this document. Until registration, an
implementation outside a closed deployment should expect these names to
change, and readers should treat them as placeholders rather than as
stable identifiers.</t>
    </section>
    <section anchor="impl-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publishing as an RFC.</t>
      <t>RFC 7942 <xref target="RFC7942"/> note.</t>
      <dl>
        <dt>Implementation:</dt>
        <dd>
          <t>A companion implementation with a runnable verification suite at
<eref target="https://github.com/dogrucanemek-alt/cedulon">https://github.com/dogrucanemek-alt/cedulon</eref>. The code is a profile
of this document, not a second specification. This -04 is not an
IETF working-group item.</t>
        </dd>
        <dt>Maturity:</dt>
        <dd>
          <t>Research code by a single implementer. Three readers have run the
code on their own machines against a pinned commit and reported
figures matching the author's: two from a clean clone of the whole
suite, one re-running the published reproduction. That is
byte-stability across environments, not an independent
implementation, and the distinction matters: the same code agreeing
with itself on three machines rules out a local accident and nothing
more. One reader reports an independent implementation of the Signed
Statement identity, kept deliberately separate from this codebase; no
independent implementation of the reconciliation algorithm is known
to the author.</t>
        </dd>
        <dt/>
        <dd>
          <t>The requirements the last two revisions added came out of five
adversarial rounds against the implementation, each one asking a
reviewer to break the code rather than to read it, with the reviewer
barred from changing it. Four of those rounds found a defect inside
the previous round's repair rather than in the original code, which
is the reason this section does not describe the result as settled.</t>
        </dd>
        <dt>Coverage:</dt>
        <dd>
          <t>The receipt, checkpoint, extract, reconciliation, and verification
algorithm are implemented, including the transparency witness input,
the withheld and not-anchored conditions, and signed totals
redaction. Requirements added in this revision and the previous one
are implemented
and covered by a red-then-green case before appearing in this text,
except <tt>MUST-T12-4</tt>, which is specified and not executed.
<tt>MUST-T4-17</tt> and <tt>MUST-T8-9</tt> were unpublished when the previous
revision was posted and are in the published packages now (see the
note on distribution below); <tt>MUST-T8-9</tt> is published in the
two-branch form this revision specifies rather than the single branch
the previous one did.
Some of those cases need POSIX file modes or symbolic links and
assert only there. Continuous integration runs the whole suite as a
non-root user on Linux and on macOS, and both assert every case, 311
of 311, with none skipped. Windows has no such job: the suite is run
there by hand and asserts 303 of the same 311, because file and
directory mode and symbolic-link refusal are not the access control
on that platform, and the eight cases that measure them skip with a
stated reason rather than returning silently. A green suite on
Windows therefore names what it did not cover instead of hiding it,
and is that much smaller a claim. The undo after a failed write is
exercised on Windows too, by making the state file read-only so the
atomic rename fails, and the protection report and the refusal to
settle without a durable record are checked on all three. An
independent runner reported the first distinction back from a Linux
run after this text claimed otherwise, and the sentence has been
corrected once per platform that joined: the second added the
reasons, the third removed a claim that the undo was untested after
it stopped being true, and this one follows a macOS job that stopped
being four files and became the whole suite.
The witness used in the suite is the in-process append-only log that
<tt>MAY-T11-6</tt> permits; the implementation has not been run against a
deployed Transparency Service, and it treats a receipt as a signature
over a statement, not as a proof of log membership. The escrow role,
reversal, refund, and partial settlement are not implemented.</t>
        </dd>
        <dt>Licensing:</dt>
        <dd>
          <t>Apache-2.0.</t>
        </dd>
        <dt>Contact:</dt>
        <dd>
          <t>The author of this document.</t>
        </dd>
        <dt>Experience:</dt>
        <dd>
          <t>Readers of -00, -01 and -02 have reported defects in each, and every
revision has been driven by what they found rather than by a plan.
-01 fixed a bypass of the completeness claim and a gap about which
key an extract is checked against. -02 repaired a defect reported
against -01 and independently confirmed by a second reader: the
object carrying the T11 guarantee was neither profiled for
registration nor read during verification.</t>
        </dd>
        <dt/>
        <dd>
          <t>The defect behind -03 was reported against the posted -02.
A reader asked whether the profile should accept a pinned witness key
and report an absent or mismatched pin explicitly. -02 Section 6.2 already
required a verifier to obtain the public key from an authenticated
channel and to reject a <tt>kid</tt> that does not match that key. What it
did not carry was the verification algorithm, the separate root
inputs, and the error semantics. Following the same question into
the implementation found the omission for the Spend Receipt, the
epoch checkpoint and the Decision Token. T12 came from neither
reader nor adversary, and not from the rounds of trying to break the
implementation either: it was found while writing the task for one
of them, in the ordering the implementation itself used, which
produced against the issuer the one condition this document exists
to make detectable.</t>
        </dd>
      </dl>
      <t>Note on distribution: the requirements the last two revisions add that
are in a published package are in the published <tt>@cedulon</tt> packages at version 0.7.0, not only in the
repository, with the exceptions named below. A reader can check a claim against an installed package
rather than against a working tree. That order is deliberate: -00
described requirements that its published package did not yet carry,
a reader found the discrepancy, and this document does not repeat it.
Versions 0.2.x and earlier predate everything in this revision.</t>
      <t>0.3.0 predated the manifest root and the T12 bound. It carried three
defects that only appear
away from the platform it was written on, which an independent runner
found by taking up a standing invitation to break it. A directory that
could not be written refused the lock before the record and left the
refusal as an uncaught exception rather than the reason this document
requires; the case for a symbolic link on the path used a call that
does not exist in the module system the package declares, so it never
reached its assertion; and repairing that revealed a fourth defect,
that the state fingerprint was read before the path was checked, so a
replaced path was reported as a conflicting writer rather than as a
hijacked destination. 0.3.1 closes all four. The manifest root
(<tt>MUST-T4-15</tt>) and the gate's refusal to settle against a manifest it
cannot attribute (<tt>MUST-T4-16</tt>) were published as 0.4.0 rather than as a patch: the
gate had been answering 200 to an unattributable manifest and writing
that manifest's hash into the receipt, and refusing it is a change in
behaviour that a version number ought to announce.</t>
      <t><tt>MUST-T4-17</tt> and <tt>MUST-T8-9</tt> were the exceptions in the previous
revision and are no longer; <tt>MUST-T12-4</tt> still is. The same independent
runner who took up the invitation against 0.4.0 reported that
attributing a manifest was not the same as establishing that anything
in the window was spent under it, which is the distinction that
<tt>MUST-T4-17</tt> now draws. A reader of this document then observed that
the distinction survives one step further out: a receipt can name the
manifest and still depart from its amount, currency or expiry, which
is what <tt>MUST-T8-9</tt> closes. Both were unpublished when the previous
revision was posted and both are in the published packages now, so a
reader can check either against an installed 0.7.0 rather than against
this tree. <tt>MUST-T8-9</tt> as published carries the two-branch form
specified here: a departure under a usable issuer pin is a finding and
fails the audit, and a departure with no usable pin is reported as a
warning that does not by itself fail it. The previous revision stated
the single branch, and the difference is deliberate rather than a
drafting slip; the reason is given where the requirement is defined.
Four repairs this revision's review rounds produced are in 0.7.0 and
were not in 0.6.0, so a reader comparing the two sees them. The MCP
boundary refuses an amount spelling the grammar forbids instead of
parsing and reprinting it, which had let <tt>01</tt> through as <tt>1</tt> and
erased the octets <tt>MUST-T8-2</tt> compares; <tt>signManifest</tt> holds the same
grammar its receipt counterpart always held; a decoder refusal keeps
its name on the audit surface instead of surfacing as a signature
failure, which <tt>MUST-T4-19</tt> requires; and no verifier throws on input
it cannot read, in either the CBOR or the JSON path, after an interim
shape that rethrew those names left a single oversized checkpoint able
to end an audit by exception rather than by finding.</t>
      <t><tt>MUST-T12-4</tt> is the one exception left in this revision. It is
specified, not executed: the suite and the published
server only drive the in-process <tt>RailLedger</tt>. There is no
authenticated external-rail path in this tree, so the indeterminate
outcome and the rule that forbids returning authority without
evidence have no red-then-green case. A reader checking
<tt>MUST-T12-4</tt> against an installed 0.7.0 will not find it.</t>
      <section anchor="changes-03">
        <name>Changes from -03</name>
        <t>This -04 has one subject: -03 could not be implemented from its own
text. Eighteen decision points were read out of it by someone working
from the words alone, and eight of them had two defensible answers.
Nothing here adds a capability. Everything here closes a place where
two conforming implementations would produce different bytes or reach
different verdicts.</t>
        <t>Five of those eight were the same defect wearing different clothes.
-03 hashed or signed a JSON document in four places and called the
encoding "canonical" without ever defining it, and named the digest for
some hash-valued fields and not others. <xref target="canonical-json"/> defines the
encoding by reference to <xref target="RFC8785"/>, and <xref target="hash-inputs"/> states, for
every hash-valued field, exactly which octets go in. The heaviest of
those was <tt>requestHash</tt>: -03 called it "the six-field hash" in the same
sentence that named SHA-256 for <tt>policyHash</tt>, and a reader was entitled
to conclude it was not a digest at all.</t>
        <t><tt>MUST-T8-9</tt> changes in a way a diff will show, and the change is
deliberate. -03 said an unpinned departure from manifest terms fails
the audit, full stop. An implementation showed what that permits: a
receipt signed by any key, carrying the right manifest hash and a wrong
amount, makes a verifier report a breach that never happened against a
payment reference the forger picks. The requirement now separates the
two cases and says why it differs from <tt>MUST-T4-17</tt>, which is a naming
question rather than a charge and is answered from the presented set
whether or not anything vouches for it.</t>
        <t><tt>MUST-T4-18</tt> and <tt>MUST-T4-19</tt> are new: -03 bound the encoder to
deterministic CBOR and said nothing about the decoder, neither about a
duplicate key nor about what a decoder does when an input is larger
than it is willing to read. The second fixes no numbers. A bound is
deployment policy; refusing by name rather than by running out of stack
is not.</t>
        <t><tt>MUST-T3-3</tt> and <tt>MUST-T8-2</tt> gain the boundary and the comparison rule
they were missing: whether a settlement exactly at expiry is inside the
manifest, and whether a currency may be case-folded before it is
compared. <tt>MUST-T10-1</tt> says what an audit with nothing in it reports.</t>
        <t>The acceptance-criteria hash had two readings and no way to signal
which one was used, so two implementations would have hashed the same
delivery differently. This revision defines one of them and puts the
other out of scope until something can say which is meant.</t>
        <t>The verification algorithm now names its data dependencies. -03 named
one and said nothing else fed another step, which stopped being true
once the issuer pin began deciding the attested set: the chain walk,
the reconciliation, the checkpoint comparisons and <tt>MUST-T8-9</tt> all
consume it, and the algorithm now says so, along with the two checks
that deliberately stay on the presented set. The two severities of
<tt>MUST-T8-9</tt> are now stated in the algorithm step and the finding
table as well as in the requirement, after an early draft of this
revision changed the requirement and left the step and the table
carrying the old unconditional verdict.</t>
        <t>Three encodings that could be read two ways are now stated once each:
<tt>kid</tt> is the SHA-256 of the SubjectPublicKeyInfo DER truncated to its
first 8 bytes, in that order; "the signed COSE_Sign1 octets" are the
untagged array, never tag 18; and the six-field request document is
given as an exact JSON shape, member by member, rather than as a list
of names. The hash-input table now covers <tt>acceptanceCriteriaHash</tt>
and says whose digest <tt>ap2MandateHash</tt> is. The Decision Token gains
the same expiry boundary <tt>MUST-T3-3</tt> states for the manifest.</t>
        <t>Appendix A no longer defers to the tests of an
implementation; a specification that points at code cannot be
implemented from its own text, which is the property this revision is
trying to restore.</t>
        <t>One change is metadata rather than text: the submission stream in the
document's header changes from independent to IETF. The Note to
Readers has named an eventual Standards Track intent since -00, and
<xref target="iana"/> asks for Standards Tree registration; neither belongs on the
Independent Stream. The rendered pages are unchanged by it.</t>
        <t>What has not changed: <tt>MUST-T12-4</tt> remains specified and not executed,
and this document still has no independent implementation written from
its text alone. The point of this revision is to make that possible,
not to claim it happened.</t>
      </section>
      <section anchor="changes-02">
        <name>Changes from -02</name>
        <t>-03 had two subjects. The first is that -02 stated a rule
for signed objects and left the implementation and the verification
algorithm without a counterpart for every object the rule applied to.
The second is T12, which no reader reported and which is not about an
adversary at all.</t>
        <t>-02 Section 6.2 already required a verifier to obtain the public key from an
authenticated channel (a preconfigured issuer set, a directory, or a
transparency statement) and to reject a message whose <tt>kid</tt> does not
match that key (<tt>MUST-T4-8</tt>). That rule was general. What -02 did not
carry was the verification algorithm that applies it to each signed
object, the separate root inputs a verifier supplies out of band, and
the error semantics that name a missing, unreadable, or mismatched
pin. A companion implementation that followed the algorithm it had,
rather than that prose, still checked a Spend Receipt, an epoch
checkpoint, a Decision Token and a transparency inclusion receipt
against the key travelling inside them. A receipt like that silences
the <tt>settlement-without-receipt</tt> finding for the settlement it names.
The completeness property is then computed over evidence that answers
to nobody. <xref target="trust-roots"/> states the missing algorithm and the
error semantics, and the verification algorithm now applies them.</t>
        <t>A reader raised the inclusion-receipt half of this against the posted
-02 after checking the archived text against the implementation
commit. Following it into the code turned up the other three, along
with two conditions that were not about keys at all.</t>
        <t>The first is that reporting a mismatch is not enough. An
implementation that names a foreign key and then still lets the
receipt match its settlement has described the attack in its output
while concluding that the books balance. <tt>MUST-T4-10</tt> now requires
the settlement to stay reported.</t>
        <t>The second is that an expectation which only fires when the evidence
is present can be cancelled by deleting the evidence. A pinned payee
key with no countersignature to check was silence, so removing a
countersignature removed the question with it. <tt>MUST-T4-14</tt> closes
that, and <tt>MUST-T11-17</tt> closes the same shape in the witness: an
inclusion receipt with its body stripped off can no longer bury a
withholding, while still not being allowed to accuse anyone.</t>
        <t>T12 is new and is not about an adversary. An issuer that settles,
appends the receipt in memory and then writes its state will, when
that write fails, leave the rail holding a settlement whose receipt
exists nowhere durable. Restarted, it reports
<tt>settlement-without-receipt</tt> against itself. The condition this
document exists to make detectable was reachable through the
implementation's own ordering, and no requirement in -02 said
otherwise.</t>
        <t>The same first subject carries five requirements this section has not
named so far, all of them stated in <xref target="trust-roots"/>. A pinned key that
cannot be decoded <bcp14>MUST NOT</bcp14> fall back to the keys the objects carry
(<tt>MUST-T4-11</tt>). An issuer root may comprise more than one key, and a
verifier must accept one that does, so a rotation inside the audited
window does not force it to choose between findings against honest
receipts and abandoning the pin (<tt>MUST-T4-12</tt>); the same set-of-keys
acceptance applies to a publisher, witness, or rail pin. The same out-of-band rule reaches the payee
countersignature (<tt>MUST-T4-13</tt>), the transparency witness
(<tt>MUST-T11-15</tt> and <tt>MUST-T11-16</tt>), the Decision Token, whose
consumer issued it and therefore already holds the key to check it
with (<tt>MUST-T6-6</tt>), and a presented Trade Manifest (<tt>MUST-T4-15</tt>).</t>
        <t>Two requirements belong to neither subject. <tt>MUST-T7-5</tt> and
<tt>MUST-T7-6</tt> come from measuring the protection a stored signing key
actually has instead of deriving it from the platform. A mount that
ignores filesystem permissions accepts the call and protects nothing,
and a writable directory or a symbolic link anywhere on the path makes
the file permission moot. They are stated because the implementation
reported protection it did not have.</t>
        <t>Two things are stated here that -02 got right and -03 kept
unchanged: the extract rule itself, and the treatment of a pinned key
the verifier cannot decode. What changed is their reach, and the
change is not backward compatible. Where a verifier pinned the rail
key, supplied no issuer key, and was presented with receipts or
checkpoints, -02 reported the guarantee as unconditional and -03
reports it as conditional. Nothing about the evidence
changed; what changed is that the guarantee now says which questions
were never asked. An audit presented with neither is unaffected, for
the reason given in <xref target="issuer-root"/>.</t>
      </section>
      <section anchor="changes">
        <name>Changes from -01</name>
        <t>-02 had one subject: the checkpoint, which carries the T11
guarantee against suppression and rollback, was not wired into
anything that could discharge it.</t>
        <t>A reader of -01 set out the gap and a second reader confirmed it
independently. Four things were wrong at once, and they were the same
thing seen from four sides. The SCITT anchoring section profiled the
Spend Receipt and not the checkpoint, so <tt>SHOULD-T11-5</tt> asked for
checkpoints to be registered without saying in what form
(<tt>MUST-T11-14</tt> now says). None of the steps of the verification
algorithm read a transparency receipt, so a deployment could follow
<tt>SHOULD-T11-5</tt> to the letter and still have a verifier that never
consulted the witness (steps 15 and 16 now do). <tt>MUST-T11-3</tt>,
equivocation, could not fire at all: the only checkpoints compared
were the presented ones, and <tt>MUST-T11-8</tt> requires those to be
consecutive, so no two of them can share an epoch. A second copy is
found in a witness, and nothing brought one in. And the checkpoint
binds a per-currency total for a window while the privacy section
counted only receipt fields, so a window total could be published, or
withheld, with no stated rule either way.</t>
        <t>The repairs are <tt>MUST-T11-10</tt> through <tt>MUST-T11-14</tt>. The transparency
receipt is a new optional input; supplying none leaves the verifier
behaving exactly as in -01, which is deliberate, because the point of
the witness is to add a claim that could not be made before, not to
withdraw one that could.</t>
        <t>Two decisions inside those repairs are worth stating on their own,
because a reader might reasonably have expected the other choice.</t>
        <ul spacing="normal">
          <li>
            <t>A recorded checkpoint the presented chain omits gets its own
identifier, <tt>checkpoint-withheld</tt>, rather than being folded into
<tt>window-coverage</tt> (<tt>MUST-T11-11</tt>). The reporter asked which way it
should go. Coverage says the record shown is incomplete; a withheld
checkpoint says the party under audit is holding a record it did
not show. An operator who sees one identifier for both cannot tell
an incomplete record from a concealed one, which is the distinction
the whole threat is about.</t>
          </li>
          <li>
            <t>A checkpoint with no receipt in a supplied witness is a warning
rather than a failure. A witness may be configured after
checkpoints have already been issued, and an operator's own gap in
anchoring is not evidence that anything was concealed. The
asymmetry is deliberate: what the witness holds and the chain does
not is a finding, what the chain holds and the witness does not is
a warning.</t>
          </li>
        </ul>
        <t>One change is not a repair of -01 but of the first attempt at this
revision, and it is recorded because the failure is instructive.
Signed totals were first made redactable through a field carried
alongside the checkpoint rather than inside the COSE payload. Anything
outside the signature is chosen by whoever presents the object, which
here is the party under audit, so a checkpoint whose signed totals
disagreed with its receipts could be re-presented as redacted and the
mismatch went unreported. Redaction is now inside the signature and a
redaction asserted anywhere else <bcp14>MUST</bcp14> be ignored (<tt>MUST-T11-12</tt>,
<tt>MUST-T11-13</tt>). This was the same shape as the bypass -01 was written
to close: a check that a party under audit could switch off.</t>
        <t>Reversal, refund, partial settlement, and the escrow role remain out
of scope and are still expected later, with no date. -01 said the same,
and no revision since has improved on it.</t>
        <t>The reporters are named in the Acknowledgments.</t>
      </section>
    </section>
    <section anchor="evolution">
      <name>Evolution and Future Work (Informative)</name>
      <t>This section is a direction, not a commitment. The structures below
are reserved in name only. Normative wire formats, tests, and
threat-model <bcp14>MUST</bcp14> lines for them belong in later revisions (-05 or
later), written with the same discipline as this -04.</t>
      <section anchor="re-attestation-profile">
        <name>Re-attestation profile</name>
        <t>Algorithms retire. A Spend Receipt or checkpoint signed under
Ed25519 today may need a later verifier that no longer accepts
<tt>-19</tt>. A companion seed <xref target="REATTEST"/> sketches re-attestation:
register the original COSE bytes as a SCITT Signed Statement and
have a current algorithm countersign or receipt them. The
principle is that structures outlive ciphers. The first concrete
example is the profile's own move from generic EdDSA (<tt>-8</tt>) to
Ed25519 (<tt>-19</tt>) in <xref target="RFC9864"/>.</t>
      </section>
      <section anchor="streaming-reconciliation">
        <name>Streaming reconciliation</name>
        <t>Epoch checkpoints in this document are batch windows. A later
revision may define a continuous, second-scale profile
<xref target="STREAMING"/> in which the same completeness relation is evaluated
as settlements arrive, without waiting for an epoch close. That
work does not change the matching rules in this document, and it
did not arrive in this revision either.</t>
      </section>
      <section anchor="generalization">
        <name>Generalization</name>
        <t>Payment is the special case that this -04 implements. The same
completeness calculus (an authenticated extract of consumed units
reconciled to signed receipts) can apply to other consumable
resources such as compute, data, or energy. This document does
not specify those profiles.</t>
      </section>
    </section>
    <section anchor="informative-notes-on-adjacent-protocols">
      <name>Informative Notes on Adjacent Protocols</name>
      <t>x402 <xref target="X402"/> uses HTTP 402 <xref target="RFC9110"/> to negotiate stablecoin
payment. AP2 <xref target="AP2"/> uses signed mandates as verifiable credentials.
Cedulon does not replace either protocol. Profiles built on HTTP Message Signatures
<xref target="RFC9421"/> authenticate bots; they are not a spend receipt.
draft-bates-atp <xref target="BATES-ATP"/> is a lineage neighbor. It does not
define rail-extract completeness.</t>
      <t>draft-vauban-x402-stark-receipts <xref target="VAUBAN"/> specifies complementary
x402 receipt-format variants that a Cedulon Spend Receipt <bcp14>MAY</bcp14> carry
as a rail proof; it does not define rail-extract completeness.
draft-schrock-ep-outcome-binding <xref target="SCHROCK"/> compares authorized
action bytes to independently observed effects; it does not define
rail-extract completeness.
draft-marques-asqav-compliance-receipts <xref target="MARQUES"/> profiles
access-control action receipts (the broader Acta family includes
<xref target="ACTA"/>); it does not define rail-extract completeness.
draft-hopley-x402-compliance-receipt <xref target="HOPLEY"/> records an
admission-time compliance decision; it does not define rail-extract
completeness.</t>
    </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="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="BATES-ATP" target="https://datatracker.ietf.org/doc/html/draft-bates-atp">
          <front>
            <title>Agent Transaction Protocol (ATP)</title>
            <author initials="D." surname="Bates" fullname="David Asher Bates">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="X402" target="https://www.x402.org/">
          <front>
            <title>x402: An Open Standard for Internet-Native Payments</title>
            <author>
              <organization>x402 Foundation</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="AP2" target="https://ap2-protocol.org/ap2/specification/">
          <front>
            <title>Agent Payments Protocol (AP2)</title>
            <author>
              <organization>Google Agentic Commerce</organization>
            </author>
            <date year="2025" month="September"/>
          </front>
        </reference>
        <reference anchor="GRIGG" target="https://iang.org/papers/triple_entry.html">
          <front>
            <title>Triple Entry Accounting</title>
            <author initials="I." surname="Grigg" fullname="Ian Grigg">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
        </reference>
        <reference anchor="PACIOLI">
          <front>
            <title>Summa de arithmetica, geometria, proportioni et proportionalita</title>
            <author initials="L." surname="Pacioli" fullname="Luca Pacioli">
              <organization/>
            </author>
            <date year="1494"/>
          </front>
        </reference>
        <reference anchor="VAUBAN" target="https://datatracker.ietf.org/doc/draft-vauban-x402-stark-receipts/">
          <front>
            <title>x402 STARK Receipt Format Extension</title>
            <author>
              <organization>Vauban Research</organization>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="SCHROCK" target="https://datatracker.ietf.org/doc/draft-schrock-ep-outcome-binding/">
          <front>
            <title>Outcome Binding for Authorized Actions and Independently Observed Effects</title>
            <author initials="I." surname="Schrock" fullname="Iman Schrock">
              <organization/>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="MARQUES" target="https://datatracker.ietf.org/doc/draft-marques-asqav-compliance-receipts/">
          <front>
            <title>Compliance Profile of Signed Action Receipts for AI Agents</title>
            <author initials="J. A." surname="Gomes Marques" fullname="Joao Andre Gomes Marques">
              <organization/>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="ACTA" target="https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/">
          <front>
            <title>Signed Decision Receipts for Machine-to-Machine Access Control</title>
            <author initials="T." surname="Farley" fullname="Tom Farley">
              <organization/>
            </author>
            <date year="2026" month="June"/>
          </front>
        </reference>
        <reference anchor="HOPLEY" target="https://datatracker.ietf.org/doc/draft-hopley-x402-compliance-receipt/">
          <front>
            <title>Categorical Compliance Screening Receipt Format for Agentic-Payment Flows</title>
            <author initials="C." surname="Hopley" fullname="Christopher Hopley">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="REATTEST" target="https://github.com/dogrucanemek-alt/cedulon/blob/e681e24d1b29912d8c190259c2ea9f4f9538c29d/spec/draft-dogru-cedulon-reattestation-00.md">
          <front>
            <title>Cedulon Re-Attestation: Carrying Spend Evidence Across Algorithm Retirement</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="STREAMING" target="https://github.com/dogrucanemek-alt/cedulon/blob/e681e24d1b29912d8c190259c2ea9f4f9538c29d/spec/draft-dogru-cedulon-streaming-00.md">
          <front>
            <title>Cedulon Streaming Reconciliation: Continuous Completeness for Agent Spend</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 2273?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Vernon Wharff set out the defect -02 repairs: that the object
carrying the T11 guarantee was neither profiled for registration nor
read during verification, and that the equivocation requirement could
not fire against a presented chain. He also asked the question that
decided the shape of that repair, namely whether a recorded checkpoint
absent from the chain deserves its own identifier or belongs under
window coverage. Iman Schrock confirmed the finding independently and
drew its boundary, keeping it separate from the extract-binding work
already closed in -01.</t>
      <t>Iman Schrock raised the first of -03's two subjects, against
the posted -02: whether the profile should accept a pinned witness key
and report an absent or mismatched pin explicitly. It should, and the
same question turned out to be unanswered for three further objects.</t>
      <t>Iman Schrock and Pablo Play ran the -00 implementation against the
pinned commit and reported the defects that produced -01. Iman Schrock
found the two extract-binding defects, proposed the repair -01 adopts,
later reran the posted -01 from a clean clone against its own pinned
commit, and is also the author of <xref target="SCHROCK"/>, cited here as adjacent
work. He is the reader whose independent implementation of the Signed
Statement identity is noted in <xref target="impl-status"/>, and he asked for it to
be kept separate from any cross-implementation claim about Cedulon;
that separation is his and is recorded here as he stated it. Pablo Play found that a repeated reference hid the unaccounted
amount, filed a written reproduction, and re-ran that reproduction
against the pinned commit to confirm the figures quoted from it. He
later took up a standing invitation to break the implementation and
ran the suite on a platform its author had not, which is how the three
defects behind 0.3.1 were found and how a fourth came to light while
they were being repaired.</t>
      <t>Nicholas Templeman ran the suite from a clean clone and reported his
figures. He also corrected two claims in a row written about that run:
the install it named was not the strict from-lockfile form, and his
platform was the same operating system family as the earlier ones, so
the run corroborates the numbers and adds no cross-environment
evidence. He
classified his own run honestly as a repetition of the author's checks
rather than an independent implementation. Walter Hawkins did not run it; he read the
reported figures and pressed for the run to be stated precisely enough
to be repeatable, which is why the conditions and not only the totals
appear in <xref target="impl-status"/>.</t>
      <t>None of them reviewed this text, and any error in it is the author's.</t>
      <t>Field survey notes and the informative threat-model narrative in the
companion repository helped shape the requirement identifiers used
here. Those identifiers are defined in <xref target="security"/>.</t>
    </section>
    <section numbered="false" anchor="vectors">
      <name>Appendix A. Test Vectors</name>
      <t>These vectors use RFC 8032 Ed25519 secret scalar #1 (fixture only;
never a production key). Hex is lowercase.</t>
      <t>The previous revision said these vectors "<bcp14>MUST</bcp14> match the locked tests
in the companion implementation", which pointed the reader at code
rather than at this document. A specification that defers to an
implementation cannot be implemented from its own text, and that is the
property this document is trying to have. The vectors below are
normative on their own terms: an implementation matches them or it does
not, and where an implementation and a vector disagree, one of the two
is wrong and this document does not say in advance which.</t>
      <t>Receipt COSE_Sign1:</t>
      <t>Claims: payer=<tt>payer-1</tt>, payee=<tt>payee-1</tt>, amount=<tt>1</tt>,
currency=<tt>USD</tt>, policyHash=<tt>aa</tt>, manifestHash=null,
noManifest=true, x402PaymentRef=null, timestampMs=1700000000000,
nonce=<tt>n100000000000000</tt>, prevReceiptHash=null, outcome=<tt>aborted</tt>.</t>
      <t>COSE_Sign1 hex (whitespace ignored; identical to the locked test):</t>
      <artwork><![CDATA[
845830a301320378206170706c69636174696f6e2f636564756c6f6e2d
726563656970742b63626f72044806e3fd8fda29bb60a0587cac3a0001
11706770617965722d313a000111716770617965652d313a0001117261
313a00011173635553443a000111746261613a00011175f63a00011176
f53a00011177f63a000111781b0000018bcfe568003a00011179706e31
30303030303030303030303030303a0001117af63a0001117b6761626f
727465645840685c01aa778a850b9d35250406f092b6f5cb03fb359593
0422533e28ac620ad439f5e7bd8ed1fa5ded90d4421a2de34f94d1d78d
38a65812cb5315ee7f1cf403
]]></artwork>
      <t>Manifest COSE_Sign1:</t>
      <t>Body: description=<tt>fixture-goods</tt>, amount=<tt>1</tt>, currency=<tt>USD</tt>,
acceptanceCriteriaHash=
<tt>e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</tt>
(the SHA-256 of an empty delivery; the field is a digest of the exact
delivery bytes, so the vector carries a well-formed one),
cancelCondition=<tt>none</tt>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>
      <t>COSE_Sign1 hex (whitespace ignored; identical to the locked test):</t>
      <artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a05889a73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b7840653362306334343239386663316331343961
666266346338393936666239323432376165343165343634396239333
463613439353939316237383532623835353a0001123c646e6f6e653a
0001123d1b0000018bcfe568003a0001123ef65840599b5b1cc7bfd3fe
8b8e65cdd876652aeca13660e6bdccc93afe12188a295b20fdfe8e6e48
ae447dc74ccb0f13383f0f43f0f67f288d61a6395e95e2038e320d
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9y963bc2JEu+B9PgVH9KImdyRKpO3VOn6El2aV2VUlHYrna
y6uXCWaCJFqZQDaAFEVLNc8yzzJPNhFfROwdG0BSrPKZ82O6l20qE7mxL7Hj
+kXEfD7P+qpflUf5nRflcrtq6qP8uM6Pt8uqz38orss2P2/a/PiirPt538zx
R/6iWa/LdlHeyYqzs7b8eJTrj7Nls6iLNQ23bIvzfr5sLtrtfCFfzu8/zJZF
T18e3j98PL//dP7gfragDy6a9voor+rzJuu2Z+uq66qm7q839OTrVyd/zKpN
e5T37bbrD+/ff3b/MCvasjjKu3KRXTXth4u22W6Osg/lNf1reZTl+TzMh/8u
eM74qy0XZbWRvzfNqlpc48/3L16fnGRdX9TLvxf0qxJvK7NuXbT93/9r2/Rl
d5SfF6uuzDaVvKBvFva/Vb20F3RN27fleSf/uF6Hvxe8Y3XfZcW2v2xajEH/
yWnVNPSr/fzFfv6SNwsfyha+Wpcf8hdF7b5o2ouj/C+v3h3/e37y6s8/vfnh
zb+9zn94/ePrk1cv8/ev3/351clrPLhotnXPu3qybWlj8Fm5LqrVUV7u41T+
Tz2VfZpaVjftuuirjyVP7N0fXxweHDzTPx8fPnhofz598FT/fHr/waH9efDE
Hnj64Fn49MnTR/bns4c22LP7jw7jnw/sz6ePbYRnzx4exj/pAaaKdG5P3CMH
B/ftz4eHB/znH45PXr2fH5+8PcKajbiFbk/aou6KRU/klb9tGzq7ZpXfpYfv
3cHT8XD4/+ZyOC/38z8QkXb6qZ3Oy+JjtcyPu0u6IvF7T9+PZAZFe1H2R/ll
32+6o+++oyeKvi0WH8p2vyr783060+/o2nx32a9X38m1OePx5kW/oRH+/eH9
w3Qtn/gTvqVvNmWdv2eyLdol7unrui/buuznP2HH8rfFNchuenmgJh4t/yOR
C02swo3xq5hcwtXV1T7/DFOnJ47fHk7ttr3cb/Xbwx1bjbn8qWkuVqVwm2oR
2Ew6p0fz+88mp1VsDucbfRWmRh98123KRXVeLbA4nuyf3r3+05/S6Z601YZe
+4pvTH68wN2p6osbaOL1fv6ntrq4GNDEa7qs8XOb8Q5CqIr6AtPcFJuy7b7r
MYu/lzyLfSYG+tXb4xev3/zwOp3u++16XeTLMi/aqr9cl7RVxSy/KBv6s63o
T9qEDTEiWnCVl737Z7Gq+uKGZf2wT4e2qIgzDhb2w3ZRJF/J2g4ePntI//zL
8c9/OP5pTKT5+5Pjd3/O3wnXJSLji5y/+tSXNXP4GwjhL8X2jPbyXdmVRbu4
/Gevltyqjxh0zjObE7NvP8xVHnRMF+9ffP/uzYs/p6t4s+2JPZb5H4jHE0WI
LMSEq3+UdPvBSrqcbiBdvWVJ95FFweo6f3PWle1HeuTV+Xm52HUBjZbeLy7b
ZvFhSE1r2gL/ld+BJ79nBzoZbF5u5o2sbH4mK+Md+PH43f/8+dX7dAfoDm5W
RKqLkq/xeUX3pDnP31cXdVi/HXAn2/Na7u9NS/63/fyYbhC9v8t/LNr/2o64
6781RUMsbtmWE4/90/uwlsHmRfdfxcf5IiwxIYjjFyfHg4snq35JHKUbrfvH
YnFZ1SUrSfons5Ky64iN0ZVuVjfsx8l+/seiXamcjrtw0qz9F37d05z5K+s+
x1hzkoDFvMNikhV//+btD6/+Ojh/0c+IxaxyRwvvF21Z1nwlBrc7aIvVYq4C
IP/jqrm6iRxI9/m+2YyX/+Kyrbq+2bCIdQ/804zgEmMJIxgfPu/Eu1fHJ6RH
nAz2QjQmWvL8uCcJ3UOo0DyLtr3mvXjPDCB/RYpByZt0vGgbOv/jFW8gcWr6
YV+1Je/JDbsxVAbjfkwohIk+PbkXF/Tm7Rlred9B71sUNc3gw7xY9d+pCvjd
2ao5+658/PSgPHy4PDg7fPbs4HD5dHFAuvajZ4vDsnh2/vD82aMHTxeHz5YQ
qd9N6feklcdtmd+/v79eMmM9od388fVPf5rezPekMBdrpaSmXlR0GrqtDYvh
bbPthPJKkht8nwKJyX7//3IrO9sV3cY5GWr8X3lx1jFl91l2cll1ORH1Fnds
WZ4Ty+ny/rI04yfoXTMSULRBbNKtzKTLCjPp8IcYKKRr7ZvalrdkLXR5t11c
5kWXf39y8jZnmX7Olzm/y5fnHgu+bM36Z1/mpnp1oublxYqWsLzO1w0poh+L
1ZbGPrksr2nOed30s/zsmme77srVx7KbZfT75ZZuTUGWVrWaL1ZNR8xWzLR8
cVkuPkDOFrlwrrzDZdNLSyMR8ymyj2VL2h4tkc6GvwNB0ZgXBREEPYBV5eUn
7OF+2CnVEmn/CjYSlmX2Y1FX50TL+V19XUOCvM3PSto7Wqvs0T3a2fytzDBI
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
JaKfL6uCdFSysBdajEoAHbVUAvtYJhBA5blnJVlEdCDt0WRy4ywbVtUtpZZu
bs1NgVBcmUvA4ji8ZLw8LqELFps2+oVuVpwRv2Lbd9ueFyiIdeCy2zUkLo4S
DaupS0G2M20nIeAS9CXOByxEyxj7OhdJr0Hjnch84t+738qZCqAjdKOkLVuk
JWVonrT3/VZrMOok1omaBc3qtbXcWa14JIPEMGg2mrcKzLSlTNZZDiq3DDW3
DZAZL6sOOB3uSh2Dxr5Aui+xFjbAPyVnSD/3+XKhAHPYIZcCMUmnFabwFVrN
DvdF//161f+SfzNvzufIRQ7FWOkdSa3UWVL/TDaeZPYERN52l4e4bZ1DH/Yf
vPqJeU/9tu2qsq5bxkMMd+2r1xu4D60wTb+3ejm1R35ppbTZ18nIDWHY+wB1
H69nOr2XhthBAnExybz9pHUO8ch3pfdWELATJZj457EkB7S4r98ex0LYkaUz
cKUdXFLbcBfsMiQ5xLfcheM0q45r3toWxI4CcOnx6QOPKNZfW4piUacFhSJ5
7mcP9gV1Iq1mZN7TtdonewuBZexERvh8Ty0kvwwJn1FggKQnK7EnPPG+Ahzq
9KgkpYfHCCWoAJlLSqRz8MDem+b3R9EgLLS4VWnz9Hj5l7vqzU8dMDh4xNEx
nY/4t4bjQknyOPEdxbs85xwX0Z6c8o5a3V8nyezhPtf/4NwX0EVazDZCkTjX
QVqInefW9kiuKL//Kz3EVMEwp7a3uLQdmSx51EvMu9f4c239ZWSY9g4DJ/h6
+zBnPRxGgSEFrXmIE6gZ7LD3Jiow03c/f/ZVhH+9d+SrYcQyY0zBO0SXy3Ty
Pjt+bFAqGnuirqJBcdYbuGRigHHsg0V5F4wv1yEpNR3FPQrfexeCupFJYJiQ
lDnO9fLWmRmsT72M5ILFbrPFbusHrFU39/dw1hS8i71UJj6U9mtkZlmNZItP
GXg1horULSoxIKtMyi4pGiOkwSdog6ui84Hl9F5XI/VBDT9NF2AoX0Jc+/RI
KJI3Lv0YXgWF8fNnVzby1/yCj6KOSHXvtU3KEOLHgxp49s5x4RG3uM+f05I9
v/JA9toqgdE/4qaOlhAdi3PecER2CDfUVZmAdaeA+6ACo4hZPqj9xurLbIdG
89z9zph5MJjHZZFnu+qKPM+tfBgYwi1qWERfaycHc0OhikGRixGLwFUdTZ9h
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
eiYAONSr4s36X96/8nZHQBDiAtu4/4ARfMH8x28/vr6YzyaW+yD8iAzuKYDU
uS7bdhs6uUKdRFb6kqZVJflExk8mNYIoZboJ5qUHpXyDPY3c+u2q3IZXc58+
vb/2s/r251/+1U9qbXXHsHizevy+Ut2AWlQeyu0DOlXLtMoqxmKPgNLi/8eS
JDDUljYWGzGpxI04kKlHOQ/6BKjRGzMwyXC7o2HHvrNsJu98TM3J0I3D/6/E
ptT/0EF/p00RJjMgAC4JEcs2yHQYz7JlVpM+eZezWpXb1cP2wduFLplRFCDY
mICS7FWBgdoqYGFRt7Edui+oLiRRIMBCjGhwAQBf/bpuHvbSFwXSxrI1hEQP
SGoUM+SFbwzunTGjuET7UuMxXRZK1R3NNjB9gNO9Ml34d6rC1zr3+0RAYp/+
3f/HLyJ05/50ff2u4I9lAwyHA/8b1AJuGn/+HZBl9q+w8ivdOlP8Yn4nX/D/
tsvoeNwR/wnbQesFt8xvWsQX3nU5c0eyi8qOUUSGLjzvmTw5KfCWD/UW+h94
2reKf3pvjkjr+PCT0VAAiMmESiBDJpKnwPJWUgnJ5u6M/df9pTy3t5D3/sX+
9Mobz/6r63ey1Yic3VVyy5000C2bPXpKA+ZKd7Ekp/u2gNIF5yeJ9/hYPizL
XV+mQQit9x/6wWv79Omvr/7yp1e/iMUOlKi8CKoE+yfOnn6hzxkvPgpRcmDo
KYOmZX4EieojS46w6SybCZPeFYLESCD8tffga7Qr72avPvSr+742qPZNgd2b
qdc//fbr63/z72F91taZ+g+xQUoEiQPmkKEpt0+RxqFCvro99Xjuq493V+4l
Yd4v2/8oP/bxiRqNHclgv3312//6y5v3/iltJzlSl/aVurQojT9Tv/MDfM99
g6zGKx9v+Gjlrt4qVGuNRfjq9fWrz59f/HOjetv4Hz1xcRw/tH/mn3599+c3
/xvShCs2rAqwUUtOfRFcLeL3QiLnqw/jOku13++jMCOWpeM/uk+XbFOq1i+/
2/jdXH3nXcO/VvudUJnelvvNJsu0a2tpJAEEz7qGowyK3D/B21d0Wfvcc6x9
5rLrLTON6hRxgIjAxaxuZMbPE05nxU8V5ZiZ8cmgM6QukuYU6+lB2ILQmNAq
PwI9eL3oDbV2pxPJLqe0fqEQqjE+neeQ7ErTNk0EU9O51FSqpbBEd9WfUe+5
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
AMDLAIZ3EAIA

-->

</rfc>
