# Network & Cluster Methods

> Query cluster health, validator info, epoch schedule, leader slots, and node identity on Solana.

Canonical: https://nolimitnodes.com/docs/api-reference/solana-rpc/network

## getHealth

**POST** JSON-RPC

Returns `ok` when the node is healthy.

**Parameters:** None

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":"health","method":"getHealth"}'
```

```json Response
{
  "jsonrpc": "2.0",
  "result": "ok",
  "id": "health"
}
```

***

## getClusterNodes
**POST** - JSON-RPC

Returns information about all the nodes participating in the cluster.

**Parameters:** None

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getClusterNodes"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getClusterNodes"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": [
    {
      "featureSet": 4192065167,
      "gossip": "10.239.6.48:8001",
      "pubkey": "9QzsJf7LPLj8GkXbYT3LFDKqE8R7q9UKcEVPFiKkKgUD",
      "rpc": "10.239.6.48:8899",
      "shredVersion": 761,
      "tpu": "10.239.6.48:8856",
      "version": "1.0.0 c375ce1f"
    }
  ],
  "id": 1
}
```

### `result[]`, array

### Node object properties

Node identity public key.

    ### `gossip`, string

Gossip network address.

    ### `tpu`, string

TPU network address.

    ### `rpc`, string

JSON-RPC network address (null if not enabled).

    ### `version`, string

Software version.

    ### `featureSet`, integer

Unique feature set identifier.

    ### `shredVersion`, integer

Shred version for this node.

***

## getSlot
**POST** - JSON-RPC

Returns the current slot that has reached the given commitment level.

### `params[0]`, object

Configuration object with optional `commitment` and `minContextSlot`.

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getSlot"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": 1234,
  "id": 1
}
```

***

## getSlotLeader
**POST** - JSON-RPC

Returns the current slot leader's identity Pubkey.

### `params[0]`, object

Configuration object with optional `commitment` and `minContextSlot`.

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlotLeader"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getSlotLeader"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": "ENvAW7JScgYq6o4MkZRMs5PGzUKkpGEZMKAGMxiSJfV9",
  "id": 1
}
```

***

## getSlotLeaders
**POST** - JSON-RPC

Returns the slot leaders for a given slot range.

### `params[0]`, integer, required

Start slot (u64).

### `params[1]`, integer, required

Limit (u64, range 1–5000).

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlotLeaders","params":[100,10]}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getSlotLeaders",
  "params": [100, 10]
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": [
    "ChorusmmC7i2GmyZzc61G2r3M2YDdxFpf8jcgKyPbc6d",
    "dv1ZAGvdsz5hHLwWXsVnM94hWf1pjbKVau1QVkaMJ92",
    "dv2tdsQ2TRLwm1I66TVbKRZ366FX3nGacR2V7d93FPH"
  ],
  "id": 1
}
```

***

## getVersion
**POST** - JSON-RPC

Returns the current Solana version running on the node.

**Parameters:** None

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getVersion"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getVersion"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "feature-set": 2891131721,
    "solana-core": "1.16.7"
  },
  "id": 1
}
```

***

## getIdentity
**POST** - JSON-RPC

Returns the identity public key for the current node.

**Parameters:** None

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getIdentity"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getIdentity"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "identity": "2r1F4iWqVcb8M1DbAjQuFpebkQHY9hcVU4WuW2DJBppN"
  },
  "id": 1
}
```

***

## getEpochInfo
**POST** - JSON-RPC

Returns information about the current epoch.

### `params[0]`, object

Configuration object with optional `commitment` and `minContextSlot`.

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getEpochInfo"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getEpochInfo"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "absoluteSlot": 166598,
    "blockHeight": 166500,
    "epoch": 27,
    "slotIndex": 2790,
    "slotsInEpoch": 8192,
    "transactionCount": 22661093
  },
  "id": 1
}
```

### `result`, object

### properties

Current slot.

    ### `blockHeight`, integer

Current block height.

    ### `epoch`, integer

Current epoch number.

    ### `slotIndex`, integer

Current slot relative to the start of the epoch.

    ### `slotsInEpoch`, integer

Total number of slots in this epoch.

    ### `transactionCount`, integer

Total transactions processed.

***

## getEpochSchedule
**POST** - JSON-RPC

Returns the epoch schedule information from the cluster's genesis config.

**Parameters:** None

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getEpochSchedule"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getEpochSchedule"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "firstNormalEpoch": 8,
    "firstNormalSlot": 8160,
    "leaderScheduleSlotOffset": 8192,
    "slotsPerEpoch": 8192,
    "warmup": true
  },
  "id": 1
}
```

### `result`, object

### properties

Maximum number of slots per epoch.

    ### `leaderScheduleSlotOffset`, integer

Slots before the next epoch to compute the leader schedule.

    ### `warmup`, boolean

Whether epochs start short and grow.

    ### `firstNormalEpoch`, integer

First epoch with `slotsPerEpoch` slots.

    ### `firstNormalSlot`, integer

First slot of `firstNormalEpoch`.

***

## getLeaderSchedule
**POST** - JSON-RPC

Returns the leader schedule for an epoch.

### `params[0]`, integer

Slot to determine which epoch to query (optional, defaults to current).

### `params[1]`, object

Configuration object:
  - `commitment` (string) - commitment level
  - `identity` (string) - filter results to a single validator

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getLeaderSchedule","params":[null,{"identity":"4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F"}]}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getLeaderSchedule",
  "params": [
    null,
    { "identity": "4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F" }
  ]
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F": [0, 1, 2, 3, 4]
  },
  "id": 1
}
```

***

## getVoteAccounts
**POST** - JSON-RPC

Returns the account info and associated stake for all the voting accounts.

### `params[0]`, object

Configuration object:
  - `commitment` (string)
  - `votePubkey` (string) - filter to a single vote account
  - `keepUnstakedDelinquents` (boolean) - include delinquent validators with no stake
  - `delinquentSlotDistance` (integer) - slots behind to consider delinquent

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getVoteAccounts"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getVoteAccounts"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "current": [
      {
        "activatedStake": 42,
        "commission": 0,
        "epochCredits": [[1, 64, 0], [2, 192, 64]],
        "epochVoteAccount": true,
        "lastVote": 147,
        "nodePubkey": "B97CCTR8ZFJhsAFDhCUqGXk1G5v95UHeSTFnJKDBBSN3",
        "rootSlot": 146,
        "votePubkey": "3ZT31jkAGhUaw8jsy4bTknwBKodFCG9BjZBKn1MYdjEq"
      }
    ],
    "delinquent": []
  },
  "id": 1
}
```

***

## getRecentPerformanceSamples
**POST** - JSON-RPC

Returns a list of recent performance samples, in reverse slot order.

### `params[0]`, integer

Number of samples to return (max 720, default 720).

```bash curl
curl https://rpc.nln.clr3.org \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getRecentPerformanceSamples","params":[4]}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getRecentPerformanceSamples",
  "params": [4]
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": [
    {
      "numNonVoteTransactions": 971,
      "numSlots": 60,
      "numTransactions": 5765,
      "samplePeriodSecs": 60,
      "slot": 348125
    }
  ],
  "id": 1
}
```

### `result[]`, array

### properties

Slot in which the sample was taken.

    ### `numTransactions`, integer

Total transactions in sample period.

    ### `numNonVoteTransactions`, integer

Non-vote transactions in sample period.

    ### `numSlots`, integer

Number of slots in sample period.

    ### `samplePeriodSecs`, integer

Sample window in seconds.
