Best Performance for Landing Transactions
Optimizing Transaction Performance
To ensure high speed and inclusion rate for singular transactions, follow these guidelines:
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)
...
);
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
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.
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