<?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 4.0.5) -->


<!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 RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8785 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
<!ENTITY RFC9110 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9110.xml">
]>


<rfc ipr="noModificationTrust200902" docName="draft-usdc-charge-00" category="info" consensus="true" submissionType="IETF">
  <front>
    <title abbrev="&quot;usdc&quot; Payment Method">"usdc" Payment Method for HTTP Payment Authentication</title>

    <author initials="H." surname="Bhangale" fullname="Harshal Bhangale">
      <organization>Circle Internet Group, Inc.</organization>
      <address>
        <email>harshal.bhangale@circle.com</email>
      </address>
    </author>
    <author initials="H." surname="Gu" fullname="Huawei Gu">
      <organization>Circle Internet Group, Inc.</organization>
      <address>
        <email>hgu@circle.com</email>
      </address>
    </author>
    <author initials="B." surname="Agarwal" fullname="Bhushit Agarwal">
      <organization>Circle Internet Group, Inc.</organization>
      <address>
        <email>bhushit.agarwal@circle.com</email>
      </address>
    </author>

    <date year="2026" month="June" day="16"/>

    
    
    

    <abstract>


<?line 89?>

<t>This document defines the <spanx style="verb">usdc</spanx> payment method for the <spanx style="verb">charge</spanx>
intent in the Payment HTTP Authentication Scheme
<xref target="I-D.httpauth-payment"/>. It gives merchants one USDC acceptance surface
across supported chain families while leaving chain-specific signing
and broadcast mechanics in the relevant chain profile.</t>

<t>This version covers direct USDC charges on EVM and Solana by
profiling the existing PaymentAuth EVM and Solana charge
specifications. The EVM profile is intentionally limited to EIP-3009
authorization credentials in v00. It also defines a direct
USDCx on Stacks profile because USDCx on Stacks is backed by USDC
through xReserve and is not covered by a generic MPP chain method
today.</t>

<t>This version also defines a Gateway Transfer charge profile for
cross-chain USDC payments through Circle Gateway. The merchant chooses
the destination chain where it wants to receive USDC and advertises the
Gateway source chains it accepts from payers.</t>



    </abstract>



  </front>

  <middle>


<?line 110?>

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

<t>HTTP Payment Authentication <xref target="I-D.httpauth-payment"/> defines a
challenge-response mechanism that gates access to resources behind
payments. This document defines <spanx style="verb">method="usdc"</spanx> for settled
<spanx style="verb">intent="charge"</spanx> payments.</t>

<t>The method is a USDC-specific acceptance surface, not a new generic
chain method. Direct EVM USDC is mechanically close to
<spanx style="verb">method="evm"</spanx> with USDC selected, and direct Solana USDC is close to
<spanx style="verb">method="solana"</spanx> with the USDC SPL token mint in <spanx style="verb">request.currency</spanx>.
The value of this method is the merchant-facing USDC abstraction and the
USDC-specific rules around native USDC issuance, supported asset forms,
third-party lookalike assets, token controls, and receipts.</t>

<t>This version keeps the base direct charge path small. Gateway Transfer
is an optional cross-chain profile for merchants that want USDC on one
destination chain while accepting payer funds from any advertised
Gateway source chain.</t>

<section anchor="scope-of-this-version"><name>Scope of This Version</name>

<t>Normatively specified:</t>

<t><list style="symbols">
  <t>EVM direct USDC charges, by reference to <xref target="I-D.evm-charge"/>.</t>
  <t>Solana direct USDC charges, by reference to <xref target="I-D.solana-charge"/>.</t>
  <t>Stacks direct USDCx charges using SIP-010 transfers.</t>
  <t>Gateway Transfer charges through Circle Gateway that settle on the
merchant's selected destination network before a successful receipt is
returned.</t>
  <t>USDC-specific asset identity, token-control, replay, and receipt
requirements.</t>
</list></t>

</section>
<section anchor="relationship-to-other-methods"><name>Relationship to Other Methods</name>

<t>This document does not replace the EVM or Solana charge methods. It
profiles them for USDC.</t>

<t>For EVM, the request and credential envelope inherits from
<xref target="I-D.evm-charge"/>. The <spanx style="verb">usdc</spanx> profile restricts the token to native
USDC, restricts the v00 credential payload to EIP-3009
<spanx style="verb">authorization</spanx>, and adds USDC-specific asset identity and control
checks. Deployments that want
Permit2, raw transaction, or hash-based EVM settlement SHOULD advertise
<spanx style="verb">method="evm"</spanx> directly.</t>

<t>For Solana, the request and credential semantics inherit from
<xref target="I-D.solana-charge"/>. The <spanx style="verb">usdc</spanx> profile restricts the token to the
native USDC SPL mint published by Circle and the legacy SPL Token
program in v00.</t>

<t>For Stacks, this document defines USDCx on Stacks directly because it
is not covered by a generic MPP chain method today.</t>

<t>For Gateway Transfer, this document defines a Circle Gateway-specific
cross-chain charge profile. The merchant sets the destination network
where it wants to receive USDC. The payer chooses one of the advertised
source networks, signs a Gateway authorization, and the server submits
that authorization to Circle Gateway. A successful charge receipt means
Gateway has completed settlement on the merchant's destination network.</t>

</section>
</section>
<section anchor="requirements-language"><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.</t>

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

<dl>
  <dt><strong>Native USDC</strong></dt>
  <dd>
    <t>USDC natively issued by Circle on a supported network. Circle
publishes the contract and mint addresses for each supported
deployment.</t>
  </dd>
  <dt><strong>USDCx on Stacks</strong></dt>
  <dd>
    <t>The SIP-010 token issued by the partner-deployed USDCx on Stacks
contract and backed 1:1 by USDC deposited into a Circle xReserve
smart contract on supported source chains. USDCx is not native USDC,
so this profile treats it as a distinct asset form.</t>
  </dd>
  <dt><strong>Direct Charge</strong></dt>
  <dd>
    <t>A payment where the server returns a successful receipt only after
the underlying chain transaction has reached the server's local
confirmation threshold.</t>
  </dd>
  <dt><strong>Gateway Transfer</strong></dt>
  <dd>
    <t>A charge profile where Circle Gateway moves native USDC from a
payer-selected source network to the merchant's selected destination
network before a successful receipt is returned.</t>
  </dd>
</dl>

</section>
<section anchor="method-identifier"><name>Method Identifier</name>

<t>The payment method identifier is:</t>

<t><spanx style="verb">text
usdc
</spanx></t>

</section>
<section anchor="supported-intents"><name>Supported Intents</name>

<t>This v00 document supports:</t>

<t><spanx style="verb">text
charge
</spanx></t>

</section>
<section anchor="intent-charge"><name>Intent: "charge"</name>

<t>For <spanx style="verb">intent="charge"</spanx>, the <spanx style="verb">request</spanx> auth-param contains the fields
defined by the charge intent plus <spanx style="verb">usdc</spanx> method details. The request
JSON MUST be serialized with JSON Canonicalization Scheme <xref target="RFC8785"/>
before base64url encoding.</t>

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

<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">amount</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Positive integer amount in USDC base units.</c>
      <c><spanx style="verb">currency</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Profile-specific USDC token identifier. Direct profiles use chain-native identifiers. Gateway Transfer uses the literal <spanx style="verb">usdc</spanx> identifier.</c>
      <c><spanx style="verb">recipient</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Chain-native recipient identifier.</c>
      <c><spanx style="verb">description</spanx></c>
      <c>string</c>
      <c>OPTIONAL</c>
      <c>Human-readable payment description.</c>
      <c><spanx style="verb">externalId</spanx></c>
      <c>string</c>
      <c>OPTIONAL</c>
      <c>Merchant reference identifier.</c>
</texttable>

<t>For EVM, <spanx style="verb">currency</spanx> follows <xref target="I-D.evm-charge"/> and is the native USDC
token contract address published by Circle <xref target="CIRCLE-USDC-ADDRESSES"/>.</t>

<t>For Solana, <spanx style="verb">currency</spanx> follows <xref target="I-D.solana-charge"/> and is the
native USDC mint address published by Circle <xref target="CIRCLE-USDC-ADDRESSES"/>.</t>

<t>For Stacks, <spanx style="verb">currency</spanx> MUST be the full USDCx SIP-010 <xref target="SIP-010"/>
asset identifier, <spanx style="verb">&lt;contractAddress&gt;.&lt;contractName&gt;::&lt;assetName&gt;</spanx>.
<spanx style="verb">methodDetails.stacks</spanx> carries the same identity as parsed fields for
transaction verification.</t>

<t>For Gateway Transfer, <spanx style="verb">currency</spanx> MUST be the case-sensitive literal
<spanx style="verb">usdc</spanx>. This is a method-defined asset identifier, not an ISO currency
code. The concrete source and destination token identities are resolved
through Circle Gateway discovery and estimate APIs or a conforming SDK.</t>

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

<t><spanx style="verb">methodDetails.type</spanx> selects the active <spanx style="verb">usdc</spanx> profile. Its value MUST
be one of <spanx style="verb">evm</spanx>, <spanx style="verb">solana</spanx>, <spanx style="verb">stacks</spanx>, or <spanx style="verb">gateway</spanx>.</t>

<t>The <spanx style="verb">methodDetails</spanx> object MUST include exactly one profile details
object, and that object MUST use the same name as <spanx style="verb">methodDetails.type</spanx>.
For example, when <spanx style="verb">methodDetails.type = "solana"</spanx>,
<spanx style="verb">methodDetails.solana</spanx> MUST be present and <spanx style="verb">methodDetails.evm</spanx>,
<spanx style="verb">methodDetails.stacks</spanx>, and <spanx style="verb">methodDetails.gateway</spanx> MUST be absent.</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">type</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>One of <spanx style="verb">evm</spanx>, <spanx style="verb">solana</spanx>, <spanx style="verb">stacks</spanx>, or <spanx style="verb">gateway</spanx>.</c>
      <c><spanx style="verb">evm</spanx></c>
      <c>object</c>
      <c>CONDITIONAL</c>
      <c>EVM details. Required for EVM direct USDC charge.</c>
      <c><spanx style="verb">solana</spanx></c>
      <c>object</c>
      <c>CONDITIONAL</c>
      <c>Solana details. Required for Solana direct USDC charge.</c>
      <c><spanx style="verb">stacks</spanx></c>
      <c>object</c>
      <c>CONDITIONAL</c>
      <c>Stacks details. Required for USDCx on Stacks charge.</c>
      <c><spanx style="verb">gateway</spanx></c>
      <c>object</c>
      <c>CONDITIONAL</c>
      <c>Circle Gateway Transfer details. Required for Gateway Transfer charge.</c>
</texttable>

<t>This <spanx style="verb">methodDetails.type</spanx> discriminator with a nested per-profile
object is intentionally not the flat <spanx style="verb">methodDetails</spanx> shape used by
<xref target="I-D.evm-charge"/> and <xref target="I-D.solana-charge"/>. A parser written for the
base specs' flat <spanx style="verb">methodDetails</spanx> will not work here; implementations
MUST select the active profile object by <spanx style="verb">methodDetails.type</spanx>.</t>

<t>Identifier formats otherwise follow each profile's base specification.
The direct EVM and Solana profiles use the payer and recipient
identifier formats defined by <xref target="I-D.evm-charge"/> and
<xref target="I-D.solana-charge"/>. CAIP-2 <xref target="CAIP-2"/> network identifiers and CAIP-10
<xref target="CAIP-10"/> account identifiers are used normatively in the Gateway
Transfer profile, where one charge can route across chain families and a
chain-native identifier alone would be ambiguous, and in the Stacks
profile, which has no base MPP chain method to inherit from. The receipt
<spanx style="verb">network</spanx> field is a single, deliberate cross-profile identifier
described in <xref target="receipt-schema"/>.</t>

</section>
<section anchor="evm-profile"><name>EVM Profile</name>

<t>The EVM profile inherits <xref target="I-D.evm-charge"/>. The following restrictions
apply:</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">chainId</spanx></c>
      <c>number</c>
      <c>REQUIRED</c>
      <c>Decimal EVM chain identifier.</c>
      <c><spanx style="verb">decimals</spanx></c>
      <c>number</c>
      <c>REQUIRED</c>
      <c>MUST be <spanx style="verb">6</spanx>.</c>
      <c><spanx style="verb">credentialTypes</spanx></c>
      <c>array</c>
      <c>OPTIONAL</c>
      <c>If present, MUST contain only <spanx style="verb">authorization</spanx> in v00. If absent, <spanx style="verb">authorization</spanx> is implied.</c>
</texttable>

<t>Servers MUST verify that <spanx style="verb">request.currency</spanx> is the native USDC token
contract published by Circle for <spanx style="verb">methodDetails.evm.chainId</spanx>. EVM
credentials for this profile MUST use <spanx style="verb">payload.type="authorization"</spanx>. The
authorization nonce MUST bind the selected challenge so a signed
authorization cannot be replayed across payment challenges or intents.
Servers MUST verify the EIP-3009 signature against the token contract's
actual EIP-712 domain. For v00, the token domain MUST match native USDC
for the selected chain and contract, including <spanx style="verb">chainId =
methodDetails.evm.chainId</spanx> and <spanx style="verb">verifyingContract = request.currency</spanx>.
Implementations MAY discover the domain through <spanx style="verb">eip712Domain()</spanx> where
available, <spanx style="verb">DOMAIN_SEPARATOR</spanx>, or a trusted native-USDC registry.
Deployments that require an alternate EIP-712 domain shape, including
salt-based domains, are out of scope for this profile. Because the
client signs an offchain EIP-3009 authorization, the server submits the
transaction and pays EVM gas.</t>

</section>
<section anchor="solana-profile"><name>Solana Profile</name>

<t>The Solana profile inherits <xref target="I-D.solana-charge"/>. The following
restrictions apply:</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">network</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c><spanx style="verb">mainnet</spanx>, <spanx style="verb">devnet</spanx>, or <spanx style="verb">localnet</spanx>.</c>
      <c><spanx style="verb">decimals</spanx></c>
      <c>number</c>
      <c>REQUIRED</c>
      <c>MUST be <spanx style="verb">6</spanx>.</c>
      <c><spanx style="verb">tokenProgram</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>MUST be the legacy SPL Token program ID in v00.</c>
      <c><spanx style="verb">feePayer</spanx></c>
      <c>boolean</c>
      <c>OPTIONAL</c>
      <c>Whether the server pays network fees.</c>
      <c><spanx style="verb">feePayerKey</spanx></c>
      <c>string</c>
      <c>CONDITIONAL</c>
      <c>Required when <spanx style="verb">feePayer=true</spanx>; absent otherwise.</c>
</texttable>

<t>v00 profiles native USDC on the legacy SPL Token program only. Servers
MUST reject credentials whose <spanx style="verb">tokenProgram</spanx> is not:</t>

<t><spanx style="verb">text
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
</spanx></t>

<t>The Token-2022 program is out of scope in v00. The field remains in
the schema so a later revision can admit Token-2022 USDC without
changing the wire shape.</t>

<t>Servers SHOULD verify that <spanx style="verb">tokenProgram</spanx> equals the owner program of
the mint account returned by Solana RPC. A mismatch MUST cause
credential rejection.</t>

<t>Solana credentials for this profile MUST use <spanx style="verb">payload.type="transaction"</spanx>
and inherit base Solana pull-mode verification from
<xref target="I-D.solana-charge"/>. The credential echoes the challenge, and the
server binds settlement to it through challenge consumption and
transaction-signature replay protection as defined by
<xref target="I-D.solana-charge"/>.</t>

<t>Deployments that need third-party verifier or facilitator proof MAY
define a stricter challenge-bound authorization profile in a later
version.</t>

</section>
<section anchor="stacks-profile"><name>Stacks Profile</name>

<t>Stacks uses SIP-005 <xref target="SIP-005"/> consensus-serialized transactions.</t>

<t>Unlike EVM and Solana, Stacks has no base MPP chain method to inherit
from, so this document defines server-broadcast transaction
verification directly. The server verifies the SIP-010 transfer, its
post-condition, and the origin signature, then binds settlement to the
challenge through challenge consumption and transaction-id replay
protection.</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">network</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c><spanx style="verb">mainnet</spanx> or <spanx style="verb">testnet</spanx>.</c>
      <c><spanx style="verb">chainId</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Decimal Stacks chain id, <spanx style="verb">1</spanx> for mainnet or <spanx style="verb">2147483648</spanx> for testnet.</c>
      <c><spanx style="verb">contractAddress</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Stacks standard principal for the USDCx SIP-010 token contract.</c>
      <c><spanx style="verb">contractName</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Contract name component of the SIP-010 token contract.</c>
      <c><spanx style="verb">assetName</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Fungible-asset identifier inside the SIP-010 contract.</c>
      <c><spanx style="verb">functionName</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>MUST be <spanx style="verb">transfer</spanx>.</c>
      <c><spanx style="verb">decimals</spanx></c>
      <c>number</c>
      <c>REQUIRED</c>
      <c>MUST be <spanx style="verb">6</spanx>.</c>
      <c><spanx style="verb">feePayer</spanx></c>
      <c>boolean</c>
      <c>OPTIONAL</c>
      <c>Whether the server sponsors fees using Stacks sponsored transaction authorization.</c>
      <c><spanx style="verb">feePayerAddress</spanx></c>
      <c>string</c>
      <c>CONDITIONAL</c>
      <c>Required when <spanx style="verb">feePayer=true</spanx>; absent otherwise.</c>
</texttable>

<t>The USDCx on Stacks mainnet token identity at publication time is:</t>

<t><spanx style="verb">text
SP120SBRBQJ00MCWS7TM5R8WJNTTKD5K0HFRC2CNE.usdcx::usdcx-token
</spanx></t>

<t>The USDCx on Stacks testnet token identity used by the examples is:</t>

<t><spanx style="verb">text
ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.usdcx::usdcx-token
</spanx></t>

<t>Servers MUST verify the advertised token tuple against the Circle
xReserve registry or an explicit implementation allowlist. Until a
public registry is available, a v00 allowlist entry MUST include
<spanx style="verb">network</spanx>, <spanx style="verb">chainId</spanx>, <spanx style="verb">contractAddress</spanx>, <spanx style="verb">contractName</spanx>, <spanx style="verb">assetName</spanx>,
<spanx style="verb">decimals</spanx>, and the xReserve control surface used for issuance and
redemption checks. A token identifier that appears only in a
partner-published registry MUST NOT be accepted if it contradicts the
Circle xReserve registry or allowlist. The parsed <spanx style="verb">methodDetails.stacks</spanx>
tuple MUST match <spanx style="verb">request.currency</spanx>.</t>

</section>
<section anchor="gateway-transfer-profile"><name>Gateway Transfer Profile</name>

<t>The Gateway Transfer profile uses Circle Gateway to move native USDC
from a payer-selected Gateway source network to the merchant's chosen
destination network. The merchant receives USDC on <spanx style="verb">destinationNetwork</spanx>,
so the payer's source-network choice is constrained by
<spanx style="verb">acceptedSources</spanx> rather than by the merchant's settlement network.</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">acceptedSources</spanx></c>
      <c>array</c>
      <c>REQUIRED</c>
      <c>CAIP-2 Gateway source networks the payer may use for this charge.</c>
      <c><spanx style="verb">destinationNetwork</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>CAIP-2 destination network where the merchant wants to receive USDC.</c>
      <c><spanx style="verb">maxFee</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Absolute upper bound on the signed Gateway authorization fee cap, in USDC base units.</c>
      <c><spanx style="verb">maxFeeBps</spanx></c>
      <c>number</c>
      <c>OPTIONAL</c>
      <c>Additional ratio cap. When present, <spanx style="verb">authorizationFeeCap * 10000 &lt;= request.amount * maxFeeBps</spanx>.</c>
      <c><spanx style="verb">credentialTypes</spanx></c>
      <c>array</c>
      <c>OPTIONAL</c>
      <c>If present, MUST contain only <spanx style="verb">transfer</spanx> in v00. If absent, <spanx style="verb">transfer</spanx> is implied.</c>
</texttable>

<t>Gateway network fields use CAIP-2 <xref target="CAIP-2"/> identifiers. Gateway
account identifiers use CAIP-10 <xref target="CAIP-10"/> account IDs in the form
<spanx style="verb">&lt;CAIP-2 network&gt;:&lt;account address&gt;</spanx>.</t>

<t>Circle Gateway maps source and destination networks to Gateway domains,
token identifiers, wallet contracts, minter contracts, recipient setup
options, and signing bytes. Those details are resolved by Circle
Gateway APIs or a conforming SDK. They are not carried in
<spanx style="verb">methodDetails</spanx>.</t>

<t>v00 allows any Circle Gateway-supported source and destination pair,
including EVM to Solana, Solana to EVM, and same-family transfers.
Servers MUST reject credentials for a route that Circle Gateway does
not support at authorization time.</t>

<t>For v00, a Gateway Transfer credential selects one source network from
<spanx style="verb">acceptedSources</spanx>. <spanx style="verb">acceptedSources</spanx> is the merchant's accepted set;
<spanx style="verb">payload.sourceNetwork</spanx> is the payer's selected source for this
charge.</t>

<t>For Solana destinations, <spanx style="verb">request.recipient</spanx> identifies the merchant's
Solana owner address. The signed Gateway authorization settles to a
USDC token account for that owner. Associated token account creation and
recipient setup options are Gateway authorization fields, not
PaymentAuth <spanx style="verb">methodDetails</spanx>.</t>

<t><spanx style="verb">maxFee</spanx> is separate from <spanx style="verb">amount</spanx>. It is a cap, not the fee paid.
The payer pays Gateway Transfer fees from the source depositor's
Gateway balance, in addition to the merchant amount. The server MUST
reject a Gateway authorization whose fee cap exceeds
<spanx style="verb">methodDetails.gateway.maxFee</spanx>.</t>

<t>If <spanx style="verb">maxFeeBps</spanx> is present, the signed Gateway authorization fee cap
MUST also satisfy the ratio cap:
<spanx style="verb">authorizationFeeCap * 10000 &lt;= request.amount * maxFeeBps</spanx>. When
both caps are present, the signed fee cap MUST satisfy both.</t>

<t>The Gateway TransferSpec value MUST equal <spanx style="verb">request.amount</spanx>. Circle
Gateway validates that the source depositor has enough Gateway balance
to cover the TransferSpec value plus the fee charged for the accepted
transfer. Clients SHOULD present <spanx style="verb">amount + maxFee</spanx> as the payer's
worst-case spend.</t>

<t>Servers verify the Gateway authorization against the PaymentAuth
request before submission.</t>

<t>This draft relies on Circle Gateway for route discovery
<xref target="CIRCLE-GATEWAY-INFO"/>, fee estimation <xref target="CIRCLE-GATEWAY-ESTIMATE"/>,
signing material and submission <xref target="CIRCLE-GATEWAY-TRANSFER"/>, transfer
status <xref target="CIRCLE-GATEWAY-TRANSFER-STATUS"/>, and TransferSpec lookup
<xref target="CIRCLE-GATEWAY-TRANSFER-SPEC"/>. It does not copy Gateway attestation
bytes, contract ABI details, or SDK routing tables into the PaymentAuth
request. Circle Gateway validates Gateway encoding, signatures, Gateway
replay, route support, fee calculation, and transfer validity.</t>

<section anchor="gateway-transfer-salt-binding"><name>Gateway Transfer Salt Binding</name>

<t>Each Gateway TransferSpec used for this profile MUST carry a
challenge-bound <spanx style="verb">salt</spanx>. In v00, the salt binding is:</t>

<t><spanx style="verb">text
keccak256(UTF-8 bytes of JCS({
  "id": "CHALLENGE_ID",
  "method": "usdc",
  "realm": "CHALLENGE_REALM",
  "intent": "charge",
  "type": "gateway",
  "requestHash": "REQUEST_HASH",
  "sourceNetwork": "SELECTED_SOURCE_NETWORK",
  "destinationNetwork": "DESTINATION_NETWORK",
  "sourceDepositor": "SOURCE_DEPOSITOR_ACCOUNT",
  "sourceSigner": "SOURCE_SIGNER_ACCOUNT",
  "recipient": "REQUEST_RECIPIENT",
  "destinationRecipient": "DESTINATION_RECIPIENT_ACCOUNT",
  "amount": "TRANSFER_SPEC_VALUE",
  "maxFee": "GATEWAY_AUTHORIZATION_FEE_CAP"
}))
</spanx></t>

<t><spanx style="verb">requestHash</spanx> is <spanx style="verb">keccak256</spanx> of the UTF-8 bytes of the exact
JCS-canonicalized request JSON before base64url encoding. The server
MUST recompute this binding before treating the Gateway authorization
as valid for the selected challenge.</t>

<t>All account values in the salt preimage use PaymentAuth-normalized
strings, not raw Gateway ABI byte strings. <spanx style="verb">sourceDepositor</spanx> is the
exact <spanx style="verb">credential.source</spanx> CAIP-10 account after normal CAIP-10
validation. <spanx style="verb">sourceSigner</spanx> is the Gateway account whose signature
authorizes the transfer. It MAY equal <spanx style="verb">sourceDepositor</spanx> or be an
account that Circle Gateway accepts as an authorized delegate for that
depositor.
<spanx style="verb">destinationRecipient</spanx> is the chain account that receives the settled
funds, encoded as CAIP-10 on <spanx style="verb">destinationNetwork</spanx>. For EVM networks,
address comparisons and CAIP-10 account strings use the lowercase
20-byte <spanx style="verb">0x</spanx> address. For Solana networks, account strings use the
base58 public key.</t>

<t>If the Gateway authorization carries recipient setup options, the
PaymentAuth verifier MUST confirm that those options are bound to
<spanx style="verb">request.recipient</spanx> before submitting the authorization. For Solana
destinations, this means any associated-token-account setup must use
<spanx style="verb">request.recipient</spanx> as the token account owner.</t>

<t>The PaymentAuth verifier MUST inspect the Gateway authorization
material before submitting it to Circle Gateway. The verifier MUST be
able to read, either directly or through a conforming SDK, the signed
Gateway fields needed by <xref target="verification-procedure"/>. It MUST submit the
same signed authorization package it inspected. Because <spanx style="verb">salt</spanx> is part of the
signed Gateway TransferSpec, changing the salt changes the Gateway
authorization and causes Circle Gateway validation to fail. The client
does not supply <spanx style="verb">transferSpecHash</spanx> as a credential field; Circle
Gateway returns it later as receipt evidence for the transfer item that
was accepted.</t>

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

<t>EVM credentials use <xref target="I-D.evm-charge"/> authorization payloads, except
for the nonce derivation, which this profile overrides as defined
below. Solana credentials inherit <xref target="I-D.solana-charge"/> pull-mode
transaction payloads. Stacks and Gateway Transfer define their
profile-specific payloads below.</t>

<t>For EVM authorization credentials, the EIP-3009 fields are carried
directly in <spanx style="verb">payload</spanx> as defined by <xref target="I-D.evm-charge"/>. <spanx style="verb">payload.nonce</spanx>
MUST be a <spanx style="verb">0x</spanx>-prefixed lowercase zero-padded 66-character hex string
representing exactly 32 bytes. The nonce MUST equal:</t>

<t><spanx style="verb">text
keccak256(UTF-8 bytes of JCS({
  "id": "CHALLENGE_ID",
  "method": "usdc",
  "realm": "CHALLENGE_REALM",
  "intent": "charge",
  "requestHash": "REQUEST_HASH"
}))
</spanx></t>

<t><spanx style="verb">requestHash</spanx> is <spanx style="verb">keccak256</spanx> of the UTF-8 bytes of the exact
JCS-canonicalized request JSON before base64url encoding.</t>

<t>This nonce derivation overrides, and does not inherit, the base EVM
charge profile's derivation in <xref target="I-D.evm-charge"/>. The base EVM profile
binds EIP-3009 authorization nonces to <spanx style="verb">challenge.id</spanx> and
<spanx style="verb">challenge.realm</spanx>. The <spanx style="verb">usdc</spanx> profile also binds the method, intent, and
request hash, so an authorization cannot move between <spanx style="verb">evm</spanx>, <spanx style="verb">usdc</spanx>,
<spanx style="verb">charge</spanx>, another intent, or a different request with the same amount and
recipient. Because the derivation differs, a generic <spanx style="verb">method="evm"</spanx>
verifier computes a different expected nonce and will reject these
credentials; <spanx style="verb">usdc</spanx> EVM credentials are therefore not interchangeable
with <spanx style="verb">method="evm"</spanx> credentials.</t>

<t>When present, the EVM credential <spanx style="verb">source</spanx> follows <xref target="I-D.evm-charge"/> and
is OPTIONAL; the RECOMMENDED form is
<spanx style="verb">did:pkh:eip155:&lt;chainId&gt;:&lt;address&gt;</spanx>.</t>

<t>For Solana transaction credentials, the credential object contains:</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">challenge</spanx></c>
      <c>object</c>
      <c>REQUIRED</c>
      <c>Echo of the server challenge.</c>
      <c><spanx style="verb">payload</spanx></c>
      <c>object</c>
      <c>REQUIRED</c>
      <c>Solana payment payload.</c>
      <c><spanx style="verb">source</spanx></c>
      <c>string</c>
      <c>OPTIONAL</c>
      <c>Payer account, per <xref target="I-D.solana-charge"/>. MAY be a base58 public key or a DID (RECOMMENDED <spanx style="verb">did:pkh:solana:&lt;genesis-hash-prefix&gt;:&lt;pubkey&gt;</spanx>).</c>
</texttable>

<t>The Solana <spanx style="verb">payload.type</spanx> MUST be <spanx style="verb">transaction</spanx>. The payload carries:</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">type</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>MUST be <spanx style="verb">transaction</spanx>.</c>
      <c><spanx style="verb">transaction</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Base64-encoded serialized Solana transaction.</c>
</texttable>

<t>For Stacks, the credential object contains:</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">challenge</spanx></c>
      <c>object</c>
      <c>REQUIRED</c>
      <c>Echo of the server challenge.</c>
      <c><spanx style="verb">payload</spanx></c>
      <c>object</c>
      <c>REQUIRED</c>
      <c>Payment payload.</c>
      <c><spanx style="verb">source</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>CAIP-10 account ID using <spanx style="verb">stacks:&lt;chainId&gt;:&lt;standard-principal&gt;</spanx>.</c>
</texttable>

<t>The Stacks <spanx style="verb">source</spanx> principal MUST be a c32check-encoded standard
principal. Contract principals MAY appear as <spanx style="verb">request.recipient</spanx>, but
MUST NOT appear as <spanx style="verb">source</spanx>.</t>

<t>The Stacks <spanx style="verb">payload.type</spanx> MUST be <spanx style="verb">transaction</spanx>. The payload carries:</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">type</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>MUST be <spanx style="verb">transaction</spanx>.</c>
      <c><spanx style="verb">transaction</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Base64-encoded Stacks consensus-serialized transaction.</c>
      <c><spanx style="verb">transactionFormat</spanx></c>
      <c>string</c>
      <c>OPTIONAL</c>
      <c>MUST be <spanx style="verb">stacks_transaction_v1</spanx> when present.</c>
</texttable>

<t>The Stacks transaction MUST call the SIP-010 <spanx style="verb">transfer</spanx> function with
<spanx style="verb">amount</spanx>, <spanx style="verb">sender</spanx>, <spanx style="verb">recipient</spanx>, and optional memo arguments. It MUST
include a post-condition that pins a <spanx style="verb">SentEq</spanx> transfer of
<spanx style="verb">request.amount</spanx> for the advertised USDCx asset.</t>

<t>When present, <spanx style="verb">transactionFormat</spanx> MUST be <spanx style="verb">stacks_transaction_v1</spanx>. For
Stacks, origin and sponsor signatures are carried in the transaction
auth field, not in a separate credential field.</t>

<section anchor="gateway-transfer-credential"><name>Gateway Transfer Credential</name>

<t>For Gateway Transfer, the credential object contains:</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">challenge</spanx></c>
      <c>object</c>
      <c>REQUIRED</c>
      <c>Echo of the server challenge.</c>
      <c><spanx style="verb">payload</spanx></c>
      <c>object</c>
      <c>REQUIRED</c>
      <c>Gateway Transfer payload.</c>
      <c><spanx style="verb">source</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>CAIP-10 source depositor account ID.</c>
</texttable>

<t>The Gateway Transfer <spanx style="verb">payload.type</spanx> MUST be <spanx style="verb">transfer</spanx>. This value is
scoped to <spanx style="verb">methodDetails.type="gateway"</spanx>. The payload carries the
selected source for this charge. It does not repeat the full
<spanx style="verb">acceptedSources</spanx> list from the request.</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">type</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>MUST be <spanx style="verb">transfer</spanx>.</c>
      <c><spanx style="verb">sourceNetwork</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Selected CAIP-2 source network. MUST be one entry from <spanx style="verb">methodDetails.gateway.acceptedSources</spanx>.</c>
      <c><spanx style="verb">destinationNetwork</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>CAIP-2 destination network.</c>
      <c><spanx style="verb">maxFee</spanx></c>
      <c>string</c>
      <c>REQUIRED</c>
      <c>Maximum Gateway fee authorized by the payer, in USDC base units.</c>
      <c><spanx style="verb">authorization</spanx></c>
      <c>object</c>
      <c>REQUIRED</c>
      <c>Circle Gateway signed authorization package, or SDK-produced versioned object, for the selected source network.</c>
</texttable>

<t>The Gateway authorization package represents one Gateway transfer for
the selected source network. Its internal encoding is Circle Gateway
versioned data, not a PaymentAuth extension point. When this document
names Gateway fields such as source depositor, source signer,
TransferSpec value, fee cap, destination recipient, recipient setup
options, or salt, it refers to their Gateway semantics. The wire object
MAY carry those values under versioned Gateway field names. The
authorization object MUST expose the signed fields required by
<xref target="verification-procedure"/> to the verifier.</t>

<t>The surrounding PaymentAuth credential binds that Gateway package to
<spanx style="verb">credential.challenge.id</spanx> and <spanx style="verb">credential.challenge.realm</spanx> by requiring
the signed TransferSpec salt to equal the challenge-bound salt defined in
<xref target="gateway-transfer-salt-binding"/>. <spanx style="verb">sourceSigner</spanx> is the account that
signs the Gateway authorization. It can be the same account as
<spanx style="verb">sourceDepositor</spanx>, or an account Circle Gateway accepts as an authorized
delegate for that depositor. If <spanx style="verb">sourceSigner</spanx> is a contract account,
Circle Gateway also applies its contract-signature validation rules.</t>

</section>
</section>
<section anchor="verification-procedure"><name>Verification Procedure</name>

<t>All profiles MUST perform these common checks before chain-specific
verification:</t>

<t><list style="numbers" type="1">
  <t>Decode and JCS-verify the request and credential envelopes.</t>
  <t>Verify <spanx style="verb">method="usdc"</spanx> and <spanx style="verb">intent="charge"</spanx>.</t>
  <t>Verify <spanx style="verb">credential.challenge</spanx> matches the selected challenge.</t>
  <t>Verify the challenge has not expired.</t>
  <t>Verify <spanx style="verb">methodDetails.type</spanx> is present, exactly one profile object
is present, and the present object key matches <spanx style="verb">methodDetails.type</spanx>.</t>
  <t>Verify <spanx style="verb">amount</spanx> is a positive integer in base units.</t>
  <t>Verify the selected token is a supported USDC asset form for the
selected profile.</t>
  <t>Verify the payer and recipient are not present in the applicable
blocklist.</t>
  <t>Verify the token contract or mint is not paused where that control
exists.</t>
  <t>Verify replay protection for the selected credential type.</t>
</list></t>

<t>For USDCx on Stacks, the applicable controls include the Circle xReserve
controls and any partner-chain token controls required by local policy.</t>

<t>For EVM, servers then apply <xref target="I-D.evm-charge"/> verification with the
USDC restrictions in <xref target="evm-profile"/>. Servers MUST verify
<spanx style="verb">methodDetails.type = "evm"</spanx>. For <spanx style="verb">payload.type="authorization"</spanx>,
the EIP-3009 fields are carried directly in <spanx style="verb">payload</spanx> as defined by
<xref target="I-D.evm-charge"/>. The server MUST verify <spanx style="verb">payload.to</spanx> and
<spanx style="verb">request.recipient</spanx> identify the same 20-byte EVM address,
<spanx style="verb">payload.value = request.amount</spanx>, and <spanx style="verb">payload.nonce</spanx> equals the
challenge-bound nonce derivation before it submits the authorization. EVM
address equality is byte equality after hexadecimal decoding, not
case-sensitive string equality.</t>

<t>For Solana, servers then apply <xref target="I-D.solana-charge"/> verification with
the USDC restrictions in <xref target="solana-profile"/>. Servers MUST verify
<spanx style="verb">methodDetails.type = "solana"</spanx>. If <spanx style="verb">methodDetails.solana.feePayer=true</spanx>,
the transaction MUST set <spanx style="verb">methodDetails.solana.feePayerKey</spanx> as fee payer
and the only missing required signature MUST be the server fee-payer
signature. The server MUST reject any Solana credential whose
transaction bytes have already been consumed. The server MUST reject
stale transactions by verifying that the transaction uses a currently
valid recent blockhash.</t>

<t>USDC Solana verification is intentionally narrower than the generic
Solana transaction profile. Servers MUST reject transactions with
instructions outside the allowed set for this profile: SPL Token
transfer instructions for the advertised mint, associated-token-account
setup for the advertised recipient and mint when needed, bounded
Compute Budget instructions, and optional Memo instructions. Token-2022,
delegate authority, and multisig authority flows are out of scope in
v00.
Servers MUST verify that the source token account is owned by the
transfer authority, that the recipient token account is the associated
token account for <spanx style="verb">request.recipient</spanx> and <spanx style="verb">request.currency</spanx> unless an
equivalent explicit token account is allowed by local policy, and that
the token transfer amount equals <spanx style="verb">request.amount</spanx>. An equivalent
explicit token account MUST be initialized for <spanx style="verb">request.currency</spanx> and
owned by <spanx style="verb">request.recipient</spanx>.</t>

<t>When <spanx style="verb">feePayer=true</spanx>, the server MUST simulate the final transaction
after adding the fee-payer signature and MUST reject transactions whose
compute units, account writes, or fee exposure exceed local policy.</t>

<t>For Stacks, servers MUST verify:</t>

<t><list style="numbers" type="1">
  <t><spanx style="verb">payload.type = "transaction"</spanx>.</t>
  <t><spanx style="verb">methodDetails.type = "stacks"</spanx>.</t>
  <t><spanx style="verb">source</spanx> uses <spanx style="verb">stacks:&lt;chainId&gt;:&lt;standard-principal&gt;</spanx> and the
chain id matches <spanx style="verb">methodDetails.stacks.chainId</spanx>.</t>
  <t><spanx style="verb">methodDetails.stacks.decimals = 6</spanx>.</t>
  <t><spanx style="verb">request.currency</spanx> equals
<spanx style="verb">&lt;contractAddress&gt;.&lt;contractName&gt;::&lt;assetName&gt;</spanx> using the parsed
values in <spanx style="verb">methodDetails.stacks</spanx>.</t>
  <t><spanx style="verb">(contractAddress, contractName, assetName)</spanx> matches a USDCx SIP-010
token in the Circle xReserve registry or an explicit implementation
allowlist for the selected chain.</t>
  <t><spanx style="verb">payload.transaction</spanx> decodes as a SIP-005 consensus-serialized
transaction.</t>
  <t>The transaction version byte matches <spanx style="verb">methodDetails.stacks.network</spanx>
and the transaction chain id matches <spanx style="verb">methodDetails.stacks.chainId</spanx>.</t>
  <t><spanx style="verb">anchor_mode = OnChainOnly</spanx>.</t>
  <t><spanx style="verb">auth</spanx> matches <spanx style="verb">feePayer</spanx>: <spanx style="verb">Sponsored</spanx> with origin signed and
   sponsor slot empty when <spanx style="verb">feePayer=true</spanx>; otherwise <spanx style="verb">Standard</spanx> with a
   single origin signature.</t>
  <t>The origin auth signature verifies, uses a low-s secp256k1
signature, and recovers to a public key whose principal equals
<spanx style="verb">source</spanx>.</t>
  <t>When <spanx style="verb">feePayer=true</spanx>, the sponsor principal equals
<spanx style="verb">methodDetails.stacks.feePayerAddress</spanx>; the server MUST co-sign
only after fee estimation satisfies local fee policy.</t>
  <t>The payload is a <spanx style="verb">ContractCall</spanx> to <spanx style="verb">contractAddress.contractName</spanx>
with <spanx style="verb">function_name = "transfer"</spanx> and exactly the Clarity
arguments <spanx style="verb">(uint amount, principal sender, principal recipient,
(optional (buff 34)) memo)</spanx>.</t>
  <t>The sender argument equals the principal in <spanx style="verb">source</spanx>.</t>
  <t>The recipient argument equals <spanx style="verb">request.recipient</spanx>.</t>
  <t>The amount argument equals <spanx style="verb">request.amount</spanx>.</t>
  <t><spanx style="verb">post_condition_mode = Deny</spanx>.</t>
  <t>The transaction has exactly one <spanx style="verb">FungiblePostCondition</spanx> with
<spanx style="verb">principal = source-principal</spanx>, <spanx style="verb">asset_info = (contractAddress,
contractName, assetName)</spanx>, <spanx style="verb">condition_code = SentEq</spanx>, and
<spanx style="verb">amount = request.amount</spanx>.</t>
  <t>The origin auth nonce is fresh under the server's local Stacks
nonce policy.</t>
  <t>The transaction reaches the server's local Stacks confirmation
threshold.</t>
</list></t>

<t>For Gateway Transfer, servers MUST verify:</t>

<t><list style="numbers" type="1">
  <t><spanx style="verb">payload.type = "transfer"</spanx>.</t>
  <t><spanx style="verb">methodDetails.type = "gateway"</spanx>.</t>
  <t><spanx style="verb">request.currency = "usdc"</spanx>.</t>
  <t><spanx style="verb">credential.source</spanx> is a CAIP-10 account for
<spanx style="verb">payload.sourceNetwork</spanx> and identifies the source depositor.</t>
  <t><spanx style="verb">payload.sourceNetwork</spanx> is included in
<spanx style="verb">methodDetails.gateway.acceptedSources</spanx>.</t>
  <t><spanx style="verb">payload.destinationNetwork =
methodDetails.gateway.destinationNetwork</spanx>.</t>
  <t><spanx style="verb">payload.maxFee &lt;= methodDetails.gateway.maxFee</spanx>, with both values
parsed as unsigned decimal base-unit integers and compared
numerically.</t>
  <t>Circle Gateway supports the selected source network and the
destination network for native USDC settlement.</t>
  <t>The Gateway authorization package exposes one signed Gateway
transfer item to the verifier, either directly or through a
conforming SDK.</t>
  <t>The server inspects the Gateway transfer item before submission and
   submits the same signed package to Circle Gateway.</t>
  <t>The Gateway TransferSpec inside the transfer item matches the
request recipient model, source depositor, source signer,
<spanx style="verb">payload.sourceNetwork</spanx>, <spanx style="verb">payload.destinationNetwork</spanx>, and a
Circle-supported route. For EVM destinations, the TransferSpec
destination recipient MUST equal <spanx style="verb">request.recipient</spanx>. For Solana
destinations, the TransferSpec destination recipient MUST be the
USDC token account for the owner in <spanx style="verb">request.recipient</spanx>. When
Gateway recipient setup options are present, they MUST encode
<spanx style="verb">request.recipient</spanx> as the recipient owner.</t>
  <t>The Gateway TransferSpec salt matches the challenge-bound salt
defined in <xref target="gateway-transfer-salt-binding"/>.</t>
  <t>The Gateway TransferSpec value equals <spanx style="verb">request.amount</spanx>.</t>
  <t>The signed Gateway authorization fee cap equals <spanx style="verb">payload.maxFee</spanx>,
does not exceed <spanx style="verb">methodDetails.gateway.maxFee</spanx>, and, when
<spanx style="verb">methodDetails.gateway.maxFeeBps</spanx> is present, satisfies the
<spanx style="verb">maxFeeBps</spanx> ratio cap defined in <xref target="gateway-transfer-profile"/>.</t>
  <t>PaymentAuth replay protection has not already consumed the
selected challenge or the challenge-bound Gateway salt for this
source depositor.</t>
  <t>Circle Gateway accepts the signed authorization. Gateway validation
covers the Gateway signature, source signer authorization, route
support, source balance, Gateway replay, TransferSpec encoding,
TransferSpec hash, and transfer validity.</t>
  <t>Circle Gateway reports destination settlement before the server
returns success.</t>
</list></t>

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

<t>For <spanx style="verb">intent="charge"</spanx>, settlement is complete only after the
underlying chain transaction has reached the server's local
confirmation threshold.</t>

<t>For Gateway Transfer, settlement is complete only after Circle Gateway
reports destination settlement and exposes the destination transaction
hash, signature, transaction id, or equivalent final settlement
reference. After PaymentAuth verification, the server submits the
Gateway authorization through Circle Gateway or a conforming SDK. A
server MAY use Gateway forwarding <xref target="CIRCLE-GATEWAY-FORWARDING"/> to
complete the destination settlement, but it MUST NOT return a successful
charge receipt while the Gateway transfer is only estimated, submitted,
attested, pending, or confirmed but not finalized.</t>

<section anchor="gateway-transfer-non-success-outcomes"><name>Gateway Transfer Non-Success Outcomes</name>

<t>If Circle Gateway reports <spanx style="verb">failed</spanx> or <spanx style="verb">expired</spanx> before destination
settlement, the server MUST return a new <spanx style="verb">402</spanx> challenge. The client
MUST treat the original Gateway authorization as no longer reusable and
sign a new credential if it wants to retry the payment.</t>

<t>If a Gateway transfer remains <spanx style="verb">pending</spanx> past the server's payment
deadline, the server SHOULD return <spanx style="verb">402</spanx> with <spanx style="verb">Retry-After</spanx> <xref target="RFC9110"/>
and a status reference. The client SHOULD NOT sign a replacement
authorization for the same resource until the original transfer reaches
a terminal status or the server reports that it is safe to retry.</t>

<t>If the server loses transport state while submitting a Gateway
authorization, it MUST reconcile with Circle Gateway using any available
transfer or TransferSpec reference before requesting a replacement
authorization. This profile does not define repeated submission of the
same signed Gateway authorization as an idempotent client retry.</t>

<t>The server MUST NOT return a successful receipt before the selected
profile's settlement has completed. If the server wants admission before
onchain settlement, it MUST use a separate deferred-settlement method or
intent outside this document.</t>

</section>
</section>
<section anchor="receipt-schema"><name>Receipt Schema</name>

<t>Upon successful settlement, servers MUST return a <spanx style="verb">Payment-Receipt</spanx>
header per <xref target="I-D.httpauth-payment"/>. The decoded receipt payload
contains the following fields. Fields are REQUIRED unless the
description says OPTIONAL.</t>

<t>The receipt is a settlement pointer interpreted together with the
original challenge and request. It does not repeat every request or
verification field.</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">method</spanx></c>
      <c>string</c>
      <c>MUST be <spanx style="verb">usdc</spanx>.</c>
      <c><spanx style="verb">type</spanx></c>
      <c>string</c>
      <c>Selected USDC profile: <spanx style="verb">evm</spanx>, <spanx style="verb">solana</spanx>, <spanx style="verb">stacks</spanx>, or <spanx style="verb">gateway</spanx>.</c>
      <c><spanx style="verb">challengeId</spanx></c>
      <c>string</c>
      <c>Original challenge ID.</c>
      <c><spanx style="verb">reference</spanx></c>
      <c>string</c>
      <c>Final settlement reference.</c>
      <c><spanx style="verb">status</spanx></c>
      <c>string</c>
      <c>MUST be <spanx style="verb">success</spanx> only after the selected profile has completed settlement.</c>
      <c><spanx style="verb">timestamp</spanx></c>
      <c>string</c>
      <c>RFC3339 settlement time.</c>
      <c><spanx style="verb">network</spanx></c>
      <c>string</c>
      <c>CAIP-2 <xref target="CAIP-2"/> settlement network identifier.</c>
      <c><spanx style="verb">externalId</spanx></c>
      <c>string</c>
      <c>OPTIONAL. Echo of <spanx style="verb">request.externalId</spanx>.</c>
</texttable>

<t>For direct EVM, <spanx style="verb">reference</spanx> is the EVM transaction hash. For direct
Solana, <spanx style="verb">reference</spanx> is the Solana transaction signature. For direct
Stacks, <spanx style="verb">reference</spanx> is the Stacks transaction ID.</t>

<t>For Gateway Transfer, <spanx style="verb">reference</spanx> is the final destination settlement
reference exposed by Circle Gateway, and <spanx style="verb">network</spanx> MUST be
<spanx style="verb">methodDetails.gateway.destinationNetwork</spanx>. The receipt MAY include a
<spanx style="verb">gateway</spanx> object with Gateway audit handles. SDKs that do not need
Gateway reconciliation MAY ignore this object.</t>

<t>When present, the <spanx style="verb">gateway</spanx> object contains:</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">transferId</spanx></c>
      <c>string</c>
      <c>OPTIONAL</c>
      <c>Circle Gateway transfer UUID when available.</c>
      <c><spanx style="verb">sourceNetwork</spanx></c>
      <c>string</c>
      <c>OPTIONAL</c>
      <c>CAIP-2 source network used by the Gateway transfer.</c>
      <c><spanx style="verb">destinationNetwork</spanx></c>
      <c>string</c>
      <c>OPTIONAL</c>
      <c>CAIP-2 destination network. When present, MUST equal receipt <spanx style="verb">network</spanx>.</c>
      <c><spanx style="verb">transferSpecHash</spanx></c>
      <c>string</c>
      <c>OPTIONAL</c>
      <c>Gateway-returned hash of the TransferSpec used by the transfer.</c>
</texttable>

<t>The receipt <spanx style="verb">gateway.transferSpecHash</spanx> is evidence returned by Circle
Gateway. It is not supplied by the client credential. A verifier MAY
use Circle Gateway TransferSpec lookup
<xref target="CIRCLE-GATEWAY-TRANSFER-SPEC"/> to inspect the settled TransferSpec
after acceptance or settlement.</t>

<t>The receipt uses a single CAIP-2 <xref target="CAIP-2"/> <spanx style="verb">network</spanx> field for every
profile. This is a deliberate, method-wide settlement locator and
intentionally differs from the base EVM charge receipt, which uses a
numeric <spanx style="verb">chainId</spanx>, and the base Solana charge receipt, which has no
network field. A <spanx style="verb">method="usdc"</spanx> receipt consumer reads <spanx style="verb">network</spanx> for
every profile instead of branching on the profile type.</t>

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

<section anchor="supported-usdc-asset-forms"><name>Supported USDC Asset Forms</name>

<t>This profile defines which USDC asset forms can satisfy <spanx style="verb">method="usdc"</spanx>
in v00. Servers MUST verify that the selected token matches a native
USDC deployment published by Circle, or, for Stacks, a USDCx token
listed in the Circle xReserve registry or an explicit implementation
allowlist. Other bridged, wrapped, or synthetic USDC-like assets need a
separate profile or explicit method details.</t>

<t>Gateway Wallet deposits remain subject to Circle Gateway recovery and
withdrawal rules. Gateway supports delayed trustless withdrawal from
Gateway Wallet when the service is unavailable. That recovery path is
outside PaymentAuth settlement and does not make a pending Gateway
Transfer idempotently retryable.</t>

</section>
<section anchor="blocklist-and-pause-controls"><name>Blocklist and Pause Controls</name>

<t>Native USDC and USDCx on Stacks have different control surfaces. Native
USDC has token-level pause and blocklist controls on the selected
chain. For USDCx on Stacks, xReserve <xref target="CIRCLE-XRESERVE"/> source-chain
controls gate deposits and withdrawals, but those controls do not freeze
same-chain partner token transfers by themselves. Same-chain USDCx
transfers depend on the partner-chain token controls.</t>

<t>Servers MUST apply every control surface that is relevant to the
selected profile before accepting a credential. For native USDC, a
payer or recipient present in the applicable token blocklist MUST
cause rejection. For USDCx on Stacks, servers MUST check the
Circle xReserve control surface and the partner-chain token control
surface required by local policy. Cached control data MUST
have an explicit freshness bound.</t>

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

<t>Servers MUST bind each credential to the selected challenge and MUST
maintain replay protection for consumed credentials. Challenge
consumption and receipt issuance MUST be atomic: concurrent requests
presenting the same valid credential MUST produce at most one
successful receipt.</t>

<t>For EVM authorization credentials, the persistent replay key MUST
include <spanx style="verb">(chainId, verifyingContract, payload.from, payload.nonce)</spanx>.
The nonce already commits to <spanx style="verb">method</spanx>, <spanx style="verb">intent</spanx>,
<spanx style="verb">challenge.id</spanx>, <spanx style="verb">challenge.realm</spanx>, and <spanx style="verb">requestHash</spanx>, so this key
protects both onchain replay and cross-context replay.</t>

<t>For Solana transaction credentials, replay protection follows
<xref target="I-D.solana-charge"/>. Servers MUST maintain consumed transaction
signatures and atomically consume the selected challenge before
returning a successful receipt. Servers that admit pull-mode
transactions before broadcast SHOULD also deduplicate on <spanx style="verb">(network,
transactionBytesDigest)</spanx> to avoid concurrent admission of the same
serialized transaction.</t>

<t>For Stacks transaction credentials, the replay key MUST include the
transaction id after broadcast and <spanx style="verb">(stacks:CHAIN_ID,
ORIGIN_PRINCIPAL, ORIGIN_NONCE)</spanx>. Servers that admit transactions before
broadcast SHOULD also deduplicate on <spanx style="verb">(stacks:CHAIN_ID,
transactionBytesDigest)</spanx> to avoid concurrent admission of the same
serialized transaction.</t>

<t>For Gateway Transfer credentials, replay protection MUST cover the
selected challenge and the challenge-bound Gateway salt before the
server submits the authorization to Circle Gateway. A server that only
keys replay protection by source transaction or destination
transaction can submit the same signed Gateway authorization more than
once before final settlement. Circle Gateway separately enforces
Gateway-side replay when it accepts the transfer. The TransferSpec
salt binds the Gateway authorization to the PaymentAuth challenge,
request, source, destination, recipient, amount, and fee cap, as
specified in <xref target="gateway-transfer-salt-binding"/>.</t>

<t>If a deployment advertises the same merchant order through both
<spanx style="verb">method="usdc"</spanx> and a chain-specific method such as <spanx style="verb">evm</spanx> or <spanx style="verb">solana</spanx>,
it MUST enforce one logical purchase across those offers. The
deduplication key MUST be a stable merchant order key, normally
<spanx style="verb">request.externalId</spanx> when present. If <spanx style="verb">externalId</spanx> is absent, the
deployment MUST maintain an explicit equivalent-offer group outside the
credential. This is merchant order deduplication, not a replacement for
challenge replay protection. A successful receipt for one offer MUST
atomically consume the shared key so that a later credential for the
same order is rejected.</t>

</section>
<section anchor="gateway-transfer-fees"><name>Gateway Transfer Fees</name>

<t>Gateway Transfer can charge fees in addition to the merchant amount.
The request binds a maximum fee in <spanx style="verb">methodDetails.gateway.maxFee</spanx>.
Servers MUST reject Gateway authorization material that exceeds that
fee cap. If <spanx style="verb">methodDetails.gateway.maxFeeBps</spanx> is present, servers MUST
also reject authorization material whose fee cap exceeds that ratio.
Clients SHOULD present the payer's worst-case spend as <spanx style="verb">amount +
maxFee</spanx>.</t>

<t>Gateway Transfer fees are payer-paid in v00. The merchant server does
not sponsor those Gateway fees, even if it waits for destination
settlement before returning a successful <spanx style="verb">charge</spanx> receipt.</t>

</section>
<section anchor="sensitive-fields"><name>Sensitive Fields</name>

<t>USDC credentials are bearer-equivalent between signing and settlement.
Servers SHOULD avoid logging raw authorization signatures, serialized
transactions, Gateway authorization packages, or full credential
headers.</t>

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

<t>This specification registers the <spanx style="verb">usdc</spanx> payment method in the HTTP
Payment Methods Registry.</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Method Identifier</c>
      <c><spanx style="verb">usdc</spanx></c>
      <c>Description</c>
      <c>USDC payments across supported networks</c>
      <c>Reference</c>
      <c>This document</c>
      <c>Contact</c>
      <c>Harshal Bhangale, Circle Internet Group, Inc.</c>
</texttable>

<t>This document does not register <spanx style="verb">charge</spanx>; that intent is registered by
<xref target="I-D.payment-intent-charge"/>. This document states that <spanx style="verb">method="usdc"</spanx>
supports <spanx style="verb">intent="charge"</spanx> in v00.</t>

</section>
<section anchor="appendix-a-examples"><name>Appendix A. Examples</name>

<t>This appendix is informative. Field shapes are normative, example
values are not. Long signatures and chain transaction bytes are
shortened when the underlying chain format is already defined by the
referenced profile or SDK.</t>

<section anchor="a1-evm-direct-charge"><name>A.1 EVM Direct Charge</name>

<t>The decoded request is:</t>

<t><spanx style="verb">json
{
  "amount": "1000000",
  "currency": "0x3600000000000000000000000000000000000000",
  "recipient": "0xc04193C50cD2E6a1C79593e46364496Fe5fcd9b6",
  "description": "Arc Testnet USDC charge",
  "externalId": "invoice-evm-001",
  "methodDetails": {
    "type": "evm",
    "evm": {
      "chainId": 5042002,
      "decimals": 6,
      "credentialTypes": [
        "authorization"
      ]
    }
  }
}
</spanx></t>

<t>The server advertises the challenge:</t>

<t><spanx style="verb">http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment realm="api.example.com", method="usdc", intent="charge", id="usdc_evm_direct_001", request="eyJhbW91bnQiOiIxMDAwMDAwIiwiY3VycmVuY3kiOiIweDM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCJkZXNjcmlwdGlvbiI6IkFyYyBUZXN0bmV0IFVTREMgY2hhcmdlIiwiZXh0ZXJuYWxJZCI6Imludm9pY2UtZXZtLTAwMSIsIm1ldGhvZERldGFpbHMiOnsiZXZtIjp7ImNoYWluSWQiOjUwNDIwMDIsImNyZWRlbnRpYWxUeXBlcyI6WyJhdXRob3JpemF0aW9uIl0sImRlY2ltYWxzIjo2fSwidHlwZSI6ImV2bSJ9LCJyZWNpcGllbnQiOiIweGMwNDE5M0M1MGNEMkU2YTFDNzk1OTNlNDYzNjQ0OTZGZTVmY2Q5YjYifQ", expires="2026-04-01T12:05:00Z"
</spanx></t>

<t>The client returns an EIP-3009 authorization credential:</t>

<t><spanx style="verb">json
{
  "challenge": {
    "id": "usdc_evm_direct_001",
    "realm": "api.example.com",
    "method": "usdc",
    "intent": "charge",
    "request": "eyJhbW91bnQiOiIxMDAwMDAwIiwiY3VycmVuY3kiOiIweDM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCJkZXNjcmlwdGlvbiI6IkFyYyBUZXN0bmV0IFVTREMgY2hhcmdlIiwiZXh0ZXJuYWxJZCI6Imludm9pY2UtZXZtLTAwMSIsIm1ldGhvZERldGFpbHMiOnsiZXZtIjp7ImNoYWluSWQiOjUwNDIwMDIsImNyZWRlbnRpYWxUeXBlcyI6WyJhdXRob3JpemF0aW9uIl0sImRlY2ltYWxzIjo2fSwidHlwZSI6ImV2bSJ9LCJyZWNpcGllbnQiOiIweGMwNDE5M0M1MGNEMkU2YTFDNzk1OTNlNDYzNjQ0OTZGZTVmY2Q5YjYifQ",
    "expires": "2026-04-01T12:05:00Z"
  },
  "source": "did:pkh:eip155:5042002:0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
  "payload": {
    "type": "authorization",
    "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
    "to": "0xc04193c50cd2e6a1c79593e46364496fe5fcd9b6",
    "value": "1000000",
    "validAfter": "0",
    "validBefore": "1775045100",
    "nonce": "0x03e1d1aa38e2c56a0bb12e2d4562082c1c26496553f838064f3e6b4c3db9d2c2",
    "signature": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
  }
}
</spanx></t>

<t>The server submits the authorization, pays EVM gas, waits for the EVM
receipt, and returns:</t>

<t><spanx style="verb">http
HTTP/1.1 200 OK
Payment-Receipt: BASE64URL_JCS_RECEIPT
</spanx></t>

<t>The decoded receipt payload is:</t>

<t><spanx style="verb">json
{
  "method": "usdc",
  "type": "evm",
  "challengeId": "usdc_evm_direct_001",
  "reference": "0x3c5b4a1f00000000000000000000000000000000000000000000000000008d0a2c4e6b",
  "status": "success",
  "timestamp": "2026-04-01T12:00:04Z",
  "network": "eip155:5042002",
  "externalId": "invoice-evm-001"
}
</spanx></t>

<section anchor="a2-solana-direct-charge"><name>A.2 Solana Direct Charge</name>

<t>The decoded request is:</t>

<t><spanx style="verb">json
{
  "amount": "1000000",
  "currency": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
  "recipient": "AKnL4NNf3DGWZJS6cPknBuEGnVsV4A4m5tgebLHaRSZ9",
  "description": "Solana devnet USDC charge",
  "externalId": "invoice-sol-001",
  "methodDetails": {
    "type": "solana",
    "solana": {
      "network": "devnet",
      "decimals": 6,
      "tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
    }
  }
}
</spanx></t>

<t>The client returns the Solana transaction credential defined by
<xref target="I-D.solana-charge"/>:</t>

<t><spanx style="verb">json
{
  "challenge": {
    "id": "usdc_solana_direct_001",
    "realm": "api.example.com",
    "method": "usdc",
    "intent": "charge",
    "request": "eyJhbW91bnQiOiIxMDAwMDAwIiwiY3VycmVuY3kiOiI0ek1NQzlzcnQ1Umk1WDE0R0FnWGhhSGlpM0duUEFFRVJZUEpnWkpEbmNEVSIsImRlc2NyaXB0aW9uIjoiU29sYW5hIGRldm5ldCBVU0RDIGNoYXJnZSIsImV4dGVybmFsSWQiOiJpbnZvaWNlLXNvbC0wMDEiLCJtZXRob2REZXRhaWxzIjp7InNvbGFuYSI6eyJkZWNpbWFscyI6NiwibmV0d29yayI6ImRldm5ldCIsInRva2VuUHJvZ3JhbSI6IlRva2Vua2VnUWZlWnlpTndBSmJOYkdLUEZYQ1d1QnZmOVNzNjIzVlE1REEifSwidHlwZSI6InNvbGFuYSJ9LCJyZWNpcGllbnQiOiJBS25MNE5OZjNER1daSlM2Y1BrbkJ1RUduVnNWNEE0bTV0Z2ViTEhhUlNaOSJ9",
    "expires": "2026-04-01T12:05:00Z"
  },
  "source": "did:pkh:solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1:DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy",
  "payload": {
    "type": "transaction",
    "transaction": "BASE64_SOLANA_TRANSACTION"
  }
}
</spanx></t>

<t>This example omits <spanx style="verb">methodDetails.solana.feePayer</spanx>, so the client pays
the Solana transaction fee. If <spanx style="verb">feePayer=true</spanx>, the transaction leaves
the server fee-payer signature as the only missing required signature.</t>

<t>After the transaction reaches the required commitment level, the server
returns:</t>

<t><spanx style="verb">http
HTTP/1.1 200 OK
Payment-Receipt: BASE64URL_JCS_RECEIPT
</spanx></t>

<t>The decoded receipt payload is:</t>

<t><spanx style="verb">json
{
  "method": "usdc",
  "type": "solana",
  "challengeId": "usdc_solana_direct_001",
  "reference": "5j7s2KpP4uYc8LmZqEhNwR3vJbXt6yA1DsVfBgCoM9TpHxUeQk",
  "status": "success",
  "timestamp": "2026-04-01T12:00:05Z",
  "network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
  "externalId": "invoice-sol-001"
}
</spanx></t>

</section>
<section anchor="a3-stacks-direct-charge"><name>A.3 Stacks Direct Charge</name>

<t>The decoded request is:</t>

<t><spanx style="verb">json
{
  "amount": "1000000",
  "currency": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.usdcx::usdcx-token",
  "recipient": "ST3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8NQXMNRQ",
  "description": "Stacks testnet USDCx charge",
  "externalId": "invoice-stx-001",
  "methodDetails": {
    "type": "stacks",
    "stacks": {
      "network": "testnet",
      "chainId": "2147483648",
      "contractAddress": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM",
      "contractName": "usdcx",
      "assetName": "usdcx-token",
      "functionName": "transfer",
      "decimals": 6,
      "feePayer": true,
      "feePayerAddress": "ST4488BK2MKPFQBWPC7YYZKCRMQN52ST0ZV6EWT5"
    }
  }
}
</spanx></t>

<t>The client returns a Stacks transaction credential:</t>

<t><spanx style="verb">json
{
  "challenge": {
    "id": "usdc_stacks_direct_001",
    "realm": "api.example.com",
    "method": "usdc",
    "intent": "charge",
    "request": "eyJhbW91bnQiOiIxMDAwMDAwIiwiY3VycmVuY3kiOiJTVDFQUUhRS1YwUkpYWkZZMURHWDhNTlNOWVZFM1ZHWkpTUlRQR1pHTS51c2RjeDo6dXNkY3gtdG9rZW4iLCJkZXNjcmlwdGlvbiI6IlN0YWNrcyB0ZXN0bmV0IFVTREN4IGNoYXJnZSIsImV4dGVybmFsSWQiOiJpbnZvaWNlLXN0eC0wMDEiLCJtZXRob2REZXRhaWxzIjp7InN0YWNrcyI6eyJhc3NldE5hbWUiOiJ1c2RjeC10b2tlbiIsImNoYWluSWQiOiIyMTQ3NDgzNjQ4IiwiY29udHJhY3RBZGRyZXNzIjoiU1QxUFFIUUtWMFJKWFpGWTFER1g4TU5TTllWRTNWR1pKU1JUUEdaR00iLCJjb250cmFjdE5hbWUiOiJ1c2RjeCIsImRlY2ltYWxzIjo2LCJmZWVQYXllciI6dHJ1ZSwiZmVlUGF5ZXJBZGRyZXNzIjoiU1Q0NDg4QksyTUtQRlFCV1BDN1lZWktDUk1RTjUyU1QwWlY2RVdUNSIsImZ1bmN0aW9uTmFtZSI6InRyYW5zZmVyIiwibmV0d29yayI6InRlc3RuZXQifSwidHlwZSI6InN0YWNrcyJ9LCJyZWNpcGllbnQiOiJTVDNGQlIyQUdLNUg5UUJESDNFRU42REY4RUs4Slk3Ulg4TlFYTU5SUSJ9",
    "expires": "2026-04-01T12:05:00Z"
  },
  "source": "stacks:2147483648:ST8H248H248H248H248H248H248H248H26RCPJ4T",
  "payload": {
    "type": "transaction",
    "transaction": "BASE64_SIP005_SERIALIZED_TRANSACTION",
    "transactionFormat": "stacks_transaction_v1"
  }
}
</spanx></t>

<t>The server sponsors, broadcasts, waits for the Stacks transaction, and
returns:</t>

<t><spanx style="verb">http
HTTP/1.1 200 OK
Payment-Receipt: BASE64URL_JCS_RECEIPT
</spanx></t>

<t>The decoded receipt payload is:</t>

<t><spanx style="verb">json
{
  "method": "usdc",
  "type": "stacks",
  "challengeId": "usdc_stacks_direct_001",
  "reference": "0x9a1b2c3d4e5f60718293a4b5c6d7e8f9a0b1c2d3e4f50617283a4b5c6d7e8f90",
  "status": "success",
  "timestamp": "2026-04-01T12:01:45Z",
  "network": "stacks:2147483648",
  "externalId": "invoice-stx-001"
}
</spanx></t>

</section>
<section anchor="a4-gateway-transfer-charge"><name>A.4 Gateway Transfer Charge</name>

<t>This example shows an Arc Testnet source paying a Solana Devnet
merchant through Circle Gateway. The <spanx style="verb">recipient</spanx> is the merchant's
Solana owner address; the Gateway transfer uses the owner's USDC
token account as <spanx style="verb">spec.destinationRecipient</spanx>. The same profile also
supports Solana to EVM when Circle Gateway supports that route. The
example lists two accepted sources for readability.</t>

<t>The decoded request is:</t>

<t><spanx style="verb">json
{
  "amount": "25000000",
  "currency": "usdc",
  "recipient": "AKnL4NNf3DGWZJS6cPknBuEGnVsV4A4m5tgebLHaRSZ9",
  "description": "Arc Gateway balance to Solana merchant",
  "externalId": "invoice-gw-001",
  "methodDetails": {
    "type": "gateway",
    "gateway": {
      "acceptedSources": [
        "eip155:5042002",
        "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"
      ],
      "destinationNetwork": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
      "maxFee": "500000",
      "credentialTypes": [
        "transfer"
      ]
    }
  }
}
</spanx></t>

<t>The server advertises the challenge:</t>

<t><spanx style="verb">http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment realm="api.example.com", method="usdc", intent="charge", id="usdc_gateway_transfer_001", request="eyJhbW91bnQiOiIyNTAwMDAwMCIsImN1cnJlbmN5IjoidXNkYyIsImRlc2NyaXB0aW9uIjoiQXJjIEdhdGV3YXkgYmFsYW5jZSB0byBTb2xhbmEgbWVyY2hhbnQiLCJleHRlcm5hbElkIjoiaW52b2ljZS1ndy0wMDEiLCJtZXRob2REZXRhaWxzIjp7ImdhdGV3YXkiOnsiYWNjZXB0ZWRTb3VyY2VzIjpbImVpcDE1NTo1MDQyMDAyIiwic29sYW5hOkV0V1RSQUJaYVlxNmlNZmVZS291UnUxNjZWVTJ4cWExIl0sImNyZWRlbnRpYWxUeXBlcyI6WyJ0cmFuc2ZlciJdLCJkZXN0aW5hdGlvbk5ldHdvcmsiOiJzb2xhbmE6RXRXVFJBQlphWXE2aU1mZVlLb3VSdTE2NlZVMnhxYTEiLCJtYXhGZWUiOiI1MDAwMDAifSwidHlwZSI6ImdhdGV3YXkifSwicmVjaXBpZW50IjoiQUtuTDROTmYzREdXWkpTNmNQa25CdUVHblZzVjRBNG01dGdlYkxIYVJTWjkifQ", expires="2026-04-01T12:05:00Z"
</spanx></t>

<t>The client returns a Gateway Transfer credential. The nested Gateway
authorization object below is SDK-produced and illustrative; signatures,
salts, hashes, and transaction bytes are not self-verifying test
vectors.</t>

<t><spanx style="verb">json
{
  "challenge": {
    "id": "usdc_gateway_transfer_001",
    "realm": "api.example.com",
    "method": "usdc",
    "intent": "charge",
    "request": "eyJhbW91bnQiOiIyNTAwMDAwMCIsImN1cnJlbmN5IjoidXNkYyIsImRlc2NyaXB0aW9uIjoiQXJjIEdhdGV3YXkgYmFsYW5jZSB0byBTb2xhbmEgbWVyY2hhbnQiLCJleHRlcm5hbElkIjoiaW52b2ljZS1ndy0wMDEiLCJtZXRob2REZXRhaWxzIjp7ImdhdGV3YXkiOnsiYWNjZXB0ZWRTb3VyY2VzIjpbImVpcDE1NTo1MDQyMDAyIiwic29sYW5hOkV0V1RSQUJaYVlxNmlNZmVZS291UnUxNjZWVTJ4cWExIl0sImNyZWRlbnRpYWxUeXBlcyI6WyJ0cmFuc2ZlciJdLCJkZXN0aW5hdGlvbk5ldHdvcmsiOiJzb2xhbmE6RXRXVFJBQlphWXE2aU1mZVlLb3VSdTE2NlZVMnhxYTEiLCJtYXhGZWUiOiI1MDAwMDAifSwidHlwZSI6ImdhdGV3YXkifSwicmVjaXBpZW50IjoiQUtuTDROTmYzREdXWkpTNmNQa25CdUVHblZzVjRBNG01dGdlYkxIYVJTWjkifQ",
    "expires": "2026-04-01T12:05:00Z"
  },
  "source": "eip155:5042002:0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
  "payload": {
    "type": "transfer",
    "sourceNetwork": "eip155:5042002",
    "destinationNetwork": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
    "maxFee": "500000",
    "authorization": {
      "format": "circle-gateway-v1",
      "transfer": {
        "burnIntent": {
          "maxBlockHeight": "39350204",
          "maxFee": "500000",
          "spec": {
            "version": 1,
            "sourceDomain": 26,
            "destinationDomain": 5,
            "sourceContract": "0x0000000000000000000000000077777d7eba4688bdef3e311b846f25870a19b9",
            "destinationContract": "0x0000000000000000000000000000000000000000000000000000000000000005",
            "sourceToken": "0x0000000000000000000000003600000000000000000000000000000000000000",
            "destinationToken": "0x0000000000000000000000000000000000000000000000000000000000000006",
            "sourceDepositor": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266",
            "destinationRecipient": "0xedc636e0401e29c099ea2703806591e6e40beec1091507025dbbfe6d63761fe2",
            "sourceSigner": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266",
            "destinationCaller": "0x0000000000000000000000000000000000000000000000000000000000000000",
            "value": "25000000",
            "salt": "0xab85000000000000000000000000000000000000000000000000000000000000"
          },
          "recipientSetupOptions": {
            "includeRecipientSetup": true,
            "recipientOwnerAddress": "0x8a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c"
          }
        },
        "signature": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
      }
    }
  }
}
</spanx></t>

<t>The payer authorizes up to 0.50 USDC in Gateway fees on top of the 25.00
USDC merchant amount. The server submits the Gateway authorization to
Circle Gateway, waits for destination settlement, and returns a receipt
that includes the Gateway-returned <spanx style="verb">transferSpecHash</spanx>:</t>

<t><spanx style="verb">http
HTTP/1.1 200 OK
Payment-Receipt: BASE64URL_JCS_RECEIPT
</spanx></t>

<t>The decoded receipt payload is:</t>

<t><spanx style="verb">json
{
  "method": "usdc",
  "type": "gateway",
  "challengeId": "usdc_gateway_transfer_001",
  "reference": "5j7s2KpP4uYc8LmZqEhNwR3vJbXt6yA1DsVfBgCoM9TpHxUeQk",
  "status": "success",
  "timestamp": "2026-04-01T12:02:17Z",
  "network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
  "externalId": "invoice-gw-001",
  "gateway": {
    "transferId": "550e8400-e29b-41d4-a716-446655440000",
    "sourceNetwork": "eip155:5042002",
    "destinationNetwork": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
    "transferSpecHash": "0xca85000000000000000000000000000000000000000000000000000000000000"
  }
}
</spanx></t>

</section>
</section>
</section>


  </middle>

  <back>


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

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

&RFC2119;
&RFC8174;
&RFC8785;
&RFC9110;
<reference anchor="I-D.httpauth-payment" target="https://datatracker.ietf.org/doc/draft-ietf-httpauth-payment/">
  <front>
    <title>The 'Payment' HTTP Authentication Scheme</title>
    <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>
<reference anchor="I-D.evm-charge" target="https://paymentauth.org/draft-evm-charge-00.html">
  <front>
    <title>EVM Charge Intent for HTTP Payment Authentication</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="I-D.solana-charge" target="https://paymentauth.org/draft-solana-charge-00.html">
  <front>
    <title>Solana Charge Intent for HTTP Payment Authentication</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CAIP-2" target="https://chainagnostic.org/CAIPs/caip-2">
  <front>
    <title>Chain Agnostic Improvement Proposal 2</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CAIP-10" target="https://chainagnostic.org/CAIPs/caip-10">
  <front>
    <title>Chain Agnostic Improvement Proposal 10</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="SIP-005" target="https://raw.githubusercontent.com/stacksgov/sips/main/sips/sip-005/sip-005-blocks-and-transactions.md">
  <front>
    <title>Stacks Blocks, Transactions, and Accounts</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="SIP-010" target="https://raw.githubusercontent.com/stacksgov/sips/main/sips/sip-010/sip-010-fungible-token-standard.md">
  <front>
    <title>Stacks Fungible Token Standard</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CIRCLE-GATEWAY-INFO" target="https://developers.circle.com/api-reference/gateway/all/get-gateway-info">
  <front>
    <title>Circle Gateway GET /v1/info</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CIRCLE-GATEWAY-ESTIMATE" target="https://developers.circle.com/api-reference/gateway/all/estimate-transfer">
  <front>
    <title>Circle Gateway POST /v1/estimate</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CIRCLE-GATEWAY-TRANSFER" target="https://developers.circle.com/api-reference/gateway/all/create-transfer-attestation">
  <front>
    <title>Circle Gateway POST /v1/transfer</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CIRCLE-GATEWAY-TRANSFER-STATUS" target="https://developers.circle.com/api-reference/gateway/all/get-transfer-by-id">
  <front>
    <title>Circle Gateway GET /v1/transfer/{id}</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CIRCLE-GATEWAY-TRANSFER-SPEC" target="https://developers.circle.com/api-reference/gateway/all/get-transfer-spec">
  <front>
    <title>Circle Gateway GET /v1/transferSpec/{transferSpecHash}</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

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

<reference anchor="CIRCLE-GATEWAY-FORWARDING" target="https://developers.circle.com/gateway/howtos/forwarding-service">
  <front>
    <title>Circle Gateway Forwarding Service guide</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CIRCLE-USDC-ADDRESSES" target="https://developers.circle.com/stablecoins/usdc-contract-addresses">
  <front>
    <title>Circle USDC Contract Addresses</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CIRCLE-XRESERVE" target="https://developers.circle.com/xreserve">
  <front>
    <title>Circle xReserve architecture</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

</references>



  </back>

<!-- ##markdown-source:
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
sFXtVo9mN8eTSe84mJ9V3dVV6+ioe316f9Waz24e563htNO6JuTRDUb1ztq5
3WeU8Dn0r+o70d1Nc9I+BjQybQbuwf71VbV72D4GFHJ7Orun964b7vH1ejg9
igiV+Kfz4ez+ybnpBB9vO0/DgyqMt4XICZAOIJF6twU/Jw4hD0A0M3jm+Gh1
B8gD5vqIiGN4cxQheunAHBFRufWdtbNGZKLGAf3Ouk9O/Xp1dXL6dL8Ja4TI
JeDP4L/Z1c19cDML5v2Zu9+bnp7fPbofr1r3d5cgCC9n99Pz6w4glfaX66BV
67ZafgIB6THloaDT/V69edZpNc/vP3da3Zrr9IKz+l1tfzF8PK11r9zV9axz
02m1qsP+dfW+fu33W5PJVdBxzqG974CD5Lqg1vKm393bv3fu/rXln429uw/h
qruqbW1dX9Vf/uXUdg+78+HB/tnL9ezww/upc3HWXB4/bZ097W8+1aLu2cH2
1sX9dvg4rdcm669AJLOal4I5xkfwBIu9T73zj3udvU8Urbl3gDGsKRHtR8ry
Yockol+vE6kc9Prko/i2Co49vMRG6ryCQeaDgec8eZFl5N/kFlhj/vKVgpR4
v7BOKygqiaJf4xAGDgDFyCszm836q6INQyzkAo58rpjEHM3P76P6h/lFY3U3
2v44vf9Xa9J57m4+nQ5vl1vrvdphdD3efzgIz3b68xNQYC4f/wi6aGbRxRtP
zVtEaRJ2bKrogj8LdvT6tYvLk8sP19Xu6e390V3t8Ph2+6zT69xdtzavjwFK
dPsXx/fHZxXcjZfdXfrBhTJzYEivv3m0363vHX9onuxc7h+ebLZana3Do+3W
h+3Tu/fd2+3O5e1Zp3uZj0EkksIw2L28BYUsX96OQrgioEIh/Fc+CpFhxDAk
tult1GuN941tULa2ja+T1Ze+aXWzrWCNJnUIXuKvdf0m/Z2xF6xcSlUv9ZAu
X/Q6nFJsDT5Expb5PDGrRmN7e/9D/QzQ1eX+zcXB+7u7+w8H3bPLTrPe61fv
r7daN/3m22CW83oAzTdiKL4O6S+JoU7714dHl1dXk26vdvd89Ti/u3m8vz+7
6p7cHE46/aBzfnN9f3RWuz8B7NS/CrqX3dr8pN9rggbd/ewdhlvubefxbvNh
6R7vLO5vGvkWo6BTvbvpLEbr/WrSatRpfAO2qnpfx1bSD2GryWizE7itJqzF
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

-->

</rfc>

