Best Performance for Landing Transactions

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 your transaction for better prioritization.

  • Use the Priority Fee Stream to fetch the recommended fee in real-time.

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

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

const transaction = new Transaction()
.add(modifyComputeUnits)
.add(addPriorityFee)
...
  );
  1. Include a Tip Instruction:

  • Ensure your transaction includes a tip for enhanced propagation.

  • The service fee is based on the features used (e.g., staked connections).

  • Use the Bundle Tip Stream to determine an optimal tip amount.

import (
	"github.com/gagliardetto/solana-go"
	"github.com/gagliardetto/solana-go/programs/system"
)

const (
	// BloxrouteTipAddress is from here and may fall out of date from time to time. Check our docs:
	// https://docs.bloxroute.com/solana/trader-api-v2/front-running-protection-and-transaction-bundle
	BloxrouteTipAddress = "HWEoBxYs7ssKuudEjzjmpfJVX7Dvi7wescFsVx2L5yoY"
)

// CreateBloxrouteTipTransactionToUseBundles creates a transaction you can use to when using PostSubmitBundle endpoints.
// This transaction should be the LAST transaction in your submission bundle
func CreateBloxrouteTipTransactionToUseBundles(privateKey solana.PrivateKey, tipAmount uint64, recentBlockHash solana.Hash) (*solana.Transaction, error) {
	recipient := solana.MustPublicKeyFromBase58(BloxrouteTipAddress)

	tx, err := solana.NewTransaction([]solana.Instruction{
		system.NewTransferInstruction(tipAmount, privateKey.PublicKey(), recipient).Build()}, recentBlockHash)
	if err != nil {
		return nil, err
	}

	signatures, err := tx.Sign(func(key solana.PublicKey) *solana.PrivateKey {
		if key.Equals(privateKey.PublicKey()) {
			return &privateKey
		}
		return nil
	})
	if err != nil {
		return nil, err
	}

	tx.Signatures = signatures

	return tx, nil
}

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

  1. Submission Endpoint Configuration:

  • Use the submit endpoint with the following parameters for best performance:

    • frontRunningProtection: false

    • useStakedRPCs: true

    • submitProtection: SP_LOW

curl -X 'POST' \
  'https://ny.solana.dex.blxrbdn.com/api/v2/submit' \
  -header "Authorization: $AUTH_HEADER" \
  -d '{
 "transaction": {"content": "AjF+Br2CUIENJqV1...BAAABCQ=="},
 "frontRunningProtection": false,
 "useStakedRPCs": true,
 "submitProtection": SP_LOW
}'

Commonly used Submission Modes.

This table summarizes different submission modes by different parameter configurations.

Mode - Nickname
Parameter config
Require tip?
Description

Fastest mode

frontRunningProtection: False, useStakedRPCs: True, submitProtection: SP_LOW

Yes. Min: 0.001 SOL

  • Max speed by leveraging staked RPC connections.

  • Ideal for time-sensitive transactions.

Fully MEV-protected mode

frontRunningProtection: True, submitProtection: SP_HIGH

Yes. Min: 0.001 SOL

  • Protects against MEV attacks using Jito bundles.

  • Slightly slower if consecutive non-Jito validators are present.

In-the-middle mode

frontRunningProtection: True, fastBestEffort: True, submitProtection: SP_MEDIUM

Yes. Min: 0.001 SOL

  • Balances speed and protection by propagating to Jito and low-risk validators.

  • Low-risk validators are identified by bloXroute.

Last updated