> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bundles via Helius

> Envoyez des bundles basiques via votre point de terminaison RPC Helius. Exécution atomique, tout ou rien, de jusqu'à 5 transactions, transférées directement à Jito.

<Tip>
  Ceci est le chemin de bundle **basique** — un proxy Jito direct, facturé par envoi, idéal
  lorsque vous avez besoin d'une exécution atomique sans exigence de latence. Si vous êtes un
  trader qui a besoin de faible latence et du tampon de priorité, utilisez plutôt les [bundles Sender Max](/docs/fr/sending-transactions/sender-max#paquets).
</Tip>

Les bundles basiques vous offrent une exécution atomique, tout ou rien, de jusqu'à 5 transactions, transférées directement à Jito. Chaque soumission `sendBundle` est facturée **1 crédit** de votre plan.

## Méthodes prises en charge

| Méthode          | Description                      | Limite de taux              |
| ---------------- | -------------------------------- | --------------------------- |
| `sendBundle`     | Soumettre un bundle              | 5 RPS par projet            |
| `simulateBundle` | Simuler un bundle sans soumettre | Limite générale du taux RPC |

<Tip>
  Besoin de limites de taux plus élevées ? [Contactez notre équipe commerciale](https://www.helius.dev/contact).
</Tip>

## sendBundle

Soumet une liste de transactions signées en tant que bundle atomique. Si le bundle est accepté, renvoie un `bundle_id` (SHA-256 du hachage des signatures de transaction). Cela ne garantit **pas** que le bundle sera intégré à la chaîne. Vérifiez la confirmation de la transaction sur la chaîne pour vérifier.

Un tip est requis. Au moins une transaction doit transférer SOL à un [compte de tip Helius](#comptes-de-tip). Si le tip est trop bas, le bundle peut ne pas être sélectionné pour inclusion.

### Requête

| Paramètre            | Type            | Description                                                                 |
| -------------------- | --------------- | --------------------------------------------------------------------------- |
| `params[0]`          | `array[string]` | **Requis.** Jusqu'à 5 transactions entièrement signées, encodées en base64. |
| `params[1].encoding` | `string`        | Optionnel. `base64` (recommandé) ou `base58`. Par défaut : `base58`.        |

### Exemple

```bash theme={"system"}
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "sendBundle",
    "params": [
      [
        "AT2AqtlokikUWgGNnSX5xrmdvBjSaiIPxvFz6zc5Abn5Z0CPFW5GO+Y3rXceLnqLgQFnGw0yTk3NtJdFNsbrwwQBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAwOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
        "AS6fOZuGDsmyYdd+RC0fiFUgNe1BYTOYT+1hkRXHAeroC8R60h3g34EPF5Ys8sGzVBMP9MDSTVgy1/SSTqpCtA4BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAxOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA=="
      ],
      {
        "encoding": "base64"
      }
    ]
  }'
```

### Réponse

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": "892b79ed49138bfb3aa5441f0df6e06ef34f9ee8f3976c15b323605bae0cf51d",
  "id": 1
}
```

Le `result` est l'ID du bundle — utilisez-le avec `getBundleStatuses` pour suivre l'atterrissage.

## getBundleStatuses

Renvoie le statut des bundles soumis. Si un bundle n'a pas atterri ou n'est pas trouvé, il renvoie `null`.

### Requête

| Paramètre   | Type            | Description                          |
| ----------- | --------------- | ------------------------------------ |
| `params[0]` | `array[string]` | **Requis.** Jusqu'à 5 IDs de bundle. |

### Exemple

```bash theme={"system"}
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBundleStatuses",
    "params": [
      [
        "892b79ed49138bfb3aa5441f0df6e06ef34f9ee8f3976c15b323605bae0cf51d"
      ]
    ]
  }'
```

### Réponse

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": {
    "context": {
      "slot": 242806119
    },
    "value": [
      {
        "bundle_id": "892b79ed49138bfb3aa5441f0df6e06ef34f9ee8f3976c15b323605bae0cf51d",
        "transactions": [
          "3bC2M9fiACSjkTXZDgeNAuQ4ScTsdKGwR42ytFdhUvikqTmBheUxfsR1fDVsM5ADCMMspuwGkdm1uKbU246x5aE3",
          "8t9hKYEYNbLvNqiSzP96S13XF1C2f1ro271Kdf7bkZ6EpjPLuDff1ywRy4gfaGSTubsM2FeYGDoT64ZwPm1cQUt"
        ],
        "slot": 242804011,
        "confirmation_status": "finalized",
        "err": {
          "Ok": null
        }
      }
    ]
  },
  "id": 1
}
```

Renvoie `null` dans le tableau `value` pour les bundles non trouvés.

## Routage régional

Par défaut, Helius dirige votre bundle vers le point de terminaison global de Jito (`mainnet.block-engine.jito.wtf`), qui est géo-routé automatiquement vers le Bloc Engine le plus proche.

Pour cibler une région spécifique, définissez l'en-tête HTTP `jito-region` :

| Valeur de l'en-tête | Région du Bloc Engine |
| ------------------- | --------------------- |
| `ams`               | Amsterdam             |
| `dub`               | Dublin                |
| `fra`               | Francfort             |
| `lon`               | Londres               |
| `nyc`               | New York              |
| `slc`               | Salt Lake City        |
| `sgp`               | Singapour             |
| `tyo`               | Tokyo                 |
| `mainnet`           | Global (géo-routé)    |

### Exemple avec région

```bash theme={"system"}
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": [
      [
        "AT2AqtlokikUWgGNnSX5xrmdvBjSaiIPxvFz6zc5Abn5Z0CPFW5GO+Y3rXceLnqLgQFnGw0yTk3NtJdFNsbrwwQBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAwOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
        "AS6fOZuGDsmyYdd+RC0fiFUgNe1BYTOYT+1hkRXHAeroC8R60h3g34EPF5Ys8sGzVBMP9MDSTVgy1/SSTqpCtA4BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAxOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA=="
      ],
      {
        "encoding": "base64"
      }
    ]
  }'
```

## Comptes de Tip

Au moins une transaction dans votre bundle doit inclure un transfert de SOL vers l'un de ces comptes de tip. Choisissez-en un au hasard pour réduire la contention.

```text theme={"system"}
4ACfpUFoaSD9bfPdeu6DBt89gB6ENTeHBXCAi87NhDEE
D2L6yPZ2FmmmTKPgzaMKdhu6EWZcTpLy1Vhx8uvZe7NZ
9bnz4RShgq1hAnLnZbP8kbgBg1kEmcJBYQq3gQbmnSta
5VY91ws6B2hMmBFRsXkoAAdsPHBJwRfBht4DXox3xkwn
2nyhqdwKcJZR2vcqCyrYsaPVdAnFoJjiksCXJ7hfEYgD
2q5pghRs6arqVjRvT5gfgWfWcHWmw1ZuCzphgd5KfWGJ
wyvPkWjVZz1M8fHQnMMCDTQDbkManefNNhweYk5WkcF
3KCKozbAaF75qEU33jtzozcJ29yJuaLJTy2jFdzUY8bT
4vieeGHPYPG2MmyPRcYjdiDmmhN3ww7hsFNap8pVN3Ey
4TQLFNWK8AovT1gFvda5jfw2oJeRMKEmw7aH6MGBJ3or
```

Le tip minimum est de 5 000 lamports.

## Exigences des bundles

* **Max 5 transactions** par bundle
* Toutes les transactions doivent être **entièrement signées**
* Utiliser l'encodage **base64** (recommandé par rapport au base58 pour les performances)
* Au moins une transaction doit inclure un **tip**
* Les transactions s'exécutent **séquentiellement** — tx2 peut dépendre des changements d'état de tx1

## simulateBundle (Optionnel)

Vous pouvez optionnellement simuler votre bundle avant de le soumettre pour vérifier les erreurs :

```bash theme={"system"}
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "simulateBundle",
    "params": [
      {
        "encodedTransactions": [
          "AT2AqtlokikUWgGNnSX5xrmdvBjSaiIPxvFz6zc5Abn5Z0CPFW5GO+Y3rXceLnqLgQFnGw0yTk3NtJdFNsbrwwQBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAwOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
          "AS6fOZuGDsmyYdd+RC0fiFUgNe1BYTOYT+1hkRXHAeroC8R60h3g34EPF5Ys8sGzVBMP9MDSTVgy1/SSTqpCtA4BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAxOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA=="
        ]
      }
    ]
  }'
```

## Protégez-vous contre les attaques sandwich

Pour diriger votre bundle loin des validateurs statistiquement liés aux attaques sandwich, ajoutez le paramètre de requête `mev-protect=true` à votre URL RPC — aucun changement à votre bundle :

```
https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY&mev-protect=true
```

## Voir aussi

<CardGroup cols={2}>
  <Card title="MEV Protect" icon="shield-halved" href="/docs/fr/sending-transactions/mev-protect">
    Détournez autour des validateurs statistiquement liés aux attaques sandwich.
  </Card>

  <Card title="Ristournes de transaction" icon="coins" href="/docs/fr/sending-transactions/backrun-rebates">
    Inscrivez-vous à des appels `sendTransaction` uniques pour obtenir une part du MEV que vos transactions créent, payée en SOL.
  </Card>
</CardGroup>
