Ethereum API method that returns the number of transactions in a block specified by block hash. This information can be useful for analytics purposes.
Get you own node endpoint today
Start 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
eth_getBlockTransactionCountByHash
code examplesLearn more about the
ChainstackProvider
inethers.js
: ethers ChainstackProvider Documentation.
const ethers = require("ethers");
// Create a ChainstackProvider instance for Ethereum mainnet
const chainstack = new ethers.ChainstackProvider("mainnet");
const getTransactionsCount = async (blockHash) => {
const count = await chainstack.send("eth_getBlockTransactionCountByHash", [
blockHash,
]);
console.log(count);
};
getTransactionsCount(
"0xbff1ae920dd96597dd486d68b2b7c045c3bdc6d6c64dfeb9759499c9e8ca6737"
);
const { Web3 } = require("web3");
const NODE_URL = "CHAINSTACK_NODE_URL";
const web3 = new Web3(NODE_URL);
async function getTransactionsCount(blockHash) {
const count = await web3.eth.getBlockTransactionCount(blockHash)
console.log(count);
}
getTransactionsCount('0xbff1ae920dd96597dd486d68b2b7c045c3bdc6d6c64dfeb9759499c9e8ca6737')
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
print(web3.eth.get_block_transaction_count("0xbff1ae920dd96597dd486d68b2b7c045c3bdc6d6c64dfeb9759499c9e8ca6737"))
Use case
eth_getBlockTransactionCountByHash
is a useful tool for analyzing transaction volume on the Ethereum blockchain. For instance, a new block is generated on the Ethereum blockchain every 12 seconds, resulting in approximately 300 blocks per hour. Using the web3.js library, one can inspect the past 300 blocks starting from the latest block and use eth_getBlockTransactionCountByHash
to find the number of transactions in each block.
const { Web3 } = require("web3");
const NODE_URL = "CHAINSTACK_NODE_URL";
const web3 = new Web3(NODE_URL);
async function retrieveTransactionsCount() {
// Get the current block number
const currentBlockNumber = await web3.eth.getBlockNumber();
// Calculate the block number from one hour ago
const oneHourAgoBlockNumber = currentBlockNumber - 300n; // 300 blocks/hr on average on the Ethereum 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 getBlockHash = await web3.eth.getBlock(block, false);
const blockHash = getBlockHash.hash
// Get the number of transactions in this block using each hash
const transactionCount = await web3.eth.getBlockTransactionCount(blockHash);
// Add the number of transactions in this block to the total
totalTransactionCount += Number(transactionCount);
console.log(`Block #${block} has ${transactionCount} transactions.`);
}
console.log(`The total number of transactions in the previous hour is: ${totalTransactionCount}`);
}
retrieveTransactionsCount();
This example connects to an Ethereum node using the web3.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.
Try the eth_getBlockTransactionCountByHash
RPC method yourself
eth_getBlockTransactionCountByHash
RPC method yourself