X402 Networks and Payment Methods
Ace Data Cloud X402 currently settles around USDC and supports two types of chains: EVM and Solana. Different networks have different signing methods, asset addresses, gas behavior, and applicable scenarios, so you need to choose the network before integration.
¶ Network Identifiers Use CAIP-2
The accepts[].network of x402 v2 is a CAIP-2 identifier, not abbreviations such as base or skale. Clients must compare networks by CAIP-2 strings:
| Network | CAIP-2 Identifier |
|---|---|
| Base | eip155:8453 |
| SKALE Base | eip155:1187947933 |
| Solana mainnet | solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
¶ Support Matrix
| Network | scheme | Asset | Signing Method | Applicable Scenario |
|---|---|---|---|---|
| Base | exact |
Base USDC | EIP-3009 TransferWithAuthorization |
Recommended by default, with mature wallet and liquidity support. |
| Base | upto |
Base USDC + Permit2 | Permit2 PermitWitnessTransferFrom |
Post-metering APIs such as chat and models. |
| SKALE | exact |
SKALE bridged USDC | EIP-3009 TransferWithAuthorization |
Low gas costs, suitable for EVM payment verification and low-cost calls. |
| Solana | exact |
Solana USDC | SPL TransferChecked |
Solana wallets, Agents, or on-chain application scenarios. |
upto is currently available only on Base. Actual available items are subject to the accepts returned by the API. You can also check the Facilitator:
curl https://facilitator.acedata.cloud/supported
The response from Facilitator /supported:
{
"kinds": [
{ "x402Version": 2, "scheme": "exact", "network": "eip155:8453" },
{
"x402Version": 2,
"scheme": "upto",
"network": "eip155:8453",
"extra": { "facilitatorAddress": "0xd019238EAA8a9Ca13C5792Ca10B4029D6ce25708" }
},
{ "x402Version": 2, "scheme": "exact", "network": "eip155:1187947933" },
{
"x402Version": 2,
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"extra": { "feePayer": "3SPm6qbgsDkj24MuR8Ss4sH97fziqyCiqFKDyeVU2igq" }
}
]
}
Result description:
- The
exactof Base, SKALE, and Solana is a fixed-amount payment path. - Only Base provides the
uptopost-metering path, which depends on Permit2 approve. - The
extra.facilitatorAddressin theuptoentry is the address that the client must write into the witness when signing, and it must be consistent with the value returned by the server.
¶ Base
Base uses the official USDC contract:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
In the exact scheme, the client signs EIP-712 TransferWithAuthorization. The signature content includes:
from: payer wallet addressto: Ace Data Cloud receiving addressvalue: payment amount for this transactionvalidAfter/validBefore: signature validity time windownonce: 32-byte random nonce
After verifying the signature, the Facilitator will call USDC's transferWithAuthorization on-chain to complete the transfer.
Base is the most recommended network for production integration, especially suitable for upto post-metering, because the Permit2, USDC, and wallet ecosystems are more mature.
Base exact verification result example:
payer 0x5d4f08D5c2bb60703284bc06671Eb680fA41B105
content ADC_BASE_E2E_OK
tx 0x408430ab3451bc22a51e510cdb4b063d6b9686724fea7a31fc109af20f5cd2f3
block 46726299
explorer https://basescan.org/tx/0x408430ab3451bc22a51e510cdb4b063d6b9686724fea7a31fc109af20f5cd2f3
transfer value 95215 atomic USDC
Result description:
- The API paid retry returns the model content
ADC_BASE_E2E_OK. - The on-chain transaction can be queried on BaseScan, and the block number is
46726299. 95215atomic USDC corresponds to0.095215USDC, which is the actual settlement amount for this API call.
Program execution result for order payment Base exact:
order 78481793-304e-47f7-bc0c-8231aec9cc1e
state Finished
tx 0xfec08cc00a159ea1ec692b32faa9bf3d17595a986301169e689d94f58bc44151
block 46726704
explorer https://basescan.org/tx/0xfec08cc00a159ea1ec692b32faa9bf3d17595a986301169e689d94f58bc44151
transfer value 1200000 atomic USDC
Result description:
- The final status of the platform order is
Finished. - The order
pay_idis written with the same Base transaction hash. 1200000atomic USDC corresponds to1.2USDC, which is the historical actual payment amount for this 10 Credits order under the old policy; new orders no longer additionally enjoy an X402 payment method discount, and the specific signature amount is subject to this 402 response.
¶ SKALE
SKALE uses bridged USDC, with a signing method similar to Base, also EIP-3009. It is suitable for EVM payment scenarios with low gas costs; actual calls are still subject to the accepts returned by the API.
Typical 402 accepts of SKALE will include:
{
"network": "eip155:1187947933",
"scheme": "exact",
"extra": {
"name": "Bridged USDC (SKALE Bridge)",
"version": "2",
"chainId": 1187947933,
"verifyingContract": "0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20"
}
}
SKALE currently only provides exact. If you need post-metering, please use Base upto.
SKALE exact verification result example:
content ADC_SKALE_E2E_OK
tx 0x9fd09901e74c763325fe118b2bc64765c3fca785b86b24a78b97964384db084f
block 1969317
explorer https://skale-base-explorer.skalenodes.com/tx/0x9fd09901e74c763325fe118b2bc64765c3fca785b86b24a78b97964384db084f
paid 0.095215 USDC
Result description:
- API paid retry returned model content
ADC_SKALE_E2E_OK. - The transaction can be found in SKALE explorer, and the block number is
1969317. - The settlement amount for this
exactpayment is0.095215USDC.
¶ Solana
Solana uses SPL USDC TransferChecked. The client constructs a transfer transaction, signs and submits it, and then puts the transaction signature or serialized transaction into the PAYMENT-SIGNATURE envelope.
Characteristics of Solana:
- Uses a Solana wallet adapter or base58 secret key;
- The asset is the Solana USDC mint;
- Currently only supports
exact; - The Facilitator validates the mint, destination, authority, and amount of the transfer instruction.
If using wallet fee payer mode, the wallet directly submits the transaction, and the Facilitator is responsible for confirming the transaction and returning the settlement result.
Example of Solana exact verification result:
payer AY2RmGm2zPxB1uKvvF4dKyYdr2VySyL3wcD1MKJZoLRd
HTTP 402 -> HTTP 200
content ADC_SOLANA_E2E_OK
chain signature not confirmed in this run
Result description:
- The paid retry has returned HTTP 200, and the model output is
ADC_SOLANA_E2E_OK. - Rate limiting may be encountered when querying the on-chain signature through a public RPC.
- Because public RPC queries may be rate-limited, the Solana explorer is not listed here. When strict reconciliation is required, please use your own Solana RPC or platform-side settlement records to confirm the transaction signature.
¶ How to choose
| What you want to do | Recommended network |
|---|---|
| Quickly run through the minimal flow | SKALE exact or Base exact |
| Target ordinary Web3 users | Base |
| Do post-usage metering such as chat completions | Base upto |
| Solana ecosystem applications | Solana exact |
| Low-cost EVM payment verification | SKALE exact |
No matter which chain you choose, do not hardcode prices in the client. The price is determined by the accepts[].maxAmountRequired returned by the server.
¶ Added EVM networks
Native USDC fixed-amount payment is supported in code for the following networks and is being enabled one by one by network.
Availability is subject to the accepts returned by the order or API; this does not mean that all networks are enabled in production.
| Network | Alias | CAIP-2 | Native USDC |
|---|---|---|---|
| Arbitrum One | arbitrum |
eip155:42161 |
0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
These networks only support exact, and the token precision is 6. Do not use bridged USDC with the same name.
When using the official TypeScript/Python X402 Client, you can pass the alias in the table or the CAIP-2 identifier.
The client constructs the signature using the target chain ID; the wallet must support the target network.
The official support table for the Phantom extension wallet lists Arbitrum and Polygon; Optimism and Avalanche are currently not listed in this table, and Rabby or MetaMask that supports the target chain can be used. EVM addresses can be the same across different chains, but balances are independent of each other, and Solana addresses do not apply to EVM USDC. See the Phantom wallet support table.
¶ New network gradual rollout entry
New chain entries are hidden by default. When accessing the console or Studio, use ?features=x402-arbitrum
to enable the corresponding chain; separate multiple flags with commas. To disable a single chain, use ?features=-x402-arbitrum,
and to clear local overrides, use ?features=none. The switches are saved separately for each domain.
Order quotes and payment retries use the same switches, and the server validates independently; existing payment records can still be viewed.
Enabling only the page flag will not enable chains that have not yet been configured; the specific payable networks are still subject to real-time accepts.
