# getBlock

> Returns full details for a confirmed block by slot number.

Source: https://docs.constant-k.com/rpc/http/getblock/

`getBlock` returns everything recorded for a given slot: its blockhash, parent and timestamp. Depending on `transactionDetails`, it also returns every transaction, with full or partial detail, or only their signatures. `transactionDetails: "full"` on a busy block is one of the heaviest requests available; `transactionDetails: "signatures"` returns only the transaction list at far lower cost.

A mainnet block mixes legacy, version 0 and version 1 transactions; `maxSupportedTransactionVersion: 1` decodes all three. See [Transaction v1](/rpc/transaction-v1/).

- Transport: HTTP, JSON-RPC 2.0 `POST` to `https://rpc-newyork.constant-k.com/?api-key=YOUR_API_KEY` (New York) or `https://rpc-frankfurt.constant-k.com/?api-key=YOUR_API_KEY` (Frankfurt) or `https://rpc-amsterdam.constant-k.com/?api-key=YOUR_API_KEY` (Amsterdam). The key also works as an `x-api-key` header.
- Category: Blocks
- Availability: All plans
- Rate limits: Free 1/s · Operator 5/s · Blade Runner 10/s · Nexus 30/s

## Parameters

`params` is a positional JSON array, in this order:

- `slot` (integer, required): Slot number of the block to fetch.
- `config` (object, optional): Optional configuration.
  - `commitment` (string, optional, one of `confirmed`, `finalized`, default `"finalized"`): Bank state to read the block from. `processed` is not accepted here.
  - `encoding` (string, optional, one of `json`, `jsonParsed`, `base58`, `base64`, default `"json"`): Encoding for each transaction's data, when `transactionDetails` includes transactions at all.
  - `transactionDetails` (string, optional, one of `full`, `accounts`, `signatures`, `none`, default `"full"`): How much transaction detail to include: `full` for complete transaction and metadata objects, `accounts` for a lighter per-transaction summary without logs, `signatures` for the signature list only, `none` for block-level fields only.
  - `rewards` (boolean, optional, default `true`): Whether to include the block's leader/staking reward payouts.
  - `maxSupportedTransactionVersion` (integer, optional, min 0, max 1): Highest transaction version the caller can decode, as a ceiling rather than a filter: `1` returns legacy, version 0 and version 1 transactions alike. The value must be the JSON integer `1`, not the string `"1"` (`-32602`); omitting it fails with `-32015` on any block containing a versioned transaction, the normal case on mainnet.

## Result

- `result` (object | null, optional): The block. A skipped slot returns code `-32007` or `-32009` instead.
  - `option 1` (object, optional)
    - `blockhash` (string, required)
    - `previousBlockhash` (string, required)
    - `parentSlot` (integer, required)
    - `blockHeight` (integer | null, optional): Number of blocks beneath this one (skipped slots don't count), or null if not available.
    - `blockTime` (integer | null, optional): Estimated production time, as Unix seconds, or null if not available.
    - `transactions` (array, optional): Present when `transactionDetails` is `full` or `accounts`. Each entry has the same `transaction`/`meta` shape as a `getTransaction` result, including `meta.costUnits` and, on version 1 transactions, `transaction.message.transactionConfig`.
    - `signatures` (string[], optional): Present only when `transactionDetails` is `signatures`: every transaction signature in the block, in order.
    - `rewards` (array, optional): Present unless `rewards` was false: leader and staking reward payouts for this block.
  - `option 2` (null, optional)

## Example: Get a block's signatures only

Request:

```bash
curl "https://rpc-newyork.constant-k.com/?api-key=YOUR_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBlock",
    "params": [
      447946420,
      {
        "transactionDetails": "signatures",
        "rewards": false,
        "maxSupportedTransactionVersion": 1
      }
    ]
  }'
```

Response:

```json
{
  "jsonrpc": "2.0",
  "result": {
    "blockHeight": 425987488,
    "blockTime": 1789696069,
    "blockhash": "CnsBQL8xZUFMG6TsGknLHCGfGdcj2yC5ApQR1PfPBfKg",
    "parentSlot": 447946419,
    "previousBlockhash": "C7wHxgdpJYk32EwsyXbtD7woQj5XhwLwVKRKUuKd5oaj",
    "signatures": [
      "2z8eZ8gdw5Az5vwTd9V6f5pCe2ENyaK3VaDQGR7AZf64wR6HJ1k93LpytXKRanxYtEpCVVPia6wRTFRLQfTWFa23",
      "3QvWZ4nNgHpjsaz3Zr9jseHAyNyots9uMXPMHg1TcBc85jQSBYtAZ2tmmEuR1zV4fkQVQwG6E3qoQkHfStJ1bbEB",
      "2WG2kGJPNoSdnVpQD5CrPqK1SmYPWnyJnBp3TnsZSkmN1yomLLY9CuNeD8zxC9QbMdrhMmvyy7GqKzzGAeY8A9ZW"
    ]
  },
  "id": 1
}
```

_Long arrays in this example were trimmed._

## Notes

- The example block contains 863 signatures. The example shows the first 3.
- Version 1 transactions are a normal part of a block. One finalized block measured on 2026-09-20 held 501 legacy, 409 version 0 and 164 version 1 transactions. A reader that omits `maxSupportedTransactionVersion` gets `-32015` instead of the block.
- With `transactionDetails: "full"`, version 1 transactions carry fee and resource requests in `transaction.message.transactionConfig` instead of ComputeBudget instructions, and every transaction carries `meta.costUnits` next to `meta.computeUnitsConsumed`. See [Transaction v1](/rpc/transaction-v1/).
- [Cube Runner](/cube-runner/) answers every `getBlock` request. It returns a block older than the region's ledger when the region cache or another region's cache holds that block. On Blade Runner and Nexus tier plans, Cube Runner also retrieves the block from long-term storage when no cache, ledger or other region holds it. [`getFirstAvailableBlock`](/rpc/http/getfirstavailableblock/) returns the oldest block from which every later block can be retrieved, and [`minimumLedgerSlot`](/rpc/http/minimumledgerslot/) returns the oldest slot the region's ledger holds.
- When a block from long-term storage is not retrieved within 25 seconds, the response is HTTP `429` with a `Retry-After` header and code `-32019`, and the block stays queued. Repeating the request after `Retry-After` returns the block once it has been retrieved. See [Queued requests](/cube-runner/#queued-requests).
- A skipped slot returns code `-32007` or `-32009`, not a `null` result. Code `-32019` and HTTP `429` mean the block has not been served yet. See [Client handling](/cube-runner/#client-handling).

