gRPC requests, log filters and block payloads
    Resources & endpoints
    Read-only preview
    You're browsing the public Firehose reference. Sign in to open a live stream with your team's API key.

    Protobuf request

    Omit transforms for full blocks. For EVM filtering, encode a sf.ethereum.transform.v1.CombinedFilter in a google.protobuf.Any and include it in transforms.

    firehose.proto · request excerpt
    1syntax = "proto3";
    2package sf.firehose.v2;
    3import "google/protobuf/any.proto";
    4
    5service Stream {
    6 rpc Blocks(Request) returns (stream Response);
    7}
    8
    9message Request {
    10 int64 start_block_num = 1;
    11 string cursor = 2;
    12 uint64 stop_block_num = 3;
    13 bool final_blocks_only = 4;
    14 repeated google.protobuf.Any transforms = 10;
    15}
    start_block_num
    Inclusive start. Negative values are relative to the head; -1 starts one block behind the current head. Omitted or 0 starts at the first streamable block.
    cursor
    Resume after a previously received response. Takes precedence over start_block_num; keep the same network and filter configuration.
    stop_block_num
    Inclusive stop block. Omit or use 0 for an open-ended stream.
    final_blocks_only
    false receives new blocks with possible undo steps. true waits for final blocks.
    transforms
    Optional list of protobuf Any messages containing server-side transforms.

    Complete request & response schema