For the complete documentation index, see llms.txt. This page is also available as Markdown.

Best Performance for Landing Transactions

Guidelines for improving transaction landing speed through priority fees, tips, and optimized submission flow.

Optimizing Transaction Performance

For paid tiers, bloXroute automatically enhances transaction propagation using multiple advanced features.

To ensure high speed and inclusion rate for singular transactions, follow these guidelines:

1. Priority Fee:

  • Add a compute price instruction to improve validator prioritization within the slot.

  • Total priority fee is calculated as: compute unit limit × compute unit price

  • Use the Priority Fee Stream to fetch current market recommendations and pair them with a realistic compute unit limit for your transaction.

const modifyComputeUnits = ComputeBudgetProgram.setComputeUnitLimit({ 
  units: 1000000 
});

const addPriorityFee = ComputeBudgetProgram.setComputeUnitPrice({ 
  microLamports: 1 
});

const transaction = new Transaction()
.add(modifyComputeUnits)
.add(addPriorityFee)
...
  );

2. Include a Tip Instruction:

  • Ensure your transaction includes a tip for enhanced propagation.

  • Larger tips increase the your transactions priority when propagating through our systems.

  • Avoid using address lookup tables (ALTs) in your bloXroute tip instruction to avoid potential lookup overhead.

If your language of choice is not included above, you can create an instruction referencing our tip-receiving addresses

3. Submission Endpoint Configuration:

  • Disable TLS to prevent encryption overhead

  • Use the following parameters for best performance:

    • frontRunningProtection: false

    • useStakedRPCs: true

    • submitProtection: SP_LOW

4. Send to the Right Regions

We recommend that users at minimum submit their transactions to both the global edge endpoint and your closest regional endpoint. Send to all regions in parallel to achieve optimal landing speeds.

Our global edge endpoint will automatically route your transaction submissions to the closest Trader API transaction-handling instances. This reduces end-to-end-latency and improves landing performance. This is especially for users who are not co-located to common bare-metal provider regional hubs, such as residential or AWS users.

How to use

  • Primary target: Point your Trader API base URL/host to the Global endpoint

  • Parallelization: Also send the same transaction to your nearest regional endpoint(s) in parallel to maximize time-to-first-land.

  • No other config changes needed.

  • Global supports http, https, ws, wss, and gRPC

Region
Host

🌎 Global

global.solana.dex.blxrbdn.com

Choose your closest region

For consistent best performance, pair the Global endpoint with the closest region to where your bot runs.

  • Find regions & hosts: See the full, always-updated list here

  • Pick the nearest region: Choose the region with the lowest RTT from your bot host. If you’re already ~2 ms from a Trader API region, the Global endpoint will typically select it—and parallel sends ensure you still catch the fastest path.

  • Practical tip: Measure latency from the same machine that runs your bot.

Latency check examples

Parallel submit pattern (pseudo-code)

Guidance

  • Always include Global in your send set.

  • Add 1–2 closest regions in parallel for resilience and the best possible landing time.

  • Keep your region list current using the Regions page linked above.

5. Use Long-Lived connections with Keep-Alive

Avoid opening a new connection for every submission. Reusing warm HTTP, WebSocket, or gRPC connections reduces TCP/TLS handshake overhead and removes connection setup latency from the critical path.

  • For HTTP/HTTPS, use a client with connection pooling and keep-alive enabled so requests reuse existing connections. Trader API uses a server timeout of about 60 seconds, so clients should send keep-alive requests at a higher interval (we recommend every 30-seconds) to ensure their connections stay warm.

  • For WebSocket, maintain a persistent session instead of reconnecting for each submission. If your client may sit idle for extended periods, send periodic heartbeats or reconnect proactively before the next latency-sensitive send.

  • For gRPC, use a long-lived channel and enable client keepalive. Trader API explicitly supports keepalive without active streams and is configured with server keepalive parameters of roughly 20-seconds keep-alive time and 5s timeout.

  • For QUIC, keep a persistent QUIC session open and reuse it for multiple submissions instead of reconnecting for every transaction. Our QUIC client SDK is built around this model and supports submission over bidirectional streams, unidirectional streams, and datagrams. Reusing a warm QUIC session avoids repeated TLS and connection setup overhead on latency-sensitive sends.

As a general rule, your submission path should already be connected before the transaction is ready to send.

6. Rotate Tipping Wallets

Because Solana transactions lock writable accounts during execution, repeatedly tipping the same wallet can create unnecessary contention under heavy flow. Rotating across multiple bloXroute tip wallets helps distribute that load and can improve landing performance.

If your order flow is especially high frequency and public tip wallets may still become a point of contention, reach out to our support team to have private tipping wallets created and enabled for your account.

7. Choosing the Right Protocol

For most users, HTTP, WebSocket, or gRPC are sufficient and easier to integrate. Users submitting over HTTP or HTTPS should prefer the submit-plain-text endpoint to minimize unnecessary request overhead on those transports. For users optimizing for absolute minimum submission latency, QUIC is the preferred choice.

Instead of sending JSON or protobuf-framed API requests through a general-purpose interface, QUIC submission sends raw signed transaction bytes over a transport designed specifically for low-latency delivery, reducing serialization, framing, and request-processing overhead and gives performance-sensitive clients the leanest submission path supported by Trader API.

Refer to our QUIC SDK for learning how to submit transactions over QUIC.


Commonly Used Submission Modes.

This table summarizes different submission modes by different parameter configurations.

Mode - Nickname
Parameter config
Minimum Tip
Description

Fastest mode

frontRunningProtection: False, useStakedRPCs: True, submitProtection: SP_LOW

0.001 SOL

  • Max speed by leveraging staked RPC connections.

  • Ideal for time-sensitive transactions.

MEV-protected mode

frontRunningProtection: True, submitProtection: SP_MEDIUM

0.001 SOL

  • Protects against MEV attacks based on the bloXroute Malicious Leader detection system.

  • Slightly slower if consecutive flagged malicious validators are present.

  • submitProtection: SP_HIGH can be used to further the MEV protection level.

Transaction Revert Protection

frontRunningProtection: True, reverProtection: True

0.001 SOL

  • Transactions will only be sent to the Jito block engine and the Paladin leader.

  • Failed transactions won't land on the chain.

  • This method is the slowest method as no public RPC propagation channels will be used. If consecutive non-Jito nor non-Paladin validators are present, it could be even slower.

Last updated