﻿<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.3.12) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc tocindent="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-dogru-cedulon-02" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Cedulon">Cedulon: An Audit Layer for Agent-to-Agent Commerce</title>

    <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
      <organization>VERAX TEKNOLOJI LIMITED SIRKETI</organization>
      <address>
        <postal>
          <country>Turkey</country>
        </postal>
        <email>e.dogru@cedulon.com</email>
      </address>
    </author>

    <date year="2026" month="August" day="27"/>

    <area>sec</area>
    
    <keyword>Cedulon</keyword> <keyword>agent</keyword> <keyword>receipt</keyword> <keyword>policy</keyword> <keyword>SCITT</keyword>

    <abstract>


<?line 131?>

<t>This document defines the Cedulon Protocol, an audit layer for
agent-to-agent commerce. Payment rails such as HTTP 402 flows (x402) and
mandate protocols (AP2) already move value. They do not, by themselves,
produce a fail-closed policy check and a signed spend receipt that a
verifier can reconcile against a rail extract. Cedulon specifies a Trade
Manifest (signed offer before payment), a Policy Decision Point with
default deny, a Spend Receipt (COSE/CWT claim set after a gated payment),
epoch checkpoints, and rail-extract reconciliation. The reconciliation
shows that no settlement on the extract lacks a receipt and no settled
receipt is absent from the extract. That result is unconditional only
when the verifier pins the rail key out of band and states the period
under audit; otherwise the document requires it to be reported as
conditional. Checkpoints carry the suppression guarantee, so this
revision profiles the checkpoint as a Signed Statement, gives the
verification algorithm a step that consumes the transparency receipts
returned for checkpoints, names what a witness holding a checkpoint the
presented chain omits reports, brings equivocation within reach by
comparing recorded copies against the presented chain, and states how
checkpoint totals may be withheld without withholding the fact that
they were. It also defines a Dispute Evidence Bundle (evidence, not an
award) and optional SCITT anchoring. Cedulon is not a competitor to
x402 or AP2; it sits above them.</t>



    </abstract>



  </front>

  <middle>


<?line 156?>

<section anchor="introduction"><name>Introduction</name>

<t><em>Note to Readers:</em> This document is submitted as Informational. The
author's eventual intended track, if the work is taken up, is a
Standards Track profile of COSE <xref target="RFC9052"/> and CWT <xref target="RFC8392"/> for
agent-spend receipts. This -02 does not claim IETF consensus.</t>

<t>Agents can now pay. Open HTTP 402 protocols <xref target="X402"/> attach
stablecoin settlement to ordinary requests. Card networks and
processors issue agent-scoped tokens. Google's Agent Payments
Protocol (AP2) <xref target="AP2"/> binds user intent to signed mandates.</t>

<t>What is missing is an interoperable <strong>audit layer</strong>: a machine-checkable
answer to "was this spend allowed by policy, against which offer, and
what bytes were delivered?" Without that layer, a prompt-injected or
looping agent can drain a rail that has already accepted a valid
signature. A counterparty can ship the wrong artifact. A transparency
log, if used at all, is proprietary.</t>

<t>Cedulon fills that gap. It does not clear funds, hold custody, or
operate a payment facilitator. An optional escrow actor is defined only
as a third-party role interface (<xref target="escrow-role"/>). Implementations of
this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow
(<spanx style="verb">MUST-T8-custody</spanx>).</t>

<t>The control is an old one. Reconciling an internal ledger against an
external statement is what double-entry bookkeeping <xref target="PACIOLI"/> made
routine, and signing the artifacts on both sides is Grigg's
triple-entry idea <xref target="GRIGG"/>. Neither is claimed here. What this
document contributes is an open wire profile for that control in a
setting where the parties are software: a COSE receipt shape, an
extract shape, a checkpoint chain, and a verification algorithm
precise enough that two implementations reach the same finding on the
same evidence. The novelty is interoperability, not the idea.</t>

<t>Neighbor drafts are complementary, not substitutes.
draft-bates-atp <xref target="BATES-ATP"/> covers tamper-evident causal lineage as
a signed DAG. Cedulon is the completeness layer: a spend that never
produced a receipt is visible when an authenticated rail extract is
reconciled (<spanx style="verb">MUST-T10-1</spanx>).</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>The following terms are used:</t>

<dl>
  <dt>Trade Manifest:</dt>
  <dd>
    <t>A signed statement produced <strong>before</strong> payment. It binds a description
of goods or service, price, currency, acceptance-criteria hash, cancel
condition, expiry, and an optional AP2 mandate reference.</t>
  </dd>
  <dt>Policy Decision Point (PDP):</dt>
  <dd>
    <t>The function that evaluates a structured spend request against stored
policy. The default is deny.</t>
  </dd>
  <dt>Spend Receipt:</dt>
  <dd>
    <t>A signed statement produced <strong>after</strong> a gated payment attempt. It
binds payer, payee, amount, currency, policy hash, <spanx style="verb">manifestHash</spanx> or
an explicit <spanx style="verb">noManifest</spanx> flag, rail payment reference, <spanx style="verb">timestampMs</spanx>,
nonce, <spanx style="verb">prevReceiptHash</spanx>, and <spanx style="verb">outcome</spanx>.</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 <spanx style="verb">requestHash</spanx>, <spanx style="verb">policyHash</spanx>, <spanx style="verb">expiryMs</spanx>, <spanx style="verb">nonce</spanx>, and
<spanx style="verb">singleUseId</spanx>. See <xref target="decision-token"/>.</t>
  </dd>
  <dt>Rail Extract:</dt>
  <dd>
    <t>An authenticated list of settlement records for one account, one
rail, and one time window. See <xref target="rail-extract"/>.</t>
  </dd>
</dl>

</section>
<section anchor="architecture"><name>Architecture</name>

<t>Cedulon has three control-plane objects and one optional log:</t>

<figure><artwork><![CDATA[
  Principal --policy--> PDP --allow/deny--> x402/AP2 rail
                              |
                              v
                      Receipt Issuer --> Spend Receipt
                              |
                              v
                      Anchor / SCITT (optional)
]]></artwork></figure>

<t>The payer agent never talks to the rail except through an adapter that
calls the PDP first (<spanx style="verb">MUST-T5-1</spanx>).</t>

<section anchor="policy-decision-point"><name>Policy Decision Point</name>

<t>The PDP evaluates structured fields only (<spanx style="verb">MUST-T1-1</spanx>): amount,
currency, payee, tool identifier, nonce, optional manifest hash, and
evaluation time. It applies limit, velocity, and scope checks
(<spanx style="verb">MUST-T2-1</spanx>, <spanx style="verb">MUST-T2-2</spanx>). If the PDP is unreachable, uninitialized,
or throws, the result is deny (<spanx style="verb">MUST-T2-3</spanx>). Denied attempts do not
increment success counters (<spanx style="verb">MUST-T2-4</spanx>).</t>

<t>An allow produces a Decision Token whose <spanx style="verb">requestHash</spanx> covers six
fields: amount, currency, payee, tool, nonce, and <spanx style="verb">manifestHash</spanx>
(<spanx style="verb">MUST-T3-4</spanx>, <spanx style="verb">MUST-T6-1</spanx>). The token is a COSE_Sign1 object
(<spanx style="verb">MUST-T6-4</spanx>), is single-use (<spanx style="verb">MUST-T6-2</spanx>), and <bcp14>MAY</bcp14> be carried to
the adapter that performs settlement.</t>

</section>
<section anchor="receipt-issuer"><name>Receipt Issuer</name>

<t>After the adapter attempts settlement (success or a recorded deny that
still needs an audit trail for an allowed-then-aborted path), the
Receipt Issuer signs a Spend Receipt over a canonical encoding
(<spanx style="verb">MUST-T4-1</spanx>). Verifiers reject bad signatures and byte mismatch
(<spanx style="verb">MUST-T4-2</spanx>).</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 (<spanx style="verb">MAY-T4-6</spanx>). This document does not operate a Transparency
Service.</t>

</section>
</section>
<section anchor="trade-manifest"><name>Trade Manifest</name>

<t>A Trade Manifest is the commerce analogue of a promise: it is issued
<strong>before</strong> value moves. It is conceptually symmetric to a later Spend
Receipt (promise then proof), and it <bcp14>MAY</bcp14> carry an AP2 mandate hash so
that user intent and the Cedulon offer stay linked (<spanx style="verb">SHOULD-T8-5</spanx>).</t>

<t>A Trade Manifest <bcp14>MUST</bcp14> bind all of the following (<spanx style="verb">MUST-T8-1</spanx>):</t>

<t><list style="symbols">
  <t>goods or service description</t>
  <t>price (integer minor units, encoded as a decimal string matching
<spanx style="verb">0|[1-9][0-9]*</spanx>)</t>
  <t>currency (ISO 4217 alphabetic or a documented token identifier)</t>
  <t>acceptance-criteria hash (SHA-256 <xref target="RFC6234"/> of the exact delivery
bytes or of a declared schema instance)</t>
  <t>cancel condition (opaque string agreed by the parties)</t>
  <t>expiry (POSIX milliseconds, <spanx style="verb">expiresAtMs</spanx>)</t>
</list></t>

<t>It <bcp14>MAY</bcp14> include <spanx style="verb">ap2MandateHash</spanx>. The corresponding CBOR label is
always present; a missing mandate is encoded as CBOR null.</t>

<t>The manifest is COSE_Sign1 <xref target="RFC9052"/> over a deterministic CBOR claim
map (<xref target="cose-profile"/>). <spanx style="verb">manifestHash</spanx> is the SHA-256 of the signed
COSE bytes (<spanx style="verb">MUST-T8-7</spanx>). A spend bound to a manifest <bcp14>MUST</bcp14> be denied
if the requested amount or currency differs from the manifest
(<spanx style="verb">MUST-T8-2</spanx>) or if the manifest is expired (<spanx style="verb">MUST-T3-3</spanx>).</t>

<t>A spend that is not bound to a verified manifest <bcp14>MUST</bcp14> be marked
<spanx style="verb">noManifest</spanx> on the receipt and <bcp14>MUST</bcp14> still pass limit, velocity, and
scope checks (<spanx style="verb">MUST-T1-2</spanx>). An implementation <bcp14>MAY</bcp14> refuse all
<spanx style="verb">noManifest</spanx> spend (<spanx style="verb">MAY-T1-4</spanx>).</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 (<spanx style="verb">MUST-T4-3</spanx>, <spanx style="verb">MUST-T4-4</spanx>, <spanx style="verb">MUST-T4-7</spanx>):</t>

<texttable>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>payer</c>
      <c>Payer agent identifier</c>
      <c>payee</c>
      <c>Payee identifier</c>
      <c>amount</c>
      <c>Minor units as a decimal string <spanx style="verb">0|[1-9][0-9]*</spanx></c>
      <c>currency</c>
      <c>Currency identifier</c>
      <c>policyHash</c>
      <c>SHA-256 of the canonical policy document (lowercase hex)</c>
      <c>manifestHash</c>
      <c>SHA-256 of the signed manifest COSE bytes, or null when <spanx style="verb">noManifest</spanx> is true</c>
      <c>noManifest</c>
      <c>Boolean; <bcp14>MUST</bcp14> be true if and only if <spanx style="verb">manifestHash</spanx> is null</c>
      <c>x402PaymentRef</c>
      <c>Rail payment reference, or null</c>
      <c>timestampMs</c>
      <c>POSIX milliseconds</c>
      <c>nonce</c>
      <c>Unique spend nonce; at least 128 bits of randomness; unique in the issuer scope</c>
      <c>prevReceiptHash</c>
      <c>Previous receipt hash, or null for the first receipt (<spanx style="verb">SHOULD-T4-5</spanx>)</c>
      <c>outcome</c>
      <c><spanx style="verb">settled</spanx> or <spanx style="verb">aborted</spanx></c>
</texttable>

<t>A receipt with <spanx style="verb">outcome</spanx> = <spanx style="verb">settled</spanx> <bcp14>MUST</bcp14> have a non-null
<spanx style="verb">x402PaymentRef</spanx> (<spanx style="verb">MUST-T4-7</spanx>). 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><spanx style="verb">receiptHash</spanx> 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 (<spanx style="verb">MUST-T4-2</spanx>).</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 (<spanx style="verb">MAY-T8-9</spanx>). The profile uses a <strong>detached</strong>
COSE_Sign1 <xref target="RFC9052"/> whose payload is a CBOR map with a single
private-use label:</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70401</c>
      <c>receiptCose</c>
      <c>bstr (exact issuer COSE_Sign1 bytes)</c>
</texttable>

<t>The countersignature uses the header profile in <xref target="cose-profile"/>
and content type <spanx style="verb">application/cedulon-countersign+cbor</spanx>.</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 <spanx style="verb">receiptHash</spanx> after issue, breaking
the receipt chain. A detached Sign1 keeps the issuer bytes
stable, reuses <spanx style="verb">kid</spanx> 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 (<spanx style="verb">MAY-T8-9</spanx>). If a countersignature is present, a
verifier <bcp14>MUST</bcp14> reject it when the signature fails, when <spanx style="verb">kid</spanx> or
content type does not match the configured payee key, or when
label -70401 is not the issuer COSE bytes (<spanx style="verb">MUST-T8-8</spanx>). The
identifier <spanx style="verb">countersign-bad</spanx> <bcp14>SHOULD</bcp14> be used for this condition. A
Dispute Evidence Bundle that includes a verified countersignature
has stronger evidence that the payee accepted those bytes; the
bundle is still not an award (<spanx style="verb">MUST-T8-4</spanx>).</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 (<spanx style="verb">MUST-T4-1</spanx>).</t>

<section anchor="receipt-labels"><name>Claim labels</name>

<t>Registered CWT claims <xref target="RFC8392"/> are not required in -02. Cedulon
uses CWT private-use integer labels less than -65536 so that the
profile does not occupy the 100-110 registry range.</t>

<t>Receipt labels (<spanx style="verb">MUST-T4-3</spanx>, <spanx style="verb">MUST-T4-4</spanx>, <spanx style="verb">MUST-T4-7</spanx>):</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70001</c>
      <c>payer</c>
      <c>tstr</c>
      <c>-70002</c>
      <c>payee</c>
      <c>tstr</c>
      <c>-70003</c>
      <c>amount</c>
      <c>tstr</c>
      <c>-70004</c>
      <c>currency</c>
      <c>tstr</c>
      <c>-70005</c>
      <c>policyHash</c>
      <c>tstr (lowercase hex SHA-256)</c>
      <c>-70006</c>
      <c>manifestHash</c>
      <c>tstr / null</c>
      <c>-70007</c>
      <c>noManifest</c>
      <c>bool</c>
      <c>-70008</c>
      <c>x402PaymentRef</c>
      <c>tstr / null</c>
      <c>-70009</c>
      <c>timestampMs</c>
      <c>uint</c>
      <c>-70010</c>
      <c>nonce</c>
      <c>tstr</c>
      <c>-70011</c>
      <c>prevReceiptHash</c>
      <c>tstr / null</c>
      <c>-70012</c>
      <c>outcome</c>
      <c>tstr (<spanx style="verb">settled</spanx> / <spanx style="verb">aborted</spanx>)</c>
</texttable>

<t>Checkpoint labels (<spanx style="verb">MUST-T11-1</spanx>):</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70101</c>
      <c>epoch</c>
      <c>uint</c>
      <c>-70102</c>
      <c>startMs</c>
      <c>uint</c>
      <c>-70103</c>
      <c>endMs</c>
      <c>uint</c>
      <c>-70104</c>
      <c>receiptCount</c>
      <c>uint</c>
      <c>-70105</c>
      <c>chainHeadHash</c>
      <c>tstr / null</c>
      <c>-70106</c>
      <c>totals</c>
      <c>map tstr -&gt; tstr / null</c>
      <c>-70107</c>
      <c>prevCheckpointHash</c>
      <c>tstr / null</c>
</texttable>

<t>Manifest labels (<spanx style="verb">MUST-T8-1</spanx>):</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70201</c>
      <c>description</c>
      <c>tstr</c>
      <c>-70202</c>
      <c>amount</c>
      <c>tstr</c>
      <c>-70203</c>
      <c>currency</c>
      <c>tstr</c>
      <c>-70204</c>
      <c>acceptanceCriteriaHash</c>
      <c>tstr</c>
      <c>-70205</c>
      <c>cancelCondition</c>
      <c>tstr</c>
      <c>-70206</c>
      <c>expiresAtMs</c>
      <c>uint</c>
      <c>-70207</c>
      <c>ap2MandateHash</c>
      <c>tstr / null</c>
</texttable>

<t>Decision Token labels (<spanx style="verb">MUST-T6-4</spanx>):</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70301</c>
      <c>requestHash</c>
      <c>tstr</c>
      <c>-70302</c>
      <c>policyHash</c>
      <c>tstr (lowercase hex SHA-256)</c>
      <c>-70303</c>
      <c>expiryMs</c>
      <c>uint</c>
      <c>-70304</c>
      <c>nonce</c>
      <c>tstr</c>
      <c>-70305</c>
      <c>singleUseId</c>
      <c>tstr</c>
</texttable>

</section>
<section anchor="cosesign1-headers"><name>COSE_Sign1 headers</name>

<t>The protected header <bcp14>MUST</bcp14> be a deterministic CBOR map containing
(<spanx style="verb">MUST-T4-1</spanx>, <spanx style="verb">MUST-T4-8</spanx>):</t>

<t><list style="symbols">
  <t><spanx style="verb">1</spanx> (alg) = <spanx style="verb">-19</spanx> (Ed25519, <xref target="RFC9864"/>; the generic EdDSA value
<spanx style="verb">-8</spanx> from <xref target="RFC9053"/> is deprecated for this profile)</t>
  <t><spanx style="verb">3</spanx> (content type) = a tstr that distinguishes the payload:
<spanx style="verb">application/cedulon-receipt+cbor</spanx>,
<spanx style="verb">application/cedulon-checkpoint+cbor</spanx>,
<spanx style="verb">application/cedulon-manifest+cbor</spanx>,
<spanx style="verb">application/cedulon-decision+cbor</spanx>, or
<spanx style="verb">application/cedulon-countersign+cbor</spanx></t>
  <t><spanx style="verb">4</spanx> (kid) = bstr, mandatory. The profile computes <spanx style="verb">kid</spanx> as the
first eight bytes of SHA-256 over the issuer's SubjectPublicKeyInfo
DER. A verifier <bcp14>MUST</bcp14> obtain the public key from an authenticated
channel (preconfigured issuer set, directory, or transparency
statement) and <bcp14>MUST</bcp14> reject a message whose <spanx style="verb">kid</spanx> does not match
that key.</t>
</list></t>

<t>The unprotected header <bcp14>MUST</bcp14> be empty. The payload <bcp14>MUST</bcp14> be the CBOR
encoding of the claim map. The signature is Ed25519 <xref target="RFC8032"/> over
the COSE <spanx style="verb">Sig_structure</spanx>
<spanx style="verb">["Signature1", protected, h'', payload]</spanx>.</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
(<spanx style="verb">MUST-T6-4</spanx>).</t>

<t><spanx style="verb">requestHash</spanx> <bcp14>MUST</bcp14> be the six-field hash defined for the PDP
(<spanx style="verb">MUST-T6-1</spanx>). <spanx style="verb">policyHash</spanx> <bcp14>MUST</bcp14> be the SHA-256 of the canonical
policy document the PDP evaluated. <spanx style="verb">expiryMs</spanx> is a Unix time in
milliseconds after which the token <bcp14>MUST</bcp14> be treated as expired
(<spanx style="verb">SHOULD-T6-3</spanx>). <spanx style="verb">nonce</spanx> is the request nonce. <spanx style="verb">singleUseId</spanx> is
the identifier consumed on the first settlement attempt
(<spanx style="verb">MUST-T6-2</spanx>).</t>

<t>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject it if the
signature fails, if <spanx style="verb">kid</spanx> does not match a configured PDP key, if
the content type is not <spanx style="verb">application/cedulon-decision+cbor</spanx>, if
the decoded claim map does not match the presented claims, or if
<spanx style="verb">expiryMs</spanx> is in the past (<spanx style="verb">MUST-T6-5</spanx>).</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 (<spanx style="verb">MUST-T10-7</spanx>).</t>

<section anchor="record-schema"><name>Record schema</name>

<t>Each settlement record <bcp14>MUST</bcp14> contain:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <c>ref</c>
      <c>tstr (rail payment reference)</c>
      <c>amount</c>
      <c>tstr matching <spanx style="verb">0|[1-9][0-9]*</spanx></c>
      <c>currency</c>
      <c>tstr</c>
      <c>timestampMs</c>
      <c>uint</c>
</texttable>

</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 <spanx style="verb">[windowStartMs, windowEndMs)</spanx>.</t>

</section>
<section anchor="authentication"><name>Authentication</name>

<t>The mock rail in the companion implementation signs the extract with
Ed25519 over a canonical encoding of the scoped body. A verifier <bcp14>MUST</bcp14>
obtain the extract from the rail or from a signature the rail
published (<spanx style="verb">MUST-T10-7</spanx>). A deployment that cannot do so is running
the reconciliation against evidence it did not obtain independently,
and <bcp14>MUST</bcp14> report the guarantee as conditional.</t>

<t>A signature on an extract proves internal consistency, not origin: a
key generated by whoever produced the object verifies against itself.
The verifier therefore <bcp14>MUST</bcp14> obtain the rail's public key out of band
and <bcp14>MUST</bcp14> verify the extract signature against that key rather than
against any key the extract carries (<spanx style="verb">MUST-T10-8</spanx>). A verifier that
holds no such key <bcp14>MUST</bcp14> treat the guarantee as conditional.</t>

<t>Keys are compared as bytes. A verifier <bcp14>MUST</bcp14> compare the pinned key
and the key that signed the extract by their SubjectPublicKeyInfo
DER encoding, not by any text encoding of it, so that the same key
presented in a different envelope still compares equal
(<spanx style="verb">MUST-T10-9</spanx>). 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 <spanx style="verb">trust-key-unreadable</spanx> rather than as a key
mismatch.</t>

<t>What a verifier emits for an extract it cannot authenticate depends on
whether it stated an expectation. With no pinned key the verifier has
asserted nothing, so an extract that does not carry a verifiable
signature is <spanx style="verb">unauthenticated-extract</spanx>, a warning: completeness
findings may still be computed, but the guarantee is <strong>conditional</strong>
on the extract being authentic. With a pinned key the verifier has
asserted what it requires, and an extract that fails to meet it is a
failure rather than a caveat; see the verification algorithm for which
finding applies. -00 defined only the first case, and readers of -00
should note that this revision makes the pinned case fail closed.
See <xref target="security"/>.</t>

</section>
<section anchor="scope-agreement"><name>Scope agreement</name>

<t>An extract declares a window and carries settlement records. The two
<bcp14>MUST</bcp14> agree: a verifier <bcp14>MUST</bcp14> report every settlement record whose
<spanx style="verb">timestampMs</spanx> falls outside <spanx style="verb">[windowStartMs, windowEndMs)</spanx> as
<spanx style="verb">extract-scope-mismatch</spanx>, identified by that record's <spanx style="verb">ref</spanx>
(<spanx style="verb">MUST-T10-10</spanx>). 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 (<spanx style="verb">MUST-T10-11</spanx>). An extract
for another account or rail, or one whose window does not span the
period under audit, cannot support a completeness claim about that
period.</t>

<t>A verifier that states no period leaves the extract free to define
one, and an extract that reports on a millisecond balances as easily
as one that reports on a month. Pinning a key establishes who signed;
only a stated period establishes what the signature had to cover. A
verifier that has not stated the period under audit therefore <bcp14>MUST</bcp14>
emit <spanx style="verb">unstated-audit-window</spanx> and <bcp14>MUST</bcp14> treat the guarantee as
conditional (<spanx style="verb">MUST-T10-15</spanx>), whatever else verifies.</t>

</section>
</section>
<section anchor="reconciliation"><name>Reconciliation and Epoch Checkpoints</name>

<t>Completeness is the property that, given an authenticated rail
extract, every settlement in the extract has a matching settled Spend
Receipt, every settled receipt has a matching settlement, receipt and
checkpoint hash chains verify, and checkpoint totals equal the sum of
<strong>settled</strong> receipts in the checkpoint window. If a spend occurred
without a receipt, the missing receipt is itself the evidence
(<spanx style="verb">MUST-T10-2</spanx>).</t>

<t>A checkpoint published with its totals withheld (<xref target="redaction"/>) cannot
contribute the last of those to the property. It is not a violation of
completeness and it is not a demonstration of it either: the
comparison was not made, and a result that rests on a comparison
nobody made is conditional (<spanx style="verb">MUST-T11-12</spanx>).</t>

<section anchor="redaction"><name>Checkpoint claims</name>

<t>An epoch checkpoint <bcp14>MUST</bcp14> be COSE_Sign1-signed with the header profile
in <xref target="cose-profile"/> and <bcp14>MUST</bcp14> bind all of the following
(<spanx style="verb">MUST-T11-1</spanx>):</t>

<t>epoch, <spanx style="verb">startMs</spanx>, <spanx style="verb">endMs</spanx>, <spanx style="verb">receiptCount</spanx>, <spanx style="verb">chainHeadHash</spanx>,
<spanx style="verb">totals</spanx>, and <spanx style="verb">prevCheckpointHash</spanx>.</t>

<t>The checkpoint window is half-open <spanx style="verb">[startMs, endMs)</spanx>
(<spanx style="verb">MUST-T11-7</spanx>). <spanx style="verb">receiptCount</spanx> <bcp14>MUST</bcp14> equal the number of receipts
(settled and aborted) whose <spanx style="verb">timestampMs</spanx> falls in that window.
<spanx style="verb">chainHeadHash</spanx> <bcp14>MUST</bcp14> equal <spanx style="verb">receiptHash</spanx> of the last receipt in that
window, or null if the window is empty (<spanx style="verb">MUST-T11-2</spanx>). Where <spanx style="verb">totals</spanx>
is present it <bcp14>MUST</bcp14> sum only receipts with <spanx style="verb">outcome</spanx> = <spanx style="verb">settled</spanx>; the
one permitted absence is the signed redaction below.</t>

<t>An issuer that publishes a checkpoint without its totals <bcp14>MUST</bcp14> encode
<spanx style="verb">totals</spanx> as null in the signed payload (<spanx style="verb">MUST-T11-12</spanx>). An empty map
is an honest zero for an empty window and is not a redaction. Because
the redaction is inside the signature, it cannot be added to, or
removed from, a checkpoint after signing.</t>

<t>A verifier <bcp14>MUST NOT</bcp14> accept a redaction asserted anywhere but the
signed payload (<spanx style="verb">MUST-T11-13</spanx>). A presentation-layer flag alongside
a checkpoint is chosen by whoever presents it, which is the party
under audit; honouring such a flag would let that party switch off
the totals comparison for a checkpoint whose signed totals are wrong.
The structural claims (epoch, <spanx style="verb">startMs</spanx>, <spanx style="verb">endMs</spanx>, <spanx style="verb">receiptCount</spanx>,
<spanx style="verb">chainHeadHash</spanx>, <spanx style="verb">prevCheckpointHash</spanx>) <bcp14>MUST NOT</bcp14> be redacted: a
checkpoint missing any of them does not decode, and a verifier <bcp14>MUST</bcp14>
treat it as a failed checkpoint rather than as a redacted one.</t>

</section>
<section anchor="genesis"><name>Genesis and continuity</name>

<t>The first checkpoint in a presented chain is the genesis checkpoint
of that chain. Its <spanx style="verb">prevCheckpointHash</spanx> <bcp14>MUST</bcp14> be null. Epoch numbers
<bcp14>MUST</bcp14> be consecutive integers. Adjacent windows <bcp14>MUST</bcp14> satisfy
<spanx style="verb">next.startMs = prev.endMs</spanx> (<spanx style="verb">MUST-T11-8</spanx>).</t>

<t>A later checkpoint that omits a prefix of earlier epochs (prefix
deletion) is detectable only if an external witness (transparency
log) has recorded the missing prefix (<spanx style="verb">MUST-T11-9</spanx>). Without that
witness, T11 guarantees about suppression are <strong>conditional</strong>.</t>

<t>-01 stated that dependency and stopped there: nothing in its
verification algorithm read a transparency receipt, so the witness
had no way to speak. This revision gives it one. A verifier that
holds transparency receipts for the period under audit compares what
the witness recorded against what the chain presented, and reports
the difference under its own name (<xref target="witness"/>). A witness that holds
a checkpoint the presented chain omits is not the same condition as
a chain that leaves a gap in its own coverage, and the two <bcp14>MUST NOT</bcp14>
be reported under one identifier (<spanx style="verb">MUST-T11-11</spanx>). The first says
evidence is being withheld; the second says the evidence shown is
incomplete. An operator who cannot tell them apart cannot tell an
incomplete record from a concealed one.</t>

</section>
<section anchor="witness"><name>The transparency witness</name>

<t>A checkpoint registered with a Transparency Service <xref target="RFC9943"/> is a
Signed Statement whose payload is the checkpoint COSE object and
whose content type is <spanx style="verb">application/cedulon-checkpoint+cbor</spanx>
(<xref target="anchoring"/>). The service returns a receipt <xref target="RFC9942"/> that binds
the statement it recorded.</t>

<t>A verifier <bcp14>MAY</bcp14> be given such receipts for the period under audit. It
is a distinct input from the presented checkpoint chain, and supplying
it is optional: a verifier given none performs the same steps, and
reports the same findings, that it would if this input did not exist
(<spanx style="verb">MUST-T11-10</spanx>). Supplying an empty set is not the same as supplying
none. An empty set says a witness is configured and recorded nothing,
which is itself reportable; absence says no witness was consulted.</t>

<t>A receipt binds a statement hash, not a statement. The body is not
carried by the receipt and a verifier will often not hold it. Two
levels of checking follow from that, and they are not the same
(<spanx style="verb">MUST-T11-10</spanx>).</t>

<t>Every receipt <bcp14>MUST</bcp14> have its signature verified before it counts for
anything. That is what establishes the hash as one the service signed
for, and it is all that comparing recorded hashes against presented
ones requires: the verifier computes the statement hash of each
presented checkpoint itself.</t>

<t>A receipt accompanied by the statement body carries more, and <bcp14>MUST</bcp14> be
checked further before that body is relied on. The body's statement
hash <bcp14>MUST</bcp14> equal the hash the receipt binds, and the body <bcp14>MUST</bcp14> itself
verify as a checkpoint. A body that fails either check proves nothing
and <bcp14>MUST</bcp14> be ignored rather than counted, while the receipt it came
with remains usable for the hash comparison. Equivocation is the case
that needs a body, because it compares claims rather than hashes.</t>

<t>What such a receipt establishes, and what it does not, is worth
stating plainly. It establishes that the service signed for that
statement. Whether the statement is a member of an append-only log,
and whether that log has ever equivocated, are properties of the
service and its own proofs, not of Cedulon. A verifier that treats a
signed receipt as proof of log membership is claiming more than the
receipt carries.</t>

</section>
<section anchor="verification-algorithm"><name>Verification algorithm</name>

<t>A verifier <bcp14>MUST</bcp14> perform all of these steps and <bcp14>MUST</bcp14> report every
finding they produce (<spanx style="verb">MUST-T10-1</spanx>, <spanx style="verb">MUST-T11-2</spanx>). They are numbered
for reference, not to require an evaluation order: no step
short-circuits another, and an implementation may evaluate them in any
order that produces the same set of findings.</t>

<t>One data dependency is worth naming, because "any order" read naively
would break it. Step 15 decides which transparency receipts, and which
statement bodies, survive checking. Steps 14 and 16 consume what
survives. An implementation that ran step 14 against unchecked bodies,
or step 16 against unchecked receipts, would not produce the same set
of findings, so that order is not among the permitted ones. Nothing
else in this list feeds another step.</t>

<t>When a step names an identifier in backticks, that identifier
<bcp14>SHOULD</bcp14> be used for the condition in diagnostic output. The
normative requirement is the behaviour: report the condition,
identified by the <spanx style="verb">ref</spanx> or other handle given in the step. The
identifiers are not an interoperability surface.</t>

<t><list style="numbers" type="1">
  <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 (<spanx style="verb">MUST-T10-12</spanx>). 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 <spanx style="verb">extract-settlement-mismatch</spanx> <bcp14>SHOULD</bcp14> be used for this
condition in diagnostic output.</t>
  <t>Verify the extract signature against the out-of-band rail key
(<spanx style="verb">MUST-T10-8</spanx>, <spanx style="verb">MUST-T10-9</spanx>). If no key is pinned, the verifier
<bcp14>MUST</bcp14> treat the completeness guarantee as conditional
(<spanx style="verb">MUST-T10-7</spanx>). The identifier <spanx style="verb">unauthenticated-extract</spanx> <bcp14>SHOULD</bcp14>
be used for this condition in diagnostic output. If a key is
pinned and cannot be decoded, the verifier <bcp14>MUST</bcp14> report that the
pinned key is unreadable. The identifier <spanx style="verb">trust-key-unreadable</spanx>
<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 <spanx style="verb">extract-key-mismatch</spanx>
<bcp14>SHOULD</bcp14> be used for this condition. A finding that puts the
extract itself in doubt <bcp14>MUST</bcp14> prevent an unconditional guarantee.</t>
  <t>Check scope. The verifier <bcp14>MUST</bcp14> report each settlement record
whose <spanx style="verb">timestampMs</spanx> falls outside the declared window, identified
by that record's <spanx style="verb">ref</spanx> (<spanx style="verb">MUST-T10-10</spanx>). When the verifier states
an expected account, rail, or window, it <bcp14>MUST</bcp14> report an extract
that does not cover it (<spanx style="verb">MUST-T10-11</spanx>). The identifier
<spanx style="verb">extract-scope-mismatch</spanx> <bcp14>SHOULD</bcp14> be used for both conditions. If
the verifier stated no period, it <bcp14>MUST</bcp14> treat the guarantee as
conditional (<spanx style="verb">MUST-T10-15</spanx>). The identifier
<spanx style="verb">unstated-audit-window</spanx> <bcp14>SHOULD</bcp14> be used for this condition.</t>
  <t>Decode each Spend Receipt COSE_Sign1. Reject if Ed25519 verify
fails, if <spanx style="verb">kid</spanx> does not match the configured issuer key, if the
content type is not the receipt type, or if the decoded claim map
does not match the presented claims (<spanx style="verb">MUST-T4-2</spanx>, <spanx style="verb">MUST-T4-8</spanx>).</t>
  <t>Scope the receipts. When an extract is supplied, only receipts whose
<spanx style="verb">timestampMs</spanx> falls in the extract's declared window are reconciled
against it (<spanx style="verb">MUST-T10-16</spanx>). A receipt outside that window is not a
completeness failure against this extract; auditing a longer period
requires extracts that cover it. Receipts remain subject to every
other check regardless of window.</t>
  <t>Walk receipts in issuer order. The first <spanx style="verb">prevReceiptHash</spanx> <bcp14>MUST</bcp14>
be null. Each later <spanx style="verb">prevReceiptHash</spanx> <bcp14>MUST</bcp14> equal <spanx style="verb">receiptHash</spanx> of
the previous receipt. A miss <bcp14>MUST</bcp14> be reported as a break in the
receipt chain. The identifier <spanx style="verb">receipt-chain-break</spanx> <bcp14>SHOULD</bcp14> be
used for this condition.</t>
  <t>Index settled receipts and extract records by <spanx style="verb">ref</spanx>. A <spanx style="verb">ref</spanx>
that appears more than once on either side <bcp14>MUST</bcp14> be reported as a
repeated reference (<spanx style="verb">MUST-T10-6</spanx>). The identifier <spanx style="verb">duplicate-ref</spanx>
<bcp14>SHOULD</bcp14> be used for this condition.</t>
  <t>For each <spanx style="verb">ref</spanx> that appears exactly once on each side, require a
one-to-one match on <spanx style="verb">ref</spanx> AND <spanx style="verb">amount</spanx> AND <spanx style="verb">currency</spanx>
(<spanx style="verb">MUST-T10-1</spanx>). Amount or currency mismatch <bcp14>MUST</bcp14> be reported as
a settlement that does not match its receipt, identified by that
<spanx style="verb">ref</spanx>. The identifier <spanx style="verb">settlement-mismatch</spanx> <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 <spanx style="verb">ref</spanx> (<spanx style="verb">MUST-T10-2</spanx>). The
identifier <spanx style="verb">settlement-without-receipt</spanx> <bcp14>SHOULD</bcp14> be used for this
condition. A settled receipt with no extract row <bcp14>MUST</bcp14> be reported
as a completeness failure (<spanx style="verb">MUST-T10-3</spanx>). The identifier
<spanx style="verb">receipt-without-settlement</spanx> <bcp14>SHOULD</bcp14> be used for this condition.
A settled receipt with a null rail ref <bcp14>MUST</bcp14> be reported as
settled without a rail reference. The identifier
<spanx style="verb">settled-without-ref</spanx> <bcp14>SHOULD</bcp14> be used for this condition.</t>
  <t>A <spanx style="verb">ref</spanx> already reported as repeating <bcp14>MUST</bcp14> still be reconciled
by amount rather than dropped from the comparison
(<spanx style="verb">MUST-T10-13</spanx>). For each currency under that <spanx style="verb">ref</spanx>, 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 <spanx style="verb">settlement-without-receipt</spanx> <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 <spanx style="verb">ref</spanx>. The identifier
<spanx style="verb">settlement-mismatch</spanx> <bcp14>SHOULD</bcp14> be used for this condition. An
amount on that repeating <spanx style="verb">ref</spanx> that cannot be parsed as an
integer <bcp14>MUST</bcp14> be reported without abandoning the audit; the
identifier <spanx style="verb">malformed-amount</spanx> <bcp14>SHOULD</bcp14> be used for this condition.
A verifier <bcp14>MUST</bcp14> still report findings for the remaining records.</t>
  <t>Aborted receipts are not matched to extract rows and are not
added to totals.</t>
  <t>Decode each checkpoint. Reject a failed signature, and reject a
   <spanx style="verb">kid</spanx> that does not match the key obtained for the checkpoint
   issuer, on the same terms as a receipt (<spanx style="verb">MUST-T4-8</spanx>). Require
   <spanx style="verb">receiptCount</spanx>, <spanx style="verb">chainHeadHash</spanx>, and <spanx style="verb">totals</spanx> to match the
   receipts in <spanx style="verb">[startMs, endMs)</spanx> as defined above
   (<spanx style="verb">MUST-T11-2</spanx>). The identifier <spanx style="verb">checkpoint-total-mismatch</spanx>
   <bcp14>SHOULD</bcp14> be used for a failed signature, a wrong <spanx style="verb">receiptCount</spanx>,
   or totals that disagree, and <spanx style="verb">checkpoint-head-mismatch</spanx> for a
   <spanx style="verb">chainHeadHash</spanx> that is not the last in-window receipt. If the
   signed <spanx style="verb">totals</spanx> is null, the verifier
   cannot perform the totals comparison for that checkpoint. It
   <bcp14>MUST</bcp14> report that the comparison was skipped and <bcp14>MUST</bcp14> treat the
   completeness guarantee as conditional; the absence of a
   comparison is not a passed comparison (<spanx style="verb">MUST-T11-12</spanx>). The
   identifier <spanx style="verb">checkpoint-totals-redacted</spanx> <bcp14>SHOULD</bcp14> be used for this
   condition. <spanx style="verb">receiptCount</spanx> and <spanx style="verb">chainHeadHash</spanx> <bcp14>MUST</bcp14> still be
   checked. A checkpoint that fails verification <bcp14>MUST NOT</bcp14> be
   treated as redacted, whatever it claims about its own totals.</t>
  <t>Every chained receipt <bcp14>MUST</bcp14> fall in exactly one checkpoint
window. A gap or double count <bcp14>MUST</bcp14> be reported as a window
coverage failure (<spanx style="verb">MUST-T11-7</spanx>, <spanx style="verb">MUST-T11-8</spanx>). The identifier
<spanx style="verb">window-coverage</spanx> <bcp14>SHOULD</bcp14> be used for this condition.</t>
  <t>Walk checkpoints in epoch order. <spanx style="verb">prevCheckpointHash</spanx> <bcp14>MUST</bcp14>
equal the SHA-256 of the previous checkpoint COSE bytes, or null
for genesis (<spanx style="verb">MUST-T11-4</spanx>). The identifier
<spanx style="verb">checkpoint-total-mismatch</spanx> <bcp14>SHOULD</bcp14> be used for a broken chain,
which is the fourth condition its table row names.</t>
  <t>If two successfully verified checkpoints share an epoch number
and have different hashes, the verifier <bcp14>MUST</bcp14> report
equivocation (<spanx style="verb">MUST-T11-3</spanx>). The identifier <spanx style="verb">equivocation</spanx>
<bcp14>SHOULD</bcp14> be used for this condition. The checkpoints compared
here are those presented <strong>together with</strong> any carried by
verified transparency receipts (step 15). Comparing only the
presented chain cannot raise this finding: <spanx style="verb">MUST-T11-8</spanx>, applied
in step 12, requires that chain's epochs to be consecutive, so no
two of its members share an epoch. A copy recorded by a witness
is where the second one is found.</t>
  <t>If transparency receipts were supplied, discard any whose
signature fails (<spanx style="verb">MUST-T11-10</spanx>). The survivors are the recorded
statement hashes used in step 16. Where a receipt also carries
the statement body, discard that body unless its statement hash
equals the one the receipt binds and it verifies as a
checkpoint; the surviving bodies are what step 14 compares.
Discarding a body does not discard its receipt.</t>
  <t>Compare the surviving witness records against the presented
chain (<spanx style="verb">MUST-T11-11</spanx>). For each presented checkpoint with no
surviving record, report that it is not anchored; the
identifier <spanx style="verb">checkpoint-not-anchored</spanx> <bcp14>SHOULD</bcp14> be used. This is a
warning: a witness may have been configured after the
checkpoint was issued, and an operator's own gap is not
evidence of concealment. For each surviving record whose
statement is absent from the presented chain, report that a
recorded checkpoint was withheld; the identifier
<spanx style="verb">checkpoint-withheld</spanx> <bcp14>SHOULD</bcp14> be used. This is a finding and the
audit <bcp14>MUST</bcp14> fail. The verifier <bcp14>MUST NOT</bcp14> report a withheld
checkpoint as a window coverage failure (<spanx style="verb">MUST-T11-11</spanx>).</t>
  <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 (<spanx style="verb">MUST-T10-4</spanx>).</t>
</list></t>

</section>
<section anchor="finding-codes"><name>Finding codes</name>

<t>The identifiers below are for diagnostic output. They are not an
interoperability surface. A finding object that can be carried on
the wire is outside the scope of this document and may be defined
later. Two implementations interoperate when they accept the same
inputs and fail or warn on the same conditions, not when they
print the same strings.</t>

<t>A condition that makes the audit fail is a finding. A condition
that only makes the completeness guarantee conditional is a
warning. Warnings <bcp14>MUST</bcp14> still appear in operator-facing output
(<spanx style="verb">MUST-T10-14</spanx>).</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='left'>Effect</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c>settlement-without-receipt</c>
      <c>audit fails</c>
      <c>Extract row has no matching settled receipt, or a repeating <spanx style="verb">ref</spanx> settled more than it receipted</c>
      <c>receipt-without-settlement</c>
      <c>audit fails</c>
      <c>Settled receipt ref is not on the extract</c>
      <c>settlement-mismatch</c>
      <c>audit fails</c>
      <c>Same <spanx style="verb">ref</spanx>, different amount or currency, including a repeating <spanx style="verb">ref</spanx> that settled less than it receipted</c>
      <c>duplicate-ref</c>
      <c>audit fails</c>
      <c>Ref appears more than once on one side</c>
      <c>settled-without-ref</c>
      <c>audit fails</c>
      <c><spanx style="verb">outcome</spanx> is settled and <spanx style="verb">x402PaymentRef</spanx> is null</c>
      <c>receipt-chain-break</c>
      <c>audit fails</c>
      <c>Signature or <spanx style="verb">prevReceiptHash</spanx> failed</c>
      <c>checkpoint-total-mismatch</c>
      <c>audit fails</c>
      <c>Totals, count, signature, or checkpoint chain failed</c>
      <c>checkpoint-head-mismatch</c>
      <c>audit fails</c>
      <c><spanx style="verb">chainHeadHash</spanx> is not the last in-window receipt</c>
      <c>equivocation</c>
      <c>audit fails</c>
      <c>Two distinct hashes for one epoch</c>
      <c>window-coverage</c>
      <c>audit fails</c>
      <c>Gap, overlap, or non-adjacent / non-consecutive windows</c>
      <c>unauthenticated-extract</c>
      <c>guarantee conditional</c>
      <c>No pinned rail key, or the extract has no verifiable signature</c>
      <c>extract-key-mismatch</c>
      <c>audit fails</c>
      <c>Extract is signed by a key other than the pinned rail key, or does not verify against it</c>
      <c>trust-key-unreadable</c>
      <c>audit fails</c>
      <c>The pinned rail key could not be decoded; the verifier's configuration is at fault</c>
      <c>extract-scope-mismatch</c>
      <c>audit fails</c>
      <c>A record falls outside the declared window, or the extract does not cover the expected account, rail, or window</c>
      <c>extract-settlement-mismatch</c>
      <c>audit fails</c>
      <c>A caller-supplied settlement list disagrees with the extract; the extract is authoritative</c>
      <c>malformed-amount</c>
      <c>audit fails</c>
      <c>An amount on a <spanx style="verb">ref</spanx> already reported as repeating that could not be parsed as an integer</c>
      <c>unstated-audit-window</c>
      <c>guarantee conditional</c>
      <c>The verifier stated no period, so the extract defined its own</c>
      <c>countersign-bad</c>
      <c>audit fails</c>
      <c>Present payee countersignature failed verify</c>
      <c>checkpoint-withheld</c>
      <c>audit fails</c>
      <c>A verified transparency receipt binds a checkpoint the presented chain does not contain</c>
      <c>checkpoint-not-anchored</c>
      <c>guarantee conditional</c>
      <c>A witness was supplied and holds no verified receipt for this checkpoint</c>
      <c>checkpoint-totals-redacted</c>
      <c>guarantee conditional</c>
      <c>The checkpoint was signed with <spanx style="verb">totals</spanx> null, so the totals comparison could not be made</c>
</texttable>

<t>A finding that puts the extract itself in doubt (<spanx style="verb">extract-key-mismatch</spanx>,
<spanx style="verb">trust-key-unreadable</spanx>, <spanx style="verb">extract-scope-mismatch</spanx>, or
<spanx style="verb">extract-settlement-mismatch</spanx>) <bcp14>MUST</bcp14> also prevent an unconditional
guarantee, not merely fail the audit.</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, 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
(<spanx style="verb">checkpoint-totals-redacted</spanx>) removes a comparison the guarantee
rests on, and a presented checkpoint a supplied witness does not
hold (<spanx style="verb">checkpoint-not-anchored</spanx>) 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 (<spanx style="verb">MUST-T10-14</spanx>). 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
(<spanx style="verb">SHOULD-T11-5</spanx>). A test deployment <bcp14>MAY</bcp14> use an in-process
append-only log as the witness (<spanx style="verb">MAY-T11-6</spanx>). Cedulon still <bcp14>MUST
NOT</bcp14> take custody.</t>

<t>The guarantee named above is about completeness against the extract,
which is the subject of T10. It is not a claim that no checkpoint was
suppressed. Suppression is the subject of T11, and a report <bcp14>MUST NOT</bcp14>
be read as settling it when no witness was consulted: with no
transparency receipts, the presented chain is self-consistent by
construction and says nothing about what it left out (<spanx style="verb">MUST-T11-9</spanx>).
A verifier that consulted a witness and found every presented
checkpoint recorded, with nothing recorded that was not presented,
has discharged T11 for the period those receipts cover, and for no
longer.</t>

</section>
</section>
<section anchor="lifecycle"><name>Lifecycle</name>

<t><list style="numbers" type="1">
  <t><strong>Manifest.</strong> Parties sign a Trade Manifest (optional for metered
API spend; required for goods with acceptance criteria).</t>
  <t><strong>Policy check.</strong> The adapter submits a structured request to the
PDP. Default is deny. An allow is a Decision Token
(<spanx style="verb">MUST-T6-4</spanx>).</t>
  <t><strong>Payment.</strong> On allow, the adapter performs the x402 (or other
rail) exchange using exactly the decision fields (<spanx style="verb">MUST-T6-1</spanx>).
The Decision Token is consumed (<spanx style="verb">MUST-T6-2</spanx>). A reused nonce is
denied (<spanx style="verb">MUST-T3-1</spanx>, <spanx style="verb">MUST-T3-2</spanx>). A tampered or expired token
is denied (<spanx style="verb">MUST-T6-5</spanx>).</t>
  <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 (<spanx style="verb">MUST-T5-2</spanx>, <spanx style="verb">MUST-T7-1</spanx>).</t>
  <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 (<spanx style="verb">MUST-T8-3</spanx>).
The bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow
release (<spanx style="verb">MUST-T8-4</spanx>).</t>
</list></t>

</section>
<section anchor="policy-semantics"><name>Policy Semantics</name>

<t>Policy is default deny. The engine understands three families of
rule:</t>

<t><list style="symbols">
  <t><strong>Limit:</strong> maximum amount per payment; maximum cumulative amount
per window (<spanx style="verb">MUST-T2-2</spanx>).</t>
  <t><strong>Velocity:</strong> maximum number of allowed payments per window
(<spanx style="verb">MUST-T2-1</spanx>).</t>
  <t><strong>Scope:</strong> optional allow-lists for payee, currency, and tool
name.</t>
</list></t>

<t>Fail-closed: missing engine, crash, or exception yields deny
(<spanx style="verb">MUST-T2-3</spanx>). Implementations <bcp14>SHOULD</bcp14> emit stable reason codes
(<spanx style="verb">SHOULD-T2-5</spanx>). Decision tokens <bcp14>SHOULD</bcp14> expire after a short TTL
(<spanx style="verb">SHOULD-T6-3</spanx>).</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 (<spanx style="verb">MUST-T5-1</spanx>).</t>

</section>
<section anchor="anchoring"><name>SCITT Anchoring</name>

<t>A Receipt Issuer or relying party <bcp14>MAY</bcp14> construct a SCITT Signed
Statement whose payload is either the Spend Receipt COSE object or a
privacy profile (<xref target="privacy"/>) and register it with a Transparency
Service <xref target="RFC9943"/>. The service returns a COSE receipt
<xref target="RFC9942"/>. Embedding that receipt yields a Transparent Statement.
Cedulon does not define a new transparency algorithm.</t>

<t>An epoch checkpoint <bcp14>MUST</bcp14> be registrable on the same terms
(<spanx style="verb">MUST-T11-14</spanx>). Its Signed Statement carries the checkpoint
COSE_Sign1 object as the payload and <spanx style="verb">application/cedulon-checkpoint+cbor</spanx>
as the content type, which is among the media types <xref target="iana"/> asks to
have registered and which, until then, is a placeholder like the rest.
Nothing else about registration differs from a receipt.</t>

<t>This is a short section for a requirement -01 was missing, and the
omission mattered more than its length suggests. -01 asked for
checkpoints to be registered (<spanx style="verb">SHOULD-T11-5</spanx>) while profiling only
the receipt here, so the object carrying the suppression guarantee
had no stated form to be registered in. Two implementations could
follow -01 to the letter and register incomparable things.</t>

</section>
<section anchor="privacy"><name>Privacy Considerations</name>

<t>A public transparency encoding <bcp14>MUST</bcp14> support omitting or hashing
payer and payee identifiers and <bcp14>MUST</bcp14> support amount redaction or
bucket encoding (<spanx style="verb">MUST-T9-1</spanx>). Implementations <bcp14>MUST NOT</bcp14> write
government-ID numbers, payment-instrument PAN, or street address
into a public statement (<spanx style="verb">MUST-T9-2</spanx>). Default public anchors
<bcp14>SHOULD</bcp14> publish <spanx style="verb">policyHash</spanx>, <spanx style="verb">manifestHash</spanx>, <spanx style="verb">receiptHash</spanx>, and
<spanx style="verb">timestampMs</spanx> rather than full claims (<spanx style="verb">SHOULD-T9-3</spanx>). A private
auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band
(<spanx style="verb">MAY-T9-4</spanx>).</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 (<spanx style="verb">MUST-T9-5</spanx>). -01 gave no rule for it, so an
implementation could publish that total, or withhold it in a way no
verifier could recognise, and neither reading contradicted the text.</t>

<t>The rule is the one stated in <xref target="reconciliation"/>: <spanx style="verb">totals</spanx> <bcp14>MAY</bcp14> be
withheld by signing it as null (<spanx style="verb">MUST-T11-12</spanx>), and only that form
counts as a redaction (<spanx style="verb">MUST-T11-13</spanx>). The structural claims are not
redactable, because a verifier that cannot read the window or the
chain head cannot check anything at all, and a checkpoint that hid
them would be indistinguishable from a broken one.</t>

<t>Withholding is honest and it is also a cost: a verifier that cannot
recompute the totals says so, and the completeness guarantee for that
window is conditional. A deployment that wants an unconditional result
publishes the totals; a deployment that wants the volume private
accepts a conditional one. What a deployment <bcp14>MUST NOT</bcp14> do is obtain
the unconditional result while withholding the evidence for it.</t>

</section>
<section anchor="security"><name>Security Considerations</name>

<t>This section is authoritative for the protocol requirements in this
document. The companion repository file <spanx style="verb">THREAT_MODEL.md</spanx> is
informative and <bcp14>MUST NOT</bcp14> be read as overriding this section.</t>

<t>Requirement identifiers take the form KEYWORD-Tn-k, where KEYWORD
is <bcp14>MUST</bcp14>, <bcp14>SHOULD</bcp14>, or <bcp14>MAY</bcp14>, n is the threat number in this section,
and k is a sequence number within that threat. <bcp14>MUST</bcp14>-T8-custody is
the custody prohibition under T8. The tables below define the
requirement text those citations refer to.</t>

<section anchor="t1-prompt-injection-leads-to-unauthorized-spend"><name>T1: Prompt injection leads to unauthorized spend</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T1-1</c>
      <c>The PDP <bcp14>MUST</bcp14> decide from structured request fields and stored policy, not from model-generated prose.</c>
      <c><bcp14>MUST</bcp14>-T1-2</c>
      <c>A spend that is not bound to a verified Trade Manifest <bcp14>MUST</bcp14> be marked <spanx style="verb">noManifest</spanx> on the Spend Receipt and <bcp14>MUST</bcp14> still be subject to limit, velocity, and scope policy.</c>
      <c><bcp14>SHOULD</bcp14>-T1-3</c>
      <c>Hosts <bcp14>SHOULD</bcp14> require a human confirmation channel for first-use payees.</c>
      <c><bcp14>MAY</bcp14>-T1-4</c>
      <c>An implementation <bcp14>MAY</bcp14> refuse all <spanx style="verb">noManifest</spanx> spend.</c>
</texttable>

</section>
<section anchor="t2-runaway-agent-loop-spend"><name>T2: Runaway agent (loop spend)</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T2-1</c>
      <c>Policy <bcp14>MUST</bcp14> express a maximum payment count per configured time window (velocity).</c>
      <c><bcp14>MUST</bcp14>-T2-2</c>
      <c>Policy <bcp14>MUST</bcp14> express a maximum amount per payment and a maximum cumulative amount per window.</c>
      <c><bcp14>MUST</bcp14>-T2-3</c>
      <c>If the PDP is unreachable, uninitialized, or throws during evaluation, the spend <bcp14>MUST</bcp14> be denied (fail-closed, default deny).</c>
      <c><bcp14>MUST</bcp14>-T2-4</c>
      <c>A denied attempt <bcp14>MUST NOT</bcp14> increment the allowed-spend counters as if it had succeeded.</c>
      <c><bcp14>SHOULD</bcp14>-T2-5</c>
      <c>Implementations <bcp14>SHOULD</bcp14> emit a stable reason code for velocity and limit denials.</c>
</texttable>

</section>
<section anchor="t3-replay-of-payment-authority"><name>T3: Replay of payment authority</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T3-1</c>
      <c>Every spend attempt that the PDP allows <bcp14>MUST</bcp14> include a nonce that the implementation has not accepted before.</c>
      <c><bcp14>MUST</bcp14>-T3-2</c>
      <c>A second attempt that reuses a nonce <bcp14>MUST</bcp14> be denied.</c>
      <c><bcp14>MUST</bcp14>-T3-3</c>
      <c>A Trade Manifest <bcp14>MUST</bcp14> carry an expiry; a spend against an expired manifest <bcp14>MUST</bcp14> be denied.</c>
      <c><bcp14>MUST</bcp14>-T3-4</c>
      <c>A PDP allow decision <bcp14>MUST</bcp14> be bound to a hash of the request fields it evaluated and <bcp14>MUST</bcp14> be single-use.</c>
      <c><bcp14>SHOULD</bcp14>-T3-5</c>
      <c>Nonce stores <bcp14>SHOULD</bcp14> persist across process restart when the deployment is not a test fixture.</c>
</texttable>

</section>
<section anchor="t4-receipt-forgery-or-repudiation"><name>T4: Receipt forgery or repudiation</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T4-1</c>
      <c>A Spend Receipt <bcp14>MUST</bcp14> be signed by the Receipt Issuer over a canonical encoding of its claims.</c>
      <c><bcp14>MUST</bcp14>-T4-2</c>
      <c>Verifiers <bcp14>MUST</bcp14> reject a receipt whose signature does not validate or whose canonical bytes do not match the signed payload.</c>
      <c><bcp14>MUST</bcp14>-T4-3</c>
      <c>A Spend Receipt <bcp14>MUST</bcp14> include <spanx style="verb">payer</spanx>, <spanx style="verb">payee</spanx>, <spanx style="verb">amount</spanx>, <spanx style="verb">currency</spanx>, <spanx style="verb">policyHash</spanx>, <spanx style="verb">timestampMs</spanx>, and <spanx style="verb">nonce</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T4-4</c>
      <c>A Spend Receipt <bcp14>MUST</bcp14> include <spanx style="verb">manifestHash</spanx> or an explicit <spanx style="verb">noManifest</spanx> flag, never an ambiguous empty hash. Empty optional values are CBOR null; labels are never absent.</c>
      <c><bcp14>SHOULD</bcp14>-T4-5</c>
      <c>Receipts <bcp14>SHOULD</bcp14> form a hash chain (<spanx style="verb">prevReceiptHash</spanx>) so omission is detectable within one issuer stream.</c>
      <c><bcp14>MAY</bcp14>-T4-6</c>
      <c>Parties <bcp14>MAY</bcp14> register the signed receipt as a SCITT statement to obtain a COSE receipt.</c>
      <c><bcp14>MUST</bcp14>-T4-7</c>
      <c>A Spend Receipt <bcp14>MUST</bcp14> include <spanx style="verb">outcome</spanx> (<spanx style="verb">settled</spanx> or <spanx style="verb">aborted</spanx>). A settled receipt <bcp14>MUST</bcp14> have a non-null rail ref. Aborted receipts <bcp14>MUST NOT</bcp14> enter checkpoint totals.</c>
      <c><bcp14>MUST</bcp14>-T4-8</c>
      <c>COSE_Sign1 protected headers <bcp14>MUST</bcp14> use alg -19 (Ed25519), a mandatory <spanx style="verb">kid</spanx>, and a payload-specific content type. Verifiers <bcp14>MUST</bcp14> reject a <spanx style="verb">kid</spanx> that does not match the configured issuer key.</c>
</texttable>

</section>
<section anchor="t5-policy-bypass-via-direct-rail-access"><name>T5: Policy bypass via direct rail access</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T5-1</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T5-2</c>
      <c>Rail credentials, wallet handles, and facilitator tokens <bcp14>MUST NOT</bcp14> be placed in tool results or prompts.</c>
      <c><bcp14>SHOULD</bcp14>-T5-3</c>
      <c>Hosts <bcp14>SHOULD</bcp14> run the PDP and signing keys in a process the model runtime cannot write.</c>
      <c><bcp14>MAY</bcp14>-T5-4</c>
      <c>A deployment <bcp14>MAY</bcp14> use OS or hardware isolation between the model and the PDP.</c>
</texttable>

</section>
<section anchor="t6-toctou-between-policy-check-and-payment"><name>T6: TOCTOU between policy check and payment</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T6-1</c>
      <c>Payment settlement <bcp14>MUST</bcp14> use the same six <spanx style="verb">requestHash</spanx> fields the PDP evaluated: amount, currency, payee, tool, nonce, and <spanx style="verb">manifestHash</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T6-2</c>
      <c>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.</c>
      <c><bcp14>SHOULD</bcp14>-T6-3</c>
      <c>Implementations <bcp14>SHOULD</bcp14> treat a decision older than a short TTL as expired.</c>
      <c><bcp14>MUST</bcp14>-T6-4</c>
      <c>An allow Decision Token <bcp14>MUST</bcp14> be COSE_Sign1 with CWT private-use labels -70301..-70305 (<spanx style="verb">requestHash</spanx>, <spanx style="verb">policyHash</spanx>, <spanx style="verb">expiryMs</spanx>, <spanx style="verb">nonce</spanx>, <spanx style="verb">singleUseId</spanx>) and content type <spanx style="verb">application/cedulon-decision+cbor</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T6-5</c>
      <c>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject a failed signature, a <spanx style="verb">kid</spanx> or content-type mismatch, a claim-map mismatch, or an expired <spanx style="verb">expiryMs</spanx>.</c>
</texttable>

</section>
<section anchor="t7-signing-key-leakage"><name>T7: Signing-key leakage</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T7-1</c>
      <c>Secret key material <bcp14>MUST NOT</bcp14> appear in receipts, checkpoints, manifests, decision tokens, logs, or example output.</c>
      <c><bcp14>MUST</bcp14>-T7-2</c>
      <c>Example and test keys <bcp14>MUST</bcp14> be generated at runtime or stored as clearly fake fixtures, never as production secrets.</c>
      <c><bcp14>SHOULD</bcp14>-T7-3</c>
      <c>Production deployments <bcp14>SHOULD</bcp14> use an HSM or OS key store and <bcp14>SHOULD</bcp14> rotate keys.</c>
      <c><bcp14>MAY</bcp14>-T7-4</c>
      <c>Implementations <bcp14>MAY</bcp14> encrypt keys at rest.</c>
</texttable>

</section>
<section anchor="t8-counterparty-price-gouging-or-defective-delivery"><name>T8: Counterparty price gouging or defective delivery</name>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T8-1</c>
      <c>A Trade Manifest <bcp14>MUST</bcp14> bind goods or service description, price, currency, acceptance-criteria hash, cancel condition, and expiry.</c>
      <c><bcp14>MUST</bcp14>-T8-2</c>
      <c>A spend bound to a manifest <bcp14>MUST</bcp14> be denied if the requested amount or currency differs from the manifest.</c>
      <c><bcp14>MUST</bcp14>-T8-3</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T8-4</c>
      <c>The Dispute Evidence Bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow release.</c>
      <c><bcp14>MUST</bcp14>-T8-7</c>
      <c><spanx style="verb">manifestHash</spanx> <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.</c>
      <c><bcp14>SHOULD</bcp14>-T8-5</c>
      <c>Manifests <bcp14>SHOULD</bcp14> reference an AP2 mandate hash when one exists.</c>
      <c><bcp14>MAY</bcp14>-T8-6</c>
      <c>Parties <bcp14>MAY</bcp14> add an optional escrow actor as a third-party role interface; this project <bcp14>MUST NOT</bcp14> implement custody.</c>
      <c><bcp14>MUST</bcp14>-T8-custody</c>
      <c>Implementations of this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow.</c>
      <c><bcp14>MUST</bcp14>-T8-8</c>
      <c>If a payee countersignature is present, a verifier <bcp14>MUST</bcp14> reject it when the signature fails, when <spanx style="verb">kid</spanx> or content type does not match the configured payee key, or when the payload is not the issuer COSE_Sign1 bytes.</c>
      <c><bcp14>MAY</bcp14>-T8-9</c>
      <c>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.</c>
</texttable>

</section>
<section anchor="must-t8-custody"><name>MUST-T8-custody</name>

<t>Implementations of this specification <bcp14>MUST NOT</bcp14> take custody of
funds or operate escrow. See also <xref target="escrow-role"/>.</t>

</section>
<section anchor="t9-pii-leakage-into-the-transparency-log"><name>T9: PII leakage into the transparency log</name>

<t>See also <xref target="privacy"/>.</t>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T9-1</c>
      <c>A transparency encoding <bcp14>MUST</bcp14> support omitting or hashing payer/payee identifiers and <bcp14>MUST</bcp14> support amount redaction or range/bucket encoding.</c>
      <c><bcp14>MUST</bcp14>-T9-2</c>
      <c>Implementations <bcp14>MUST NOT</bcp14> write raw government-ID, payment-instrument PAN, or street address fields into a public transparency statement.</c>
      <c><bcp14>SHOULD</bcp14>-T9-3</c>
      <c>Default public anchors <bcp14>SHOULD</bcp14> publish <spanx style="verb">policyHash</spanx>, <spanx style="verb">manifestHash</spanx>, <spanx style="verb">receiptHash</spanx>, and timestamp rather than full claim sets.</c>
      <c><bcp14>MAY</bcp14>-T9-4</c>
      <c>A private auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band.</c>
      <c><bcp14>MUST</bcp14>-T9-5</c>
      <c>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.</c>
</texttable>

</section>
<section anchor="t10-secret-spend-via-rail-bypass"><name>T10: Secret spend via rail bypass</name>

<t>See <xref target="reconciliation"/>.</t>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T10-1</c>
      <c>A verifier <bcp14>MUST</bcp14> match each extract settlement to a settled receipt on <spanx style="verb">ref</spanx> AND <spanx style="verb">amount</spanx> AND <spanx style="verb">currency</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-2</c>
      <c>A settlement with no matching receipt <bcp14>MUST</bcp14> be reported as a completeness failure identified by that settlement <spanx style="verb">ref</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-3</c>
      <c>A settled Spend Receipt whose <spanx style="verb">x402PaymentRef</spanx> is not on the extract <bcp14>MUST</bcp14> be reported as a completeness failure.</c>
      <c><bcp14>MUST</bcp14>-T10-4</c>
      <c>An audit that has any fail-severity completeness finding <bcp14>MUST</bcp14> fail (non-zero status in the companion tool).</c>
      <c><bcp14>SHOULD</bcp14>-T10-5</c>
      <c>Hosts <bcp14>SHOULD</bcp14> still apply T5 (no ungated rail in the model process). Completeness does not replace prevention.</c>
      <c><bcp14>MUST</bcp14>-T10-6</c>
      <c>A <spanx style="verb">ref</spanx> that appears more than once among settled receipts or among extract rows <bcp14>MUST</bcp14> be reported as <spanx style="verb">duplicate-ref</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-7</c>
      <c>A verifier <bcp14>MUST</bcp14> obtain the extract from the rail or from a rail signature. With no pinned rail key, an unverifiable extract <bcp14>MUST</bcp14> be reported as <spanx style="verb">unauthenticated-extract</spanx> and makes the completeness guarantee conditional. With a pinned key, see <bcp14>MUST</bcp14>-T10-8: the extract <bcp14>MUST</bcp14> fail closed rather than warn.</c>
      <c><bcp14>MUST</bcp14>-T10-8</c>
      <c>A verifier <bcp14>MUST</bcp14> obtain the rail public key out of band and <bcp14>MUST</bcp14> verify the extract signature against that key, not against a key the extract carries. Without such a key the guarantee is conditional.</c>
      <c><bcp14>MUST</bcp14>-T10-9</c>
      <c>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 <spanx style="verb">trust-key-unreadable</spanx>, not as a key mismatch.</c>
      <c><bcp14>MUST</bcp14>-T10-10</c>
      <c>Every settlement record whose <spanx style="verb">timestampMs</spanx> falls outside the extract's declared window <bcp14>MUST</bcp14> be reported as <spanx style="verb">extract-scope-mismatch</spanx>, identified by that record's <spanx style="verb">ref</spanx>. This check <bcp14>MUST</bcp14> run whether or not a key is pinned.</c>
      <c><bcp14>MUST</bcp14>-T10-11</c>
      <c>When the verifier states an expected account, rail, or window, an extract that does not cover it <bcp14>MUST</bcp14> fail closed as <spanx style="verb">extract-scope-mismatch</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-12</c>
      <c>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 <spanx style="verb">extract-settlement-mismatch</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T10-13</c>
      <c>A <spanx style="verb">ref</spanx> reported as <spanx style="verb">duplicate-ref</spanx> <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 <spanx style="verb">malformed-amount</spanx> without aborting the audit.</c>
      <c><bcp14>MUST</bcp14>-T10-14</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T10-15</c>
      <c>A verifier that has not stated the period under audit <bcp14>MUST</bcp14> emit <spanx style="verb">unstated-audit-window</spanx> and <bcp14>MUST</bcp14> treat the guarantee as conditional, because an unstated period leaves the extract free to define its own.</c>
      <c><bcp14>MUST</bcp14>-T10-16</c>
      <c>When an extract is supplied, only receipts whose <spanx style="verb">timestampMs</spanx> falls in its declared window are reconciled against it. A receipt outside that window <bcp14>MUST NOT</bcp14> be reported as a completeness failure against that extract.</c>
</texttable>

<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>

<texttable>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><bcp14>MUST</bcp14>-T11-1</c>
      <c>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.</c>
      <c><bcp14>MUST</bcp14>-T11-2</c>
      <c>Verifiers <bcp14>MUST</bcp14> reject a checkpoint whose signature fails, whose totals do not match settled receipts in the declared window, whose <spanx style="verb">receiptCount</spanx> is wrong, or whose <spanx style="verb">chainHeadHash</spanx> is not the last in-window receipt hash. Where the signed totals are null, <bcp14>MUST</bcp14>-T11-12 governs instead: there is no total to disagree with, the comparison is reported as skipped, and the count and chain-head checks still apply.</c>
      <c><bcp14>MUST</bcp14>-T11-3</c>
      <c>Two verified checkpoints for the same epoch with different hashes <bcp14>MUST</bcp14> be reported as equivocation. The checkpoints compared are those presented together with those carried by verified transparency receipts; the presented chain alone cannot satisfy this requirement, because <bcp14>MUST</bcp14>-T11-8 makes its epochs consecutive.</c>
      <c><bcp14>MUST</bcp14>-T11-4</c>
      <c>A broken checkpoint hash chain <bcp14>MUST</bcp14> fail verification.</c>
      <c><bcp14>SHOULD</bcp14>-T11-5</c>
      <c>Checkpoints <bcp14>SHOULD</bcp14> be registered with a Transparency Service when one is configured.</c>
      <c><bcp14>MAY</bcp14>-T11-6</c>
      <c>A test deployment <bcp14>MAY</bcp14> use an in-process append-only log as the witness.</c>
      <c><bcp14>MUST</bcp14>-T11-7</c>
      <c>Checkpoint windows <bcp14>MUST</bcp14> be half-open <spanx style="verb">[startMs, endMs)</spanx>. Every chained receipt <bcp14>MUST</bcp14> fall in exactly one window.</c>
      <c><bcp14>MUST</bcp14>-T11-8</c>
      <c>Presented checkpoint epochs <bcp14>MUST</bcp14> be consecutive and adjacent windows <bcp14>MUST</bcp14> meet at <spanx style="verb">endMs = next.startMs</spanx>.</c>
      <c><bcp14>MUST</bcp14>-T11-9</c>
      <c>Prefix-deletion and suppression claims that go beyond the presented chain are conditional on an external transparency witness. A report <bcp14>MUST NOT</bcp14> present a completeness guarantee as settling suppression when no witness was consulted.</c>
      <c><bcp14>MUST</bcp14>-T11-10</c>
      <c>Transparency receipts are an optional, separate input. A verifier given none <bcp14>MUST</bcp14> behave as it did without this input. A receipt <bcp14>MUST</bcp14> have its signature verified before it counts for anything. Where a receipt also carries the statement body, that body <bcp14>MUST NOT</bcp14> be relied on unless its statement hash equals the one the receipt binds and it verifies as a checkpoint; a discarded body does not discard its receipt.</c>
      <c><bcp14>MUST</bcp14>-T11-11</c>
      <c>A verified receipt binding a checkpoint absent from the presented chain <bcp14>MUST</bcp14> be reported as a withheld checkpoint, and <bcp14>MUST NOT</bcp14> be reported as a window coverage failure. A presented checkpoint with no verified receipt, where a witness was supplied, <bcp14>MUST</bcp14> be reported and makes the guarantee conditional.</c>
      <c><bcp14>MUST</bcp14>-T11-12</c>
      <c>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; <spanx style="verb">receiptCount</spanx> and <spanx style="verb">chainHeadHash</spanx> <bcp14>MUST</bcp14> still be checked.</c>
      <c><bcp14>MUST</bcp14>-T11-13</c>
      <c>A redaction asserted outside the signed payload <bcp14>MUST NOT</bcp14> be honoured, and structural claims <bcp14>MUST NOT</bcp14> be redacted. A checkpoint that fails verification <bcp14>MUST NOT</bcp14> be treated as redacted.</c>
      <c><bcp14>MUST</bcp14>-T11-14</c>
      <c>An epoch checkpoint <bcp14>MUST</bcp14> be registrable as a Signed Statement carrying the checkpoint COSE object with content type <spanx style="verb">application/cedulon-checkpoint+cbor</spanx>.</c>
</texttable>

<dl>
  <dt>Issuer self-attestation:</dt>
  <dd>
    <t>A Receipt Issuer that also produces the only copy of the extract
can omit settlements. Completeness holds only against an
extract the verifier obtained from the rail or from a rail
signature.</t>
  </dd>
  <dt>Key rotation and revocation:</dt>
  <dd>
    <t><spanx style="verb">kid</spanx> identifies the verification key. This -02 does not specify
a revocation list. Verifiers <bcp14>MUST</bcp14> pin the issuer keys they
accept and <bcp14>MUST</bcp14> stop accepting a <spanx style="verb">kid</spanx> after an authenticated
revocation signal.</t>
  </dd>
  <dt>Timestamp trust:</dt>
  <dd>
    <t><spanx style="verb">timestampMs</spanx> is issuer-asserted. Window assignment uses that
field. A lying issuer can slide a receipt between windows.
External timestamping of receipts is out of scope for -02; the
checkpoint witness added here covers checkpoints, not receipt
timestamps.</t>
  </dd>
  <dt>Collusion:</dt>
  <dd>
    <t>If the rail operator and the issuer collude, they can publish a
matching extract and receipt set that hides a real-world
settlement. Cedulon does not detect extract-external agreement.</t>
  </dd>
  <dt>Reversal, refund, and partial settlement:</dt>
  <dd>
    <t>State machines for reversal, refund, and partial settlement are
out of scope for this revision.</t>
  </dd>
</dl>

</section>
<section anchor="escrow-role"><name>Optional escrow role</name>

<t>Parties <bcp14>MAY</bcp14> name an escrow actor in a Trade Manifest as a
third-party role that holds funds under rules outside this protocol
(<spanx style="verb">MAY-T8-6</spanx>). Implementations of this specification <bcp14>MUST NOT</bcp14> take
custody or operate escrow (<spanx style="verb">MUST-T8-custody</spanx>).</t>

</section>
</section>
<section anchor="iana"><name>IANA Considerations</name>

<t>CWT claim labels need no assignment: this profile uses private-use
integer labels below -65536.</t>

<t>Media types do. This document defines five and makes their values a
normative check inside a protected COSE header (<spanx style="verb">MUST-T4-8</spanx>,
<spanx style="verb">MUST-T6-5</spanx>), so they cannot stay unregistered while that check stands.
If this work is taken up, the following should be registered in the
Standards Tree per <xref target="RFC6838"/>:</t>

<texttable>
      <ttcol align='left'>Media type</ttcol>
      <ttcol align='left'>Carries</ttcol>
      <c>application/cedulon-receipt+cbor</c>
      <c>Spend Receipt claim set</c>
      <c>application/cedulon-checkpoint+cbor</c>
      <c>Epoch checkpoint claim set</c>
      <c>application/cedulon-manifest+cbor</c>
      <c>Trade Manifest claim set</c>
      <c>application/cedulon-decision+cbor</c>
      <c>Decision Token claim set</c>
      <c>application/cedulon-countersign+cbor</c>
      <c>Payee countersignature</c>
</texttable>

<t>For each: encoding is binary CBOR <xref target="RFC8949"/>; security considerations
are those in <xref target="security"/>; the change controller would be the IETF; the
contact is the author of this document. Until registration, an
implementation outside a closed deployment should expect these names to
change, and readers should treat them as placeholders rather than as
stable identifiers.</t>

</section>
<section anchor="impl-status"><name>Implementation Status</name>

<t>This section is to be removed before publishing as an RFC.</t>

<t>RFC 7942 <xref target="RFC7942"/> note.</t>

<dl>
  <dt>Implementation:</dt>
  <dd>
    <t>A companion implementation with a runnable verification suite at
<eref target="https://github.com/dogrucanemek-alt/cedulon">https://github.com/dogrucanemek-alt/cedulon</eref>. The code is a profile
of this document, not a second specification. This -02 is not an
IETF working-group item.</t>
  </dd>
  <dt>Maturity:</dt>
  <dd>
    <t>Research code by a single implementer. Three readers have run the
code on their own machines against a pinned commit and reported
figures matching the author's: two from a clean clone of the whole
suite, one re-running the published reproduction. That is
byte-stability across environments, not an independent
implementation, and the distinction matters: the same code agreeing
with itself on three machines rules out a local accident and nothing
more. One reader reports an independent implementation of the Signed
Statement identity, kept deliberately separate from this codebase; no
independent implementation of the reconciliation algorithm is known
to the author.</t>
  </dd>
  <dt>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 this revision is implemented
and covered by a red-then-green case before appearing in this text.
The witness used in the suite is the in-process append-only log that
<spanx style="verb">MAY-T11-6</spanx> permits; the implementation has not been run against a
deployed Transparency Service, and it treats a receipt as a signature
over a statement, not as a proof of log membership. The escrow role,
reversal, refund, and partial settlement are not implemented.</t>
  </dd>
  <dt>Licensing:</dt>
  <dd>
    <t>Apache-2.0.</t>
  </dd>
  <dt>Contact:</dt>
  <dd>
    <t>The author of this document.</t>
  </dd>
  <dt>Experience:</dt>
  <dd>
    <t>Readers of -00 and -01 have reported defects in both, and each
revision has been driven by what they found rather than by a plan.
-01 fixed a bypass of the completeness claim and a gap about which
key an extract is checked against. The defect behind this revision
was reported against -01 by a reader who then had it independently
confirmed by a second: the object carrying the T11 guarantee was not
profiled for registration and was never read during verification.
Repairing it turned up one more, found while checking the repair
rather than reported: the first attempt asserted the totals
redaction in a field outside the signature, which let a checkpoint
with wrong signed totals be re-presented as redacted and silence the
mismatch. That is the defect <spanx style="verb">MUST-T11-13</spanx> now forbids, and it was
the same shape as the bypass -01 was written to fix.</t>
  </dd>
</dl>

<t>Note on distribution: the requirements in this document are implemented
in the repository at the commit named in the release notes. The
published <spanx style="verb">@cedulon</spanx> packages lag the repository: as of this revision
the requirements added here are in the repository but not yet in a
published package version, so a reader checking a claim against an
installed package should read the repository instead, or confirm the
package version carries the commit.</t>

<section anchor="changes"><name>Changes from -01</name>

<t>This revision has one subject: the checkpoint, which carries the T11
guarantee against suppression and rollback, was not wired into
anything that could discharge it.</t>

<t>A reader of -01 set out the gap and a second reader confirmed it
independently. Four things were wrong at once, and they were the same
thing seen from four sides. The SCITT anchoring section profiled the
Spend Receipt and not the checkpoint, so <spanx style="verb">SHOULD-T11-5</spanx> asked for
checkpoints to be registered without saying in what form
(<spanx style="verb">MUST-T11-14</spanx> now says). None of the steps of the verification
algorithm read a transparency receipt, so a deployment could follow
<spanx style="verb">SHOULD-T11-5</spanx> to the letter and still have a verifier that never
consulted the witness (steps 15 and 16 now do). <spanx style="verb">MUST-T11-3</spanx>,
equivocation, could not fire at all: the only checkpoints compared
were the presented ones, and <spanx style="verb">MUST-T11-8</spanx> requires those to be
consecutive, so no two of them can share an epoch. A second copy is
found in a witness, and nothing brought one in. And the checkpoint
binds a per-currency total for a window while the privacy section
counted only receipt fields, so a window total could be published, or
withheld, with no stated rule either way.</t>

<t>The repairs are <spanx style="verb">MUST-T11-10</spanx> through <spanx style="verb">MUST-T11-14</spanx>. The transparency
receipt is a new optional input; supplying none leaves the verifier
behaving exactly as in -01, which is deliberate, because the point of
the witness is to add a claim that could not be made before, not to
withdraw one that could.</t>

<t>Two decisions inside those repairs are worth stating on their own,
because a reader might reasonably have expected the other choice.</t>

<t><list style="symbols">
  <t>A recorded checkpoint the presented chain omits gets its own
identifier, <spanx style="verb">checkpoint-withheld</spanx>, rather than being folded into
<spanx style="verb">window-coverage</spanx> (<spanx style="verb">MUST-T11-11</spanx>). The reporter asked which way it
should go. Coverage says the record shown is incomplete; a withheld
checkpoint says the party under audit is holding a record it did
not show. An operator who sees one identifier for both cannot tell
an incomplete record from a concealed one, which is the distinction
the whole threat is about.</t>
  <t>A checkpoint with no receipt in a supplied witness is a warning
rather than a failure. A witness may be configured after
checkpoints have already been issued, and an operator's own gap in
anchoring is not evidence that anything was concealed. The
asymmetry is deliberate: what the witness holds and the chain does
not is a finding, what the chain holds and the witness does not is
a warning.</t>
</list></t>

<t>One change is not a repair of -01 but of the first attempt at this
revision, and it is recorded because the failure is instructive.
Signed totals were first made redactable through a field carried
alongside the checkpoint rather than inside the COSE payload. Anything
outside the signature is chosen by whoever presents the object, which
here is the party under audit, so a checkpoint whose signed totals
disagreed with its receipts could be re-presented as redacted and the
mismatch went unreported. Redaction is now inside the signature and a
redaction asserted anywhere else <bcp14>MUST</bcp14> be ignored (<spanx style="verb">MUST-T11-12</spanx>,
<spanx style="verb">MUST-T11-13</spanx>). This was the same shape as the bypass -01 was written
to close: a check that a party under audit could switch off.</t>

<t>Reversal, refund, partial settlement, and the escrow role remain out
of scope and are still expected later, with no date. -01 said the same
and this revision does not improve on it.</t>

<t>The reporters are named in the Acknowledgments.</t>

</section>
</section>
<section anchor="evolution"><name>Evolution and Future Work (Informative)</name>

<t>This section is a direction, not a commitment. The structures below
are reserved in name only. Normative wire formats, tests, and
threat-model <bcp14>MUST</bcp14> lines for them belong in later revisions (-03 or
later), written with the same discipline as this -02.</t>

<section anchor="re-attestation-profile"><name>Re-attestation profile</name>

<t>Algorithms retire. A Spend Receipt or checkpoint signed under
Ed25519 today may need a later verifier that no longer accepts
<spanx style="verb">-19</spanx>. A companion seed <xref target="REATTEST"/> sketches re-attestation:
register the original COSE bytes as a SCITT Signed Statement and
have a current algorithm countersign or receipt them. The
principle is that structures outlive ciphers. The first concrete
example is the profile's own move from generic EdDSA (<spanx style="verb">-8</spanx>) to
Ed25519 (<spanx style="verb">-19</spanx>) in <xref target="RFC9864"/>.</t>

</section>
<section anchor="streaming-reconciliation"><name>Streaming reconciliation</name>

<t>Epoch checkpoints in this document are batch windows. A later
revision may define a continuous, second-scale profile
<xref target="STREAMING"/> in which the same completeness relation is evaluated
as settlements arrive, without waiting for an epoch close. That
work does not change the matching rules in this document, and it
did not arrive in this revision either.</t>

</section>
<section anchor="generalization"><name>Generalization</name>

<t>Payment is the special case that this -02 implements. The same
completeness calculus (an authenticated extract of consumed units
reconciled to signed receipts) can apply to other consumable
resources such as compute, data, or energy. This document does
not specify those profiles.</t>

</section>
</section>
<section anchor="informative-notes-on-adjacent-protocols"><name>Informative Notes on Adjacent Protocols</name>

<t>x402 <xref target="X402"/> uses HTTP 402 <xref target="RFC9110"/> to negotiate stablecoin
payment. AP2 <xref target="AP2"/> uses signed mandates as verifiable credentials.
Cedulon does not replace either protocol. Profiles built on HTTP Message Signatures
<xref target="RFC9421"/> authenticate bots; they are not a spend receipt.
draft-bates-atp <xref target="BATES-ATP"/> is a lineage neighbor. It does not
define rail-extract completeness.</t>

<t>draft-vauban-x402-stark-receipts <xref target="VAUBAN"/> specifies complementary
x402 receipt-format variants that a Cedulon Spend Receipt <bcp14>MAY</bcp14> carry
as a rail proof; it does not define rail-extract completeness.
draft-schrock-ep-outcome-binding <xref target="SCHROCK"/> compares authorized
action bytes to independently observed effects; it does not define
rail-extract completeness.
draft-marques-asqav-compliance-receipts <xref target="MARQUES"/> profiles
access-control action receipts (the broader Acta family includes
<xref target="ACTA"/>); it does not define rail-extract completeness.
draft-hopley-x402-compliance-receipt <xref target="HOPLEY"/> records an
admission-time compliance decision; it does not define rail-extract
completeness.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</reference>
<reference anchor="RFC6838">
  <front>
    <title>Media Type Specifications and Registration Procedures</title>
    <author fullname="N. Freed" initials="N." surname="Freed"/>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="January" year="2013"/>
    <abstract>
      <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="13"/>
  <seriesInfo name="RFC" value="6838"/>
  <seriesInfo name="DOI" value="10.17487/RFC6838"/>
</reference>
<reference anchor="RFC8032">
  <front>
    <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8032"/>
  <seriesInfo name="DOI" value="10.17487/RFC8032"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8392">
  <front>
    <title>CBOR Web Token (CWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8392"/>
  <seriesInfo name="DOI" value="10.17487/RFC8392"/>
</reference>
<reference anchor="RFC8949">
  <front>
    <title>Concise Binary Object Representation (CBOR)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="December" year="2020"/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
      <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="94"/>
  <seriesInfo name="RFC" value="8949"/>
  <seriesInfo name="DOI" value="10.17487/RFC8949"/>
</reference>
<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>
<reference anchor="RFC9053">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
      <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9053"/>
  <seriesInfo name="DOI" value="10.17487/RFC9053"/>
</reference>
<reference anchor="RFC9864">
  <front>
    <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
    <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
    <author fullname="O. Steele" initials="O." surname="Steele"/>
    <date month="October" year="2025"/>
    <abstract>
      <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
      <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9864"/>
  <seriesInfo name="DOI" value="10.17487/RFC9864"/>
</reference>
<reference anchor="RFC9942">
  <front>
    <title>CBOR Object Signing and Encryption (COSE) Receipts</title>
    <author fullname="O. Steele" initials="O." surname="Steele"/>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
    <author fullname="C. Fournet" initials="C." surname="Fournet"/>
    <date month="June" year="2026"/>
    <abstract>
      <t>CBOR Object Signing and Encryption (COSE) Receipts prove properties of a Verifiable Data Structure (VDS) to a verifier. VDSs and associated Proof Types enable security properties, such as minimal disclosure, transparency, and non-equivocation. Transparency helps maintain trust over time and has been applied to certificates, end-to-end encrypted messaging systems, and supply chain security. This specification enables concise transparency-oriented systems by building on Concise Binary Object Representation (CBOR) and COSE. The extensibility of the approach is demonstrated by providing CBOR encodings for Merkle inclusion and consistency proofs.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9942"/>
  <seriesInfo name="DOI" value="10.17487/RFC9942"/>
</reference>
<reference anchor="RFC9943">
  <front>
    <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
    <author fullname="C. Fournet" initials="C." surname="Fournet"/>
    <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
    <author fullname="S. Lasker" initials="S." surname="Lasker"/>
    <date month="June" year="2026"/>
    <abstract>
      <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9943"/>
  <seriesInfo name="DOI" value="10.17487/RFC9943"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</reference>
<reference anchor="RFC9110">
  <front>
    <title>HTTP Semantics</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
      <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="97"/>
  <seriesInfo name="RFC" value="9110"/>
  <seriesInfo name="DOI" value="10.17487/RFC9110"/>
</reference>
<reference anchor="RFC9421">
  <front>
    <title>HTTP Message Signatures</title>
    <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="M. Sporny" initials="M." surname="Sporny"/>
    <date month="February" year="2024"/>
    <abstract>
      <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9421"/>
  <seriesInfo name="DOI" value="10.17487/RFC9421"/>
</reference>

<reference anchor="BATES-ATP" target="https://datatracker.ietf.org/doc/html/draft-bates-atp">
  <front>
    <title>Agent Transaction Protocol (ATP)</title>
    <author initials="D." surname="Bates" fullname="David Asher Bates">
      <organization></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></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></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></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></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></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></organization>
    </author>
    <date year="2026" month="May"/>
  </front>
</reference>
<reference anchor="REATTEST" target="https://github.com/dogrucanemek-alt/cedulon/blob/e681e24d1b29912d8c190259c2ea9f4f9538c29d/spec/draft-dogru-cedulon-reattestation-00.md">
  <front>
    <title>Cedulon Re-Attestation: Carrying Spend Evidence Across Algorithm Retirement</title>
    <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
      <organization></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></organization>
    </author>
    <date year="2026" month="August"/>
  </front>
</reference>


    </references>

</references>


<?line 1463?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>Vernon Wharff set out the defect this revision repairs: that the
object carrying the T11 guarantee was neither profiled for
registration nor read during verification, and that the equivocation
requirement could not fire against a presented chain. He also asked
the question that decided the shape of the repair, namely whether a
recorded checkpoint absent from the chain deserves its own identifier
or belongs under window coverage. Iman Schrock confirmed the finding
independently and drew its boundary, keeping it separate from the
extract-binding work already closed in -01.</t>

<t>Iman Schrock and Pablo Play ran the -00 implementation against the
pinned commit and reported the defects that produced -01. Iman Schrock
found the two extract-binding defects, proposed the repair -01 adopts,
later reran the posted -01 from a clean clone against its own pinned
commit, and is also the author of <xref target="SCHROCK"/>, cited here as adjacent
work. He is the reader whose independent implementation of the Signed
Statement identity is noted in <xref target="impl-status"/>, and he asked for it to
be kept separate from any cross-implementation claim about Cedulon;
that separation is his and is recorded here as he stated it. Pablo Play found that a repeated reference hid the unaccounted
amount, filed a written reproduction, and re-ran that reproduction
against the pinned commit to confirm the figures quoted from it.</t>

<t>Nicholas Templeman ran the suite from a clean clone on a different
operating system and reported his figures, and classified his own run
honestly as a repetition of the author's checks rather than an
independent implementation. Walter Hawkins did not run it; he read the
reported figures and pressed for the run to be stated precisely enough
to be repeatable, which is why the conditions and not only the totals
appear in <xref target="impl-status"/>.</t>

<t>None of them reviewed this text, and any error in it is the author's.</t>

<t>Field survey notes and the informative threat-model narrative in the
companion repository helped shape the requirement identifiers used
here. Those identifiers are defined in <xref target="security"/>.</t>

</section>
<section numbered="false" anchor="vectors"><name>Appendix A. Test Vectors</name>

<t>These vectors use RFC 8032 Ed25519 secret scalar #1 (fixture only;
never a production key). Hex is lowercase. They <bcp14>MUST</bcp14> match the
locked tests in the companion implementation.</t>

<t>Receipt COSE_Sign1:</t>

<t>Claims: payer=<spanx style="verb">payer-1</spanx>, payee=<spanx style="verb">payee-1</spanx>, amount=<spanx style="verb">1</spanx>,
currency=<spanx style="verb">USD</spanx>, policyHash=<spanx style="verb">aa</spanx>, manifestHash=null,
noManifest=true, x402PaymentRef=null, timestampMs=1700000000000,
nonce=<spanx style="verb">n100000000000000</spanx>, prevReceiptHash=null, outcome=<spanx style="verb">aborted</spanx>.</t>

<t>COSE_Sign1 hex (whitespace ignored; identical to the locked test):</t>

<figure><artwork><![CDATA[
845830a301320378206170706c69636174696f6e2f636564756c6f6e2d
726563656970742b63626f72044806e3fd8fda29bb60a0587cac3a0001
11706770617965722d313a000111716770617965652d313a0001117261
313a00011173635553443a000111746261613a00011175f63a00011176
f53a00011177f63a000111781b0000018bcfe568003a00011179706e31
30303030303030303030303030303a0001117af63a0001117b6761626f
727465645840685c01aa778a850b9d35250406f092b6f5cb03fb359593
0422533e28ac620ad439f5e7bd8ed1fa5ded90d4421a2de34f94d1d78d
38a65812cb5315ee7f1cf403
]]></artwork></figure>

<t>Manifest COSE_Sign1:</t>

<t>Body: description=<spanx style="verb">fixture-goods</spanx>, amount=<spanx style="verb">1</spanx>, currency=<spanx style="verb">USD</spanx>,
acceptanceCriteriaHash=<spanx style="verb">00</spanx>, cancelCondition=<spanx style="verb">none</spanx>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>

<t>COSE_Sign1 hex (whitespace ignored; identical to the locked test):</t>

<figure><artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a0584aa73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b6230303a0001123c646e6f6e653a0001123d1b00
00018bcfe568003a0001123ef65840898628b1524a44ca641b5058c7a4
7e71bd4ce1ca0782e03b511c23e0819c3771407d627216d0b104224ee8
2cacffbd21e66fe035ed5ce4ee85b7bcd9c560ad02
]]></artwork></figure>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA92963rbVpI2+h9XgZ38iO0hZZE6y5OZT7GVRNNx7LGUzvTT
zzwtkAQljCmADZCW2Y6/a/muZV/Zrnqrah0AUFbSe//ZmemEInFYh1p1rreG
w2GyKlaL/DT96mU+Wy+q8jQ9K9Oz9axYpT9lm7xO51Wdnt3k5Wq4qob4kL6s
7u7yepp/lWSTSZ1/OE315mRWTcvsjh43q7P5ajirbur1cCo/DnfHySxb0Y/j
3fHhcPd4OD5KpvTFTVVvTtOinFdJs57cFU1TVOVqs8z5y1m+zOlf5SoplvVp
uqrXzWq8u3tCD8vqPDtNm3ya3Ff1+5u6Wi9Pk/f5hv6anSZpOnTD4s8ZDx2f
6nyaF0v5vKwWxXSDj5cvL66ukmaVlbO/ZXRXjrflSXOX1au//X1drfLmNJ1n
iyZPloW8YFVN7b+FjJL/aqp6VefzRv7Y3LnPU164ctUk2Xp1W9V4Bv0vpXnS
o8930pc76SteM3wpK3l+l79PX2Zl8ENV35ymfz5/d/Zf6dX5n35+89Ob/7hI
f7p4fXF1/iq9vHj3p/OrC1w4rdblihf3al3TwuC7/C4rFqdpvoPN+V+6OTs0
tKSs6rtsVXzIeWDvvn85Ho1O9OPheG/fPh7vHevH4929sX0cHdkFx3sn7tuT
fXvCye7B2H/cs4/Hh3bbycn+2H+kC5gi4gEdBZeMRrv2cX884o/fnV2dXw7P
rt6eYqJG2EKzV3VWNtl0RaSVvq0r2rBqkT6hi59+hav9jvA/Q9mRVzvpd0Sg
jX5rW/Iq+1DM0rPmlo6H/z2k7QMZQVbf5KvT9Ha1Wjanz5/TFdmqzqbv83qn
yFfzHdrI53Rknt+u7hbP5chM+HnDbLWkJ/zX/u44nstH/oZP6Bs6Fekl02pW
z3BGL8pVXpf5avgzVix9m21Aa/3TAwnx09LviUZoYAWOSTiL3inc39/v8G0Y
Ol1x9nbct9r28nCp3463LDXG8kNV3Sxy4TTF1LGYeEwHw92T3mFly/Fwqa/C
0OiL580ynxbzYorJ8WB/eHfxww/xcK/qYkmvPedjkp5NcWCK8uYBmrjYSX+o
i5ubFk1c0An139uItxBCkZU3GOYyW+Z183yFUfwt51HsMDHQXW/PXl68+eki
Hu7l+u4uS2d5mtXF6vYup6XKBulNXtHHuqCPtAhL4j404SLNV8Gf2aJYZQ9M
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
rVEpjftvmXWqJpGRPbUEbbM+UcwSXqaMWB4d7TPxc+Y1cZ3VBg9rboul0HJd
8VvqVTGHaDqL2CcN4wZkv2Z9gxnkYgFqZ79JTeYDkQVtgB1tIveFitCbbAme
ElBsnpF2RSyEuCRzo3S6JgNmRitJ08U+rVjBUbnOTKpglwyxhx126DnGkjdk
OtzThJlx8BEHw5qJ3IQwoX2rZ0OZLBmXuZACPZB416dPcv+Qf/j8+SkNktVn
fmUmDotqntjGe+9Y+vqXy6v05zdXOPQ2dD7amBEzLpuCPD95cs23DK+Oh3rx
9dMdVkxzPrBs8yqZ8kpUJe2SU/F5P5R8eb6kVNywFDc1rUxIj5CfGhOX/CyQ
3axaEyEP4ShLJ1X1/n2eg44+fVJ/GR2rO1biaiJDWjcVK0QsJh2MFhpWfCak
NdCvM9YPGvHffdMk4o7Tt9CPGT0evsPPn3fSn/OCNQ2+HlyKtuYWEgbHFDqB
48pYimKyXsnzeTmYW90Xde7YJ8trE/KybnQKEmZRPOJ7frbISx44Cy76u6nm
K5JJOR9z8F7TyprbbIk5J6bO2TehnA8Ebpb2qx+sB0xZmcrLan1zKyMkfpgW
LXISqQ9FifQMOiLiLROlMsF3Jk9FLS1J5C2Icmk9AhbGZ2EjApefxYtO5ERr
fXM7oQWCnSRzh9UuI6j1DpJ8DQnaNdhly41OW+fiAkQbU3p7zaKNZHM9lJEx
/1k3TIpEMMSQWDF0psarsx8i2Q7tLjRJweV4I4STioJNIrY2q2YWKNP0AFYX
mWNDBYZxRo9knwnU/tBGSaFeqh0zS+3EjXaHIxy2r9OrvCZDsSIutpGzx3oz
h7+a9Cu++KuB/JdPNn9+d/6fv1y8O3/Fny9/PPvpJ/ch0Ssuf3zzy0+v/Cd/
58s3r1+f//xKbmZOEX2VfPX67C9fCU199ebt1cWbn89++oppeRXpKbyDooZj
84nKVBOfMV8pJvQH3fPdy7f/9/8Z7dPe/V8ahqKtkz84zkR/8OrJ25gv6p+s
7iXZcsmcmE/RYkE7uyxYeRywUsQmUCmnlVSqv/LK/Pdp+q+T6XK0/2/6BU84
+tLWLPoSa9b9pnOzLGLPVz2vcasZfd9a6Xi8Z3+J/rZ1D778139nok6Ho+N/
/7dEaGResbAHOyTykUPF8u+Ufmb7NzX79zQ5JXlpJrfjxY6snz0Tk/jZM5Nq
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
KUW2akyPCVvia/1Xb8mLsJO8bKGF8cJzXMx5WMI08MwMrtIIu4Wk05YnVu+H
n4e4OTi4/ICtZ/doB22KP7azv8SYDvsIsiJMjBmsmIcvuarGJqW9RhMY+qi/
JiVEfUygrd7ZygSXUoTnbOyQVA/7VKPZWgIE3KV1/kjpmRzvcFda4VMiVKLR
AxOKjqIbO+RcMQMakZr6oD/p6ssOT+ESdK087uznV+m1FFzpH1ZSdd3S9yRH
tYt/acKib7FwmqM+ZZGIkvukMZ/GJ7vZxmAssontJX2kci6b3lZLglHda51A
5H3uzoRbSgqX2DJcnklH9JuDpm1hBIPXZBwrR3+cgeHn4L1bNhF3DogntieD
PWnayb/GIIOB720RvHZ6bdR+Io+Svgx83z/wTFKNYOpwreCWbbB7g/xJvUM7
pPQNWm8Klnr+qNGeONbheriFzED4ABNFYGVO2gKN64Xk4ITe3lktwX0XWQsS
GFtHD1vhGIE7ehK3w5nCEAdhERSonjNy3IKFtqX8osvP1cl+T+QnO3rcXIAd
PYF24K7pFwaeHrYcGgsEmGGgS2fgZWRDTtVZD1rFyj14+Lefn4dkSe+UWYXw
IEqxOHv0vGM2x094FKfrZ3MB+T7ODRFNsfRLmDrfoyPaQKR4W5oIqNE54W6D
mOrM2h1A9lBUvjOd5J2tuizvLltIUcfQJM5j+UVs1ZkzBzaQq58yd6HoYT5O
1+wko11aihg21HvqsJrY25BvikKh10h/bk0qdHCio1FsSISxq3eGQ6H5YkGm
okSG5WdsLuyHPsnIs0FVJ0o+Q4+oz/niJYaeOLBqffh9tSdWmE3wJNL7aYRQ
EEKWvi1rWHKFLSWUa75seMHpgMraTQvmMVjlFvrERrzNxy8iQvHzG+KtX/Q6
9K6zds1spxSyPlRbsqIBx8CJqBMN3s4Z3MGJw6uwYq1U4xCme2WpxaTbql3i
tOgLZ/up98WtqmIOd111ejAtjOSYdycxU1P/PA2ipdYWX2qcYd+8LyCKumUn
HUtqm3dQ8oqyAK7SbtX3uBxfxhtn09T/1Ekj7lGX2iTRDC3N8rHqUisfXbe6
mzFuQhy3S6wFzVlbeYoSkY5y8AJHOaSvB+qwsQbFOYWrNZBkQYtwOu4yJjMO
SREYZN4CPGbrmk+cNwHabMEVn5wh+4zbT6LtqETCtwgxuQe3W45aVzfkBP8w
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
ND2fvbo8I7ZDBtZT1oBt3Z9gBZ9K7Jn7SB0f7huIyCWQQa05pY+KJEk7uL/F
lTURzqrJVJyAxZvqZCG22zWa4vh1UTKg6kANt2EzzVyfoDz59Onyinb19cXP
P9CmwkY3rAgNkgXO4zpfuOb2DjwwsZxu82PVNexJM//vs2IlinDt7EjhqOJD
TJC74atJRSXgAXgUBMTe2qthUj/hZG2wCry5G6IRy02W/wdApy2Kf+iiG5Ki
tV7lmC5biFnjwKctrGsuRCUdsNTYt54tpuvFmvhCOy3PedSJkzsYxHVJ4jUJ
SuVI0sQ4sM1T2OCCQ7Ay3Ax5AKsl3P4Z1auN1naLa2DNZh4JgUyg5mjCN5tO
jg9rdUHWYmq1MSALzQwIWkCw85U1+vTMShfeavpUkyTo1fnp03/Rf4iIkIv0
49XV21S+5gMwGu3SLzSFMr+pSPytcoUnnxKlJwoNswMAqk+f6N/2GF0PBaUC
7wiQAwI40p5ua4a7oIa7pXvt8MgxSVIwiwVALDDa17SHbEpdmh7SaBe4/fGI
+5IFG8p2jATSNi7KlMVwZDsJ2cLz1XDC4yYOuaSJfXdGzHN4dvWWjxpzQRYK
/MoyJ2t2UtXoIex6c+sp5lTEoSvqDwiONkne8SFbT7JyyNvA8fP6/dApbZ8+
/fnsl+/OfmaOLfkKeaMPQfSv3sjuOWAY7Hj6IasL7aICXccWt4UrzA0AOQyT
SIsdQBxwJO8FbMRW27sH5iHTaKakZU/fD/PlUDGKh1YkQGzq5Y/v3rz8E81D
vV+Nx/4kHmQVlCisrOJwEqnJqhzkc0Th+oaXfHF4d1nNuHrDrPl79mGIKwrg
3gWL/frs3X/+cn5Jo7STlAji71BzjVIdqbvnCVTPuoJT44zMDWn6uTGQNybC
s5dXZ58/P/1jq3pb0VcbIY7uoGnMP755+9P5X2jIVl6flUk2U6TroSDnuvuc
H+eLg0lapDocDlOpS/26rT8mn06lgjSfffvVnE5z/hWphn/O65JW6tfbrJ7P
I0e7hptiLq+epFNj23nyyECh5w8uVJhEocKy2h4gNN1dTeHQpxt1gGm7d31K
Tux52kl/VOQwuH7gmAOaI9BrUDGM5i2q1sN+cXkcvAADqL+LjQOIyJI+p1e7
0EZtfdGindMrcN8k7L2BJmwpta0SGs6cJWF1KYc4CHqI/Y5zHEc/sHSzOr/H
64BvSfyI01zypYZb2/ktrKJJ+rNxBmgP5lLRtDrxfyK7LBgRv+0tyY0qfcut
LYgEMDSO2beyIYLW78n2lKmAFJVPahUE4v/xcqibHGHd+yptT0Kfwiii1RJT
8BsqTSFnFSPNJmaB2ODp4pW8ry83y9fey27KXBKZi6pP2gdsFSU8BOx2wB2L
XGCycaWLUNtArYU5Hi2wj6zLRyY6ddOc1BuUa6O4MA3xs4yZh2ohKMTkq2SS
S3JUTC8MEoEksmG7MZ7EQZH7oKLtRaJQWXiAKrnMYHSV3CGyhbj1De1IcwkI
y7Y6U4+WFAV5oM1btckDCI7E8LeFA2XOkgxT5Sz9cyibD5wY/2sSEG0rz489
GD5c6/L8/r7GKmOlYPT/TJp/taCpXeVYLk5WyMK0o770vxImu9ZpJ+K/RMRx
Q5R5Fx8YXk59u0yG9oGkDOrp+Dem0XpdJtKqTmIZsoSrIqQdS0q0svPIO1sm
24lvJ/01W/AJ+jG7f0+rlZrpwClPxepFqnSMk++GbQuGNCMOJivpgerXpUY+
DZ6jZgHJDDgv2WWYWFyU6UA6Ejk39v3tRoPklpfmorDaydBlgXjY6daRQGKE
C5neQR7m97l6ejidzJzLNKK6llqKopXR/A0L6O/h2WzWJAA2ku/g614CSyDy
l5QkW+VrTabv7TJ3my+4dlCkVSvxIUKo5Ew3uDHZXAEfCeEr61z1jFk7qxvm
yhlS4IqP6Rndzbntf865doRzmT/Ip8/9isYVkq31GtSkc8by8e7eODWLvlEQ
QjLxaBe+HqVPFFQbG/UiUWDtEFf7fc69oX7MP/JSc6OnepqJzZtvQpBBXrVF
hSQreKW6oHUtGmanou+XLUCsp0nyErWMp4L++a10gBmOrhXJX77I8YUwm2+v
6XNi8dZvr3+5fMUXO1TMb6+z7NrDmeMrIE4kvn/Lt6t6TQQdowPKVWlQX/bt
6GjX/8MPID747XU52o3+4dfHXVf0UWoNfOtalHCyngehvaU1fkKHipZvyQaf
+oNfKPVMM9fbIljnp7Rk/5v+SY73D473drO93dHeeHfv6Hi8e0jDPdo9nB6e
HO7R53367/wwH8/pr4PD/aMD+oX/niVHY/qCvzyhG/bHE/o8PpwfjXf39493
D/O9+ex4PsvGJ5PJ4W62e3B8NM2mexnNdJSM6B2HR0f8rpPDg6PxeLY3kp/o
l5H/5fAg+mV8OEqCP/cO9w4ODvb29903+zSC0aG/4oBGbZ8Pk/mB++Mo+OF4
NMEGjI4n03l+cHi8u+t+o6nRTOituw/8n12cBQ+dHB7RSGg9aJloWLRyB8f7
u4fHB9PdUZYdHR1nxwe7k5PZ3sH4YJd+mO+e0ArOD6aT3b35ZO/g5OBkL9nd
H48P9vby8XE2PRzvZrP9vZP5QX40mR3ns9E8OyCJfLI72ycTPRvP8r39+cn+
bDQ7Op4le8fZ4cHxaDydHOyNDvL8aD6azvd392TXkwhk2x2i76rZ5jQEdv/2
Wg/6EPDv8elJW6cn8WDoLxULXU4SaFtg318ar/+WGzXknAeCdgbN2apzUNJs
OX4trg93Gv5fJ/1RQPqjR5P+4Yw2N6efD4l69x5D/Pu06UwcCVHHeO+YHnBI
5+b4iJ7K52g8I3qZ0//tH+0pDY33ToiSR+6vLGmR+3hvcjgOCHC8Nz3cp1HR
EA8P3Hczpu6kl7zHe/n8kMny+OT4cHw8GR2M97P9/Wl2uD+aHNCgp0fZfnKU
H40ms/1pPppmu7RK+e7e5GA0mtLdu8ejk+ne0dFof/dodjg+ohWc7U5GTLb7
eX6cjOnEz+eT2XiUHx7O6caDfHYwzfm3g8nRZDo7mR7Q8sx2x7Ij/w+CJyaW
gjIBAA==

-->

</rfc>

