<?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-03" category="info" submissionType="independent" 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-03"/>
    <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="28"/>
    <area>sec</area>
    <keyword>Cedulon</keyword>
    <keyword>agent</keyword>
    <keyword>receipt</keyword>
    <keyword>policy</keyword>
    <keyword>SCITT</keyword>
    <abstract>
      <?line 131?>

<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. This revision states the trust roots the earlier ones left
implicit: 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. It also
names a threat no adversary causes, a settlement recorded on a rail
with no receipt behind it. It also defines a Dispute Evidence Bundle (evidence, not an
award) and optional SCITT anchoring. Cedulon is not a competitor to
x402 or AP2; it sits above them.</t>
    </abstract>
  </front>
  <middle>
    <?line 161?>

<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 -03 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 a canonical encoding
(<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 or of a declared schema instance)</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>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. 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>
      <section anchor="receipt-labels">
        <name>Claim labels</name>
        <t>Registered CWT claims <xref target="RFC8392"/> are not required in -02. 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="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 six-field hash defined for the PDP
(<tt>MUST-T6-1</tt>). <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>). <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 a canonical encoding of the scoped body. 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 this revision makes 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; a hash on an aborted receipt or on a receipt outside the
extract window 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. 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 presented 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 and the
audit fails. 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>One data dependency is worth naming, because "any order" read naively
would break it. 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. 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>). 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> and fails 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 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 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>). 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. 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
   receipts in <tt>[startMs, endMs)</tt> as defined above
   (<tt>MUST-T11-2</tt>). 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>).
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 pinned rail key, or the extract has no verifiable signature</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">The pinned rail key could not be decoded; the verifier's configuration is at fault</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</td>
              <td align="left">A presented 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</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</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.</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 a hash of the request fields it evaluated 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 a canonical encoding of its claims.</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 and before any extract window 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. An audit presented with no Trade Manifest is not made conditional by this requirement.</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>.</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.</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 presented receipt that names it against the manifest amount, currency and expiry, and <bcp14>MUST</bcp14> report a receipt that departs from them. <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>.</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 -03 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 -03 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 added in this revision 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 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, and
<tt>MUST-T4-17</tt> and <tt>MUST-T8-9</tt>, which are implemented in this tree and
not in the published 0.4.0 packages (see the note on distribution
below).
Some of those cases need POSIX file modes or symbolic links and
assert only there; on Windows they return early. That leaves the
symbolic-link protections and the undo after a failed write
unexercised by a passing suite on Windows, while the protection
report and the refusal to settle without a durable record are
checked on both. An independent runner reported the distinction back
from a Linux run after this text first claimed otherwise, and this
is the second correction to the same sentence.
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 this revision 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 this revision adds that are in
a published package are in the published <tt>@cedulon</tt> packages at version 0.4.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>, <tt>MUST-T8-9</tt> and <tt>MUST-T12-4</tt> are the exceptions in this
revision. 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 are implemented and tested in this
tree and are not a published npm release until the author says so; a
reader checking either against an installed 0.4.0 will not find it.
<tt>MUST-T12-4</tt> 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.4.0 will not find it.</t>
      <section anchor="changes-02">
        <name>Changes from -02</name>
        <t>This -03 has 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 this revision keeps
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 this
revision 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 this revision does not improve 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 (-04 or
later), written with the same discipline as this -03.</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 -03 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="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 1948?>

<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 this revision'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. They <bcp14>MUST</bcp14> match the
locked tests in the companion implementation.</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>00</tt>, cancelCondition=<tt>none</tt>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>
      <t>COSE_Sign1 hex (whitespace ignored; identical to the locked test):</t>
      <artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a0584aa73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b6230303a0001123c646e6f6e653a0001123d1b00
00018bcfe568003a0001123ef65840898628b1524a44ca641b5058c7a4
7e71bd4ce1ca0782e03b511c23e0819c3771407d627216d0b104224ee8
2cacffbd21e66fe035ed5ce4ee85b7bcd9c560ad02
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9y963bcRpIu+h9PgWP/sKSpokmKulFz2WxZ7ta0bWlLdHt6
9Zo1RFWBJEZFoAZAieLI2s9ynuU82Yn4IiIzEkBRtHvv8+PMmu6mqgqJvETG
Pb6Yz+dZX/Xr8jj/6kW52q6b+jg/qfOT7arq8x+Km7LNz5s2P7ko637eN3P8
kb9orq7Kdll+lRWLRVt+OM714WzVLOviioZbtcV5P181F+12vpQv5/sPs1XR
05eH+4eP5/tP54dPsyV9cNG0N8d5VZ83WbddXFVdVzV1f7Mp+cNVuSnpv+o+
qzbtcd63264/3N9/tn+YFW1ZHOdducyum/b9RdtsN8fZ+/KG/rU6zvJ8HqbF
fxc8dfzVlsuy2sjfm2ZdLW/w57sXr05Ps64v6tV/FPRUibeVWXdVtP1//Ne2
6cvuOD8v1l2ZbSp5Qd8s7X8rmSX/q2vavi3PO/nHzVX4e8kbV/ddVmz7y6bF
GPSfnNZJQ7/cy1/s5d/xnuFD2cmXV+X7/EVRuy+a9uI4/8vLtyf/lp++/PNP
r394/a+v8h9e/fjq9OV3+btXb//88vQVfrhstnXPm3u6bWlj8Fl5VVTr47zc
w+H8Dz2cPZpaVjftVdFXH0qe2NvvXxweHDzTPx8fPjyyP58+fKp/Pt1/eGh/
HjyxHzx9+Cx8+uzIRni2/+gw/vnQ/nz62B579uzoMP5JP2CKSCf0xP3k4GDf
/jw6POA//3By+vLd/OT0zTEWaoQtNHvaFnVXLHsirfxN29CBNev8Hv34/lf4
dTwR/r+5nMh3e/kfiEA7/dSO5LviQ7XKT7pLuh7xe0/bj2QGRXtR9sf5Zd9v
uuNvv6VfFH1bLN+X7V5V9ud7dJDf0pX59rK/Wn8rV2bB482LfkMj/NvR/mG6
lo/8Cd/Q13Qr8ndMq0W7wh19VfdlW5f9/CfsWP6muAGtTS8PJMSj5d8TjdDE
KlwTv4rJJVxfX+/xY5g6/eLkzeHUbtvL/Va/Odyx1ZjLH5vmYl0Kp6mWgcWk
c3o03382Oa1iczjf6KswNfrg225TLqvzaonF8WT/+PbVH/+YTve0rTb02pd8
TfKTJS5MVV/cQhOv9vI/ttXFxYAmXtENjZ/bjHcQQlXUF5jmptiUbfdtj1n8
R8mz2GNioKfenLx49fqHV+l0322vrop8VeZFW/WXVyVtVTHLL8qG/mwr+pM2
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
alri1V23LXNdCTEP3r+GdqrbUz8RbXHqaMpSRxNNjf6HZsY2LkkgssjlKDAd
vcSqvfCqf+FbRTsE5zPxET6NGk+09PaWl5U/eOD0qAcPjon+rtTwA7PiH2XE
m4nh8Eu+ui74PjLV4CyKNWlP9FZSfUSxmQV2cX1ZEeuElgEWkYFbL26YRzH7
ohu1JnnRlqt/+Sr/RdkeGAHmMgNLoavQz6ua+RJf2DZbN8R1mceLkkfrIW2z
sossz1+yeFJlrSCTdQPaZpWtWmW8TQWJFWKfJ+JKLlvi7P0NBusuq43Qctvw
W9q+Oof0P0lEFE3jAmS/ZZWOhdB6DWpn1xTxRlK0b+gA7GoTua+VyV0UG/AU
R7HEnPNzYiHEp5jj50vil82KdpKWi3PqWYdU1YkFQcVeL2IPe+wzDYyl7Mg6
u6YFM+PgKw6GtRLVpBAOWbWruSyW7PdSSIEGJN716ZM8P+cvPn++T5NkC4Vf
WYhPqDnP7OCjAzL/8ed3p/lPr09x6W3qfLWxImZctgQZP7t3xo/MT5/O9cdn
9/dY9y/5wrJbQcmUd4LE1V60ovg8lHx5vaS3XbCiZNKpzkhVk686U0l4LJDd
qtkSIc/hiyQR1Lx/X5ago0+f1CVJ1+qK9eSWyJD2TUU3EYtJYKOFjuUGpFhH
7J6vtbhIv+ky8XjqW+jLgoaHe/bz5738p7JiZY5/Dy5FR3MJKY5rylsb9S5s
RbXY9jI+bwdzq+uqLQP7ZJ3IFCnZN7oFGbMonvE1jy06CU+cBRf9u2vOe5JJ
JV9z8F4TeN1lscGaM9OY7ROvSzmlpsinVTzWtZasr5Z1s724lBkSP8yrATmJ
ZgVdlOX+uTokRW/P8JnJU9H8axJ5a6Jc2g/Hwvgu3IjA5bF404mcaK8vLhe0
QTBFZe1wjMgMWn2CJF9HgnYLdjmIVNDRhdAL0cayYZ2CqJxkczuXmfXQL5gU
iWCIIbHuHay5707+mMh2aNDe6geX44MQTioqEInY1gzHlbNXaADW8phjw8qA
/UtDslsKlpU3A+nXWTAVV7nduIP9+QEu29f5KelVVd0QF7uRu8eaHUcYu/wr
/vFXM/lfvtn899uX//PnV29ffsd/v/vTyQ8/hD8y/cW7P73++Yfv4l/xyRev
f/zx5U/fycPMKZKPsq9+PPnrV0JTX71+c/rq9U8nP3zFtNwnegqfoFg6OHyi
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
DY+P89PXL05f/xx+v3HZ0JbtARD4uxLEY/Gdq0N0qKYb3xN0oeoj50pA/CsY
injnbP+Ci+54VEY8My2Gz2kmPkp1xyRMxdPJY/F21rtchyHHufGAXm4J6h+d
GUor771zegs7mqWEHWJS3JYGrVwico6uPaWpx+Ksn3ZbC6JzEecu+Vyi78ds
Suig4lZNN+DIb8Agy9u2wTkZwHhe/HJq0WGEbdSJNH+y/3D/YG8P//sov5ec
5MhtJv5f+MzUX0Z/iLP15658xVVU0DV947rJRDpbuaTRpat7pKo6SzPhsSGY
PbXW9hZ0d/VwNK1NaY4pOXNKPKDzq2LjPg1uPHi046rTeT5WcBGQmyQMT05Q
9Yqqd6AEUiTMFpRylQG5qZElzM3pKHKjDV7Vwt06A4FV1JSB95wyyGkP3XtT
QWQwydqB5qflOsnUeJtNlTcRx9pop9Wsges8OUbCJQ3OeigHcN+T8Lgzh3kC
DvOuJF4vgBZXBdLj11Pp/LFsx2UKzoKU72bxKok4cEn/5ceCb2EAjPNTOARo
j3wPzqroGtEhEAO/HExRDo+8NISLWdullbcom31fWhSgC47eTkvpsJ0dVjuQ
Pk/AKd7EX0UBERiG1o396d2P/G4SF1BNe1GSVkFoNejbwfN3cucJ2MUoMY9E
D3Hg9majC0asqBvsz6PJQK64biR8UnjRaJUX2JKRwaC+TsHPJhLvtwXDY5tZ
TMdZFh3cjQFBQndZfXhJwxailQ/+pyTze/ZuozsW3FFi2FzUmCenf3Q3HXF+
6WEO53YXWAtmzdoJhKVMNNR4pXsi156lO7R20boaxMduxDOjgmdTMERCg/gk
luF3KtaOIjElzokm3/Tm1+1urhbMgHMyKt6HniEY+FKLJ1DHQVaGHk3DGixI
z5SgfqrJvLdg0LHV7607M3CmLrqpw+1/epy/EC+CMGoSLaQgXjTbC804XZWM
ysdBbStPuTNreKoBr8lcCbIDtCQMECSS2i6lLBsJbWMqSY3FziKcJX+4jmr3
TDuXMb/3p/40yfFwwckd0U7ryKrClBnFuFlXko/tTaz0zRr0ny42gjFmdtXO
ZU6ElYfFRgb/WuQ7ap4MCCI4X3WyPpVg1FUoqUxKl3WkBseu1/2eSiUrU0rf
xJbvwEa11SO/Jm1LoPGpAe3FxgSpoLZQ03S0IzqKPcN/CrZqQ7vUG+teRys8
eXOosZ5SzhgBaGDsfay63vP3p6N4W7FSWGW1JHVzCmZT4k8mttau5nJz2wal
4WrjPRejk8gBLDcu1Mgn1Bkne2zJY2NBY3ipFpoadOfwpcv82/NtLVfbMFJl
8unbnsqVKHb5c11XWe9I9epi5WL6A5T4mXwzVB1Fm709ThY8v5J3bC9wFUEG
v6jE4rR0UFe6zmd/p89mhNoEU3YA20SbPig3TkNC2uG4T3w+ge9NvkIY6JSH
Jg02DQCjSHafBX47BoYC6+eXs0fhOfiAohYUsScawysF7HFBnaJdv2hqKQgx
/ydIMvW01Zrmwp+GnBNpatxLU83ONRjVaBnOs0ZdUrIr1s7KNJqo+Sc395mL
SuDm9n0Bx+yq5D/oQUcgIzIPUFCGNWIQP0JJJ9r/xzGrkJ0xfsok++BGZ9nf
d6GznRf6HTuLOTH70yf5aM6c6PNnTRJ9dpy/efXKzIochR8wYnzhCyn5WeYG
CiVze3dWNp6psvH7Cmpwdu23v6+YhpSu+qL8dlBS41nAM+gdtxfV0CjXeVJY
8xsKakImVVJXk+xFSMtIpdgzKCbThTb531lok4f0nB1FNszEvAx8pr41dXDk
v6vOJt148UK46H6scxkUyKhrWutNxLx2rGWOLUaJSKfVOso3ENaWnu+heqEX
dsWnKVHoWMFxGIhKKzqOpT6kqr3iorImQPsIgCLyfmidkfwum7rZtk6jP9g/
NnNctDn2KcNtKz5muWjjepa7XzVGg5mIKIskRScH8/Z7GdVMhDjv0jI3ydHe
DymSo0azAd37lo6z+Y4OrRN9I90bzqSFZDKNh24aq0FOieTLTUJVj9G+7z7L
wQzMeQjZKWU30KoF+GvesTLASbPpUL49qGD5c27Uf5et1EtuQ3PxWHzBPt37
g4zzfdyrxNUeAODXN/npIx43DRpU3v2tXnftAxWm51ICYPYa5NkgHM3toLH/
Z+P2zQP0cSndHTW2ZgUa3yTdKSejtGmP6cE0nkzcAxftttGDadhqEwCr3eV/
BkVAWIhLCImw0mB6DtT6Nuo52wGsfTbo4vFlwH+dUOESVEj7Ksu4/qfHY2IG
WakP3rN9xrEabN/T27cP6/8NeQKB7fzmNIEA/GZZAr9MBdg9HNOwNCxZF+uD
f/7d+UjJri3gkJJ6nL8/YWkXQCF2pdOFmgN9sCjkmWlufGSOvlVPmo87AY8a
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
xtKOtgEA

-->

</rfc>
