<?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="July" day="03"/>

    
    
    

    <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-ryan-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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
V99/w3/+x4PTx/vbzufRNHh2j4Onod/eaj8ere/W+1fweXU4va62j6773dbZ
w119MhlN3QD7v7+dVO9vT1d3Ny+n9wfwzhQ0+OnO/K5+tby/vV9+7EP7vXbU
ntYC93jydN/qws+j+fDkzD8HsYLPtD/P37ennfDuJlj1bmCOn6+eO4dtGBe+
11nf33SD4aw7hz6uvNv9YLRub93Amri33XC4eTr3pkdV52Zn1Q6q8Hw3uKsH
S3j2S/tzWB/3nn33JHi+7+HYruvD3ukOzBXa7MxHx0Ega/rsHZ9Bn63mWfWs
dnbcaZ09XtXv+keHnS+PtfN+J+gc3n3pfL6snvfvj+/719O7+mXz7vOdP77c
KEmpreiXjXq1vlWuNsrVWr9W3602d6vV+42YDOO4NwryBoBacEtBTPhpzqJp
Nj52vr5dIkND/IC+biJDnfx9zhUVRddQxBdR0EH/b8L8SxOm8GCmTtywfPoE
ZmncwIfPpa40EGa9W30Zb+6M3S2vWXMcd3t7vDVujLwtZ7i9XX9ff78zGo/H
w516fUvEjhiYsxIiybtlnGiUZuH2Tb1gs6EpFEcgFN06vFAbJYXiOCEU4T0C
ImkpzZ/7LgUyU7uJj/dJY6CX3r+HhWnW4vfIds5DqW56NRfGv7nt1UfNLac6
HNbqXt1tNLfq1e36qDaqb8GQms3N8fbmdnWrMd70toaN0aY73HHro7pqUsMi
btb7j//bKJCthfbAEl+ajFjqwaFr1JVOJiFwlg6MYJcMMcc8kQw0aJ9/sFIh
rrv2/l6vtdW46n78dHrQw0sdgav24wEWBLbmwLa8u3rSoCbmwO1X+e6GBpiC
9kbNYcOpjd+G+ZL/tt2qUx81gEDkqkwKv8R2RVmVoaqIyZyjXt2tNu75sVl8
e2fyfL8F/6mdZ4hcVz6YPwslN76cnR3sRItls+s3b2uN472H24lz4vubx7OL
vVare3dx+nB/ejgbHV7l4OS9D7OPjU5nvHl4fHN/2tsaXTzO9let49l1dN3Y
a0ybywdv+PHE6fbud3KRsr5o/ekbsHIUBm/GylL/TZ12/stAzMZm8SA2XofM
5Oe9WIQPC4eYKdXLevQeLsfe/drvPO+dDjvD4w8XR7cHN6v9p/FOL9qqb15f
Ng/3NvKxcwq0FMSeGka8TIXDlJ/t2yANv/wXRTVV77HWufwSfBnNLmtX08fa
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
fqveCe6vz2aTl7s+r8Xd7eT4nlBpu6Z8wElfabwu+DloEp9hr+b3N80q7dXV
ctU/7J73p3dfui33FrWGzrRz6dSbB+7V9ckwuP9y/bm73zmu1txjN7h7fGnf
XZ/2bz4//jFn/muh+SwjZlT2Kr8WkKoOMPSC8BlFWuJGRypoGwSraLmgWKqf
zeA/iiEHpIVJ6l5klKhLB05x/rgXjMvG3SgwJusJeg4p4u8blMr8w/dfq1f+
94n+7xP91RP9uzW3Pyv6IWV72kjU2ihwy34n2FAEGlIRGQY4GmtlcMQFe1V6
yJMBRfSM4hfh0yEwxrY60/HnPApKvT7x/IcJNb65s9ms1qsNA2C9BnF43QCT
p1rGKA2+lgK+qJWS38jtmSHmWcDX9a3U98YC64eauW2ojEqJ9Sj89x7/gRI3
dBpb29tD1xtvepu12nC7sTWuN7ffV53aznBno3gcb+3oTf+a6Y54MuQifr2D
bwpVzZ/JG3p547+t/GnoW1Ff7+QbY4vyptJNhuJ67mhrc8urNqo1r74zqu7s
eE79fRWjepo7NW/La1SHnjeqVXdqzer7ar3pDodjb8vd2ny/VRt79fzp8N2r
f/pc8H6Mr3Xz1n/pbnR4VULDNGcKwIW7hkE3/1DXRsO/JZiE1lx7WE77nKtp
Z7mGpJ52E0+nrP7pFs/RZGB4AKov2872trfpuu8b1Z1xbac5dpt1d1h3N0dD
p+m+r4+crffVneG45u40avXacLz5vrG9Xa0NG1XYveYoMQ39+2+m0pmMBxv/
Jf6pYf+Wr0rKnarq+uHIXs1R3a9WmlUOqfFniRQeqgURzlVSbL1ZqVY5xyad
sGXW4DcD0IrSKK10+bHcBKFEnUUjJo1S5siaaEmaBtFMosu4ZlS22tRfzrpp
mkZyzZuFGP8/5mmu79be/ymeZtOilLYRaXzDrzSbVW+7Ua2Wgd0Py42a2yg7
72tb5UZja6vZbDQMVvdfiu3SBMcsYuT8cdaqjvP/AVrZlwJK7gAA

-->

</rfc>

