Pinax
    Substreams WebSockets service — stream decoded blocks, swaps & transfers in real time.
    Resources & endpoints

    EVTstream lifecycle

    Same connection, distinguished by "type": "stream". Carries package provenance so clients can route on their own.

    Examples
    [
      {
        "type": "stream",
        "status": "started",
        "network": "solana",
        "package_name": "svm_dex",
        "package_version": "v0.5.1",
        "module_hash": "bd388f2e…"
      },
      {
        "type": "stream",
        "status": "completed",
        "network": "solana",
        "module_hash": "bd388f2e…"
      },
      {
        "type": "stream",
        "status": "error",
        "network": "solana",
        "message": "upstream deadline exceeded"
      },
      {
        "type": "stream",
        "status": "fatal",
        "network": "solana",
        "message": "module panic"
      },
      {
        "type": "stream",
        "status": "undo",
        "network": "solana",
        "last_valid_block": 350000000
      },
      {
        "type": "stream",
        "status": "dropped",
        "count": 42,
        "last_block": 350000000,
        "last_timestamp": 1715619300,
        "reason": "client buffer overflow; frames were dropped"
      }
    ]

    Fields

    typestring

    Always "stream".

    statusstring

    One of the lifecycle states below.

    networkstring

    Chain the event refers to.

    package_name, package_version, module_hashstring

    spkg provenance — delivered to every client so you can route on your own.

    messagestring

    Upstream error text. Present on error / fatal.

    last_valid_blocknumber

    Present on undo — roll back any state materialized past this block.

    count, last_block, last_timestamp, reasonmixed

    Present on dropped — count frames were dropped while your buffer was full; last_block / last_timestamp mark where delivery resumed.

    Status values

    started

    The server began reading this source.

    completed

    The source reached its configured stop block.

    error

    Recoverable upstream error — see message; the server retries.

    fatal

    Unrecoverable — the source stopped. Surface message and reconnect to resume the live stream.

    undo

    Chain reorganization — roll back state past last_valid_block.

    dropped

    Your buffer overflowed and count frames were dropped. Emitted once on the first frame after the gap (connection-wide). Reconcile from last_block / last_timestamp — backfill via Substreams gRPC or drain faster.