Skip to main content
Solana RPC routes proxy standard JSON-RPC methods to Alchemy or Helius and are gated with x402 exact payment on Solana mainnet.

Conventions

All Solana RPC routes share the same shape:
  • Path template: POST /v1/x402/solana/{cluster}/{provider}/rpc/{method}
    • clustermainnet, devnet
    • provideralchemy, helius
  • Access mode: exact (paid per call)
  • Alternate methods accepted on the path: GET, HEAD (used for the 402 discovery 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 rps per provider:cluster:rpc scope
The first six RPC methods (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
Both are rounded up to the nearest micro-USDC. Authoritative values are always reported by 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.
Example

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 when transactionDetails="signatures", 1..100 when transactionDetails="full".
  • paginationToken - opaque cursor returned from the previous response.
  • encoding - "json", "jsonParsed", "base58", "base64" (applies when transactionDetails="full").
  • maxSupportedTransactionVersion - non-negative integer.
  • filters - object supporting slot (gte/gt/lte/lt), blockTime (same plus eq), signature (lexicographic ranges), status (succeeded/failed/any), and tokenAccounts (none/balanceChanged/all).
Example

See also