Available Endpoints
Jetstream is available in all OrbitFlare regions. Connect to the region closest to your infrastructure for the lowest latency.- US
- Europe
- Asia Pacific
Jetstream uses plain
http:// (not https://) for gRPC connections. gRPC negotiates its own
transport security over HTTP/2. Use https:// only if your dedicated node explicitly requires it.Authentication
Supply your API key in thex-token gRPC metadata header, or use IP-whitelist authentication. See
Authentication for details.
Protocol Buffer Specification
This document outlines the Protocol Buffer (protobuf) specification used by OrbitFlare Jetstream. The complete specification can be found in our GitHub repository — downloadjetstream_v2.proto there to generate your client, or use the definition reproduced below.
The protobuf package is named jetstream.v2.
Service Definition
Request Messages
SubscribeTransactions is a bidirectional stream. The client sends a sequence of request messages —
each carrying exactly one payload — to manage its subscription while the stream is open.
SubscribeTransactionsRequest
Adding Filters
Filters are added dynamically while the stream is open. Each filter carries a client-chosenfilter_id that is echoed back on every matching transaction and in the validation acknowledgement.
A filter must specify at least one of
account_include / account_exclude / account_required.
Empty (match-everything) filters are rejected — see FilterResult.Removing Filters
Response Messages
SubscribeTransactionsResponse
Every message on the stream carries a server timestamp and a monotonically increasingsequence
number (per stream) so clients can detect gaps. Exactly one payload is set.
Filter Validation
After eachAddFilters / RemoveFilters, the server returns one FilterResult per filter,
acknowledging acceptance or explaining the rejection.
Heartbeat
Filtered Transaction
Each matched transaction lists thefilter_id values it matched, followed by the transaction itself.
Shared Types
Transaction versions (SIMD-0385)
Solana has three transaction formats:legacy, v0, and v1 (SIMD-0385). The
config field (23) and priority_fee_lamports field (24) were added for
transaction v1 and are additive — a client generated from an older copy of this
definition skips them as unknown fields and decodes every other field normally.
“Transaction v1” is not “Jetstream v1”. Transaction v1 is a Solana
transaction format (SIMD-0385) that this current Jetstream protocol fully
supports. “Jetstream v1” refers to the separate, now-deprecated Jetstream
protocol. The current Jetstream is the one that
carries transaction v1.
config first, because versioned
is true for both v0 and v1:
Slot Streaming
SubscribeSlots is a server stream of slot lifecycle events. It takes no parameters — open the stream
and receive events as slots progress.
Non-streaming Methods
Using the Protocol
A typical client:- Generate client code from the
jetstream.v2definition above. - Open the
SubscribeTransactionsbidirectional stream and authenticate (x-tokenheader or IP whitelist). - Send an
AddFiltersrequest with one or moreTxFilterentries, each with a uniquefilter_id. - Read the
FilterResultacknowledgements, then the stream ofFilteredTransactionmessages. - Add or remove filters at any time without reopening the stream.
- Track
sequenceto detect gaps, and treat a connection close as a signal to reconnect. - Optionally open
SubscribeSlots(a separate stream) for slot lifecycle events.
Code Generation
For TypeScript/JavaScript:Best Practices
-
Filtering
- Always set at least one account constraint; empty filters are rejected.
- Use a stable, unique
filter_idper filter so you can correlate matches and remove filters later.
-
Enrichment
- Leave
include_enrichmentoff unless you need the extra fields — lean output is smaller. Enabling it adds no latency; the only cost is a modestly larger message. - Enrichment is subscription-wide: enabling it on any one filter enriches every transaction the session receives.
- Leave
-
Sequence & Reconnection
- Track the
sequencenumber to detect dropped messages. - Implement automatic reconnection; on reconnect, re-send your
AddFilters.
- Track the
-
Liveness
- Use
HeartbeatandPing/Pongto confirm the stream is healthy and measure latency.
- Use
See Also
Jetstream Overview
The streaming model, enrichment, slot events, and getting started.
Jetstream v1 Reference (deprecated)
The deprecated v1 Protocol Buffer specification.