chain_getBlock
Retrieves complete block information from Astar, including the block header, extrinsics, and justifications.
Why Astar? Build on Polkadot's leading dApp hub supporting EVM, WASM, and upcoming PolkaVM environments with EVM + WASM + PolkaVM support, Build2Earn developer rewards, dApp Staking, and Soneium cross-layer integration.
Use Cases#
The chain_getBlock method is essential for:
- Block explorers - Display complete block information
- Chain analysis - Analyze block production patterns
- Transaction verification - Confirm extrinsic inclusion for cross-chain DeFi, multi-VM smart contracts, and XCM-enabled interoperability with Ethereum and Cosmos
- Data indexing - Build historical blockchain databases
Parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
blockHash | String | No | Hex-encoded block hash. If omitted, returns latest block |
Request#
{
"jsonrpc": "2.0",
"method": "chain_getBlock",
"params": ["0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3"],
"id": 1
}
Returns#
| Field | Type | Description |
|---|---|---|
block | Object | Complete block data |
block.header | Object | Block header information |
block.header.parentHash | String | Hash of the parent block |
block.header.number | String | Block number (hex-encoded) |
block.header.stateRoot | String | Root of the state trie |
block.header.extrinsicsRoot | String | Root of the extrinsics trie |
block.extrinsics | Array | Array of extrinsics in the block |
justifications | Array | Block justifications (if available) |
Code Examples#
- cURL
- JavaScript
- Python
# Get latest block
curl https://api-astar.n.dwellir.com/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "chain_getBlock",
"params": [],
"id": 1
}'
# Get specific block
curl https://api-astar.n.dwellir.com/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "chain_getBlock",
"params": ["0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3"],
"id": 1
}'
import { ApiPromise, WsProvider } from '@polkadot/api';
const provider = new WsProvider('wss://api-astar.n.dwellir.com/YOUR_API_KEY');
const api = await ApiPromise.create({ provider });
// Get latest block
const latestHash = await api.rpc.chain.getBlockHash();
const latestBlock = await api.rpc.chain.getBlock(latestHash);
console.log('Latest block:', {
number: latestBlock.block.header.number.toNumber(),
hash: latestHash.toHex(),
extrinsicsCount: latestBlock.block.extrinsics.length
});
// Get specific block
const blockHash = '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3';
const block = await api.rpc.chain.getBlock(blockHash);
console.log('Block extrinsics:', block.block.extrinsics.length);
await api.disconnect();
import requests
import json
def get_block(block_hash=None):
url = 'https://api-astar.n.dwellir.com/YOUR_API_KEY'
params = [block_hash] if block_hash else []
payload = {
'jsonrpc': '2.0',
'method': 'chain_getBlock',
'params': params,
'id': 1
}
response = requests.post(url, json=payload)
data = response.json()
if 'error' in data:
raise Exception(f"RPC Error: {data['error']}")
return data['result']
# Get latest block
latest_block = get_block()
block_number = int(latest_block['block']['header']['number'], 16)
print(f'Latest block number: {block_number}')
# Get specific block
specific_block = get_block('0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3')
print(f"Extrinsics count: {len(specific_block['block']['extrinsics'])}")
Related Methods#
chain_getBlockHash- Get block hash by numberchain_getHeader- Get block header onlychain_getFinalizedHead- Get finalized block hash