> For the complete documentation index, see [llms.txt](https://docs.triton.one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.triton.one/solana/sending-transactions.md).

# Sending transactions

Send Solana transactions with sendTransaction, /sendtx or the Jet TPU client, with SWQoS, percentile priority fees, Shield MEV protection and trading APIs.

You build and sign a transaction, then submit it so a validator includes it in a block. Landing reliably under load comes down to a few things:

* **Direct delivery.** Sending to the current and upcoming leaders from Triton's own sending infrastructure, separate from the RPC nodes that serve your reads.
* **Stake-weighted quality of service (SWQoS).** Prioritizing your transactions for higher landing rates under congestion. On by default for mainnet sends at no extra cost, with nothing to request. Devnet sends are not staked.
* **Priority fees.** Attaching a fee that reflects the real market rate without overpaying, on any send path.
* **Protection.** Optionally restricting which validators can process your transaction, to avoid harmful MEV.

## Pick your send path

Every `sendTransaction` and `/sendtx` request to a Triton mainnet endpoint is handled by **Jet**, Triton's SWQoS-powered specialized sending engine: it tracks the leader schedule and forwards your transaction directly to the TPUs of the current and upcoming leaders.

You can submit through two managed routes depending on your use case, or self-host the Jet TPU client for full client-side control.

* [**`sendTransaction`**](/solana/rpc-methods/sending-transactions/sendtransaction.md) is the standard Solana JSON-RPC method. We route it through Jet and apply SWQoS on mainnet.
* [**`/sendtx`**](/solana/rpc-methods/sending-transactions/sendtx.md) is a direct HTTP submission endpoint that takes the same delivery path as `sendTransaction`. It takes the transaction as a raw, base58, or base64 body and skips the JSON-RPC envelope, so there is no JSON to build or parse and the payload is smaller. A `text/plain` body with no custom headers also skips the browser CORS preflight. It needs no RPC client library.
* [**Jet TPU client**](/solana/quickstart/sending-transactions/yellowstone-jet-tpu-client.md) is the open-source Rust crate [`yellowstone-jet-tpu-client`](https://crates.io/crates/yellowstone-jet-tpu-client), which you embed in your own application for full client-side control. It sends your transactions straight to validator TPUs over QUIC, with a callback that reports whether each transaction was sent, failed, or dropped, custom destinations and blocklists, and Yellowstone Shield support behind the `shield` feature flag. It needs an RPC endpoint and a Yellowstone gRPC endpoint.

|                                                   |        `sendTransaction`       |              `/sendtx`             |       Jet TPU client (self-hosted)      |
| ------------------------------------------------- | :----------------------------: | :--------------------------------: | :-------------------------------------: |
| **Use case**                                      |       broad compatibility      |       browsers, HFT backends       |           bots, custom routers          |
| **Interface**                                     |         Solana JSON-RPC        |              HTTP POST             |               Rust library              |
| **Ease of use**                                   |         any Solana SDK         | a single HTTP POST, no RPC library |          you operate the client         |
| **Client to run**                                 |              none              |                none                |                   yes                   |
| **Reaches the TPU via**                           |   your endpoint (server-side)  |     your endpoint (server-side)    |           your client (direct)          |
| **SWQoS by default on mainnet (no extra charge)** |                ✓               |                  ✓                 | ✗ (only if your own identity is staked) |
| **`skipPreflight` option**                        |                ✓               |     ✗ (always skips preflight)     |      ✗ (direct send, no preflight)      |
| **Shield policy**                                 | `forwardingPolicies` parameter | `Solana-ForwardingPolicies` header |          `shield` feature flag          |

{% hint style="info" %}
With `skipPreflight: false` (the default), Triton simulates the transaction before it forwards it. `/sendtx` always skips preflight.
{% endhint %}

## Priority fees and protection

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><i class="fa-arrow-trend-up">:arrow-trend-up:</i> <strong>Priority fees API</strong></td><td>Percentile-based fee estimates that price against the real market rate instead of the minimum. Triton's extension of the <code>getRecentPrioritizationFees</code> method.</td><td><a href="/solana/sending-transactions/priority-fees-api.md">Priority fees API</a></td></tr><tr><td><i class="fa-shield">:shield:</i> <strong>Shield Protection</strong></td><td>Attach an on-chain validator allowlist or blocklist so only validators you trust process your transaction.</td><td><a href="/solana/sending-transactions/shield-mev-protection.md">Shield Protection</a></td></tr></tbody></table>

## Trading APIs

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><i class="fa-route">:route:</i> <strong>Titan Swap API</strong></td><td>Real-time streaming quotes over WebSocket, liquidity meta-aggregation, and DART on-chain routing at the time of execution.</td><td><a href="/solana/sending-transactions/3rd-party-apis/titan-swap-api.md">Titan Swap API</a></td></tr><tr><td><i class="fa-box">:box:</i> <strong>Jito Bundle Simulation</strong></td><td>Simulate atomic bundles on Triton's Jito-enabled RPC.</td><td><a href="/solana/sending-transactions/3rd-party-apis/jito-bundles.md">Jito Bundle Simulation</a></td></tr></tbody></table>

## What's next

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><i class="fa-play">:play:</i> <strong>Quickstart</strong></td><td>Send a transaction with <code>/sendtx</code> and with <code>sendTransaction</code>.</td><td><a href="/solana/sending-transactions/quickstart.md">Sending transactions quickstart</a></td></tr><tr><td><i class="fa-list-check">:list-check:</i> <strong>Best practices</strong></td><td>Land your transactions fast and reliably.</td><td><a href="/solana/sending-transactions/best-practices.md">Sending transactions best practices</a></td></tr></tbody></table>

***

<i class="fa-life-ring">:life-ring:</i> Contact support by clicking the chat icon in your [customer dashboard](https://customers.triton.one)\ <i class="fa-briefcase">:briefcase:</i> Sales questions? [Contact us](https://triton.one/contact)\ <i class="fa-sparkles">:sparkles:</i> AI agent? Read [llms.txt](https://docs.triton.one/llms.txt)\ <i class="fa-rss">:rss:</i> Follow updates: [Blog](https://blog.triton.one) · [X](https://x.com/triton_one) · [YouTube](https://www.youtube.com/@triton_one_ltd) · [Telegram](https://t.me/tritonone) · [GitHub](https://github.com/rpcpool)
