<?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.2.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc tocompact="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc ipr="trust200902" docName="draft-vauban-x402-starknet-anchor-01" category="info" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="x402-starknet-anchor">x402 V2 Starknet On-Chain Anchor</title>

    <author fullname="Vauban Research">
      <organization>Vauban Research</organization>
      <address>
        <email>research@vauban.tech</email>
        <uri>https://pay.vauban.tech</uri>
      </address>
    </author>

    <date year="2026" month="May" day="25"/>

    <area>Applications</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>x402</keyword> <keyword>HTTP</keyword> <keyword>payment</keyword> <keyword>on-chain</keyword> <keyword>anchor</keyword> <keyword>Starknet</keyword> <keyword>STARK</keyword> <keyword>settlement</keyword> <keyword>finality</keyword> <keyword>post-quantum</keyword> <keyword>block-explorer</keyword> <keyword>Voyager</keyword>

    <abstract>


<?line 69?>

<t>The x402 receipt-format extension defined in <xref target="STARK-RECEIPTS"/> and the lifecycle
finite state machine defined in <xref target="LIFECYCLE-FSM"/> specify cryptographic evidence for
x402 V2 payment events as off-chain verifiable artefacts. Neither document specifies
how a settlement receipt is promoted to on-chain finality, nor how an independent
auditor verifies that promotion without contacting the originating facilitator.</t>

<t>This document defines the Starknet on-chain anchor format for x402 V2 payment
settlements. The anchor consists of a Starknet event emitted by a conforming Cairo
contract, identified by a canonical tuple of chain identifier, transaction hash, event
index, and optional block number. A reference implementation, <spanx style="verb">PaymentDemoEmitter</spanx>,
is deployed on Starknet Sepolia at
<spanx style="verb">0x044dd87a94a801cf775d4c5e4b6703102d4e97e1cd1d0a8879341219ae4f19ff</spanx> and is
inspectable via the Voyager block explorer. The document also specifies an RPC endpoint
convention, grounded in the Starknet JSON-RPC specification, that any compliant node
implementation satisfies; the Vauban Pay reference endpoints are cited as one such
implementation. This anchor specification is one instantiation of a chain-agnostic
anchoring pattern; the protocol contract is designed to accommodate future per-chain
adapter specifications that satisfy the same structural requirements.</t>



    </abstract>



  </front>

  <middle>


<?line 90?>

<section anchor="introduction"><name>Introduction</name>

<t>The x402 protocol (<xref target="X402-V2"/>) defines HTTP-native payment flows using three
messages: <spanx style="verb">PAYMENT-REQUIRED</spanx> (402 response), <spanx style="verb">PAYMENT-SIGNATURE</spanx> (client request),
and <spanx style="verb">PAYMENT-RESPONSE</spanx> (facilitator confirmation). The <spanx style="verb">PAYMENT-RESPONSE</spanx> currently
carries a facilitator-issued receipt of settlement, including in the
<spanx style="verb">stark-vauban-pay-v1</spanx> variant a Stwo Circle STARK proof of payment conditions as
defined in <xref target="STARK-RECEIPTS"/>. These artefacts are verifiable off-chain against the
facilitator's public parameters. However, they do not provide on-chain finality: an
auditor checking a retained receipt at a future date cannot verify, without the
facilitator's cooperation, that the settlement was submitted to a public ledger and
achieved canonical confirmation at a specific block height. Off-VM evidence alone does
not close this gap for regulatory frameworks such as MiCA Art. 76 (settlement
record-keeping), which contemplate settlement records that can be validated against an
external source of truth.</t>

<t>The Starknet blockchain provides such a source of truth. Starknet's STARK-based proof
system (<xref target="STARKNET-DOCS"/>) produces validity proofs over all state transitions,
including event emission. An event emitted by a Cairo contract at block N is covered
by the STARK proof for that block's state update. An auditor with access to a Starknet
full node can verify the event's inclusion in the canonical chain state without
contacting the facilitator. This property, unavailable to off-chain receipts alone,
constitutes the finality guarantee that closes the off-VM gap.</t>

<t>This document specifies the on-chain anchor format for x402 V2 settlements on Starknet.
It defines the canonical anchor tuple, the Cairo event layout a conforming emitter MUST
produce, an RPC endpoint convention grounded in the Starknet JSON-RPC specification,
the block explorer canonical reference (Voyager), and the compatibility rules with
<xref target="STARK-RECEIPTS"/> and <xref target="LIFECYCLE-FSM"/>. The specification is written as one
instantiation of a chain-agnostic anchoring pattern. The structural requirements
(anchor tuple, event layout, per-chain adapter registration) are expressed in terms
general enough to accommodate future anchor specifications for other ledger systems.
This document MUST NOT be read as asserting that Starknet is the only valid anchor
chain; it is the first reference implementation.</t>

<t>This document is an Independent Submission. It is not the product of an IETF Working
Group. It is published for community review and to establish a stable reference for
implementors.</t>

</section>
<section anchor="conventions"><name>Requirements Language</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>

</section>
<section anchor="terminology"><name>Terminology</name>

<dl>
  <dt>Anchor:</dt>
  <dd>
    <t>An on-chain record that commits a payment settlement to a public ledger. An anchor
is identified by a canonical anchor tuple (<xref target="anchor-format"/>) and is verifiable by
any party with read access to the chain.</t>
  </dd>
  <dt>Cairo contract:</dt>
  <dd>
    <t>A smart contract written in the Cairo language and deployed on Starknet
(<xref target="STARKNET-DOCS"/>). For the purposes of this document, a Cairo contract is a
conforming emitter if it satisfies the settlement event layout defined in
<xref target="event-layout"/>.</t>
  </dd>
  <dt>Chain identifier:</dt>
  <dd>
    <t>A string token unambiguously identifying the target blockchain and network. For
Starknet mainnet the value is <spanx style="verb">"SN_MAIN"</spanx>; for Starknet Sepolia testnet the value
is <spanx style="verb">"SN_SEPOLIA"</spanx>. Additional values MAY be registered by future per-chain adapter
specifications.</t>
  </dd>
  <dt>felt252:</dt>
  <dd>
    <t>A field element in the Stark field, a prime field of order approximately 2^251.6.
Starknet addresses, transaction hashes, and event keys are represented as felt252
values. Felt252 values are encoded as 0x-prefixed lowercase hexadecimal strings of
at most 64 hex characters when serialised to JSON.</t>
  </dd>
  <dt>Transaction hash:</dt>
  <dd>
    <t>A felt252 identifier assigned by the Starknet sequencer to a submitted transaction.
Used as the primary lookup key for event retrieval via the Starknet JSON-RPC
specification.</t>
  </dd>
  <dt>Event index:</dt>
  <dd>
    <t>A zero-based integer identifying a specific event within a transaction's event list.
When a single transaction emits multiple events, the event index disambiguates the
settlement event from other events in the same transaction.</t>
  </dd>
  <dt>Block number:</dt>
  <dd>
    <t>The height of the block in which the transaction was included. A block number of
zero is not valid as a finality reference; only blocks beyond the sequencer's
reorg-safety window carry canonical finality.</t>
  </dd>
  <dt>RPC endpoint:</dt>
  <dd>
    <t>A network endpoint implementing the Starknet JSON-RPC specification
(<xref target="STARKNET-DOCS"/>). Any conformant full node implementation, such as Pathfinder
(<xref target="PATHFINDER"/>), satisfies the endpoint requirements of <xref target="rpc-endpoint-convention"/>.</t>
  </dd>
  <dt>Conforming emitter:</dt>
  <dd>
    <t>A Cairo contract that satisfies the settlement event layout defined in
<xref target="event-layout"/> and emits that event for each settled payment.</t>
  </dd>
</dl>

</section>
<section anchor="anchor-format"><name>Starknet Anchor Format</name>

<section anchor="anchor-tuple"><name>Canonical Anchor Tuple</name>

<t>A Starknet on-chain anchor is represented by the following JSON object:</t>

<figure><sourcecode type="text"><![CDATA[
{
  "chain_id":     "<string>",
  "tx_hash":      "<felt252-hex-string>",
  "event_index":  <uint>,
  "block_number": <uint>,
  "kind":         "<string>"
}
]]></sourcecode></figure>

<t>The fields are defined as follows:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">chain_id</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Chain and network identifier. MUST be one of <spanx style="verb">"SN_MAIN"</spanx> or <spanx style="verb">"SN_SEPOLIA"</spanx> for Starknet, or a registered value from a future per-chain adapter specification. Case-sensitive.</c>
      <c><spanx style="verb">tx_hash</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Felt252 transaction hash, encoded as a 0x-prefixed lowercase hexadecimal string. MUST be 66 characters in length (2 hex chars per byte, 32 bytes, plus <spanx style="verb">"0x"</spanx> prefix).</c>
      <c><spanx style="verb">event_index</spanx></c>
      <c>uint</c>
      <c>REQUIRED</c>
      <c>Zero-based index of the settlement event within the transaction's event list. If the transaction emits only one event, <spanx style="verb">event_index</spanx> MUST be <spanx style="verb">0</spanx>.</c>
      <c><spanx style="verb">block_number</spanx></c>
      <c>uint</c>
      <c>OPTIONAL</c>
      <c>Block height at which the transaction was included. When present, the verifier SHOULD use this value to confirm that the transaction was included in the expected block before extracting the event. A value of <spanx style="verb">0</spanx> MUST be treated as absent.</c>
      <c><spanx style="verb">kind</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Semantic type of the anchored payment claim. MUST be one of <spanx style="verb">"settlement"</spanx>, <spanx style="verb">"refund"</spanx>, or <spanx style="verb">"delegation"</spanx>, corresponding to the FSM states defined in <xref target="LIFECYCLE-FSM"/>.</c>
</texttable>

<t>An anchor object MUST be transmitted as a JSON value (<xref target="RFC8785"/> compliant) when
embedded in an x402 extension field or in an audit manifest. CBOR encoding of the
anchor tuple is out of scope for this document.</t>

<t>The anchor object SHOULD be included in the <spanx style="verb">PAYMENT-RESPONSE</spanx> as an extension field
when the facilitator has confirmed on-chain submission:</t>

<figure><sourcecode type="text"><![CDATA[
{
  "extensions": {
    "starknet-anchor": {
      "info": {
        "chain_id":     "SN_SEPOLIA",
        "tx_hash":      "0x044dd87a94a8...19ff",
        "event_index":  0,
        "block_number": 712483,
        "kind":         "settlement"
      }
    }
  }
}
]]></sourcecode></figure>

<t>When the <spanx style="verb">block_number</spanx> is not yet known at the time the <spanx style="verb">PAYMENT-RESPONSE</spanx> is
emitted (for example, because the transaction was submitted but not yet included in
a block), the facilitator SHOULD omit <spanx style="verb">block_number</spanx> rather than emit <spanx style="verb">0</spanx> or a
speculative value. A verifier receiving an anchor without <spanx style="verb">block_number</spanx> MUST
perform an independent block lookup via the RPC endpoint convention (<xref target="rpc-endpoint-convention"/>)
before asserting block-confirmed finality.</t>

</section>
<section anchor="event-layout"><name>Settlement Event Layout</name>

<t>A conforming emitter MUST emit a Starknet event for each settled payment. The event
MUST conform to the following layout, expressed in terms of the Starknet event
data model (<xref target="STARKNET-DOCS"/>):</t>

<t><strong>Keys array</strong> (indexed fields, usable in event filters):</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Content</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">keys[0]</spanx></c>
      <c>Event type selector</c>
      <c>felt252</c>
      <c>A selector uniquely identifying the event type within the contract's ABI. MUST be the Starknet selector for the event name <spanx style="verb">"PaymentSettled"</spanx> or an equivalent name documented in the emitter's ABI.</c>
      <c><spanx style="verb">keys[1]</spanx></c>
      <c><spanx style="verb">action_ref</spanx> digest</c>
      <c>felt252</c>
      <c>The felt252-masked SHA-256 digest of the JCS canonical preimage of the payment action reference, as defined in <xref target="STARK-RECEIPTS"/> Section on felt252 encoding. The masking operation is: <spanx style="verb">hash_felt252 = sha256_bigint &amp; ((1 &lt;&lt; 251) - 1)</spanx>.</c>
</texttable>

<t><strong>Data array</strong> (non-indexed payload):</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Content</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">data[0]</spanx></c>
      <c>Anchor kind discriminant</c>
      <c>felt252</c>
      <c>A felt252 encoding of the <spanx style="verb">kind</spanx> string. The canonical encoding is: <spanx style="verb">0x1</spanx> for <spanx style="verb">"settlement"</spanx>, <spanx style="verb">0x2</spanx> for <spanx style="verb">"refund"</spanx>, <spanx style="verb">0x3</spanx> for <spanx style="verb">"delegation"</spanx>.</c>
      <c><spanx style="verb">data[1]</spanx></c>
      <c><spanx style="verb">payment_hash</spanx> low bits</c>
      <c>felt252</c>
      <c>Low 251 bits of the SHA-256 payment hash, masked identically to <spanx style="verb">keys[1]</spanx>.</c>
      <c><spanx style="verb">data[2]</spanx></c>
      <c>Reserved</c>
      <c>felt252</c>
      <c>MUST be <spanx style="verb">0x0</spanx> in this version. Future versions of this specification MAY assign a meaning to this field. Verifiers MUST NOT reject an anchor whose <spanx style="verb">data[2]</spanx> is non-zero; they MUST treat it as an opaque reserved field.</c>
</texttable>

<t>The felt252 masking operation applied to both <spanx style="verb">keys[1]</spanx> and <spanx style="verb">data[1]</spanx> is the same
deterministic truncation specified in <xref target="STARK-RECEIPTS"/>: the SHA-256 output
(interpreted as a 256-bit unsigned integer, big-endian) is AND-ed with
<spanx style="verb">(1 &lt;&lt; 251) - 1</spanx>. The result is the canonical on-chain representation. Verifiers
MUST apply this mask consistently when computing the expected on-chain value from
a locally-held SHA-256 digest.</t>

</section>
<section anchor="reference-implementation"><name>Reference Implementation: PaymentDemoEmitter</name>

<t>The <spanx style="verb">PaymentDemoEmitter</spanx> contract, deployed on Starknet Sepolia, is the reference
conforming emitter for this specification. Its deployment address is:</t>

<figure><artwork><![CDATA[
0x044dd87a94a801cf775d4c5e4b6703102d4e97e1cd1d0a8879341219ae4f19ff
]]></artwork></figure>

<t>The contract emits one <spanx style="verb">PaymentSettled</spanx> event per completed settlement call. The
event layout matches <xref target="event-layout"/> exactly: <spanx style="verb">keys[0]</spanx> holds the selector for
<spanx style="verb">PaymentSettled</spanx>, <spanx style="verb">keys[1]</spanx> holds the felt252-masked <spanx style="verb">action_ref</spanx> digest, <spanx style="verb">data[0]</spanx>
holds the kind discriminant <spanx style="verb">0x1</spanx> (settlement), and <spanx style="verb">data[1]</spanx> holds the masked
<spanx style="verb">payment_hash</spanx>.</t>

<t>The contract source and ABI are maintained in the Vauban Pay public conformance
repository (<xref target="VAUBAN-DEMO"/>). Any implementation claiming conformance to this
specification SHOULD test against the <spanx style="verb">PaymentDemoEmitter</spanx> ABI as the canonical
reference. The contract MUST NOT be used as a production payment processor; it is
a conformance reference and demonstration surface.</t>

<t>Transaction history for <spanx style="verb">PaymentDemoEmitter</spanx> is inspectable via the Voyager block
explorer at:</t>

<figure><artwork><![CDATA[
https://sepolia.voyager.online/contract/0x044dd87a94a801cf775d4c5e4b6703102d4e97e1cd1d0a8879341219ae4f19ff
]]></artwork></figure>

<t>The Voyager block explorer is the canonical visual audit surface for Starknet events
on both Sepolia and mainnet. See <xref target="block-explorer"/> for the normative block-explorer
reference.</t>

</section>
</section>
<section anchor="rpc-endpoint-convention"><name>RPC Endpoint Convention</name>

<section anchor="rpc-protocol"><name>Protocol Requirement</name>

<t>Any Starknet RPC endpoint used for anchor verification MUST implement the Starknet
JSON-RPC specification as published at <xref target="STARKNET-DOCS"/>. The specific methods
required by this specification are:</t>

<t><list style="symbols">
  <t><spanx style="verb">starknet_getTransactionByHash</spanx>: retrieves the transaction associated with a given
transaction hash, including the transaction's block reference.</t>
  <t><spanx style="verb">starknet_getTransactionReceipt</spanx>: retrieves the receipt for a given transaction,
including the ordered list of emitted events and the block number in which the
transaction was included.</t>
  <t><spanx style="verb">starknet_getBlockWithTxHashes</spanx>: retrieves a block header by block number,
enabling independent verification that the transaction's block number matches the
anchor tuple.</t>
</list></t>

<t>Endpoints MAY support additional Starknet JSON-RPC methods; this specification
requires only the three listed above for anchor verification purposes.</t>

<t>A verifier MUST submit the <spanx style="verb">starknet_getTransactionReceipt</spanx> request to the configured
RPC endpoint, extract the event at position <spanx style="verb">event_index</spanx> from the response's
<spanx style="verb">events</spanx> array, and compare <spanx style="verb">keys[1]</spanx> against the locally computed felt252-masked
<spanx style="verb">action_ref</spanx> value. A match confirms that the payment action reference is anchored
on-chain in the specified transaction.</t>

</section>
<section anchor="rpc-auth"><name>Endpoint Authentication</name>

<t>The Starknet JSON-RPC specification does not mandate a specific authentication
mechanism. Endpoint implementations MAY apply authentication controls (for example,
API keys, OAuth 2.1, or mutual TLS). The authentication mechanism is an
implementation detail of the endpoint operator and is not visible to this protocol
specification.</t>

<t>Verifiers SHOULD use endpoints operated by parties they trust or operate themselves.
Verifiers MUST NOT transmit proof material or payment credentials as part of RPC
requests; the RPC interface is read-only for the purposes of anchor verification.</t>

</section>
<section anchor="rpc-reference-endpoints"><name>Vauban Pay Reference Endpoints</name>

<t>The Vauban Pay reference implementation operates two Starknet full node RPC endpoints
(Pathfinder, <xref target="PATHFINDER"/>) that implement the Starknet JSON-RPC specification:</t>

<t><strong>Starknet Sepolia (testnet):</strong></t>

<figure><artwork><![CDATA[
https://sepolia.rpc.vauban.tech/rpc/v0_10
]]></artwork></figure>

<t>This endpoint implements Starknet JSON-RPC spec version 0.10.2 and is used by the
<spanx style="verb">PaymentDemoEmitter</spanx> conformance surface (<xref target="reference-implementation"/>).</t>

<t><strong>Starknet mainnet:</strong></t>

<figure><artwork><![CDATA[
https://rpc.vauban.tech/rpc/v0_10
]]></artwork></figure>

<t>This endpoint implements Starknet JSON-RPC spec version 0.10.2 and is the production
mainnet reference.</t>

<t>The <spanx style="verb">/rpc/v0_10</spanx> path suffix selects the spec v0.10.2 response schema. Both endpoints
also expose <spanx style="verb">/rpc/v0_8</spanx> and <spanx style="verb">/rpc/v0_9</spanx> paths for older client compatibility. New
implementations SHOULD use <spanx style="verb">/rpc/v0_10</spanx>.</t>

<t>These endpoints are cited as one conformant implementation of the Starknet JSON-RPC
specification. Implementors who operate their own Starknet full nodes, or who use
endpoints operated by other trusted parties, satisfy the RPC endpoint convention of
<xref target="rpc-protocol"/> without requiring access to the Vauban Pay endpoints. This
specification does not mandate use of any specific endpoint operator.</t>

</section>
</section>
<section anchor="block-explorer"><name>Block Explorer Canonical Reference</name>

<section anchor="voyager-audit"><name>Voyager as Audit Surface</name>

<t>The Voyager block explorer (<xref target="VOYAGER"/>) is the canonical human-readable audit
surface for Starknet mainnet and Starknet Sepolia events. Implementations SHOULD
include a Voyager transaction URL in their audit submissions to provide auditors with
a point-and-click verification path that does not require operating a full node.</t>

<t>The canonical URL patterns are:</t>

<t><strong>Starknet mainnet:</strong></t>

<figure><artwork><![CDATA[
https://voyager.online/tx/<tx_hash>
]]></artwork></figure>

<t><strong>Starknet Sepolia:</strong></t>

<figure><artwork><![CDATA[
https://sepolia.voyager.online/tx/<tx_hash>
]]></artwork></figure>

<t>Where <spanx style="verb">&lt;tx_hash&gt;</spanx> is the 0x-prefixed lowercase hexadecimal felt252 transaction hash
from the anchor tuple (<xref target="anchor-tuple"/>).</t>

<t>For contract-level browsing (all historical events for a conforming emitter):</t>

<t><strong>Starknet Sepolia reference implementation:</strong></t>

<figure><artwork><![CDATA[
https://sepolia.voyager.online/contract/0x044dd87a94a801cf775d4c5e4b6703102d4e97e1cd1d0a8879341219ae4f19ff
]]></artwork></figure>

</section>
<section anchor="audit-inclusion"><name>Inclusion in Audit Submissions</name>

<t>Facilitators submitting payment settlement evidence under regulatory audit obligations
(for example, MiCA Art. 76 or EU AI Act Art. 12) SHOULD include a Voyager URL for
each on-chain anchor in their audit package. The Voyager URL is a supplementary
human-readable reference; the authoritative anchor evidence is the anchor tuple
(<xref target="anchor-tuple"/>) and the RPC-verifiable event (<xref target="rpc-endpoint-convention"/>).</t>

<t>An audit package that includes a Voyager URL but whose anchor tuple produces a
verification failure via the Starknet JSON-RPC MUST be treated as invalid regardless
of the Voyager URL's visual output. The Voyager URL is a convenience; the RPC
verification is the normative check.</t>

<t>Implementations MUST NOT cite any block explorer other than Voyager as the canonical
visual audit surface for Starknet. Other explorers MAY be used for operational
debugging but MUST NOT appear as the canonical reference in audit submissions or
specification texts.</t>

</section>
</section>
<section anchor="compatibility"><name>Compatibility with FSM and Receipt Format</name>

<section anchor="compat-receipts"><name>Relationship to STARK-RECEIPTS</name>

<t>The anchor format defined in this document is complementary to, and not a replacement
for, the <spanx style="verb">stark-vauban-pay-v1</spanx> receipt format defined in <xref target="STARK-RECEIPTS"/>. The
receipt format specifies the off-VM cryptographic evidence (Stwo Circle STARK proof,
felt252 encoding of <spanx style="verb">action_ref</spanx>). The anchor format specified in this document
specifies the on-chain event record that confirms the settlement was submitted to and
accepted by the Starknet state machine.</t>

<t>The two artefacts share the <spanx style="verb">action_ref</spanx> binding. The receipt's <spanx style="verb">keys[1]</spanx> on-chain
value is the same felt252-masked SHA-256 digest of the JCS canonical preimage as the
receipt's <spanx style="verb">action_ref</spanx> field (after applying the mask defined in <xref target="STARK-RECEIPTS"/>).
A verifier holding both a <spanx style="verb">stark-vauban-pay-v1</spanx> receipt and a Starknet anchor MAY
confirm that they refer to the same payment by computing:</t>

<figure><artwork><![CDATA[
expected_keys_1 = SHA-256(action_ref_preimage) & ((1 << 251) - 1)
]]></artwork></figure>

<t>and verifying that <spanx style="verb">expected_keys_1</spanx> equals the <spanx style="verb">keys[1]</spanx> field of the on-chain event
at the position identified by the anchor tuple.</t>

<t>The receipt alone provides post-quantum sound, offline-verifiable proof of payment
conditions. The anchor alone provides on-chain finality confirmation. Together, they
constitute a complete regulator-grade settlement record: the STARK receipt proves that
the payment conditions were satisfied; the anchor proves that the settlement was
committed to a public ledger at a specific block.</t>

</section>
<section anchor="compat-fsm"><name>Relationship to LIFECYCLE-FSM</name>

<t>The <spanx style="verb">kind</spanx> field of the anchor tuple (<xref target="anchor-tuple"/>) maps directly to the lifecycle
states defined in <xref target="LIFECYCLE-FSM"/>:</t>

<texttable>
      <ttcol align='left'>kind value</ttcol>
      <ttcol align='left'>FSM state</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">"settlement"</spanx></c>
      <c>SettlementReceipt</c>
      <c>The anchor records the on-chain confirmation of a PaymentIntent transitioning to SettlementReceipt.</c>
      <c><spanx style="verb">"refund"</spanx></c>
      <c>RefundClaim</c>
      <c>The anchor records the on-chain confirmation of a SettlementReceipt transitioning to RefundClaim.</c>
      <c><spanx style="verb">"delegation"</spanx></c>
      <c>DelegationGrant</c>
      <c>The anchor records the on-chain commitment of a DelegationGrant scope.</c>
</texttable>

<t>A verifier performing FSM chain reconstruction (<xref target="LIFECYCLE-FSM"/> Section on Chain
Reconstruction Algorithm) MAY use on-chain anchors as an additional source of truth
for <spanx style="verb">original_payment_ref</spanx> linkage. When an anchor is present, the verifier SHOULD
confirm that the on-chain event's <spanx style="verb">data[1]</spanx> (<spanx style="verb">payment_hash</spanx> masked) is consistent
with the <spanx style="verb">payment_hash</spanx> in the retained off-VM SettlementReceipt before accepting
the FSM chain as valid.</t>

</section>
<section anchor="adapter-pattern"><name>Per-Chain Adapter Pattern</name>

<t>This document specifies the Starknet instantiation of a chain-agnostic anchoring
pattern. The structural requirements common to all per-chain instantiations are:</t>

<t><list style="numbers" type="1">
  <t>A canonical anchor tuple that uniquely identifies an on-chain record. The tuple
MUST include at minimum: a chain identifier, a transaction reference, and a
position or index within that transaction.</t>
  <t>A settlement event layout that encodes <spanx style="verb">action_ref</spanx> (or an equivalent work-receipt
binding digest) and a <spanx style="verb">kind</spanx> discriminant in the on-chain record.</t>
  <t>An RPC endpoint convention grounded in the target chain's published JSON-RPC or
equivalent read interface.</t>
  <t>A canonical block explorer reference for human-readable audit submissions.</t>
</list></t>

<t>Future per-chain adapter specifications (for example, for EVM-compatible chains or
other UTXO or account-based ledgers) MUST address all four structural requirements
and SHOULD cross-reference this document as the pattern origin. They MUST NOT reuse
the <spanx style="verb">"SN_MAIN"</spanx> or <spanx style="verb">"SN_SEPOLIA"</spanx> chain identifier values; per-chain adapters MUST
register distinct chain identifier values.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="sec-rpc-mitm"><name>RPC Endpoint Authenticity</name>

<t>An anchor verification that relies on a network RPC endpoint is subject to
man-in-the-middle attack if the transport is not authenticated. An adversary that
controls the network path between the verifier and the RPC endpoint may return
fabricated event data, causing the verifier to falsely confirm an anchor that was
never committed to the canonical chain.</t>

<t>Mitigation: verifiers MUST use TLS-authenticated RPC endpoints. Verifiers SHOULD
prefer endpoints they operate themselves or whose TLS certificate chain they have
independently pinned. Verifiers MUST NOT accept RPC responses over unencrypted HTTP
for anchor verification purposes.</t>

</section>
<section anchor="sec-explorer-spoofing"><name>Block Explorer Spoofing</name>

<t>A Voyager URL included in an audit submission is a supplementary human-readable
convenience. An adversary controlling a domain similar to <spanx style="verb">voyager.online</spanx> or
<spanx style="verb">sepolia.voyager.online</spanx> may display fabricated transaction data. Auditors relying
solely on a browser visit to a Voyager URL, without independently verifying the
anchor tuple via the Starknet JSON-RPC, cannot distinguish canonical chain data from
spoofed presentation.</t>

<t>Mitigation: the normative audit check is the anchor tuple verification via the
Starknet JSON-RPC, not the Voyager URL. Audit frameworks MUST perform RPC
verification as the authoritative step. Voyager URLs are RECOMMENDED as a supplementary
aid for human reviewers; they MUST NOT be the sole verification artefact.</t>

</section>
<section anchor="sec-event-collision"><name>Event Collision and Selector Ambiguity</name>

<t>If two Cairo contracts deployed at different addresses emit events with the same
<spanx style="verb">keys[0]</spanx> selector and the same <spanx style="verb">keys[1]</spanx> digest, a verifier that does not check
the emitting contract address may accept the wrong anchor. This is especially relevant
when a chain hosts multiple conforming emitters.</t>

<t>Mitigation: verifiers MUST validate that the event was emitted by the expected
contract address. The anchor tuple (<xref target="anchor-tuple"/>) identifies the transaction but
not the emitting contract; verifiers MUST cross-reference the <spanx style="verb">events[i].from_address</spanx>
field in the <spanx style="verb">starknet_getTransactionReceipt</spanx> response against the known emitter
address before accepting the event as a valid anchor. Conforming emitters MUST be
registered in an implementation-controlled list; events from unregistered emitters
MUST be rejected.</t>

</section>
<section anchor="sec-reorg"><name>Chain Reorganisation and Finality Window</name>

<t>Starknet blocks achieve L2 finality when their state update is proven and posted to
the Ethereum L1 settlement layer. Prior to L1 finalisation, a block may in principle
be reorganised (though Starknet's sequencer design makes deep reorgs highly
improbable). A verifier that confirms a Starknet anchor at a block that has not yet
reached L1 finality accepts a non-final commitment.</t>

<t>Mitigation: for settlement records that require finality guarantees under regulatory
frameworks, verifiers SHOULD wait for the Starknet block's state update to be
confirmed on Ethereum L1 before treating the anchor as final. The Starknet JSON-RPC
exposes block status fields that allow verifiers to distinguish pending, accepted-on-L2,
and accepted-on-L1 states (<xref target="STARKNET-DOCS"/>). Verifiers MUST NOT treat a pending
or L2-only block as providing the same finality guarantee as an L1-confirmed block.
For non-regulatory use cases (for example, low-value instant payments), L2 acceptance
MAY be sufficient; implementations MUST document their chosen finality threshold.</t>

</section>
<section anchor="sec-chain-id-confusion"><name>Chain Identifier Confusion</name>

<t>An anchor tuple carrying <spanx style="verb">chain_id: "SN_SEPOLIA"</spanx> references a testnet where tokens
have no economic value. A verifier that does not validate the <spanx style="verb">chain_id</spanx> field against
its expected deployment environment may accept a testnet anchor as proof of mainnet
settlement.</t>

<t>Mitigation: verifiers MUST reject anchors whose <spanx style="verb">chain_id</spanx> does not match the
deployment environment they are configured to verify. Production payment processors
MUST be configured to accept only <spanx style="verb">chain_id: "SN_MAIN"</spanx>. Test environments that
accept <spanx style="verb">chain_id: "SN_SEPOLIA"</spanx> MUST be segregated from production verification
pipelines. The facilitator MUST include the <spanx style="verb">chain_id</spanx> in the anchor tuple; a missing
<spanx style="verb">chain_id</spanx> MUST be treated as a malformed anchor and MUST be rejected.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document defines no new IANA registries. The chain identifier values <spanx style="verb">"SN_MAIN"</spanx>
and <spanx style="verb">"SN_SEPOLIA"</spanx> defined in <xref target="anchor-tuple"/> are not IANA-registered tokens; they
are Starknet-native identifiers as documented in <xref target="STARKNET-DOCS"/>.</t>

<t>The <spanx style="verb">kind</spanx> discriminant values (<spanx style="verb">"settlement"</spanx>, <spanx style="verb">"refund"</spanx>, <spanx style="verb">"delegation"</spanx>) defined
in <xref target="anchor-tuple"/> derive from the lifecycle state names of <xref target="LIFECYCLE-FSM"/>;
they do not require separate IANA registration.</t>

<t>Future per-chain adapter specifications that introduce new <spanx style="verb">chain_id</spanx> values SHOULD
define a registration mechanism within the x402 Foundation's registry structure (as
established by <xref target="STARK-RECEIPTS"/>) rather than reserving those values through IANA.</t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors thank the x402 Linux Foundation Working Group (<xref target="X402-V2"/>) for
establishing the protocol framework that this anchor specification extends. The
canonicalisation discipline grounding the felt252 masking and <spanx style="verb">action_ref</spanx> derivation
in this document is defined in <xref target="STARK-RECEIPTS"/> and coordinated through the x402
shared canonicalisation substrate. The lifecycle state names and FSM chain
reconstruction algorithm referenced in <xref target="compatibility"/> are defined in
<xref target="LIFECYCLE-FSM"/>.</t>

<t>The Starknet protocol and JSON-RPC specification (<xref target="STARKNET-DOCS"/>) and the
Pathfinder full node implementation (<xref target="PATHFINDER"/>) provide the on-chain
infrastructure that this anchor format targets. The Voyager block explorer
(<xref target="VOYAGER"/>) provides the canonical human-readable audit surface referenced in
<xref target="block-explorer"/>.</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="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="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>


<reference anchor="STARK-RECEIPTS" target="https://datatracker.ietf.org/doc/draft-vauban-x402-stark-receipts/">
  <front>
    <title>x402 STARK Receipt Format Extension</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-vauban-x402-stark-receipts-01"/>
</reference>
<reference anchor="LIFECYCLE-FSM" target="https://datatracker.ietf.org/doc/draft-vauban-x402-lifecycle-fsm/">
  <front>
    <title>x402 V2 Payment Lifecycle Finite State Machine</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-vauban-x402-lifecycle-fsm-00"/>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="X402-V2" target="https://github.com/x402-foundation/x402">
  <front>
    <title>x402 Linux Foundation V2 Working Group</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="STARKNET-DOCS" target="https://docs.starknet.io">
  <front>
    <title>Starknet Documentation</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="PATHFINDER" target="https://github.com/eqlabs/pathfinder">
  <front>
    <title>Pathfinder Starknet full node (eqlabs)</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="VOYAGER" target="https://voyager.online">
  <front>
    <title>Voyager Starknet Block Explorer</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="VAUBAN-DEMO" target="https://demo.pay.vauban.tech">
  <front>
    <title>Vauban Pay reference implementation (Starknet Sepolia)</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

</references>


<?line 600?>

<section anchor="verification-algorithm"><name>Anchor Verification Algorithm</name>

<t>The following algorithm summarises the normative steps a verifier MUST execute to
confirm that a Starknet on-chain anchor is valid and consistent with a retained
x402 settlement receipt.</t>

<section anchor="inputs"><name>Inputs</name>

<t><list style="symbols">
  <t><spanx style="verb">anchor</spanx>: the anchor tuple object (<xref target="anchor-tuple"/>) received from the facilitator.</t>
  <t><spanx style="verb">action_ref_preimage</spanx>: the JCS canonical preimage object (as defined in
<xref target="STARK-RECEIPTS"/>) whose SHA-256 digest was bound to the payment.</t>
  <t><spanx style="verb">expected_payment_hash</spanx>: the SHA-256 payment hash recorded in the settlement receipt.</t>
  <t><spanx style="verb">emitter_address</spanx>: the known-good address of the conforming emitter contract.</t>
</list></t>

</section>
<section anchor="steps"><name>Steps</name>

<t><list style="numbers" type="1">
  <t><strong>Validate <spanx style="verb">chain_id</spanx></strong>: confirm <spanx style="verb">anchor.chain_id</spanx> matches the verifier's
configured deployment environment (<spanx style="verb">"SN_MAIN"</spanx> or <spanx style="verb">"SN_SEPOLIA"</spanx>). Reject if
mismatch.</t>
  <t><strong>Retrieve transaction receipt</strong>: submit <spanx style="verb">starknet_getTransactionReceipt</spanx> with
<spanx style="verb">anchor.tx_hash</spanx> to the configured RPC endpoint. If the transaction is not found
or returns an error, reject the anchor.</t>
  <t><strong>Validate emitter address</strong>: confirm that
<spanx style="verb">receipt.events[anchor.event_index].from_address</spanx> equals <spanx style="verb">emitter_address</spanx>.
Reject if mismatch (<xref target="sec-event-collision"/>).</t>
  <t><strong>Validate block number</strong> (if <spanx style="verb">anchor.block_number</spanx> is present): confirm
<spanx style="verb">receipt.block_number</spanx> equals <spanx style="verb">anchor.block_number</spanx>. Reject if mismatch.</t>
  <t><strong>Compute expected <spanx style="verb">keys[1]</spanx></strong>: apply the felt252 mask to the SHA-256 digest of
the action_ref preimage:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
sha256_out = SHA-256(UTF-8(JCS(action_ref_preimage)))
expected_keys_1 = sha256_out_as_bigint & ((1 << 251) - 1)
]]></artwork></figure>
  </t>
  <t><strong>Compare <spanx style="verb">keys[1]</spanx></strong>: confirm that <spanx style="verb">receipt.events[anchor.event_index].keys[1]</spanx>
(interpreted as a 0x-prefixed hex felt252) equals <spanx style="verb">expected_keys_1</spanx>. Reject if
mismatch.</t>
  <t><strong>Compare <spanx style="verb">data[1]</spanx></strong> (optional cross-check): apply the same felt252 mask to
<spanx style="verb">expected_payment_hash</spanx> and confirm it equals
<spanx style="verb">receipt.events[anchor.event_index].data[1]</spanx>.</t>
  <t><strong>Validate <spanx style="verb">kind</spanx></strong>: confirm <spanx style="verb">anchor.kind</spanx> matches the <spanx style="verb">data[0]</spanx> discriminant in
the event (<spanx style="verb">0x1</spanx> for <spanx style="verb">"settlement"</spanx>, <spanx style="verb">0x2</spanx> for <spanx style="verb">"refund"</spanx>, <spanx style="verb">0x3</spanx> for
<spanx style="verb">"delegation"</spanx>).</t>
  <t><strong>Check finality status</strong>: retrieve the block status for <spanx style="verb">anchor.block_number</spanx>.
Apply the finality threshold configured for the verifier's use case
(<xref target="sec-reorg"/>).</t>
</list></t>

<t>If all steps pass, the anchor is valid. The verifier MAY log the Voyager URL as a
supplementary audit trail (<xref target="audit-inclusion"/>).</t>

</section>
</section>
<section anchor="conformance"><name>Conformance Checklist</name>

<t>A facilitator claiming conformance to this specification MUST:</t>

<t><list style="symbols">
  <t>Produce a well-formed anchor tuple (<xref target="anchor-tuple"/>) for each submitted settlement.</t>
  <t>Include <spanx style="verb">chain_id</spanx>, <spanx style="verb">tx_hash</spanx>, <spanx style="verb">event_index</spanx>, and <spanx style="verb">kind</spanx> in every anchor tuple.</t>
  <t>Submit settlement events from a conforming emitter whose event layout satisfies
<xref target="event-layout"/>.</t>
  <t>Apply the felt252 mask consistently at both event emission time and when computing
the expected <spanx style="verb">keys[1]</spanx> value.</t>
  <t>Include a Voyager URL in audit submissions when operating on Starknet (<xref target="block-explorer"/>).</t>
  <t>Not produce anchors with <spanx style="verb">chain_id: "SN_SEPOLIA"</spanx> in production payment flows.</t>
</list></t>

<t>A verifier claiming conformance to this specification MUST:</t>

<t><list style="symbols">
  <t>Reject anchors whose <spanx style="verb">chain_id</spanx> does not match the configured deployment environment.</t>
  <t>Validate the emitter contract address against the known-good emitter address
before accepting an event as a valid anchor.</t>
  <t>Apply the anchor verification algorithm (<xref target="verification-algorithm"/>) before
treating an anchor as confirmed.</t>
  <t>Distinguish pending, L2-accepted, and L1-accepted block states and apply the
appropriate finality threshold for the use case.</t>
  <t>Reject anchors whose <spanx style="verb">tx_hash</spanx> is not found or whose event at <spanx style="verb">event_index</spanx> does
not exist.</t>
  <t>Not treat a Voyager URL alone as sufficient proof of anchor validity.</t>
</list></t>

</section>
<section numbered="false" anchor="known-adopters-and-reference-implementations"><name>Known Adopters and Reference Implementations</name>

<t>This appendix documents reference implementations and adopters of this specification confirmed at the time of publication. The list is informational and will be updated in subsequent revisions as additional implementations are reported.</t>

<section numbered="false" anchor="primary-maintainer"><name>Primary Maintainer</name>

<t>Vauban Pay (<spanx style="verb">https://pay.vauban.tech</spanx>) maintains the reference Starknet anchor specification and operates the live <spanx style="verb">PaymentDemoEmitter</spanx> contract on Starknet Sepolia at <spanx style="verb">0x044dd87a94a801cf775d4c5e4b6703102d4e97e1cd1d0a8879341219ae4f19ff</spanx> (Voyager-verified at <spanx style="verb">https://sepolia.voyager.online/contract/0x044dd87a94a801cf775d4c5e4b6703102d4e97e1cd1d0a8879341219ae4f19ff</spanx>). The Starknet RPC reference endpoint is a self-hosted Pathfinder validator at <spanx style="verb">https://sepolia.rpc.vauban.tech/rpc/v0_10</spanx>. The Vauban Pay live demonstration is at <spanx style="verb">https://demo.pay.vauban.tech</spanx>.</t>

</section>
<section numbered="false" anchor="reference-implementation-matrix"><name>Reference Implementation Matrix</name>

<t>The conformance vector suite (<spanx style="verb">https://github.com/vauban-org/x402-stark-receipts-conformance</spanx>) maintains an 8-implementation reference matrix across Python, JavaScript, Go, Java, Rust, PHP, Ruby, and C#. The first five are validated byte-for-byte against upstream JCS RFC 8785 libraries ; the last three are published as pure-stdlib reference runners pending CI execution. Detailed validation status is documented in <spanx style="verb">_attestations/2026-05-25-vauban-8-impl-extended.md</spanx> in the conformance vectors repository.</t>

<t>The published Vauban Pay packages across 3 ecosystems : <spanx style="verb">vauban-x402-jcs-conformance@0.1.0</spanx>, <spanx style="verb">vauban-x402-canonical@0.1.0</spanx>, <spanx style="verb">vauban-x402-wire@0.1.0</spanx> on crates.io ; <spanx style="verb">vauban-x402-stark-receipt@0.1.0</spanx> on PyPI ; <spanx style="verb">@vauban-pay/substrate@0.1.0</spanx> on npm.</t>

</section>
<section numbered="false" anchor="adoption-process"><name>Adoption Process</name>

<t>Implementers SHOULD notify the IETF contact at <spanx style="verb">research@vauban.tech</spanx> when adopting this specification in production. Adoption notifications include the deployed emitter contract address (with chain identifier), the block explorer reference, the RPC endpoint provenance (self-hosted versus third-party SaaS), and the contact for follow-on coordination. Reported adopters will be listed in the next revision of this appendix following a verification step against the conformance vector matrix.</t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
sf6XvOnYvndPGk744Eb/ey27tlcsmtPVfUOxVHqZ5SxZcA49CHhJEouTzx3Y
t46xkLGVwXHTWcRj4/C5waJ972Mf3T9OEugNjMG77fHeUM/ccNlN1WAPp6e+
4C330o0Flt0TDAkl3KNlGxOTYLGIRmGHL1uDQAI0rwhEUAzoFuiLTb3AOoO/
pjfpFfWbDPTPBf890JcNVv5c/HKBH8cyTOnkkeSd6HV/MyoBK8P3rOIrI9AQ
S/CD01jNukJpuKIo0uWbE41z9uEYxmVKLxrmxqBlSsoNh1PhosGkNayiLg3g
YAr3BPspmzw39NYKDkqfnElojsTPaxoPZKYWPIoNs3metRM2o09YTVyJVHly
uH/4PNl/Bg6obYtjrCYcKQdRs/JZte7B0gtfZECjRID9bsLJjtzqXNkT+R4z
uvLeRn2kR/JsIoD/nESn/pf94cFwH83R8CIXoev/+TYr7Y0obSYknoZZAQcQ
XRcRW3DDxebiDK/9i+8VfOKi7cF1+XrFzEKKC/F+wSnWfu5wjBQUZ4A6ta+K
pVc+yotfNTvhlUnLyeIvIXeyeUl6i/MTHaUVmYZDDxs9ymWqwgyqq7HbapPt
kjXazkvKeP1tdfuDbpEzFw8RCe2G4g+rWBvUIFk5Tfgtg1dpehW9PpURM6OY
PYa2E1LQkjihrV6KgvRq3SpfmQInlJwDeTvN61S/Mx6CyHlsI6K/GZmnPbKO
Zc9Q/TdeUeauWokAAA==

-->

</rfc>

