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
cluster × provider cell.
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.

