eth_getBlockReceipts | BNB Chain

BNB API method that retrieves all transaction receipts for a given block. Transaction receipts contain information about a transaction's execution status and can be useful for monitoring the status of transfers or contract execution on the blockchain.

๐Ÿ“˜

This method is available on both the Geth and Erigon clients.

๐Ÿ‘

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

  • quantity or tag โ€” the integer of a block encoded as hexadecimal or the string with:

    • latest โ€” the most recent block in the blockchain and the current state of the blockchain at the most recent block. A chain reorganization is to be expected.

    • safeโ€”the block that received justification from the beacon chain. Although this block could be involved in a chain reorganization, it would necessitate either a coordinated attack by the majority of validators or severe propagation latency.

    • finalizedโ€”the block accepted as canonical by more than 2/3 of the validators. A chain reorganization is extremely unlikely, and it would require burning at least 1/3 of the staked BNB.

    • earliest โ€” the earliest available or genesis block.

    • pendingโ€”the pending state and transactions block. This is the current state of transactions that have been broadcast to the network but have not yet been included in a block.

      ๐Ÿ“˜

      See the default block parameter and How The Merge Impacts Ethereumโ€™s Application Layer.

Response

  • result โ€” an array of objects with the following fields:
    • Transaction receipt โ€” the object with:
      • blockHash โ€” the block hash. Identifies the block in which the transaction was included. This field is null for transactions that have not yet been included in a block.
      • blockNumber โ€” the number of the block in which the transaction was included. This field is null for transactions that have not yet been included in a block.
      • contractAddress โ€” the address of the contract created by the transaction if it was a contract creation transaction. Otherwise, the value is null.
      • cumulativeGasUsed โ€” the total amount of gas used in the block until this transaction was executed.
      • effectiveGasPrice โ€” the actual value deducted from the sender's account for this transaction.
      • from โ€” the address of the sender who initiated the transaction.
      • gasUsed โ€” the amount of gas used by this specific transaction alone.
      • logs โ€” an array of log objects generated by this transaction, if any. Logs are generated by smart contracts.
      • logsBloom โ€” the bloom filter used by light clients to quickly retrieve logs related to the transaction.
      • status โ€” the success status of the transaction, represented as 1 for success or 0 for failure.
      • to โ€” the address of the recipient of the transaction if it was a transaction to an address. For contract creation transactions, this field is null.
      • transactionHash โ€” the hash that uniquely identifies the transaction.
      • transactionIndex โ€” the index of the transaction within the block.
      • type โ€” the type of the transaction. 0 indicates a regular transfer; 2 indicates a contract creation or smart contract function call.

eth_getBlockReceipts code examples

/* 
eth_getBlockReceipts is not available in Web3.js
Create a custom class using Web3PluginBase to implement it
*/

const { Web3, Web3PluginBase } = require('web3');
const NODE_URL = "CHAINSTACK_NODE_URL";
const web3 = new Web3(NODE_URL);

// Define the ExtraMethods class
class ExtraMethods extends Web3PluginBase {
    pluginNamespace = 'extra';

    async getBlockReceipts(blockNumber) {
        return this.requestManager.send({
            method: 'eth_getBlockReceipts',
            params: [blockNumber],
        });
    }
}

web3.registerPlugin(new ExtraMethods());

// Function to get block receipts using the custom plugin
async function getBlockReceipts(blockId) {
    try {
        const receipts = await web3.extra.getBlockReceipts(blockId);
        console.log(receipts);
    } catch (error) {
        console.error("Error fetching block receipts:", error);
    }
}

// Call the function with "latest" block
getBlockReceipts("latest");
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);

const eth_getBlockReceipts = async () => {
    const BlockReceipts = await provider.send("eth_getBlockReceipts", ["latest"]);
     console.log(BlockReceipts);
   };

eth_getBlockReceipts();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3.HTTPProvider(node_url)

block_receipts = web3.make_request('eth_getBlockReceipts', ['latest'])
print(block_receipts)

Use case

The eth_getBlockReceipts allows you to retrieve the receipts for all transactions in a specific block. A practical use case can be to retrieve all of the logs emitted from the transactions in a block. The method returns an array of transaction receipts, each containing information about the transaction and any logs generated as a result of the transaction execution so that the logs can be isolated.

๐Ÿ“˜

Read Uncovering the power of eth_getBlockReceipts to learn more about transactions receipts and how to use the eth_getBlockReceipts method.

Try the eth_getBlockReceipts RPC method yourself

Language
Click Try It! to start a request and see the response here!