X402 Network and Payment Methods

Ace Data Cloud X402 currently settles around USDC and supports two types of chains: EVM and Solana. The signature methods, asset addresses, gas behaviors, and applicable scenarios differ across networks, so it is necessary to select the network before integration.

Support Matrix

Network scheme Asset Signature Method Applicable Scenarios
Base exact Base USDC EIP-3009 TransferWithAuthorization Default recommendation, mature wallet and liquidity support.
Base upto Base USDC + Permit2 Permit2 PermitWitnessTransferFrom Chat, model, and other post-measurement APIs.
SKALE exact SKALE bridged USDC EIP-3009 TransferWithAuthorization Low gas cost, suitable for EVM payment verification and low-cost calls.
SKALE upto SKALE bridged USDC + Permit2 Permit2 PermitWitnessTransferFrom Post-measurement APIs; Permit2 approval must be completed first.
Solana exact Solana USDC SPL TransferChecked Solana wallet, Agent, or on-chain application scenarios.

The 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 program output of Facilitator /supported:

kinds ['base/exact', 'base/upto', 'skale/exact', 'skale/upto', 'solana/exact', 'solana-devnet/exact']
upto_extra [
  ('base', {'facilitatorAddress': '0xd019...5708'}),
  ('skale', {'facilitatorAddress': '0xd047...CC1C'})
]

Result explanation:

  • base/exact, skale/exact, and solana/exact are fixed amount payment paths.
  • base/upto and skale/upto are post-measurement paths, relying on Permit2 approval.
  • upto_extra.facilitatorAddress is the address that must be written into the witness during client signing, and it must match the server's returned value.

Base

Base uses the official USDC contract:

0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

In the exact scheme, the client signs EIP-712 TransferWithAuthorization. The signed content includes:

  • from: Payment wallet address
  • to: Ace Data Cloud receiving address
  • value: Payment amount
  • validAfter / validBefore: Signature validity time window
  • nonce: 32-byte random nonce

After the Facilitator verifies the signature, it will call USDC's transferWithAuthorization on-chain to complete the transfer.

Base is the most recommended formal access network, especially suitable for upto post-measurement, as Permit2, USDC, and the wallet ecosystem 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 explanation:

  • The API paid retry returns the model content ADC_BASE_E2E_OK.
  • The on-chain transaction can be checked on BaseScan, with block number 46726299.
  • 95215 atomic USDC corresponds to 0.095215 USDC, which is the actual settlement amount for this API call.

Order payment Base exact program output:

order 78481793-304e-47f7-bc0c-8231aec9cc1e
state Finished
tx 0xfec08cc00a159ea1ec692b32faa9bf3d17595a986301169e689d94f58bc44151
block 46726704
explorer https://basescan.org/tx/0xfec08cc00a159ea1ec692b32faa9bf3d17595a986301169e689d94f58bc44151
transfer value 1200000 atomic USDC

Result explanation:

  • The final state of the platform order is Finished.
  • The order pay_id is written into the same Base transaction hash.
  • 1200000 atomic USDC corresponds to 1.2 USDC, which is the actual payment amount after applying the X402 discount for the 10 Credits order.

SKALE

SKALE uses bridged USDC, and the signature method is 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.

A typical 402 accepts for SKALE will include:

{
  "network": "skale",
  "scheme": "exact",
  "extra": {
    "name": "Bridged USDC (SKALE Bridge)",
    "version": "2",
    "chainId": 1187947933,
    "verifyingContract": "0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20"
  }
}

SKALE upto relies on Permit2 and x402UptoPermit2Proxy, and on-chain settlement verification must be completed. Before integration, it is necessary to confirm:

  • The extra.chainId in the 402 response matches the actual configuration of the Facilitator;
  • The extra.facilitatorAddress in the 402 response matches the return from Facilitator /supported;
  • The wallet has executed Permit2 approval for SKALE USDC.

If invalid_upto_evm_payload_invalid_signature occurs, prioritize checking whether the chain ID and facilitator address are consistent.

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 explanation:

  • The API paid retry returns the model content ADC_SKALE_E2E_OK.
  • The transaction can be checked on the SKALE explorer, with block number 1969317.
  • The settlement amount for this exact payment is 0.095215 USDC.

SKALE upto verification result example:

HTTP 402 -> HTTP 200
content I am Claude Sonnet 4.5, developed by Anthropic.
trace_id ca6f63a9-36b7-434a-b8a1-eb0857475e59
settlement tx 0x51831a97fb97802951bee5dfb36735f4a0b589f153e6a23976fad5495c3925bc
block 1969936
explorer https://skale-base-explorer.skalenodes.com/tx/0x51831a97fb97802951bee5dfb36735f4a0b589f153e6a23976fad5495c3925bc
signed ceiling 4760750 atomic USDC
settlement value 151 atomic USDC

Result explanation:

  • API paid retry returns HTTP 200 and model content.
  • SKALE settlement is submitted by Facilitator after /record, and the transaction can be checked on the SKALE explorer.
  • If Permit2 approve is not done, it will return PERMIT2_ALLOWANCE_REQUIRED; if the chain ID or facilitator address is inconsistent, it will return invalid signature.

Solana

Solana uses SPL USDC TransferChecked. The client will construct a transfer transaction, sign it, and submit it, then place the transaction signature or serialized transaction into the X-Payment envelope.

Features of Solana:

  • Uses Solana wallet adapter or base58 secret key;
  • Assets are Solana USDC mint;
  • Currently only supports exact;
  • Facilitator will verify the transfer instruction's mint, destination, authority, and amount.

If using wallet fee payer mode, the wallet will directly submit the transaction, and the Facilitator is responsible for confirming the transaction and returning the settlement result.

Solana exact verification result example:

payer AY2RmGm2zPxB1uKvvF4dKyYdr2VySyL3wcD1MKJZoLRd
HTTP 402 -> HTTP 200
content ADC_SOLANA_E2E_OK
chain signature not confirmed in this run

Result explanation:

  • Paid retry has already returned HTTP 200, and the model output is ADC_SOLANA_E2E_OK.
  • Public RPC may encounter rate limiting when querying on-chain signatures.
  • Due to potential rate limiting with public RPC queries, the Solana explorer is not written here. For strict reconciliation, please use your own Solana RPC or platform-side settlement records to confirm transaction signatures.

How to choose

What you want to do Recommended network
Quickly run through the minimum link SKALE exact or Base exact
For regular Web3 users Base
For chat completion and other post-measurement Base upto or SKALE upto
Solana ecosystem applications Solana exact
Low-cost EVM payment verification SKALE exact or SKALE upto

Regardless of which chain you choose, do not hardcode prices in the client. Prices are determined by the accepts[].maxAmountRequired returned by the server.