<?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.38 (Ruby 3.2.11) -->


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

<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3339 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3339.xml">
<!ENTITY RFC4648 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8259 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8259.xml">
<!ENTITY RFC8785 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
]>


<rfc ipr="noModificationTrust200902" docName="draft-stellar-charge-00" category="info" submissionType="independent">
  <front>
    <title abbrev="Stellar Charge">Stellar Charge Intent for HTTP Payment Authentication</title>

    <author initials="M." surname="Salloum" fullname="Marcelo Salloum">
      <organization>Stellar Development Foundation</organization>
      <address>
        <email>marcelo@stellar.org</email>
      </address>
    </author>

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

    
    
    

    <abstract>


<?line 85?>

<t>This document defines the "charge" intent for the "stellar" payment method
in the Payment HTTP Authentication Scheme. It specifies how clients and
servers exchange one-time <xref target="SEP-41"/> token transfers on the Stellar blockchain,
with optional server-sponsored transaction fees.</t>

<t>Two credential types are supported: <spanx style="verb">type="transaction"</spanx> (default),
where the client sends the signed transaction to the server for
submission, and <spanx style="verb">type="hash"</spanx> (fallback), where the client broadcasts
the transaction directly to the network and presents the on-chain transaction
hash for server verification.</t>



    </abstract>



  </front>

  <middle>


<?line 98?>

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

<t>The <spanx style="verb">charge</spanx> intent represents a one-time payment of a specified amount, as
defined in <xref target="I-D.payment-intent-charge"/>. The server may settle the payment
any time before the challenge <spanx style="verb">expires</spanx> auth-param timestamp.</t>

<t>This document specifies how to implement the <spanx style="verb">charge</spanx> intent using SEP-41
<xref target="SEP-41"/> tokens on the Stellar smart contract platform. <xref target="SEP-41"/>
defines a standard token interface for Stellar smart contracts, including Stellar
Asset Contracts (SAC) <xref target="SAC"/> and custom token implementations.</t>

<section anchor="pull-mode"><name>Pull Mode (Default)</name>

<t>The default flow, called "pull mode", uses <spanx style="verb">type="transaction"</spanx>
credentials. The client signs the transaction (or authorization entries)
and the server "pulls" it for submission to the Stellar network:</t>

<figure><artwork><![CDATA[
   Client                        Server                Stellar Network
      |                             |                         |
      |  (1) GET /resource          |                         |
      |-------------------------->  |                         |
      |                             |                         |
      |  (2) 402 Payment Required   |                         |
      |      intent="charge"        |                         |
      |<--------------------------  |                         |
      |                             |                         |
      |  (3) Sign tx or auth entries|                         |
      |                             |                         |
      |  (4) Authorization: Payment |                         |
      |-------------------------->  |                         |
      |                             |  (5) Verify + submit    |
      |                             |---------------------->  |
      |                             |  (6) Confirmed          |
      |                             |<----------------------  |
      |  (7) 200 OK + Receipt       |                         |
      |<--------------------------  |                         |
      |                             |                         |
]]></artwork></figure>

<t>In this model the server controls transaction submission, enabling
fee sponsorship (<xref target="sponsored"/>) and server-side retry logic.
When <spanx style="verb">feePayer</spanx> is <spanx style="verb">true</spanx>, step (3) signs only authorization entries and
step (5) includes the server rebuilding the transaction as source. When
<spanx style="verb">feePayer</spanx> is <spanx style="verb">false</spanx>, step (3) builds and signs a complete transaction
and the server submits it without modification.</t>

</section>
<section anchor="push-mode"><name>Push Mode (Fallback)</name>

<t>The fallback flow, called "push mode", uses <spanx style="verb">type="hash"</spanx> credentials. The client
"pushes" the transaction to the network itself and presents the confirmed transaction hash:</t>

<figure><artwork><![CDATA[
   Client                        Server                Stellar Network
      |                             |                         |
      |  (1) GET /resource          |                         |
      |-------------------------->  |                         |
      |                             |                         |
      |  (2) 402 Payment Required   |                         |
      |      intent="charge"        |                         |
      |<--------------------------  |                         |
      |                             |                         |
      |  (3) Build & sign tx        |                         |
      |                             |                         |
      |  (4) Send transaction       |                         |
      |------------------------------------------------------>|
      |  (5) Confirmation           |                         |
      |<------------------------------------------------------|
      |                             |                         |
      |  (6) Authorization: Payment |                         |
      |      (with txHash)          |                         |
      |-------------------------->  |                         |
      |                             |  (7) getTransaction     |
      |                             |---------------------->  |
      |                             |  (8) Verified           |
      |                             |<----------------------  |
      |  (9) 200 OK + Receipt       |                         |
      |<--------------------------  |                         |
      |                             |                         |
]]></artwork></figure>

<t>This flow is useful when the client cannot or does not wish to
delegate submission to the server. The server verifies the payment
by fetching and inspecting the on-chain transaction via RPC.</t>

</section>
<section anchor="relationship-to-the-charge-intent"><name>Relationship to the Charge Intent</name>

<t>This document inherits the shared request semantics of the "charge"
intent from <xref target="I-D.payment-intent-charge"/>. It defines only the
Stellar-specific <spanx style="verb">methodDetails</spanx>, <spanx style="verb">payload</spanx>, and verification procedures
for the "stellar" payment method.</t>

</section>
</section>
<section anchor="requirements-language"><name>Requirements Language</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?>

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

<dl>
  <dt>SEP-41 Token</dt>
  <dd>
    <t>A Stellar smart contract implementing the <xref target="SEP-41"/> token
interface, exposing <spanx style="verb">transfer</spanx>, <spanx style="verb">balance</spanx>, and related functions.
Identified by a C-prefixed Stellar smart contract address. Stellar Asset
Contracts (SAC) <xref target="SAC"/> are a common <xref target="SEP-41"/> implementation
that wrap classic Stellar assets.</t>
  </dd>
  <dt>Authorization Entry</dt>
  <dd>
    <t>A signed data structure scoping a Stellar smart contract invocation to a
specific invoker and ledger sequence range. See <xref target="STELLAR-AUTH"/>.</t>
  </dd>
  <dt>Fee Sponsorship</dt>
  <dd>
    <t>An arrangement where the server pays Stellar network fees on behalf of
the client. The client signs only authorization entries; the server acts
as the transaction source account. Servers <bcp14>MAY</bcp14> additionally wrap the
rebuilt transaction in a fee bump transaction to adjust fees without
invalidating the client's authorization entries.</t>
  </dd>
  <dt>DEFAULT_LEDGER_CLOSE_TIME</dt>
  <dd>
    <t>The normative fallback value for the average Stellar ledger close time:
5 seconds. Used to convert wall-clock expiry to a ledger sequence number
when network-provided estimates are unavailable or impractical.</t>
  </dd>
  <dt>DEFAULT_CHALLENGE_EXPIRY</dt>
  <dd>
    <t>The normative fallback challenge expiry duration: 5 minutes. Used when
the <spanx style="verb">expires</spanx> auth-param is absent from the challenge.</t>
  </dd>
  <dt>CAIP-2 Network Identifier</dt>
  <dd>
    <t>A chain identifier per the CAIP-2 Stellar namespace
<xref target="CAIP-2-STELLAR"/> (e.g., <spanx style="verb">stellar:pubnet</spanx>, <spanx style="verb">stellar:testnet</spanx>).</t>
  </dd>
  <dt>Pull Mode</dt>
  <dd>
    <t>The default settlement flow where the client signs the transaction
(or authorization entries) and the server submits it
(<spanx style="verb">type="transaction"</spanx>). The server "pulls" the signed transaction
from the credential. Enables fee sponsorship and server-side retry
logic.</t>
  </dd>
  <dt>Push Mode</dt>
  <dd>
    <t>The fallback settlement flow where the client broadcasts the
transaction itself and presents the confirmed transaction hash
(<spanx style="verb">type="hash"</spanx>). The client "pushes" the transaction to the network
directly. Cannot be used with fee sponsorship.</t>
  </dd>
</dl>

</section>
<section anchor="request-schema"><name>Request Schema</name>

<t>The <spanx style="verb">request</spanx> parameter in the <spanx style="verb">WWW-Authenticate</spanx> challenge contains a
base64url-encoded JSON object. The JSON <bcp14>MUST</bcp14> be serialized using the JSON
Canonicalization Scheme (JCS) <xref target="RFC8785"/> before base64url encoding, per
<xref target="I-D.httpauth-payment"/>.</t>

<t>This specification implements the shared request fields defined in
<xref target="I-D.payment-intent-charge"/>.</t>

<section anchor="shared-fields"><name>Shared Fields</name>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Presence</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">amount</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Stringified non-negative integer in the <xref target="SEP-41"/> token's base units (e.g., <spanx style="verb">"100000"</spanx> for 0.01 USDC with 7 decimals)</c>
      <c><spanx style="verb">currency</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><xref target="SEP-41"/> token contract address (C-prefixed Stellar smart contract ID)</c>
      <c><spanx style="verb">recipient</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Stellar account address of the payment recipient</c>
      <c><spanx style="verb">description</spanx></c>
      <c>string</c>
      <c><bcp14>OPTIONAL</bcp14></c>
      <c>Human-readable payment description</c>
      <c><spanx style="verb">externalId</spanx></c>
      <c>string</c>
      <c><bcp14>OPTIONAL</bcp14></c>
      <c>Merchant reference (order ID, invoice number, etc.)</c>
</texttable>

<t>Challenge expiry is conveyed by the <spanx style="verb">expires</spanx> auth-param in
<spanx style="verb">WWW-Authenticate</spanx> per <xref target="I-D.httpauth-payment"/>.</t>

</section>
<section anchor="method-details"><name>Method Details</name>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Presence</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">methodDetails.network</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>CAIP-2 Stellar chain identifier (<spanx style="verb">stellar:pubnet</spanx> or <spanx style="verb">stellar:testnet</spanx>)</c>
      <c><spanx style="verb">methodDetails.feePayer</spanx></c>
      <c>boolean</c>
      <c><bcp14>OPTIONAL</bcp14></c>
      <c>If <spanx style="verb">true</spanx>, server pays transaction fees (default: <spanx style="verb">false</spanx>)</c>
</texttable>

<t>If <spanx style="verb">methodDetails.feePayer</spanx> is <spanx style="verb">true</spanx>, the server sponsors transaction
fees per <xref target="sponsored"/>. If <spanx style="verb">false</spanx> or omitted, the client <bcp14>MUST</bcp14> build a
fully signed, network-ready transaction per <xref target="unsponsored"/>. Fee
sponsorship is only available in pull mode (<spanx style="verb">type="transaction"</spanx>);
push mode (<spanx style="verb">type="hash"</spanx>) <bcp14>MUST NOT</bcp14> be used with <spanx style="verb">feePayer: true</spanx>.</t>

<t><strong>Example:</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "amount": "10000000",
  "currency": "CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4W",
  "recipient": "GBHEGW3KWOY2OFH767EDALFGCUTBOEVBDQMCKU",
  "description": "API access fee",
  "methodDetails": {
    "network": "stellar:testnet",
    "feePayer": true
  }
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="credential-schema"><name>Credential Schema</name>

<t>The credential in the <spanx style="verb">Authorization</spanx> header contains a base64url-encoded
JSON object per <xref target="I-D.httpauth-payment"/>.</t>

<section anchor="credential-structure"><name>Credential Structure</name>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Presence</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">challenge</spanx></c>
      <c>object</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Echo of the challenge auth-params from <spanx style="verb">WWW-Authenticate</spanx> per <xref target="I-D.httpauth-payment"/></c>
      <c><spanx style="verb">payload</spanx></c>
      <c>object</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Stellar-specific payload</c>
      <c><spanx style="verb">source</spanx></c>
      <c>string</c>
      <c><bcp14>OPTIONAL</bcp14></c>
      <c>Payer DID</c>
</texttable>

<t>The <spanx style="verb">source</spanx> field, if present, <bcp14>SHOULD</bcp14> use the <spanx style="verb">did:pkh</spanx> method <xref target="DID-PKH"/>
with the CAIP-2 network identifier and the payer's Stellar address (e.g.,
<spanx style="verb">did:pkh:stellar:testnet:GABC...</spanx>).</t>

</section>
<section anchor="transaction-payload"><name>Transaction Payload — Pull Mode (type="transaction")</name>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Presence</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">type</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><spanx style="verb">"transaction"</spanx></c>
      <c><spanx style="verb">transaction</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Base64-encoded XDR</c>
</texttable>

<dl>
  <dt><spanx style="verb">transaction</spanx></dt>
  <dd>
    <t>Base64-encoded XDR of a Stellar transaction as defined in
<xref target="STELLAR-XDR"/>. The transaction <bcp14>MUST</bcp14> contain exactly one operation of
type <spanx style="verb">invokeHostFunction</spanx>.
</t>

    <t>When <spanx style="verb">feePayer</spanx> is <spanx style="verb">true</spanx>: the transaction source account <bcp14>MUST</bcp14> be set to
the all-zeros Stellar account
(<spanx style="verb">GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF</spanx>). The server
replaces it with its own address at settlement. Authorization entries
<bcp14>MUST</bcp14> be signed by the client.</t>

    <t>When <spanx style="verb">feePayer</spanx> is <spanx style="verb">false</spanx>: the transaction <bcp14>MUST</bcp14> be fully signed and
network-ready, including valid sequence number, fee, <spanx style="verb">timeBounds</spanx>, and
source account. The server <bcp14>MUST</bcp14> submit this transaction without
modification.</t>
  </dd>
</dl>

<t><strong>Example:</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "challenge": {
    "id": "kM9xPqWvT2nJrHsY4aDfEb",
    "realm": "api.example.com",
    "method": "stellar",
    "intent": "charge",
    "request": "eyJ...",
    "expires": "2025-02-05T12:05:00Z"
  },
  "payload": {
    "type": "transaction",
    "transaction": "AAAAAgAAAABriIN4..."
  },
  "source": "did:pkh:stellar:testnet:GABC..."
}
]]></sourcecode></figure>

</section>
<section anchor="hash-payload"><name>Hash Payload — Push Mode (type="hash")</name>

<t>In push mode (<spanx style="verb">type="hash"</spanx>), the client has already broadcast the
transaction to the Stellar network. The <spanx style="verb">hash</spanx> field contains the
transaction hash for the server to verify on-chain.</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Presence</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">type</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><spanx style="verb">"hash"</spanx></c>
      <c><spanx style="verb">hash</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Stellar transaction hash (64-character hex string)</c>
</texttable>

<t>Push mode <bcp14>MUST NOT</bcp14> be used when <spanx style="verb">feePayer</spanx> is <spanx style="verb">true</spanx> in the challenge
request. Since the client has already broadcast the transaction, the
server cannot act as fee sponsor. Servers <bcp14>MUST</bcp14> reject <spanx style="verb">type="hash"</spanx>
credentials when the challenge specifies <spanx style="verb">feePayer: true</spanx>.</t>

<t><strong>Example:</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "challenge": {
    "id": "pT7yHnKmQ2wErXsZ5vCbNl",
    "realm": "api.example.com",
    "method": "stellar",
    "intent": "charge",
    "request": "eyJ...",
    "expires": "2025-02-05T12:05:00Z"
  },
  "payload": {
    "type": "hash",
    "hash": "a1b2c3d4e5f6789012345678901234567890123456789012345678901234abcd"
  },
  "source": "did:pkh:stellar:testnet:GABC..."
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="ledger-expiration"><name>Ledger Expiration</name>

<t>Stellar uses ledger sequence numbers for transaction and authorization
entry expiration rather than wall-clock timestamps. Clients <bcp14>MUST</bcp14> derive the
ledger expiration from the challenge <spanx style="verb">expires</spanx> auth-param as follows.</t>

<t>If <spanx style="verb">expires</spanx> is absent, clients <bcp14>SHOULD</bcp14> default to
<spanx style="verb">DEFAULT_CHALLENGE_EXPIRY</spanx> (5 minutes) from the current time.</t>

<figure><artwork><![CDATA[
ledgerExpiration =
  currentLedger +
  ceil((expires - now) / DEFAULT_LEDGER_CLOSE_TIME)
]]></artwork></figure>

<t>where <spanx style="verb">DEFAULT_LEDGER_CLOSE_TIME</spanx> is 5 seconds. <spanx style="verb">currentLedger</spanx> <bcp14>MUST</bcp14> be
obtained from the Stellar network via Stellar RPC <spanx style="verb">getLatestLedger</spanx>
<xref target="STELLAR-RPC"/>.</t>

<t>When <spanx style="verb">feePayer</spanx> is <spanx style="verb">true</spanx>, clients <bcp14>MUST</bcp14> set the authorization entry
expiration ledger to this value.</t>

<t>When <spanx style="verb">feePayer</spanx> is <spanx style="verb">false</spanx>, clients <bcp14>MUST</bcp14> set the transaction
<spanx style="verb">timeBounds.maxTime</spanx> to the <spanx style="verb">expires</spanx> timestamp. The transaction <bcp14>MUST NOT</bcp14>
be valid beyond the challenge expiry.</t>

</section>
<section anchor="fee-payment"><name>Fee Payment</name>

<section anchor="fee-pull"><name>Pull Mode</name>

<section anchor="sponsored"><name>Server-Sponsored Fees</name>

<t>When <spanx style="verb">methodDetails.feePayer</spanx> is <spanx style="verb">true</spanx>:</t>

<t><list style="numbers" type="1">
  <t>The client obtains <spanx style="verb">currentLedger</spanx> via Stellar RPC <spanx style="verb">getLatestLedger</spanx>
and computes the authorization entry expiration per
<xref target="ledger-expiration"/>.</t>
  <t>The client builds an <spanx style="verb">invokeHostFunction</spanx> transaction with the all-zeros
source account, containing a single operation calling
<spanx style="verb">transfer(from, to, amount)</spanx> on the <xref target="SEP-41"/> token contract.
The client simulates the transaction to identify the required
authorization entries.</t>
  <t>The client signs the authorization entries using credential type
<spanx style="verb">sorobanCredentialsAddress</spanx>. The client <bcp14>MUST NOT</bcp14> sign the full
transaction.</t>
  <t>The client encodes the transaction with signed authorization entries as
base64 XDR and places it in <spanx style="verb">payload.transaction</spanx>.</t>
  <t>Upon receiving the credential, the server verifies it per
<xref target="verification"/>, rebuilds the transaction with itself as source
account, and submits it per <xref target="settlement"/>.</t>
</list></t>

<t>Servers acting as fee sponsors:</t>

<t><list style="symbols">
  <t><bcp14>MUST</bcp14> maintain sufficient XLM balance to cover fees.</t>
  <t><bcp14>MAY</bcp14> reject new challenges when XLM balance is below a safe operational
threshold.</t>
</list></t>

</section>
<section anchor="unsponsored"><name>Client-Paid Fees</name>

<t>When <spanx style="verb">methodDetails.feePayer</spanx> is <spanx style="verb">false</spanx> or absent:</t>

<t><list style="numbers" type="1">
  <t>The client sets <spanx style="verb">timeBounds.maxTime</spanx> to the <spanx style="verb">expires</spanx> auth-param value,
or <spanx style="verb">DEFAULT_CHALLENGE_EXPIRY</spanx> from the current time if absent. The
transaction <bcp14>MUST NOT</bcp14> be valid beyond the challenge expiry. See
<xref target="ledger-expiration"/>.</t>
  <t>The client builds a fully signed <spanx style="verb">invokeHostFunction</spanx> transaction
containing a single operation calling <spanx style="verb">transfer(from, to, amount)</spanx> on
the <xref target="SEP-41"/> token contract, including sequence number, fee,
and <spanx style="verb">timeBounds</spanx>.</t>
  <t>The client encodes the complete, signed transaction as base64 XDR in
<spanx style="verb">payload.transaction</spanx>.</t>
  <t>Upon receiving the credential, the server verifies it per
<xref target="verification"/> and submits the transaction without modification per
<xref target="settlement"/>.</t>
</list></t>

</section>
</section>
<section anchor="fee-push"><name>Push Mode</name>

<t>In push mode, the client builds, signs, and broadcasts the transaction
independently. The client pays all fees. Fee sponsorship is not available
in push mode.</t>

</section>
</section>
<section anchor="verification"><name>Verification</name>

<t>Before settling a charge credential, servers <bcp14>MUST</bcp14> first validate that
<spanx style="verb">payload.type</spanx> is <spanx style="verb">"transaction"</spanx> or <spanx style="verb">"hash"</spanx>, then proceed with the
appropriate verification path. If any check fails, the server <bcp14>MUST</bcp14> return
a <spanx style="verb">verification-failed</spanx> error per <xref target="I-D.httpauth-payment"/>.</t>

<t>If the Stellar RPC is unavailable for a required simulation step, servers
<bcp14>MUST</bcp14> treat this as a server error (HTTP 5xx) rather than a
<spanx style="verb">verification-failed</spanx> response, and <bcp14>MUST NOT</bcp14> settle the credential.</t>

<section anchor="pull-verification"><name>Pull Mode Verification</name>

<section anchor="sponsored-flow-checks"><name>Sponsored Flow Checks</name>

<t><list style="numbers" type="1">
  <t>The challenge <spanx style="verb">id</spanx> matches an outstanding, unsettled challenge issued
by this server, and the current time is before the challenge <spanx style="verb">expires</spanx>
auth-param.</t>
  <t>The decoded transaction contains exactly one <spanx style="verb">invokeHostFunction</spanx>
operation with function type <spanx style="verb">hostFunctionTypeInvokeContract</spanx>.</t>
  <t>The invoked function is <spanx style="verb">transfer(from, to, amount)</spanx> on the contract
matching <spanx style="verb">currency</spanx>. The <spanx style="verb">to</spanx> argument <bcp14>MUST</bcp14> equal <spanx style="verb">recipient</spanx> and the
<spanx style="verb">amount</spanx> argument <bcp14>MUST</bcp14> equal <spanx style="verb">amount</spanx> (as i128) from the challenge
request.</t>
  <t>The transaction's network passphrase <bcp14>MUST</bcp14> correspond to
<spanx style="verb">methodDetails.network</spanx>.</t>
  <t>The server <bcp14>MUST</bcp14> simulate the transaction via Stellar RPC. The
simulation <bcp14>MUST</bcp14> succeed and <bcp14>MUST</bcp14> emit events showing only the expected
balance changes: a decrease of <spanx style="verb">amount</spanx> for the payer and an increase
of <spanx style="verb">amount</spanx> for the recipient. Any other balance change <bcp14>MUST</bcp14> cause
verification to fail.</t>
  <t>The transaction source account is the all-zeros account
(<spanx style="verb">GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF</spanx>).</t>
  <t>Authorization entries <bcp14>MUST</bcp14> use credential type
<spanx style="verb">sorobanCredentialsAddress</spanx> only, and <bcp14>MUST NOT</bcp14> contain
<spanx style="verb">subInvocations</spanx> beyond the single <xref target="SEP-41"/> token transfer.</t>
  <t>The authorization entry expiration <bcp14>MUST NOT</bcp14> exceed <spanx style="verb">currentLedger +
ceil((expires - now) / DEFAULT_LEDGER_CLOSE_TIME)</spanx>.</t>
  <t>The server's address <bcp14>MUST NOT</bcp14> appear as the <spanx style="verb">from</spanx> argument or in
 any authorization entry.</t>
</list></t>

</section>
<section anchor="unsponsored-flow-checks"><name>Unsponsored Flow Checks</name>

<t><list style="numbers" type="1">
  <t>The challenge <spanx style="verb">id</spanx> matches an outstanding, unsettled challenge issued
by this server, and the current time is before the challenge <spanx style="verb">expires</spanx>
auth-param.</t>
  <t>The decoded transaction contains exactly one <spanx style="verb">invokeHostFunction</spanx>
operation with function type <spanx style="verb">hostFunctionTypeInvokeContract</spanx>.</t>
  <t>The invoked function is <spanx style="verb">transfer(from, to, amount)</spanx> on the contract
matching <spanx style="verb">currency</spanx>. The <spanx style="verb">to</spanx> argument <bcp14>MUST</bcp14> equal <spanx style="verb">recipient</spanx> and the
<spanx style="verb">amount</spanx> argument <bcp14>MUST</bcp14> equal <spanx style="verb">amount</spanx> (as i128) from the challenge
request.</t>
  <t>The transaction's network passphrase <bcp14>MUST</bcp14> correspond to
<spanx style="verb">methodDetails.network</spanx>.</t>
  <t>The server <bcp14>MUST</bcp14> simulate the transaction via Stellar RPC. The
simulation <bcp14>MUST</bcp14> succeed and <bcp14>MUST</bcp14> emit events showing only the expected
balance changes: a decrease of <spanx style="verb">amount</spanx> for the payer and an increase
of <spanx style="verb">amount</spanx> for the recipient. Any other balance change <bcp14>MUST</bcp14> cause
verification to fail.</t>
  <t><spanx style="verb">timeBounds.maxTime</spanx> <bcp14>MUST NOT</bcp14> exceed the <spanx style="verb">expires</spanx> timestamp from the
challenge.</t>
</list></t>

</section>
</section>
<section anchor="hash-checks"><name>Push Mode Verification</name>

<t>For push mode credentials (<spanx style="verb">type="hash"</spanx>), the server <bcp14>MUST</bcp14> fetch the
transaction via Stellar RPC <spanx style="verb">getTransaction</spanx> <xref target="STELLAR-RPC"/> and verify:</t>

<t><list style="numbers" type="1">
  <t>The challenge <spanx style="verb">id</spanx> matches an outstanding, unsettled challenge issued
by this server.</t>
  <t>The transaction hash has not been previously consumed (see
<xref target="replay-protection"/>).</t>
  <t>The transaction exists and has status <spanx style="verb">SUCCESS</spanx>.</t>
  <t>The transaction contains exactly one <spanx style="verb">invokeHostFunction</spanx> operation
calling <spanx style="verb">transfer(from, to, amount)</spanx> on the contract matching
<spanx style="verb">currency</spanx>. The <spanx style="verb">to</spanx> argument <bcp14>MUST</bcp14> equal <spanx style="verb">recipient</spanx> and the <spanx style="verb">amount</spanx>
argument <bcp14>MUST</bcp14> equal <spanx style="verb">amount</spanx> (as i128) from the challenge request.</t>
  <t>Mark the transaction hash as consumed.</t>
</list></t>

</section>
</section>
<section anchor="error-codes"><name>Error Codes</name>

<t>This specification defines the following additional error code beyond those
in <xref target="I-D.httpauth-payment"/>:</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='left'>HTTP</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">settlement-failed</spanx></c>
      <c>402</c>
      <c>Credential valid but on-chain settlement failed</c>
</texttable>

<t>Servers <bcp14>MUST</bcp14> return <spanx style="verb">settlement-failed</spanx> when a credential passes
verification but the Stellar transaction fails on-chain (e.g., insufficient
funds or sequence number conflict). This is distinct from
<spanx style="verb">verification-failed</spanx>, which indicates the credential failed validation checks.</t>

</section>
<section anchor="settlement"><name>Settlement Procedure</name>

<section anchor="pull-mode-settlement-sponsored"><name>Pull Mode Settlement — Sponsored</name>

<t><list style="numbers" type="1">
  <t>Parse the base64 XDR transaction from <spanx style="verb">payload.transaction</spanx>.</t>
  <t>Extract all operations and authorization entries.</t>
  <t>Rebuild a new transaction with:
  <list style="symbols">
      <t>Source account: the server's Stellar address.</t>
      <t>Operations: copied from the client's transaction.</t>
      <t>Authorization entries: copied from the client's transaction.</t>
    </list></t>
  <t>Sign the rebuilt transaction with the server's key.</t>
  <t>Submit via Stellar RPC <spanx style="verb">sendTransaction</spanx> <xref target="STELLAR-RPC"/>.</t>
  <t>Verify the submission returns <spanx style="verb">PENDING</spanx> status, then poll until
<spanx style="verb">SUCCESS</spanx> or <spanx style="verb">FAILED</spanx>.</t>
  <t>On <spanx style="verb">SUCCESS</spanx>, return a receipt per <xref target="receipt"/>. On <spanx style="verb">FAILED</spanx>, return a
<spanx style="verb">settlement-failed</spanx> error per <xref target="error-codes"/>.</t>
</list></t>

</section>
<section anchor="pull-mode-settlement-unsponsored"><name>Pull Mode Settlement — Unsponsored</name>

<t><list style="numbers" type="1">
  <t>Verify the transaction per <xref target="verification"/>.</t>
  <t>Submit the received transaction as-is via Stellar RPC
<spanx style="verb">sendTransaction</spanx> <xref target="STELLAR-RPC"/>. The server <bcp14>MUST NOT</bcp14> modify the
transaction.</t>
  <t>Poll until <spanx style="verb">SUCCESS</spanx> or <spanx style="verb">FAILED</spanx>.</t>
  <t>On <spanx style="verb">SUCCESS</spanx>, return a receipt per <xref target="receipt"/>. On <spanx style="verb">FAILED</spanx>, return a
<spanx style="verb">settlement-failed</spanx> error per <xref target="error-codes"/>.</t>
</list></t>

</section>
<section anchor="push-mode-settlement-typehash"><name>Push Mode Settlement (type="hash")</name>

<t>For push mode credentials, the client has already broadcast the
transaction. The server checks the transaction hash against consumed
hashes per <xref target="replay-push"/>, verifies the transaction on-chain per
<xref target="hash-checks"/>, and returns a receipt per <xref target="receipt"/>.</t>

<t><strong>Limitations:</strong></t>

<t><list style="symbols">
  <t><bcp14>MUST NOT</bcp14> be used with <spanx style="verb">feePayer: true</spanx> (client must pay their own fees)</t>
  <t>Server cannot modify or enhance the transaction</t>
</list></t>

</section>
<section anchor="receipt"><name>Receipt</name>

<t>Upon successful settlement, servers <bcp14>MUST</bcp14> return a <spanx style="verb">Payment-Receipt</spanx> header
per <xref target="I-D.httpauth-payment"/>.</t>

<t>The receipt payload fields:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Presence</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">method</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><spanx style="verb">"stellar"</spanx></c>
      <c><spanx style="verb">reference</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Transaction hash</c>
      <c><spanx style="verb">status</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><spanx style="verb">"success"</spanx></c>
      <c><spanx style="verb">timestamp</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><xref target="RFC3339"/> settlement time</c>
      <c><spanx style="verb">externalId</spanx></c>
      <c>string</c>
      <c><bcp14>OPTIONAL</bcp14></c>
      <c>Echoed from request</c>
</texttable>

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

<section anchor="facilitator-safety"><name>Facilitator Safety</name>

<t>When <spanx style="verb">feePayer</spanx> is <spanx style="verb">true</spanx>, the server rebuilds and signs the transaction. A
malicious client could craft a transaction to drain the server's account.</t>

<t>Servers <bcp14>MUST</bcp14> verify their own address does not appear as the <spanx style="verb">from</spanx>
transfer argument or in any authorization entry before signing. Servers
<bcp14>MUST</bcp14> re-simulate the rebuilt transaction and <bcp14>MUST</bcp14> reject any credential
whose simulation emits unexpected balance changes.</t>

</section>
<section anchor="replay-protection"><name>Replay Protection</name>

<section anchor="replay-pull"><name>Pull Mode</name>

<t>Authorization entry expiration (keyed to ledger sequence) and Stellar
sequence number consumption prevent transaction replay. Servers <bcp14>MUST</bcp14> reject
credentials referencing an expired or already-settled challenge <spanx style="verb">id</spanx>.</t>

</section>
<section anchor="replay-push"><name>Push Mode</name>

<t>Servers <bcp14>MUST</bcp14> maintain a set of consumed transaction hashes. Before accepting
a push mode credential, the server <bcp14>MUST</bcp14> check whether the hash has already
been consumed and reject the credential if it has. After successful verification,
the server <bcp14>MUST</bcp14> atomically mark the hash as consumed.</t>

</section>
</section>
<section anchor="amount-and-asset-verification"><name>Amount and Asset Verification</name>

<t>Clients <bcp14>MUST</bcp14> decode and verify the challenge <spanx style="verb">request</spanx> before signing.
Clients <bcp14>MUST</bcp14> verify that <spanx style="verb">amount</spanx>, <spanx style="verb">currency</spanx>, and <spanx style="verb">recipient</spanx> match their
expectations prior to authorizing any transfer.</t>

</section>
<section anchor="simulation-integrity"><name>Simulation Integrity</name>

<t>The simulation requirement in <xref target="verification"/> ensures the transaction
behaves as specified. Servers <bcp14>MUST</bcp14> treat any unexpected balance change as a
verification failure, regardless of whether it favors the server or a third
party.</t>

</section>
<section anchor="fee-exhaustion"><name>Fee Exhaustion</name>

<t>Servers offering fee sponsorship are exposed to denial-of-service attacks
where adversaries submit valid-looking credentials that fail on-chain,
causing the server to pay fees without receiving payment. Servers <bcp14>SHOULD</bcp14>
implement rate limiting and <bcp14>MAY</bcp14> require client authentication before
issuing sponsored challenges.</t>

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

<section anchor="payment-method-registration"><name>Payment Method Registration</name>

<t>This document registers the following payment method in the "HTTP Payment
Methods" registry established by <xref target="I-D.httpauth-payment"/>:</t>

<texttable>
      <ttcol align='left'>Method Identifier</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">stellar</spanx></c>
      <c>Stellar <xref target="SEP-41"/> token transfer</c>
      <c>This document</c>
</texttable>

<t>Contact: Stellar Development Foundation (<eref target="mailto:developers@stellar.org">developers@stellar.org</eref>)</t>

</section>
<section anchor="payment-intent-registration"><name>Payment Intent Registration</name>

<t>This document registers the following payment intent in the "HTTP Payment
Intents" registry established by <xref target="I-D.httpauth-payment"/>:</t>

<texttable>
      <ttcol align='left'>Intent</ttcol>
      <ttcol align='left'>Applicable Methods</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">charge</spanx></c>
      <c><spanx style="verb">stellar</spanx></c>
      <c>One-time <xref target="SEP-41"/> token transfer</c>
      <c>This document</c>
</texttable>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

&RFC2119;
&RFC3339;
&RFC4648;
&RFC8174;
&RFC8259;
&RFC8785;
<reference anchor="I-D.httpauth-payment" target="https://datatracker.ietf.org/doc/draft-ryan-httpauth-payment/">
  <front>
    <title>The 'Payment' HTTP Authentication Scheme</title>
    <author initials="B." surname="Ryan" fullname="Brendan Ryan">
      <organization></organization>
    </author>
    <author initials="J." surname="Moxey" fullname="Jake Moxey">
      <organization></organization>
    </author>
    <date year="2026" month="January"/>
  </front>
</reference>
<reference anchor="I-D.payment-intent-charge" target="https://datatracker.ietf.org/doc/draft-payment-intent-charge/
">
  <front>
    <title>'charge' Intent for HTTP Payment Authentication</title>
    <author initials="J." surname="Moxey" fullname="Jake Moxey">
      <organization></organization>
    </author>
    <author initials="B." surname="Ryan" fullname="Brendan Ryan">
      <organization></organization>
    </author>
    <author initials="T." surname="Meagher" fullname="Tom Meagher">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>


    </references>

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

<reference anchor="SEP-41" target="https://stellar.org/protocol/sep-41">
  <front>
    <title>SEP-41: Token Interface</title>
    <author >
      <organization>Stellar Development Foundation</organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="CAIP-2-STELLAR" target="https://namespaces.chainagnostic.org/stellar/caip2
">
  <front>
    <title>CAIP-2: Stellar Namespace</title>
    <author >
      <organization>Chain Agnostic Standards Alliance</organization>
    </author>
    <date year="2023"/>
  </front>
</reference>
<reference anchor="STELLAR-AUTH" target="https://developers.stellar.org/docs/learn/encyclopedia/security/authorization
">
  <front>
    <title>Stellar Contracts Authorization Framework</title>
    <author >
      <organization>Stellar Development Foundation</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="SAC" target="https://developers.stellar.org/docs/tokens/stellar-asset-contract
">
  <front>
    <title>Stellar Asset Contract</title>
    <author >
      <organization>Stellar Development Foundation</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="DID-PKH" target="https://github.com/w3c-ccg/did-pkh">
  <front>
    <title>did:pkh Method Specification</title>
    <author >
      <organization>W3C CCG</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="STELLAR-XDR" target="https://github.com/stellar/stellar-xdr">
  <front>
    <title>Stellar XDR Definitions</title>
    <author >
      <organization>Stellar Development Foundation</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="STELLAR-RPC" target="https://developers.stellar.org/docs/data/rpc/api-reference
">
  <front>
    <title>Stellar RPC Reference</title>
    <author >
      <organization>Stellar Development Foundation</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

</references>


<?line 737?>

<section anchor="abnf-collected"><name>ABNF Collected</name>

<figure><sourcecode type="abnf"><![CDATA[
stellar-charge-challenge = "Payment" 1*SP
  "id=" quoted-string ","
  "realm=" quoted-string ","
  "method=" DQUOTE "stellar" DQUOTE ","
  "intent=" DQUOTE "charge" DQUOTE ","
  "request=" base64url-nopad

stellar-charge-credential = "Payment" 1*SP base64url-nopad

; Base64url encoding without padding per RFC 4648 Section 5
base64url-nopad = 1*( ALPHA / DIGIT / "-" / "_" )
]]></sourcecode></figure>

</section>
<section anchor="examples"><name>Examples</name>

<section anchor="pull-mode-sponsored-typetransaction"><name>Pull Mode — Sponsored (type="transaction")</name>

<t><strong>Challenge:</strong></t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment
  id="kM9xPqWvT2nJrHsY4aDfEb",
  realm="api.example.com",
  method="stellar",
  intent="charge",
  request="eyJhbW91bnQiOiIxMDAwMDAwMCIsImN1cnJlb...",
  expires="2025-02-05T12:05:00Z"
Cache-Control: no-store
]]></sourcecode></figure>

<t>The <spanx style="verb">request</spanx> decodes to:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "amount": "10000000",
  "currency": "CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4W",
  "recipient": "GBHEGW3KWOY2OFH767EDALFGCUTBOEVBDQMCKU",
  "methodDetails": {
    "network": "stellar:testnet",
    "feePayer": true
  }
}
]]></sourcecode></figure>

<t>This requests a transfer of 1.0 USDC (10000000 base units, assuming 7
decimal places).</t>

<t><strong>Credential:</strong></t>

<figure><sourcecode type="http"><![CDATA[
GET /api/resource HTTP/1.1
Host: api.example.com
Authorization: Payment eyJjaGFsbGVuZ2Ui...
]]></sourcecode></figure>

<t>Decoded credential:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "challenge": {
    "id": "kM9xPqWvT2nJrHsY4aDfEb",
    "realm": "api.example.com",
    "method": "stellar",
    "intent": "charge",
    "request": "eyJ...",
    "expires": "2025-02-05T12:05:00Z"
  },
  "payload": {
    "type": "transaction",
    "transaction": "AAAAAgAAAABriIN4..."
  },
  "source": "did:pkh:stellar:testnet:GABC..."
}
]]></sourcecode></figure>

<t><strong>Receipt:</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "method": "stellar",
  "reference": "a1b2c3d4e5f6789012345678901234567890123456789012345678901234abcd",
  "status": "success",
  "timestamp": "2025-02-05T12:04:32Z"
}
]]></sourcecode></figure>

</section>
<section anchor="pull-mode-unsponsored-typetransaction"><name>Pull Mode — Unsponsored (type="transaction")</name>

<t><strong>Challenge:</strong></t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment
  id="pT7yHnKmQ2wErXsZ5vCbNl",
  realm="api.example.com",
  method="stellar",
  intent="charge",
  request="eyJhbW91bnQiOiIxMDAwMDAwMCIsImN1cnJlb...",
  expires="2025-02-05T12:05:00Z"
Cache-Control: no-store
]]></sourcecode></figure>

<t>The <spanx style="verb">request</spanx> decodes to:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "amount": "10000000",
  "currency": "CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4W",
  "recipient": "GBHEGW3KWOY2OFH767EDALFGCUTBOEVBDQMCKU",
  "methodDetails": {
    "network": "stellar:testnet",
    "feePayer": false
  }
}
]]></sourcecode></figure>

<t><strong>Credential:</strong></t>

<figure><sourcecode type="http"><![CDATA[
GET /api/resource HTTP/1.1
Host: api.example.com
Authorization: Payment eyJjaGFsbGVuZ2Ui...
]]></sourcecode></figure>

<t>Decoded credential:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "challenge": {
    "id": "pT7yHnKmQ2wErXsZ5vCbNl",
    "realm": "api.example.com",
    "method": "stellar",
    "intent": "charge",
    "request": "eyJ...",
    "expires": "2025-02-05T12:05:00Z"
  },
  "payload": {
    "type": "transaction",
    "transaction": "AAAAAgAAAABriIN4..."
  },
  "source": "did:pkh:stellar:testnet:GABC..."
}
]]></sourcecode></figure>

<t><strong>Receipt:</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "method": "stellar",
  "reference": "b2c3d4e5f6789012345678901234567890ab1234567890123456789012345678",
  "status": "success",
  "timestamp": "2025-02-05T12:04:41Z"
}
]]></sourcecode></figure>

</section>
<section anchor="push-mode-typehash"><name>Push Mode (type="hash")</name>

<t>The client broadcasts the transaction itself and presents the confirmed
hash. Cannot be used with fee sponsorship.</t>

<t><strong>Credential:</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "challenge": { "..." : "echoed challenge" },
  "payload": {
    "type": "hash",
    "hash": "a1b2c3d4e5f6789012345678901234567890123456789012345678901234abcd"
  }
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The author thanks the Stellar community for their input and
feedback on this specification.</t>

</section>


  </back>

<!-- ##markdown-source:
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
Ssv7P5U535fseQAA

-->

</rfc>

