For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

Aperture is designed for applications where reaction time matters more than full post-execution metadata.

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:

  • vote

  • signature

  • account_include

  • account_exclude

  • account_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

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

Aperture gRPC
Shredstream gRPC
Yellowstone gRPC

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