The Consensus facilitator at https://facilitator.canister.software supports the following networks. A resource server may accept payment on any subset of these — the client picks the network that matches its registered signer.
EVM payments use the USDC token and the exact scheme. Prices are expressed in USDC atomic units (6 decimal places — 1 USDC = 1,000,000 units) or as a dollar string (e.g. "$0.001") which the server converts internally.
Property Value Network identifier eip155:8453Token USDC Chain Base (mainnet) Status Production
{ scheme: ' exact ' , price: ' $0.001 ' , network: ' eip155:8453 ' , payTo: process . env . EVM_PAY_TO }
Property Value Network identifier eip155:84532Token USDC Chain Base Sepolia (testnet) Status Testnet
{ scheme: ' exact ' , price: ' $0.001 ' , network: ' eip155:84532 ' , payTo: process . env . EVM_PAY_TO }
import { ExactEvmScheme } from ' @x402/evm/exact/server '
. register ( ' eip155:8453 ' , new ExactEvmScheme ())
. register ( ' eip155:84532 ' , new ExactEvmScheme ())
import { registerExactEvmScheme } from ' @x402/evm/exact/client '
import { privateKeyToAccount } from ' viem/accounts '
const key = process . env . EVM_PRIVATE_KEY
const signer = privateKeyToAccount ( key . startsWith ( ' 0x ' ) ? key : ` 0x ${ key } ` )
registerExactEvmScheme ( client , { signer })
Solana payments use USDC and the exact scheme. Prices are expressed in USDC atomic units (6 decimal places) or as a dollar string.
Property Value Network identifier solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpToken USDC Chain Solana (mainnet) Status Production
{ scheme: ' exact ' , price: ' $0.001 ' , network: ' solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp ' , payTo: process . env . SOLANA_PAY_TO }
Property Value Network identifier solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1Token USDC Chain Solana (devnet) Status Testnet
{ scheme: ' exact ' , price: ' $0.001 ' , network: ' solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1 ' , payTo: process . env . SOLANA_PAY_TO }
import { ExactSvmScheme } from ' @x402/svm/exact/server '
. register ( ' solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp ' , new ExactSvmScheme ())
. register ( ' solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1 ' , new ExactSvmScheme ())
import { registerExactSvmScheme } from ' @x402/svm/exact/client '
import { createKeyPairSignerFromBytes } from ' @solana/signers '
const keyBytes = bs58 . decode ( process . env . SOLANA_PRIVATE_KEY )
const signer = await createKeyPairSignerFromBytes ( keyBytes )
registerExactSvmScheme ( client , { signer })
ICP payments use the TESTICP token and the exact scheme. Prices are expressed in e8s — the smallest unit of the token (1 ICP = 100,000,000 e8s).
Property Value Network identifier icp:1:xafvr-biaaa-aaaai-aql5q-caiToken TESTICP Ledger canister xafvr-biaaa-aaaai-aql5q-caiPay-to format ICP principal Status Testnet
e8s conversion reference
e8s TESTICP 1000.000001 10,0000.0001 100,0000.001 1,000,0000.01 100,000,0001.0
{ scheme: ' exact ' , price: ' 100000 ' , network: ' icp:1:xafvr-biaaa-aaaai-aql5q-cai ' , payTo: process . env . ICP_PAY_TO }
import { ExactIcpScheme } from ' @canister-software/x402-icp/server '
x402Server . register ( ' icp:1:xafvr-biaaa-aaaai-aql5q-cai ' , new ExactIcpScheme ())
import { registerExactIcpScheme, pemToSigner } from ' @canister-software/x402-icp/client '
const signer = await pemToSigner ( process . env . PEM_PATH )
registerExactIcpScheme ( client , { signer })
Network Identifier Token Denomination Status Base eip155:8453USDC 6 decimals Production Base Sepolia eip155:84532USDC 6 decimals Testnet Solana solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpUSDC 6 decimals Production Solana Devnet solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1USDC 6 decimals Testnet ICP icp:1:xafvr-biaaa-aaaai-aql5q-caiTESTICP e8s Testnet