Direct Shreds - UDP Forwarding (Raw Shreds)

UDP Forwarding delivers raw Shreds over UDP to a single public IPv4 address and port that you configure. UDP Forwarding Standard and UDP Forwarding Premium differ in how the Shreds reach you from the region you choose: on Standard, ERPC forwards them from a node in that region, and on Premium, the mesh network delivers them.

UDP Forwarding Standard

UDP Forwarding Standard forwards raw Shreds over UDP to the public IPv4 address and port configured for your subscription. Select an available region during initial configuration, then save a non-empty valid public IPv4 address and port as the destination. You can update the destination later. ERPC applies the forwarding configuration on its 30-second refresh cycle, and no heartbeat activation is required. You can also change the region later in the dashboard, as often as you need. Changing the region changes the source IP, so your receiver's firewall needs to allow the new source IP. Delivery is briefly interrupted while the subscription moves to the new region. If the new region has no capacity at the moment, the change is not made, and neither the region nor the destination changes.
  • ERPC forwards raw Shreds over UDP to the configured destination from a node in the region you choose, so they reach you from a single source IP.

UDP Forwarding Premium

UDP Forwarding Premium delivers raw Shreds over UDP from the mesh network to the public IPv4 address and port configured for your subscription. The mesh network forwards the copy of each Shred that reaches it first; every source IP shown in the dashboard can be the sender. Premium Shreds often arrive 1–3 ms sooner than Standard. On 2026-10-30, an ERPC receiver in Frankfurt received Standard and Premium side by side in a single 120-second run and compared when each Shred that reached both first arrived on Standard and on Premium.
Enter the public IPv4 address and port of your own receiving host, and select a region from the 7 available. After you save a destination, the status shows Applying, and delivery begins once the settings are applied.
Allow every source IP shown in the dashboard in your receiver's firewall, one /32 rule per IP.
Changing the region changes the set of source IPs your firewall must allow. Delivery is interrupted until the new region is applied, and the new source IPs appear in the dashboard once it is. If the selected region cannot accept the change at the moment, the change is not saved, and your saved region and destination stay as they were. While an earlier change is still being applied, or right after one was accepted, further changes are not accepted.
The source IPs can also change without a region change. When a change needs new firewall rules, you are notified by email or through Support.

What to know about UDP

  • UDP does not provide connection setup, retransmission, or ordering; your receiver should handle the packets accordingly.
Note: the shared Shreds gRPC endpoint runs over TCP, so it’s slower than UDP Shreds.

Try it with Solana Stream SDK

UDP packets are not arriving

First, capture traffic at the host network interface.

UDP Forwarding Standard

UDP forwarding starts automatically after the destination is configured. No heartbeat activation is required; an UNIMPLEMENTED heartbeat response does not mean forwarding is disabled.
Replace the placeholders with the ERPC source IP shown for your stream and your configured destination port.
Linux (tcpdump):
bash
sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'
Windows (Pktmon, run as Administrator):
powershell
pktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time

UDP Forwarding Premium

Replace the source IP placeholders with the source IPs shown in the dashboard, and <DESTINATION_PORT> with your configured destination port.
Linux (tcpdump):
bash
sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and (src host <SOURCE_IP_1> or src host <SOURCE_IP_2>)'
Keep the parentheses: without them, the udp dst port filter applies only to the first source IP, and the capture picks up all traffic from every source IP after the first, on any protocol and port. Use one src host term for each source IP; with a single source IP, drop the or term and the parentheses.
Windows (Pktmon, run as Administrator):
powershell
pktmon filter add ERPC-UDP-1 -t UDP -i <SOURCE_IP_1> -p <DESTINATION_PORT>
pktmon filter add ERPC-UDP-2 -t UDP -i <SOURCE_IP_2> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time
Add one pktmon filter add line for each source IP, numbering the filter names as shown; a single filter that lists several IPs matches traffic between those IPs instead. With a single source IP, keep only the first filter line.

Firewall and receiver checks

  1. If the capture remains at zero, check both the OS firewall and firewalls outside the OS. Hetzner may filter traffic in Cloud Firewall or the Robot firewall at the switch port. On AWS, check the Security Group and the subnet Network ACL.
  2. Add the allow rule for your plan:
    • UDP Forwarding Standard: Allow inbound UDP from <ERPC_SOURCE_IP>/32 to destination port <DESTINATION_PORT>. Keep the source port unrestricted because ERPC uses dynamic UDP source ports.
    • UDP Forwarding Premium: Allow inbound UDP from each <SOURCE_IP_n>/32 to destination port <DESTINATION_PORT>, one rule per source IP shown in the dashboard. Keep the source port unrestricted.
  3. If packets appear in the capture but not in your application, bind the receiver to 0.0.0.0:<DESTINATION_PORT> rather than localhost, then check the local firewall and socket/process settings.
If no packets arrive after the rules are updated, send Support the capture duration, packet count, source IP, destination IP, and destination port.

Resources