newBlocks
Available on Go-Gateway and Cloud API
Note: Users planning to use this stream with Go-Gateway should ensure they have a local node ws connection.
Name: newBlocks
newBlocks is a stream of all new blocks as they are propagated in the BDN.

Options

Key
Description
Values
include
Fields to include in the block stream.
hash,header,transactions,uncles
[Default: all]

Examples (Cloud-API)

wscat
Python
Node.js
Golang
## ETH Example
wscat -c wss://virginia.eth.blxrbdn.com/ws --header "Authorization: <YOUR-AUTHORIZATION-HEADER>"
> {"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"]}]}
< ......
​
​
## BSC Example
wscat -c wss://virginia.bsc.blxrbdn.com/ws --header "Authorization: <YOUR-AUTHORIZATION-HEADER>"
> {"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"], "blockchain_network": "BSC-Mainnet"}]}
< ......
​
​
## Polygon Example
wscat -c wss://virginia.polygon.blxrbdn.com/ws --header "Authorization: <YOUR-AUTHORIZATION-HEADER>"
> {"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"], "blockchain_network": "Polygon-Mainnet"}]}
< ......
​
from bxcommon.rpc.provider.ws_provider import WsProvider
​
# Enterprise users can follow line 4-9 to
async with WsProvider(
uri="wss://virginia.eth.blxrbdn.com/ws",
headers={"Authorization": <YOUR-AUTHORIZATION-HEADER>},
# Add the following line if you work with IP instead of DNS
# skip_ssl_cert_verify=True
) as ws:
​
# Non Enterprise users should follow line 12-17
# async with WsProvider(
# uri="wss://api.blxrbdn.com/ws",
# headers={"Authorization": <YOUR-AUTHORIZATION-HEADER>}
# Add the following line if you work with IP instead of DNS
# skip_ssl_cert_verify=True
# ) as ws:
​
# ETH Example
subscription_id = await ws.subscribe("newBlocks", {"include": ["hash"]})
​
# BSC Example (only available at endpoint wss://<region>.bsc.blxrbdn.com/ws)
# subscription_id = await ws.subscribe("newBlocks", {"include": ["hash"], "blockchain_network": "BSC-Mainnet"})
​
# Polygon Example (only available at endpoint wss://<region>.polygon.blxrbdn.com/ws)
# subscription_id = await ws.subscribe("newBlocks", {"include": ["hash"], "blockchain_network": "Polygon-Mainnet"})
​
while True:
next_notification = await ws.get_next_subscription_notification_by_id(subscription_id)
print(next_notification) # or process it generally
await ws.unsubscribe(subscription_id)
var fs = require('fs');
const WebSocket = require('ws');
​
// Enterprise users can follow line 5-16
const ws = new WebSocket(
'wss://virginia.eth.blxrbdn.com/ws', // for ETH
// use 'wss://virginia.bsc.blxrbdn.com/ws', //for BSC
// use 'wss://virginia.polygon.blxrbdn.com/ws', // for Polygon
{
headers: {
"Authorization" : <YOUR-AUTHORIZATION-HEADER>
},
// Add the following line if you work with IP instead of DNS
// rejectUnauthorized: false,
}
);
​
// Non Enterprise users should follow line 19-27
// const ws = new WebSocket(
// "wss://api.blxrbdn.com/ws",
// {
// headers: {
// "Authorization" : <YOUR-AUTHORIZATION-HEADER>
// },
// rejectUnauthorized: false,
// }
// );
​
function proceed() {
// ETH Example
ws.send(`{"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"]}]}`);
​
// BSC Example (only available at endpoint wss://<region>.bsc.blxrbdn.com/ws)
// ws.send(`{"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"], "blockchain_network": "BSC-Mainnet"}]}`);
​
// Polygon Example (only available at endpoint wss://<region>.polygon.blxrbdn.com/ws)
// ws.send(`{"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"], "blockchain_network": "Polygon-Mainnet"}]}`);
}
​
​
function handle(nextNotification) {
console.log(nextNotification.toString()); // or process it generally
}
​
ws.on('open', proceed);
ws.on('message', handle);
package main
​
import (
"crypto/tls"
"fmt"
"github.com/gorilla/websocket"
"net/http"
)
​
func main() {
dialer := websocket.DefaultDialer
// Add the following lines if you work with IP instead of DNS
// tlsConfig := &tls.Config{
// Certificates: []tls.Certificate{cert},
// InsecureSkipVerify: true,
// }
// dialer.TLSClientConfig = tlsConfig
​
// Enterprise users can follow line 20
wsSubscriber, _, err := dialer.Dial("wss://virginia.eth.blxrbdn.com/ws", http.Header{"Authorization": []string{<YOUR-AUTHORIZATION-HEADER>}})
​
// Non Enterprise users can follow line 23
// wsSubscriber, _, err := dialer.Dial("wss://api.blxrbdn.com/ws", http.Header{"Authorization": []string{<YOUR-AUTHORIZATION-HEADER>}})
​
if err != nil {
fmt.Println(err)
return
}
​
// ETH Example
subRequest := `{"id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"]}]}`
​
// BSC Example (only available at endpoint wss://<region>.bsc.feed.blxrbdn.com:28333)
// subRequest := `{"id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"], "blockchain_network": "BSC-Mainnet"}]}`
​
// Polygon Example (only available at endpoint wss://<region>.polygon.blxrbdn.com:28333)
// subRequest := `{"id": 1, "method": "subscribe", "params": ["newBlocks", {"include": ["hash"], "blockchain_network": "Polygon-Mainnet"}]}`
​
err = wsSubscriber.WriteMessage(websocket.TextMessage, []byte(subRequest))
if err != nil {
fmt.Println(err)
return
}
​
for {
_, nextNotification, err := wsSubscriber.ReadMessage()
if err != nil {
fmt.Println(err)
}
fmt.Println(string(nextNotification)) // or process it generally
}
}
​

Response (Block Event)

Block Event
<<< {"jsonrpc": "2.0", "id": null, "method": "subscribe",
"params": {"subscription": "213883fe-b3e2-4da2-b9ba-196a82df8628",
"result": {"hash": "0x079b7f1b5a68d4301cf97df2f81c406aa598dd508e2d1908974b95ddd61a4156",
"header": {"parentHash": "0xafef6c6bd1049febe85834aa84735f81f2e81efd55d85a1076aae0adceba16de",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"miner": "0xea674fdde714fd979de3edf0f56aa9716b898ec8",
"stateRoot": "0x13f4a37eb7d0ca8ea309a631e51cca86eaa1b9765a2e6a9eb1614ddcf4ea57e4",
"transactionsRoot": "0x33d0f3c1ce4e3be6346738465cafc727f3500990c881d6fe4821567504badfd5",
"receiptsRoot": "0xad4fe2b36823a0b57f1c640d115eacc8cc1e64c73e49f89a131f206457afbf9f",
"logsBloom": "0x3862455e6027e5863992de359e89bd33e91312891441903f715503c922420904c00e77b054483930423b7a0b5aa4433342b5c096fb3a0883a970d882b9ac02104582cab5eb046e62c9ca17acba8268e25c103107216cec48bc432d78b54927991c5147080a5781c028102040a28ab8d016439e6f8a4804b44c15c3fa85873c204ab8938d450f702ec2444f5a83028586683439ff6de3e57be46c295514527dbcc717f08804c1ac022fcccac7c058d447122e109294a38c3b1a2a676c9814c6913200414e638eb046ed244035875a0c2e446132bd450223952a9bbcd694666884a03db1340b8010dfaae464948a9b4ae524ff8a942258445c73ce176bee981b7d",
"difficulty": "0xc39780fb04af3",
"number": "0xab05c3",
"gasLimit": "0xbdfca5",
"gasUsed": "0xbdb8e3",
"timestamp": "0x5fa62290",
"extraData": "0x65746865726d696e652d6575312d36",
"mixHash": "0x3cd96f6536c1cc745ce9a4f767d65a94b64392bc787e029e7c16339641265b0a",
"nonce": "0x327b58b8b7216cf5"},
"transactions": [{"from": "0xea674fdde714fd979de3edf0f56aa9716b898ec8",
"gas": "0xc350",
"gasPrice": "0x3b9aca00",
"hash": "0x587a2db59d1af16aa03521a711c3db5b443e5d05cfc72eccadb89c99380f7da0",
"input": "0x",
"nonce": "0x1b8a09b",
"value": "0x54fbe53cd2d1338",
"v": "0x25",
"r": "0x41f3261e25a3e77abd4b0bd4f21cfc2d92ca2d52ff9c663c9a68c6a382115dac",
"s": "0x4350bb6f770bb3363094774fe36478b20013c705f4041fc1bcd0f9fe520c9a23",
"to": "0x190aab185dbf089b1c5cf06a4f13421c14fc18fa"},
...
{"from": "0xc88f7666330b4b511358b7742dc2a3234710e7b1",
"gas": "0x5208",
"gasPrice": "0x7aef40a00",
"hash": "0x92df6598e3a2bc9550898fd7b3322594228e513c0098333bbefd6784a1aa90db",
"input": "0x",
"nonce": "0x6827c",
"value": "0x36e9c396c89e000",
"v": "0x25",
"r": "0x1653aae7a09b85b923b4602f69886c816f470f9b5167d16f2cbb963d00345583",
"s": "0x2c429419c8f23172d4fe4177f796daacf6cfccd9d1545d62957e13fa4af933db",
"to": "0x844359bf8d5fa20f32b0d679527adb93d6255abf"}],
"uncles": []}}}
Copy link
On this page