API Reference
SWQOS exposes two independent submission paths. Both require a tip-transfer instruction inside the submitted transaction; neither uses an API key.
HTTP / RPC endpoints
Public endpoints — no authentication, no allowlist.
| Region | URL |
|---|---|
| Frankfurt | https://fra-swqos.everstake.com |
| Amsterdam | https://ams-swqos.everstake.com |
| New York | https://ny-swqos.everstake.com |
| Tokyo | https://tyo-swqos.everstake.com |
| London | https://lon-swqos.everstake.com |
| Singapore | https://sgp-swqos.everstake.com |
| Anycast (Cloudflare) | https://main-swqos.everstake.one |
Plain http:// is supported for HTTP/2 with prior knowledge (h2c) — useful for skipping the TLS handshake when latency matters.
Supported method
Only one method is exposed:
sendTransaction— accepts a signed, base64-encodedVersionedTransaction.
There is no getLatestBlockhash, simulateTransaction, getSignatureStatuses, or any read method. Fetch all read data from a separate Solana RPC (your own or a public one).
Submission requirements
- Transaction must include a
SystemProgram::transferinstruction paying ≥1,000,000 lamports to an Everstake tip account. - No preflight checks. Invalid txs are dropped at the validator without an explicit error.
- Set priority fees on the tx itself if you want them; SWQOS adds priority on top, doesn't replace.
Rate limit
10 transactions per second per client by default. Higher rates available on Pro/custom tiers.
QUIC endpoints
To access QUIC endpoints, log in to your Blockspace account, purchase a subscription or activate a trial, and add your QUIC pubkey to the desired location in the dashboard under SWQOS → QUIC pubkeys.
7 locations are available: Frankfurt, Amsterdam, New York, Tokyo, London, Singapore, Dublin.
Authentication
QUIC connections are authenticated by a Solana keypair. The pubkey of that keypair must be on the SWQOS allowlist (configurable in the dashboard).
This pubkey is for transport authentication only — it does not need to be a signer on the transactions you submit, and it has no effect on which instructions are included.
Wire shape
Open a QUIC stream, write the bytes of a signed serialized transaction, close the stream. The transaction itself must include the same tip-transfer instruction as the HTTP path (≥1,000,000 lamports).
Limits
- Keep-alive — 10 seconds.
- Connections per minute — 8 per authorized pubkey.
Tip accounts
The full list of valid tip recipient pubkeys is published in the open-source SWQOS docs at github.com/everstake/everstake-swqos-docs. The list is rotated occasionally — pull the current list from there.
You can also find the current tip accounts in your Blockspace account on the Pay-as-you-go page.
Tip instruction rules
- Minimum 1,000,000 lamports paid via
SystemProgram::transferto one of the published tip accounts. - Pick a tip account at random per transaction. Rotating across the published accounts avoids write-lock contention on any single one.
- Do not add a tip account to an Address Lookup Table (ALT). The tip transfer must reference the tip account as a static key in the transaction, otherwise it may not be recognized as a valid tip and the transaction won't be prioritized.
- Optional memo. Attach a Memo instruction for your own reconciliation. Memos are recorded permanently on-chain and visible in transaction logs and explorers.
- A tip buys priority inclusion — multi-path fanout to upcoming leaders plus a stake-weighted priority boost. A transaction without a tip rides a single SWQOS path with neither.
What SWQOS doesn't do
- Bypass slot leaders. If the leader isn't Everstake, your transaction still has to get there over normal turbine paths, same as everyone else's traffic.
- Guarantee inclusion. What it raises is your odds under congestion, not certainty.
- Replace priority fees. Set those on the transaction yourself — SWQOS adds on top, it doesn't substitute for them.
- Run preflight checks. There isn't one, so a malformed or under-tipped transaction just gets dropped, silently.