EVTstream lifecycle
Same connection, distinguished by "type": "stream". Carries package provenance so clients can route on their own.
[ { "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": "gap", "network": "solana", "requested_block": 100, "oldest_buffered_block": 500, "reason": "requested block outside replay window" } ]
Fields
| typestring | Always |
| 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 |
| last_valid_blocknumber | Present on |
| requested_block, oldest_buffered_block, reasonmixed | Present on |
Status values
started | The server began reading this source. |
completed | The source reached its configured stop block. |
error | Recoverable upstream error — see |
fatal | Unrecoverable — the source stopped. Surface |
undo | Chain reorganization — roll back state past |
gap | Requested replay point is older than the retained window; the stream continues live — backfill the hole via Substreams gRPC. |