New blocks — blocks
Subscribe to the blocks channel to receive an event for every new block. By default you get a compact summary; add full: true to receive the entire block instead. No address required.
{ "action": "subscribe", "channel": "blocks" }
{ "action": "subscribe", "channel": "blocks", "full": true }
block — summary
The summary uses the same field names as its UTXO counterpart — height and previous_hash — plus a timestamp:
{
"type": "block",
"data": {
"height": 19234567,
"hash": "0x...",
"previous_hash": "0x...",
"timestamp": 1740391012,
"num_txs": 187
}
}
| Field | Type | Description |
|---|---|---|
type | string | Always "block". |
data.height | integer | Block height. |
data.hash | string | Block hash. |
data.previous_hash | string | Previous block's hash. |
data.timestamp | integer | Block timestamp, in unix seconds. |
data.num_txs | integer | Number of transactions in the block. |
block_full — full block (full: true)
With full: true you receive the entire block, with every transaction inline, exactly as the chain returns it.
The full block carries every transaction. Subscribe with full: true only if you genuinely need them all — to follow a specific address use balance, history or contract_interactions instead.
{
"type": "block_full",
"data": {
"number": "0x12851b7",
"hash": "0x...",
"parentHash": "0x...",
"timestamp": "0x65d8e3a4",
"gasLimit": "0x1c9c380",
"gasUsed": "0x1234567",
"miner": "0x...",
"transactions": [
{
"hash": "0x...",
"from": "0x...",
"to": "0x...",
"value": "0x0",
"input": "0xa9059cbb...",
"blockNumber": "0x12851b7",
"transactionIndex": "0x0"
}
]
}
}
The shape inside data follows the standard Ethereum JSON-RPC Block object — number, hash, parentHash, timestamp, gasLimit, gasUsed, miner, the full transactions array, and so on.
Unlike the summary events (block, history, …) where numeric fields are JSON integers, every field inside block_full's data is encoded the way the chain returns it — numbers are 0x-hex quantities and addresses/hashes are 0x-hex byte strings.