eth_getBlockByNumber | zkEVM


Polygon zkEVM API method that returns information about the block matching the given block number. This method can retrieve a wide range of information about the block, such as its hash, timestamp, difficulty, and gas limit. You can also retrieve transaction objects included in the block if needed.

👍

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

    • 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.

  • boolean — if true, it returns the details of each transaction. If false, only the hashes of the transactions.

Response

  • object — a block object, or null when no block was found.
    • number — the block number of the requested block, encoded as hexadecimal. null if the block is pending.
    • hash — the block hash of the requested block. null if the block is pending.
    • parenthash— the previous block's hash used to generate the current block, also known as the 'parent block'.
    • nonce — the hash used to demonstrate proof-of-work. null if the block is pending. It returns 0x0000000000000000 when the consensus is proof-of-stake.
    • sha3uncles — the hash of the list of uncles included in the block. It is used to identify the block uniquely and to verify the integrity of the block's data.
    • logsbloom — the bloom filter for the block logs, a data structure that allows for efficient membership testing of elements in a set, in this case, the logs included in the block. null if pending.
    • transactionsroot — the root of the transaction trie of the block. The transactionsRoot field allows nodes to verify the integrity of the transactions in a block.
    • stateroot — the root of the final state trie of the block. The stateroot field is included in the block header and is used to verify the integrity of the state at the time the block was processed
    • receiptsroot— the root of the block's receipts trie. This is a 32-byte hash of the root node of the receipts trie for all transactions in the block. It is used to verify the integrity of the receipt data for all transactions in the block.
    • miner — the address of the miner receiving the reward.
    • difficulty — a measure of how hard it is to find a valid block for the blockchain. It is a number that increases as more miners join the network and more blocks are added to the chain. Encoded as hexadecimal.
    • totaldifficulty — is the cumulative sum of the difficulty of all blocks that have been mined in the network since its inception. It measures the network's overall security and integrity.
    • extradata — extra data included in a block by the miner who mined it. It often includes messages or other information related to the block.
    • size — the size of this block in bytes as an integer value, encoded as hexadecimal.
    • gaslimit — the maximum gas allowed in this block, encoded as hexadecimal.
    • gasused — the total used gas by all transactions in this block, encoded as hexadecimal.
    • timestamp — the Unix timestamp for when the block was collated.
    • transactions — an array of transaction objects. See eth_getTransactionByHash for the exact shape.
    • uncles — array of uncle hashes.

eth_getBlockByNumber code examples

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

async function getBlock(blockNumber) {
    const block = await web3.eth.getBlock(blockNumber, false);
    console.log(block);
  }
  
getBlock("latest")
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);

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

  eth_getBlockByNumber();
from web3 import Web3

node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))

print(web3.eth.get_block("latest", False))

Use case

The eth_getBlockByNumber method can determine whether a block you are analyzing has been included in the main chain or was forked due to a 'reorg'.

A block hash is generated through a cryptographic hash function. This function takes the block's data, including transactions and other information, and the hash of the parent block (the previous block) and outputs a unique, fixed-length digest. This hash represents the current block within the blockchain.

Try the eth_getBlockByNumber RPC method yourself

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