Skip to main content

Access

Apex is in beta and invite only. Once your account is enabled, create API keys in the OrbitFlare dashboard under Dashboard > Apex. To request an invite, contact the team on Discord.
No. An Apex endpoint accepts sends: sendTransaction, sendBundle, and the plain HTTP send routes, plus getTipAccounts, getInflightBundleStatuses, getVersion, and health. Keep using your regular OrbitFlare RPC for blockhashes, account reads, simulation, and confirmation.
Apex serves Solana mainnet.
The one with the lowest round trip from your sender. Measure with GET /ping. Every Apex endpoint routes toward the upcoming leaders on its own, so your choice only affects your own hop. See Endpoints and regions.

Tips and Cost

You pay the tip inside each transaction, and only when that transaction lands. The standard tier floor is 0.001 SOL (1,000,000 lamports). A rejected, expired, or dropped transaction costs nothing.
No. One Apex tip covers all three paths. When the Jito path wins, Apex bids your tip minus the 5,000 lamport base fee to Jito in the same bundle as your transaction.
Yes. Apex gets your transaction to the leader, and the leader still orders by priority fee. Set a compute unit limit and price on every transaction. See Tips.
The tip must be a top-level SystemProgram transfer to one of the accounts from getTipAccounts. A transfer made by your program through CPI does not count, and neither does a transfer to any other address. Also check that the tip account is in the static account keys, not loaded through an address lookup table, and that the funder signs. See tip errors.
Fetch them with getTipAccounts at startup and refresh them from time to time rather than hard-coding them. Pick one at random per transaction.
A transaction that fails during execution is rolled back as a whole, including the tip transfer. You pay the network fee only.

Sending

Start with JSON-RPC sendTransaction, since it drops into existing code. Move to POST /send-bin for less overhead over HTTP, or to QUIC with the Rust client for the fastest path. Routing and priority are the same on all of them. See Sending transactions.
Not necessarily. A signature means the Apex endpoint accepted the transaction and is racing it. Confirm with getSignatureStatuses on a Solana RPC. See Confirm every send.
No. Nothing between you and the leader simulates or runs preflight checks. If you want simulation, call simulateTransaction on your regular RPC first.
Until the transaction lands or its blockhash expires. After that, rebuild it with a fresh blockhash and send the new transaction.
Yes. The network executes a given signature once, so racing the same signed transaction through several services is safe. Your Apex tip is only paid if the transaction lands, whichever service delivered it.
CORS is enabled on every HTTP reply, so browser code can call the routes directly. Keep in mind that a key shipped to a public page is visible to visitors, and that Apex endpoints are served over plain HTTP, so a page loaded over HTTPS is subject to mixed content rules. See Authentication.
Over HTTP, yes, as the x-api-key header or api-key query parameter. Over QUIC, no: the client presents a certificate derived from the key and the key itself never leaves your machine. The key cannot spend funds either way, because every transaction is signed by your own keypair.

Bundles and Transaction v1

Only when you need several transactions to execute in order, all or nothing. Bundles go to the Jito block engine path alone, so they land only on Jito-enabled leaders. A single transaction lands sooner as a normal send, which uses all three paths. See Bundles.
Exactly one transaction in the bundle carries the Apex tip, at or above your tier’s floor.
Yes, as transaction v1 (SIMD-0385), up to 4096 bytes on sendTransaction, /send, /send-bin, /send-batch, and QUIC. Legacy and v0 transactions stay at 1232 bytes, and so do bundle members.

Limits and Support

Rate limits are per API key and set by the key’s tier. Exceeding the limit returns JSON-RPC -32029, HTTP 429, or QUIC admission code 2. See Errors and rate limits.
The official client is the Rust crate apex-sender-client. Every other language can use JSON-RPC and the plain HTTP routes with no library at all, and the QUIC protocol is documented for anyone who wants to implement it. See QUIC from other languages.
Reach the team on Discord, Telegram, or by email at support@orbitflare.com.