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.