Yellowstone gRPC
Use Yellowstone gRPC for continuous structured Solana data. Server-side filters let indexers and event processors select activity before it reaches the application.
Connection settings
| Setting | Value |
|---|---|
| New York | https://grpc.ny.shreds.xyz |
| Transport | HTTP/2 with TLS on port 443 |
| Service | geyser.Geyser |
| Streaming method | Subscribe |
| Token metadata | x-token: YOUR_SERVICE_ACCESS_KEY |
Other regions are in endpoints. Use a Yellowstone-compatible client and protocol definitions matching your deployment.
Check connectivity
Install grpcurl. Place Yellowstone's geyser.proto and solana-storage.proto, from the same compatible release, in a local proto directory. Server reflection is unavailable, so supply these files explicitly.
grpcurl -import-path ./proto -proto geyser.proto \
-H "x-token: $SHREDS_API_KEY" -d '{}' \
grpc.ny.shreds.xyz:443 geyser.Geyser/GetVersion
This checks routing and credentials without opening a stream. Keep TLS enabled; do not add -plaintext.
Open a first stream
Subscribe to slot updates:
grpcurl -import-path ./proto -proto geyser.proto \
-H "x-token: $SHREDS_API_KEY" \
-d '{"slots":{"progress":{"filterByCommitment":true}},"commitment":"PROCESSED"}' \
grpc.ny.shreds.xyz:443 geyser.Geyser/Subscribe
The call prints updates until stopped. Use a client with a writable request stream in production to update filters and handle application-level pings.
Define filters
SubscribeRequest supports maps for accounts, transactions, transaction status, slots, blocks, block metadata, and entries. Name each filter to identify matching updates.
- Account filters select addresses, owners, or account-data conditions.
- Transaction filters select involved accounts and can exclude votes or failed transactions.
- Slot and block metadata streams track progress with smaller payloads than full blocks.
Choose PROCESSED, CONFIRMED, or FINALIZED commitment. Start narrow; broad subscriptions increase traffic and processing. Supported filters and limits depend on your service.
Pre-execution transactions
Flash gRPC uses a separate endpoint to deliver decoded transactions before execution. Use standard gRPC when you need execution results such as logs, fees, and balance changes.
Operate the stream
Move expensive work off the receive loop. Monitor queue depth, consumer lag, errors, and reconnects. Persist checkpoints and make downstream processing safe to repeat.
Confirm replay availability and retention before depending on recovery from an earlier slot. Reconnecting alone does not recover missed data. Use RPC for chain queries and reconciliation. For isolated capacity, see dedicated infrastructure.