exact payment on Solana mainnet.
Conventions
All Solana RPC routes share the same shape:- Path template:
POST /v1/x402/solana/{cluster}/{provider}/rpc/{method}cluster∈mainnet,devnetprovider∈alchemy,helius
- Access mode:
exact(paid per call) - Alternate methods accepted on the path:
GET,HEAD(used for the402discovery probe) - Content-Type:
application/json - Request body:
{ "params": [...] }- positional JSON-RPC params forwarded directly to the upstream provider - Success body:
{ ok: true, provider, cluster, surface: "rpc", method, priceUsd, result } - Payment network:
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp(mainnet) - Payment asset: USDC mainnet mint
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v(6 decimals) - Rate limit:
50 rpsperprovider:cluster:rpcscope
getBalance, getAccountInfo, getTransaction, getSignaturesForAddress, getTokenAccountsByOwner, getProgramAccounts) are supported on every cluster × provider cell. getTransactionsForAddress is an enhanced Helius-only RPC method, so it only exists on the helius provider cells.
Prices come from the upstream PAYG schedules:
- Alchemy -
$0.45 / 1 000 000 CU - Helius -
$5 / 1 000 000 credits
GET /v1/catalog and by the 402 challenge envelope.
getBalance
Fetch the lamport balance for an account.
Params
Example
getAccountInfo
Fetch account metadata and raw account data.
Params
Example
getTransaction
Fetch a confirmed transaction by signature.
Params
Example
getSignaturesForAddress
List recent transaction signatures for an address.
Params
Example
getTokenAccountsByOwner
List token accounts owned by an address.
Params
Example
getProgramAccounts
Query accounts owned by a program.
Params
params[1] constraints:
filters- 1 to 4 entries, each either{ dataSize: number }or{ memcmp: { offset, bytes } }.memcmp.bytes- non-empty string, max 128 characters.dataSlice- required.dataSlice.offset >= 0,dataSlice.length <= 256.
getTransactionsForAddress
Helius-only enhanced transaction history with filtering, sorting, and keyset pagination for any address. Unlike getSignaturesForAddress, this method returns either full parsed transactions or signature metadata, and supports server-side filters (slot, blockTime, signature, status, tokenAccounts) plus a paginationToken for deterministic cursoring in either asc or desc direction.
Params
params[1] config fields (all optional):
transactionDetails-"signatures"(default) or"full".sortOrder-"desc"(default) or"asc".commitment-"confirmed"or"finalized".minContextSlot- non-negative integer.limit- 1..1000 whentransactionDetails="signatures", 1..100 whentransactionDetails="full".paginationToken- opaque cursor returned from the previous response.encoding-"json","jsonParsed","base58","base64"(applies whentransactionDetails="full").maxSupportedTransactionVersion- non-negative integer.filters- object supportingslot(gte/gt/lte/lt),blockTime(same pluseq),signature(lexicographic ranges),status(succeeded/failed/any), andtokenAccounts(none/balanceChanged/all).
