Skip to main content

gRPC (Yellowstone)

Standard Yellowstone Dragon’s Mouth gRPC interface. Streams post-replay transaction data with full metadata — balances, logs, inner instructions, execution status. This is the same protocol used by Helius, Triton, and other RPC providers.

How It Works

Validator replays slot

   Geyser plugin captures transaction + metadata

   Streamed to gRPC clients via Yellowstone protocol
You get everything: pre/post balances, token balances, logs, inner instructions (CPI trace), compute units consumed, success/failure status.

Connecting

Endpoint: your-node:4224
Protocol: gRPC bidirectional streaming (Yellowstone Dragon's Mouth)
Method:   geyser.Geyser/Subscribe
Use any standard Yellowstone gRPC client library:
  • Rust: yellowstone-grpc-client
  • TypeScript: @triton-one/yellowstone-grpc
  • Python: yellowstone-grpc-client-python

Compression

Both gzip and zstd are supported for send and receive. Enable compression on your client for lower bandwidth usage:
// TypeScript example
const client = new Client("your-node:4224", undefined, {
  "grpc.default_compression_algorithm": 2, // zstd
});

Connection Limits

Connect as many clients as you need — there’s no hard connection cap. Per-connection filter limits prevent firehose abuse:
{
  "filter_limits": {
    "accounts": {
      "max": 400,
      "any": false,
      "account_max": 400,
      "account_reject": ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],
      "owner_max": 400,
      "data_slice_max": 20
    },
    "transactions": {
      "max": 25,
      "any": false,
      "account_include_max": 100,
      "account_include_reject": ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],
      "account_exclude_max": 10,
      "account_required_max": 10
    },
    "slots": { "max": 1 },
    "blocks": { "max": 1 },
    "blocks_meta": { "max": 1 },
    "entries": { "max": 1 }
  }
}
Key limits per connection:
  • Transaction filters: up to 25 filters, each with up to 100 account_include entries
  • Account filters: up to 400 filters, up to 400 accounts each
  • any: false means you must specify at least one filter — no unfiltered firehose
  • TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA (SPL Token program) is blocked as a filter key because it matches nearly every transaction