Skip to main content
POST
/
5b8d22690a57f293b3a1ed8758014e35
eth_getBlockTransactionCountByHash
curl --request POST \
  --url https://nd-000-364-211.p2pify.com/5b8d22690a57f293b3a1ed8758014e35 \
  --header 'Content-Type: application/json' \
  --data '
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "eth_getBlockTransactionCountByHash",
  "params": [
    "0x7ccd0791880035667dfee8244ab96d9c091668859e9e72ded4890e6efde68b25"
  ]
}
'
import requests

url = "https://nd-000-364-211.p2pify.com/5b8d22690a57f293b3a1ed8758014e35"

payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getBlockTransactionCountByHash",
"params": ["0x7ccd0791880035667dfee8244ab96d9c091668859e9e72ded4890e6efde68b25"]
}
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({
id: 1,
jsonrpc: '2.0',
method: 'eth_getBlockTransactionCountByHash',
params: ['0x7ccd0791880035667dfee8244ab96d9c091668859e9e72ded4890e6efde68b25']
})
};

fetch('https://nd-000-364-211.p2pify.com/5b8d22690a57f293b3a1ed8758014e35', 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://nd-000-364-211.p2pify.com/5b8d22690a57f293b3a1ed8758014e35",
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([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'eth_getBlockTransactionCountByHash',
'params' => [
'0x7ccd0791880035667dfee8244ab96d9c091668859e9e72ded4890e6efde68b25'
]
]),
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://nd-000-364-211.p2pify.com/5b8d22690a57f293b3a1ed8758014e35"

payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getBlockTransactionCountByHash\",\n \"params\": [\n \"0x7ccd0791880035667dfee8244ab96d9c091668859e9e72ded4890e6efde68b25\"\n ]\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://nd-000-364-211.p2pify.com/5b8d22690a57f293b3a1ed8758014e35")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getBlockTransactionCountByHash\",\n \"params\": [\n \"0x7ccd0791880035667dfee8244ab96d9c091668859e9e72ded4890e6efde68b25\"\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://nd-000-364-211.p2pify.com/5b8d22690a57f293b3a1ed8758014e35")

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 \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getBlockTransactionCountByHash\",\n \"params\": [\n \"0x7ccd0791880035667dfee8244ab96d9c091668859e9e72ded4890e6efde68b25\"\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "jsonrpc": "<string>",
  "id": 123,
  "result": "<string>"
}
Arbitrum API method that returns the number of transactions in a block specified by block hash. This information can be useful for analytics purposes.
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.

Parameters

  • hash — the block hash of the requested block

Response

  • quantity — an integer value representing how many transactions are included in the block.

eth_getBlockTransactionCountByHash code examples

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

const getTransactionsCount = async (blockHash) => {
    const count = await provider.send("eth_getBlockTransactionCountByHash", [blockHash]);
     console.log(count);
   };

   getTransactionsCount('0x7709b7cacb9a3d647afe557d51891c00ad0c00e01d5bffdbcfe6c1730d36290c');
from web3 import Web3  
node_url = "CHAINSTACK_NODE_URL" 

web3 = Web3(Web3.HTTPProvider(node_url)) 
print(web3.eth.get_block_transaction_count("0x7709b7cacb9a3d647afe557d51891c00ad0c00e01d5bffdbcfe6c1730d36290c"))

Use case

eth_getBlockTransactionCountByHash is a useful tool for analyzing transaction volume on the Arbitrum blockchain. On average, a new block is generated on the Arbitrum mainnet every 0.3 seconds, resulting in approximately 12,000 blocks per hour. Using the ethers.js library, one can inspect the past 12,000 blocks starting from the latest block, retrieve the hash of each block, and use eth_getBlockTransactionCountByHash to find the number of transactions in each block.
index.js
const ethers = require("ethers");
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);

async function retrieveTransactionsCount() {
  // Get the current block number
  const currentBlockNumber = await provider.getBlockNumber();

  // Calculate the block number from one hour ago
  const oneHourAgoBlockNumber = currentBlockNumber - 12000; // 12000 blocks/hr on average on the Arbitrum mainnet
  
  // Initialize a variable to store the total number of transactions
  let totalTransactionCount = 0;

  // Loop through all blocks from the current block number to the block number from one hour ago
  for (let block = currentBlockNumber; block > oneHourAgoBlockNumber; block--) {

    // Get the hash of each block
    const blockData = await provider.getBlock(block);
    const blockHash = blockData.hash

    // Get the number of transactions in this block using each hash
    const transactionCount = await provider.send("eth_getBlockTransactionCountByHash", [blockHash]);

    // Add the number of transactions in this block to the total
    totalTransactionCount += Number(transactionCount);

    console.log(`Block #${block} has ${Number(transactionCount)} transactions.`);
  }

  console.log(`The total number of transactions in the previous hour is: ${totalTransactionCount}`);
}


retrieveTransactionsCount();
This example connects to an Arbitrum node using the ethers.js library. The retrieveTransactionsCount function gets the current block number, calculates the block number from one hour ago, and uses a for loop to iterate through all blocks in that range. The function then retrieves the hash of each block and the number of transactions in each block and adds it to a total transaction count. The final result, the total number of transactions in the previous hour, is logged to the console. This is a good example of how you can combine different methods.

Body

application/json
id
integer
default:1
jsonrpc
string
default:2.0
method
string
default:eth_getBlockTransactionCountByHash
params
string[]

The block hash identifier.

Response

200 - application/json

The block information

jsonrpc
string
id
integer
result
string
Last modified on July 7, 2026