# Solana

> Solana Mainnet Beta and Devnet through RPC Gateway, including the cached commitment rules and the four providers that reach SVM.

Canonical page: https://rpc.aurpay.net/docs/chains/solana

Solana is the only SVM network family in the Gateway catalog. Its gas token is SOL, and the Gateway forwards standard Solana JSON-RPC over HTTP `POST`.

## Networks and hosts

| Network | JSON-RPC Host |
|---|---|
| Mainnet Beta | `sol-jsonrpc` |
| Devnet | `sol-devnet-jsonrpc` |

Solana has no EVM chain ID, so the [supported networks](https://rpc.aurpay.net/docs/supported-networks.md) table leaves that column empty for both networks. Identify the target network from the Access Point you copied and from application data rather than from a chain-ID call.

## Provider coverage

Four integrations reach Solana. Tenderly covers EVM networks only and produces no Solana Endpoints.

| Provider | Mainnet Beta | Devnet |
|---|:---:|:---:|
| [Alchemy](https://rpc.aurpay.net/docs/providers/alchemy.md) | Yes | Yes |
| [QuickNode](https://rpc.aurpay.net/docs/providers/quicknode.md) | Yes | Yes |
| [Chainstack](https://rpc.aurpay.net/docs/providers/chainstack.md) | Yes | Yes |
| [dRPC](https://rpc.aurpay.net/docs/providers/drpc.md) | Yes | Yes |
| [Tenderly](https://rpc.aurpay.net/docs/providers/tenderly.md) | No | No |

QuickNode and Chainstack import only the Endpoints and nodes that already exist in the vendor account, so a Solana Endpoint has to be created there first. Alchemy and dRPC generate Solana Endpoints from a catalog once the key is enabled for the network.

## Reads without an Endpoint

The Solana cached set is narrower than its EVM counterpart because commitment and encoding are part of the match:

- `getSlot` with parameters omitted, `[]`, or `[{"commitment":"finalized"}]`;
- `getLatestBlockhash` with the same three parameter forms;
- `getBlock` with an explicit slot plus `finalized` commitment, `rewards` set to `false`, `encoding` of `json` or `jsonParsed`, `maxSupportedTransactionVersion` of `0`, and `transactionDetails` omitted or set to `full`.

A `processed` or `confirmed` commitment falls outside the cached set and continues to the Route, which is the behavior you want for anything that tracks the tip of the chain. [Endpoint-free RPC](https://rpc.aurpay.net/docs/endpoint-free-rpc.md) lists the exact parameter forms.

## Verify the network

```bash
curl '<solana_access_point>' \
  -H 'Authorization: Bearer <app_api_key>' \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"getHealth","params":[]}'
```

A healthy node normally returns `{"jsonrpc":"2.0","id":1,"result":"ok"}`. Since `getHealth` reports availability rather than identity, use `getGenesisHash` or known application accounts to confirm you reached Mainnet Beta rather than Devnet.

## Coverage boundary

One JSON-RPC 2.0 object per HTTP `POST`. Commitment levels beyond the cached set, transaction-version support, slot history, and archive range all come from the upstream Endpoint. Ledger pruning on the upstream determines how far back `getBlock` can reach.

See [JSON-RPC](https://rpc.aurpay.net/docs/json-rpc.md) for the request contract and [Routing and reliability](https://rpc.aurpay.net/docs/reliability.md) for how the Route picks an Endpoint.
