Solana RPC for trading bots¶
A trading bot's RPC problem is not throughput. It is that the two calls that decide whether you
make money — the account read that spots the opportunity and the sendTransaction that takes it —
have completely different failure modes, and a provider that is healthy for one can be useless for
the other.
What this workload costs¶
Modelled on 50% getAccountInfo, 15% getMultipleAccounts, 13% sendTransaction,
12% getSignatureStatuses, 10% getLatestBlockhash — no history calls — computed from
the pricing dataset:
| Provider | Blended $/M | At 129.6M calls/month (~50 req/s) |
|---|---|---|
| Helius | $5.00 | $648 |
| dRPC | $6.00 | $778 |
| Alchemy | $6.21 | $805 |
| Chainstack | $10.00 | $1,296 |
| Triton One | $10.00 | $1,296 |
| QuickNode | $15.00 | $1,944 |
| OnFinality | — | cannot serve this mix |
This is the mix Helius is priced for: no archival calls, so nothing triggers its 10× multiplier and you pay its flat $5.00 across the board. Compare the indexer page, where the same provider is the most expensive on the board — the workload decides, not the brand.
OnFinality is disqualified rather than expensive. sendTransaction does not appear in its
published method table, so there is no rate for it in the dataset and no way to price this
workload. A provider that cannot take your writes is not a candidate no matter what its reads cost.
Rates verified 2026-09-06 against each provider's published pricing; overage/pay-as-you-go basis. See price per method for the weights.
sendTransaction is not free on Helius¶
This is worth stating plainly because it was wrong in these docs until 2026-09-05 and the mistake
is common elsewhere: Helius charges 1 credit for sendTransaction, the same as any standard
call. It is not free, and a routing strategy built on the assumption that writes are free is built
on nothing.
At a 13% write share that is 16.8M writes a month in the table above — $84 of the $648. Worth knowing before you turn on write broadcast, which multiplies it.
Broadcast writes, and what it costs¶
The highest-value thing a proxy does for a bot is send your transaction to every provider at once and return the first success. Solana deduplicates by signature, so duplicate submissions are harmless — you are buying landing probability with provider spend.
[routing]
strategy = "failover_ordered" # pin reads to one provider, don't flap
broadcast_writes = true # but fan every write out to all of them
write_methods = ["sendTransaction"]
max_retries = 1
With three providers configured, broadcast_writes = true bills your write volume three times —
the 16.8M writes above become 50.4M. On the mix in the table that is roughly $84 → $252. For a bot
where a missed fill costs more than $168 a month, that is an easy trade; state it explicitly rather
than discovering it on the invoice.
simulateTransaction is not a write by default. It is read-only and not in the landing path,
so it routes as an ordinary read. Add it to write_methods only if you specifically want it
broadcast.
Pin reads, don't flap¶
For a latency-sensitive bot, failover_ordered beats best_score — and the reason is not latency,
it is consistency. Score-driven strategies hop between providers whose slot views and pending
transaction sets differ slightly from one request to the next. You want one hot connection pool and
one consistent view of the chain tip, and you want to leave it only when it actually breaks.
[health]
interval_ms = 500 # detect failure in under a second
circuit_open_failures = 3
circuit_cooldown_secs = 15
See routing strategies for the full comparison and health scoring for how a provider gets demoted.
The proxy's own latency cost¶
Measured 2026-05-17 against a backend with a realistic ~20 ms RTT: +0.41 ms at the median, +1.93 ms at p99, and −2.3% throughput. Full conditions are on the FAQ.
If your budget is a 5–50 ms provider round trip, that is inside the noise. If you are colocated with a dedicated node and counting microseconds, it is not — measure it before you adopt it, and consider binding to a Unix socket, which measured faster than direct TCP in the same run.
Where splitting by method does not pay¶
The per-method cheapest provider for this mix:
| Method | Share | Cheapest | $/M |
|---|---|---|---|
getAccountInfo |
50% | Alchemy | $4.50 |
getMultipleAccounts |
15% | Helius | $5.00 |
sendTransaction |
13% | Helius | $5.00 |
getSignatureStatuses |
12% | Alchemy | $4.50 |
getLatestBlockhash |
10% | Helius | $5.00 |
Perfect method-splitting saves 6.2% over just using Helius — $648 → $608. That is not worth managing two vendor relationships for. Use multiple providers here for redundancy and write broadcast, not to shave the bill.
RPC Plane does not route by cost
It routes by health, score, config order or weight — never by price. Any cost split is one you encode yourself. Cost-aware routing is on hold and the binary carries no pricing table.
Related¶
- Routing strategies —
failover_ordered, write broadcast, retries - Health scoring — latency, error rate, slot drift
- Unix socket — measured faster than loopback TCP
- Price per method — the underlying rate tables