GHOST GEYSERFree Trial

Solana Yellowstone gRPC: A Practical Guide

Yellowstone gRPC is the standard way to stream Solana state in real time. Instead of polling JSON-RPC, you open one gRPC stream and the validator pushes account, transaction and slot updates to you the moment they happen.

Why gRPC instead of WebSocket or polling

Standard JSON-RPC forces you to poll, and WebSocket subscriptions drop messages under load. A Yellowstone gRPC stream is a single long-lived HTTP/2 connection: you send one SubscribeRequest describing the filters you care about, and updates flow back as a server stream. For bots, indexers and dashboards that need every update, this is the difference between seeing an event and missing it.

Authenticating with an x-token header

Most providers gate access with a single x-token metadata header. You add it to the gRPC request interceptor — one line — and you are streaming. No SDK lock-in, no credit accounting on each call.

A minimal Python subscriber

This subscribes to slot updates at processed commitment and prints each one:

import grpc
from yellowstone_grpc_proto import geyser_pb2, geyser_pb2_grpc

channel = grpc.insecure_channel("YOUR_ENDPOINT:10000")
stub = geyser_pb2_grpc.GeyserStub(channel)

def requests():
    req = geyser_pb2.SubscribeRequest()
    req.slots[""].CopyFrom(geyser_pb2.SubscribeRequestFilterSlots())
    yield req

md = [("x-token", "YOUR_TOKEN")]
for update in stub.Subscribe(requests(), metadata=md):
    print(update)

FAQ

What can I subscribe to?

Accounts (by owner or pubkey), transactions (by account, signature or vote/failed flags), slots, blocks and block metadata. You can combine filters in one request.

Is Yellowstone gRPC the same across providers?

Yes. It is a standard protocol originally built by Triton, so a client written for one endpoint works against any provider by changing the endpoint URL and token.

Try it on a free 30-min trial

Unmetered Yellowstone gRPC. No rate limits, no credit system. US East.

Get a token at ghostgeyser.pro →