# Transaction Submission

## **How It Works**

The Trader API broadcasts your transactions through multiple paths simultaneously to ensure the best possible performance. Possible paths include:

* Custom RPCs for low-latency processing
* Block engines
* Staked connections
* Private relay infrastructure for improved cross-regional routing
* Dedicated low-latency network links across bare-metal infrastructure

### Tips

Transaction submission requires a **system transfer** instruction with a minimum tip of **0.001** SOL (1,000,000 Lamports) to one of our public tipping wallets. You can refer to our tip and tipping wallet documentation [here](https://docs.bloxroute.com/solana/trader-api/introduction/tip-and-tipping-addresses).

### Priority Fees

While higher tips ensure faster processing through Trader API to reach the leader, priority fees incentivize the validator to prioritize your transaction *within* the slot. Use the [**Priority Fee Stream**](https://docs.bloxroute.com/solana/trader-api/api-endpoints/core-endpoints/priority-fee) to get real-time market data and determine the optimal fee.

### Intelligent Retries

Trader API automatically retries submitted transactions until they either land on chain or expire, so users **do not** need to repeatedly resubmit the same transaction to improve landing odds. Repeatedly sending the same transaction to the same region does not improve propagation and may increase the likelihood of triggering internal spam protection systems.

### Submission Endpoints

* [submit](https://docs.bloxroute.com/solana/trader-api/api-endpoints/transaction-submisson/submit)
* [submit-plain-text](https://docs.bloxroute.com/solana/trader-api/api-endpoints/transaction-submisson/submit-plain-text)
* [submit-snipe](https://docs.bloxroute.com/solana/trader-api/api-endpoints/transaction-submisson/submit-snipe)
* [submit-batch](https://docs.bloxroute.com/solana/trader-api/api-endpoints/transaction-submisson/submit-batch)

### Submission Modes

#### Staked

Trader API's **fastest** mode of propagation, using staked connections directly to the leader for ensuring the lowest latency and most stable path to landing on chain. Submit with `useStakedRPCs` to enable this mode of propagation.

{% hint style="info" %}
The `useStakedRPCs` flag cannot be used in combination with `frontRunningProtection` or `revertProtection`.
{% endhint %}

#### Front Running Protection

Our infrastructure scores current and upcoming slot leaders in real time, identifying validators with elevated risk of malicious ordering using internal and external analytics. When transactions are submitted with our `frontRunningProtection` flag enabled, they are withheld from propagation to these leaders.&#x20;

Use `submitProtection` to control the safe slot window Trader API requires before submitting protected transactions. Higher settings require a larger safe window in the upcoming leader schedule and can increase latency.

Available levels:

* `SP_LOW`: targets a 1-slot safety window
* `SP_MEDIUM`: targets a 3-slot safety window
* `SP_HIGH`: targets an 8-slot safety window

If omitted, `submitProtection` defaults to `SP_MEDIUM`.

{% hint style="info" %}
While submitting transactions with this flag does not guarantee the prevention of attacks, we advise users to set strict slippage tolerance limits within your transactions for greater protection.
{% endhint %}

#### Revert Protection

Submit transactions using our `revertProtection` flag to exclusively propagate your transaction through block engines to prevent failures on chain consuming priority fees.

{% hint style="info" %}
Using front running protection or revert protection **can often introduce latency** in landing due to targeting transactions for curated validators or validators who accept ingress through block engines. Use only when latency is not a factor.
{% endhint %}

### Backrun / OFA

Trader API can optionally submit transactions with backrun flow enabled through our order flow auction (OFA) path. When `allowBackRun=true` is set, Trader API may expose the transaction to participating searchers that compete to backrun it. If a backrun opportunity is found, a portion of that value can be shared with the user through the configured `revenueAddress`.

Use Backrun / OFA when:

* you want to monetize backrun opportunities on your order flow
* you are willing to trade some routing privacy for possible rebate or revenue share
* your strategy benefits from value capture in addition to raw execution

### Batch Submission

Trader API supports submitting up to **four** transactions within one singular request to reduce the overhead of repeated sequential calls when using our [submit-batch](https://docs.bloxroute.com/solana/trader-api/api-endpoints/transaction-submisson/submit-batch) endpoint. Use batched submission when sending a small group of related transactions together is more efficient than submitting each transaction individually.

### Sniping

Trader API supports a **token sniping** endpoint [submit-snipe](https://docs.bloxroute.com/solana/trader-api/api-endpoints/transaction-submisson/submit-snipe), designed to maximize your landing speed for a pair of transactions that compete with each other to land first.&#x20;

### Supported Protocols

Trader API supports transaction submission over multiple protocols, so you can choose the integration path that best fits your setup.

**HTTP**

* Recommended users: Simple request/response scripts for quick integration
* Stream support: **No**

**WebSocket**

* Recommended users: Persistent connections for always-on bots and stateful trading systems
* Stream support: **Yes**

**gRPC**

* Recommended users: Typed, high-throughput backend integrations using protobuf-generated clients
* Stream support: **Yes**

{% hint style="info" %}
Customers looking to interact with Trader API endpoints over gRPC can find our protobuf definitions in the `bloXroute-Labs/solana-trader-api-proto` Github repository [here](https://github.com/bloXroute-Labs/solana-trader-proto/tree/develop/proto).
{% endhint %}

**QUIC**

* Recommended users: Advanced, latency-sensitive transaction propagation for performance-oriented clients
* Stream support: **No**

➡️ **Next Steps**: [Submit a transaction](https://docs.bloxroute.com/solana/trader-api/api-endpoints/transaction-submisson/submit) or [submit a bundle of transactions ](https://docs.bloxroute.com/solana/trader-api/api-endpoints/transaction-submisson/submit-batch)
