Falcon
Solana transaction submission from nine metros over HTTP, QUIC and native UDP, landing through SWQoS backed by 1M+ SOL and the Jito and Harmonic bundle engines.
Falcon lands Solana transactions for people who care how fast they land. You hand it one already-signed transaction that pays a tip; we submit it over stake-weighted QoS backed by more than 1,000,000 SOL of stake and, in parallel, through the Jito and Harmonic bundle engines.
Not sure Falcon is for you? If you're submitting at volume and latency isn't the game, sendTransaction on Solana RPC is cheaper and has no tip. If you're competing to land first, you're in the right place.
The JSON-RPC surface is sendTransaction and getVersion and nothing else, so keep a normal Solana RPC beside it for blockhashes, simulation, reads and confirmation. The whole path (check the API key with getVersion, build the tip, submit, confirm the signature) is the Falcon quick start.
Acceptance is not confirmation
A signature back tells you Falcon took your bytes and forwarded them, never that the transaction landed. Confirm the signature on a normal Solana RPC.
Transports
The same UUID gets you onto all five. Your submission allowance belongs to that key rather than to an RPC plan, and the dashboard shows it.
| Transport | Endpoint | API key travels in | Success looks like | Failure surface |
|---|---|---|---|---|
| JSON-RPC | http://<region>.falcon.wtf | ?api-key= query parameter | JSON result = base58 signature | JSON-RPC error object |
HTTP /binary | http://<region>.falcon.wtf/binary | ?api-key= query parameter | 200, text/plain base58 signature | HTTP status + short plain-text message |
HTTP /plaintext | http://<region>.falcon.wtf/plaintext | ?api-key= query parameter | 200, text/plain base58 signature | HTTP status + short plain-text message |
| QUIC | <region>.falcon.wtf:5000 | Client certificate the SDK builds at connect | Ok(()) from falcon-client | SubmitError, or a connection close with a reason string |
| Native UDP | <region>.falcon.wtf:9000 | First 16 bytes of every datagram | Nothing is returned, ever | Nothing is returned, ever |
Transaction requirements
It has to serialize to at most 1,232 bytes, its signature count has to match the message header, and it has to pay a tip: one top-level System Program transfer to a Fa1con1… tip account, of at least 1,000,000 lamports (0.001 SOL). The tip accounts, and the several ways a tip quietly fails to count, are on Falcon tips & transaction requirements; per-route body limits are on Submission methods.
Falcon runs in nine metros; Solana JSON-RPC, WebSocket and Yellowstone gRPC run in five of them. Falcon regions & endpoints has the list.
Quick start
Submit and confirm your first transaction
Submission methods
JSON-RPC, /binary, /plaintext and the QUIC SDK
Native UDP
The exact datagram frame and every silent drop reason
Errors and retries
Exact codes, statuses and SubmitError variants per transport
FAQ
Tips, retries, UDP silence and size limits, answered short
API keys come from onboarding, and we're on Discord when you need a human. To separate acceptance from landing in your own metrics, see telemetry.