01.TRANSACTION LANDING — TPU SENDER// solana
// tpu sender · swqos · jito dual-path · drop-in endpoint

Land every
transaction.

Supanode routes transactions straight to upcoming Solana leaders over stake-weighted TPU access — 98.7% landed, 1.2 ms submit-to-leader p50. Dual-path: SWQoS & Jito Block Engine run simultaneously, whichever lands first wins. Swap your RPC URL and send transactions like before.

TPU SENDER · LIVE● operational
landed rate · 24h
98.7 %
▇▆▇█▇▆▇▆█▇▆▇█▆▇▆
submit→leader · p50
1.2 ms
▁▂▁▂▁▂▃▁▂▁▂▁▂▁▂▁
tx/s peak
12k
avg slots ahead
3.4
regions
3
paths active
SWQoS + Jito
02.HOW IT WORKS// dual-path tpu routing

Your tx, two paths, first one wins.

Every transaction you submit gets fanned out simultaneously through two delivery paths: stake-weighted QoS direct to the upcoming slot leader, and Jito Block Engine for bundle inclusion. Whichever lands first wins. No more lost transactions to public mempool congestion.

SWQoS direct path — bypasses public mempool, stake-weighted
Jito bundle path — block-engine inclusion, optional tips
QUIC — not implemented yet (we use JSON-RPC + HTTP binary)
// DUAL-PATH ROUTING
your bot
sendTransaction
supanode tpu
fan-out
SWQoSpath 1
leader
peer
Jitopath 2
bundle
stage
landed← first wins
03.WHY OURS// 4 reasons
98.7% landed rate
Measured across all customer traffic, 24h rolling.
Direct TPU access
Stake-weighted UDP straight to upcoming slot leaders. No RPC delays, no public mempool. Same protocol used by Solana validators internally.
Dual-path routing
SWQoS + Jito Block Engine fan-out by default. Send once, deliver twice. First path to land wins; the other gets dropped automatically.
Drop-in endpoint
Swap your RPC URL with ours, keep your sendTransaction calls as-is. No SDK, no library, no migration. Works with web3.js, Rust, Python, Go.
04.CODE// swap url, done
send.tstypescript · @solana/web3.js
1import { Connection } from "@solana/web3.js"
2
3// just swap the URL — same sendTransaction call
4const conn = new Connection("https://tpu.supanode.xyz")
5const sig = await conn.sendTransaction(tx, [signer])
~/supanodebash · curl
$ curl -X POST "https://tpu.supanode.xyz" \
-H "x-token: $KEY" \
-d '{"method":"sendTransaction",...}'
200 OK · sig: 5xJk... · submit 1.2ms
→ landed · slot 287413307 · path: SWQoS
see full docs →examples for Rust · Python · Go in /docs
05.PRICING// pay-per-use

Pay-per-use.
Per-transaction tips.

You pay per transaction via tips — min tip 0.001 SOL (1,000,000 lamports). Tips are routed to a pool of rotating addresses. Dual-path SWQoS + Jito is always active. Up to 48h trial, provisioned manually via Telegram.

// tx sending models
Trial (up to 48h)→ /pricing#trial
Pay-per-use (tips)→ /pricing#tpu
Custom (>50k tx/s)→ dedicated
06.GET STARTED// manual provisioning, fast

Send your first tx in 5 minutes.

Open Telegram, get your endpoint URL + token, swap your RPC connection. Done. Real engineers on call for onboarding.

→ opens Telegram · provisioning is manual
[ FAQ ]
How does the TPU Sender land transactions?

Every transaction is fanned out over two paths in parallel — stake-weighted QoS direct to the current slot leader, and the Jito Bundle Engine — and whichever lands first wins. Supanode tracks the leader schedule in real time so the SWQoS path always targets the correct validator.

Do I need to change my code?

No — it is a drop-in endpoint. Swap your RPC URL for the Sender URL and keep your sendTransaction calls as they are. It works with web3.js, Rust, Python, and Go.

How is the TPU Sender priced?

Pay-per-transaction via the tip itself, with no monthly fee — the minimum tip is 0.001 SOL (1,000,000 lamports) per transaction. See pricing for the full model.

Which regions are available?

Frankfurt (FRA), Amsterdam (AMS), and Tokyo (TYO). The endpoint routes your transaction to upcoming leaders from the nearest region.

// this page is about Solana transaction sending
TPU sender is Solana-specific. Need fast transaction submission on Monad, Hyperliquid, BNB, or ETH? Different tech — see network-specific options.
see /services →