Skip to main content
POST
/
eth_getBlockByHash
curl --request POST \
  --url https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/ \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "method": "eth_getBlockByHash",
  "params": [
    "0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e",
    false
  ],
  "id": 1
}
'
import requests

url = "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"

payload = {
"jsonrpc": "2.0",
"method": "eth_getBlockByHash",
"params": ["0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e", False],
"id": 1
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
method: 'eth_getBlockByHash',
params: ['0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e', false],
id: 1
})
};

fetch('https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'method' => 'eth_getBlockByHash',
'params' => [
'0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e',
false
],
'id' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"

payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getBlockByHash\",\n \"params\": [\n \"0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e\",\n false\n ],\n \"id\": 1\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getBlockByHash\",\n \"params\": [\n \"0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e\",\n false\n ],\n \"id\": 1\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getBlockByHash\",\n \"params\": [\n \"0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e\",\n false\n ],\n \"id\": 1\n}"

response = http.request(request)
puts response.read_body
{
  "jsonrpc": "<string>",
  "id": 123,
  "result": {}
}
Tempo API method that returns information about a block specified by its hash. This method can return full transaction objects or just transaction hashes depending on the second parameter.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Tempo blocks include additional fields not found in standard Ethereum blocks: mainBlockGeneralGasLimit, sharedGasLimit, and timestampMillisPart for sub-second precision.

Parameters

  • blockHash — the hash of the block to retrieve
  • fullTransactions — if true, returns full transaction objects; if false, returns only transaction hashes

Response

  • result — a block object, or null if no block was found:
    • number — the block number
    • hash — the block hash
    • parentHash — hash of the parent block
    • timestamp — block timestamp in seconds
    • timestampMillisPart — sub-second timestamp (0-999 ms), Tempo-specific
    • transactions — array of transaction objects or hashes
    • Additional Tempo fields for payment lanes gas limits

eth_getBlockByHash code examples

const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);

const getBlockByHash = async () => {
    const block = await provider.getBlock("0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e");
    console.log(block);
  };

getBlockByHash();
from web3 import Web3

node_url = "CHAINSTACK_NODE_URL"

web3 = Web3(Web3.HTTPProvider(node_url))
block = web3.eth.get_block("0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e")
print(block)
curl -X POST "CHAINSTACK_NODE_URL" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "method": "eth_getBlockByHash", "params": ["0x1c3830dd03a362ba82e82017a5f4e361c12fc43b64a1e4ebd2902f0c313cad7e", false], "id": 1}'

Body

application/json
jsonrpc
string
default:2.0
method
string
default:eth_getBlockByHash
params
any[]

Block hash and boolean for full transactions

id
integer
default:1

Response

200 - application/json

The block information

jsonrpc
string
id
integer
result
object | null

Block object or null if not found

Last modified on June 25, 2026