Chains API
Solana network nodes: client software, versions and public RPC endpoints
Every node in the Solana network now: the client software and version each runs, the split across clients and versions, how many expose public RPC, and their addresses.
/api/external/chain-analysis/cluster-nodes/{chain}What it returns
Every node taking part in Solana gossip right now, validators and non-voting nodes alike, one page at a time by identity: the client software and version it reports, its feature-set id, its shred version, the address it gossips on and, when it exposes one, the address of its public RPC service. The totals and the clients breakdown (client and version, most nodes first) describe the whole network, not the page; rpcNodeCount answers how many nodes offer a public RPC. Client and version are what each node reports about itself, verbatim — an unrecognised client reads Unknown(<code>) and development builds report versions like 0.0.0. The list refreshes about once a minute; pages cut from the same refresh are consistent.
Chains
- Solana SOL
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/chain-analysis/cluster-nodes/SOL"
| Parameter | Description |
|---|---|
offsetquery · integer · optional | How many nodes to skip, in identity order. Defaults to 0. |
limitquery · integer · optional | How many nodes to return: 1 to 200. Defaults to 50. limit ≤ 125 keeps the answer under 32 KB. |
chainpath · string · required | SOL only; every other chain returns 400. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
nodeCount | integer | Nodes in the whole network. |
rpcNodeCount | integer | Of them, nodes that expose a public RPC service. |
clients | object[] | The whole network by client and version, most nodes first (ties by client, then version). |
clients[].client | string | null | The client software, as the nodes report it. Null when they report none. |
clients[].version | string | null | Its version, as the nodes report it. Null when they report none. |
clients[].nodeCount | integer | How many nodes run this client at this version. |
offset | integer | Echoes the request. |
limit | integer | Echoes the request. |
nodes | object[] | This page, by identity ascending. Empty when offset is past the list. |
nodes[].identity | string | The node identity address — the one validators and the leader schedule name. |
nodes[].client | string | null | The client software it reports. Null when it reports none. |
nodes[].version | string | null | The software version it reports, verbatim. Null when it reports none. |
nodes[].featureSet | integer | null | The id of the feature set its software supports; nodes on the same id run compatible software. Null when it publishes none, as old and development builds do. |
nodes[].shredVersion | integer | null | The network fork identifier it runs on; every node of one network shares it. Null when it reports none. |
nodes[].gossip | string | null | The public ip:port it gossips on. Null when it reports none. |
nodes[].rpc | string | null | The public ip:port of its RPC service. Null when it exposes none. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key