---
title: "POST /block"
method: POST
path: "/block"
---

# POST /block

`POST /block`

Returns block details for given height or hash

## Request body

- JsonRpcRequestForBlock
  - `id` string — JSON-RPC request id. Auto-populated; can be any string.
  - `jsonrpc` '2.0' — JSON-RPC protocol version. Always `2.0`.
  - `method` 'block', required
  - `params` union, required
    - object
      - `block_id` union, required
        - integer
        - string
    - object
      - `finality` 'optimistic' | 'near-final' | 'final', required — Different types of finality.
    - object
      - `sync_checkpoint` 'genesis' | 'earliest_available', required

## Response `200`

- union
  - object
    - `result` RpcBlockResponse, required
      - `author` string, required — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
      - `chunks` ChunkHeaderView[], required
        - `balance_burnt` string, required
        - `bandwidth_requests` union
          - BandwidthRequests — A list of shard's bandwidth requests. Describes how much the shard would like to send to other shards.
            - `V1` BandwidthRequestsV1, required — Version 1 of [`BandwidthRequest`].
              - …
          - unknown
        - `chunk_hash` string, required
        - `congestion_info` union
          - CongestionInfoView — Stores the congestion level of a shard. More info about congestion [here](https://near.github.io/nearcore/architecture/how/receipt-congestion.html?highlight=congestion#receipt-congestion)
            - `allowed_shard` integer, required
            - `buffered_receipts_gas` string, required
            - `delayed_receipts_gas` string, required
            - `receipt_bytes` integer, required
          - unknown
        - `encoded_length` integer, required
        - `encoded_merkle_root` string, required
        - `gas_limit` integer, required
        - `gas_used` integer, required
        - `height_created` integer, required
        - `height_included` integer, required
        - `outcome_root` string, required
        - `outgoing_receipts_root` string, required
        - `prev_block_hash` string, required
        - `prev_state_root` string, required
        - `proposed_split` union — Proposed trie split for dynamic resharding `None`: field missing (`ShardChunkHeaderInnerV4` or earlier) `Some(None)`: field present, but not set (`ChunkHeaderInnerV5` or later) `Some(Some(split))`: field present and set
          - TrieSplit — The result of splitting a memtrie into two possibly even parts, according to `memory_usage` stored in the trie nodes. **NOTE: This is an artificial value calculated according to `TRIE_COST`. Hence, it does not represent actual memory allocation, but the split ratio should be roughly consistent with that.**
            - `boundary_account` string, required — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
            - `left_memory` integer, required — Total `memory_usage` of the left part (excluding the split path)
            - `right_memory` integer, required — Total `memory_usage` of the right part (including the split path)
          - unknown
        - `rent_paid` string
        - `shard_id` integer, required — The shard identifier. It may be an arbitrary number - it does not need to be a number in the range 0..NUM_SHARDS. The shard ids do not need to be sequential or contiguous. The shard id is wrapped in a new type to prevent the old pattern of using indices in range 0..NUM_SHARDS and casting to ShardId. Once the transition if fully complete it potentially may be simplified to a regular type alias.
        - `signature` string, required
        - `tx_root` string, required
        - `validator_proposals` ValidatorStakeView[], required
          - `account_id` string, required — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
          - `public_key` string, required
          - `stake` string, required
          - `validator_stake_struct_version` 'V1', required
        - `validator_reward` string
      - `header` BlockHeaderView, required — Contains main info about the block.
        - `approvals` union[], required
          - union
            - string
            - unknown
        - `block_body_hash` union
          - string
          - unknown
        - `block_merkle_root` string, required
        - `block_ordinal` integer, nullable
        - `challenges_result` SlashedValidator[], required
          - `account_id` string, required — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
          - `is_double_sign` boolean, required
        - `challenges_root` string, required
        - `chunk_endorsements` array[], nullable
          - integer[]
        - `chunk_headers_root` string, required
        - `chunk_mask` boolean[], required
        - `chunk_receipts_root` string, required
        - `chunk_tx_root` string, required
        - `chunks_included` integer, required
        - `epoch_id` string, required
        - `epoch_sync_data_hash` union
          - string
          - unknown
        - `gas_price` string, required
        - `hash` string, required
        - `height` integer, required
        - `last_ds_final_block` string, required
        - `last_final_block` string, required
        - `latest_protocol_version` integer, required
        - `next_bp_hash` string, required
        - `next_epoch_id` string, required
        - `outcome_root` string, required
        - `prev_hash` string, required
        - `prev_height` integer, nullable
        - `prev_last_certified_block_epoch_id` union
          - string
          - unknown
        - `prev_state_root` string, required
        - `random_value` string, required
        - `rent_paid` string
        - `shard_split` union[], nullable — Positional tuple of 2: [ShardId, AccountId].
          - union
            - integer — The shard identifier. It may be an arbitrary number - it does not need to be a number in the range 0..NUM_SHARDS. The shard ids do not need to be sequential or contiguous. The shard id is wrapped in a new type to prevent the old pattern of using indices in range 0..NUM_SHARDS and casting to ShardId. Once the transition if fully complete it potentially may be simplified to a regular type alias.
            - string — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
        - `signature` string, required
        - `spice_chunk_endorsement_stats` SpiceChunkEndorsementStats[], nullable
          - `expected` integer, required
          - `produced` integer, required
        - `timestamp` integer, required — Legacy json number. Should not be used.
        - `timestamp_nanosec` string, required
        - `total_supply` string, required
        - `validator_proposals` ValidatorStakeView[], required
          - `account_id` string, required — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
          - `public_key` string, required
          - `stake` string, required
          - `validator_stake_struct_version` 'V1', required
        - `validator_reward` string
    - `id` string, required
    - `jsonrpc` string, required
  - object
    - `error` union, required
      - object
        - `cause` union, required
          - object
            - `info` object, required
              - …
            - `name` 'METHOD_NOT_FOUND', required
          - object
            - `info` object, required
              - …
            - `name` 'PARSE_ERROR', required
        - `name` 'REQUEST_VALIDATION_ERROR', required
      - object
        - `cause` union, required
          - object
            - `info` object, required
            - `name` 'UNKNOWN_BLOCK', required
          - object
            - `name` 'NOT_SYNCED_YET', required
          - object
            - `info` object, required
              - …
            - `name` 'INTERNAL_ERROR', required
        - `name` 'HANDLER_ERROR', required
      - object
        - `cause` InternalError, required
          - `info` object, required
            - `error_message` string, required
          - `name` 'INTERNAL_ERROR', required
        - `name` 'INTERNAL_ERROR', required
    - `id` string, required
    - `jsonrpc` string, required

---

[API](https://skmtc.net/near/apis/near-protocol-json-rpc-api.md) · [All operations](https://skmtc.net/near/apis/near-protocol-json-rpc-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/near/near-protocol-json-rpc-api/versions/cb6bdde6167d/schema)
