blockchainBlockHeaders

Rostrum Electrum for Bitcoin Cash

Overview

The blockchain.block.headers method retrieves a contiguous sequence of block headers from the main chain, starting at a specified height. This function is crucial for applications that need to verify block headers without downloading full block data.

Parameters

NameTypeRequiredDescription
start_heightintegerYesThe height of the first header in the range to retrieve.
countintegerYesThe number of headers to retrieve.
cp_heightintegerNoOptional checkpoint height for header verification.

Returns

The response includes a sequence of block headers and, optionally, proof of their inclusion in the blockchain:

FieldDescription
countThe number of headers returned, which can be less than requested if the end of the chain is reached.
hexA single string containing the binary headers concatenated together as hexadecimal.
maxThe maximum number of headers the server will return in a single request.
root(Optional) The merkle root of all blockchain headers up to cp_height, if cp_height is non-zero.
branch(Optional) The merkle branch linking the last returned header to the root.

Example Result

Depending on the cp_height value, the response might include a simple list of headers or it could provide a merkle proof of inclusion up to the specified checkpoint height:

Without cp_height or cp_height is 0:

{
  "count": 2,
  "hex": "010...299",
  "max": 2016
}


## Request Example

```json cURL
curl --location 'https://api.tatum.io/v3/blockchain/node/rostrum-mainnet/' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {API_KEY}' \
--data '{
    "method": "blockchain.block.headers",
    "params": [1000, 10, 0],
    "id": 1,
    "jsonrpc": "2.0"
}'
// yarn add @tatumio/tatum

import { TatumSDK, Rostrum, Network } from "@tatumio/tatum";

const rostrum = await TatumSDK.init<Rostrum>({ network: Network.ROSTRUM_MAINNET });

const headersInfo = await tatum.rpc.getBlockHeaders({
  startHeight: 1000,
  count: 10,
  cpHeight: 0
});

console.log(headersInfo);

await rostrum.destroy(); // Destroy Tatum SDK - needed for stopping background jobs