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; the source IP varies (typically 8 nodes per region)
- Authentication — IP allow-listing on the platform side. The destination IP you registered is the only address shreds get sent to.
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.
If you subscribe to multiple regions, each region streams its own copy of the same Solana shreds independently. If you funnel them all into one processor, you'll see duplicates — de-dupe by (slot, shred_index).
If you want redundancy on a single region (hot/standby), subscribe twice with two different destination IPs — both receive the same stream, your application picks whichever 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.