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, then allow the ICMP latency probes used for region selection. To compare ShredStream and UDP Forwarding, see Solana Shreds.

Get your ERPC connection details

  1. Open the ERPC Dashboard, 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 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.
RegionICMP source IPs
🇳🇱 Amsterdam82.21.43.35
🇺🇸 New York151.243.244.162
🇩🇪 Frankfurt151.241.178.73
🇯🇵 Tokyo143.20.238.88
🇸🇬 Singapore151.245.186.3
🇬🇧 London151.241.65.10

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.

Run a Solana Stream SDK sample

The Solana Stream SDK 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, 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

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
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 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
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
The open-source Solana Stream SDK provides the ShredStream client implementations used in these examples. Follow the sample repository's current README and its SDK 4.0 migration guidance when integrating the SDK into an existing application.
For access, subscriptions and endpoint settings, return to the ERPC Dashboard.