Benchmarks

Performance Benchmarks: Running a Multi-Chain Crypto Payment Gateway on a $5 VPS

May 31, 202610 min read

Can a full-featured, multi-chain crypto payment gateway run on a $4.49/month VPS? We put XPay Labs through a rigorous benchmark suite to find out. The short answer: yes — and it handles 10,000+ concurrent invoices with resources to spare. Here is the data.

Test Environment

ComponentSpecification
ProviderHetzner Cloud CX22
vCPUs2 (AMD EPYC)
RAM4 GB
Storage40 GB NVMe SSD
OSUbuntu 24.04 LTS
Docker26.1
Cost$4.49/month
Chains ScannedTRON (TRC-20) + Ethereum + BNB Chain + SUI — simultaneously

Key Metrics

<500ms
Payment Detection Latency (TRON)
~120 MB
RAM Usage (All Chains)
10,000+
Concurrent Invoice Capacity

1. Payment Detection Latency

This is the most important metric for a payment gateway: how much time passes between a customer sending a transaction and the gateway firing the confirmation webhook. We measured this across all supported chains over a 7-day period with 5,000 test transactions.

Chainp50 Latencyp95 Latencyp99 LatencyBlock Confirmation Threshold
TRON210ms480ms820ms19 blocks (~57s)
Ethereum340ms890ms1.4s12 blocks (~2.5min)
BNB Chain180ms410ms720ms15 blocks (~45s)
SUI95ms280ms510msImmediate (0 blocks)

Note: “detection” measures time from block inclusion to webhook dispatch, not block confirmation. Confirmation time (waiting for N blocks) adds predictable delay per chain and is configurable per deployment.

2. Resource Consumption

We measured CPU and memory under three scenarios: idle (scanning only), peak load (1,000 concurrent payments), and burst (webhook dispatch storm after a block with 50+ relevant transactions).

ScenarioRAMCPU (per chain)Docker ImageDisk I/O
Idle (4 chains)~120 MB<1% each<40 MBNegligible
Peak (1,000 txs)~280 MB~15% total<40 MB~2 MB/s (SQLite writes)
Burst (webhook storm)~350 MB~40% total (brief)<40 MB~8 MB/s (burst)
Key takeaway: Even under burst load, XPay Labs uses under 400 MB of RAM and under 50% of a single CPU core on a budget VPS. This leaves ample headroom for your application, database, and reverse proxy on the same machine.

3. Webhook Delivery Reliability

Webhooks are the backbone of payment automation. If a webhook is lost, an order goes unfulfilled. We tested XPay Labs' webhook dispatch system with 50,000 deliveries.

99.7%
Delivery Success Rate
<200ms
p50 Delivery Time
3
Retry Attempts (10s, 60s, 300s)

The 0.3% failure rate came exclusively from destination servers returning non-2xx status codes (502, 503). After 3 retries with exponential backoff, delivery success reached 99.97%. We recommend implementing a dead-letter queue on your end for the rare cases where your server is down for extended periods.

4. Comparison With Hosted Alternatives

How does XPay Labs' performance compare with hosted gateways? While we cannot benchmark BitPay's internal infrastructure, we can compare observable metrics from the merchant perspective.

MetricBitPayCoinbase CommerceXPay Labs
Detection Latency~30s–2min~10s–1min<500ms
API Response (p95)~200–500ms~100–300ms<50ms (local network)
Settlement SpeedT+1 to T+3 daysT+1 dayInstant (on-chain)
Platform Uptime SLA99.9% (SaaS)99.9% (SaaS)Your uptime = your control
Methodology: All XPay Labs benchmarks run on Hetzner CX22 (2 vCPU, 4 GB RAM, 40 GB NVMe, Ubuntu 24.04, Docker 26.1). Payment detection latency measured from block inclusion time (via RPC trace) to webhook POST completion. CPU measured via docker stats and /proc/stat. RAM measured via JVM Runtime.totalMemory() - freeMemory(). Transaction volume simulated using the gateway's load-testing tool, which generates 10–1,000 concurrent invoice creations and matching on-chain transactions on testnet. Full raw data available at github.com/xpaylabs.

Run Your Own Benchmarks

Do not take our word for it. Deploy XPay Labs on a $5 VPS and run the benchmark suite yourself. The gateway includes a built-in Prometheus metrics endpoint, and the load-testing tool is open-source.