datapoint.market_ ALPHA v0.0.1

Reference: Networks & assets

datapoint.market settles in USDC on EVM (Base), Stellar, and Solana (SVM). Every payment is keyed by (scheme, network) with scheme = exact.

Networks (CAIP-2)

Network idChainFamilyTypeUSDC decimals
eip155:8453Base mainnetEVMlive6
eip155:84532Base SepoliaEVMtest6
stellar:pubnetStellar mainnetStellarlive7
stellar:testnetStellarStellartest7
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpSolana mainnetSVMlive6
solana:EtWTRABZaYq6iMfeYKouRu166VU2xqavSolana devnetSVMtest6

Decimals differ by family — 1 USDC = 1_000_000 on Base and Solana but 10_000_000 on Stellar. Atomic amounts on the wire must use the destination chain’s precision.

What’s actually settleable right now

The code supports all six networks, but a network only settles if its splitter/asset/relayer are configured on the deployment. Currently live: mainnet only — Base mainnet, Stellar pubnet, and Solana mainnet.

Testnets (Base Sepolia / Stellar testnet / Solana devnet) are hidden while mainnet-only: removed from the create form, rejected by endpoint create/update (REST + MCP), and omitted from /x402/*/supported. The support remains in code — flip EXPOSE_TESTNET=true (and wire testnet settlement) to bring it back as a sandbox. (Solana as a whole is additionally gated by EXPOSE_SOLANA.)

Check at runtime: GET /x402/base/supported, /x402/stellar/supported, and /x402/solana/supported list advertised kinds, but the authoritative test is whether verify returns 503 (“network not configured”) for that network.

Assets

NetworkUSDCNotes
Base mainnet0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Circle USDC; EIP-712 domain name "USD Coin", version 2
Stellar pubnetissuer GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVNCircle USDC; the splitter settles via the asset’s SAC (Stellar Asset Contract)
Solana mainnetmint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1vCircle USDC (SPL); recipient token accounts are auto-created in the payment tx (idempotent), so providers need no setup

On Stellar, to receive USDC an account needs a trustline to the USDC asset (a one-time 0.5 XLM reserve). Buyers paying USDC need a trustline + balance; the relayer pays transaction fees in XLM and never holds USDC.

On Solana there is no trustline equivalent — the payment transaction prepends idempotent CreateAssociatedTokenAccount instructions, so the provider and fee token accounts are created on first payment if missing.

Signing per family

FamilyAuthorization the buyer signsGas paid by
EVM (Base)EIP-3009 receiveWithAuthorization (EIP-712)relayer (gasless for buyer)
StellarSoroban authorization entry for settlerelayer
SVM (Solana)one partial-signed transaction with two transfer_checked SPL transfers (provider leg + fee leg); the relayer co-signs as fee payer and submitsrelayer (SOL)

Solana settlement is program-less — there’s no splitter contract. The atomic provider/fee split is the two transfers inside the buyer’s single transaction; verification proves the tx carries exactly those two transfers at the right mint/amounts/destinations before the relayer co-signs. USDC never touches a relay-owned account.

Fees & payouts

  • Providers keep 100% of their price. A protocol fee is added on top and shown in the 402 (maxAmountRequired = price + fee).
  • The fee schedule is in docs/ratecard.md; the amount is computed per call and always visible before payment.
  • Settlement is atomic and non-custodial: the on-chain splitter pays the provider leg and the fee leg in one transaction, directly from the buyer.