GetBdnFBTxnStateDiffStream

Name: GetBdnFBTxnStateDiffStream

The GetBdnFBTxnStateDiffStream stream provides low-latency access to transaction state diffs for newly produced Flashblocks on the Base network, parsed into protobuf format for immediate use. Transaction state diffs show the changes each transaction makes to chain state before finalization.

This is a real-time WS/gRPC, transaction state diff data stream.

Note: state diffs may arrive in a different order than transactions are executed; each response includes a blockPosition field for ordering.

This stream is available to Enterprise Elite and Ultra tier users.

Request

Method: GetBdnFBTxnStateDiffStream

Parameters

Parameter
Description
Instructions & Notes

addresses

Stream transaction traces that mention one of these addresses

[Optional] List of strings. If omitted, the stream includes state diffs of all transactions.

Example: WebSocket using CLI

wscat -H "Authorization: <AUTH_HEADER>" \
  -c wss://base.blxrbdn.com:5005/ws \
  --wait 1000 \
  --execute '{"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": [  "GetBdnFBTxnStateDiffStream", {} ]}'

Example: Test with grpcurl

grpcurl -H "Authorization: <AUTH_HEADER>" \
  -H "Content-Type: application/grpc" \
  -d '{"addresses":["0x4200000000000000000000000000000000000006"]}' \
  base.blxrbdn.com:443 \
  streamerapi.Api/GetBdnFBTxnStateDiffStream

Example: Golang

package main

import (
	"context"
	"fmt"
	"time"

	"github.com/bloXroute-Labs/base-streamer-client-go/provider"
	streamerapi "github.com/bloXroute-Labs/base-streamer-proto/streamer_api"
	"github.com/joho/godotenv"
)

func main() {
	_ = godotenv.Load() // Set you AUTH_HEADER in .env file

	err := ListenForBdnFBTxnStateDiffStream(10)
	if err != nil {
		panic(err)
	}
}

func ListenForBdnFBTxnStateDiffStream(numberOfBlocks uint64) error {
	grpcClient, err := provider.NewGRPCClient()
	if err != nil {
		return err
	}
	stateDiffsChan := make(chan *streamerapi.GetBdnFBTxnStateDiffStreamResponse)
	ctx, cancel := context.WithCancel(context.Background())
	defer cancel()

	stream, err := grpcClient.GetBdnFBTxnStateDiffStream(ctx, nil) // Optionally filter by mentioned addresses
	if err != nil {
		return fmt.Errorf("failed to get stream with: %v", err)
	}
	stream.Into(stateDiffsChan)

	fmt.Println("waiting on state diffs channel")
	for range numberOfBlocks {
		stateDiff, ok := <-stateDiffsChan
		if !ok {
			return fmt.Errorf("state diffs channel closed")
		}
		updateTime := time.Now()

		// Display to user
		fmt.Printf("Bloxroute BDN Flashblock txn state diff at %v: block_number: %v, block_position: %v, flashblock_index: %v, tx_hash: %v, is_success: %v\n",
			updateTime.UTC(), *stateDiff.BlockNumber, *stateDiff.BlockPosition, *stateDiff.FlashblockIndex, *stateDiff.TxHash, *stateDiff.IsSuccess)
		for k, v := range stateDiff.Trace.Pre {
			balance := ""
			if v.Balance != nil {
				balance = *v.Balance
			}
			fmt.Printf("pre: %s: balance: %s, storage: %+v\n", k, balance, v.Storage)
		}
		fmt.Println("")
		for k, v := range stateDiff.Trace.Post {
			balance := ""
			if v.Balance != nil {
				balance = *v.Balance
			}
			fmt.Printf("post: %s: balance: %s, storage: %+v\n", k, balance, v.Storage)
		}
		fmt.Println("----------------------")
	}
	return nil
}

Response (txn state diff)

Full response details & format can be found here: https://github.com/bloXroute-Labs/base-streamer-proto/blob/develop/proto/streamer_api.proto

<<< {
  "blockNumber": "35355567",
  "blockPosition": "266",
  "flashblockIndex": "10",
  "txHash": "0xcde6859f0b483748ae6d85f510ac462e927f02532bf3eae89dde7336b64a878c",
  "isSuccess": true,
  "trace": {
    "pre": {
      "0x0ad08370c76ff426f534bb2affd9b5555338ee68": {
        "balance": "0x0"
      },
      "0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae": {
        "balance": "0x0"
      },
      "0x16613524e02ad97edfef371bc883f2f5d6c480a5": {
        "balance": "0x0"
      },
      "0x20183dc92e044e6a14c4afa5ce202519a0af4067": {
        "balance": "0x0",
        "storage": {
          "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000100000a000a000201b60c000000000000011040a247b2b9a749de215adc15",
          "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000001028f86b968ea8de59efef293d8fa7",
          "0x000000000000000000000000000000000000000000000000000000000000000b": "0x0100000000000000000001a84b99d4c5f6c25501820000039f70581068c153c3"
        }
      },
      "0x215e278c44787dffd33b58311a0e9bb0657c1d8d": {
        "balance": "0x0"
      },
      "0x2ce6311ddae708829bc0784c967b7d77d19fd779": {
        "balance": "0x0"
      },
      "0x31a9b1835864706af10103b31ea2b79bdb995f5f": {
        "balance": "0x0"
      },
      "0x3334cf67bfdcc925477950684474bb4603632789": {
        "balance": "0x0"
      },
      "0x3b0aa7d38bf3c103bf02d1de2e37568cbed3d6e8": {
        "balance": "0x1"
      },
      "0x3b2b96ba7f07d592deb7831e2e5d0273cde6a1a0": {
        "balance": "0x0",
        "storage": {
          "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00010000140014000b04a68900000000003f4acc18a777c19109bcd0e1aa4452",
          "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000000000000018eee3f715a1b327bb33586bf79",
          "0x0000000000000000000000000000000000000000000000000000000000000014": "0x010000055c00000000021505524ec13495c67b2d1900000be054be7e68c15335"
        }
      },
      "0x3c2dfe6d969ad9de9d566727607eb2e9139d3596": {
        "balance": "0x0",
        "storage": {
          "0x0000000000000000000000000000000000000000000000000000000000000006": "0x00000100640064004204a61800000000003eef156dddb0f5fcbd5b0ee30fa664",
          "0x0000000000000000000000000000000000000000000000000000000000000007": "0x000000000000000000000000000000000000001489269bfed63f1e06f393b6a4",
          "0x000000000000000000000000000000000000000000000000000000000000000a": "0x00000000000008790012793ed1e3ad5900000000000000000000000097286a4b",
          "0x0000000000000000000000000000000000000000000000000000000000000057": "0x01000271000000000000292f280c9d60563dbe6a830000173da3a83868c15221"
        }
      },
      "0x4200000000000000000000000000000000000006": {
        "balance": "0x2786b1582384b63cfe51",
        "storage": {
          "0x51f59d35c70300bc2d4fa7806c495b313e476b2d51285f7dc22af52ad4365c89": "0x000000000000000000000000000000000000000000000004acd08d4d3302a702",
          "0x64a768cc030388cd72d492ab760ba7360573b25695129208ed87b018bff88676": "0x0000000000000000000000000000000000000000000000000ff86060cf2b1440"
        }
      },
      "0x4200000000000000000000000000000000000011": {
        "balance": "0x5883d0756ff82ec51"
      },
      "0x4200000000000000000000000000000000000019": {
        "balance": "0x13bff4fa2bb27adc1"
      },
      "0x420000000000000000000000000000000000001a": {
        "balance": "0x1d1e14d61112b89"
      },
      "0x5e7bb104d84c7cb9b682aac2f3d509f5f406809a": {
        "balance": "0x0"
      },
      "0x8267fcd8e1cace20d483e368727a9d4a35a02b5a": {
        "balance": "0x83f5c7474b509"
      },
      "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
        "balance": "0x22d1a2c0d26ed3",
        "storage": {
          "0x3dc6befb529c477ccaae72889abc203186f2cb4c25baf9e741fe5e45e91e83ec": "0x00000000000000000000000000000000000000000000000000000050129e7a23",
          "0x3fd0d340b6ee390f4063ccc31c1c0d6f307898faabb23775e951de3510352a1e": "0x000000000000000000000000000000000000000000000000000000d0277fe9b0",
          "0xc43e5a5855b77448e9fd87622eb6afad130ff5da04e4033079e6a4b94ec3cc25": "0x000000000000000000000000000000000000000000000000000000009591721c",
          "0xdceb6bee0c87d6fbc41bf2b42ce11b85d7adb63ce9af58bb75c0b238b1d797dc": "0x0000000000000000000000000000000000000000000000000000000011de5dda",
          "0xf2b244caf6b1ee1eb87c63bd2f37a244d00181d4fc3a95afee2b95e8778c69e3": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffa6a3d83a",
          "0xfbe1e92e20c0e088f2d489a74596737a56b2fc3503e10af0bb4240b5e899a66b": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffff0fa22a8a3a1"
        }
      },
      "0xac4c6e212a361c968f1725b4d055b47e63f80b75": {
        "balance": "0x0"
      },
      "0xad27827c312cd5e71311d68e180a9872d42de23d": {
        "balance": "0x49590"
      },
      "0xb300000b72deaeb607a12d5f54773d1c19c7028d": {
        "balance": "0x48b0c8a9c5f86"
      },
      "0xdb45818a6db280ecfeb33cbebd445423d0216b5d": {
        "balance": "0x0"
      },
      "0xdbc6998296caa1652a810dc8d3baf4a8294330f1": {
        "balance": "0x0",
        "storage": {
          "0x0000000000000000000000000000000000000000000000000000000000000006": "0x00000107d007d00572fd0fb1000000000000000000044fcc9df21d39d12a9e63",
          "0x0000000000000000000000000000000000000000000000000000000000000008": "0x000000000000000000000000000000000000009640cbd2a9aed64989fe1f0444",
          "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000016f0019ac000000000000000013bada12e184b0e3",
          "0x0000000000000000000000000000000000000000000000000000000000000587": "0x010000000000000000878439625f2d43f3a5880e56ffffcbcdd33c7468c1055b"
        }
      },
      "0xe1bfa25468af64e366ddafc9d91bcc6c97439a14": {
        "balance": "0x0",
        "storage": {
          "0x37e6dc13c068bb909eed8b3e00abcf65959950251ccf7813d3f0998dc1405c5b": "0x00000000000000000000000000000000000000000000111aca4aabaca76272ba",
          "0x8531e790573ae81c113d98b2985a12deb7058dcb20f43551606a5fd79c607115": "0x000000000000000000000000000000000000000000002c70590829477bf40e37",
          "0xa6dfa914d28676ae63d9d618165d503f282511e562cfddbdf80b8a97bea706d5": "0x00000000000000000000000000000000000000000000054460c4d9bccb23dbe9",
          "0xbae135dfedebdd66a0c59d492f1e69025652b231758f5ebf706377ac3f362649": "0x000000000000000000000000000000000000000000095e802c12596bc677fc9f"
        }
      },
      "0xec8e5342b19977b4ef8892e02d8daecfa1315831": {
        "balance": "0x0"
      }
    },
    "post": {
      "0x20183dc92e044e6a14c4afa5ce202519a0af4067": {
        "storage": {
          "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000100000a000a000301b5e8000000000000010fc2fd047e907bdba9af1bee92",
          "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000102a18352a3a3ddeb2bc38271fcb1b",
          "0x000000000000000000000000000000000000000000000000000000000000000b": "0x0100000000000000000001a84e43b898498c75cdb6000003a0485d0068c15441"
        }
      },
      "0x3b2b96ba7f07d592deb7831e2e5d0273cde6a1a0": {
        "storage": {
          "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00010000140014000c04a65300000000003f1f5e359161f8e02f924222f1fd38",
          "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000000000000018ef571a026e3af72f0a752739d",
          "0x0000000000000000000000000000000000000000000000000000000000000014": "0x010000055c0000000002157269fe11b54e4aeda57e00000be533ebdc68c15441"
        }
      },
      "0x3c2dfe6d969ad9de9d566727607eb2e9139d3596": {
        "storage": {
          "0x0000000000000000000000000000000000000000000000000000000000000006": "0x00000100640064004304a61000000000003ee9390d13bf8a989e320f2613527f",
          "0x0000000000000000000000000000000000000000000000000000000000000007": "0x000000000000000000000000000000000000001489631f56177a5f0aaf7952d9",
          "0x000000000000000000000000000000000000000000000000000000000000000a": "0x00000000000008790012793ed1e3ad59000000000000000000000000972b15c3",
          "0x0000000000000000000000000000000000000000000000000000000000000057": "0x010002710000000000002954828457acd7135101790000174786b59868c15441"
        }
      },
      "0x4200000000000000000000000000000000000006": {
        "storage": {
          "0x51f59d35c70300bc2d4fa7806c495b313e476b2d51285f7dc22af52ad4365c89": "0x000000000000000000000000000000000000000000000004acbc0ccf430828c4",
          "0x64a768cc030388cd72d492ab760ba7360573b25695129208ed87b018bff88676": "0x000000000000000000000000000000000000000000000000100ce0debf25927e"
        }
      },
      "0x4200000000000000000000000000000000000011": {
        "balance": "0x5883d07d0fef0a7b9"
      },
      "0x4200000000000000000000000000000000000019": {
        "balance": "0x13bff5175044201c9"
      },
      "0x420000000000000000000000000000000000001a": {
        "balance": "0x1d1e14e1f1629b9"
      },
      "0x8267fcd8e1cace20d483e368727a9d4a35a02b5a": {
        "balance": "0x83d0f6de7a769"
      },
      "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
        "storage": {
          "0x3dc6befb529c477ccaae72889abc203186f2cb4c25baf9e741fe5e45e91e83ec": "0x00000000000000000000000000000000000000000000000000000050141ba828",
          "0x3fd0d340b6ee390f4063ccc31c1c0d6f307898faabb23775e951de3510352a1e": "0x000000000000000000000000000000000000000000000000000000d02d74b6c1",
          "0xc43e5a5855b77448e9fd87622eb6afad130ff5da04e4033079e6a4b94ec3cc25": "0x000000000000000000000000000000000000000000000000000000009ffdd4e0",
          "0xf2b244caf6b1ee1eb87c63bd2f37a244d00181d4fc3a95afee2b95e8778c69e3": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff94c57a60",
          "0xfbe1e92e20c0e088f2d489a74596737a56b2fc3503e10af0bb4240b5e899a66b": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffff0fa10ca45c7"
        }
      },
      "0xdbc6998296caa1652a810dc8d3baf4a8294330f1": {
        "storage": {
          "0x0000000000000000000000000000000000000000000000000000000000000006": "0x00000107d007d00573fd0fb2000000000000000000044fccc3b9f77152eda412",
          "0x0000000000000000000000000000000000000000000000000000000000000008": "0x000000000000000000000000000000000000009640cc834066f15b5e76d1a7b9",
          "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000016f002134000000000000000013bada12e184b0e3",
          "0x0000000000000000000000000000000000000000000000000000000000000587": "0x010000000000000000878cbb37a5ae41ba10d320ffffffcae5f103b668c15441"
        }
      },
      "0xe1bfa25468af64e366ddafc9d91bcc6c97439a14": {
        "storage": {
          "0x37e6dc13c068bb909eed8b3e00abcf65959950251ccf7813d3f0998dc1405c5b": "0x000000000000000000000000000000000000000000001103e02fbf18455665bc",
          "0x8531e790573ae81c113d98b2985a12deb7058dcb20f43551606a5fd79c607115": "0x000000000000000000000000000000000000000000002bcf4e5be6c007109111",
          "0xa6dfa914d28676ae63d9d618165d503f282511e562cfddbdf80b8a97bea706d5": "0x0000000000000000000000000000000000000000000006583419872001598f78",
          "0xbae135dfedebdd66a0c59d492f1e69025652b231758f5ebf706377ac3f362649": "0x000000000000000000000000000000000000000000095e244d84db246731d334"
        }
      }
    }
  }
}

Last updated