# Block Methods

> Retrieve confirmed and finalized block data, block commitment, and block production stats on Solana.

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

## getBlock
**POST** - JSON-RPC

Returns identity and transaction information about a confirmed block.

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

Slot number (u64).

### `params[1]`, object

Configuration object:
  - `commitment` (string) - `finalized` or `confirmed`
  - `encoding` (string) - `json`, `jsonParsed`, `base58`, `base64`
  - `transactionDetails` (string) - `full`, `accounts`, `signatures`, `none`
  - `rewards` (boolean) - include rewards
  - `maxSupportedTransactionVersion` (integer) - max transaction version

```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":"getBlock","params":[430,{"encoding":"json","maxSupportedTransactionVersion":0,"transactionDetails":"full","rewards":false}]}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlock",
  "params": [
    430,
    {
      "encoding": "json",
      "maxSupportedTransactionVersion": 0,
      "transactionDetails": "full",
      "rewards": false
    }
  ]
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "blockHeight": 428,
    "blockTime": null,
    "blockhash": "3Eq21vXNB5s86c62bVuUfTeaMif1N2kUqRPBmGRJhyTA",
    "parentSlot": 429,
    "previousBlockhash": "mfcyqEXB3DnHXki6KjjmZck6YjmZLvpAByy2fj4nh6B",
    "transactions": []
  },
  "id": 1
}
```

***

## getBlockTime
**POST** - JSON-RPC

Returns the estimated block time for a given block on the Solana blockchain.

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

Block slot number (u64).

```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":"getBlockTime","params":[5]}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlockTime",
  "params": [5]
}
```

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

***

## getBlockCommitment
**POST** - JSON-RPC

Returns the commitment for a specific block, providing cluster stake voting information.

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

Slot number (u64).

```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":"getBlockCommitment","params":[5]}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlockCommitment",
  "params": [5]
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "commitment": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 32],
    "totalStake": 42
  },
  "id": 1
}
```

***

## getBlockHeight
**POST** - JSON-RPC

Returns the current block height of the Solana blockchain node.

### `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":"getBlockHeight"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlockHeight"
}
```

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

***

## getBlockProduction
**POST** - JSON-RPC

Returns recent block production information for the current or previous epoch.

### `params[0]`, object

Configuration object:
  - `commitment` (string)
  - `identity` (string) - filter by validator identity
  - `range` (object) - `{ firstSlot, lastSlot }` to limit range

```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":"getBlockProduction"}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlockProduction"
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": {
    "context": { "slot": 9887 },
    "value": {
      "byIdentity": {
        "85iYT5RuzRTDgjyRa3cP8SYhM2j21fj7NhfJ3peu1DPr": [9888, 9886]
      },
      "range": { "firstSlot": 0, "lastSlot": 9887 }
    }
  },
  "id": 1
}
```

***

## getBlocks
**POST** - JSON-RPC

Returns a list of confirmed blocks between two specified slots.

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

Start slot (u64).

### `params[1]`, integer

End slot (u64, optional). Must be no more than 500,000 slots higher than start slot.

### `params[2]`, object

Configuration object with optional `commitment`. Only `finalized` and `confirmed` are accepted.

> Note: `getBlocks` does not support `processed` commitment. Use `finalized` or `confirmed` only.

```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":"getBlocks","params":[5,10]}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlocks",
  "params": [5, 10]
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": [5, 6, 7, 8, 9, 10],
  "id": 1
}
```

***

## getBlocksWithLimit
**POST** - JSON-RPC

Returns a list of confirmed blocks starting from a slot up to a given limit.

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

Start slot (u64).

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

Limit (u64, max 500,000).

### `params[2]`, object

Configuration object with optional `commitment`. Only `finalized` and `confirmed` are accepted.

```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":"getBlocksWithLimit","params":[5,3]}'
```
```json Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlocksWithLimit",
  "params": [5, 3]
}
```

```json Response
{
  "jsonrpc": "2.0",
  "result": [5, 6, 7],
  "id": 1
}
```
