> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vali.wtf/llms.txt
> Use this file to discover all available pages before exploring further.

# gRPC (Yellowstone)

# 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:

```javascript theme={null}
// 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:

```json theme={null}
{
  "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
