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:

SNS Name
Address

bloxroute.sol

HWEoBxYs7ssKuudEjzjmpfJVX7Dvi7wescFsVx2L5yoY

bloxroute1.sol

95cfoy472fcQHaw4tPGBTKpn6ZQnfEPfBgDQx6gcRmRg

  1. Submission Endpoint Configuration:

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

    • frontRunningProtection: false

    • useStakedRPCs: true

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,
}'

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

Yes. Min: 0.001 SOL

  • Max speed by leveraging staked RPC connections.

  • Ideal for time-sensitive transactions.

MEV protected mode

frontRunningProtection: True

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

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