<?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-04" 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-04"/>
    <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
      <organization>VERAX TEKNOLOJI LIMITED SIRKETI</organization>
      <address>
        <postal>
          <country>Turkey</country>
        </postal>
        <email>e.dogru@cedulon.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="07"/>
    <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 -04 is not an
IETF working-group item.</t>
        </dd>
        <dt>Maturity:</dt>
        <dd>
          <t>Research code by a single implementer. Three readers have run the
code on their own machines against a pinned commit and reported
figures matching the author's: two from a clean clone of the whole
suite, one re-running the published reproduction. That is
byte-stability across environments and not an independent
implementation; the same code agreeing with itself on three machines
rules out a local accident and nothing more. One reader reports an
independent implementation of the Signed Statement identity, kept
deliberately separate from this codebase; no independent
implementation of the reconciliation algorithm is known to the
author. One reader rebuilt the regenerated receipt vector of
Appendix A from this text alone, in an independent toolchain, and
obtained the published 307 octets byte for byte, SHA-256
<tt>0f1fe8859faf25de906b08142674f1270656d8ea7bfc00853c2fc6e9d3f5a10b</tt>;
that reader had read parts of the public repository and says so, so
it is not a clean-room result.</t>
        </dd>
        <dt>Coverage:</dt>
        <dd>
          <t>The receipt, checkpoint, extract, reconciliation and verification
algorithm are implemented, including the transparency witness input,
the withheld and not-anchored conditions, and signed totals
redaction. Every requirement added in the posted series <xref target="CEDULON-DT"/> is covered by a
red-then-green case written before the text, with one exception: the
reversal branch of <tt>MUST-T12-4</tt> is specified and not executed,
because this tree carries no authenticated external-rail path.
<tt>MUST-T6-7</tt>, the one requirement this document adds beyond that
series, is likewise specified and not executed: no case in the suite
compares a settlement's <tt>timestampMs</tt> to a Decision Token's
<tt>expiryMs</tt>. The escrow role, reversal, refund and partial settlement
are not implemented. The witness used in the suite is the in-process log
that <tt>MAY-T11-6</tt> permits, a Merkle tree that issues inclusion
proofs; tier 2 of <xref target="CEDULON-CHECKPOINT"/> (The transparency witness) is exercised against it red-then-green,
and the implementation has not been run against a deployed
Transparency Service.</t>
        </dd>
        <dt/>
        <dd>
          <t>Continuous integration runs the pre-release suite - the post-release
registry checks are a separate job, deliberately excluded, so "the
suite" names exactly what was measured - on three hosted runners,
each as a non-root user: Linux, macOS and Windows. At the commit
this revision describes, all three assert every case, 596 of 596,
with none skipped. A local Windows run without symbolic-link
privilege skips four POSIX-mode cases with a stated reason rather
than passing silently.</t>
        </dd>
        <dt>Licensing:</dt>
        <dd>
          <t>Apache-2.0.</t>
        </dd>
        <dt>Contact:</dt>
        <dd>
          <t>The author of this document.</t>
        </dd>
        <dt>Experience:</dt>
        <dd>
          <t>The posted series <xref target="CEDULON-DT"/> was driven by what readers found
rather than by a plan. T12 came from none of them: it was found while writing an adversarial
task, in the ordering the implementation itself used.</t>
        </dd>
      </dl>
      <t>The manifest root (<tt>MUST-T4-15</tt>) and the gate's refusal to settle
against a manifest it cannot attribute (<tt>MUST-T4-16</tt>)
were published as 0.4.0 rather than as a patch: the gate had been
answering 200 to an
unattributable manifest and writing that manifest's hash into the
receipt, and refusing it is a change in behaviour that a version number
ought to announce.</t>
      <t>Note on distribution: everything the posted series <xref target="CEDULON-DT"/> added is in the
published packages at version 0.9.0, and the workspace publishes
0.13.1 as this revision is written. A reader can check a claim against
an installed package rather than against a working tree.</t>
      <t>A second implementation is named here. Same author as this document;
not an independent implementation.</t>
      <dl>
        <dt>Organization:</dt>
        <dd>
          <t>VERAX TEKNOLOJI LIMITED SIRKETI.</t>
        </dd>
        <dt>Implementation:</dt>
        <dd>
          <t>Verax. An MCP body that consumes the published <tt>@cedulon/*</tt>
libraries to write signed decision records, effect extracts and
checkpoints. The code is a profile of this document, not a second
specification.</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>The body admits six tools through its own gate: memory.get,
memory.put, message.read, message.send, spend and audit.explain.
An admitted call leaves a signed decision record; a retry under the
same reference is answered from that record rather than writing a
second one, and a denial the body cannot append is refused to the
caller instead of being recorded. An allowed call is expected to
leave an effect row, and the audit path reconciles the rows against
the records; an allow whose effect cannot be found is reported as
such rather than assumed to have run. A halted body answers every
further call with a signed denial record. Each halt and resume is
also written to the ledger as a control record signed by the body's
record key, naming whoever the halt history names. When an operator
is registered, an approval over HTTP carries a passkey (WebAuthn)
assertion bound to the held request, and the offline verifier checks
it again against the operator's public key; a command-line approval
stays unsigned. Once an operator is registered, a resume over HTTP
is refused without such an assertion; a halt may carry one and is
never refused for lacking it; a halt or resume from the command
line stays unsigned. Each
token revocation is also written as a signed denial record. The
offline verifier holds each record to the inputs row its signed
inputs hash names, and each checkpoint's counts to the records it
covers.</t>
        </dd>
        <dt>Level of maturity:</dt>
        <dd>
          <t>Research and pilot. Witnesses are self or same-org. There is no
third-party witness of the body's own effects and no outside audit.
A checkpoint hash can be registered with a Transparency Service that
someone else runs, and the receipt is checked offline; that receipt
shows the checkpoint existed, not what the tools did. 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.6 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.6
(<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 2236?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Vernon Wharff showed that the object carrying the checkpoint guarantee
was neither profiled for registration nor read during verification,
and asked whether a recorded checkpoint absent from the chain deserves
its own identifier. Iman Schrock confirmed that finding independently
and drew its boundary.</t>
      <t>Iman Schrock and Pablo Etcheverry ran the implementation against a
pinned commit and reported defects that shaped this document. Iman
Schrock found the extract-binding defects and proposed their repair,
asked whether the profile should accept a pinned witness key, and
corrected this document's description of what its continuous
integration measures. He is also the author of <xref target="SCHROCK"/>, cited here
as adjacent work, and the reader whose independent implementation of
the Signed Statement identity is noted in <xref target="impl-status"/>; he asked for
it to be kept separate from any cross-implementation claim about
Cedulon, and that separation is his and is recorded here as he stated
it. Pablo Etcheverry found that a repeated reference hid the
unaccounted amount, ran the suite on a platform its author had not,
and found that nothing compared a settlement's clock to the clock of
the decision that authorized it.</t>
      <t>Nicholas Templeman ran the suite from a clean clone, corrected two
claims written about that run, and classified his own run as a
repetition of the author's checks rather than an independent
implementation. Walter Hawkins did not run it; he pressed for the run
to be stated precisely enough to be repeatable.</t>
      <t>Tiago Pinto ran the Appendix A vectors in an independent toolchain
before reading the text, confirmed the signatures, the SPKI-derived
<tt>kid</tt>, and deterministic re-encoding byte for byte, and listed the
places where an independent implementation could not be built from
the text. The witness tiers, the key-resolution rule, the extract
shape, issuer order, the boundary allowance, and the countersignature
and delivery bindings follow that list, and <xref target="presentation"/> answers a
later point of his. He consented to that run being recorded as the
first run of these vectors outside the companion codebase and not as
an independent implementation.</t>
      <t>Steven Mih and Anton Sokolov published the canonicalization vectors of
<xref target="CPB"/>; running them through this profile's <xref target="RFC8785"/> encoder put
the I-JSON precondition on the page as a rule.</t>
      <t>None of them reviewed this text, and any error in it is the author's.</t>
      <t>Field survey notes and the informative threat-model narrative in the
companion repository helped shape the requirement identifiers used
here. Those identifiers are defined in <xref target="security"/> and, for T11, in
<xref target="CEDULON-CHECKPOINT"/>.</t>
    </section>
    <section numbered="false" anchor="vectors">
      <name>Appendix A. Test Vectors</name>
      <t>These vectors use RFC 8032 Ed25519 secret scalar #1 (fixture only;
never a production key). Hex is lowercase.</t>
      <t>The vectors below <bcp14>MUST</bcp14> stand as the locked tests of this document:
an implementation matches them or it does not, and where an
implementation and a vector disagree, one of the two is wrong and this
document does not say in advance which.</t>
      <t>Receipt COSE_Sign1:</t>
      <t>Claims: payer=<tt>payer-1</tt>, payee=<tt>payee-1</tt>, amount=<tt>1</tt>,
currency=<tt>USD</tt>, policyHash=
<tt>fca4142da8ad241d24928227893894f4b5365efb746a4529fe9df0119d10da2c</tt>
(the SHA-256 of the UTF-8 octets of the ASCII string
<tt>cedulon/appendix-policy</tt>, standing in for a canonical policy
document; the field's input rule is in <xref target="hash-inputs"/>),
manifestHash=null,
noManifest=true, x402PaymentRef=null, timestampMs=1700000000000,
nonce=<tt>n100000000000000</tt>, prevReceiptHash=null, outcome=<tt>aborted</tt>.</t>
      <t>COSE_Sign1 hex (whitespace ignored):</t>
      <artwork><![CDATA[
845830a301320378206170706c69636174696f6e2f636564756c6f6e2d
726563656970742b63626f72044806e3fd8fda29bb60a058bbac3a0001
11706770617965722d313a000111716770617965652d313a0001117261
313a00011173635553443a000111747840666361343134326461386164
323431643234393238323237383933383934663462353336356566623734
366134353239666539646630313139643130646132633a00011175f63a
00011176f53a00011177f63a000111781b0000018bcfe568003a000111
79706e3130303030303030303030303030303a0001117af63a0001117b
6761626f7274656458400a24269b7521d409ebe462db297c3aa25b23d6
c697aa4a864b1b3a3edb5b30537b34b048a797073eaee41af371effb68
ecbb47b80e62d7e775e8cae5b066c30c
]]></artwork>
      <t>Manifest COSE_Sign1:</t>
      <t>Body: description=<tt>fixture-goods</tt>, amount=<tt>1</tt>, currency=<tt>USD</tt>,
acceptanceCriteriaHash=
<tt>e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</tt>
(the SHA-256 of an empty delivery; the field is a digest of the exact
delivery bytes, so the vector carries a well-formed one),
cancelCondition=<tt>none</tt>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>
      <t>COSE_Sign1 hex (whitespace ignored):</t>
      <artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a05889a73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b7840653362306334343239386663316331343961
666266346338393936666239323432376165343165343634396239333
463613439353939316237383532623835353a0001123c646e6f6e653a
0001123d1b0000018bcfe568003a0001123ef65840599b5b1cc7bfd3fe
8b8e65cdd876652aeca13660e6bdccc93afe12188a295b20fdfe8e6e48
ae447dc74ccb0f13383f0f43f0f67f288d61a6395e95e2038e320d
]]></artwork>
    </section>
    <section numbered="false" anchor="finding-code-table">
      <name>Appendix B. Finding Codes</name>
      <table>
        <thead>
          <tr>
            <th align="left">Code</th>
            <th align="left">Effect</th>
            <th align="left">Meaning</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">settlement-without-receipt</td>
            <td align="left">audit fails</td>
            <td align="left">Extract row has no matching settled receipt, or a repeating <tt>ref</tt> settled more than it receipted</td>
          </tr>
          <tr>
            <td align="left">receipt-without-settlement</td>
            <td align="left">audit fails</td>
            <td align="left">Settled receipt ref is not on the extract</td>
          </tr>
          <tr>
            <td align="left">settlement-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">Same <tt>ref</tt>, different amount or currency, including a repeating <tt>ref</tt> that settled less than it receipted</td>
          </tr>
          <tr>
            <td align="left">duplicate-ref</td>
            <td align="left">audit fails</td>
            <td align="left">Ref appears more than once on one side</td>
          </tr>
          <tr>
            <td align="left">settled-without-ref</td>
            <td align="left">audit fails</td>
            <td align="left">
              <tt>outcome</tt> is settled and <tt>x402PaymentRef</tt> is null</td>
          </tr>
          <tr>
            <td align="left">receipt-chain-break</td>
            <td align="left">audit fails</td>
            <td align="left">Signature or <tt>prevReceiptHash</tt> failed, or the links cannot place a receipt (issuer order, step 6)</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-extract</td>
            <td align="left">guarantee conditional</td>
            <td align="left">No verifier-supplied rail key, whatever the extract carries: a signature that verifies establishes internal consistency and not that the named rail produced the extract, and one that fails or is refused is not a key verdict either. The same code is reported when a rail key is pinned and no extract was presented at all, because there is nothing to check the pin against. A presented extract that does not verify under a pinned key is <tt>extract-key-mismatch</tt> instead</td>
          </tr>
          <tr>
            <td align="left">extract-key-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">Extract is signed by a key other than the pinned rail key, or does not verify against it</td>
          </tr>
          <tr>
            <td align="left">settlement-comparison-skipped</td>
            <td align="left">guarantee conditional</td>
            <td align="left">The pinned rail key refused the presented extract, so its rows were not reconciled against the receipts (<tt>MUST-T10-20</tt>). The code says what did not run; the refusal itself is reported as <tt>extract-key-mismatch</tt></td>
          </tr>
          <tr>
            <td align="left">trust-key-unreadable</td>
            <td align="left">audit fails</td>
            <td align="left">A pinned key - rail, issuer, or manifest publisher - could not be decoded; the verifier's configuration is at fault, and nothing falls back to the keys the objects carry</td>
          </tr>
          <tr>
            <td align="left">issuer-key-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">An object is signed by a key other than the pinned issuer key, or does not verify under it at all, so it is not coverage for anything it names. A checkpoint reaches this code by either route: unlike a receipt, which is named in the chain walk as <tt>receipt-chain-break</tt> when it claims the pin and fails, a checkpoint that claims the pin and fails is reported here and leaves its window uncovered</td>
          </tr>
          <tr>
            <td align="left">countersign-key-mismatch</td>
            <td align="left">conditional</td>
            <td align="left">A countersignature verifies under a key other than the one pinned for that payee; unattributable, discarded as approval evidence, and the receipt it rode beside is unaffected (<xref target="countersign"/>)</td>
          </tr>
          <tr>
            <td align="left">countersign-missing</td>
            <td align="left">conditional</td>
            <td align="left">A payee key is pinned and a settled receipt for that payee carries no attributable countersignature; a discarded garbage or foreign-key object leaves this open</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-issuer</td>
            <td align="left">conditional</td>
            <td align="left">No verifier-supplied issuer key and at least one receipt or checkpoint presented; their signatures are checked against the keys the objects carry (<xref target="presentation"/>), which establishes that each object is internally consistent and not that the named issuer produced it</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-countersigner</td>
            <td align="left">conditional</td>
            <td align="left">No verifier-supplied payee key; a countersignature is present but proves no approval</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-manifest</td>
            <td align="left">conditional</td>
            <td align="left">No verifier-supplied manifest key and a Trade Manifest was presented; its signature is not checked at all, because the check that exists under a pin (<tt>manifest-key-mismatch</tt>) has no key to run against and the key the manifest carries is not a fallback for one. An audit presented with no Trade Manifest is not this condition</td>
          </tr>
          <tr>
            <td align="left">manifest-key-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A presented Trade Manifest is signed by a key other than the pinned publisher key, or does not verify against it</td>
          </tr>
          <tr>
            <td align="left">manifest-covers-no-receipt</td>
            <td align="left">conditional</td>
            <td align="left">A presented Trade Manifest is referenced by no presented receipt, including aborted ones and those outside the extract window; the manifest states terms no presented receipt names. It is reported on what was presented, not on whether the manifest was attributed, so it appears beside <tt>manifest-key-mismatch</tt> as well</td>
          </tr>
          <tr>
            <td align="left">manifest-terms-mismatch</td>
            <td align="left">audit fails under a usable issuer pin; warning without one</td>
            <td align="left">A receipt names this Trade Manifest but departs from it in amount, currency, settlement time, or, where the manifest states one, payee. A manifest refused by a stated publisher pin is not compared at all; a gate applying <tt>MUST-T8-2</tt> and <tt>MUST-T3-3</tt> would have refused the payment. The two severities are the two branches of <tt>MUST-T8-9</tt></td>
          </tr>
          <tr>
            <td align="left">extract-scope-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A record falls outside the declared window, or the extract does not cover the expected account, rail, or window</td>
          </tr>
          <tr>
            <td align="left">extract-settlement-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A caller-supplied settlement list disagrees with the extract on <tt>ref</tt>, amount, currency or timestamp, which are the fields compared; the extract is authoritative. A beneficiary that differs is not part of this comparison and is reached by <tt>beneficiary-mismatch</tt>, against the receipt payee</td>
          </tr>
          <tr>
            <td align="left">malformed-amount</td>
            <td align="left">audit fails</td>
            <td align="left">An amount on a <tt>ref</tt> already reported as repeating that could not be parsed as an integer</td>
          </tr>
          <tr>
            <td align="left">unstated-audit-window</td>
            <td align="left">guarantee conditional</td>
            <td align="left">A supplied rail pin states no period, so the extract defined its own. Where no rail key is pinned at all the period is equally unstated, and <tt>unauthenticated-extract</tt> is the condition reported</td>
          </tr>
          <tr>
            <td align="left">unstated-audit-scope</td>
            <td align="left">guarantee conditional</td>
            <td align="left">A supplied rail pin states no account or no rail, so the extract defined the settlement path it reported on. The same "no pin at all" case is <tt>unauthenticated-extract</tt></td>
          </tr>
          <tr>
            <td align="left">countersign-bad</td>
            <td align="left">conditional</td>
            <td align="left">Present payee countersignature failed verify (signature, content type, or payload binding); unattributable, discarded as approval evidence. One verifiable under another key is <tt>countersign-key-mismatch</tt></td>
          </tr>
          <tr>
            <td align="left">carried-key-mismatch</td>
            <td align="left">conditional</td>
            <td align="left">An object verifies under a pinned issuer key but the key carried beside its signature is a different one; the unsigned surface was rewritten, the object stays attested (<xref target="issuer-root"/>)</td>
          </tr>
          <tr>
            <td align="left">boundary-deferred</td>
            <td align="left">conditional</td>
            <td align="left">An unmatched item sits within the declared <tt>clockSkewMs</tt> of the window edge; deferred to the adjacent window rather than reported as a completeness failure (step 5)</td>
          </tr>
          <tr>
            <td align="left">beneficiary-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A settlement record declares a <tt>beneficiary</tt> and the matched receipt's <tt>payee</tt> differs</td>
          </tr>
          <tr>
            <td align="left">counterparty-unbound</td>
            <td align="left">scope record; verdict and guarantee unchanged</td>
            <td align="left">Neither the manifest names a <tt>payee</tt> nor any settlement record declares a <tt>beneficiary</tt>: ref, amount and currency closed against the payer's account extract, and the counterparty's identity was not bound</td>
          </tr>
          <tr>
            <td align="left">delivery-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">An attributable countersignature carries <tt>deliveredHash</tt> and it differs from the acceptance-criteria hash of a Trade Manifest the audit did not refuse; both ends are signed (<tt>MAY-T8-11</tt>). Where a stated publisher pin refuses the manifest, its acceptance hash founds nothing and this comparison is not made (<tt>MUST-T8-9</tt>)</td>
          </tr>
          <tr>
            <td align="left">malformed-policy-hash (and its family: malformed-request-hash, malformed-acceptance-criteria-hash, malformed-manifest-hash, malformed-receipt-hash, malformed-prev-receipt-hash, malformed-chain-head-hash, malformed-prev-checkpoint-hash, malformed-ap-two-mandate-hash)</td>
            <td align="left">audit fails</td>
            <td align="left">A hash-shaped claim does not match the 64-lowercase-hex grammar of <xref target="receipt-labels"/>; the claim is named in the code</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section numbered="false" anchor="example">
      <name>Appendix C. Worked Example: A 10.00 TRY Spend</name>
      <t>This appendix is informative. An agent pays 10.00 Turkish lira (TRY)
for a file. Amounts are integer minor units, so the amount is <tt>1000</tt>.
The run used the companion implementation with keys generated for the
run; the keys are not published, so signatures and hashes are not
shown. No real rail was involved.</t>
      <ol spacing="normal" type="1"><li>
          <t>The PDP allows the request (amount <tt>1000</tt>, currency <tt>TRY</tt>, payee
<tt>shop-1</tt>) and the adapter settles it under rail reference
<tt>x402-n-10try-example-0001</tt>.</t>
        </li>
        <li>
          <t>The Receipt Issuer signs a Spend Receipt with these claims
(<tt>policyHash</tt> omitted):</t>
        </li>
      </ol>
      <artwork><![CDATA[
payer=agent-1   payee=shop-1   amount=1000   currency=TRY
manifestHash=null   noManifest=true
x402PaymentRef=x402-n-10try-example-0001
timestampMs=1789400600000   nonce=n-10try-example-0001
prevReceiptHash=null   outcome=settled
]]></artwork>
      <ol spacing="normal" type="1" start="3"><li>
          <t>The rail signs an extract for account <tt>acct-1</tt>, rail <tt>rail-1</tt> and
the one-hour window <tt>[1789400000000, 1789403600000)</tt>, with one row:
ref <tt>x402-n-10try-example-0001</tt>, amount <tt>1000</tt>, currency <tt>TRY</tt>. The
issuer signs one checkpoint for the same hour.</t>
        </li>
        <li>
          <t>A verifier that holds the issuer key and the rail key, and states
that account, rail and window, reconciles them. The result is
balanced under an unconditional guarantee. It carries the scope
record <tt>counterparty-unbound</tt>, because no manifest names a payee.</t>
        </li>
      </ol>
      <t>The same audit was then run against an extract the rail signed with a
second 10.00 TRY row, ref <tt>rail-ref-unreceipted</tt>, twenty minutes into
the window, that no receipt names. The verifier reported
<tt>settlement-without-receipt</tt> for that ref and the audit failed. That
row is the case this document exists to detect: money that left
through the rail without a receipt.</t>
      <t>The same control has also been run once with real money, by a related
implementation from the same author that records a spend as a signed
decision and effect record rather than as the Spend Receipt of this
document. On 6 September 2026 an agent asked to spend 10.00 TRY on
advertising, the policy deferred the request, it was approved under the
operator's account, and the amount was paid by card to the advertising
platform. The next day the payer's bank statement arrived, and its line
for that payment was reconciled against the approved spend: one
matched, none unaccounted for. Two limits apply. The statement was
received as an image rather than as a signed file from the bank, and
the line was transcribed from it, so under this document the result
would be conditional (<tt>unauthenticated-extract</tt>). The line also did not
carry the spend reference, because the platform billed under its own
descriptor, so the match rested on amount, currency and date alone.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9y963bcVpIu+B9PgZF/mFJn0iJF3ciePkNLrLba1uVIdLlr
evXpBDNBEqUkkA0gRbNlz7PMs8yTTcQXEXvHRiIpylWr15qps06bykRu7Evs
uMcX0+k066t+WR7m9z6synqRvy/nZbXqu7ygf7wrbq7Kus/fF9WSv2nqebWs
ir5q6vy8afPjV/nxBT3Q3cuKs7O2/HSYvygX6yV9/aJpy2zRzOviigZftMV5
P100F+16OpcnpnN6YvrwIFsUPT2x/3D/yXTv4fTh02xOH1w07c1hXtXnTVat
2sO8b9ddv//w4fOH+1nRlsVh3pXz7LppP160zXp1mH0sb+hfi8Msz6c2Cfxd
8ATxVytLw9+rZlnNb/DnhxevTk+zrqcF/0dBvyrxtjLrroq2/4//XDd92R3m
58WyK7NVJS/om7n9t6oX9oKuafu2PO/kHzdX4e95c8X72GXFur9sWoxB/z+n
BdLQJ7v5i938JW8OPpQtO7kqP+Yvitp90bQXh/mfT94f/2t+evLjm7c/vf2X
V/lPr16/Oj15mX949f7Hk9NXeHDerOueN/B03dLG4LPyig7xMC93cQr/h57C
Lk0tq5v2ig71U8kTe/+nF/t7e8/1zyf7jw7sz2ePnumfTw+eP9I/nz18tG9/
7j21Z589eh4+Pdh7aH8+ffbY/nx+YK94/vDxfvzTxn3+7IkN9vz5wX78Ew+8
OHn5809v30xf/HDy4sd3b1+9OT3EIo2WAxVelvOPq6aivacdXTXzy/yXqq/L
riuFwk/bou5WRFH1/OYehohHxP+bjh/RrccUCVrmVLQXZX+YX/b9qjv87ruL
qr9cn/HGf4ejmBd1SYNMi2X/nZ7Kd2fL5uy7q6Lry/a7blXOvxu9QGFx04cP
d68WGV+X9CSfuq3bC+dAH+75XXw5vnuH+XGdH68XVZ//VNyUrVx5vk7Tvpni
D7rmRNntvPxv2jv6uujbYv6xbHersj/fpStBuzi6P9+5FZ7+8P7k+PTDOJGc
XhJD6fM3Rdti77r/rxFCjwV0SgV5/uPPJz/8dPLLqzcvp8c/v3w1OF0+1HZ+
WfXlvF+3pZwqn3JVXwSOnr8sl+WFcHq+J69qmkEx53/ftj2vd/Mf1+Xlsrwm
tjjYoNdV+9di82v95Q+7+fdV+/GyWf7X4Hc/lPXH9DsnMR4+/iN08jFMYlrw
yqeF2xCmm++Jmf7w9qf/c/rn4xfp7v25bKvzqjhblrndgPpT2XayVSwj28Vt
O/Q16ww/Ot2lb5eLfvCLwcf68Nvd/ENf0vENnn7bVqX/xu/isz+yi2c61+mn
sCdTSFsS7XFPOuzn8enJh+nx6bsBKWIHwYOFtvJ3bUMytVnmO/Tw/Vv28SXt
Iy2gGyzyZfGpWuTH3SWxq/j930Awl/3V0tbL402LfkUj/OvBw/10Lb/yJ8wx
35IeRftMt6ZoF7hduDx12U/fgL+YWrWFTCDlebT8TyTGF9jEu7CT6+vrXf4Z
pk5PHL/bH9tte7nf6nf7W7Yac/nnprkwcq/mgeWnc3o8ffh8dFrFan+60ldh
avQBWBmRzByL48n+8/tX//zP6XRP22pFrz1hTSY/nkOnIRZ1C0282s3/ua0u
LgY08YqYcvzcZryFEKqivsA0V8WKSPi7HrP4j5JnscvEQL96d/zi1dufXqXT
/bC+uiryRZkXLfH1q5K2qpjkF2VDf7YV/UmbsCIFkRZc5WXv/lksq764ZVk/
7dKhzSvSWAcL+4lERvKVrG3v4PkB/fPPxz9/f/xmk0jzD6fH7380RZ+IjFWG
/OTXvqw7ms0thPDnYn1WMJPrSmaYfx9e/AmDTnlmU1LC249T1dPBOD68+OH9
2xc/pqt4u+5JaJbELOsFCy2RYDzh6r9Kuv0iplRuLUq2a+j8ljf527OubD/R
Iyfn58Tsb+PTREsf5pdtM/84pKYr2gL/ld+Bp39kBzoZbFqupo2sjFgrVsY7
8Pr4/f/8+WSoujRXKzLE6nnJ1/i8onvSnOcfqos6rD9acgNLbeuS/2U3P6Yb
RO/v8tdF+5/rDe76L03REItbkNaw+djfvA9XMti06P6z+EQyxJaYEMTxi9Pj
wcWTVb8kjtJtrPt1QYK9Lllh1T+ZlZD+z3K7b5vlLftB4vVPRbtU+ynuwmlz
5b/w6/5DWus5xpqSBCymHRaTrPiHt+9+OvnL4PzFRCYWs8wdLXyYt2VZ85UY
3O6guVfzqRn1f1o217eRA+m5PzSrzeW/uGyrrm9WLGLdA38zI7jEWMIINg8f
Z//98YATnJC0L3nl78v/XFdtKZItrNYOmbVZErwkR5gnGPtIHRq37ATdCqKF
47NiyAuOlxVRw81F0cZv/2a1qqCRoh7F058udPrTUtcL2+bd90OiqEm2MEnQ
ES+bYmEMkiZqvIH0kh67xFvT9WR0mNrFTOSWPfiwSwr85WD9pE1+ImUnfhE3
7EPzsVk2n4YbVvf0Nv/d37xdV9XltJMBiZNWfT9dyeo9E2XrjzTQLV6C9+X0
uCfdrgchEIWTJXjDt0hcYoHIjudtQ5zjeMlXj2Q8/bBXovv7m4zbtuPOVmP5
5NleuX+w2Dvbf/58b3/xbL73nPS05/P9snh+fnD+/PGjZ/P954vtdiVblWFb
gnX54ZR28/WrN/88vpkfevrZlfIgd78OcRmret2sO+FZJWkczInjdcV+//9y
KzvbFd3G6XSa8f/Ji7OOibvPstPLqsuJrte4nsWCpKy4qdhChcG5MtVdJTqY
hOg5Z+tqueiy9YpOgA+snDbn0/6SDLK2z384PX2XE1udsE2Ax0lOsFtnzhZK
d9MRS+h281/KTPRyYpP0xM2qpyUUq0tmKaQ8deWcrOOFzYLdqd4fbDp+tu74
8As260gbfl3U1TnRUL5T5CLcSFM5J9FxVtIqwpruT+gX78QpGyT5O/Zt5dd0
SqRXnxfrZU//rW/40cRZzWO/ePvh5LsXv5zm82VRXWUdadhV163pdXQY9Loi
v6BdWfj30QBtUS2n5a84gcGCduV8rqrFggzm7Bu24tpmoQzz8zcV//P3LDsm
HZ4smYrYLtt5y2V1AWaxc/zqvp1QVX9qlqx3VnVO7/pULid0SqTz5aTzfCz7
rI8mcDch62C+S9/c5HVJv6FTpINaFWc0s/6G9Tw5CToSWozqvxk9VbW5H4es
hpbkBV03epL2r+K9t1Pq8m49v8yLLhBH9vkzG7W//46NEZvv2y6/1WjMP3+m
/9BPrvioqz5bEX+szpgf2LDujcRMSAVj8qQn5nS2tJCemAeoqW/IxiB2XbQ3
WVuyHth3ckZMs8zKu3xN2jttYa/PKzldsaVNbGqX+faC9qznsECX8W/p5azs
NW0n1CAHQnKiWfHONh/J5qGD/uWyYHKhw+5AvBVfKryJjLSyxeV78AAXMV+y
K/TBg0OiqCtVLuGI5Yfond01zZEmd++a9rbnK92BVOkKNdf0zrMbjT3Q4i4K
4mpE4HTDLuVWYMXZNU/n7IbWlNNoZa7iv1z8j3v5KVGDvKXLL4mS8mV1VdlW
9Z6FZOADPInyapes/+EE7vEymbjsFr3iHWrpzGVjs4LYDwzUIzwmy180NGTd
0HYlllVbihfoBo9qdGVhF3nn82f5aNqVdFykhXa//36fOA4vlDcqrBCnsLGt
TU2vuL7kvaBzITpqq7N14IllKQEP2hKaeAGnphBMYQPf0F51lxnNwz0pUyDu
QlaXXgc5XWYwRDlXq35a1X8lQ5GZVpsvm2ZF1JGBhuhK1hzWIiouwEZo4bQY
eg0dNfH6BTFRMjRW/Nsi/0Q2/iIP05NjLmzaK2LSNxiwu6xW2MHrtmEmyryF
rvMuS4cSoi4E2GijzmmOOSQMjci/apYLoj523C5zjoZBUBQ0GKlFZZ2RoYmH
eTF0hOVuGCyc6nxJpn1+vqbdm+SXNF4+XxOnWhC5EpPBZehL3h4VAjQ7ZktF
37S77PxqVuLRyMuOlKVr2gP6hudqDAhHyZvExNouplh7RkpuKfeNBiyZXuT3
U/4C5/SKFQZ+pTgVmQ3a7YqepOz1zx9O8zdvT0nUfyxt6vwsVsTrtiXo/HZm
/JPp6bOpPjy7T5sdNBc+A2UEvKhlubhgWaIXl74i2SFfdUGxFuZBW5cVwWmV
qyZPDFOdR7//LleWaYIfwA3T46aJ1vlZQ2KvI82zy2hE+K/oaoo7agp3VE5f
FjQifGe//05GSqJBrESn70CYmU2AKYL3vNIv6KVl3jXn/TX9wUztxfdv3+dv
z5jsYTTIHiyykxoqAa4zC1tm/hq9IwGgVhoRcLECeecmVcMndA8y8RTPNa4Q
9OhVy5yCDqVu1heXMi/i4nk1OHS6V/NLFnV5x1fhXP0/NFb4zCykXXDKGCKj
P/muYi/40JgciJ01n5hdV/TDisU0rWkztEhbS2I+3BXhg3ich4EcIW2GJ7eA
slLVepppkCUrXJBFeMgiDbJULshCMxmGcYhkMpEVRJgfE3E4GQ5VqDtMPqEJ
4kRIb+B/T0jCXlQcUxIBQIom6VY8s1biF6JzkZa1Xq3our7A1rF2c0HndTPJ
fNR0onHUNet4iKXfT6Kq+Yey/VTRpRZyeX7wSEk/W9IUOj5EsvNZffLKC4sp
U2+vmBWSjMuvmr76VMh9KjqW+H/ibRUJO0mlHyvQzGVkbUbq7kQCyxPOdJjN
vU3CWpaoF21IiIi3nncXzhSolEbpYEllxsJgIoTF8of0UZZrygsmIisgrJnq
OAbVXA+vLs8ti3MzHnTRBlUbLj++yxsL283f9uyaIQWRZ5fBGulwzZnnL4TK
i8VfidHWPWj7m/y0bMk4IRv64kZEzcfyBhKky+8xg7w3kf8yb+W/35/8z59f
vT95yX9/+OH4p5/CH5k+8eGHtz//9DL+FX/54u3r1ydvXsqPmVcnH2X3Xh//
5Z4Q1b23705fvX1z/NM9KM7p8dJ65N7h1hAHgaTtSOkgzl6dyUK/f/Hu//m/
9w5owf+b5jUQr5J/cLYC/YO0ilreZkpGDVl6kxWrFctCFvDLJWvgJOaWrGiR
0Llsruuc9RHavQf/xjvz74f5P57NV3sH/6Qf8IKTD23Pkg+xZ5ufbPxYNnHk
o5HXhN1MPh/sdDrf478k/7Z9dx/+4/9YMiVO9579j3/Khsbqmu3UFywyO3jl
SYk3EfK+pKPpjIWT6CDxcj8DL+AcEOYFkDi/lGf5Kevj9MgvpypcOI2Ezggm
HRsLqub+S/Gp+ECHvOozfcubxsb/lw9v39wPMyMW8Uq4MbTFTl/W36xKuRKm
Gs16MsNn+U5Pl5lkeUs8hkzE2Zl8yrq4fYoZzNZEdfTFulZdGdezbO+rpnbe
sLYNuU43S15Fm7Q4zLLULD7M2DmnrCbqECtYmvTRgwdiJz94YCoXrah36m2H
fZAQITGgi6YRPacTrsthJ/yHLEZj11BL4Vul39L8qgLa8YQ10HnJAS5SFlhU
kaQg5raqWmXyhdPv2CpTy4tYDZkuELpZJjZ8PrDhd969fHef14rNWddiRIN3
laQbr2GoFLk4JOFlEKtJLcHAe0lFoy9phmJOiJA33wC0zPqG9TdOddK3maYq
bg555xVx546VcrYI8RoOxZHYgx3Yq11KIoWtAnpbIXLSmaurggTkWUmyHtsS
rN3yV9Iz6guWdmJNk1aM9Dka5UTlBKvxUD5Ixs1YHLxazHjndKLHi4Kshtbm
z2KpqWHy8uxIfeUkH5mQrU0VIB4L5MEOG3mC9p3efF61EFwLM/nA67AG2BBQ
Vy7UrLaRgm78eLoHrTjxuXyZcOF3IbodeF7YfCvJtOKJ0tSEkldidsGYm7DE
h6iMNCvHrWQ6u9LL8wP9c8Z2SS7qzYoeom2d1Y1dr1l+viwuVOhGx5WSKw3F
Qphmf7V63c0mNE7dyOfEtD7pSvEWuQAzjc/NxEZwVnOkNjblcFK8N13qqGJf
w3E9h2PzMDGXoDh9UW+SgaPyVtCMN45ACJpuEYdA4RcL2rkNtQ+x/7LqVmu6
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
OOyoRtgAqoNWpUjySQS6iFjyCtHsK4TN43GHUtjgI7+t5Fys1/MqVqZv1qBn
AwTALNXUAsDB5UYh+aaHOaItGOQp/ump0WPp7XHh4ag9nTlWdDQW9oxWofMr
w+MxjHA7M1VUIeKD/sTvssBseMM2VrXr8PxF1v5ckySVXmF1lsA0SH1vSGxQ
3LCIJFEWvaVYA9cli4AJTxjZ5TAAvoQCnAEor9SltBVifxcYkMs7iRv5rgN8
DW/KPoyGpHiJF/rHXL+0LLhbucapWqHJjwOdsc22WKnJhd0g9aouYcr4dDdt
eGAxXIcUEnAfdS6isTv8WC2qyFJcSKn8D+0INKV6E7zX5/hUBmTg8k20Apch
PUYyftRFqHlGTBUfyxt+GqtIqnWV990lTcx+/4dAEyaCupClNGk5VIUDnVZA
S2J0SWgtliolEXLe0KCaK6RP0ggtdD0jQ8PHMR48UJeGfO+q4QVC0UEswgcb
cpYfAqDDkIW5SaWwfpHXPkriNFy7prv5CVrIDrtfSD2BuX1BUAF5UOWds627
0nRysgxfi/j+TV40zCfNOIX0HBnRUDV3xjvJ3E+hdQZQhF+C0tHHNxFhVOEd
BfOLXlcDYujSOJdWobRXcBUDUpXnDsiMxSKoAYp9zKiXwJCSDYVgdzEWqznO
2cKUhCWFqZZWWvxBhqpL81vqfnL7q11FesFBRVTKfHZGNIbeye3NzOa+o322
woSt3p405o67KLvuo2H/Q+m9dFJFd+tyYd33EMtgDaDk6iGP/lYFF2wC5hZd
KAMvGJCrLXarPhqSruezkPLn1cdYc7TjlxrzKGiR77EodVf65RS5+4kUqZyX
imuikwp4pdrc6jBPU8cCGlvHvJYxEwC3cVUW3Vp3JcF7k/12mybX9AMrwcBM
t9vJwshaKPueMwnyPIwnHtB9mFkfmstieT4Fvp3rSJPP/k3++CDlBxP9/IQr
Du4LBKG5SYxB8GBp5BUqV8Qm5rly2tDdLrsuBJna7lpKl670s2SqX3VZf/Pr
+spfzpfN/OOHj+V18svBbwQnaVBueZTHjPxOOv8MoW3xhshc+Q3BczTScWhH
AUBx+8GFWDllf4PEW4zFaAuFmZt71NIcXiSfaWaWIWKaDjxemJBclDmHtMx0
3AxuZ4Ij2bsS8al5RrVILYbFYsXWWdpXKIvPqGAsXEbSVEKJpM2yh6tc+LsR
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
4METwpDU0RFhL/6pMyJ64j9i7Pca+NiksxZ1ZNRZsrLw7YdV/8+36eeRJAvf
rFFxIMad2hSXwbO11yp61Fg1lGFE6l8adr1xqmIcJaeHBMzErmyLLR3imTWr
7+qw1O5/mVE/l930OcfhLDLucF04oLWaUyM3YWnaRstG9tp681y0LlGD1iWO
QT0GkB54COqZvtJ41if/a6znOwifoZWQb9vgdqPfsSqEkCsBloD6wjq9qXAJ
aszKzmyPsQjQyWG2XUaRn3Wy15lq+OLo8MX5Z60rimn2mNWGmS7x9L3taSDQ
umNxGho2aZgccmxYvnD9HHZPIxIxMz724p8yPtET/7uNj/24CFD/1xmfJzXI
dVMCeKbX2oDjSaKlbJCOgvaq1TjzpGW8pB1XrVVK7Kiz80NiLivzouj7MZ7B
oLcix4uopknTwq8U8WJjKtPns1fi69Nvi/9Ws1Yb5aeNG91MwQeVLx5YAjf9
kxasvoK+yoLt9fN82qzmGGqIyYfGS/ZuY0rG/1/tUhBuiUxTGIb5M9ap/twv
NFD7SpQ/Z6loLp+4+0bxpIZmqDTX6aC7HENOtcy3VvesVb+BxibHvP4TTNtO
Za+DMlNTAnZ4IyT0og07bpErL13tv2nLZ4TQjxOfet2elVNXq+NzdmwT1vkH
NhWTAoG9o51R/PQJrfkv9MFs21Fr6nXScjnHxbzTVj4Hrk5X1h9zMgWFw4Mp
alfibnmuyq8zV3G9/dd7W0oOertcPSABGIBzQG9h/V2QlwxMAQ8Cau7FRj+m
bhT+n7dUtRpeDqdutkgY0etZhb/tUQenwxuoUl7iLnGs/izWBe4v7394yQP4
w8t0MOq2JRbDf6JdSquiYHLLjZKzys/Sk28LD7oE7GHJto9xERXHFR6NnUQS
3pL3W68lmhJCEjQKrNbAa1HT9ol6jPHyv1TPYihPzHq7XOKkjhBE1ZbTpnCO
/ufNZnNfnX777TV9YTvhm/i3uJtTI+lxt1m+2Ngk/EUDv4rCys2KctitZrw0
AW/Fq9He0QKRrNn1PO/0CCRpHlbrW8a6Xq9X23saK8BzXrPtY6BCwsqRVZGv
GXzDreC6AiWO9gPAOf+rG0kAifwZhNeU2Jt+CV8Vm1augci4y7lmMta/ETAa
jcedkqQYno6eIIRAlS+29DnV58xa+rAywBdzCi45k+QTfXS8YMwwCw04f2sy
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

-->

</rfc>
