Skip to main content

Reference

Direct Shreds is a UDP delivery service, not a request/response API. There's nothing to call, only packets to receive. This page documents the wire format and operational behavior.

Transport​

  • Protocol: UDP
  • Port — your choice; default 8001
  • Source: Everstake validator nodes, with the source IP varying (typically 8 nodes per region)
  • Authentication — IP allow-listing on the platform side; the destination IP you registered is the only address that gets shreds.

Wire format​

Each UDP datagram is one Solana shred. The on-the-wire format matches what Solana validators produce — no Blockspace-specific framing, no envelope. Decode with any standard Solana shred parser.

Receiver software​

There's no Blockspace-specific protocol — the recommended starting point is jito-labs/shredstream-proxy, which can serve as a drop-in receiver and forwarder.

Split streams​

You can opt to split retransmitted shreds and leader shreds onto separate ports — useful when you want different processing pipelines for them. Configure in the dashboard at subscribe time.

Throughput​

Tier-specific throughput is surfaced in the dashboard. Provision your NIC and kernel buffers for high UDP rates:

# Bump UDP receive buffer to 8 MB
sudo sysctl -w net.core.rmem_max=8388608
sudo sysctl -w net.core.rmem_default=8388608

Outage detection​

Direct Shreds doesn't deliver heartbeats — silence is ambiguous (is the chain idle, or is the link down?). Monitor packet rate at the application layer:

// Pseudocode
if packets_in_last_5s == 0 {
alert("direct-shreds receive stall");
}

If packets stop arriving, check the status page and re-validate the destination IP in the dashboard.

Multiple destinations / regions​

Each subscription targets one IP per region.

Subscribe to multiple regions and each one streams its own copy of the same Solana shreds independently — funnel them all into one processor and you'll see duplicates, so de-dupe by (slot, shred_index).

Want redundancy on a single region instead? Subscribe twice with two different destination IPs. Both receive the same stream, and your application just takes whichever packet arrives first.

Limits​

  • One destination IP per IP-subscription. To change destinations, update the registered IP in the dashboard; cutover happens within ~5 minutes.
  • No per-packet authentication — packets coming from anywhere else on UDP/8001 should be dropped by your firewall.