eth_getBlockByHash
Returns information about a block by hash on MegaETH.
Why MegaETH? Build on the first real-time blockchain with sub-millisecond latency and 100,000+ TPS with sub-millisecond transaction streaming with 100,000+ sustained TPS and full EVM compatibility.
Use Cases#
The eth_getBlockByHash method is essential for:
- Block verification - Verify block data using its unique hash
- Chain reorganization handling - Track blocks during reorgs
- Cross-chain bridges - Verify block finality for high-frequency trading, real-time gaming, instant payments, and latency-sensitive applications
- Deterministic queries - Get consistent block data regardless of chain state
Full Block Restriction#
Full Block Queries Disabled
On MegaETH, the fullTransactionObjects parameter is disabled for performance optimization. The method always returns transaction hashes instead of full transaction objects.
To get full transaction details, fetch them individually:
// Get block with transaction hashes
const block = await provider.getBlock(blockHash, false);
// Fetch full transaction details as needed
for (const txHash of block.transactions) {
const tx = await provider.getTransaction(txHash);
console.log('Transaction:', tx);
}
Parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
blockHash | DATA | Yes | 32-byte block hash |
fullTransactions | Boolean | Yes | If true, returns full transaction objects; if false, returns transaction hashes |
Request#
{
"jsonrpc": "2.0",
"method": "eth_getBlockByHash",
"params": [
"0xe2ae73c07a531471127f7a4e814d7d1e8dbd3def6152c60e2e0284024798056e",
false
],
"id": 1
}
Returns#
Returns the same block object as eth_getBlockByNumber, or null if no block is found.
| Field | Type | Description |
|---|---|---|
number | QUANTITY | Block number |
hash | DATA | 32-byte block hash |
parentHash | DATA | 32-byte parent block hash |
timestamp | QUANTITY | Unix timestamp |
gasUsed | QUANTITY | Total gas used |
transactions | Array | Transaction objects or hashes |
Code Examples#
- cURL
- JavaScript
- Python
- Go
curl -X POST https://api-megaeth-mainnet.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getBlockByHash",
"params": [
"0xe2ae73c07a531471127f7a4e814d7d1e8dbd3def6152c60e2e0284024798056e",
false
],
"id": 1
}'
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider('https://api-megaeth-mainnet.n.dwellir.com/YOUR_API_KEY');
const blockHash = '0xe2ae73c07a531471127f7a4e814d7d1e8dbd3def6152c60e2e0284024798056e';
const block = await provider.getBlock(blockHash);
console.log('Block number:', block.number);
console.log('Timestamp:', new Date(block.timestamp * 1000));
from web3 import Web3
w3 = Web3(Web3.HTTPProvider('https://api-megaeth-mainnet.n.dwellir.com/YOUR_API_KEY'))
block_hash = '0xe2ae73c07a531471127f7a4e814d7d1e8dbd3def6152c60e2e0284024798056e'
block = w3.eth.get_block(block_hash)
print(f'Block number: {block.number}')
print(f'Timestamp: {block.timestamp}')
package main
import (
"context"
"fmt"
"log"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, err := ethclient.Dial("https://api-megaeth-mainnet.n.dwellir.com/YOUR_API_KEY")
if err != nil {
log.Fatal(err)
}
blockHash := common.HexToHash("0xe2ae73c07a531471127f7a4e814d7d1e8dbd3def6152c60e2e0284024798056e")
block, err := client.BlockByHash(context.Background(), blockHash)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Block number: %d\n", block.Number().Uint64())
}
Error Handling#
| Error Code | Message | Description |
|---|---|---|
| -32602 | Invalid params | Invalid block hash format |
| -32000 | Block not found | Block with this hash does not exist |
Related Methods#
eth_getBlockByNumber- Get block by numbereth_blockNumber- Get latest block number