---
title: "Solana ShredStream Quickstart"
description: "Connect a TypeScript or Rust client to ERPC Solana ShredStream, configure your assigned endpoint, and allow latency probes for region selection."
canonical: "https://erpc.global/en/doc/shredstream/quickstart/"
locale: "en"
---

# Solana ShredStream Quickstart

Use this guide to connect a TypeScript or Rust client to an ERPC Solana ShredStream endpoint using the open-source Solana Stream SDK. Configure the endpoint assigned in your [ERPC Dashboard](https://dashboard.erpc.global/en), then allow the ICMP latency probes used for region selection. To compare ShredStream and UDP Forwarding, see [Solana Shreds](https://erpc.global/en/shreds/).

## Get your ERPC connection details

1. Open the [ERPC Dashboard](https://dashboard.erpc.global/en), select your ShredStream service, and copy **your assigned streaming endpoint URL**, including its scheme. The hostname in the sample repository is illustrative and is not a working customer endpoint.
2. If you use the SDK samples below, provide an ERPC RPC API key for their `SOLANA_RPC_ENDPOINT` setting. That RPC URL supports the samples' auxiliary RPC/latency lookups; it does **not** replace the streaming endpoint.
3. Allow the ICMP sources in the next section so ERPC can measure latency to your registered IP for region selection.

You can use the [Solana Stream SDK](https://github.com/ValidatorsDAO/solana-stream) in an existing application or run its TypeScript/Rust sample clients directly. Installing SLV is optional.

## Allow ICMP latency-probe sources

For Shreds region selection, ERPC sends ICMP latency probes to your registered IP from the proxy hosts listed below. Allow inbound ICMP echo requests from every listed source IP. If they are blocked by a firewall (ufw, cloud firewall, security group, etc.), the measurement can become `9999ms` and a non-optimal region may be selected. Multiple IPs in one region are separate probe hosts; all of them are required.

[ERPC_PING_SOURCES:shreds]: #
| Region | ICMP source IPs |
| --- | --- |
| 🇳🇱 Amsterdam | `82.21.43.35` |
| 🇺🇸 New York | `151.243.244.162` |
| 🇩🇪 Frankfurt | `151.241.178.73` |
| 🇯🇵 Tokyo | `143.20.238.88` |
| 🇸🇬 Singapore | `151.245.186.3` |
| 🇬🇧 London | `151.241.65.10` |

[ERPC_FAR_POINT_GUIDANCE_START:shreds]: #
### Far Point selected

Shared Shreds Far Point is a limited-capacity fallback. Each endpoint supports up to 32 concurrent proxied streams across all customers—not 32 slots per customer. Streaming is most effective when the subscriber runs near the selected Shreds endpoint; long-distance streams retain shared connections, flow-control windows, and egress capacity for longer. To help keep the shared environment responsive, allow every listed regional ICMP probe source and run region selection again. For ongoing use, consider an ERPC VPS near the selected endpoint. UDP Forwarding comes as Standard and Premium, and with either you choose its region in the ERPC Web Dashboard and receive raw Shreds over UDP at the public IPv4 address and port you configure.

[Use an ERPC VPS near this endpoint](https://erpc.global/en/vps/) · [Compare UDP Forwarding options](https://erpc.global/en/shreds/)

[ERPC_FAR_POINT_GUIDANCE_END:shreds]: #

## Run a Solana Stream SDK sample

The [Solana Stream SDK](https://github.com/ValidatorsDAO/solana-stream) provides standalone TypeScript starters under `temp-release/` that install the published SDK 4.0.0, plus Rust sample clients under `client/`. Clone once and choose **one** of the language-specific paths below. Each set of commands starts from the repository root immediately after cloning:

```bash
git clone https://github.com/ValidatorsDAO/solana-stream.git
cd solana-stream
```

### TypeScript: ShredStream

Use the [standalone ShredStream TypeScript starter](https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-ts), Node.js 22 or later and pnpm. It installs the **published** SDK instead of depending on locally unbuilt native workspace packages. From the repository root, enter the starter and copy its `.env.example`:

```bash
cd temp-release/shreds-ts
cp .env.example .env
```

```env
SHREDS_ENDPOINT=YOUR_ASSIGNED_SHREDSTREAM_ENDPOINT_URL
SOLANA_RPC_ENDPOINT="https://edge.erpc.global?api-key=YOUR_API_KEY"
```

Run from inside the standalone starter directory:

```bash
pnpm install
pnpm dev
```

![ShredStream TypeScript sample in VSCode](https://erpc.global/doc/bot/ShredsTsStarter.jpg)

### Rust: ShredStream

Copy the Rust sample's `.env.example` file and configure the same two variables:

```bash
cp client/shreds-rs/.env.example client/shreds-rs/.env
```

```env
SHREDS_ENDPOINT=YOUR_ASSIGNED_SHREDSTREAM_ENDPOINT_URL
SOLANA_RPC_ENDPOINT="https://edge.erpc.global?api-key=YOUR_API_KEY"
```

Run the example:

```bash
cd client/shreds-rs
RUST_LOG=info cargo run
```

![ShredStream Rust sample in VSCode](https://erpc.global/doc/bot/ShredsRsStarter.jpg)

The shared ShredStream service in this guide streams over gRPC. **UDP Shreds Forwarding is a separate product and requires a UDP receiver.** See [Solana Shreds](https://erpc.global/en/shreds/) for the available options. SDK filtering in the Shreds sample is experimental; verify completeness for your use case.

## Optional: Generate a standalone starter with SLV

If you prefer an interactive template generator instead of cloning the SDK repository, use SLV. It is **not required** to connect to ERPC.

```bash
curl -fsSL https://storage.slv.dev/slv/install | sh
slv b init
```

![SLV client template selection](https://erpc.global/doc/bot/ShredsTsInit.jpg)

Choose `shreds-ts` for TypeScript or `shreds-rust` for Rust.
Configure the generated project's environment variables with the **assigned ERPC endpoint** and your own RPC key before running it. The CLI is a convenience for obtaining a starter, not an ERPC account setup step.

## Solana Stream SDK

![Solana Stream SDK](https://storage.validators.solutions/SolanaStreamSDK.jpg)

The [open-source Solana Stream SDK](https://github.com/ValidatorsDAO/solana-stream) provides the ShredStream client implementations used in these examples. Follow the sample repository's current README and its [SDK 4.0 migration guidance](https://github.com/ValidatorsDAO/solana-stream/blob/main/docs/migration-v4.md) when integrating the SDK into an existing application.

For access, subscriptions and endpoint settings, return to the [ERPC Dashboard](https://dashboard.erpc.global/en).
