Documentation Index
Fetch the complete documentation index at: https://docs.ryvo.network/llms.txt
Use this file to discover all available pages before exploring further.
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}
cluster ∈ mainnet, devnet
provider ∈ alchemy, 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.
| 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 |
Params
| Index | Type | Required | Notes |
|---|
params[0] | string | yes | Account public key (base58). |
params[1] | object | no | Standard JSON-RPC config object. |
Example
curl -X POST https://gateway.Ryvo.network/v1/x402/solana/mainnet/helius/rpc/getBalance \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64 x402 exact payment>" \
-d '{"params":["86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY"]}'
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 |
Params
| Index | Type | Required | Notes |
|---|
params[0] | string | yes | Account public key (base58). |
params[1] | object | no | Config object. If dataSlice is provided, length <= 1024. |
Example
curl -X POST https://gateway.Ryvo.network/v1/x402/solana/mainnet/alchemy/rpc/getAccountInfo \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64 x402 exact payment>" \
-d '{"params":["86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",{"encoding":"base64"}]}'
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 |
Params
| Index | Type | Required | Notes |
|---|
params[0] | string | yes | Transaction signature (base58). |
params[1] | object | no | Standard JSON-RPC config object. |
Example
curl -X POST https://gateway.Ryvo.network/v1/x402/solana/mainnet/helius/rpc/getTransaction \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64 x402 exact payment>" \
-d '{"params":["<signature>",{"maxSupportedTransactionVersion":0}]}'
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 |
Params
| Index | Type | Required | Notes |
|---|
params[0] | string | yes | Address (base58). |
params[1] | object | no | If limit is provided it must be 1..100. |
Example
curl -X POST https://gateway.Ryvo.network/v1/x402/solana/mainnet/alchemy/rpc/getSignaturesForAddress \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64 x402 exact payment>" \
-d '{"params":["86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",{"limit":25}]}'
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 |
Params
| 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. |
Example
curl -X POST https://gateway.Ryvo.network/v1/x402/solana/mainnet/helius/rpc/getTokenAccountsByOwner \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64 x402 exact payment>" \
-d '{"params":["86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",{"programId":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"encoding":"jsonParsed"}]}'
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 |
Params
| 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.
Example
curl -X POST https://gateway.Ryvo.network/v1/x402/solana/mainnet/helius/rpc/getProgramAccounts \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64 x402 exact payment>" \
-d '{
"params":[
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
{
"filters":[{"dataSize":165}],
"dataSlice":{"offset":0,"length":64}
}
]
}'
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 |
Params
| 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 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
curl -X POST https://gateway.Ryvo.network/v1/x402/solana/mainnet/helius/rpc/getTransactionsForAddress \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64 x402 exact payment>" \
-d '{
"params":[
"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
{
"transactionDetails":"signatures",
"sortOrder":"desc",
"limit":100,
"filters":{"status":"succeeded"}
}
]
}'
See also