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.
| Path | Provider | Cluster | Price (USD) | Cost unit |
|---|---|---|---|---|
POST /v1/x402/solana/mainnet/alchemy/rpc/getBalance | alchemy | mainnet | $0.000005 | 10 CU |
POST /v1/x402/solana/devnet/alchemy/rpc/getBalance | alchemy | devnet | $0.000005 | 10 CU |
POST /v1/x402/solana/mainnet/helius/rpc/getBalance | helius | mainnet | $0.000005 | 1 credit |
POST /v1/x402/solana/devnet/helius/rpc/getBalance | helius | devnet | $0.000005 | 1 credit |
| Index | Type | Required | Notes |
|---|---|---|---|
params[0] | string | yes | Account public key (base58). |
params[1] | object | no | Standard JSON-RPC config object. |
getAccountInfo
Fetch account metadata and raw account data.
| Path | Provider | Cluster | Price (USD) | Cost unit |
|---|---|---|---|---|
POST /v1/x402/solana/mainnet/alchemy/rpc/getAccountInfo | alchemy | mainnet | $0.000005 | 10 CU |
POST /v1/x402/solana/devnet/alchemy/rpc/getAccountInfo | alchemy | devnet | $0.000005 | 10 CU |
POST /v1/x402/solana/mainnet/helius/rpc/getAccountInfo | helius | mainnet | $0.000005 | 1 credit |
POST /v1/x402/solana/devnet/helius/rpc/getAccountInfo | helius | devnet | $0.000005 | 1 credit |
| Index | Type | Required | Notes |
|---|---|---|---|
params[0] | string | yes | Account public key (base58). |
params[1] | object | no | Config object. If dataSlice is provided, length <= 1024. |
getTransaction
Fetch a confirmed transaction by signature.
| Path | Provider | Cluster | Price (USD) | Cost unit |
|---|---|---|---|---|
POST /v1/x402/solana/mainnet/alchemy/rpc/getTransaction | alchemy | mainnet | $0.000018 | 40 CU |
POST /v1/x402/solana/devnet/alchemy/rpc/getTransaction | alchemy | devnet | $0.000018 | 40 CU |
POST /v1/x402/solana/mainnet/helius/rpc/getTransaction | helius | mainnet | $0.000005 | 1 credit |
POST /v1/x402/solana/devnet/helius/rpc/getTransaction | helius | devnet | $0.000005 | 1 credit |
| Index | Type | Required | Notes |
|---|---|---|---|
params[0] | string | yes | Transaction signature (base58). |
params[1] | object | no | Standard JSON-RPC config object. |
getSignaturesForAddress
List recent transaction signatures for an address.
| Path | Provider | Cluster | Price (USD) | Cost unit |
|---|---|---|---|---|
POST /v1/x402/solana/mainnet/alchemy/rpc/getSignaturesForAddress | alchemy | mainnet | $0.000018 | 40 CU |
POST /v1/x402/solana/devnet/alchemy/rpc/getSignaturesForAddress | alchemy | devnet | $0.000018 | 40 CU |
POST /v1/x402/solana/mainnet/helius/rpc/getSignaturesForAddress | helius | mainnet | $0.000005 | 1 credit |
POST /v1/x402/solana/devnet/helius/rpc/getSignaturesForAddress | helius | devnet | $0.000005 | 1 credit |
| Index | Type | Required | Notes |
|---|---|---|---|
params[0] | string | yes | Address (base58). |
params[1] | object | no | If limit is provided it must be 1..100. |
getTokenAccountsByOwner
List token accounts owned by an address.
| Path | Provider | Cluster | Price (USD) | Cost unit |
|---|---|---|---|---|
POST /v1/x402/solana/mainnet/alchemy/rpc/getTokenAccountsByOwner | alchemy | mainnet | $0.000005 | 10 CU |
POST /v1/x402/solana/devnet/alchemy/rpc/getTokenAccountsByOwner | alchemy | devnet | $0.000005 | 10 CU |
POST /v1/x402/solana/mainnet/helius/rpc/getTokenAccountsByOwner | helius | mainnet | $0.000005 | 1 credit |
POST /v1/x402/solana/devnet/helius/rpc/getTokenAccountsByOwner | helius | devnet | $0.000005 | 1 credit |
| Index | Type | Required | Notes |
|---|---|---|---|
params[0] | string | yes | Owner public key (base58). |
params[1] | object | yes | Filter object - must specify exactly one of mint or programId. |
params[2] | object | no | Standard JSON-RPC config object. |
getProgramAccounts
Query accounts owned by a program.
| Path | Provider | Cluster | Price (USD) | Cost unit |
|---|---|---|---|---|
POST /v1/x402/solana/mainnet/alchemy/rpc/getProgramAccounts | alchemy | mainnet | $0.000009 | 20 CU |
POST /v1/x402/solana/devnet/alchemy/rpc/getProgramAccounts | alchemy | devnet | $0.000009 | 20 CU |
POST /v1/x402/solana/mainnet/helius/rpc/getProgramAccounts | helius | mainnet | $0.000050 | 10 credits |
POST /v1/x402/solana/devnet/helius/rpc/getProgramAccounts | helius | devnet | $0.000050 | 10 credits |
| Index | Type | Required | Notes |
|---|---|---|---|
params[0] | string | yes | Program id (base58). |
params[1] | object | yes | Config object with required filters and dataSlice. |
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.
| Path | Provider | Cluster | Price (USD) | Cost unit |
|---|---|---|---|---|
POST /v1/x402/solana/mainnet/helius/rpc/getTransactionsForAddress | helius | mainnet | $0.000250 | 50 credits |
POST /v1/x402/solana/devnet/helius/rpc/getTransactionsForAddress | helius | devnet | $0.000250 | 50 credits |
| Index | Type | Required | Notes |
|---|---|---|---|
params[0] | string | yes | Address (base58). |
params[1] | object | no | Config object (see below). |
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).
