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

# POST /EXPERIMENTAL_indexer_block

`POST /EXPERIMENTAL_indexer_block`

## Request

- The document declares no server URL.
- Auth: none declared

Returns an indexer streamer message and tracked shard coverage for a block hash. Requires enable_indexer_rpc and retained execution data.

## Request body

- JsonRpcRequestForEXPERIMENTALIndexerBlock
  - `id` string: JSON-RPC request id. Auto-populated; can be any string.
  - `jsonrpc` '2.0': JSON-RPC protocol version. Always `2.0`.
  - `method` 'EXPERIMENTAL_indexer_block', required
  - `params` RpcIndexerBlockRequest, required
    - `block_hash` string, required

## Response `200`

- union
  - object
    - `result` RpcIndexerBlockResponse, required: Resulting struct represents block with chunks
      - `block` BlockView, 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.
              - …
            - 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)
              - …
            - 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.**
              - …
            - 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
              - …
          - `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_execution_root` union
            - string
            - unknown
          - `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
              - …
          - `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
      - `shards` IndexerShard[], required
        - `chunk` union
          - IndexerChunkView
            - `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) ```
            - `header` ChunkHeaderView, required: Contains main info about the chunk.
              - …
            - `instant_receipts` ReceiptView[]: Receipts that were processed instantly in the same chunk they were created.
              - …
            - `local_receipts` ReceiptView[]: Receipts generated in this chunk from transactions with `signer_id` equal to `receiver_id`.
              - …
            - `receipts` ReceiptView[], required: Represents receipts generated by execution of the previous chunk. Note that those are not the receipts executed by this chunk or even targeting that shard.
              - …
            - `transactions` IndexerTransactionWithOutcome[], required
              - …
          - unknown
        - `receipt_execution_outcomes` IndexerExecutionOutcomeWithReceipt[], required
          - `execution_outcome` ExecutionOutcomeWithIdView, required
            - `block_hash` string, required
            - `id` string, required
            - `outcome` ExecutionOutcomeView, required
              - …
            - `proof` MerklePathItem[], required
              - …
          - `receipt` ReceiptView, required
            - `predecessor_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) ```
            - `priority` integer: Deprecated, retained for backward compatibility.
            - `receipt` union, required
              - …
            - `receipt_id` string, required
            - `receiver_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) ```
        - `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.
        - `state_changes` StateChangeWithCauseView[], required
          - union
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
      - `tracked_shards` ShardId[], required: The node's configured chunk and execution coverage, in block layout order. Carried chunks remain None inside the message even for tracked shards.
    - `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` 'DATA_UNAVAILABLE', required
          - object
            - `info` object, required
              - …
            - `name` 'INCOMPLETE_DATA', required
          - object
            - `info` object, required
              - …
            - `name` 'UNSUPPORTED', required
          - object
            - `name` 'LIMIT_EXCEEDED', required
          - object
            - `name` 'BUSY', 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

## Changes

- **2026-10-19** `8c28dfb79676`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/near/apis/near-protocol-json-rpc-api/changes/EXPERIMENTAL_indexer_block/post.md)

---

[API](https://skmtc.dev/near/apis/near-protocol-json-rpc-api.md) · [All operations](https://skmtc.dev/near/apis/near-protocol-json-rpc-api/llms.txt) · [OpenAPI document](https://skmtc.dev/near/apis/near-protocol-json-rpc-api/revisions/8c28dfb79676?raw)
