<?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-02" 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-02"/>
    <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="01"/>
    <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 -02 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, 595 of 595,
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; who halted and who
resumed it is written to a plain file beside the halt switch, not
to a signed record.</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.1 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.1
(<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 2222?>

<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:
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
GXtQDyN7ixStr+pZPHbQ9nKceO8wmMbhcmGElrxuptfrWHuiIbws2+UKrrY5
1X8EM2tRyDEvczDkLwrRghJ3IRut0QqFfZjxjrPDoyMCBSpUlV4sW1Rlmuxy
hbHeWi1f8QDpT1Bfyont5c20hPsEetYN+o3wTfylWoKgGxWgRPK6lCuR1NHl
wK1HOQEXHfg2GGDAr/G2sKMHjJZZPSdNg/bsP9Bs2hXrgx2WGbIEodyJMCyh
kQlTqv7F7BRJC4kSljwRFTnLJvzyX9sC2QCcMp6wulzG5OKSw6GkZGEiSjCx
mooKN3sZjVOpyo9bXKOWqToq/IGvZ02WtaIi1ld5Kt7dKhPhFK5hQm9ARorV
EXmbYVYwVvQZ0C8baZc8E7kWTEh+seoYI2WVOCf6Mvj+vC8rpHb4Qk91NYWd
J7UWf/FR5prV0y5nl8WK9miao0UBh1svl3XLll5OP2P6qlnXmOVNg1b1tEC7
nawUc/7oFlGa9rip666VHfqtbq5QF4CDsE1qfKJ5sF9bN00xoOEyL1uUxu0K
YyZg67W0Q7TB4qCDe0nGx6pl9xlvAzlJG1rFJjF0Cg4hNyjQfV43xNpQ9YXL
or91P4IbxiOBBkDuNlHoyNPD68UBPn/285U1v9dHx6tK32uLJ26E254b7wGC
dFZ8dFZ0vDhDngy+0k3yHJ1Tr/xB4LxpLLyuojAIubCoo7OkYbq2WJzbqaJH
06msv/8Om8RGeEGO7rK9LFpzFomO1CK3RY6MEhSYR+3eQTyqKMk4s82varTU
2P9IsbLe3tpvb4ry4pKZDt5H5C9K+954xUEuVjmIh66g1bMOwz80NS5fKNvM
wwHw3cSnRczBG8zhghxPqZp3nMja7EefANvXfOdlDtbrNRlNsXaCasbI+Z/5
b1kZOiJF7HVe4IkySxr0/wn/o6wwUMpn5RIeHY/FFz3+J1Vx1vzvf93x3RdT
NH8Qtg9nhaok/iaJh9lv8LtNnfMWzGRMk4i1N5wgf4Jfqg64dhprv7njVx/X
fzP0q1hLSb5z7Pa/cZ7Dv4ojhbS5KnKyf4Q//+EbZvgt80p3jXUzoAzWxtyR
o6kLN0jpki8CKa+iQ1cFSbZ8cdVG+jQYCGCGwd8NeUTR0STkIg5dr7aLzt7X
wb/7Lhs0t3Qm+NtgXTnbCrYQOSup/jrsLg57qMo2TCFo26yGd3W9QLd01dER
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
RBhFO2vvNMP4rEMlciZAANBIlnNAhxBn14ZupAYXfr8+pH2LtFjWmLse9tT4
TtvrToqH6Zs3C2eWxFAPS+qaLxtNNr4UIUIt1uTinHtpSqv6G+lZRa/EkL/1
WI6b1/+x3qeUUBRvBwaX092IAQvviVsZoEl6sCRSjWJ9DHw2G7XS8iW467BK
vOcvoZbdR0QuUXX8OhhHcu300N3tVGZanKcAwwEsrY/Mre5hzIQK36b1FyEj
38C7sYJc2yGRZqnFfrIH7eoca20Kzo8X2JN00WR+pytp+9VIsH+n7HN5T/fl
l+L2VXVeZy9PgtLg2owZ9fQQPddUGYSuZf0mXynghW/qSoA6Su7u5fy2dghE
E08IrwqjmYtGTasOV7JlyyPdrb0BjiKJ1JbxOQpYUyNN4SFNk/l0XXOaVVNS
loavvC0Y9pMg6HPtYQw8WEH3zatIF6QwVJrh/lNau0C7QqcTr4VVGA6xfnM7
eLbBC8JdaRA57Bt6v4f9G2r9nk4TNZ1v7cfek5tfb8fum4iu2Q5Hs+kkn8R0
8Qf7YzuQsj/QHHsQdPnbemPLBU5vLoXmhq7tOhSzpDty9Ko+itnw0N/YPPkP
SrI/3MT7nkLrW7G07pJPT/nC/m1d//qNrKkfgqZLe2KTvUibAqbTehbT/re0
rY4pg1R/L2G/oXV1oATfLCBu2nxXo+bsW/o0D/WTDZP5Jqi9/ybSeS5OYMYC
9Qebs/1mAKDBv2lADSzfi/mAhr170B+4vJY0O/ZYIRiD/L4t/wvLTQoKvqPj
p7sMsfGQSFksNDCLBwRyWlqTCqS/bBc5qqKTOLdUaviGV6OVnjoZrWCn3GcB
Lo20iynSxmW+4ileF9c1O5lId8NYIuU4i8lq2VWcvL6q2MMmiRnS4NkeOi8/
MayMJBSl7o1HAzJE0mpwAZHDhKwDjJvGR0kfKcoNdz9gA4PrIgMiKO3ACFdL
4LmbE3S5jAM0B5w0JobIRcCySc4hidgstpOgG2NvcRtJUxGWgxuiNLqSFqKm
YPhKAK6ATjdm9y7iDdYqqNJtfqHoXKsqtV4dOg87NoDm/RaQRwtl6O7Y/Ri3
wa+L2aeq3E7kou1xUdWNtTillzrv5ZNDjUFNbzFJM/tYYp1+wzuHQFYzTv93
ya7it7EwNkebLZNRBZ34+Xf4lwwhIvGOczAXPL4IiOVlF/JWdDh0PFNw8+/s
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
CVu7/KD52sKtnsnsMmgETGsq8SFYPgFGX16dX/1yeXLnYkIygcLkFSrV2B03
V/lrj76/vP8Zn6vLNbGh+ZBmhfygGSY3C8f/4t7nTo0bsr7dizRpPnw0k+Re
LZbMJkltHydSVZks7+/45IJlAQy1a8rj4+MJvfu3Eq3RG38X3/YvjShT9rmv
oFFf+R3X5L9o6Ri5/YJl1ogRMN5M8lCsTnT44qHTuCE7DNDkCsJO9DXXkNmq
OCFP4Tvaq3vtYeu7v+fL1Wx10qafW71R5y94YJxpffWwWmxdlPyHLcAJv9HZ
Kjm6sGzwQ37MfOr2yZqCQwGcMiPEQzHbkpMVF1edsAyKHR6xeLNbPoJv77Va
2DLMbN1vZVesFPuEpxHsLkHBhjADs+xqUIsk6WYoSUcqQXzMeVx5eDZcrMOD
8jYXH8BCwT44zIvhlHN2LGhb+qyRg0vK1kHX8ASVYfaIq4jYHFHjXp1fXb26
vDLQaZynODxwEr68l/iALzeRQ0SRc8zlDEKj8OnT5RVd+fXFm38FROHKp/cC
vg45cU8BXlOVdStmckA8ZlZioj2OHQonl5NehmxZtsnOKrF2t3XJeH0UJBoq
9vhxlZbQ93Mp4QgGjNj57G/ZlC/yTknyOcWf6YuYZdgzP336K/1DTxQlGT9e
Xb1L5GWeAK1Wk96hrizz69WmyAAJ4djNdMWWz/TLIGv06RP9bddR70WljlCX
KDki0SHw4t/UA6s92GG0VV0LI/k/4Z6g24lkA+k7aO9rFZy/tBlCjoO0v9tu
cUgmyIKw6lx5JrgPC/NnsdKVPmRstJzpMD4QeeDYyQzCHYYFlS+E7s27ROqY
UoNpcqK794THhCb8PQ3a9+c0Z9Pzq3fUUGSZmMgku2MiDgUfJZzgoVW/oKtz
N7PwVF2sjbby45Rzgdfr7J7TOnKjh2w7yZYp/Cp6cOvb1C2rT59+Pf/l+/M3
dFtbjCW8KBdjS2VSJQ8cynQSAllcK+I4mr3Uhqg6SI6JcxfW63J6s15Nb9P8
PtVK89SkSGmRvfjx/dsXP2EQJAdEdsfkqmdWDChSXZso6QzhReaW4AwXHNnS
9f8uW3PpYJqV/5E9gC6IrAELoQTD8Pr8/f/45dUl3dlWFd0Zktqpomzs7u5L
R3Av1ysE3M6nG9bpuCvArYhUA+bf+YurcxQxS1NuVjQNPsqj2G0ItePHt+9+
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
iRW6Mx8xz0TqZPaAABaiBVrfJwclXxt7ilwcds1TURF9DrKKddoaN6RWVF7I
8YK4Ec/HLc6kGVzh+fiXy5djY+jhssrntBHMp1m31W3PsmE2a3db9N+oPWy3
B8NRZzjqzruTXqffy+eTQbefdXvt0TwfzebNVms0azVnWXs6PjxArFGLS2wQ
frn6IR1aHYq+dn754uJCCzbpzi4Zr/MxlYZRC/Fw5cCgcT5nfrT1fjilmgmK
md9qXYbgPgTf+OkTozNTvF5ynT9z+Hk50efM6tzgUIsp/j7frLf0PGMhP/lY
EkD8n7cGTf8HV6Bn+Hy8bDWjPzzeZJnee8lSvZaGA5+PVZt+LOlWXw19Q6vh
6JEDBYK2pBe5pOQYU+F/05/Dg2G3N+w0s06z1Wk3O4Nhu9mnZg2a/Wl/1O/Q
z136d97P23P6rdfvDnr0Dv9OhmbQplf41RF9o9ue0M/t/nzQbna7w2Y/78xn
wzk939Fk0m9mzd5wQmffTsa0g4cHLbpLfzDgu436vUG7Peu05D16p+Xf6fei
d9p9+m7we6ff6fV6nW7XvdIdDLvNfp/b3ul2+L92v0s/D/utfpe+2+ZX+138
O6K/h/RfuzOgf0edDv7u0pe7/XanR7/T5akN/T5/gr/dx1V79I0Rvdqjv/nT
TbpPi3+mv5u4W7vfcS3q0dDRrq6/9ec9986A39Gfh60JnnZrOJnO815/2Gza
ezTSNMI0oHT1J/5nV8qCq04OD/oD6jmeCz1LeoI9Gp9m1u62+6PJoNduzbrN
UT7JqcezSXs0oCeUtXuTdmfWp3VPjzbLutmw3520Jp2sk88mvUmn2esMJp3u
pNkdZty0QSfP8rzbyuadQSufzyf94eFBPp1MuoPJsJnTlQf5YNDLh9Ms703o
6Uw7zanNQC7YVIR0xVh9D8WG4HT6fKz7QHq9Ws3K2EolFSMl+Y1deXK2WHln
0px2u+3RcD5tTVvdUTafzLvT4Yjm+mREYzPIqDs0Jt3RhCYE2bdRbzRqTcjl
aE+GvV6NxeJoKqjYzAMMrIpko2fFtaMZz6UaIwh+I+njUGW6OTj1s+QxXyxS
UeLijYKN0JR7tnhhTg4ZDnqD+436oLw83+zYmCS7b7+WbKWzI3/WaLQCo9H6
cqPRn9F0zPtYPoPOl5iN4Sgb8ISmJdRq0YKlK/RpXg5pqffYBLVnNMXn9L/u
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
NhMCAA==

-->

</rfc>
