Production-grade JSON-RPC, WebSocket and Yellowstone gRPC endpoints for builders who need consistent latency, transparent limits, and crypto-native billing.
Every piece of the stack optimized for apps that talk to Solana all day.
Direct shred ingestion from the Jito Block Engine, bypassing standard Turbine. gRPC stream first-detection lands at <50ms P99 from the EU — competitive with Frankfurt-colocated providers.
Every Solana RPC method supported — reads, writes, program accounts, token accounts — plus low-latency WSS subscriptions for logs and account updates.
Per-key request quotas enforced at the edge, plus a per-account bucket for heavy methods like getProgramAccounts. Published numbers, no surprise throttling, no noisy neighbours.
On-chain subscriptions with Solana Pay. QR code or connect Phantom/Solflare — your API key is issued the moment the tx lands.
Per-key requests, errors and bandwidth on a 30-minute to 30-day chart, a top-methods breakdown, and gRPC stream metering down to what each subscription asked for. Know exactly what your app is doing.
Bare-metal nodes in NL (Amsterdam), run by the same team operating a community-oriented Jito-Solana validator at 0% commission and shipping dashboards and tools the Solana operator community uses every day. Same infra discipline runs your RPC.
No sales calls, no month-long onboarding. Pay on-chain, get a key, start shipping.
One click — no password, no email verification loop.
SOL or USDC via QR or connected wallet. Solana Pay flow settles in seconds.
Key is issued and activated the moment the transaction is confirmed on-chain.
Standard Solana JSON-RPC over HTTPS. Point your existing @solana/web3.js Connection or any RPC client at our endpoint with your API key.
// Query a Solana account
const rpc = "https://rpc-nl.validblocks.com:8899";
const KEY = process.env.VB_API_KEY;
const res = await fetch(`${rpc}?api_key=${KEY}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "getAccountInfo",
params: ["11111111111111111111111111111111"],
}),
});
const { result } = await res.json();Pay in SOL or USDC. 30-day subscriptions. No credit card, no auto-renew surprises.
10 req/s
50 req/s
100 req/s + gRPC
Custom rate
Still have questions? Get in touch.
All standard JSON-RPC methods on Mainnet-Beta: getAccountInfo, getTransaction, sendTransaction, simulateTransaction, getProgramAccounts, token methods, and WebSocket subscriptions (accountSubscribe, logsSubscribe, signatureSubscribe).
Pass your API key as a URL parameter (?api_key=vb_...) or as an X-Api-Key header. Both are enforced at the edge; keys can be rotated or revoked from your dashboard.
Requests over the limit return HTTP 429. The per-second quota (10 on Free, 50 on Pro, 100 on Stream) is counted per API key. Heavy methods (getProgramAccounts, getBlock, getSignaturesForAddress, getMultipleAccounts, getTokenAccountsByOwner/ByDelegate) have a separate, tighter bucket — 3/s on Free, 10/s on any paid plan — counted per account rather than per key, so issuing extra keys does not multiply that budget. Exceeding it returns 429 with JSON-RPC error -32005. Upgrade anytime to increase throughput or request Enterprise for custom limits.
Subscriptions run for 30 days from payment. Renewals extend on top of your remaining time. We do not issue refunds once a subscription is active.
Production endpoint is NL (Amsterdam) at rpc-nl.validblocks.com — bare-metal in a Tier-3 datacenter, optimised for European clients but reachable globally.
Yes — connect to wss://rpc-nl.validblocks.com:8900/?api_key=… and use standard pubsub methods like accountSubscribe and logsSubscribe.
NL ingests shreds directly from the Jito Block Engine via shredstream-proxy, bypassing standard Turbine. Measured from a German client (geyserbench, 1000 tx, account=pAMM, commitment=processed): P50 first-detection 20ms, P95 38ms, P99 44ms — within ~20ms of Frankfurt-colocated comparison endpoints at the median.
Stream and Enterprise plans dial https://grpc-nl.validblocks.com with any Yellowstone client, passing your API key as the x-token metadata header. Same key as RPC — no separate credential to manage.
Yes. Stream allows 3 concurrent subscriptions and 1 unfiltered firehose (an unnarrowed transactions filter, or blocks with include_transactions), counted per account rather than per key so the plan's 5 keys don't multiply the cap. Anything narrower — slots, blocks_meta, filtered transactions — only counts against the 3. Over the cap the stream is rejected with gRPC status 8 RESOURCE_EXHAUSTED. Enterprise is uncapped. Your dashboard shows traffic, peak concurrency, rejections and what each stream subscribed to.
Yes — paste it into the voucher box on your dashboard and the plan activates immediately, no payment needed. A voucher's validity window starts when it is first redeemed, not when it was issued.
Enterprise plans can request archival history and custom indexes. Standard plans serve the most recent window with full program-id indexing.