newBlocks

Available on Gateway and Cloud API

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,future_validator_info,withdrawals

[Default: all] future_validator_info contains validator addresses for future blocks and indicates whether the validators are connected to the BDN (currently only supported in BSC) withdrawals

contains withdrawals for ETH block

Examples (Websocket)

Cloud-API

## 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"}]}
< ......

Response (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",
                           "blobGasUsed": "0xa0000",
                           "excessBlobGas": "0x4b40000",
                           "parentBeaconBlockRoot": "0x14e886e6...908fe06ba3c"
                  },
                "future_validator_info":[{"block_height":22460216,
                                          "wallet_id":"0x295e26495cef6f69dfa69911d9d8e4f3bbadb89b",
                                          "accessible":true},
                                          {"block_height":22460217,
                                           "wallet_id":"0x2d4c407bbe49438ed859fe965b140dcf1aab71a9",
                                           "accessible":false}], 
                "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"}], 
               "withdrawals": [
                                 {
                                 "index": "0x1506516",
                                 "validatorIndex": "0x18ea9",
                                 "address": "0x8e609ac80f4324e499a6efd24f221a2caa868224",
                                 "amount": "0x379ea6b",
                                 },
                                 {
                                 "index": "0x1506517",
                                 "validatorIndex": "0x18eaa",
                                 "address": "0x8e609ac80f4324e499a6efd24f221a2caa868224",
                                 "amount": "0x102d9b3",
                                 }
                               ], 
                "uncles": []}}}

Examples - gRPC

package main

import (
	"context"
	"fmt"
	pb "github.com/bloXroute-Labs/gateway/v2/protobuf"
	"google.golang.org/grpc"
	"google.golang.org/grpc/credentials"
	"time"
)

type blxrCredentials struct {
	authorization string
}

func (bc blxrCredentials) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {
	return map[string]string{
		"authorization": bc.authorization,
	}, nil
}

func (bc blxrCredentials) RequireTransportSecurity() bool {
	return false
}

func main() {
	// gRPC server default values
	gatewayHostIP := "localhost"
	gatewayGRPCPort := 5001
	
	// this will use localhost CA to verify the certificate
	creds := credentials.NewClientTLSFromCert(nil, "")

	// Open gRPC connection to Gateway.
	conn, _ := grpc.Dial(
		fmt.Sprintf("%v:%v", gatewayHostIP, gatewayGRPCPort),
		grpc.WithTransportCredentials(creds),
		grpc.WithPerRPCCredentials(blxrCredentials{authorization: "<YOUR-AUTHORIZATION-HEADER>"}),
	)

	// Use the Gateway client connection interface.
	client := pb.NewGatewayClient(conn)

	// create context and defer cancel of context
	callContext, cancel := context.WithTimeout(context.Background(), 24*time.Hour)
	defer cancel()

	// Create a subscription using the stream-specific method and request.
	stream, _ := client.NewBlocks(callContext, &pb.BlocksRequest{})

	for {
		subscriptionNotification, err := stream.Recv()
		if err == nil {
			fmt.Println(subscriptionNotification) // or process it generally
		}
	}
}

Response (Block Event)

{
    "future_validator_info": [],
    "transaction": [
        {
            "from": "",
            "local_region": false,
            "time": "0",
            "raw_tx": "+I6DAlTHhQHc1lHAglnYlBXsRrWI...3SFs7n3n3UUCAVX1weV6HLAcAKuA"
        },
        ....
        {
            "from": "",
            "local_region": false,
            "time": "0",
            "raw_tx": "AviPgkJogwkGOoQ7mso...3Z99ZUu1/Jc0B9ytQ="
        }
    ],
    "withdrawals": [
        {
            "address": "0x9baA3244565d51D9C7897c0EB6679eD4890e536E",
            "amount": "0x60077b",
            "index": "0x104ed81",
            "validator_index": "0x1ee90"
        },
        ....
        {
            "address": "0x9baA3244565d51D9C7897c0EB6679eD4890e536E",
            "amount": "0x604095",
            "index": "0x104ed90",
            "validator_index": "0x1ee9f"
        }
    ],
    "hash": "0xd9cfa479b98ae15...a7e629fe3435e6169abca",
    "subscriptionID": "c5451b97-c82c-47e2-a70e-74e3256584e6",
    "header": {
        "parent_hash": "0xf3fd6b6011eed8d...f482e9345a3fe5dfe9e26c1db",
        "sha3_uncles": "0x1dcc4de8dec75d7aa...48a7413f0a142fd40d49347",
        "miner": "0x0c10000000756...7f022929a97bda45",
        "state_root": "0xf074e94fc3d700a8f....9ea3280595bd5acd5d97d0",
        "transactions_root": "0xedade2fe2198c....ccf38eeaacb2ccaa92e60",
        "receipts_root": "0x2ff34bb52237c31b8...78e0ac369028cb63f",
        "logs_bloom": "0x4c0008000804...00402004048",
        "difficulty": "0x0",
        "number": "0x107336",
        "gas_limit": "0x1c9c380",
        "gas_used": "0x11bc8e3",
        "timestamp": "0x65e73b50",
        "extra_data": "0xd883010d0e846....2312e37856c696e7578",
        "mix_hash": "0xf6743b00bce48fc1617acf...84d781807a3866ab",
        "nonce": "0x0000000000000000",
        "base_fee_per_gas": "59",
        "withdrawals_root": "0x5e9855e2716a2b4793d4e...9faa41d9c876fcff1b",
        "blob_gas_used": "0x80000",
        "excess_blob_gas": "0x4b20000",
        "parent_beacon_root": "0xe83661292da71373c38...3a91a5e27ac4a59ea3c"
    }
}