## Submit a Bundle

Submit a bundle of up to 5 fully-signed transactions for atomic execution. All transactions execute sequentially — if any fails, the entire bundle is rejected. Requires a tip to a [Jito tip account](/content/docs/sending-transactions/send-bundle#tip-accounts/index.html) in at least one transaction.

## Rate Limits

`sendBundle` is rate limited to **5 requests per second per project**. `getBundleStatuses` and `simulateBundle` use the general RPC rate limit.

Need higher rate limits? [Contact our sales team](/content/contact/index.html).

## Endpoint

```
POST https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY
```

## Request

| Parameter | Type               | Requirement | Description |
|-----------|--------------------|-------------|-------------|
| jsonrpc   | string             | required    | `"2.0"`   |
| id        | number             | required    | Request identifier. |
| method    | string             | required    | `"sendBundle"` |
| params[0] | array[string]      | required    | Array of up to 5 fully-signed transactions, base64 encoded. |
| params[1].encoding | string  | optional    | `"base64"` (recommended) or `"base58"`. Default: `"base58"`. |

## Query Parameters

| Parameter   | Type     | Default | Description |
|-------------|----------|---------|-------------|
| mev-protect | boolean  | false   | When true, routes your bundle away from validators statistically linked to sandwich attacks. Opt-in per request. See [MEV Protect](/content/docs/sending-transactions/mev-protect/index.html). |

## Headers

| Parameter      | Type   | Requirement | Description |
|----------------|--------|-------------|-------------|
| jito-region    | string | optional     | Route to a specific Jito Block Engine region. Values: `ams`, `dub`, `fra`, `lon`, `nyc`, `slc`, `sgp`, `tyo`, `mainnet`. If omitted, routes to the global endpoint (geo-routed to nearest). |

## Request Example

```
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "jito-region: nyc" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "sendBundle",
    "params": [
      [
        "BASE64_SIGNED_TX_1",
        "BASE64_SIGNED_TX_2"
      ],
      {
        "encoding": "base64"
      }
    ]
  }'
```

## Response

| Parameter | Type   | Description |
|-----------|--------|-------------|
| result    | string | Bundle ID (SHA-256 hash of the transaction signatures). Use with `getBundleStatuses` to track landing. |

```
{
  "jsonrpc": "2.0",
  "result": "892b79ed49138bfb3aa5441f0df6e06ef34f9ee8f3976c15b323605bae0cf51d",
  "id": 1
}
```
