> For the complete documentation index, see [llms.txt](https://docs.bloxroute.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bloxroute.com/solana/optimized-feed-relay/transaction-streamer.md).

# Transaction Streamer

The `StreamTransactions` method is a gRPC-based stream that returns all transactions on the Solana network in real-time. It supports optional filtering by account addresses.

This method is ideal for users who want access to all observed transactions (or transactions involving specific accounts) for monitoring, analytics, or MEV use cases.

{% hint style="info" %}
The Transaction Streamer can be purchased either as an individual service or part of Elite/Ultra bundle.
{% endhint %}

## Available Endpoints

Select the DNS that corresponds to the region closest to you:

* Amsterdam: `amsterdam.solana-txs.blxrbdn.com:50051`
* Frankfurt: `frankfurt.solana-txs.blxrbdn.com:50051`
* New York: `ny.solana-txs.blxrbdn.com:50051`
* Tokyo: `tokyo.solana-txs.blxrbdn.com:50051`

{% hint style="success" %}
To ensure accurate routing, use a public DNS resolver that supports EDNS Client Subnet (ECS), such as Google DNS (8.8.8.8) or OpenDNS (208.67.222.222 / 208.67.220.220). Resolvers without ECS support (e.g., Cloudflare) may obscure the client ASN, leading to suboptimal routing.
{% endhint %}

## Request

The `StreamTransactions` method is invoked over gRPC using the proto definition available in the [solana-tx-streamer-proto GitHub repository](https://github.com/bloXroute-Labs/solana-tx-streamer-proto).

* **Endpoint:** [select DNS based on region](#available-endpoints)
* **Protocol:** gRPC
* **Encryption:** plaintext
* **Authorization:** Required — pass an `authorization` header

### Parameters

| Name     | Type      | Required | Description                                                                                                                                                                |
| -------- | --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| accounts | string\[] | No       | Optional list of Solana account addresses (base58). If provided, the stream returns only transactions involving these accounts. If omitted, all transactions are streamed. |

### Headers

<table><thead><tr><th>Header</th><th width="215.654541015625">Value</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>authorization</td><td><code>&#x3C;AUTH_HEADER></code></td><td>Yes</td><td>Authorization header</td></tr></tbody></table>

### Example Request, with account filtering

{% tabs %}
{% tab title="grpcurl" %}

```bash
grpcurl \
  -H 'authorization: <AUTH_HEADER>' \
  -proto proto/tx_streamer.proto \
  -d '{
    "accounts": [
      "srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX",
      "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8",
      "5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1"
    ]
  }' \
  -plaintext \
  frankfurt.solana-txs.blxrbdn.com:50051 \
  tx_streamer.TxStreamerService/StreamTransactions
```

{% endtab %}
{% endtabs %}

### Example Request, without account filtering (receive all transactions)

```bash
grpcurl \
  -H 'authorization: <AUTH_HEADER>' \
  -proto proto/tx_streamer.proto \
  -plaintext \
  frankfurt.solana-txs.blxrbdn.com:50051 \
  tx_streamer.TxStreamerService/StreamTransactions
```

### Response

| Field Name         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `signature`        | Transaction signature                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `data`             | Raw transaction bytes in base 64 encoding format                                                                                                                                                                                                                                                                                                                                                                                             |
| `slot`             | Slot number                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `unverified_match` | <p>Boolean flag indicating that the streamer <strong>can</strong> <strong>not precisely confirm</strong> this message matches the provided filter (e.g. <code>accounts</code>).<br>If <code>true</code>, the transaction might still meet the filter condition, but the streamer cannot yet verify it due to incomplete data or timing.<br>If <code>false</code>, the streamer has confirmed the transaction meets the filter condition.</p> |
| `number`           | Index position of this transaction within the block.                                                                                                                                                                                                                                                                                                                                                                                         |

The response is a stream of raw Solana transactions serialized according to the `.proto` schema. These can be parsed using the Solana SDK or other compatible decoding tools. More information about the response message format can be found in the [`tx_streamer.proto`](https://github.com/bloXroute-Labs/solana-tx-streamer-proto/blob/develop/proto/tx_streamer.proto) file.
