Solana VPS in Frankfurt, private-networked to the validators
A Solana VPS is only worth paying for if it sits in the same data center as the validators you care about. Our VPS pool runs in Frankfurt, private-networked directly to NLN validator nodes for sub-millisecond latency to the Solana chain. You get KVM virtualization, shared vCPU, NVMe storage, and 1 to 5 Gbps network depending on tier. Three tiers: vps.starter at $100/mo (4 vCPU, 16 GB, 160 GB NVMe, 1 Gbps, 5 TB egress), vps.pro at $190/mo (8 vCPU, 32 GB, 320 GB NVMe, 2.5 Gbps, 10 TB egress), and vps.enterprise at $350/mo (16 vCPU, 64 GB, 640 GB NVMe, 5 Gbps). These are shared-CPU instances: the hypervisor fairly schedules vCPU time across tenants, which is fine for bursty workloads but means you should not run a mainnet validator or a 24/7 hot loop here. For that, see VDS or bare-metal.
VPS configurations and pricing
three sizes in Frankfurt, all private-networked to NLN validators
| Event | Type | Description | Frequency | Latency |
|---|---|---|---|---|
| vps.starter | instruction | 4 vCPU, 16 GB RAM, 160 GB NVMe, 1 Gbps, 5 TB egress — $100/mo. Testnet bots, light webhooks, build runners. | High | — |
| vps.pro | instruction | 8 vCPU, 32 GB RAM, 320 GB NVMe, 2.5 Gbps, 10 TB egress — $190/mo. Production trading bots, moderate chain access. | High | — |
| vps.enterprise | instruction | 16 vCPU, 64 GB RAM, 640 GB NVMe, 5 Gbps — $350/mo. Indexers, webhook fanout, MEV simulators. | High | — |
VPS network and storage metrics
last reviewed 2026-05-12
What a Solana VPS actually gives you
A VPS is a virtual private server: a slice of a physical hypervisor running its own kernel under KVM, with its own IP, root access, and a quota of CPU, memory, and disk. Hetzner sells one for 4 euros a month. So why does “Solana VPS” exist as a category?
Because Solana cares about latency at a level most workloads don't. The slot time is 400ms. A trade decision that takes longer than 50ms to round-trip from your bot to an RPC and back is already uncompetitive. Network distance matters more than raw CPU. A 4-core VPS one rack away from a Jito builder will out-trade a 64-core box sitting in Falkenstein, every time, because the four-core box gets the data first.
So a Solana VPS is a regular VPS with one extra constraint: it has to be in the same room as the Solana validators, and it has to be on a private network to the RPC and gRPC providers you plan to talk to. Our VPS pool runs in Frankfurt, private-networked directly to NLN validator nodes. Spin up a vps.starter, ping rpc.nln.clr3.org, you should see 0.2ms median. That's the floor. Anything below that is the speed of light over a few meters of fiber.
The shared-CPU model and what it means for Solana workloads
Our VPS pool runs on AMD EPYC hosts with DDR5 ECC, dual NVMe in mdraid1, and 25 Gbps host NICs. Each host carries multiple VPS tenants. We don't oversubscribe vCPU above 1.5x and we publish the ratio per region.
That's the part people forget. The vCPU you buy is a slice. If a noisy neighbor on the same host pegs eight threads at 100%, your bot loses some cycles even on a fair-share scheduler. For most Solana workloads this is fine: the bot is mostly waiting on slots, the indexer is mostly waiting on disk, the webhook is mostly waiting on HTTP. But if your code runs hot, vCPU contention is the failure mode you watch for. The cure is to move up to VDS, where the cores are pinned and yours alone.
NVMe storage is local, not networked. No Ceph, no distributed block store. The tradeoff: if a host fails, we restore your VPS from the most recent nightly snapshot to a different host. Recovery time is typically under 15 minutes. If you need synchronous replication, build it at the application layer or move to bare-metal with two drives.
Network varies by tier: vps.starter gets 1 Gbps with 5 TB egress, vps.pro gets 2.5 Gbps with 10 TB egress, vps.enterprise gets 5 Gbps with no transfer cap. All tiers share a fair-share scheduler on the host uplink.
Run this during peak Solana hours (13:00-17:00 UTC). If steal is above 1-2%, your workload is contending with neighbors.
# One-line steal-time check (5 samples, all cores)
mpstat -P ALL 1 5 | awk '/Average/ {print "CPU " $2 " steal=" $6}'
# Expected on a healthy VPS: steal under 2%
# If you see 3%+ consistently, move to VDSDecision tree: which Solana hosting tier fits your workload
We sell three host tiers and they exist because the workloads break differently. Don't guess. Walk the tree:
Your workload is bursty, mostly network-bound, and you care more about latency to the validator cluster than about peak CPU. Trading bots, sniper bots, webhook fanout, monitoring, testnet experiments, build runners.
Starts $100/mo.
Your bot runs hot. You decode every transaction, you maintain an in-memory pool cache, you can't tolerate occasional vCPU contention. You want guaranteed cores and RAM. See VDS.
Starts $245/mo.
You're running a Solana validator, a Geyser plugin chain that needs 128+ GB RAM and multiple NVMe drives, or an MEV pipeline that wants hardware-level guarantees. See bare-metal.
Starts $458/mo.
Quick flow: Does your workload need 128+ GB RAM? Yes → bare-metal. Does it run at >60% CPU sustained? Yes → VDS. Does it mostly wait for network events? Yes → VPS. Otherwise → start on VPS and upgrade when monitoring shows the signal.
Latency benchmarks: Frankfurt VPS vs remote hosting
The thing nobody publishes a number for: where your packets actually go. From a VPS in our Frankfurt pool, traffic to rpc.nln.clr3.org stays inside the building. Median RTT 0.21ms, 99th percentile under 0.4ms.
| From NLN VPS to | Median RTT | Path |
|---|---|---|
| rpc.nln.clr3.org | 0.21ms | Private VLAN |
| Jito block engine | 0.6ms | Cross-connect |
| Triton RPC | 0.7ms | Same building |
| Helius EU endpoint | 1.1-1.4ms | Same building |
| api.mainnet-beta.solana.com | 14.2ms | Public internet |
| Hetzner Falkenstein | 12-18ms | 350km fiber hop |
Why this matters for Solana: a block lasts 400ms. The portion where you can still react to a swap before someone else front-runs you is maybe 100ms. Spending 14ms of that budget on round-trip latency to your data source is throwing away a seventh of your reaction window. Spending 0.2ms is throwing away nothing.
The other piece is jitter. Public-internet RTT distributions have long tails. Inside our building, the 99th percentile is 0.4ms with a median of 0.21ms — a 2x tail. For anything risk-managed, the tail is what kills you.
VPS pricing vs Latitude.sh, Hetzner, and OVH
Three providers come up every time someone asks about Solana hosting on Reddit.
| Provider | Spec | Price/mo | RTT to FR4 RPC |
|---|---|---|---|
| NLN vps.pro | 8 vCPU, 32 GB, 320 GB NVMe | $190 | 0.21ms |
| Latitude.sh c2.medium | 8 vCPU, 32 GB, 480 GB NVMe | ~$129 | 2-4ms (FRA region) |
| Hetzner CCX33 | 8 vCPU, 32 GB, 240 GB NVMe | ~$50 | 14-18ms (Falkenstein) |
| OVH B2-30 | 8 vCPU, 30 GB, 200 GB NVMe | ~$70 | 11-15ms (Gravelines) |
Hetzner is genuinely cheaper. If your workload is latency-insensitive, run there. If you're doing anything trade-adjacent, that 14ms is the difference between a green PnL and a red one. Latitude.sh is the closest direct competitor, similar rooms, but they don't run their own RPC fleet — you pay them for hosting and a separate provider for data. We bundle both.
Get a quote on the pricing page, or talk to sales if you want a configuration that isn't on the menu.
Getting started: deploy a trading bot in 5 minutes
From sign-up to a running bot in under five minutes. This assumes a vps.pro (8 vCPU, 32 GB, $190/mo) with Ubuntu 24.04.
- Provision. Use the API or dashboard. The VPS boots in 60-90 seconds. You get an IP and a private VLAN address (10.x.x.x) for our RPC and gRPC.
curl -X POST https://api.nolimitnodes.com/v1/vps \ -H "Authorization: Bearer $NLN_API_KEY" \ -H "Content-Type: application/json" \ -d '{"tier":"vps.pro","region":"fra","image":"ubuntu-24.04","ssh_keys":["ssh-ed25519 AAAAC3..."]}' - SSH in and verify latency. Ping the private RPC endpoint. You should see under 0.3ms.
ssh root@185.x.x.x ping -c 5 rpc.nln.clr3.org # 0.21ms median ✓
- Install dependencies. For a Node.js bot:
apt update && apt install -y nodejs npm npm install @solana/web3.js @triton-one/yellowstone-grpc
- Configure the private RPC. Set environment variables to use the private VLAN endpoint, not the public DNS. This is where the 0.2ms latency comes from.
export NLN_PRIVATE_RPC=https://rpc.nln.clr3.org export NLN_PRIVATE_GRPC=grpc.nln.clr3.org:443
- Deploy with systemd. Drop a unit file into
/etc/systemd/system/, enable it, and the bot starts on boot with automatic restarts. See the systemd code sample above for the full template. - Monitor.
journalctl -u sniper-bot -ffor logs.mpstat -P ALL 1 5for CPU steal time. If steal stays above 1% during peak hours, it's time to move to VDS.
Frequently asked questions
Related products
Step up from VPS when you need guaranteed CPU cores and RAM, no hyperthread sharing.
Full physical machines for validators, MEV pipelines, and 128+ GB RAM workloads.
The endpoint your VPS will spend most of its time hitting. Same building, private VLAN.
Streaming layer for sniper bots and MEV searchers running on VPS hardware.
Programmatic Solana wallet creation. Pairs well with VPS-hosted custody and CEX onboarding flows.
Managed Geyser plugin slots on production validators.
Spin up a Solana VPS in under 90 seconds
vps.starter from $100/mo, vps.pro $190, vps.enterprise $350. Frankfurt only. Private-networked to NLN validators for sub-ms latency. Shared vCPU, KVM virtualization.