> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# eth_getBlockTransactionCountByHash | Ethereum

> Ethereum API method that returns the number of transactions in a block specified by block hash. This information can be useful for analytics purposes.

Ethereum API method that returns the number of transactions in a block specified by block hash. This information can be useful for analytics purposes.

## 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

<Note>
  Learn more about the `ChainstackProvider` in `ethers.js`: [ethers ChainstackProvider Documentation](/reference/ethersjs-chainstackprovider).
</Note>

<CodeGroup>
  ```javascript ethers.js theme={"system"}
  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"
  );
  ```

  ```python web3.py theme={"system"}
  from web3 import Web3  
  node_url = "CHAINSTACK_NODE_URL" 

  web3 = Web3(Web3.HTTPProvider(node_url)) 
  print(web3.eth.get_block_transaction_count("0xbff1ae920dd96597dd486d68b2b7c045c3bdc6d6c64dfeb9759499c9e8ca6737"))
  ```
</CodeGroup>

## 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](https://etherscan.io/chart/blocktime), resulting in approximately 300 blocks per hour. Using the ethers.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.

```javascript index.js theme={"system"}
const ethers = require("ethers");

// Create a ChainstackProvider instance for Ethereum mainnet
const provider = new ethers.ChainstackProvider("mainnet");

async function retrieveTransactionsCount() {
    // Get the current block number
    const currentBlockNumber = await provider.getBlockNumber();
  
    // Calculate the block number from one hour ago
    const oneHourAgoBlockNumber = currentBlockNumber - 300; // 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 provider.getBlock(block);
      const blockHash = getBlockHash.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 Ethereum 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.


## OpenAPI

````yaml openapi/ethereum_node_api/blocks_info/eth_getBlockTransactionCountByHash.json POST /0a9d79d93fb2f4a4b1e04695da2b77a7
openapi: 3.0.0
info:
  title: Ethereum Node API
  version: 1.0.0
  description: This is an API for interacting with an Ethereum node.
servers:
  - url: https://nd-422-757-666.p2pify.com
security: []
paths:
  /0a9d79d93fb2f4a4b1e04695da2b77a7:
    post:
      tags:
        - Blocks info
      summary: eth_getBlockTransactionCountByHash
      operationId: getBlockTransactionCountByHash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_getBlockTransactionCountByHash
                params:
                  type: array
                  items:
                    type: string
                    title: Block hash
                    description: The block hash identifier.
                  default:
                    - >-
                      0x633a90413361fe1889d1e5ab4cb222608d224c458b30289b8390496a3fab29d8
      responses:
        '200':
          description: The block information
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string

````