---
title: Solana RPC Overview
description: >-
  Intro and overview for the Solana RPC docs. Find cluster endpoints, HTTP and
  WebSocket references, and the shared structure reference pages.
url: /docs/rpc
type: conceptual
related:
  - /docs/rpc/http
  - /docs/rpc/websocket
  - /docs/rpc/json-structures
  - /docs/rpc/deprecated
---

Solana RPC provides methods to read network state, send transactions, simulate
execution, and subscribe to live updates.

<DocsDiagram
  src="/assets/docs/diagrams/rpc-overview.svg"
  alt="How applications use HTTP requests and WebSocket subscriptions to reach Solana through RPC"
/>

<Cards>
  <Card title="HTTP Methods" href="/docs/rpc/http">
    Request-response RPC methods.
  </Card>
  <Card title="WebSocket Methods" href="/docs/rpc/websocket">
    Subscription methods.
  </Card>
</Cards>

## Cluster Endpoints

Every RPC request goes to a specific cluster. The endpoint determines which
network you read from and where transactions are sent.

| Cluster | Public RPC endpoint              | Description                                                                                       |
| ------- | -------------------------------- | ------------------------------------------------------------------------------------------------- |
| Mainnet | `https://api.mainnet.solana.com` | Production network using real SOL.                                                                |
| Devnet  | `https://api.devnet.solana.com`  | Developer testing network. Use the [Solana Faucet](https://faucet.solana.com/) to get Devnet SOL. |
| Testnet | `https://api.testnet.solana.com` | Validator testing network.                                                                        |

<Callout type="info">
  Public RPC endpoints are shared infrastructure and are not intended for
  production applications. Use dedicated or private RPC infrastructure for
  production traffic. Shared public endpoints may return `429` when you exceed
  rate limits and `403` when traffic is blocked.
</Callout>

For local development, Surfpool and `solana-test-validator` use these default
localhost endpoints:

| Interface | Endpoint                |
| --------- | ----------------------- |
| HTTP RPC  | `http://localhost:8899` |
| WebSocket | `ws://localhost:8900`   |

## Configuring State Commitment

Many RPC methods and subscriptions accept a `commitment` parameter. It specifies
how finalized a block must be before the node returns data or sends a
notification.

| Commitment  | Description                                                                                                                                    |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `processed` | The node's most recent processed block. This is the newest view, but it can still be rolled back.                                              |
| `confirmed` | A block directly voted on by a supermajority of stake, meaning more than two-thirds of the network's active stake.                             |
| `finalized` | A block the cluster recognizes as finalized with maximum lockout, meaning it has reached the strongest confirmation state used by the network. |

If a method or subscription accepts `commitment` and you omit it, the default is
typically `finalized`.
