Skip to content

Solana Vibe Station

Solana Vibe Station (SVS) runs Solana RPC on hardware it owns in Atlanta and Amsterdam, and bills it differently from every other provider in these docs: a flat monthly price per rate limit, with no credits and no per-call metering. There is a free tier at 5 requests/second, and paid tiers run from $40/month at 30 req/s to $500/month at 1,000 req/s.

Because nothing is metered, the usual question ("what does getBlock cost here?") has no answer. Every call costs the same, which is nothing on top of the subscription. You pay for a rate limit instead.

Referral link

The sign-up links on this page go through rpcplane.dev/go/solana-vibe-station, which is a Solana Vibe Station referral link. If you sign up through it and then pay for a plan, RPC Plane may earn a commission on what you pay. SVS's program pays up to 30% of a first invoice and up to 10% of renewals. It costs you nothing, and the free tier earns us nothing. None of the content depends on it: every figure below comes from SVS's own published pages or from requests we sent to its endpoints, and the problems we found are on this page too.

What is the Solana Vibe Station RPC URL?

The hostname carries the tier, and the key is an api_key query parameter:

https://free.rpc.solanavibestation.com/?api_key=<YOUR_API_KEY>

Paid tiers swap free for lite, basic, ultra, elite or epic. WebSocket uses the same host and query with wss://. Each hostname is geo-routed to the nearer region. To pin one, insert the region: free.rpc.atl1.solanavibestation.com (Atlanta) or free.rpc.ams1.solanavibestation.com (Amsterdam). Both regional free hosts answered when checked on 2026-11-06.

There is also a public endpoint that needs no key:

https://public.rpc.solanavibestation.com

SVS also documents a /historical path for lookups older than 24 hours (https://<tier>.rpc.solanavibestation.com/historical?api_key=...). For RPC Plane, use the plain URL and leave /historical out. History depth below explains why.

How do I get a Solana Vibe Station API key?

  1. Create an account. The free tier needs no card.
  2. In the portal, add the Free RPC product (or a paid tier).
  3. Copy the API key, or the full endpoint URL shown for it.

The key travels in the URL, so treat the whole endpoint URL as a secret and put it in an environment variable.

Is there a free Solana Vibe Station tier, and what are its limits?

Yes. Free RPC costs $0 and has no monthly allowance at all. There are no credits to run out of, so the rate limit is the only ceiling:

Limit Free tier
Requests 5/sec
sendTransaction 1/sec
Monthly allowance none (unmetered)
History served (see below)
LightSpeed, Hyperion paid tiers only

Measured 2026-11-06 with a free key: a burst of 20 concurrent requests got 6 through, 6 req/s held for four seconds with no errors, and 10 req/s settled at about 6 per second, with the rest returning HTTP 429. That is a little above the published 5, but design against the 5.

SVS says the free tier "is not intended for production use and may be subject to unscheduled downtime, abuse, and rate limit changes without notice."

The public endpoint publishes no limit. Measured the same day, it held 1 req/s for ten seconds, but at 2 req/s only 12 of 20 requests succeeded. Treat it as about 1 req/s, less than RPC Plane's health probe sends at the default interval (see the probe spends part of the limit).

Plans and rate limits

Plan Monthly Annual Requests/s sendTransaction/s getProgramAccounts/s
Free $0 — 5 1 —
Lite $40 $400 30 10 2
Basic $75 $750 100 25 5
Ultra $150 $1,500 250 50 10
Elite $300 $3,000 500 100 15
Epic $500 $5,000 1,000 250 25

Annual billing is ten months' price for twelve. Plans are month to month with no cancellation fee, and a request over the limit is throttled for that second rather than billed: "You are never billed an overage."

Verified 2026-11-06 against solanavibestation.com/pricing and the rate-limit reference. SVS's own pages disagree in two places:

  • Lite is 30 req/s on the pricing page, in the portal catalog and on the rate-limit page. The RPC services page says 40. This table uses 30.
  • The getProgramAccounts limits appear only on the RPC services page. The rate-limit page doesn't list a separate getProgramAccounts limit.

Every paid tier includes LightSpeed (tip-based transaction landing, 0.001 SOL minimum tip) and Hyperion (SVS's indexer for getProgramAccounts and similar scans). Staked RPC (SWQoS, plus Jito sendBundle) is a separate line, from $300/month. Yellowstone gRPC streaming starts at $150/month.

The pricing page also has a slot for packages that pair an RPC tier with gRPC streaming at a discount. None were published when checked on 2026-11-06.

What each method costs

Nothing per call. That makes per-call comparison a question of utilisation. A tier's effective rate depends on how much of its limit you actually use, and it beats metered pricing surprisingly early:

Plan Calls/month at the full limit $/M at the full limit Cheaper than $4.50/M metered above
Lite 77.8M $0.51 8.9M calls/mo (3.4 req/s average)
Basic 259.2M $0.29 16.7M calls/mo (6.4 req/s average)
Ultra 648M $0.23 33.3M calls/mo (12.9 req/s average)
Elite 1,296M $0.23 66.7M calls/mo (25.7 req/s average)
Epic 2,592M $0.19 111M calls/mo (42.9 req/s average)

$4.50/M is Alchemy's standard read, the cheapest metered standard read in provider pricing. The table uses a 30-day month. Against history reads the break-even comes much sooner, because history is where metered providers charge their premium: Basic costs the same as 1.5M Helius getBlock calls at $50/M.

The catch is that a rate limit caps your peak, and a flat price is only cheap when your average sits near that peak. Size a tier to your busiest second and it idles the rest of the day. With RPC Plane you can size for the baseline and let the overflow go elsewhere: cap the SVS entry with max_rps and the proxy sends traffic above the cap to a metered provider, so you buy a smaller tier and pay per call only for the bursts.

How far back does its history go?

Further than most free endpoints, though not without gaps. Two behaviours matter, and neither returns an error.

getSignaturesForAddress on the plain URL covers about the last 11 hours. That is the node's local ledger: minimumLedgerSlot was about 180,000 slots behind the tip. On 2026-11-06, for an address whose latest 1,000 signatures go back 1.2 days, the plain free URL and the public endpoint both returned 236 signatures, while the Solana Foundation endpoint and SVS's /historical path returned all 1,000. The /historical lists matched the Foundation's exactly, six pages deep.

getTransaction and getBlock reach back to 25 October 2024, with a hole. The plain URL answers these from SVS's archive, without /historical. getFirstAvailableBlock reports slot 297,562,244 (2024-10-25), and anything older comes back as null or error -32009. Within that range we sampled transactions at different ages and compared each one with the Foundation endpoint, which had all of them:

Transaction age (from 2026-11-06) Found by SVS
Up to ~15 days (after 2026-10-21) 69 of 69
2026-08-31 to 2026-10-21 27 of 76: the rest returned null
2024-10-25 to 2026-08-30 92 of 92
Before 2024-10-25 none: below the archive floor

Inside that window getBlock still returns the full block, with a signature list identical to the Foundation's. Only the lookup by signature misses. /historical misses the same transactions, and inside the window its getSignaturesForAddress with a before cursor returned an empty list where the Foundation returned 200 signatures. Read the hole as dated: it may be a backfill that is still running, so re-check before relying on the archive.

So mark it history = "recent". Both behaviours are the ones that setting exists for. With it, RPC Plane never sends getSignaturesForAddress to SVS, and a null or error from SVS on getTransaction or getBlock fails over to a full-history provider. Point lookups routed to SVS, which are the expensive calls on metered providers, are still answered there at no per-call cost, except those that fall in the gap. See history lookups.

That needs a full-history provider in the same pool. The Solana Foundation endpoint qualifies, as do Helius, QuickNode and Alchemy. Checked end to end on v0.13.0 with SVS first in a failover_ordered pool: a getTransaction from the gap came back from SVS as a miss (rpc_plane_requests_total{status="miss"}), failed over, and returned the transaction from the Foundation endpoint. getSignaturesForAddress went straight to the Foundation and returned all 1,000 signatures.

The /historical path

/historical serves nine methods: getBlock, getBlocks, getBlockTime, getBlocksWithLimit, getFirstAvailableBlock, getSignaturesForAddress, getSignatureStatuses, getSlot and getTransaction. Anything else gets HTTP 403 with error -32601. It also refuses processed commitment with HTTP 403. RPC Plane's health probe sends getSlot at processed, so an entry pointed at /historical fails every probe and its circuit opens.

The only thing it adds over the plain URL is the full-depth getSignaturesForAddress, and that is exactly the method the hole breaks. Adding it as a full provider would let its empty lists and nulls for that window reach your clients as real answers, so leave it out for now. If the gap closes and you want it, scope the entry to history methods and leave out getSlot, which skips the probe (submission-only providers describes how such an entry is scored).

To re-check the gap yourself, take a signature from a block in the missing window and compare:

SIG=...   # any transaction from late September 2026
for url in "https://free.rpc.solanavibestation.com/?api_key=${SVS_API_KEY}" \
           "https://api.mainnet-beta.solana.com"; do
  curl -s "$url" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,
    "method":"getTransaction","params":["'"$SIG"'",{"maxSupportedTransactionVersion":1}]}' \
    | head -c 80; echo
done

Configure Solana Vibe Station in RPC Plane

[health]
interval_ms = 30000    # the default probes 3x a second, 60% of the free tier; see below

[[providers]]
name    = "svs"
url     = "https://free.rpc.solanavibestation.com/?api_key=${SVS_API_KEY}"
max_rps = 5
history = "recent"     # ~11 h of getSignaturesForAddress, and a gap in getTransaction
export SVS_API_KEY=your_api_key_here
rpc-plane run

For a paid tier, change the hostname (basic.rpc..., ultra.rpc...) and set max_rps to the tier's limit.

The health probe spends part of the limit

Every health.interval_ms, RPC Plane probes each provider with three getSlot calls, one per commitment level, and those calls don't draw from max_rps. At the default 1,000 ms that is 3 req/s, which is 60% of the free tier's 5, and max_rps = 5 on top of it would run into 429s. At 30,000 ms, the interval the free-tier stack uses, the probe costs 0.1 req/s. If you keep a short interval, lower max_rps to leave room for it instead. On a paid tier the probe is noise: 3 req/s against Basic's 100.

The interval is global, and on metered providers in the same pool the probe also draws on their monthly allowance. The free-tier guide has the numbers.

The public endpoint is the extreme case. At about 1 req/s, the probe alone exceeds its limit at any interval_ms under 3,000, and even at 30,000 it would add a tenth of a request a second to a leg that holds one. It is not worth adding as a pool member.

Writes have their own, tighter limit

sendTransaction is limited separately: 1/s on Free, 10/s on Lite. As with Helius, a single max_rps can't protect it. Register the key twice so writes get their own bucket:

[[providers]]
name    = "svs-writes"
url     = "https://free.rpc.solanavibestation.com/?api_key=${SVS_API_KEY}"
methods = ["sendTransaction"]
max_rps = 1

[[providers]]
name    = "svs-reads"
url     = "https://free.rpc.solanavibestation.com/?api_key=${SVS_API_KEY}"
max_rps = 5
history = "recent"

See working around a per-method limit.

Method notes

Checked 2026-11-06 on the free and public endpoints:

  • No DAS. getAsset and getAssetsByOwner return -32601 "Method not found". Keep Metaplex calls on a provider that serves them, with a methods allowlist if needed.
  • getProgramAccounts and getLargestAccounts work, including on the free tier. Many free endpoints block both.
  • Jito simulateBundle works on the free tier.
  • getSupply rejects excludeNonCirculatingAccountsList with -32602, because SVS serves it from an indexer that doesn't track circulating supply.
  • getTransactionsForAddress is not available on the plain URL.

When to use Solana Vibe Station

  • Steady, high-volume reads. If your average load sits well inside one tier, the flat price undercuts every metered provider here. History reads especially: SVS's getBlock costs the same as getBalance.
  • As a free-tier leg. 5 req/s with no monthly allowance to burn makes it a useful member of a free-tier stack. It never runs dry the way a credit allowance does.
  • Not as your only history source, yet. Pair it with a full-history provider and keep history = "recent" until the archive gap above is closed.
  • Not for DAS. It doesn't serve the Metaplex methods.