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.

    Filter by log emitter & event signature

    A log filter keeps the whole transaction containing a matching log. Its other logs and execution context remain in the block. Read transaction_traces[].receipt.logs[] and select the desired logs locally.

    log_filters[].addresses
    20-byte addresses of contracts that emit logs, including events emitted during internal calls. This is not the transaction recipient or a token holder address.
    log_filters[].event_signatures
    32-byte topic[0] hashes. Any signature in the list can match. Omit for all event types from the specified emitters.
    send_all_block_headers
    true keeps every block header, including blocks with no matching transactions. false allows indexed historical blocks without matches to be skipped; live blocks can still arrive empty.

    Each list uses OR. Within one filter, the address and signature conditions both apply to the same log (AND). Multiple log filters use OR. At least one list in each filter must be nonempty.

    Only Transfer events emitted by Ethereum USDC or USDT: the address and signature must match the same log.

    Ethereum · complete ProtoJSON request
    1{
    2 "final_blocks_only": false,
    3 "start_block_num": "-1",
    4 "transforms": [
    5 {
    6 "@type": "type.googleapis.com/sf.ethereum.transform.v1.CombinedFilter",
    7 "log_filters": [
    8 {
    9 "addresses": [
    10 "oLhpkcYhizbB0Z1KLp6wzjYG60g=",
    11 "2sF/lY0u5SOiIGIGmUWXwT2DHsc="
    12 ],
    13 "event_signatures": [
    14 "3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8="
    15 ]
    16 }
    17 ],
    18 "send_all_block_headers": true
    19 }
    20 ]
    21}
    CombinedFilter protobuf definition
    transforms.proto · log-filter excerpt (CallToFilter omitted)
    1syntax = "proto3";
    2package sf.ethereum.transform.v1;
    3
    4message CombinedFilter {
    5 repeated LogFilter log_filters = 1;
    6 repeated CallToFilter call_filters = 2;
    7 bool send_all_block_headers = 3;
    8}
    9
    10message LogFilter {
    11 repeated bytes addresses = 1;
    12 repeated bytes event_signatures = 2;
    13}

    Complete filter schema