Aperture gRPC
Low Latency Solana Data, Forged in Performance.
What is Aperture gRPC?
Aperture gRPC reconstructs validator shreds into a structured gRPC stream compatible with the Yellowstone subscription model, while bypassing traditional RPC node processing.
In practice, that means earlier transaction visibility than standard Yellowstone-style streams, with server-side filtering and a client experience that feels familiar if you already use Yellowstone.
Yellowstone-compatible version of the Aperture gRPC will be deprecated in the short future as Aperture TxStream becomes our primary low-latency streaming protocol.
What Data is Available?
Aperture gRPC is designed for low-latency transactions streaming.
Following transaction data is available:
signatures
slot number
recent blockhash
is_vote
static account keys
address lookup tables
instructions
Because the stream is reconstructed directly from shreds before full transaction execution completes, it does not include the extended replay metadata typically available in Yellowstone transaction feeds, such as:
errors
balance changes
inner instructions (CPI)
program logs
compute unit usage
transaction status
Think of Aperture gRPC as receiving the transaction message as soon as it can be decoded from shreds, not after a validator has completed full execution and metadata generation.
Why Use Aperture?
Use Aperture gRPC when your application needs:
the earliest possible visibility into incoming Solana transactions
Yellowstone-style subscription ergonomics
server-side filtering by signature or mentioned accounts
reduced bandwidth usage compared to ShredStream when filters are applied
ALT (Address Lookup Table) resolution for versioned transactions
minimal client-side decoding compared to raw UDP shreds or ShredStream gRPC
Typical use cases include:
trading systems
searchers
real-time analytics
ingestion pipelines
latency-sensitive backend services
Compatibility Model
Aperture gRPC follows the Yellowstone's subscription model. The same general request shape applies: a bidirectional stream where the client sends a SubscribeRequest and receives matching updates continuously.
For transaction subscriptions, the familiar Yellowstone filter semantics apply:
if all transaction filter fields are empty, all transactions are streamed
different fields are combined with logical AND
values inside each array are combined with logical OR
Common transaction filters include:
votesignatureaccount_includeaccount_excludeaccount_required
Important Limitations
Aperture gRPC prioritises speed, so it is not a substitute for every Yellowstone use case.
Consider using Yellowstone gRPC instead, when you need:
full transaction execution metadata
balance updates
program logs
fully resolved address lookup tables
account state changes and block data
Aperture should be treated as an early transaction stream, not as a final source of execution truth.
A decoded transaction may still fail, never confirm, or land on a fork that does not survive.
Subscription Examples
Replace the YOUR-TOKEN-HERE placeholder below with your Aperture gRPC token.
Choosing Commitment Level
Aperture gRPC always streams data at processed commitment level, so specifying any higher commitment level is ignored.
Keep-alive and Reconnection
For long-lived gRPC streams, it is recommended that you use both:
TCP keepalive, so dead TCP connections are detected earlier.
HTTP/2 keepalive, so intermediaries such as load balancers, proxies, or NAT devices are less likely to silently drop idle connections.
This is especially important for applications that keep a subscription open for a long time with uneven traffic patterns.
Aperture vs. Shredstream vs. Yellowstone
Data source
Validator shreds
Validator shreds
RPC Node
Output format
Yellowstone-compatible transactions, slots, and entries stream
Raw Solana entry stream
Full Yellowstone stream
Latency profile
~30–40 ms faster than Yellowstone
Slightly slower than Aperture (~1ms)
Higher than shred-derived streams
Filtering
Server-side
Client-side only
Server-side
Client work
Low
Highest
Low
Best fit
Shred-level latency with easy integration
Maximum low-level control
Rich metadata and broader replay data
Aperture vs. Yellowstone
Aperture gRPC delivers transactions earlier by decoding them directly from validator shreds instead of waiting for the full Geyser pipeline.
This typically reduces latency by 30–40 ms, while trading away extended replay metadata.
Yellowstone gRPC remains the better fit when your system depends on:
transaction status
balance updates
inner instructions
logs
richer post-execution context
Aperture vs. Shredstream
Shredstream gRPC exposes a lower-level Solana entry gRPC stream and leaves decoding and filtering to the client.
Aperture gRPC shines with even better latency characteristics, streams already-decoded transaction data in Yellowstone gRPC format and supports server-side filtering. That reduces implementation complexity for teams that want shred-level speed without building a shred-decoding pipeline themselves, as well as saves bandwidth due to server-side filtering.

Summary
Aperture gRPC is the right tool when you want:
the earliest practical Solana transaction visibility
Yellowstone-style subscriptions and filtering
less infrastructure and parsing work than raw shred or entry feeds
Use Yellowstone gRPC when correctness and metadata depth matter more than raw arrival time.
Use Shredstream gRPC only when you intentionally want the full control over low-level decoding and processing and don't mind higher bandwidth usage.
Last updated