<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.40 (Ruby 3.2.3) -->
<?rfc tocindent="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dogru-cedulon-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Cedulon">Cedulon: An Audit Layer for Agent-to-Agent Commerce</title>
    <seriesInfo name="Internet-Draft" value="draft-dogru-cedulon-00"/>
    <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="26"/>
    <area>sec</area>
    <keyword>Cedulon</keyword>
    <keyword>agent</keyword>
    <keyword>receipt</keyword>
    <keyword>policy</keyword>
    <keyword>SCITT</keyword>
    <abstract>
      <?line 118?>

<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 that proves
completeness against an authenticated rail extract. 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 133?>

<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 -00 does not claim IETF consensus.</t>
      <t>Agents can now pay. Open HTTP 402 protocols attach stablecoin settlement
to ordinary requests. Card networks and processors issue agent-scoped
tokens. Google's Agent Payments Protocol (AP2) binds user intent to
signed mandates.</t>
      <t>What is missing is an interoperable <strong>audit layer</strong>: a machine-checkable
answer to "was this spend allowed by policy, against which offer, and
what bytes were delivered?" Without that layer, a prompt-injected or
looping agent can drain a rail that has already accepted a valid
signature. A counterparty can ship the wrong artifact. A transparency
log, if used at all, is proprietary.</t>
      <t>Cedulon fills that gap. It does not clear funds, hold custody, or
operate a payment facilitator. An optional escrow actor is defined only
as a third-party role interface (<xref target="escrow-role"/>). Implementations of
this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow
(<tt>MUST-T8-custody</tt>).</t>
      <t>The completeness claim sits in a long bookkeeping line. Single-entry
records (clay tablets, journals) listed events in one place and could
not check themselves. Double-entry bookkeeping, set out by Pacioli in
1494 <xref target="PACIOLI"/>, posts each event to two books so that the books can
check each other. Cedulon is a later step: <strong>proven completeness</strong>, where an
external witness (the authenticated rail extract) is machine-checkable
against signed spend receipts. Grigg's triple-entry idea (signed
receipts as the third entry) is <xref target="GRIGG"/>. Cedulon's addition is the
completeness and reconciliation proof plus an open standard profile,
not a claim to be first.</t>
      <t>Neighbor drafts are complementary, not substitutes.
draft-bates-atp <xref target="BATES-ATTP"/> covers tamper-evident causal lineage as
a signed DAG. Cedulon is the completeness layer: a spend that never
produced a receipt is visible when an authenticated rail extract is
reconciled (<tt>MUST-T10-1</tt>).</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used:</t>
      <dl>
        <dt>Trade Manifest:</dt>
        <dd>
          <t>A signed statement produced <strong>before</strong> payment. It binds a description
of goods or service, price, currency, acceptance-criteria hash, cancel
condition, expiry, and an optional AP2 mandate reference.</t>
        </dd>
        <dt>Policy Decision Point (PDP):</dt>
        <dd>
          <t>The function that evaluates a structured spend request against stored
policy. The default is deny.</t>
        </dd>
        <dt>Spend Receipt:</dt>
        <dd>
          <t>A signed statement produced <strong>after</strong> a gated payment attempt. It
binds payer, payee, amount, currency, policy hash, <tt>manifestHash</tt> or
an explicit <tt>noManifest</tt> flag, rail payment reference, <tt>timestampMs</tt>,
nonce, <tt>prevReceiptHash</tt>, and <tt>outcome</tt>.</t>
        </dd>
        <dt>Receipt Issuer:</dt>
        <dd>
          <t>The party that signs Spend Receipts.</t>
        </dd>
        <dt>Anchor:</dt>
        <dd>
          <t>An optional SCITT Transparency Service <xref target="RFC9943"/> that registers a
signed statement and returns a COSE receipt <xref target="RFC9942"/>.</t>
        </dd>
        <dt>Dispute Evidence Bundle:</dt>
        <dd>
          <t>A package of the Trade Manifest, the Spend Receipt, and a delivery
hash. It is evidence for a later human or legal process. It is not an
arbitral award and not an escrow release.</t>
        </dd>
        <dt>Decision Token:</dt>
        <dd>
          <t>A portable, single-use PDP allow encoded as COSE_Sign1. The claim
set binds <tt>requestHash</tt>, <tt>policyHash</tt>, <tt>expiryMs</tt>, <tt>nonce</tt>, and
<tt>singleUseId</tt>. See <xref target="decision-token"/>.</t>
        </dd>
        <dt>Rail Extract:</dt>
        <dd>
          <t>An authenticated list of settlement records for one account, one
rail, and one time window. See <xref target="rail-extract"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>Cedulon has three control-plane objects and one optional log:</t>
      <artwork><![CDATA[
  Principal --policy--> PDP --allow/deny--> x402/AP2 rail
                              |
                              v
                      Receipt Issuer --> Spend Receipt
                              |
                              v
                      Anchor / SCITT (optional)
]]></artwork>
      <t>The payer agent never talks to the rail except through an adapter that
calls the PDP first (<tt>MUST-T5-1</tt>).</t>
      <section anchor="policy-decision-point">
        <name>Policy Decision Point</name>
        <t>The PDP evaluates structured fields only (<tt>MUST-T1-1</tt>): amount,
currency, payee, tool identifier, nonce, optional manifest hash, and
evaluation time. It applies limit, velocity, and scope checks
(<tt>MUST-T2-1</tt>, <tt>MUST-T2-2</tt>). If the PDP is unreachable, uninitialized,
or throws, the result is deny (<tt>MUST-T2-3</tt>). Denied attempts do not
increment success counters (<tt>MUST-T2-4</tt>).</t>
        <t>An allow produces a Decision Token whose <tt>requestHash</tt> covers six
fields: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>
(<tt>MUST-T3-4</tt>, <tt>MUST-T6-1</tt>). The token is a COSE_Sign1 object
(<tt>MUST-T6-4</tt>), is single-use (<tt>MUST-T6-2</tt>), and <bcp14>MAY</bcp14> be carried to
the adapter that performs settlement.</t>
      </section>
      <section anchor="receipt-issuer">
        <name>Receipt Issuer</name>
        <t>After the adapter attempts settlement (success or a recorded deny that
still needs an audit trail for an allowed-then-aborted path), the
Receipt Issuer signs a Spend Receipt over a canonical encoding
(<tt>MUST-T4-1</tt>). Verifiers reject bad signatures and byte mismatch
(<tt>MUST-T4-2</tt>).</t>
      </section>
      <section anchor="anchor-scitt">
        <name>Anchor / SCITT</name>
        <t>Parties <bcp14>MAY</bcp14> register the signed receipt (or a privacy-preserving hash
encoding) as a SCITT Signed Statement <xref target="RFC9943"/> and attach the COSE
receipt (<tt>MAY-T4-6</tt>). This document does not operate a Transparency
Service.</t>
      </section>
    </section>
    <section anchor="trade-manifest">
      <name>Trade Manifest</name>
      <t>A Trade Manifest is the commerce analogue of a promise: it is issued
<strong>before</strong> value moves. It is conceptually symmetric to a later Spend
Receipt (promise then proof), and it <bcp14>MAY</bcp14> carry an AP2 mandate hash so
that user intent and the Cedulon offer stay linked (<tt>SHOULD-T8-5</tt>).</t>
      <t>A Trade Manifest <bcp14>MUST</bcp14> bind all of the following (<tt>MUST-T8-1</tt>):</t>
      <ul spacing="normal">
        <li>
          <t>goods or service description</t>
        </li>
        <li>
          <t>price (integer minor units, encoded as a decimal string matching
<tt>0|[1-9][0-9]*</tt>)</t>
        </li>
        <li>
          <t>currency (ISO 4217 alphabetic or a documented token identifier)</t>
        </li>
        <li>
          <t>acceptance-criteria hash (SHA-256 <xref target="RFC6234"/> of the exact delivery
bytes or of a declared schema instance)</t>
        </li>
        <li>
          <t>cancel condition (opaque string agreed by the parties)</t>
        </li>
        <li>
          <t>expiry (POSIX milliseconds, <tt>expiresAtMs</tt>)</t>
        </li>
      </ul>
      <t>It <bcp14>MAY</bcp14> include <tt>ap2MandateHash</tt>. The corresponding CBOR label is
always present; a missing mandate is encoded as CBOR null.</t>
      <t>The manifest is COSE_Sign1 <xref target="RFC9052"/> over a deterministic CBOR claim
map (<xref target="cose-profile"/>). <tt>manifestHash</tt> is the SHA-256 of the signed
COSE bytes (<tt>MUST-T8-7</tt>). A spend bound to a manifest <bcp14>MUST</bcp14> be denied
if the requested amount or currency differs from the manifest
(<tt>MUST-T8-2</tt>) or if the manifest is expired (<tt>MUST-T3-3</tt>).</t>
      <t>A spend that is not bound to a verified manifest <bcp14>MUST</bcp14> be marked
<tt>noManifest</tt> on the receipt and <bcp14>MUST</bcp14> still pass limit, velocity, and
scope checks (<tt>MUST-T1-2</tt>). An implementation <bcp14>MAY</bcp14> refuse all
<tt>noManifest</tt> spend (<tt>MAY-T1-4</tt>).</t>
    </section>
    <section anchor="spend-receipt">
      <name>Spend Receipt</name>
      <t>The Spend Receipt claim set is carried in COSE_Sign1 <xref target="RFC9052"/>
wrapping a CWT-compatible map <xref target="RFC8392"/>. New receipts <bcp14>MUST</bcp14> use the
COSE profile (<xref target="cose-profile"/>).</t>
      <t>Claims (<tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, <tt>MUST-T4-7</tt>):</t>
      <table>
        <thead>
          <tr>
            <th align="left">Claim</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">payer</td>
            <td align="left">Payer agent identifier</td>
          </tr>
          <tr>
            <td align="left">payee</td>
            <td align="left">Payee identifier</td>
          </tr>
          <tr>
            <td align="left">amount</td>
            <td align="left">Minor units as a decimal string <tt>0|[1-9][0-9]*</tt></td>
          </tr>
          <tr>
            <td align="left">currency</td>
            <td align="left">Currency identifier</td>
          </tr>
          <tr>
            <td align="left">policyHash</td>
            <td align="left">SHA-256 of the canonical policy document (lowercase hex)</td>
          </tr>
          <tr>
            <td align="left">manifestHash</td>
            <td align="left">SHA-256 of the signed manifest COSE bytes, or null when <tt>noManifest</tt> is true</td>
          </tr>
          <tr>
            <td align="left">noManifest</td>
            <td align="left">Boolean; <bcp14>MUST</bcp14> be true if and only if <tt>manifestHash</tt> is null</td>
          </tr>
          <tr>
            <td align="left">x402PaymentRef</td>
            <td align="left">Rail payment reference, or null</td>
          </tr>
          <tr>
            <td align="left">timestampMs</td>
            <td align="left">POSIX milliseconds</td>
          </tr>
          <tr>
            <td align="left">nonce</td>
            <td align="left">Unique spend nonce; at least 128 bits of randomness; unique in the issuer scope</td>
          </tr>
          <tr>
            <td align="left">prevReceiptHash</td>
            <td align="left">Previous receipt hash, or null for the first receipt (<tt>SHOULD-T4-5</tt>)</td>
          </tr>
          <tr>
            <td align="left">outcome</td>
            <td align="left">
              <tt>settled</tt> or <tt>aborted</tt></td>
          </tr>
        </tbody>
      </table>
      <t>A receipt with <tt>outcome</tt> = <tt>settled</tt> <bcp14>MUST</bcp14> have a non-null
<tt>x402PaymentRef</tt> (<tt>MUST-T4-7</tt>). An aborted receipt <bcp14>MUST NOT</bcp14> be added
into checkpoint totals.</t>
      <t>All twelve labels in <xref target="receipt-labels"/> are always present. An empty
optional value is encoded as CBOR null, never by omitting the label.</t>
      <t><tt>receiptHash</tt> is the SHA-256 of the receipt's signed COSE bytes,
encoded as lowercase hex.</t>
      <t>Verifiers <bcp14>MUST</bcp14> reject a receipt if the signature fails or if the
decoded claim map does not match the presented claims (<tt>MUST-T4-2</tt>).</t>
      <section anchor="countersign">
        <name>Optional payee countersignature</name>
        <t>A payee <bcp14>MAY</bcp14> attach a countersignature over the issuer's signed
Spend Receipt (<tt>MAY-T8-9</tt>). The profile uses a <strong>detached</strong>
COSE_Sign1 <xref target="RFC9052"/> whose payload is a CBOR map with a single
private-use label:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70401</td>
              <td align="left">receiptCose</td>
              <td align="left">bstr (exact issuer COSE_Sign1 bytes)</td>
            </tr>
          </tbody>
        </table>
        <t>The countersignature uses the header profile in <xref target="cose-profile"/>
and content type <tt>application/cedulon-countersign+cbor</tt>.</t>
        <t>This is a second Sign1 object, not RFC 9052 Countersignature0
(unprotected-header label 11). Countersignature0 would write into
the issuer object and change <tt>receiptHash</tt> after issue, breaking
the receipt chain. A detached Sign1 keeps the issuer bytes
stable, reuses <tt>kid</tt> and content-type, and is absent by simply
omitting the sibling object.</t>
        <t>Absence of a countersignature <bcp14>MUST NOT</bcp14> invalidate the issuer
receipt (<tt>MAY-T8-9</tt>). If a countersignature is present, a
verifier <bcp14>MUST</bcp14> reject it when the signature fails, when <tt>kid</tt> or
content type does not match the configured payee key, or when
label -70401 is not the issuer COSE bytes (<tt>MUST-T8-8</tt>). A
Dispute Evidence Bundle that includes a verified countersignature
has stronger evidence that the payee accepted those bytes; the
bundle is still not an award (<tt>MUST-T8-4</tt>).</t>
      </section>
    </section>
    <section anchor="cose-profile">
      <name>COSE Profile</name>
      <t>This profile uses deterministic CBOR <xref target="RFC8949"/> Section 4.2.1
(definite lengths, shortest integer form, map keys sorted in
<strong>bytewise lexicographic</strong> order of their encoded keys).
Implementations <bcp14>MUST</bcp14> encode only the types used by Cedulon claim maps:
null, bool, unsigned and negative integers, UTF-8 text, byte strings,
arrays, and maps (<tt>MUST-T4-1</tt>).</t>
      <section anchor="receipt-labels">
        <name>Claim labels</name>
        <t>Registered CWT claims <xref target="RFC8392"/> are not required in -00. Cedulon
uses CWT private-use integer labels less than -65536 so that the
profile does not occupy the 100-110 registry range.</t>
        <t>Receipt labels (<tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, <tt>MUST-T4-7</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70001</td>
              <td align="left">payer</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70002</td>
              <td align="left">payee</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70003</td>
              <td align="left">amount</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70004</td>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70005</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (lowercase hex SHA-256)</td>
            </tr>
            <tr>
              <td align="left">-70006</td>
              <td align="left">manifestHash</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70007</td>
              <td align="left">noManifest</td>
              <td align="left">bool</td>
            </tr>
            <tr>
              <td align="left">-70008</td>
              <td align="left">x402PaymentRef</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70009</td>
              <td align="left">timestampMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70010</td>
              <td align="left">nonce</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70011</td>
              <td align="left">prevReceiptHash</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70012</td>
              <td align="left">outcome</td>
              <td align="left">tstr (<tt>settled</tt> / <tt>aborted</tt>)</td>
            </tr>
          </tbody>
        </table>
        <t>Checkpoint labels (<tt>MUST-T11-1</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70101</td>
              <td align="left">epoch</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70102</td>
              <td align="left">startMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70103</td>
              <td align="left">endMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70104</td>
              <td align="left">receiptCount</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70105</td>
              <td align="left">chainHeadHash</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70106</td>
              <td align="left">totals</td>
              <td align="left">map tstr -&gt; tstr</td>
            </tr>
            <tr>
              <td align="left">-70107</td>
              <td align="left">prevCheckpointHash</td>
              <td align="left">tstr / null</td>
            </tr>
          </tbody>
        </table>
        <t>Manifest labels (<tt>MUST-T8-1</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70201</td>
              <td align="left">description</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70202</td>
              <td align="left">amount</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70203</td>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70204</td>
              <td align="left">acceptanceCriteriaHash</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70205</td>
              <td align="left">cancelCondition</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70206</td>
              <td align="left">expiresAtMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70207</td>
              <td align="left">ap2MandateHash</td>
              <td align="left">tstr / null</td>
            </tr>
          </tbody>
        </table>
        <t>Decision Token labels (<tt>MUST-T6-4</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70301</td>
              <td align="left">requestHash</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70302</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (lowercase hex SHA-256)</td>
            </tr>
            <tr>
              <td align="left">-70303</td>
              <td align="left">expiryMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70304</td>
              <td align="left">nonce</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70305</td>
              <td align="left">singleUseId</td>
              <td align="left">tstr</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="cosesign1-headers">
        <name>COSE_Sign1 headers</name>
        <t>The protected header <bcp14>MUST</bcp14> be a deterministic CBOR map containing
(<tt>MUST-T4-1</tt>, <tt>MUST-T4-8</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>1</tt> (alg) = <tt>-19</tt> (Ed25519, <xref target="RFC9864"/>; the generic EdDSA value
<tt>-8</tt> from <xref target="RFC9053"/> is deprecated for this profile)</t>
          </li>
          <li>
            <t><tt>3</tt> (content type) = a tstr that distinguishes the payload:
<tt>application/cedulon-receipt+cbor</tt>,
<tt>application/cedulon-checkpoint+cbor</tt>,
<tt>application/cedulon-manifest+cbor</tt>,
<tt>application/cedulon-decision+cbor</tt>, or
<tt>application/cedulon-countersign+cbor</tt></t>
          </li>
          <li>
            <t><tt>4</tt> (kid) = bstr, mandatory. The profile computes <tt>kid</tt> as the
first eight bytes of SHA-256 over the issuer's SubjectPublicKeyInfo
DER. A verifier <bcp14>MUST</bcp14> obtain the public key from an authenticated
channel (preconfigured issuer set, directory, or transparency
statement) and <bcp14>MUST</bcp14> reject a message whose <tt>kid</tt> does not match
that key.</t>
          </li>
        </ul>
        <t>The unprotected header <bcp14>MUST</bcp14> be empty. The payload <bcp14>MUST</bcp14> be the CBOR
encoding of the claim map. The signature is Ed25519 <xref target="RFC8032"/> over
the COSE <tt>Sig_structure</tt>
          <tt>["Signature1", protected, h'', payload]</tt>.</t>
      </section>
    </section>
    <section anchor="decision-token">
      <name>Decision Token</name>
      <t>A Decision Token is the portable encoding of a PDP allow. It is
COSE_Sign1 with the header profile in <xref target="cose-profile"/> and the
labels in <xref target="receipt-labels"/>. All five labels are always present
(<tt>MUST-T6-4</tt>).</t>
      <t><tt>requestHash</tt> <bcp14>MUST</bcp14> be the six-field hash defined for the PDP
(<tt>MUST-T6-1</tt>). <tt>policyHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical
policy document the PDP evaluated. <tt>expiryMs</tt> is a Unix time in
milliseconds after which the token <bcp14>MUST</bcp14> be treated as expired
(<tt>SHOULD-T6-3</tt>). <tt>nonce</tt> is the request nonce. <tt>singleUseId</tt> is
the identifier consumed on the first settlement attempt
(<tt>MUST-T6-2</tt>).</t>
      <t>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject it if the
signature fails, if <tt>kid</tt> does not match a configured PDP key, if
the content type is not <tt>application/cedulon-decision+cbor</tt>, if
the decoded claim map does not match the presented claims, or if
<tt>expiryMs</tt> is in the past (<tt>MUST-T6-5</tt>).</t>
    </section>
    <section anchor="rail-extract">
      <name>Rail Extract Profile</name>
      <t>A verifier checks completeness against a <strong>rail extract</strong>, not against
the issuer's own receipts alone (<tt>MUST-T10-7</tt>).</t>
      <section anchor="record-schema">
        <name>Record schema</name>
        <t>Each settlement record <bcp14>MUST</bcp14> contain:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ref</td>
              <td align="left">tstr (rail payment reference)</td>
            </tr>
            <tr>
              <td align="left">amount</td>
              <td align="left">tstr matching <tt>0|[1-9][0-9]*</tt></td>
            </tr>
            <tr>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">timestampMs</td>
              <td align="left">uint</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>An extract is scoped to one account identifier, one rail identifier,
and one half-open time window <tt>[windowStartMs, windowEndMs)</tt>.</t>
      </section>
      <section anchor="authentication">
        <name>Authentication</name>
        <t>The mock rail in the companion implementation signs the extract with
Ed25519 over a canonical encoding of the scoped body. A production
verifier <bcp14>MUST</bcp14> obtain the extract from the rail or from a signature
the rail published (<tt>MUST-T10-7</tt>).</t>
        <t>If the extract is missing a verifiable signature, the verifier <bcp14>MUST</bcp14>
emit finding <tt>unauthenticated-extract</tt>. Completeness findings may
still be computed, but the completeness guarantee is <strong>conditional</strong>
on the extract being authentic. See <xref target="security"/>.</t>
      </section>
    </section>
    <section anchor="reconciliation">
      <name>Reconciliation and Epoch Checkpoints</name>
      <t>Completeness is the property that, given an authenticated rail
extract, every settlement in the extract has a matching settled Spend
Receipt, every settled receipt has a matching settlement, receipt and
checkpoint hash chains verify, and checkpoint totals equal the sum of
<strong>settled</strong> receipts in the checkpoint window. If a spend occurred
without a receipt, the missing receipt is itself the evidence
(<tt>MUST-T10-2</tt>).</t>
      <section anchor="checkpoint-claims">
        <name>Checkpoint claims</name>
        <t>An epoch checkpoint <bcp14>MUST</bcp14> be COSE_Sign1-signed with the header profile
in <xref target="cose-profile"/> and <bcp14>MUST</bcp14> bind all of the following
(<tt>MUST-T11-1</tt>):</t>
        <t>epoch, <tt>startMs</tt>, <tt>endMs</tt>, <tt>receiptCount</tt>, <tt>chainHeadHash</tt>,
<tt>totals</tt>, and <tt>prevCheckpointHash</tt>.</t>
        <t>The checkpoint window is half-open <tt>[startMs, endMs)</tt>
(<tt>MUST-T11-7</tt>). <tt>receiptCount</tt> <bcp14>MUST</bcp14> equal the number of receipts
(settled and aborted) whose <tt>timestampMs</tt> falls in that window.
<tt>chainHeadHash</tt> <bcp14>MUST</bcp14> equal <tt>receiptHash</tt> of the last receipt in that
window, or null if the window is empty (<tt>MUST-T11-2</tt>). <tt>totals</tt>
          <bcp14>MUST</bcp14> sum only receipts with <tt>outcome</tt> = <tt>settled</tt>.</t>
      </section>
      <section anchor="genesis">
        <name>Genesis and continuity</name>
        <t>The first checkpoint in a presented chain is the genesis checkpoint
of that chain. Its <tt>prevCheckpointHash</tt> <bcp14>MUST</bcp14> be null. Epoch numbers
<bcp14>MUST</bcp14> be consecutive integers. Adjacent windows <bcp14>MUST</bcp14> satisfy
<tt>next.startMs = prev.endMs</tt> (<tt>MUST-T11-8</tt>).</t>
        <t>A later checkpoint that omits a prefix of earlier epochs (prefix
deletion) is detectable only if an external witness (transparency
log) has recorded the missing prefix (<tt>MUST-T11-9</tt>). Without that
witness, T11 guarantees about suppression are <strong>conditional</strong>.</t>
      </section>
      <section anchor="verification-algorithm">
        <name>Verification algorithm</name>
        <t>A verifier <bcp14>MUST</bcp14> perform these steps in order (<tt>MUST-T10-1</tt>,
<tt>MUST-T11-2</tt>):</t>
        <ol spacing="normal" type="1"><li>
            <t>If the rail extract signature does not verify, emit
<tt>unauthenticated-extract</tt> and treat the guarantee as conditional
(<tt>MUST-T10-7</tt>).</t>
          </li>
          <li>
            <t>Decode each Spend Receipt COSE_Sign1. Reject if Ed25519 verify
fails, if <tt>kid</tt> does not match the configured issuer key, if the
content type is not the receipt type, or if the decoded claim map
does not match the presented claims (<tt>MUST-T4-2</tt>, <tt>MUST-T4-8</tt>).</t>
          </li>
          <li>
            <t>Walk receipts in issuer order. The first <tt>prevReceiptHash</tt> <bcp14>MUST</bcp14>
be null. Each later <tt>prevReceiptHash</tt> <bcp14>MUST</bcp14> equal <tt>receiptHash</tt> of
the previous receipt. A miss is <tt>receipt-chain-break</tt>.</t>
          </li>
          <li>
            <t>Index settled receipts and extract records by <tt>ref</tt>. A <tt>ref</tt>
that appears more than once on either side is <tt>duplicate-ref</tt>
(<tt>MUST-T10-6</tt>).</t>
          </li>
          <li>
            <t>For each unique <tt>ref</tt>, require a one-to-one match on <tt>ref</tt> AND
<tt>amount</tt> AND <tt>currency</tt> (<tt>MUST-T10-1</tt>). Amount or currency
mismatch is <tt>settlement-mismatch</tt>. A settlement with no receipt
is <tt>settlement-without-receipt</tt> (<tt>MUST-T10-2</tt>). A settled
receipt with no extract row is <tt>receipt-without-settlement</tt>
(<tt>MUST-T10-3</tt>). A settled receipt with a null rail ref is
<tt>settled-without-ref</tt>.</t>
          </li>
          <li>
            <t>Aborted receipts are not matched to extract rows and are not
added to totals.</t>
          </li>
          <li>
            <t>Decode each checkpoint. Reject a failed signature. Require
<tt>receiptCount</tt>, <tt>chainHeadHash</tt>, and <tt>totals</tt> to match the
receipts in <tt>[startMs, endMs)</tt> as defined above
(<tt>MUST-T11-2</tt>).</t>
          </li>
          <li>
            <t>Every chained receipt <bcp14>MUST</bcp14> fall in exactly one checkpoint
window. A gap or double count is <tt>window-coverage</tt>
(<tt>MUST-T11-7</tt>, <tt>MUST-T11-8</tt>).</t>
          </li>
          <li>
            <t>Walk checkpoints in epoch order. <tt>prevCheckpointHash</tt> <bcp14>MUST</bcp14>
equal the SHA-256 of the previous checkpoint COSE bytes, or null
for genesis (<tt>MUST-T11-4</tt>).</t>
          </li>
          <li>
            <t>If two successfully verified checkpoints share an epoch number
and have different hashes, emit <tt>equivocation</tt>
(<tt>MUST-T11-3</tt>).</t>
          </li>
          <li>
            <t>If any fail-severity finding exists, the audit <bcp14>MUST</bcp14> fail
(<tt>MUST-T10-4</tt>).</t>
          </li>
        </ol>
      </section>
      <section anchor="finding-codes">
        <name>Finding codes</name>
        <table>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Severity</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">settlement-without-receipt</td>
              <td align="left">fail</td>
              <td align="left">Extract row has no matching settled receipt</td>
            </tr>
            <tr>
              <td align="left">receipt-without-settlement</td>
              <td align="left">fail</td>
              <td align="left">Settled receipt ref is not on the extract</td>
            </tr>
            <tr>
              <td align="left">settlement-mismatch</td>
              <td align="left">fail</td>
              <td align="left">Same ref, different amount or currency</td>
            </tr>
            <tr>
              <td align="left">duplicate-ref</td>
              <td align="left">fail</td>
              <td align="left">Ref appears more than once on one side</td>
            </tr>
            <tr>
              <td align="left">settled-without-ref</td>
              <td align="left">fail</td>
              <td align="left">
                <tt>outcome</tt> is settled and <tt>x402PaymentRef</tt> is null</td>
            </tr>
            <tr>
              <td align="left">receipt-chain-break</td>
              <td align="left">fail</td>
              <td align="left">Signature or <tt>prevReceiptHash</tt> failed</td>
            </tr>
            <tr>
              <td align="left">checkpoint-total-mismatch</td>
              <td align="left">fail</td>
              <td align="left">Totals, count, signature, or checkpoint chain failed</td>
            </tr>
            <tr>
              <td align="left">checkpoint-head-mismatch</td>
              <td align="left">fail</td>
              <td align="left">
                <tt>chainHeadHash</tt> is not the last in-window receipt</td>
            </tr>
            <tr>
              <td align="left">equivocation</td>
              <td align="left">fail</td>
              <td align="left">Two distinct hashes for one epoch</td>
            </tr>
            <tr>
              <td align="left">window-coverage</td>
              <td align="left">fail</td>
              <td align="left">Gap, overlap, or non-adjacent / non-consecutive windows</td>
            </tr>
            <tr>
              <td align="left">unauthenticated-extract</td>
              <td align="left">warn</td>
              <td align="left">Extract has no verifiable signature; guarantee is conditional</td>
            </tr>
            <tr>
              <td align="left">countersign-bad</td>
              <td align="left">fail</td>
              <td align="left">Present payee countersignature failed verify</td>
            </tr>
          </tbody>
        </table>
        <t>Checkpoints <bcp14>SHOULD</bcp14> be registered with a Transparency Service
(<tt>SHOULD-T11-5</tt>). A test deployment <bcp14>MAY</bcp14> use an in-process
append-only log as the witness (<tt>MAY-T11-6</tt>). Cedulon still <bcp14>MUST
NOT</bcp14> take custody.</t>
      </section>
    </section>
    <section anchor="lifecycle">
      <name>Lifecycle</name>
      <ol spacing="normal" type="1"><li>
          <t><strong>Manifest.</strong> Parties sign a Trade Manifest (optional for metered
API spend; required for goods with acceptance criteria).</t>
        </li>
        <li>
          <t><strong>Policy check.</strong> The adapter submits a structured request to the
PDP. Default is deny. An allow is a Decision Token
(<tt>MUST-T6-4</tt>).</t>
        </li>
        <li>
          <t><strong>Payment.</strong> On allow, the adapter performs the x402 (or other
rail) exchange using exactly the decision fields (<tt>MUST-T6-1</tt>).
The Decision Token is consumed (<tt>MUST-T6-2</tt>). A reused nonce is
denied (<tt>MUST-T3-1</tt>, <tt>MUST-T3-2</tt>). A tampered or expired token
is denied (<tt>MUST-T6-5</tt>).</t>
        </li>
        <li>
          <t><strong>Receipt.</strong> The Receipt Issuer signs a Spend Receipt. Rail
credentials <bcp14>MUST NOT</bcp14> appear in the receipt, logs, or tool
results (<tt>MUST-T5-2</tt>, <tt>MUST-T7-1</tt>).</t>
        </li>
        <li>
          <t><strong>Dispute Evidence Bundle.</strong> If delivery bytes do not match the
acceptance-criteria hash, an implementation <bcp14>MUST</bcp14> be able to emit
a bundle of manifest + receipt + delivery hash (<tt>MUST-T8-3</tt>).
The bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow
release (<tt>MUST-T8-4</tt>).</t>
        </li>
      </ol>
    </section>
    <section anchor="policy-semantics">
      <name>Policy Semantics</name>
      <t>Policy is default deny. The engine understands three families of
rule:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Limit:</strong> maximum amount per payment; maximum cumulative amount
per window (<tt>MUST-T2-2</tt>).</t>
        </li>
        <li>
          <t><strong>Velocity:</strong> maximum number of allowed payments per window
(<tt>MUST-T2-1</tt>).</t>
        </li>
        <li>
          <t><strong>Scope:</strong> optional allow-lists for payee, currency, and tool
name.</t>
        </li>
      </ul>
      <t>Fail-closed: missing engine, crash, or exception yields deny
(<tt>MUST-T2-3</tt>). Implementations <bcp14>SHOULD</bcp14> emit stable reason codes
(<tt>SHOULD-T2-5</tt>). Decision tokens <bcp14>SHOULD</bcp14> expire after a short TTL
(<tt>SHOULD-T6-3</tt>).</t>
      <t>The agent-facing spend interface <bcp14>MUST</bcp14> invoke the PDP and <bcp14>MUST NOT</bcp14>
expose a parallel ungated rail call to the model (<tt>MUST-T5-1</tt>).</t>
    </section>
    <section anchor="scitt-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>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>A public transparency encoding <bcp14>MUST</bcp14> support omitting or hashing
payer and payee identifiers and <bcp14>MUST</bcp14> support amount redaction or
bucket encoding (<tt>MUST-T9-1</tt>). Implementations <bcp14>MUST NOT</bcp14> write
government-ID numbers, payment-instrument PAN, or street address
into a public statement (<tt>MUST-T9-2</tt>). Default public anchors
<bcp14>SHOULD</bcp14> publish <tt>policyHash</tt>, <tt>manifestHash</tt>, <tt>receiptHash</tt>, and
<tt>timestampMs</tt> rather than full claims (<tt>SHOULD-T9-3</tt>). A private
auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band
(<tt>MAY-T9-4</tt>).</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This section is authoritative for the protocol requirements in this
document. The companion repository file <tt>THREAT_MODEL.md</tt> is
informative and <bcp14>MUST NOT</bcp14> be read as overriding this section.</t>
      <dl>
        <dt>Prompt injection (T1):</dt>
        <dd>
          <t>The PDP <bcp14>MUST</bcp14> use structured fields only (<tt>MUST-T1-1</tt>). Unbound
spend <bcp14>MUST</bcp14> be <tt>noManifest</tt> and still gated (<tt>MUST-T1-2</tt>). Hosts
<bcp14>SHOULD</bcp14> confirm first-use payees (<tt>SHOULD-T1-3</tt>).</t>
        </dd>
        <dt>Runaway spend (T2):</dt>
        <dd>
          <t>Velocity and limits are mandatory (<tt>MUST-T2-1</tt>, <tt>MUST-T2-2</tt>).
Fail-closed deny on engine fault (<tt>MUST-T2-3</tt>). Denied attempts
<bcp14>MUST NOT</bcp14> count as success (<tt>MUST-T2-4</tt>).</t>
        </dd>
        <dt>Replay (T3):</dt>
        <dd>
          <t>Unique nonce on allow (<tt>MUST-T3-1</tt>); reuse denied
(<tt>MUST-T3-2</tt>); expired manifest denied (<tt>MUST-T3-3</tt>);
single-use hashed decision (<tt>MUST-T3-4</tt>). Nonce stores <bcp14>SHOULD</bcp14>
persist outside tests (<tt>SHOULD-T3-5</tt>).</t>
        </dd>
        <dt>Forgery (T4):</dt>
        <dd>
          <t>Signed canonical receipts (<tt>MUST-T4-1</tt>, <tt>MUST-T4-2</tt>) with the
claim set in <tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, and <tt>MUST-T4-7</tt>.
Protected-header <tt>kid</tt> is mandatory (<tt>MUST-T4-8</tt>). Hash chaining
is recommended (<tt>SHOULD-T4-5</tt>).</t>
        </dd>
        <dt>Bypass (T5):</dt>
        <dd>
          <t>Single gated interface (<tt>MUST-T5-1</tt>). No rail secrets in prompts
(<tt>MUST-T5-2</tt>). Hosts <bcp14>SHOULD</bcp14> isolate the PDP (<tt>SHOULD-T5-3</tt>).</t>
        </dd>
        <dt>TOCTOU (T6):</dt>
        <dd>
          <t>Settlement fields <bcp14>MUST</bcp14> match the six-field decision hash
(<tt>MUST-T6-1</tt>). The allow is a COSE_Sign1 Decision Token
(<tt>MUST-T6-4</tt>) consumed on first use (<tt>MUST-T6-2</tt>). A failed
signature or expired token <bcp14>MUST</bcp14> be rejected (<tt>MUST-T6-5</tt>).</t>
        </dd>
        <dt>Key leakage (T7):</dt>
        <dd>
          <t>Secret key material <bcp14>MUST NOT</bcp14> appear in artifacts (<tt>MUST-T7-1</tt>).
Examples <bcp14>MUST</bcp14> use mock keys (<tt>MUST-T7-2</tt>). Production <bcp14>SHOULD</bcp14> use
an HSM or OS key store (<tt>SHOULD-T7-3</tt>).</t>
        </dd>
        <dt>Counterparty (T8):</dt>
        <dd>
          <t>Manifest bind (<tt>MUST-T8-1</tt>, <tt>MUST-T8-2</tt>). Evidence bundle
(<tt>MUST-T8-3</tt>) is not an award (<tt>MUST-T8-4</tt>).
<tt>manifestHash</tt> is the SHA-256 of the signed COSE bytes
(<tt>MUST-T8-7</tt>). A present payee countersignature <bcp14>MUST</bcp14> verify
(<tt>MUST-T8-8</tt>); absence is allowed (<tt>MAY-T8-9</tt>).</t>
        </dd>
        <dt>Privacy (T9):</dt>
        <dd>
          <t>See <xref target="privacy"/>.</t>
        </dd>
        <dt>Rail bypass completeness (T10):</dt>
        <dd>
          <t>Verifiers <bcp14>MUST</bcp14> reconcile an authenticated extract to receipts
with one-to-one <tt>ref</tt>+amount+currency matching
(<tt>MUST-T10-1</tt>, <tt>MUST-T10-6</tt>, <tt>MUST-T10-7</tt>) and <bcp14>MUST</bcp14> fail the
audit when any fail-severity finding exists (<tt>MUST-T10-4</tt>).
See <xref target="reconciliation"/>.</t>
        </dd>
        <dt>Checkpoint suppression (T11):</dt>
        <dd>
          <t>Checkpoints <bcp14>MUST</bcp14> be signed and chained (<tt>MUST-T11-1</tt>,
<tt>MUST-T11-4</tt>). Totals, count, and <tt>chainHeadHash</tt> <bcp14>MUST</bcp14> match
the half-open window (<tt>MUST-T11-2</tt>, <tt>MUST-T11-7</tt>).
Equivocation <bcp14>MUST</bcp14> be reported (<tt>MUST-T11-3</tt>). Continuity and
prefix-deletion detection that go beyond the presented chain are
<strong>conditional</strong> on an external transparency witness
(<tt>MUST-T11-9</tt>).</t>
        </dd>
        <dt>Issuer self-attestation:</dt>
        <dd>
          <t>A Receipt Issuer that also produces the only copy of the extract
can omit settlements. Completeness holds only against an
extract the verifier obtained from the rail or from a rail
signature.</t>
        </dd>
        <dt>Key rotation and revocation:</dt>
        <dd>
          <t><tt>kid</tt> identifies the verification key. This -00 does not specify
a revocation list. Verifiers <bcp14>MUST</bcp14> pin the issuer keys they
accept and <bcp14>MUST</bcp14> stop accepting a <tt>kid</tt> after an authenticated
revocation signal.</t>
        </dd>
        <dt>Timestamp trust:</dt>
        <dd>
          <t><tt>timestampMs</tt> is issuer-asserted. Window assignment uses that
field. A lying issuer can slide a receipt between windows.
External timestamping or a transparency log is out of scope for
-00.</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 -00 and are expected in -01.</t>
        </dd>
      </dl>
      <section anchor="escrow-role">
        <name>Optional escrow role</name>
        <t>Parties <bcp14>MAY</bcp14> name an escrow actor in a Trade Manifest as a
third-party role that holds funds under rules outside this protocol
(<tt>MAY-T8-6</tt>). Implementations of this specification <bcp14>MUST NOT</bcp14> take
custody or operate escrow (<tt>MUST-T8-custody</tt>).</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. Private-use CWT labels below
-65536 are used so that a registry assignment is not required for
-00.</t>
    </section>
    <section anchor="impl-status">
      <name>Implementation Status</name>
      <t>RFC 7942 <xref target="RFC7942"/> note: a companion implementation with a
runnable verification suite is published 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 -00 is
not an IETF working-group item.</t>
    </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 (-01 or
-02), written with the same discipline as this -00.</t>
      <section anchor="re-attestation-profile">
        <name>Re-attestation profile</name>
        <t>Algorithms retire. A Spend Receipt or checkpoint signed under
Ed25519 today may need a later verifier that no longer accepts
<tt>-19</tt>. A companion seed <xref target="REATTEST"/> sketches re-attestation:
register the original COSE bytes as a SCITT Signed Statement and
have a current algorithm countersign or receipt them. The
principle is that structures outlive ciphers. The first concrete
example is the profile's own move from generic EdDSA (<tt>-8</tt>) to
Ed25519 (<tt>-19</tt>) in <xref target="RFC9864"/>.</t>
      </section>
      <section anchor="streaming-reconciliation">
        <name>Streaming reconciliation</name>
        <t>Epoch checkpoints in this document are batch windows. A later
revision (-02) 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 -00 matching rules.</t>
      </section>
      <section anchor="generalization">
        <name>Generalization</name>
        <t>Payment is the special case that this -00 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 uses HTTP 402 <xref target="RFC9110"/> to negotiate stablecoin payment. 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-ATTP"/> is a lineage neighbor. It does not
define rail-extract completeness.</t>
      <t>draft-vauban-x402-stark-receipts <xref target="VAUBAN"/> specifies complementary
x402 receipt-format variants that a Cedulon Spend Receipt <bcp14>MAY</bcp14> carry
as a rail proof; it does not define rail-extract completeness.
draft-schrock-ep-outcome-binding <xref target="SCHROCK"/> compares authorized
action bytes to independently observed effects; it does not define
rail-extract completeness.
draft-marques-asqav-compliance-receipts <xref target="MARQUES"/> profiles
access-control action receipts (the broader Acta family includes
<xref target="ACTA"/>); it does not define rail-extract completeness.
draft-hopley-x402-compliance-receipt <xref target="HOPLEY"/> records an
admission-time compliance decision; it does not define rail-extract
completeness.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
        <reference anchor="RFC9942">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Receipts</title>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>CBOR Object Signing and Encryption (COSE) Receipts prove properties of a Verifiable Data Structure (VDS) to a verifier. VDSs and associated Proof Types enable security properties, such as minimal disclosure, transparency, and non-equivocation. Transparency helps maintain trust over time and has been applied to certificates, end-to-end encrypted messaging systems, and supply chain security. This specification enables concise transparency-oriented systems by building on Concise Binary Object Representation (CBOR) and COSE. The extensibility of the approach is demonstrated by providing CBOR encodings for Merkle inclusion and consistency proofs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9942"/>
          <seriesInfo name="DOI" value="10.17487/RFC9942"/>
        </reference>
        <reference anchor="RFC9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="BATES-ATTP" target="https://datatracker.ietf.org/doc/draft-bates-atp/00/">
          <front>
            <title>Agent Transaction Protocol (ATP)</title>
            <author initials="D." surname="Bates" fullname="David Asher Bates">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="GRIGG" target="https://iang.org/papers/triple_entry.html">
          <front>
            <title>Triple Entry Accounting</title>
            <author initials="I." surname="Grigg" fullname="Ian Grigg">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
        </reference>
        <reference anchor="PACIOLI">
          <front>
            <title>Summa de arithmetica, geometria, proportioni et proportionalita</title>
            <author initials="L." surname="Pacioli" fullname="Luca Pacioli">
              <organization/>
            </author>
            <date year="1494"/>
          </front>
        </reference>
        <reference anchor="VAUBAN" target="https://datatracker.ietf.org/doc/draft-vauban-x402-stark-receipts/">
          <front>
            <title>x402 STARK Receipt Format Extension</title>
            <author>
              <organization>Vauban Research</organization>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="SCHROCK" target="https://datatracker.ietf.org/doc/draft-schrock-ep-outcome-binding/">
          <front>
            <title>Outcome Binding for Authorized Actions and Independently Observed Effects</title>
            <author initials="I." surname="Schrock" fullname="Iman Schrock">
              <organization/>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="MARQUES" target="https://datatracker.ietf.org/doc/draft-marques-asqav-compliance-receipts/">
          <front>
            <title>Compliance Profile of Signed Action Receipts for AI Agents</title>
            <author initials="J. A." surname="Gomes Marques" fullname="Joao Andre Gomes Marques">
              <organization/>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="ACTA" target="https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/">
          <front>
            <title>Signed Decision Receipts for Machine-to-Machine Access Control</title>
            <author initials="T." surname="Farley" fullname="Tom Farley">
              <organization/>
            </author>
            <date year="2026" month="June"/>
          </front>
        </reference>
        <reference anchor="HOPLEY" target="https://datatracker.ietf.org/doc/draft-hopley-x402-compliance-receipt/">
          <front>
            <title>Categorical Compliance Screening Receipt Format for Agentic-Payment Flows</title>
            <author initials="C." surname="Hopley" fullname="Christopher Hopley">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="REATTEST" target="https://github.com/dogrucanemek-alt/cedulon/blob/master/spec/draft-dogru-cedulon-reattestation-00.md">
          <front>
            <title>Cedulon Re-Attestation: Carrying Spend Evidence Across Algorithm Retirement</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="STREAMING" target="https://github.com/dogrucanemek-alt/cedulon/blob/master/spec/draft-dogru-cedulon-streaming-00.md">
          <front>
            <title>Cedulon Streaming Reconciliation: Continuous Completeness for Agent Spend</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 865?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Field survey notes and the informative threat-model table in the
companion repository helped shape the <bcp14>MUST</bcp14> identifiers used here.</t>
    </section>
    <section numbered="false" anchor="vectors">
      <name>Appendix A. Test Vectors</name>
      <t>These vectors use RFC 8032 Ed25519 secret scalar #1 (fixture only;
never a production key). Hex is lowercase. They <bcp14>MUST</bcp14> match the
locked tests in the companion implementation.</t>
      <t>Receipt COSE_Sign1:</t>
      <t>Claims: payer=<tt>payer-1</tt>, payee=<tt>payee-1</tt>, amount=<tt>1</tt>,
currency=<tt>USD</tt>, policyHash=<tt>aa</tt>, manifestHash=null,
noManifest=true, x402PaymentRef=null, timestampMs=1700000000000,
nonce=<tt>n100000000000000</tt>, prevReceiptHash=null, outcome=<tt>aborted</tt>.</t>
      <t>COSE_Sign1 hex (whitespace ignored; identical to the locked test):</t>
      <artwork><![CDATA[
845830a301320378206170706c69636174696f6e2f636564756c6f6e2d
726563656970742b63626f72044806e3fd8fda29bb60a0587cac3a0001
11706770617965722d313a000111716770617965652d313a0001117261
313a00011173635553443a000111746261613a00011175f63a00011176
f53a00011177f63a000111781b0000018bcfe568003a00011179706e31
30303030303030303030303030303a0001117af63a0001117b6761626f
727465645840685c01aa778a850b9d35250406f092b6f5cb03fb359593
0422533e28ac620ad439f5e7bd8ed1fa5ded90d4421a2de34f94d1d78d
38a65812cb5315ee7f1cf403
]]></artwork>
      <t>Manifest COSE_Sign1:</t>
      <t>Body: description=<tt>fixture-goods</tt>, amount=<tt>1</tt>, currency=<tt>USD</tt>,
acceptanceCriteriaHash=<tt>00</tt>, cancelCondition=<tt>none</tt>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>
      <t>COSE_Sign1 hex (whitespace ignored; identical to the locked test):</t>
      <artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a0584aa73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b6230303a0001123c646e6f6e653a0001123d1b00
00018bcfe568003a0001123ef65840898628b1524a44ca641b5058c7a4
7e71bd4ce1ca0782e03b511c23e0819c3771407d627216d0b104224ee8
2cacffbd21e66fe035ed5ce4ee85b7bcd9c560ad02
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V963bbyLXmfzxFjf0jkkLKvOviOBm1LLeVti0dS05OVq+s
sAgUJcQkwACgZMX2PMs8yzzZ7G/vqkIBpOzuPmd+jHu1TRJAoWrXvt+q2+1G
VVotzLF6cmqS9SLPjtVJpk7WSVqpN/rBFGqeF+rkxmRVt8q7/EGd5sulKWLz
JNKzWWHujpV9OEryONNLGi4p9LzqJvlNse7GcrHb60WJrujioDeYdHuH3cEk
iumHm7x4OFZpNs+jcj1bpmWZ5ln1sDL4MTErQ39lVZSuimNVFeuyGvR6R71B
pAujj1Vp4ug+Lz7eFPl6dRx9NA/0LTmOlOr6aeGzxtT5U2Fik67k8ypfpPED
f7w6Pb++jspKZ8k/ND1l+G0mKpe6qP7xr3VemfJYzfWiNNEqlRdUeez+TWWW
+FbmRVWYeSlfHpb+cwzAZVUZ6XV1mxc8Bv2vaJ009Nm+Ot1XLwEz/lEgebY0
H9WpzoILeXFzrP5y9v7kP9X12U/vLt5c/PlcvTl/e3599lJdnb//6ez6nG+M
83VWAbjX64IAw7+ZpU4Xx8rs8+b8T7s5+zS1KMuLpa7SO4OJvX91Ouj3j+zH
yWA4sh8Pe8OB+9g/8L8Oj/yvRyP32FFvPKg/Dt3Hw4l77OhoNKg/0g1Ag+Ys
DoJb+v2e+zga9PHxh5Prs6vuyfX15TEvz6GzYOp1obNSxxUhlLosctqmfKF2
Tq4vd5/w3fU+4E9X9uHlvvqB0LK0v7qNeKnv0kSdlLdEFPX1EKPHMgNd3Jjq
WN1W1ao8fvaM7tBVoeOPpthPTTXfp+17RoTyTGhkhqG6ulo96/We0QA/vj//
8cfmWq6LdLUw6gx7qU5i3tU0u/nGEs731Y9FenPTWsI5oVH9u5v6I/NOdXbD
c13plSnKZxXP4h8Gs9i/rZYLeury5PT84s15c7pX6+VSq8QoXaTV7dJUaaw7
6sbk9LFI6eOqyFdEIrQpqTJV8FUv0kp/Y1lv9tWljlOi2dbC3qxj3bgka+uP
jkb09S8nH344edec5KdRb6Curk/e/6TeCz9Qrxjx1NmnymRgQdsnIsSn1zOC
5XtTGl3Et/89mHDHg3Yxsy6xoeJj13KqEnhxdfr6/cXpT81VXKwrIlyjfiDu
QxghzJonnP7bELIy5peKWJo6r1np4kFdzEpT3NEtZ/O5iavy27h0Fd8Wefyx
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
4El6A9mR/wtJuxVIxYoAAA==

-->

</rfc>
