<?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-core-03" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Cedulon Core">Spend Receipts and Payment Rail Reconciliation for AI Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-dogru-cedulon-core-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="October" day="02"/>
    <area>sec</area>
    <keyword>Cedulon</keyword>
    <keyword>agent</keyword>
    <keyword>receipt</keyword>
    <keyword>policy</keyword>
    <keyword>SCITT</keyword>
    <abstract>
      <?line 190?>

<t>This document addresses auditable payments for AI agents and builds
upon state-of-the-art HTTP 402, AP2 and credit card systems. We
specify a cryptographically secured payment reconciliation protocol
using a Trade Manifest (a signed offer before payment), a Policy
Decision Point with default deny, a Spend Receipt (a COSE/CWT claim
set issued after a gated payment), and rail-extract reconciliation.</t>
    </abstract>
  </front>
  <middle>
    <?line 199?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Artificial Intelligence (AI) agents involved in travel, stock market
transactions, etc. may need the capability of securely paying for
their transactions. Previously defined protocols such as HTTP 402
<xref target="X402"/> and Google's Agent Payments Protocol (AP2) <xref target="AP2"/> made it
possible: HTTP 402 protocols attach stablecoin settlement to ordinary
requests, and AP2 binds user intent to signed mandates. Card networks
and processors issue agent-scoped tokens.</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?" The answers have limits, and this document
states them. "Allowed by policy" is the Receipt Issuer's signed
assertion; the audit does not independently re-verify the policy
decision (<xref target="policy-semantics"/>). What was delivered is machine-checkable
only where an attributable payee countersignature binds a delivery hash
(<xref target="countersign"/>). Without such a layer, a prompt-injected or looping
agent can drain a rail that has already accepted a valid signature, and
a counterparty can ship the wrong artifact.</t>
      <t>The name Cedulon is from cedule, the older legal word for a written
schedule or note. Cedulon 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>Reconciling an internal ledger against an external statement is an old
accounting control <xref target="PACIOLI"/>, and signing the artifacts on both sides
is Grigg's triple-entry idea <xref target="GRIGG"/>. This document profiles that
control for parties that are software: a CBOR Object Signing and
Encryption (COSE) <xref target="RFC9052"/> receipt shape, an extract shape, and a
verification algorithm precise enough that two implementations reach
the same finding on the same evidence. The checkpoint chain that
extends it over time is in <xref target="CEDULON-CHECKPOINT"/>.</t>
      <t>A Cedulon audit is intended to be read within the architecture for
auditing AI agent delegation and interactions <xref target="KUEHLEWIND-AUDIT"/>,
which links user intent, delegation and authorization to an execution,
registers the resulting records with a Supply Chain Integrity,
Transparency, and Trust (SCITT) Transparency Service <xref target="RFC9943"/>, and
lists financial transactions by agents among its motivating cases. For
a spend, this document adds a result that architecture does not define:
completeness of signed receipts against an authenticated extract of the
rail, over a declared account, rail and time window. This document does
not define an integration profile for that architecture. Other related
drafts are noted in <xref target="adjacent"/>.</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>This document uses Concise Binary Object Representation (CBOR)
<xref target="RFC8949"/>, CBOR Web Token (CWT) <xref target="RFC8392"/> claim sets, and JavaScript
Object Notation (JSON) documents. In the tables, CBOR types are written
<tt>tstr</tt> (text string), <tt>bstr</tt> (byte string) and <tt>uint</tt> (unsigned
integer).</t>
      <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>Rail:</dt>
        <dd>
          <t>The payment system that moves value and reports what it settled, such
as the settlement path behind an HTTP 402 exchange <xref target="X402"/>. A Rail
Extract names it by <tt>railId</tt>.</t>
        </dd>
        <dt>Payment Adapter:</dt>
        <dd>
          <t>The component that performs the payment on the rail. It calls the PDP
first and is the only path from the agent to the rail (<tt>MUST-T5-1</tt>).</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>
        <dt>Verifier:</dt>
        <dd>
          <t>The party that runs the reconciliation of <xref target="reconciliation"/> over the
receipts, the Rail Extract, and the keys it holds.</t>
        </dd>
        <dt>Pinned key:</dt>
        <dd>
          <t>A public key the verifier obtained out of band, as opposed to a key an
object carries beside its signature. See <xref target="trust-roots"/>.</t>
        </dd>
        <dt>Working set:</dt>
        <dd>
          <t>The receipts and checkpoints the verification steps consume: those
that verify under a usable pinned issuer key (the attested set), or,
when no usable issuer key is pinned, every presented one. See
<xref target="verification"/>.</t>
        </dd>
        <dt>Presented-unattested:</dt>
        <dd>
          <t>The state of a receipt or checkpoint the verifier holds no pinned
issuer key for. Its signature is checked against the key the object
itself carries (<xref target="presentation"/>), which establishes internal
consistency only, so the object is neither attested nor rejected:
every presented object is weighed as one set and the completeness
guarantee is reported as conditional. It is a state of the report,
not a finding code. See <xref target="issuer-root"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>The following diagram shows the payment path, the audit path, and the
optional transparency service:</t>
      <artwork><![CDATA[
  Principal --policy--> PDP
                         ^
                         | request / allow or deny
  Trade Manifest         |
  (optional) -----> Payment Adapter --payment--> Rail
                         |                         |
                         v                         v
                  Receipt Issuer              Rail Extract
                         |                         |
                         v                         |
                   Spend Receipt ---> Verifier <---+
                         |               |
                         v               v
             Anchor / SCITT (optional)  Report
]]></artwork>
      <t>The payer agent never talks to the rail except through an adapter that
calls the PDP first (<tt>MUST-T5-1</tt>).</t>
      <section anchor="policy-decision-point">
        <name>Policy Decision Point</name>
        <t>The PDP evaluates structured fields only (<tt>MUST-T1-1</tt>): amount,
currency, payee, tool identifier, nonce, optional manifest hash, and
evaluation time. It applies limit, velocity, and scope checks
(<tt>MUST-T2-1</tt>, <tt>MUST-T2-2</tt>). If the PDP is unreachable, uninitialized,
or throws, the result is deny (<tt>MUST-T2-3</tt>). Denied attempts do not
increment success counters (<tt>MUST-T2-4</tt>).</t>
        <t>An allow produces a Decision Token whose <tt>requestHash</tt> covers six
fields: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>
(<tt>MUST-T3-4</tt>, <tt>MUST-T6-1</tt>). The token is a COSE_Sign1 object
(<tt>MUST-T6-4</tt>), is single-use (<tt>MUST-T6-2</tt>), and <bcp14>MAY</bcp14> be carried to
the adapter that performs settlement.</t>
      </section>
      <section anchor="receipt-issuer">
        <name>Receipt Issuer</name>
        <t>After the adapter attempts settlement (success or a recorded deny that
still needs an audit trail for an allowed-then-aborted path), the
Receipt Issuer signs a Spend Receipt over the deterministic CBOR
encoding of its claims (<tt>MUST-T4-1</tt>). Verifiers reject bad signatures and byte mismatch
(<tt>MUST-T4-2</tt>).</t>
      </section>
      <section anchor="anchor-scitt">
        <name>Anchor / SCITT</name>
        <t>Parties <bcp14>MAY</bcp14> register the signed receipt (or a privacy-preserving hash
encoding) as a SCITT Signed Statement <xref target="RFC9943"/> and attach the COSE
receipt (<tt>MAY-T4-6</tt>). This document does not operate a Transparency
Service.</t>
      </section>
    </section>
    <section anchor="lifecycle">
      <name>Lifecycle</name>
      <ol spacing="normal" type="1"><li>
          <t><strong>Manifest.</strong> Optionally, the payee or a marketplace signs a Trade Manifest. A
spend without one is marked <tt>noManifest</tt> and still passes limit,
velocity and scope checks (<tt>MUST-T1-2</tt>); a deployment <bcp14>MAY</bcp14> refuse
such spend (<tt>MAY-T1-4</tt>).</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>
      <t>Afterwards, a verifier reconciles the receipts against the rail's own
extract (<xref target="reconciliation"/>). Appendix C follows one 10.00 TRY spend
through these steps.</t>
    </section>
    <section anchor="trade-manifest">
      <name>Trade Manifest</name>
      <t>A Trade Manifest is a signed offer issued <strong>before</strong> value moves. It
<bcp14>MAY</bcp14> carry an AP2 mandate hash so that user intent and the offer stay
linked (<tt>SHOULD-T8-5</tt>).</t>
      <t>A Trade Manifest <bcp14>MUST</bcp14> bind all of the following (<tt>MUST-T8-1</tt>):</t>
      <ul spacing="normal">
        <li>
          <t>goods or service description</t>
        </li>
        <li>
          <t>price (integer minor units, encoded as a decimal string matching
<tt>0|[1-9][0-9]*</tt>)</t>
        </li>
        <li>
          <t>currency (ISO 4217 alphabetic or a documented token identifier)</t>
        </li>
        <li>
          <t>acceptance-criteria hash (SHA-256 <xref target="RFC6234"/> of the exact delivery
bytes, lowercase hexadecimal)</t>
        </li>
        <li>
          <t>cancel condition (opaque string agreed by the parties)</t>
        </li>
        <li>
          <t>expiry (POSIX milliseconds, <tt>expiresAtMs</tt>)</t>
        </li>
      </ul>
      <t>The hash is taken over the exact delivery bytes only. Hashing a
schema instance instead would need a marker in the manifest saying
so; this document defines no such marker, and until one is defined
that use is out of scope rather than an alternative a verifier is
expected to guess at. The acceptance-criteria hash therefore fits a
delivery whose exact bytes are known when the offer is signed, such as
a file; this document defines no such hash for a service, such as a
travel booking, whose delivery is not a byte string.</t>
      <t>It <bcp14>MAY</bcp14> include <tt>ap2MandateHash</tt>. The corresponding CBOR label is
always present; a missing mandate is encoded as CBOR null.</t>
      <t>It <bcp14>MAY</bcp14> name a <tt>payee</tt>. An offer that is specific to one counterparty
carries that party's payee identifier; when present, every receipt
that names this manifest has its <tt>payee</tt> compared against it as exact
octets under <tt>MUST-T8-9</tt>, on that requirement's two-branch severity.
An open offer legitimately omits the member, and no comparison is
made. Unlike <tt>ap2MandateHash</tt>, the label is encoded only when the
member is present, so the null convention above does not apply to it.</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-10</tt>). The profile uses a <strong>detached</strong>
COSE_Sign1 <xref target="RFC9052"/> whose payload is a CBOR map with private-use
labels:</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>
            <tr>
              <td align="left">-70402</td>
              <td align="left">deliveredHash</td>
              <td align="left">bstr (optional; SHA-256 of the exact delivered 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-10</tt>). A countersignature travels beside the issuer
signature without being covered by it, so anyone holding an honest
receipt can append one of their own. Attribution is therefore the
gate: a countersignature that cannot be attributed to the pinned
payee key - the signature fails, <tt>kid</tt> or content type does not
match, label -70401 is not the issuer COSE bytes (<tt>MUST-T8-8</tt>), or
the signature is valid under some other key - <bcp14>MUST</bcp14> be rejected as
approval evidence. What is rejected is the countersignature, not
the receipt: the verdict on the untouched issuer receipt <bcp14>MUST NOT</bcp14>
change because an unattributable object was attached. An appendable
object the issuer signature does not cover must not be able to
manufacture a negative result. The identifiers <tt>countersign-bad</tt> (unverifiable) and
<tt>countersign-key-mismatch</tt> (verifiable under another key) name the
discarded object as warnings, and where the verifier pinned a payee
key and no attributable countersignature remains, the
<tt>countersign-missing</tt> warning still applies: a discarded forgery is
the absence of the payee's word, not a substitute for it.</t>
        <t>The optional <tt>deliveredHash</tt> claim binds delivery to the receipt
under the payee's key. A payee who countersigns <bcp14>MAY</bcp14> include the
SHA-256 of the exact bytes it delivered in the same signed payload
as the issuer receipt bytes. When an attributable countersignature
carries <tt>deliveredHash</tt> and the verifier also holds the Trade
Manifest, the two digests are compared as exact octets:
<tt>deliveredHash</tt> against <tt>acceptanceCriteriaHash</tt>. A mismatch is
<tt>delivery-mismatch</tt>, and it is a finding rather than a warning,
because both ends of the comparison are signed. A <tt>deliveredHash</tt>
carried by an unattributable countersignature is discarded with it.
A countersigner <bcp14>MUST</bcp14> refuse to sign a <tt>deliveredHash</tt> that is not 32
octets; a verifier that meets one anyway treats the countersignature
as carrying no <tt>deliveredHash</tt>, so the delivery question narrows as
it does when the claim is absent, and the signature verdict does not
move. A countersignature without the claim remains valid.</t>
        <t>A Dispute Evidence Bundle that includes a verified countersignature
has stronger evidence that the payee accepted those bytes; the
bundle is still not an award (<tt>MUST-T8-4</tt>).</t>
      </section>
    </section>
    <section anchor="cose-profile">
      <name>COSE Profile</name>
      <t>This profile uses deterministic CBOR <xref target="RFC8949"/> Section 4.2.1
(definite lengths, shortest integer form, map keys sorted in
<strong>bytewise lexicographic</strong> order of their encoded keys).
Implementations <bcp14>MUST</bcp14> encode only the types used by Cedulon claim maps:
null, bool, unsigned and negative integers, UTF-8 text, byte strings,
arrays, and maps (<tt>MUST-T4-1</tt>).</t>
      <t>A decoder <bcp14>MUST</bcp14> refuse a CBOR map that carries a duplicate encoded
key (<tt>MUST-T4-18</tt>).</t>
      <t>A decoder <bcp14>MUST</bcp14> also impose a bound on what it will attempt: on encoded
size, on nesting depth, and on the number of elements it will decode
from an audit input. It <bcp14>MUST</bcp14> refuse an input that exceeds a bound with
a named refusal rather than by exhausting memory or the stack, and it
<bcp14>SHOULD</bcp14> document the bounds it applies (<tt>MUST-T4-19</tt>). This document
fixes no numbers, because the right bounds depend on the deployment;
what it requires is that exceeding a bound is a named, reported
refusal rather than a crash.</t>
      <section anchor="receipt-labels">
        <name>Claim labels</name>
        <t>Registered CWT claims <xref target="RFC8392"/> are not required by this profile. Cedulon
uses CWT private-use integer labels less than -65536.</t>
        <t>Every claim the tables below annotate as <tt>hash</tt> carries a SHA-256
digest rendered as exactly 64 lowercase hexadecimal characters
(<tt>[0-9a-f]{64}</tt>). A signer <bcp14>MUST</bcp14> refuse to sign, and a validator <bcp14>MUST</bcp14>
reject, a value that does not match that grammar, naming the claim in
the refusal. A decoder that preserves unknown or foreign claims is a
separate layer and keeps them unchanged; the grammar binds what a
party signs and what a validator accepts, not what a decoder can
carry.</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 (hash)</td>
            </tr>
            <tr>
              <td align="left">-70006</td>
              <td align="left">manifestHash</td>
              <td align="left">tstr (hash) / 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 (hash) / 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 (hash) / 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 (hash) / 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 (hash)</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 (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70208</td>
              <td align="left">payee</td>
              <td align="left">tstr (optional; encoded only when present)</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 (hash)</td>
            </tr>
            <tr>
              <td align="left">-70302</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (hash)</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>,
<tt>application/cedulon-countersign+cbor</tt>, or
<tt>application/cedulon-inclusion+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, in the Ed25519 SubjectPublicKeyInfo encoding of <xref target="RFC8410"/>. 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, and a decoder <bcp14>MUST</bcp14> refuse a
message whose unprotected header is not an empty map, by the name
<tt>cose-sign1-unprotected</tt>, rather than verify the signature and ignore
the header (<tt>MUST-T4-21</tt>): every digest in <xref target="hash-inputs"/> is
computed over octets that include the unprotected header, which the
signature does not cover. 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 anchor="presentation">
        <name>How a signed object is presented</name>
        <t>The signed octets above are what this profile defines and what every
digest in <xref target="hash-inputs"/> is taken over. An object handed to a
verifier travels with more than that, and this section names what.</t>
        <t>A presented Spend Receipt, epoch checkpoint, Trade Manifest, or
Decision Token carries, beside the signed octets, its claim set or
body in decoded form and <strong>the signer's public key as a
SubjectPublicKeyInfo PEM</strong>; a countersigned receipt carries the
payee's key the same way, and an object presented in the JSON
encoding of <xref target="canonical-json"/> repeats its signature there as
base64. None of these is inside the signed octets, which is the
whole point of naming them here: the signature
covers the COSE message and nothing else, so every one of these
members is a surface anyone holding the object can rewrite. This is
the same shape the Rail Extract states in <xref target="rail-extract"/>, and it
is stated once here for the COSE objects rather than left to be
inferred from an implementation.</t>
        <t>A carried key is not an identity source and <bcp14>MUST NOT</bcp14> be used as one
(<tt>MUST-T4-11</tt>). Under a pin it has exactly one effect: an object
that verifies under the pinned key while carrying a different key is
reported as <tt>carried-key-mismatch</tt>, a warning, and stays attested
(<xref target="issuer-root"/>). With no pin held it is the only key present, so
any signature check that runs against it says the object is
internally consistent and says nothing about who signed it; two
issuers cannot be told apart in that state. A Trade Manifest with no
pinned key is not checked against its carried key at all (Appendix B,
<tt>unauthenticated-manifest</tt>).</t>
      </section>
    </section>
    <section anchor="canonical-json">
      <name>Canonical JSON encoding</name>
      <t>Not everything this document hashes or signs is CBOR. The policy
document, the six request fields bound by a Decision Token, and the
scoped body of a Rail Extract are JSON. Two implementations could
agree on every other requirement in this document and still produce
different bytes unless the encoding is named, which makes an
independent verifier impossible to write from the text. This section
names that encoding.</t>
      <t>Where this document says "the canonical encoding" of a JSON document,
it means the encoding defined by <xref target="RFC8785"/>, and the octets hashed or
signed are the UTF-8 octets of that encoding.</t>
      <t>Three notes on the boundary of that reference:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="RFC8785"/> Section 3.1 takes I-JSON <xref target="RFC7493"/> as its input, and
an I-JSON object carries no duplicate member names. This document
makes that precondition a rule at every place a verifier receives a
JSON document as text - a rail extract body, a policy document, a
stored receipt file: a text in which any object, at any depth,
repeats a member name <bcp14>MUST</bcp14> be refused by the name
<tt>json-duplicate-key</tt>, before the text is parsed (<tt>MUST-T4-20</tt>). A
verifier handed an object rather than text, as a tool behind a
JSON-RPC boundary is, cannot apply the rule and <bcp14>MUST NOT</bcp14> report
that it did; whether the text was checked is then the transport's
to state.</t>
        </li>
        <li>
          <t><xref target="RFC8785"/> Section 3.2.2.2 requires a serializer to terminate on a
lone surrogate, and so does this document: a producer <bcp14>MUST</bcp14> refuse to
encode a document containing one, by name, and <bcp14>MUST NOT</bcp14> sign what it
could not encode. A verifier reading bytes it cannot canonicalize for
this reason reports the input as failing verification with the
refusal named beside the verdict; it does not crash. No field defined
by this document may contain a lone surrogate, so a conforming
document never reaches this rule.</t>
        </li>
        <li>
          <t><xref target="RFC8785"/> defines no encoding for an integer outside the IEEE 754
double range. No document defined here carries one: every amount and
cumulative limit is already a decimal string before it is encoded,
and every hash is lowercase hexadecimal. A document that would need
such an integer is outside this specification.</t>
        </li>
      </ul>
      <section anchor="hash-inputs">
        <name>Which octets are hashed</name>
        <t>Every hash-valued field in this document is SHA-256 <xref target="RFC6234"/> of the
input named below. All but two are rendered as lowercase hexadecimal, and a third
differs in another respect.
<tt>kid</tt> differs only in its rendering: the digest is computed over the
same stated input and then truncated to its first 8 bytes, carried as
a byte string rather than as hex (<xref target="cose-profile"/> states the same
rule where the header is defined). <tt>ap2MandateHash</tt> differs in whose
digest it is: AP2 defines the mandate and its octets, and this
document carries the result opaquely rather than restating a rule it
does not own. <tt>deliveredHash</tt> differs in its carrier: it is a claim in
a CBOR map and is carried as the raw 32 digest bytes (bstr), not as
hex; comparisons against <tt>acceptanceCriteriaHash</tt> are made over the
digest value.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Input to SHA-256</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>receiptHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the receipt</td>
            </tr>
            <tr>
              <td align="left">
                <tt>manifestHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the Trade Manifest</td>
            </tr>
            <tr>
              <td align="left">
                <tt>checkpointHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the checkpoint</td>
            </tr>
            <tr>
              <td align="left">
                <tt>statementHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the statement</td>
            </tr>
            <tr>
              <td align="left">
                <tt>acceptanceCriteriaHash</tt></td>
              <td align="left">the exact delivery bytes, as defined in <xref target="trade-manifest"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>deliveredHash</tt></td>
              <td align="left">the exact bytes the payee delivered, under the same input rule as <tt>acceptanceCriteriaHash</tt>, computed by the payee when it countersigns</td>
            </tr>
            <tr>
              <td align="left">
                <tt>policyHash</tt></td>
              <td align="left">the UTF-8 octets of the canonical policy document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>requestHash</tt></td>
              <td align="left">the UTF-8 octets of the canonical six-field request document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>kid</tt></td>
              <td align="left">the SubjectPublicKeyInfo DER; the digest is then truncated to its first 8 bytes</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ap2MandateHash</tt></td>
              <td align="left">the octets AP2 defines for its mandate; not profiled by this document</td>
            </tr>
          </tbody>
        </table>
        <t>Wherever this table, or any other sentence in this document, says "the
signed COSE_Sign1 octets", those are the octets of the <strong>untagged</strong>
four-element COSE_Sign1 array of <xref target="RFC9052"/>. This profile never wraps
a message in CBOR tag 18, and the vectors in Appendix A carry the
untagged form. A verifier that hashed a tagged copy would compute a
different digest for every object in this profile, so the choice is
stated here once rather than left to be inferred from the vectors.</t>
        <t>The six fields of the request document are the ones <tt>MUST-T6-1</tt> names:
amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>.</t>
        <t>The request document is a JSON object carrying exactly
those six members and no others, every member always present. <tt>amount</tt>
is the decimal string of the request, in the amount syntax the receipt
claims table states, never a JSON number: <xref target="RFC8785"/> encodes the
number 1 and the string "1" differently, and an implementation free to
pick either would produce two digests for one request. <tt>currency</tt>,
<tt>payee</tt>, and <tt>nonce</tt> are the request's text strings. <tt>tool</tt> is the
request's text string, or JSON null where the deployment names none.
<tt>manifestHash</tt> is the lowercase hexadecimal string, or JSON null for a
spend bound to no manifest; an absent value is null, never an omitted
member. A document with a seventh member, a missing member, or another
type for one of these is not the request document this section
defines.</t>
        <t>The policy document is different on purpose, and the difference is
scope rather than an oversight. Its member set is the deployment's
own: this document defines how the bytes of whatever policy document a
PDP evaluates are encoded (<xref target="canonical-json"/>) and digested, not what
its members are. <tt>policyHash</tt> binds a spend to the exact bytes its PDP
evaluated; it is not a value two deployments are expected to compute
from a shared schema, and nothing in the verification algorithm
compares one deployment's <tt>policyHash</tt> to another's.</t>
      </section>
    </section>
    <section anchor="decision-token">
      <name>Decision Token</name>
      <t>A Decision Token is the portable encoding of a PDP allow. It is
COSE_Sign1 with the header profile in <xref target="cose-profile"/> and the
labels in <xref target="receipt-labels"/>. All five labels are always present
(<tt>MUST-T6-4</tt>).</t>
      <t><tt>requestHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical encoding of the six
fields the PDP evaluated (<tt>MUST-T6-1</tt>), rendered as lowercase
hexadecimal; <xref target="canonical-json"/> defines that encoding and
<xref target="hash-inputs"/> states the octets.
<tt>policyHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical
policy document the PDP evaluated. <tt>expiryMs</tt> is a Unix time in
milliseconds after which the token <bcp14>MUST</bcp14> be treated as expired
(<tt>SHOULD-T6-3</tt>): expired when the evaluation time is strictly greater
than <tt>expiryMs</tt>, not yet expired at exactly <tt>expiryMs</tt>, on the same
boundary discipline <tt>MUST-T3-3</tt> states for the manifest. <tt>nonce</tt> is the request nonce. <tt>singleUseId</tt> is
the identifier consumed on the first settlement attempt
(<tt>MUST-T6-2</tt>).</t>
      <t>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject it if the
signature fails, if <tt>kid</tt> does not match a configured PDP key, if
the content type is not <tt>application/cedulon-decision+cbor</tt>, if
the decoded claim map does not match the presented claims, or if
<tt>expiryMs</tt> is in the past (<tt>MUST-T6-5</tt>).</t>
    </section>
    <section anchor="rail-extract">
      <name>Rail Extract Profile</name>
      <t>A verifier checks completeness against a <strong>rail extract</strong>, not against
the issuer's own receipts alone (<tt>MUST-T10-7</tt>).</t>
      <section anchor="record-schema">
        <name>Record schema</name>
        <t>The extract body is a JSON document. Each settlement record <bcp14>MUST</bcp14>
contain the following members, under these names:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">JSON type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ref</td>
              <td align="left">string (rail payment reference)</td>
            </tr>
            <tr>
              <td align="left">amount</td>
              <td align="left">string matching <tt>0|[1-9][0-9]*</tt></td>
            </tr>
            <tr>
              <td align="left">currency</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">timestampMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
          </tbody>
        </table>
        <t>These member names are normative. A rail <bcp14>MAY</bcp14> add members of its own
to a record; it <bcp14>MUST NOT</bcp14> rename the four above. The types above
are stated in JSON terms.</t>
        <t>A record <bcp14>MAY</bcp14> carry a <tt>beneficiary</tt> member (string). A rail that can
resolve a payment reference to the party credited declares it there;
when present, it is compared against the payee of the receipt that
names the same <tt>ref</tt>, and a difference is reported
(<tt>beneficiary-mismatch</tt>). Resolving a reference to a beneficiary is a
feature of the rail's own system: this profile does not assume it,
and measures it only when the rail declares it.</t>
      </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>. The
signed body is one JSON document with exactly this shape:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">JSON type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">accountId</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">railId</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">windowStartMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
            <tr>
              <td align="left">windowEndMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
            <tr>
              <td align="left">clockSkewMs</td>
              <td align="left">number (milliseconds, a non-negative integer; optional; see <xref target="reconciliation"/>)</td>
            </tr>
            <tr>
              <td align="left">settlements</td>
              <td align="left">array of settlement records (schema above)</td>
            </tr>
          </tbody>
        </table>
        <t>All six named members except <tt>clockSkewMs</tt> <bcp14>MUST</bcp14> be present; a body
missing one, or a record renaming a core member, <bcp14>MUST</bcp14> be refused by
name at both ends - by the signer before it signs and by the verifier
before it checks a signature - so a malformed extract is the same
refusal on both sides rather than a signature verdict. Additional
members beyond these are the rail's to add, as with records.</t>
        <t>The integer-valued members - <tt>windowStartMs</tt>, <tt>windowEndMs</tt>, each
record's <tt>timestampMs</tt>, and <tt>clockSkewMs</tt> - <bcp14>MUST</bcp14> be integers of
magnitude at most 2^53 - 1, the range a JSON number carries exactly,
and <tt>clockSkewMs</tt> <bcp14>MUST NOT</bcp14> be negative; a value outside those bounds,
or a non-integer, is refused by name in the same way as a missing
member. <tt>windowEndMs</tt> <bcp14>MUST</bcp14> be greater than <tt>windowStartMs</tt>: the window
is half-open, so one that does not end after it starts declares no
population, and a body carrying one is refused by name
(<tt>malformed-extract-window</tt>) in the same way, at both ends.</t>
        <t>The body is read as text before it is read as an object. A text in
which any object repeats a member name is refused as
<tt>json-duplicate-key</tt> at both ends, before parsing and before any
signature is checked (<tt>MUST-T4-20</tt>, <xref target="canonical-json"/>); a signer
that parsed first would sign one of the two values and an honest
verifier could check the other.</t>
        <t><tt>clockSkewMs</tt>, when present, declares the boundary allowance the
verifier applies at this window's edges during reconciliation
(<xref target="reconciliation"/>); when absent, the profile default of 300000
milliseconds (five minutes) applies.</t>
      </section>
      <section anchor="authentication">
        <name>Authentication</name>
        <t>The rail signs Ed25519 <xref target="RFC8032"/> over the canonical encoding of the
scoped body, which is a JSON document and therefore takes the encoding
of <xref target="canonical-json"/>: the signed octets are the UTF-8 octets of the
<xref target="RFC8785"/> encoding of the body above. The signature and the rail's
public key travel beside the body, the signature as base64 and the
key as a SubjectPublicKeyInfo PEM; neither is part of the signed
octets. 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 (<tt>MUST-T10-8</tt>).
A key the extract carries is not that key: it is neither the rail's
identity nor a fallback for one the verifier did not obtain. Where no
such key is held, the carried key is the only key present, so the
signature check that runs against it says the extract is internally
consistent and says nothing about who produced it, and the verifier
<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 the condition is <tt>unauthenticated-extract</tt>
whatever the extract carries - a signature that verifies against the
carried key establishes internal consistency and not origin, and one
that fails or is refused is not a verdict about a key either. It is 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.
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 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 (<tt>MUST-T10-15</tt>), whatever else verifies.</t>
        <t>Likewise, a verifier that has not stated the account or the rail under
audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-scope</tt> and <bcp14>MUST</bcp14> treat the
guarantee as conditional (<tt>MUST-T10-18</tt>). Where no rail key is pinned
at all, all three axes are equally unstated and
<tt>unauthenticated-extract</tt> is the condition reported.</t>
        <t>A balanced audit under an unconditional guarantee is true of one
account, on one rail, over one window, so a report that carries it
<bcp14>MUST</bcp14> also carry that account, rail and window (<tt>MUST-T10-19</tt>). A
completeness claim about an account needs one such report per rail
that account can settle on; enumerating those rails is the
deployment's statement.</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 it, and the key the extract
carries is neither the rail's identity nor a fallback for one the
verifier did not obtain (<tt>MUST-T10-8</tt>). The same discipline applies
to the issuer: a verifier obtains the public key from an
authenticated channel and rejects a <tt>kid</tt> that does not match that
key (<tt>MUST-T4-8</tt>). This section states the verification algorithm,
the separate root inputs, and the error semantics that name a missing
or mismatched pin, for every signed object in the profile.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Object</th>
            <th align="left">Key the verifier pins</th>
            <th align="left">Section</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Rail Extract</td>
            <td align="left">rail key</td>
            <td align="left">
              <xref target="rail-extract"/></td>
          </tr>
          <tr>
            <td align="left">Spend Receipt, epoch checkpoint</td>
            <td align="left">issuer key</td>
            <td align="left">
              <xref target="issuer-root"/></td>
          </tr>
          <tr>
            <td align="left">Payee countersignature</td>
            <td align="left">payee key</td>
            <td align="left">
              <xref target="payee-root"/></td>
          </tr>
          <tr>
            <td align="left">Decision Token</td>
            <td align="left">the deployment's own PDP signing key</td>
            <td align="left">
              <xref target="decision-root"/></td>
          </tr>
          <tr>
            <td align="left">Trade Manifest</td>
            <td align="left">publisher key</td>
            <td align="left">
              <xref target="manifest-root"/></td>
          </tr>
        </tbody>
      </table>
      <t>Without these roots, a verifier that checks a Spend Receipt against the
key the receipt carries accepts a receipt signed by any key at all, and
a forged receipt can make an unreceipted settlement look covered.</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.
A key the object carries is not that key: it establishes no signer
identity and is not a fallback for a pin the verifier does not hold
(<tt>MUST-T4-9</tt>, <tt>MUST-T4-11</tt>). Where no issuer key is held, a signature
checked against the key its own object carries establishes internal
consistency and nothing more, which is the state <xref target="presentation"/> and
the last row of the table below describe. 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 document.</t>
        <t>An audit given no receipts and no checkpoints rests on the extract
alone and is not made conditional by this requirement.</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>).</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>).</t>
        <t>Membership in the attested set follows one rule: the signature
verifies under a pinned issuer key. The <tt>kid</tt> header routes the check
to a candidate key; the key an object carries beside its signature is
not an identity source, because it travels outside the signed octets
and anyone can rewrite it. Two consequences are stated so that
implementations do not diverge on them. First, an honestly signed
object whose carried key was swapped stays attested: the swap is
reported (<tt>carried-key-mismatch</tt>, a warning) and <bcp14>MUST NOT</bcp14> move the
object out of the attested set or change the verdict, on the same
reasoning as <xref target="countersign"/> - a surface the signature does not cover
must not be able to manufacture a negative result. Second, an object
that claims the pin, by its carried key or its <tt>kid</tt>, but does not
verify under it is excluded from the attested set and <bcp14>MUST</bcp14> still be
walked and named - for a receipt, <tt>receipt-chain-break</tt> with a
signature-failed detail - never silently dropped; an object that
neither verifies under the pin nor claims it is
<tt>issuer-key-mismatch</tt>, excluded, and the settlement it names stays
uncovered.</t>
        <t>The rule, read out per cell (steps 6 and 8 are the verification
algorithm's):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claims the pin (carried key or kid)</th>
              <th align="left">Verifies under the pin</th>
              <th align="left">Result</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">yes</td>
              <td align="left">yes</td>
              <td align="left">attested; a carried key other than the verifying one is <tt>carried-key-mismatch</tt>, a warning, and does not move the receipt</td>
            </tr>
            <tr>
              <td align="left">yes</td>
              <td align="left">no</td>
              <td align="left">excluded from the attested set; still walked and named in step 6 (<tt>receipt-chain-break</tt>, signature-failed detail); its settlement stays uncovered in step 8. A checkpoint has no chain walk to be named in, so it is reported as <tt>issuer-key-mismatch</tt> on this row as well as the next, and the window it would have covered is reported uncovered</td>
            </tr>
            <tr>
              <td align="left">no</td>
              <td align="left">no</td>
              <td align="left">
                <tt>issuer-key-mismatch</tt>; excluded; its settlement stays uncovered in step 8 (<tt>MUST-T4-9</tt>, <tt>MUST-T4-10</tt>)</td>
            </tr>
            <tr>
              <td align="left">no pin held</td>
              <td align="left">no pin to verify under</td>
              <td align="left">no comparison against a key the verifier holds happens, and the keys the objects carry are not a fallback for one (<tt>MUST-T4-11</tt>); each signature is still checked against the key its own object carries (<xref target="presentation"/>), which establishes that the object is internally consistent and nothing about who signed it, so a broken signature is still named (<tt>receipt-chain-break</tt>, <tt>checkpoint-total-mismatch</tt>) while two different issuers cannot be told apart; receipts are presented-unattested, the verifier reports <tt>unauthenticated-issuer</tt>, and accusation-shaped findings take the two-branch severity of <tt>MUST-T8-9</tt></td>
            </tr>
          </tbody>
        </table>
        <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>), so that a key rotation mid-window
does not force it off the pin. 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>Where a verifier has pinned a key for a payee, a
settled receipt naming that payee and carrying no <strong>attributable</strong>
countersignature <bcp14>MUST</bcp14> be reported (<tt>MUST-T4-14</tt>): a countersignature
that failed to verify, or verified under some other key, is discarded
under <xref target="countersign"/> and leaves the expectation open exactly as a
missing one does. The discarded object itself is a warning, never a failure of the
receipt it rode beside; <xref target="countersign"/> states the invariant.</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. 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 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 document.
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.</t>
        <t>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 document, and the completeness guarantee
is conditional. The comparison runs against those presented receipts,
including aborted ones, and is made before any extract window is
applied and before any issuer key is applied; a hash on an aborted
receipt, on a receipt outside the extract window, or on a receipt no
pinned key attests still counts as a reference. This requirement asks
whether any receipt names the terms, not whether a settlement in the
window was made under them, and not whether the receipt that names them
is attributable, so a forged receipt can silence this warning; the
report it leaves behind is still conditional and still carries the
finding that the receipt answers to no pinned key. 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. A verifier presented with
a Trade Manifest <bcp14>MUST</bcp14> compare the amount, the currency and the
settlement time of every receipt that names it against the
manifest's amount, currency and expiry, and <bcp14>MUST</bcp14> report a receipt that
departs from them (<tt>MUST-T8-9</tt>); the identifier
<tt>manifest-terms-mismatch</tt> is used for it in this document.
Every receipt that names the manifest is measured, aborted ones
included. The time
compared is the receipt's <tt>timestampMs</tt>, against the boundary
<tt>MUST-T3-3</tt> states: strictly after <tt>expiresAtMs</tt> departs, exactly at
it does not. Amount and currency are compared on the exact-octet
terms of <tt>MUST-T8-2</tt>.</t>
        <t>Where a usable issuer key is pinned, the comparison is made over the
receipts that verify under it and the audit fails. Where none is
pinned, the departure is still reported and the audit does not fail on
it alone. An issuer key is usable when the pinned issuer root holds at
least one key the verifier can decode. A pinned root none of whose
keys decode is already <tt>trust-key-unreadable</tt> and attests nothing, so
the comparison takes the unpinned branch while that finding stands;
the audit has failed on the configuration fault, and the departure is
still reported without becoming a charge no readable key backs. Only
receipts that name the manifest are measured against it. Under a
usable issuer pin, a departure is a finding rather than a condition on
the guarantee.</t>
        <t>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>): a settled payment carrying the hash of terms
nobody authorised cannot be withdrawn by reporting it afterwards.</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; the finding stands, only its attribution
changes.</t>
      </section>
    </section>
    <section anchor="reconciliation">
      <name>Reconciliation</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>The property is stated over a population, and the extract is what
declares it: one account, on one rail, over one window
(<xref target="rail-extract"/>). "Every settlement" means every settlement that
extract carried. A settlement path no presented extract covers is not
reconciled and not found missing - it is outside the population - so
the report names the account, rail and window it was computed over
(<tt>MUST-T10-19</tt>), and a verifier that stated none of them says so
instead (<tt>MUST-T10-18</tt>).</t>
      <t>A checkpoint published with its totals withheld (<xref target="CEDULON-CHECKPOINT"/>, Checkpoint claims) 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="verification">
        <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>). They are numbered
for reference, not to require an evaluation order: no step
short-circuits another, and an implementation may evaluate them in any
order that produces the same set of findings.</t>
        <t>Two data dependencies limit that freedom, because "any order" read
naively would break them. An order that runs a step before the step it
consumes does not produce the same set of findings and is not
permitted.</t>
        <t>The first is the index of refs: step 7 builds it, and steps 8 and 9
reconcile it.</t>
        <t>The second is the issuer pin. The step that resolves it decides the
<strong>working set</strong>: the attested set - the receipts and checkpoints that
verify under a usable pinned issuer key - or, when no usable key is
pinned, the whole presented set, whose members are
presented-unattested. Every later step that walks receipts consumes
the working set: the indexing and reconciliation in steps 7 through 9
and the <tt>MUST-T8-9</tt> comparison. The chain walk in step 6 consumes the
working set plus one addition named in <xref target="issuer-root"/>: a receipt that
claims the pin and fails to verify under it is walked so the break can
be named, and is attested nowhere. A receipt that neither claims the
pin nor verifies under it is reported once (issuer-key-mismatch) and
then excluded, which is what keeps the settlement it names visible as
uncovered (<tt>MUST-T4-10</tt>); an
implementation that let it back into any of those steps would let a
forged receipt cover a settlement, satisfy a checkpoint count, or
invent a terms charge. Two checks deliberately stay on the presented
set whatever any key says, and <bcp14>MUST NOT</bcp14> acquire the dependency:
<tt>MUST-T4-17</tt>, which asks whether a manifest was named at all, and the
per-receipt defect checks that ask what a receipt says about itself.</t>
        <t>Checkpoint and witness verification consumes that working set
and is specified in <xref target="CEDULON-CHECKPOINT"/> (Verification algorithm),
which an implementation of this audit also implements: a receipt that
falls in no presented checkpoint window, including every receipt when
no checkpoint is presented, fails that document's window-coverage
check.</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 check that
runs is against the key the extract carries, which establishes
internal consistency and not origin; the verifier <bcp14>MUST</bcp14> still
compute it, <bcp14>MUST NOT</bcp14> read it as a statement about who produced the
extract, and <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, whatever the
extract carries. 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. The rows of an extract the pin
refused are not reconciled against the receipts, and no settlement
finding is read out of that document (<tt>MUST-T10-20</tt>); the
identifier <tt>settlement-comparison-skipped</tt> <bcp14>SHOULD</bcp14> be used to say
that the comparison did not run. 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. If it
stated no account or no rail, it <bcp14>MUST</bcp14> treat the guarantee as
conditional for the same reason (<tt>MUST-T10-18</tt>); the identifier
<tt>unstated-audit-scope</tt> <bcp14>SHOULD</bcp14> be used. Whatever the verdict, the
report <bcp14>MUST</bcp14> name the account, rail and window the extract declared,
in every structure it returns for the audit (<tt>MUST-T10-19</tt>).</t>
          </li>
          <li>
            <t>Resolve each Spend Receipt against the issuer root
(<xref target="issuer-root"/>) in one pass. Decode the COSE_Sign1; a content
type that is not the receipt type, a decoder bound, or a decoded
claim map that does not match the presented claims is a named
refusal, not a signature verdict (<tt>MUST-T4-2</tt>, <tt>MUST-T4-8</tt>). Then
ask one question: does the signature verify under a pinned issuer
key. <tt>kid</tt> routes the check to a candidate key and carries no
authority of its own; the carried key is not consulted for
membership at all. The resolution table in <xref target="issuer-root"/> reads
the answer out per cell. Every cell there is a named condition
plus a membership decision; no cell is a silent removal.
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, expiry or,
where the manifest names one, payee is
reported as <tt>manifest-terms-mismatch</tt>; with a usable issuer key
pinned the comparison runs over the attested receipts and the
departure fails the audit, and with no usable issuer key it is a
warning over the presented receipts and does not by itself fail
the audit (<tt>MUST-T8-9</tt>). An audit
presented with no Trade Manifest is not made conditional by this
step.</t>
          </li>
          <li>
            <t>Scope the receipts. Membership follows the ref binding first: a
receipt whose <tt>ref</tt> appears on the extract is reconciled against
this extract even when its own <tt>timestampMs</tt> falls outside the
declared window - the rail has signed that the settlement belongs
to the window, and the receipt follows its settlement. The
<tt>timestampMs</tt> sieve applies only to receipts the extract does not
name: such a receipt outside the window is not a completeness
failure against this extract (<tt>MUST-T10-16</tt>); auditing a longer
period requires extracts that cover it. At the window's edges the
declared allowance applies (<xref target="rail-extract"/>): an unmatched
settled receipt within <tt>clockSkewMs</tt> of <tt>windowEndMs</tt>, and an
unmatched settlement record within <tt>clockSkewMs</tt> of
<tt>windowStartMs</tt>, are reported as <tt>boundary-deferred</tt>, a warning,
rather than as step 8's completeness findings - two honest clocks
can disagree by less than the allowance, and both verifiers of an
honest edge payment would otherwise reach the same false
accusation (<tt>MUST-T10-17</tt>). Where the following window's extract
is presented and verifies, a deferred receipt whose <tt>ref</tt> appears
on it is resolved and not reported, and one whose <tt>ref</tt> does not
appear hardens into the step 8 finding; a deferred settlement
record near the opening edge resolves through this step's ref
binding, since the prior window's receipt that names its <tt>ref</tt> is
reconciled here regardless of timestamp. The following window's
extract closes or hardens closing-edge deferrals only; an
opening-edge record stays deferred until a receipt in the
presented bag names its <tt>ref</tt>, whether or not a following extract
is presented. In a single-window audit
a deferred record keeps the guarantee conditional. Receipts remain
subject to every other check regardless of window.</t>
          </li>
          <li>
            <t>Walk the receipts of the working set, together with any receipt that
claims the pin and failed to verify under it (<xref target="issuer-root"/>), in
issuer order. Issuer order is the
order induced by the <tt>prevReceiptHash</tt> chain: the verifier
rebuilds the chain from the links, and the order in which
receipts were presented carries no weight. <tt>timestampMs</tt> is
issuer-asserted and is not an ordering source. 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, and a
receipt the links cannot place, <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.
An issuer stream that does not chain its receipts (<tt>SHOULD-T4-5</tt>) is
therefore reported as a break from its second receipt on: the <bcp14>SHOULD</bcp14>
states what an issuer owes, and this step states what a verifier does
with a stream that did not.</t>
          </li>
          <li>
            <t>Index the settled receipts of the working set and the extract records by <tt>ref</tt>. A <tt>ref</tt>
that appears more than once on either side <bcp14>MUST</bcp14> be reported as a
repeated reference (<tt>MUST-T10-6</tt>). The identifier <tt>duplicate-ref</tt>
              <bcp14>SHOULD</bcp14> be used for this condition.</t>
          </li>
          <li>
            <t>For each <tt>ref</tt> that appears exactly once on each side, require a
one-to-one match on <tt>ref</tt> AND <tt>amount</tt> AND <tt>currency</tt>
(<tt>MUST-T10-1</tt>), compared as exact octets on the terms of
<tt>MUST-T8-2</tt>; step 9's aggregation is the only place this algorithm
reads an amount as a number. Amount or currency mismatch <bcp14>MUST</bcp14> be reported as
a settlement that does not match its receipt, identified by that
<tt>ref</tt>. The identifier <tt>settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for
this condition. A settlement with no receipt <bcp14>MUST</bcp14> be reported as
lacking a receipt, identified by its <tt>ref</tt> (<tt>MUST-T10-2</tt>). The
identifier <tt>settlement-without-receipt</tt> <bcp14>SHOULD</bcp14> be used for this
condition. A settled receipt with no extract row <bcp14>MUST</bcp14> be reported
as a completeness failure (<tt>MUST-T10-3</tt>). The identifier
<tt>receipt-without-settlement</tt> <bcp14>SHOULD</bcp14> be used for this condition.
A settled receipt with a null rail ref <bcp14>MUST</bcp14> be reported as
settled without a rail reference; this check asks what a receipt
says about itself and runs over the presented receipts, attested
or not. The identifier
<tt>settled-without-ref</tt> <bcp14>SHOULD</bcp14> be used for this condition.
Where a settlement record declares a <tt>beneficiary</tt>
(<xref target="rail-extract"/>), it <bcp14>MUST</bcp14> be compared against the matched
receipt's <tt>payee</tt> as exact octets; a difference is
<tt>beneficiary-mismatch</tt> and fails the audit. Where neither the
manifest names a <tt>payee</tt> nor any settlement record declares a
<tt>beneficiary</tt>, the report <bcp14>MUST</bcp14> carry <tt>counterparty-unbound</tt>, a
scope record: ref, amount and currency closed against the payer's
account extract, and the counterparty's identity was not bound.
It is a statement of what the evidence did not cover, not a
doubt about what it did, so it does not move the verdict and does
not by itself make the guarantee conditional.</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>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 are listed in Appendix B. They 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>
        <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
witness 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="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
time-to-live (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>
      <t>One boundary is stated here rather than left to be inferred. In the
retrospective audit, "allowed by policy" is the Receipt Issuer's
signed assertion: the spend passed the issuer's gate under the
<tt>policyHash</tt> the receipt names. The Decision Token is consumed at the
gate, and the verification algorithm never sees it; the audit does
not independently re-verify the PDP's allow. The completeness side of
the audit has an independent leg - the rail extract - and the policy
side deliberately does not: that is a trust boundary of this profile,
not an oversight. A deployment that wants the policy answer to be
independently verifiable needs a receipt-to-token binding, which this
document does not define; adding it would change what a receipt
carries.</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, the Primary Account Number (PAN) of a payment
instrument, 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>).</t>
      <t>The rule is the one <xref target="CEDULON-CHECKPOINT"/> defines and
<xref target="reconciliation"/> applies: <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>When totals are withheld, a verifier that cannot recompute them 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 threat narratives in <xref target="CEDULON-THREATS"/> are informative
and do not override it.</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>
        <t>An attacker plants instructions in tool output, a web page, or a retrieved
document. The agent then calls a spend tool outside the principal's intent.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <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>
        <t>A stuck tool loop or recursive planner issues many payments.
Velocity and cumulative-limit counters live in the PDP, fail-closed.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <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>
        <t>An observer replays a signed payment payload, mandate, or Cedulon decision token.
Every gated spend carries a unique nonce; manifests expire; tokens are single-use.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-1</td>
              <td align="left">Every spend attempt that the PDP allows <bcp14>MUST</bcp14> include a nonce that the implementation has not accepted before.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-2</td>
              <td align="left">A second attempt that reuses a nonce <bcp14>MUST</bcp14> be denied.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-3</td>
              <td align="left">A Trade Manifest <bcp14>MUST</bcp14> carry an expiry; a spend against an expired manifest <bcp14>MUST</bcp14> be denied. The manifest is expired when the settlement time is strictly greater than <tt>expiresAtMs</tt>; a settlement at exactly <tt>expiresAtMs</tt> is within the manifest.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-4</td>
              <td align="left">A PDP allow decision <bcp14>MUST</bcp14> be bound to the SHA-256 of the canonical encoding of the request fields it evaluated, as stated in <xref target="hash-inputs"/>, and <bcp14>MUST</bcp14> be single-use.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T3-5</td>
              <td align="left">Nonce stores <bcp14>SHOULD</bcp14> persist across process restart when the deployment is not a test fixture.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t4-receipt-forgery-or-repudiation">
        <name>T4: Receipt forgery or repudiation</name>
        <t>A party alters a receipt, invents a receipt, or denies a real spend.
Receipts are signed; verification covers the signed bytes; a hash chain links them.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-1</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> be signed by the Receipt Issuer over the deterministic CBOR encoding of its claims, as profiled in <xref target="cose-profile"/>. The phrase "canonical encoding" is reserved for JSON documents (<xref target="canonical-json"/>).</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. A key carried by the object <bcp14>MUST NOT</bcp14> be treated as the signer's identity and <bcp14>MUST NOT</bcp14> be used as a fallback where no key was obtained (<tt>MUST-T4-11</tt>). 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 attributable countersignature <bcp14>MUST</bcp14> be reported.</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.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-17</td>
              <td align="left">A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the manifest hash against the <tt>manifestHash</tt> of the receipts presented to the audit, including aborted ones, before any extract window is applied and before any issuer key is applied, and <bcp14>MUST</bcp14> report a presented manifest that no presented receipt references. An audit presented with no Trade Manifest is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-18</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> refuse a CBOR map that carries a duplicate encoded key.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-19</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> impose a bound on encoded size, nesting depth, and the number of elements it will decode from an audit input, and <bcp14>MUST</bcp14> refuse an input that exceeds a bound with a named refusal rather than by exhausting memory or the stack. It <bcp14>SHOULD</bcp14> document the bounds it applies. This document fixes no numbers.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-20</td>
              <td align="left">A verifier that receives a JSON document as text <bcp14>MUST</bcp14> refuse a text in which any object repeats a member name, by name (<tt>json-duplicate-key</tt>), before parsing it. A verifier handed an object rather than text cannot apply this rule and <bcp14>MUST NOT</bcp14> report that it did.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-21</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> refuse a COSE_Sign1 message whose unprotected header is not an empty map, by name (<tt>cose-sign1-unprotected</tt>), rather than verifying the signature and ignoring the header.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t5-policy-bypass-via-direct-rail-access">
        <name>T5: Policy bypass via direct rail access</name>
        <t>The agent or an attacker calls the rail without the PDP.
The only payment function is the adapter that calls the PDP first.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <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-time-of-check-to-time-of-use-toctou-between-policy-check-and-payment">
        <name>T6: Time-of-check to time-of-use (TOCTOU) between policy check and payment</name>
        <t>An allow is computed; the request is then swapped before the rail sees it.
Settlement pays only the exact fields hashed into the single-use decision.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-1</td>
              <td align="left">Payment settlement <bcp14>MUST</bcp14> use the same six <tt>requestHash</tt> fields the PDP evaluated: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-2</td>
              <td align="left">An allow decision <bcp14>MUST</bcp14> be consumed on the first settlement attempt, success or fail-closed abort, and <bcp14>MUST NOT</bcp14> authorize a later different request.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T6-3</td>
              <td align="left">Implementations <bcp14>SHOULD</bcp14> treat a decision older than a short TTL as expired.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-4</td>
              <td align="left">An allow Decision Token <bcp14>MUST</bcp14> be COSE_Sign1 with CWT private-use labels -70301..-70305 (<tt>requestHash</tt>, <tt>policyHash</tt>, <tt>expiryMs</tt>, <tt>nonce</tt>, <tt>singleUseId</tt>) and content type <tt>application/cedulon-decision+cbor</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-5</td>
              <td align="left">A party that accepts a Decision Token <bcp14>MUST</bcp14> reject a failed signature, a <tt>kid</tt> or content-type mismatch, a claim-map mismatch, or an expired <tt>expiryMs</tt>. The token is expired when the evaluation time is strictly greater than <tt>expiryMs</tt>; at exactly <tt>expiryMs</tt> it is not.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-6</td>
              <td align="left">A consumer of a Decision Token <bcp14>MUST</bcp14> verify it against its own issuing key and <bcp14>MUST NOT</bcp14> accept a token it cannot check that way.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-7</td>
              <td align="left">A party that records a settlement under a Decision Token <bcp14>MUST</bcp14> refuse it when that settlement's <tt>timestampMs</tt> is strictly greater than the token's <tt>expiryMs</tt>. At exactly <tt>expiryMs</tt> the settlement remains inside the token's authority; the boundary is the one <tt>MUST-T6-5</tt> states.</td>
            </tr>
          </tbody>
        </table>
        <t>A later verifier cannot make this comparison. Decision Tokens are not
among the inputs <xref target="verification"/> enumerates: the extract, the
receipts, the manifests, the checkpoints, and the witness receipts.
The rule is written on the party that can apply it. Verification does
not repeat it.</t>
        <t><tt>MUST-T6-7</tt> does not let a later verifier detect a settlement that
predates its decision. That would require carrying the decision's
issuance time on the token and binding the receipt to it, which this
document does not define. <tt>MUST-T6-4</tt> names the same five labels.</t>
      </section>
      <section anchor="t7-signing-key-leakage">
        <name>T7: Signing-key leakage</name>
        <t>Keys leak from disk, logs, or a prompt. Forged manifests or receipts follow.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <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 a hardware security module (HSM) or operating-system 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.</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>
        <t>The payee ships a different artifact, or the price exceeds the signed offer.
The Trade Manifest binds price and an acceptance-criteria hash before payment.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-1</td>
              <td align="left">A Trade Manifest <bcp14>MUST</bcp14> bind goods or service description, price, currency, acceptance-criteria hash, cancel condition, and expiry.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-2</td>
              <td align="left">A spend bound to a manifest <bcp14>MUST</bcp14> be denied if the requested amount or currency differs from the manifest. Amount and currency are compared as the exact octets of their text strings: no case folding, no Unicode normalisation, no numeric reinterpretation.</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; an implementation of this specification <bcp14>MUST NOT</bcp14> take custody (<tt>MUST-T8-custody</tt>).</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 <tt>receiptCose</tt> value (label -70401) is not the issuer COSE_Sign1 bytes.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-9</td>
              <td align="left">A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the amount, currency and settlement time of every receipt that names it, aborted ones included, against the manifest amount, currency and expiry - amount and currency on the exact-octet terms of <tt>MUST-T8-2</tt>, time on the boundary of <tt>MUST-T3-3</tt>, and, where the manifest names a <tt>payee</tt>, the receipt payee on the same exact-octet terms - and <bcp14>MUST</bcp14> report a receipt that departs from them. Where a usable issuer key is pinned (a pinned issuer root at least one of whose keys the verifier can decode), the comparison is made over the receipts that verify under it and a departure <bcp14>MUST</bcp14> fail the audit. Where no usable issuer key is pinned, the departure <bcp14>MUST</bcp14> still be reported and <bcp14>MUST NOT</bcp14> by itself fail the audit. Receipts that do not name the manifest are not measured against it. A Trade Manifest that a stated publisher pin refuses is not terms for this purpose: where the verifier reports <tt>manifest-key-mismatch</tt>, it <bcp14>MUST NOT</bcp14> read a charge out of that document's body, neither this comparison nor the acceptance-hash comparison of <xref target="countersign"/>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-10</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>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-11</td>
              <td align="left">An attributable countersignature <bcp14>MAY</bcp14> carry <tt>deliveredHash</tt>. When present and the verifier holds the Trade Manifest, the verifier <bcp14>MUST</bcp14> compare it against <tt>acceptanceCriteriaHash</tt> as exact octets and <bcp14>MUST</bcp14> report a mismatch as a failing finding (<tt>delivery-mismatch</tt>). A <tt>deliveredHash</tt> on an unattributable countersignature <bcp14>MUST</bcp14> be discarded with it.</td>
            </tr>
          </tbody>
        </table>
      </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="t9-personally-identifiable-information-pii-leakage-into-the-transparency-log">
        <name>T9: Personally identifiable information (PII) leakage into the transparency log</name>
        <t>A public receipt or transparency statement carries names, addresses, or full
amounts that should stay private. Log-facing encodings offer redaction.
See also <xref target="privacy"/>. Narrative: <xref target="CEDULON-THREATS"/>.</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>An operator, leaked credential, or a second binary can settle on the rail
and omit the Receipt Issuer. Completeness reconciles the extract to the receipts.
See <xref target="reconciliation"/>. Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-1</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> match each extract settlement to a settled receipt on <tt>ref</tt> AND <tt>amount</tt> AND <tt>currency</tt>. An audit presented with no extract, no receipts and no checkpoints reports no completeness finding. It is not thereby unconditional, and the warnings for the roots it was not given still apply.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-2</td>
              <td align="left">A settlement with no matching receipt <bcp14>MUST</bcp14> be reported as a completeness failure identified by that settlement <tt>ref</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-3</td>
              <td align="left">A settled Spend Receipt whose <tt>x402PaymentRef</tt> is not on the extract <bcp14>MUST</bcp14> be reported as a completeness failure.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-4</td>
              <td align="left">An audit that has any fail-severity completeness finding <bcp14>MUST</bcp14> fail.</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 the extract <bcp14>MUST</bcp14> be reported as <tt>unauthenticated-extract</tt>, whatever it carries, and the completeness guarantee is 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. A key the extract carries <bcp14>MUST NOT</bcp14> be treated as the rail's identity and <bcp14>MUST NOT</bcp14> stand in for a key the verifier did not obtain. Without such a key the guarantee is conditional and the condition is reported as <tt>unauthenticated-extract</tt>.</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 supplies a rail pin but 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; with no rail pin at all the condition reported is <tt>unauthenticated-extract</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-16</td>
              <td align="left">When an extract is supplied, a receipt whose <tt>ref</tt> appears on it is reconciled against it regardless of its own <tt>timestampMs</tt>; the window sieve applies only to receipts the extract does not name, and such a receipt outside the window <bcp14>MUST NOT</bcp14> be reported as a completeness failure against that extract.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-17</td>
              <td align="left">An unmatched settled receipt within the declared <tt>clockSkewMs</tt> of <tt>windowEndMs</tt>, and an unmatched settlement record within it of <tt>windowStartMs</tt>, <bcp14>MUST</bcp14> be reported as <tt>boundary-deferred</tt>, a warning, rather than as a completeness failure. A closing-edge deferral resolves against the following window's extract and hardens into the completeness finding when that extract is presented and does not name the <tt>ref</tt>; an opening-edge deferral resolves only against a receipt in the presented bag that names its <tt>ref</tt>, and a following extract does not harden it. Absent a declared <tt>clockSkewMs</tt>, the profile default of 300000 milliseconds applies.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-18</td>
              <td align="left">A verifier that supplies a rail pin but has not stated the account or the rail under audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-scope</tt> and <bcp14>MUST</bcp14> treat the guarantee as conditional; with no rail pin at all the condition reported is <tt>unauthenticated-extract</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-19</td>
              <td align="left">A report <bcp14>MUST</bcp14> name the account, rail and window the extract declared, in the printed report, in the finding object it returns, and in every other structure the implementation returns for that audit, a tool result or an export included. Where no extract was presented there is no declared population, and the structure names none.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-20</td>
              <td align="left">Where a stated rail pin refuses the presented extract and the verifier reports <tt>extract-key-mismatch</tt>, the verifier <bcp14>MUST NOT</bcp14> read a settlement finding out of that document's body: not a mismatch against a receipt, not money reported as unaccounted for, and not a receipt left unmatched by rows the refused document omits. The verifier <bcp14>MUST</bcp14> report <tt>settlement-comparison-skipped</tt> in the same result. A pinned key the verifier cannot decode is <tt>trust-key-unreadable</tt> and is not a refusal of the document, so it does not reach this requirement.</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>
        <t>Checkpoint suppression and rollback, and the witness that detects
them, are addressed in <xref target="CEDULON-CHECKPOINT"/>. The two requirements
below are defined here because the core label set and the
reconciliation depend on them.</t>
        <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-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>
          </tbody>
        </table>
      </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. Ordering, recovery and observability: <xref target="CEDULON-THREATS"/>.</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>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests the registration of four media types in the
"Media Types" registry <xref target="RFC6838"/>, in the standards tree, each
carrying the <tt>+cbor</tt> structured syntax suffix that <xref target="RFC8949"/>
registers. Each names one of the COSE_Sign1 objects this document
defines and is carried as the COSE <tt>content type</tt> header parameter
(label 3) of that object (<xref target="cose-profile"/>). The value is a normative
check inside a protected header (<tt>MUST-T4-8</tt>, <tt>MUST-T6-5</tt>), which is
why the names cannot stay unregistered while that check stands.
Registration in the standards tree requires IETF approval; until
then, an implementation outside a closed deployment should treat
these names as placeholders that a registration may change. The
provisional registration procedure of <xref target="RFC6838"/> Section 5.2.1 is
available to an Internet-Draft, and a provisional entry, if one is
made, is superseded by the registration this section requests.</t>
      <t>The claim labels this document assigns inside the CBOR claim sets,
<tt>-70001</tt> through <tt>-70402</tt> (<xref target="receipt-labels"/>, <xref target="countersign"/>), lie
in the Private Use range of the "CBOR Web Token (CWT) Claims"
registry <xref target="RFC8392"/>, integer values less than -65536, and this
document requests no assignment for them. A later Standards Track
revision that moves them into the assigned range will request new
labels then, without reinterpreting these.</t>
      <t>No other IANA action is requested.</t>
      <t>The four templates follow. The checkpoint and inclusion types are in <xref target="CEDULON-CHECKPOINT"/>. Fields that are the same for every one
are stated once, in the first, and the others say so.</t>
      <section anchor="iana-receipt">
        <name>application/cedulon-receipt+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-receipt+cbor</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure <xref target="RFC9052"/> in deterministic CBOR
<xref target="RFC8949"/>, untagged, as profiled in <xref target="spend-receipt"/> and
<xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. The object is signed; its
evidentiary weight depends on the verifier holding the issuer key
out of band (<xref target="issuer-root"/>), never on a key the object carries.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>The claim set is a CBOR map with the labels and types stated in
<xref target="receipt-labels"/>, encoded per <xref target="RFC8949"/> Section 4.2.1. A
decoder refuses a duplicate key (<tt>MUST-T4-18</tt>), an input beyond its
stated bounds (<tt>MUST-T4-19</tt>), and a non-empty unprotected header
(<tt>MUST-T4-21</tt>) by name rather than accepting it.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="spend-receipt"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Agent payment adapters, policy decision points, auditors, and
dispute-evidence tooling that produce or verify Cedulon Spend
Receipts.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t>Deprecated alias names for this type: N/A. Magic number(s): N/A.
File extension(s): N/A. Macintosh file type code(s): N/A.</t>
          </dd>
          <dt>Person and email address to contact for further information:</dt>
          <dd>
            <t>Emek Can Dogru, e.dogru@cedulon.com</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>Emek Can Dogru</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-manifest">
        <name>application/cedulon-manifest+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-manifest+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure in deterministic CBOR, untagged, as
profiled in <xref target="trade-manifest"/> and <xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A manifest is an offer signed
before payment; it binds terms, not delivery, and is verified only
against a publisher key held out of band (<xref target="manifest-root"/>).</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the labels are those of
the manifest table in <xref target="receipt-labels"/>, and the <tt>payee</tt> label is
encoded only when present.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="trade-manifest"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Payees and marketplaces that publish signed offers to paying
agents, and verifiers reconciling receipts against those offers.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-decision">
        <name>application/cedulon-decision+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-decision+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure in deterministic CBOR, untagged, as
profiled in <xref target="decision-token"/> and <xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A Decision Token is consumed at
the gate by the party that issued it (<xref target="decision-root"/>); it is not
an input to the retrospective audit (<xref target="verification"/>), and a
verifier that treated it as one would be claiming a check the audit
does not make.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the labels are those of
the Decision Token table in <xref target="receipt-labels"/>, all five always
present.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="decision-token"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Policy decision points and the payment adapters that consume their
allow decisions.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-countersign">
        <name>application/cedulon-countersign+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-countersign+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A detached COSE_Sign1 structure in deterministic CBOR,
untagged, as profiled in <xref target="countersign"/>, whose payload carries the
exact issuer receipt octets it countersigns.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A countersignature that does
not verify under a payee key held out of band carries no
evidentiary weight and cannot move the verdict on the receipt it
travels beside (<xref target="countersign"/>, <xref target="payee-root"/>).</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the optional
<tt>deliveredHash</tt> claim is a 32-octet byte string and is read as
absent when it is not.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="countersign"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Payees that acknowledge a receipt and, optionally, bind the bytes
they delivered.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
    </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. Detailed status is kept in the companion
repository, where it can be corrected without a revision of this
document.</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 and not an independent
implementation; 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. One reader rebuilt the regenerated receipt vector of
Appendix A from this text alone, in an independent toolchain, and
obtained the published 307 octets byte for byte, SHA-256
<tt>0f1fe8859faf25de906b08142674f1270656d8ea7bfc00853c2fc6e9d3f5a10b</tt>;
that reader had read parts of the public repository and says so, so
it is not a clean-room result.</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. Every requirement added in the posted series <xref target="CEDULON-DT"/> is covered by a
red-then-green case written before the text, with one exception: the
reversal branch of <tt>MUST-T12-4</tt> is specified and not executed,
because this tree carries no authenticated external-rail path.
<tt>MUST-T6-7</tt>, the one requirement this document adds beyond that
series, is likewise specified and not executed: no case in the suite
compares a settlement's <tt>timestampMs</tt> to a Decision Token's
<tt>expiryMs</tt>. The escrow role, reversal, refund and partial settlement
are not implemented. The witness used in the suite is the in-process log
that <tt>MAY-T11-6</tt> permits, a Merkle tree that issues inclusion
proofs; tier 2 of <xref target="CEDULON-CHECKPOINT"/> (The transparency witness) is exercised against it red-then-green,
and the implementation has not been run against a deployed
Transparency Service.</t>
        </dd>
        <dt/>
        <dd>
          <t>Continuous integration runs the pre-release suite - the post-release
registry checks are a separate job, deliberately excluded, so "the
suite" names exactly what was measured - on three hosted runners,
each as a non-root user: Linux, macOS and Windows. At the commit
this revision describes, all three assert every case, 596 of 596,
with none skipped. A local Windows run without symbolic-link
privilege skips four POSIX-mode cases with a stated reason rather
than passing silently.</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>The posted series <xref target="CEDULON-DT"/> was driven by what readers found
rather than by a plan. T12 came from none of them: it was found while writing an adversarial
task, in the ordering the implementation itself used.</t>
        </dd>
      </dl>
      <t>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>Note on distribution: everything the posted series <xref target="CEDULON-DT"/> added is in the
published packages at version 0.9.0, and the workspace publishes
0.13.1 as this revision is written. A reader can check a claim against
an installed package rather than against a working tree.</t>
      <t>A second implementation is named here. Same author as this document;
not an independent implementation.</t>
      <dl>
        <dt>Organization:</dt>
        <dd>
          <t>VERAX TEKNOLOJI LIMITED SIRKETI.</t>
        </dd>
        <dt>Implementation:</dt>
        <dd>
          <t>Verax. An MCP body that consumes the published <tt>@cedulon/*</tt>
libraries to write signed decision records, effect extracts and
checkpoints. The code is a profile of this document, not a second
specification.</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>The body admits six tools through its own gate: memory.get,
memory.put, message.read, message.send, spend and audit.explain.
An admitted call leaves a signed decision record; a retry under the
same reference is answered from that record rather than writing a
second one, and a denial the body cannot append is refused to the
caller instead of being recorded. An allowed call is expected to
leave an effect row, and the audit path reconciles the rows against
the records; an allow whose effect cannot be found is reported as
such rather than assumed to have run. A halted body answers every
further call with a signed denial record. Each halt and resume is
also written to the ledger as a control record signed by the body's
record key, naming whoever the halt history names; the operator
does not sign it. When an operator is registered, an approval over
HTTP carries a passkey (WebAuthn) assertion bound to the held
request, and the offline verifier checks it again against the
operator's public key; a command-line approval stays unsigned.</t>
        </dd>
        <dt>Level of maturity:</dt>
        <dd>
          <t>Research and pilot. Witnesses are self or same-org. There is no
third-party witness and no outside audit. One live spend row has
been reconciled against a card statement: 10.00 TRY on 6 September
2026, a charge made by hand after the rail deferred it and an
operator approved it. That statement carried dates without times
and the rule named no descriptor, so the row was matched on the
wide date window by amount, currency and class; a settled rather
than a pending row is unproven, as is a statement holding several
rows of one amount. A tenant boundary has not been exercised with
two live customers.</t>
        </dd>
        <dt>Coverage:</dt>
        <dd>
          <t><tt>@cedulon/cose</tt> and <tt>@cedulon/core</tt> implement the signed decision
record (COSE Sign1 and the Decision Record).
<tt>@cedulon/effect-extract</tt> implements the effect extract.
<tt>@cedulon/checkpoint</tt> implements the checkpoint. <tt>@cedulon/audit</tt>
is called when a window is explained. <tt>@cedulon/x402-adapter</tt> is
present as a library; there is no live x402 rail, and the body
does not move money.</t>
        </dd>
        <dt>Version compatibility:</dt>
        <dd>
          <t>Verax 0.4.2 depends on <tt>@cedulon/*</tt> 0.13.1. Those published
packages implement the posted draft-dogru-cedulon-09 profile and,
from 0.13.0, the posted draft-dogru-cedulon-decision-profile-03.
0.13.1 changes no behaviour from 0.13.0. This document is the
split form of that numbered series.</t>
        </dd>
        <dt>Licensing:</dt>
        <dd>
          <t>Apache-2.0.</t>
        </dd>
        <dt>Implementation experience:</dt>
        <dd>
          <t>Used by its author to record tool calls and to reconcile one live
card charge. Gaps that remain - a third-party witness, two live
customers on one body, a live payment rail - are named in
STATUS.md in the Verax repository, not claimed here.</t>
        </dd>
        <dt>Contact:</dt>
        <dd>
          <t>The author of this document.</t>
        </dd>
        <dt>URL:</dt>
        <dd>
          <t><eref target="https://github.com/verax-ai/verax">https://github.com/verax-ai/verax</eref>. The packages <tt>@verax-ai/body</tt>,
<tt>@verax-ai/proxy</tt> and <tt>@verax-ai/inventory</tt> are on npm at 0.4.2
(<eref target="https://www.npmjs.com/package/@verax-ai/body">https://www.npmjs.com/package/@verax-ai/body</eref>,
<eref target="https://www.npmjs.com/package/@verax-ai/proxy">https://www.npmjs.com/package/@verax-ai/proxy</eref>,
<eref target="https://www.npmjs.com/package/@verax-ai/inventory">https://www.npmjs.com/package/@verax-ai/inventory</eref>). The MCP
Registry name is <tt>io.github.verax-ai/verax</tt>. The archived release
is <eref target="https://doi.org/10.5281/zenodo.22811593">https://doi.org/10.5281/zenodo.22811593</eref>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="evolution">
      <name>Evolution and Future Work (Informative)</name>
      <t>This document is an individual Internet-Draft. If the work is taken
up, the intended track is a Standards Track profile of COSE <xref target="RFC9052"/>
and CWT <xref target="RFC8392"/> for agent-spend receipts. Two extensions are
sketched and not specified here: re-attestation of receipts when a
signature algorithm is retired <xref target="REATTEST"/>, and reconciliation
evaluated as settlements arrive rather than per epoch <xref target="STREAMING"/>.
The same completeness check could apply to other consumed resources,
such as compute or data; this document does not specify those
profiles.</t>
    </section>
    <section anchor="adjacent">
      <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.
The drafts below are complementary, and none of them defines
rail-extract completeness. draft-bates-atp <xref target="BATES-ATP"/> covers
tamper-evident causal lineage as a signed directed acyclic graph.
draft-vauban-x402-stark-receipts <xref target="VAUBAN"/> specifies x402
receipt-format variants that a Cedulon Spend Receipt <bcp14>MAY</bcp14> carry as a
rail proof. draft-schrock-ep-outcome-binding <xref target="SCHROCK"/> compares
authorized action bytes to independently observed effects.
draft-marques-asqav-compliance-receipts <xref target="MARQUES"/> profiles
access-control action receipts (the broader Acta family includes
<xref target="ACTA"/>). draft-hopley-x402-compliance-receipt <xref target="HOPLEY"/> records an
admission-time compliance decision.
draft-abak-agent-control-delivery-evidence <xref target="ABAK"/> states evidence
requirements for a governance control - stop, suspend, revoke -
travelling toward the component expected to constrain a runtime, and
keeps emission, receiver-side observation, enforcement outcome and
observed control effect as separate results. Its object moves the
other way from this one: Cedulon reconciles a spend that already
happened against what the rail reported, and evidences neither the
delivery of a control instruction nor its enforcement. A denied spend
leaves no portable artifact here at all - a Decision Token encodes an
allow (<xref target="decision-token"/>) - so what a Cedulon audit says about a
refusal it says through the settlement that did not appear on the
extract, which is an effect observation over a declared population and
not an acknowledgement from an enforcement point. Its bounded-population
rule and this document's <tt>MUST-T10-18</tt> and <tt>MUST-T10-19</tt> are the same
kind of bound on two different objects.</t>
      <t>draft-kuehlewind-audit-architecture <xref target="KUEHLEWIND-AUDIT"/>, the
architecture a Cedulon audit is intended to be read within, is
described in <xref target="intro"/>; it also covers propagation of audit context
across domains and optional attestation under the Remote ATtestation
procedureS (RATS) architecture. draft-birkholz-verifiable-agent-conversations
<xref target="BIRKHOLZ-VAC"/> defines a COSE-signed record of an agent's
conversation - session metadata, messages, tool invocations,
reasoning traces - for the same Transparency Services. A Spend
Receipt is the kind of artifact such a record would name for a
payment step; neither document profiles the other, and the
conversation record 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="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </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="RFC8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves. The signature algorithms covered are Ed25519 and Ed448. The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
        <reference anchor="RFC9942">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Receipts</title>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>CBOR Object Signing and Encryption (COSE) Receipts prove properties of a Verifiable Data Structure (VDS) to a verifier. VDSs and associated Proof Types enable security properties, such as minimal disclosure, transparency, and non-equivocation. Transparency helps maintain trust over time and has been applied to certificates, end-to-end encrypted messaging systems, and supply chain security. This specification enables concise transparency-oriented systems by building on Concise Binary Object Representation (CBOR) and COSE. The extensibility of the approach is demonstrated by providing CBOR encodings for Merkle inclusion and consistency proofs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9942"/>
          <seriesInfo name="DOI" value="10.17487/RFC9942"/>
        </reference>
        <reference anchor="RFC9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
        <reference anchor="CEDULON-CHECKPOINT" target="https://github.com/dogrucanemek-alt/cedulon/blob/master/spec/draft-dogru-cedulon-checkpoint-00.md">
          <front>
            <title>Cedulon Checkpoints: Epoch Witnesses and Transparency</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </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="CEDULON-DT" target="https://datatracker.ietf.org/doc/draft-dogru-cedulon/">
          <front>
            <title>Cedulon: An Audit Layer for Agent-to-Agent Commerce</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="CEDULON-THREATS" target="https://github.com/dogrucanemek-alt/cedulon/blob/master/spec/draft-dogru-cedulon-threats-00.md">
          <front>
            <title>Cedulon Threat Narratives</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="KUEHLEWIND-AUDIT" target="https://datatracker.ietf.org/doc/draft-kuehlewind-audit-architecture/">
          <front>
            <title>An Architecture for Auditing AI Agent Delegation and Interactions</title>
            <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
              <organization/>
            </author>
            <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="BIRKHOLZ-VAC" target="https://datatracker.ietf.org/doc/draft-birkholz-verifiable-agent-conversations/">
          <front>
            <title>Verifiable Agent Conversation Records</title>
            <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
              <organization/>
            </author>
            <author initials="T." surname="Heldt" fullname="T. Heldt">
              <organization/>
            </author>
            <author initials="O." surname="Steele" fullname="Orie Steele">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </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="ABAK" target="https://datatracker.ietf.org/doc/draft-abak-agent-control-delivery-evidence/">
          <front>
            <title>Evidence Requirements for Agent Control Delivery and Outcome Reconciliation</title>
            <author initials="A. T." surname="Abak" fullname="Ali Toygar Abak">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="CPB" target="https://datatracker.ietf.org/doc/draft-mih-sokolov-scitt-payload-binding/">
          <front>
            <title>Canonical Payload Binding: A Signed Statement Construction Profile</title>
            <author initials="S." surname="Mih" fullname="Steven Mih">
              <organization/>
            </author>
            <author initials="A." surname="Sokolov" fullname="Anton Sokolov">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </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 2226?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Vernon Wharff showed that the object carrying the checkpoint guarantee
was neither profiled for registration nor read during verification,
and asked whether a recorded checkpoint absent from the chain deserves
its own identifier. Iman Schrock confirmed that finding independently
and drew its boundary.</t>
      <t>Iman Schrock and Pablo Etcheverry ran the implementation against a
pinned commit and reported defects that shaped this document. Iman
Schrock found the extract-binding defects and proposed their repair,
asked whether the profile should accept a pinned witness key, and
corrected this document's description of what its continuous
integration measures. He is also the author of <xref target="SCHROCK"/>, cited here
as adjacent work, and the reader whose independent implementation of
the Signed Statement identity is noted in <xref target="impl-status"/>; he asked for
it to be kept separate from any cross-implementation claim about
Cedulon, and that separation is his and is recorded here as he stated
it. Pablo Etcheverry found that a repeated reference hid the
unaccounted amount, ran the suite on a platform its author had not,
and found that nothing compared a settlement's clock to the clock of
the decision that authorized it.</t>
      <t>Nicholas Templeman ran the suite from a clean clone, corrected two
claims written about that run, and classified his own run as a
repetition of the author's checks rather than an independent
implementation. Walter Hawkins did not run it; he pressed for the run
to be stated precisely enough to be repeatable.</t>
      <t>Tiago Pinto ran the Appendix A vectors in an independent toolchain
before reading the text, confirmed the signatures, the SPKI-derived
<tt>kid</tt>, and deterministic re-encoding byte for byte, and listed the
places where an independent implementation could not be built from
the text. The witness tiers, the key-resolution rule, the extract
shape, issuer order, the boundary allowance, and the countersignature
and delivery bindings follow that list, and <xref target="presentation"/> answers a
later point of his. He consented to that run being recorded as the
first run of these vectors outside the companion codebase and not as
an independent implementation.</t>
      <t>Steven Mih and Anton Sokolov published the canonicalization vectors of
<xref target="CPB"/>; running them through this profile's <xref target="RFC8785"/> encoder put
the I-JSON precondition on the page as a rule.</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"/> and, for T11, in
<xref target="CEDULON-CHECKPOINT"/>.</t>
    </section>
    <section numbered="false" anchor="vectors">
      <name>Appendix A. Test Vectors</name>
      <t>These vectors use RFC 8032 Ed25519 secret scalar #1 (fixture only;
never a production key). Hex is lowercase.</t>
      <t>The vectors below <bcp14>MUST</bcp14> stand as the locked tests of this document:
an implementation matches them or it does not, and where an
implementation and a vector disagree, one of the two is wrong and this
document does not say in advance which.</t>
      <t>Receipt COSE_Sign1:</t>
      <t>Claims: payer=<tt>payer-1</tt>, payee=<tt>payee-1</tt>, amount=<tt>1</tt>,
currency=<tt>USD</tt>, policyHash=
<tt>fca4142da8ad241d24928227893894f4b5365efb746a4529fe9df0119d10da2c</tt>
(the SHA-256 of the UTF-8 octets of the ASCII string
<tt>cedulon/appendix-policy</tt>, standing in for a canonical policy
document; the field's input rule is in <xref target="hash-inputs"/>),
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):</t>
      <artwork><![CDATA[
845830a301320378206170706c69636174696f6e2f636564756c6f6e2d
726563656970742b63626f72044806e3fd8fda29bb60a058bbac3a0001
11706770617965722d313a000111716770617965652d313a0001117261
313a00011173635553443a000111747840666361343134326461386164
323431643234393238323237383933383934663462353336356566623734
366134353239666539646630313139643130646132633a00011175f63a
00011176f53a00011177f63a000111781b0000018bcfe568003a000111
79706e3130303030303030303030303030303a0001117af63a0001117b
6761626f7274656458400a24269b7521d409ebe462db297c3aa25b23d6
c697aa4a864b1b3a3edb5b30537b34b048a797073eaee41af371effb68
ecbb47b80e62d7e775e8cae5b066c30c
]]></artwork>
      <t>Manifest COSE_Sign1:</t>
      <t>Body: description=<tt>fixture-goods</tt>, amount=<tt>1</tt>, currency=<tt>USD</tt>,
acceptanceCriteriaHash=
<tt>e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</tt>
(the SHA-256 of an empty delivery; the field is a digest of the exact
delivery bytes, so the vector carries a well-formed one),
cancelCondition=<tt>none</tt>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>
      <t>COSE_Sign1 hex (whitespace ignored):</t>
      <artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a05889a73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b7840653362306334343239386663316331343961
666266346338393936666239323432376165343165343634396239333
463613439353939316237383532623835353a0001123c646e6f6e653a
0001123d1b0000018bcfe568003a0001123ef65840599b5b1cc7bfd3fe
8b8e65cdd876652aeca13660e6bdccc93afe12188a295b20fdfe8e6e48
ae447dc74ccb0f13383f0f43f0f67f288d61a6395e95e2038e320d
]]></artwork>
    </section>
    <section numbered="false" anchor="finding-code-table">
      <name>Appendix B. Finding Codes</name>
      <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, or the links cannot place a receipt (issuer order, step 6)</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-extract</td>
            <td align="left">guarantee conditional</td>
            <td align="left">No verifier-supplied rail key, whatever the extract carries: a signature that verifies establishes internal consistency and not that the named rail produced the extract, and one that fails or is refused is not a key verdict either. The same code is reported when a rail key is pinned and no extract was presented at all, because there is nothing to check the pin against. A presented extract that does not verify under a pinned key is <tt>extract-key-mismatch</tt> instead</td>
          </tr>
          <tr>
            <td align="left">extract-key-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">Extract is signed by a key other than the pinned rail key, or does not verify against it</td>
          </tr>
          <tr>
            <td align="left">settlement-comparison-skipped</td>
            <td align="left">guarantee conditional</td>
            <td align="left">The pinned rail key refused the presented extract, so its rows were not reconciled against the receipts (<tt>MUST-T10-20</tt>). The code says what did not run; the refusal itself is reported as <tt>extract-key-mismatch</tt></td>
          </tr>
          <tr>
            <td align="left">trust-key-unreadable</td>
            <td align="left">audit fails</td>
            <td align="left">A pinned key - rail, issuer, or manifest publisher - could not be decoded; the verifier's configuration is at fault, and nothing falls back to the keys the objects carry</td>
          </tr>
          <tr>
            <td align="left">issuer-key-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">An object is signed by a key other than the pinned issuer key, or does not verify under it at all, so it is not coverage for anything it names. A checkpoint reaches this code by either route: unlike a receipt, which is named in the chain walk as <tt>receipt-chain-break</tt> when it claims the pin and fails, a checkpoint that claims the pin and fails is reported here and leaves its window uncovered</td>
          </tr>
          <tr>
            <td align="left">countersign-key-mismatch</td>
            <td align="left">conditional</td>
            <td align="left">A countersignature verifies under a key other than the one pinned for that payee; unattributable, discarded as approval evidence, and the receipt it rode beside is unaffected (<xref target="countersign"/>)</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 attributable countersignature; a discarded garbage or foreign-key object leaves this open</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; their signatures are checked against the keys the objects carry (<xref target="presentation"/>), which establishes that each object is internally consistent and not that the named issuer produced it</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; its signature is not checked at all, because the check that exists under a pin (<tt>manifest-key-mismatch</tt>) has no key to run against and the key the manifest carries is not a fallback for one. 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 manifest states terms no presented receipt names. It is reported on what was presented, not on whether the manifest was attributed, so it appears beside <tt>manifest-key-mismatch</tt> as well</td>
          </tr>
          <tr>
            <td align="left">manifest-terms-mismatch</td>
            <td align="left">audit fails under a usable issuer pin; warning without one</td>
            <td align="left">A receipt names this Trade Manifest but departs from it in amount, currency, settlement time, or, where the manifest states one, payee. A manifest refused by a stated publisher pin is not compared at all; a gate applying <tt>MUST-T8-2</tt> and <tt>MUST-T3-3</tt> would have refused the payment. The two severities are the two branches of <tt>MUST-T8-9</tt></td>
          </tr>
          <tr>
            <td align="left">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 on <tt>ref</tt>, amount, currency or timestamp, which are the fields compared; the extract is authoritative. A beneficiary that differs is not part of this comparison and is reached by <tt>beneficiary-mismatch</tt>, against the receipt payee</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">A supplied rail pin states no period, so the extract defined its own. Where no rail key is pinned at all the period is equally unstated, and <tt>unauthenticated-extract</tt> is the condition reported</td>
          </tr>
          <tr>
            <td align="left">unstated-audit-scope</td>
            <td align="left">guarantee conditional</td>
            <td align="left">A supplied rail pin states no account or no rail, so the extract defined the settlement path it reported on. The same "no pin at all" case is <tt>unauthenticated-extract</tt></td>
          </tr>
          <tr>
            <td align="left">countersign-bad</td>
            <td align="left">conditional</td>
            <td align="left">Present payee countersignature failed verify (signature, content type, or payload binding); unattributable, discarded as approval evidence. One verifiable under another key is <tt>countersign-key-mismatch</tt></td>
          </tr>
          <tr>
            <td align="left">carried-key-mismatch</td>
            <td align="left">conditional</td>
            <td align="left">An object verifies under a pinned issuer key but the key carried beside its signature is a different one; the unsigned surface was rewritten, the object stays attested (<xref target="issuer-root"/>)</td>
          </tr>
          <tr>
            <td align="left">boundary-deferred</td>
            <td align="left">conditional</td>
            <td align="left">An unmatched item sits within the declared <tt>clockSkewMs</tt> of the window edge; deferred to the adjacent window rather than reported as a completeness failure (step 5)</td>
          </tr>
          <tr>
            <td align="left">beneficiary-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A settlement record declares a <tt>beneficiary</tt> and the matched receipt's <tt>payee</tt> differs</td>
          </tr>
          <tr>
            <td align="left">counterparty-unbound</td>
            <td align="left">scope record; verdict and guarantee unchanged</td>
            <td align="left">Neither the manifest names a <tt>payee</tt> nor any settlement record declares a <tt>beneficiary</tt>: ref, amount and currency closed against the payer's account extract, and the counterparty's identity was not bound</td>
          </tr>
          <tr>
            <td align="left">delivery-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">An attributable countersignature carries <tt>deliveredHash</tt> and it differs from the acceptance-criteria hash of a Trade Manifest the audit did not refuse; both ends are signed (<tt>MAY-T8-11</tt>). Where a stated publisher pin refuses the manifest, its acceptance hash founds nothing and this comparison is not made (<tt>MUST-T8-9</tt>)</td>
          </tr>
          <tr>
            <td align="left">malformed-policy-hash (and its family: malformed-request-hash, malformed-acceptance-criteria-hash, malformed-manifest-hash, malformed-receipt-hash, malformed-prev-receipt-hash, malformed-chain-head-hash, malformed-prev-checkpoint-hash, malformed-ap-two-mandate-hash)</td>
            <td align="left">audit fails</td>
            <td align="left">A hash-shaped claim does not match the 64-lowercase-hex grammar of <xref target="receipt-labels"/>; the claim is named in the code</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section numbered="false" anchor="example">
      <name>Appendix C. Worked Example: A 10.00 TRY Spend</name>
      <t>This appendix is informative. An agent pays 10.00 Turkish lira (TRY)
for a file. Amounts are integer minor units, so the amount is <tt>1000</tt>.
The run used the companion implementation with keys generated for the
run; the keys are not published, so signatures and hashes are not
shown. No real rail was involved.</t>
      <ol spacing="normal" type="1"><li>
          <t>The PDP allows the request (amount <tt>1000</tt>, currency <tt>TRY</tt>, payee
<tt>shop-1</tt>) and the adapter settles it under rail reference
<tt>x402-n-10try-example-0001</tt>.</t>
        </li>
        <li>
          <t>The Receipt Issuer signs a Spend Receipt with these claims
(<tt>policyHash</tt> omitted):</t>
        </li>
      </ol>
      <artwork><![CDATA[
payer=agent-1   payee=shop-1   amount=1000   currency=TRY
manifestHash=null   noManifest=true
x402PaymentRef=x402-n-10try-example-0001
timestampMs=1789400600000   nonce=n-10try-example-0001
prevReceiptHash=null   outcome=settled
]]></artwork>
      <ol spacing="normal" type="1" start="3"><li>
          <t>The rail signs an extract for account <tt>acct-1</tt>, rail <tt>rail-1</tt> and
the one-hour window <tt>[1789400000000, 1789403600000)</tt>, with one row:
ref <tt>x402-n-10try-example-0001</tt>, amount <tt>1000</tt>, currency <tt>TRY</tt>. The
issuer signs one checkpoint for the same hour.</t>
        </li>
        <li>
          <t>A verifier that holds the issuer key and the rail key, and states
that account, rail and window, reconciles them. The result is
balanced under an unconditional guarantee. It carries the scope
record <tt>counterparty-unbound</tt>, because no manifest names a payee.</t>
        </li>
      </ol>
      <t>The same audit was then run against an extract the rail signed with a
second 10.00 TRY row, ref <tt>rail-ref-unreceipted</tt>, twenty minutes into
the window, that no receipt names. The verifier reported
<tt>settlement-without-receipt</tt> for that ref and the audit failed. That
row is the case this document exists to detect: money that left
through the rail without a receipt.</t>
      <t>The same control has also been run once with real money, by a related
implementation from the same author that records a spend as a signed
decision and effect record rather than as the Spend Receipt of this
document. On 6 September 2026 an agent asked to spend 10.00 TRY on
advertising, the policy deferred the request, it was approved under the
operator's account, and the amount was paid by card to the advertising
platform. The next day the payer's bank statement arrived, and its line
for that payment was reconciled against the approved spend: one
matched, none unaccounted for. Two limits apply. The statement was
received as an image rather than as a signed file from the bank, and
the line was transcribed from it, so under this document the result
would be conditional (<tt>unauthenticated-extract</tt>). The line also did not
carry the spend reference, because the platform billed under its own
descriptor, so the match rested on amount, currency and date alone.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9y963bcVpIu+B9PgZF/mFJn0iJ1J3v6DC3RZZWty5Hoctf0
6tMJZoIkSkkgG0CKYsueZ5lnmSebiC8i9o6NRFKUq1avNVNnnTaVidzYl9hx
jy+m02nWV/2yPMjvvF+V9SJ/V87LatV3eUH/eFtcX5Z1n78rqiV/09TzalkV
fdXU+VnT5kcv86NzeqC7kxWnp2358SB/Xi7WS/r6edOW2aKZ18UlDb5oi7N+
umjO2/V0Lk9M5/TE9P6DbFH09MT+/f3H07370/v72Zw+OG/a64O8qs+arFq1
B3nfrrt+//79Z/R90ZbFQd6V8+yqaT+ct816dZB9KK/pX4uDLM+nNgn8XfAE
8VcrS8Pfq2ZZza/x5/vnL09Osq6nBf9HQb8q8bYy6y6Ltv+P/1w3fdkd5GfF
siuzVSUv6Ju5/beqF/aCrmn7tjzr5B/Xl+HveXPJ+9hlxbq/aFqMQf8/pwXS
0Me7+fPd/AVvDj6ULTu+LD/kz4vafdG05wf5X47fHf1rfnL80+s3P7/588v8
55evXp4cv8jfv3z30/HJSzw4b9Z1zxt4sm5pY/BZeUmHeJCXuziF/0NPYZem
ltVNe0mH+rHkib374fn+3t4z/fPx/oOH9ufTB0/1zycPnz3QP5/ef7Bvf+49
sWefPngWPn24d9/+fPL0kf357KG94tn9R/vxTxv32dPHNtizZw/345944Pnx
i19+fvN6+vzH4+c/vX3z8vXJARZptByo8KKcf1g1Fe097eiqmV/kv1Z9XXZd
KRR+0hZ1tyKKqufXdzBEPCL+33T8iG48pkjQMqeiPS/7g/yi71fdwXffnVf9
xfqUN/47HMW8qEsaZFos++/0VL47XTan310WXV+233Wrcv7d6AUKi5vev797
ucj4uqQn+cRt3V44B/pwz+/ii/HdO8iP6vxovaj6/OfiumzlyvN1mvbNFH/Q
NSfKbuflf9Pe0ddF3xbzD2W7W5X92S5dCdrF0f35zq3w5Md3x0cn78eJ5OSC
GEqfvy7aFnvX/X+NEHosoFMqyPOffjn+8efjX1++fjE9+uXFy8Hp8qG284uq
L+f9ui3lVPmUq/o8cPT8Rbksz4XT8z15WdMMijn/+6btebWb/7QuL5blFbHF
wQa9qtq/FZtf6y9/3M2/r9oPF83yvwa/+7GsP6TfOYlx/9EfoZMPYRLTglc+
LdyGMN18T8z0xzc//5/Tvxw9T3fvL2VbnVXF6bLM7QbUH8u2k61iGdkubtqh
r1ln+NHJLn27XPSDXww+1off7Obv+5KOb/D0m7Yq/Td+F5/+kV081blOP4Y9
mULakmiPe9JhP49Ojt9Pj07eDkgROwgeLLSVv20bkqnNMt+hh+/esI8vaB9p
Ad1gkS+Kj9UiP+ouiF3F7/8OgrnoL5e2Xh5vWvQrGuFfH97fT9fyiT9hjvmG
9CjaZ7o1RbvA7cLlqct++hr8xdSqLWQCKc+j5T+QGF9gE2/DTq6urnb5Z5g6
PXH0dn9st+3lfqvf7m/ZaszlT01zbuRezQPLT+f0aHr/2ei0itX+dKWvwtTo
A7AyIpk5FseT/dO7l3/6Uzrdk7Za0WuPWZPJj+bQaYhF3UATL3fzP7XV+fmA
Jl4SU46f24y3EEJV1OeY5qpYEQl/12MW/1HyLHaZGOhXb4+ev3zz88t0uu/X
l5dFvijzoiW+flnSVhWT/Lxs6M+2oj9pE1akINKCq7zs3T+LZdUXNyzr5106
tHlFGutgYT+TyEi+krXtPXz2kP75l6Nfvj96vUmk+fuTo3c/maJPRMYqQ378
qS/rjmZzAyH8pVifFszkupIZ5j+GF3/EoFOe2ZSU8PbDVPV0MI73z3989+b5
T+kq3qx7EpolMct6wUJLJBhPuPqvkm6/iCmVW4uS7Ro6v+V1/ua0K9uP9Mjx
2Rkx+5v4NNHS+/lF28w/DKnpkrbAf+V34Mkf2YFOBpuWq2kjKyPWipXxDrw6
evc/fzkeqi7N5YoMsXpe8jU+q+ieNGf5++q8DuuPltzAUtu65D/v5kd0g+j9
Xf6qaP9zvcFd/9wUDbG4BWkNm4/93ftwKYNNi+4/i48kQ2yJCUEcPT85Glw8
WfUL4ijdxrpfFSTY65IVVv2TWQnp/yy3+7ZZ3rAfJF5/KNql2k9xF06aS/+F
X/cf0lrPMNaUJGAx7bCYZMU/vnn78/FfB+cvJjKxmGXuaOH9vC3Lmq/E4HYH
zb2aT82o/2HZXN1EDqTn/tisNpf//KKtur5ZsYh1D/zdjOACYwkj2Dx8nP33
RwNOcEzSvuSVvyv/c121pUi2sFo7ZNZmSfCSHGGeYOwjdWjcsBN0K4gWjk6L
IS84WlZEDdfnRRu//bvVqoJGinoUT3+60OlPS10vbJu33w+JoibZwiRBR7xs
ioUxSJqo8QbSS3rsEm9N15PRYWoXM5Eb9uD9LinwF4P1kzb5kZSd+EXcsPfN
h2bZfBxuWN3T2/x3f/d2XVYX004GJE5a9f10Jav3TJStP9JAt3gJ3pXTo550
ux6EQBROluA13yJxiQUiO5q3DXGOoyVfPZLx9MNeie4fbzJu245bW43l46d7
5f7Dxd7p/rNne/uLp/O9Z6SnPZvvl8Wzs4dnzx49eDrff7bYbleyVRm2JViX
709oN1+9fP2n8c1839PPLpUHuft1gMtY1etm3QnPKknjYE4cryv2+/+XW9nZ
rug2TqfTjP9PXpx2TNx9lp1cVF1OdL3G9SwWJGXFTcUWKgzOlanuKtHBJETP
OV1Xy0WXrVd0Anxg5bQ5m/YXZJC1ff7jycnbnNjqhG0CPE5ygt06c7ZQuuuO
WEK3m/9aZqKXE5ukJ65XPS2hWF0wSyHlqSvnZB0vbBbsTvX+YNPxs3XHh1+w
WUfa8Kuirs6IhvKdIhfhRprKGYmO05JWEdZ0d0K/eCtO2SDJ37JvK7+iUyK9
+qxYL3v6b33NjybOah77+Zv3x989//Ukny+L6jLrSMOuum5Nr6PDoNcV+Tnt
ysK/jwZoi2o5LT/hBAYL2pXzuawWCzKYs2/YimubhTLMz99U/M/fs+yIdHiy
ZCpiu2znLZfVOZjFztHLu3ZCVf2xWbLeWdU5vetjuZzQKZHOl5PO86Hssz6a
wN2ErIP5Ln1zndcl/YZOkQ5qVZzSzPpr1vPkJOhIaDGq/2b0VNXmfhyyGlqS
F3Td6Enav4r33k6py7v1/CIvukAc2efPbNT+/js2Rmy+b7v8RqMx//yZ/kM/
ueSjrvpsRfyxOmV+YMO6NxIzIRWMyZOemNPZ0kJ6Yh6gpr4hG4PYddFeZ23J
emDfyRkxzTIr7/I1ae+0hb0+r+R0yZY2sald5tsL2rOewwJdxr+ll7Oy17Sd
UIMcCMmJZsU723wgm4cO+teLgsmFDrsD8VZ8qfAmMtLKFpfv3j1cxHzJrtB7
9w6Ioi5VuYQjlh+id3ZXNEea3J0r2tuer3QHUqUr1FzRO0+vNfZAizsviKsR
gdMNu5BbgRVnVzyd02taU06jlbmK/3LxP+7kJ0QN8pYuvyBKypfVZWVb1XsW
koEP8CTKy12y/ocTuMPLZOKyW/SSd6ilM5eNzQpiPzBQD/GYLH/R0JB1Q9uV
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
mtPRZNJv5s3ecEJX1U7OzH5Ji36jPxjwb436vUG7Peu05C16p+Xf6feid9r9
VhL8tdPv9Hq9TrfrXukOht1mv88N73Q7/L92v0t/HvZb/W7SafOL/S7+O6J/
D+l/7c6A/jvqdPDvLn232293evR3ejq1oN/nT9CX+3hmj74wohd79G/+cJN+
pcV/pn838Vvtfse1p0ejlif6l/68594Y8Bv652FrgiluDSfTedHrD5tNey8Z
0NjSUNKzn/g/e1AePHSS9AfUaUwIzSHNXI+Gppm3u+3+aDLotVuzbnNUTArq
7WzSHg1oavJ2b9LuzPoJzf0gz7v5sN+dtCadvFPMJr1Jp9nrDCad7qTZHebc
sEGnyIui28rnnUGrmM8n/WFSTCeT7mAybBb03EExGPSK4TQvehOalmmnOZVV
lzh96MggfQdNg+A2+WKsFj67Xq1mVWyJ0polSvarcZNVKjqT5rTbbY+G82lr
2uqO8vlk3p0OR7S0JyMakkFO3aCh6I4mtAbIho16o1FrQt5DezLs9XatEsc2
QYJmXlxgOyTrOyuvHTl3IQUcPgiNhItDY6nd99C+h2KxyESgis8AsjRT7tXi
pXkrZB/odeoyyoiK6nyzY0jS/L79WtKDzlr8CdPQCkxD64tNQ39Ga6/oY6MM
Ol9iHIajfMCLN6HVSxuTHtCnRTikHd1jO9Oe0XKe0/91B7a7eB+2nDVo0z6r
mYN2ZwJzQHuZ9nCTtmWXDQLt8iGbCLIEHZgIekzC2xxbX8zAiHY7b/wRTAUZ
AOpOD8aD/93Hl9owGklXjc2ITAN/sdUXi0KGot/Gf3uuPVMyEAUPET1GzQLt
t4Pbv90p5n3etrQYaf+1ptPBZD7rzItkOBnSM6az2XBAI9zOi2neoibTppvM
ptPpqJPPi1a7NRzSCNOebs5n84K+UXSHCa307mA2HXSn00lz3uL+zpvzLv+r
P5i3h0OaurzfGfUK+n+a92FBsz/TbRv4d98xZ6ecrC+R2Pj0jcbWMna2M9w/
D/h6v+MrLGEoCYff09d0ZedHBYTySiofKIco3NHl934PxDUqfpoXN1VsoC/I
rqlYqZay3JT5/TFkwOxTXlUV1Wf4Cr3M7bEcrjUmSLfU23NZU86inzigdlvr
qNNz2Xkih53HotLk0xqqdLcK9fN8zepuLwMh31lAYrvT1UjNb6ct5M0cUqFV
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
O0n+A32wMBQECwIA

-->

</rfc>
