> ## 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.

# Guide de démarrage rapide avec les événements analysés

> Analysez votre première transaction, récupérez l'historique des adresses analysées et feuilletez les résultats. Plus la référence REST pour les deux points de terminaison.

<Tip>
  Nouveau dans Événements analysés ? Lisez d'abord le [modèle mental](/docs/fr/parsed-streams#le-modèle-mental) des flux analysés — Événements analysés renvoie les mêmes instructions décodées sur REST et GraphQL.
</Tip>

## Démarrage rapide

<Steps>
  <Step title="Obtenez l'accès">
    Les événements analysés sont en version bêta ouverte, disponibles sur les forfaits payants. Obtenez votre clé API sur le [tableau de bord Helius](https://dashboard.helius.dev) et envoyez des requêtes à `https://mainnet.helius-rpc.com`.

    Authentifiez-vous avec la clé API de votre projet, passée en tant que paramètre de requête `api-key`.
  </Step>

  <Step title="Analyser une transaction">
    Passez les signatures dans le champ de corps `transactions` de `POST /v1/parsed-events/transactions` :

    <Tabs>
      <Tab title="JavaScript">
        ```javascript theme={"system"}
        const parseTransactions = async () => {
          const url = "https://mainnet.helius-rpc.com/v1/parsed-events/transactions?api-key=YOUR_API_KEY";

          const response = await fetch(url, {
            method: "POST",
            headers: {
              "Content-Type": "application/json",
            },
            body: JSON.stringify({
              transactions: [
                "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
              ],
              includeRawTransaction: false,
            }),
          });

          const data = await response.json();
          console.log(data);
        };

        parseTransactions();
        ```
      </Tab>

      <Tab title="cURL">
        ```bash theme={"system"}
        curl -X POST "https://mainnet.helius-rpc.com/v1/parsed-events/transactions?api-key=YOUR_API_KEY" \
          -H "content-type: application/json" \
          -d '{
            "transactions": [
              "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH"
            ],
            "includeRawTransaction": false
          }'
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Lire le résultat">
    La réponse contient un résultat par signature demandée, dans l'ordre d'entrée. Chaque résultat inclut `signature`, `parserStatus`, et soit `parsed` ou `parserError` :

    ```json [expandable] theme={"system"}
    [
      {
        "signature": "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
        "parserStatus": "OK",
        "parsed": {
          "slot": 433950192,
          "blockTime": 1784487060,
          "fee": 2005000,
          "feePayer": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
          "transactionStatus": "OK",
          "nativeTransfers": [
            {
              "fromUserAccount": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
              "toUserAccount": "teBPkZtsnaKDpGHTy1KUZeh1PbVtbrKXhzruYpRiUUs",
              "amount": 1500000000000
            }
          ],
          "tokenTransfers": [
            {
              "fromUserAccount": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
              "toUserAccount": "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE",
              "fromTokenAccount": "teBPkZtsnaKDpGHTy1KUZeh1PbVtbrKXhzruYpRiUUs",
              "toTokenAccount": "2oL6my4QDDCfpgJZX1bZV1NgbmuNptKdgcE8wJm6efgk",
              "rawTokenAmount": 1498500000000,
              "decimals": 9,
              "tokenStandard": "Fungible",
              "mint": "So11111111111111111111111111111111111111112"
            }
          ],
          "summary": {
            "type": "swap",
            "description": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52 swapped 1500 SOL for 64672839.26195 pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn via Jupiter",
            "parsedData": {
              "type": "swap",
              "protocol": "jupiter",
              "kind": "swap",
              "in_amount": "1500000000000",
              "actual_out_amount": "64672839261950",
              "input_mint": "So11111111111111111111111111111111111111112",
              "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn",
              "inner_swaps": [
                {
                  "amm_program_id": "",
                  "amm_program_name": null,
                  "input_amount": "470229300000",
                  "output_amount": "35579021038",
                  "input_mint": "So11111111111111111111111111111111111111112",
                  "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
                },
                {
                  "amm_program_id": "",
                  "amm_program_name": null,
                  "input_amount": "1028270700000",
                  "output_amount": "77798063361",
                  "input_mint": "So11111111111111111111111111111111111111112",
                  "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
                },
                {
                  "amm_program_id": "",
                  "amm_program_name": null,
                  "input_amount": "14625643887",
                  "output_amount": "8348494812168",
                  "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                  "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
                },
                {
                  "amm_program_id": "",
                  "amm_program_name": null,
                  "input_amount": "35566391375",
                  "output_amount": "20283004384731",
                  "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                  "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
                },
                {
                  "amm_program_id": "",
                  "amm_program_name": null,
                  "input_amount": "63185049137",
                  "output_amount": "36041340065051",
                  "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                  "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
                }
              ]
            }
          },
          "instructions": [
            {
              "instructionIndex": 5,
              "innerInstructionIndex": 2,
              "stackHeight": 3,
              "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
              "rawAccounts": [
                "2oL6my4QDDCfpgJZX1bZV1NgbmuNptKdgcE8wJm6efgk",
                "ATRsNGv2nDw7hSMfkUTBoVUDsFDwN7po7KbecyiGWNB4",
                "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE"
              ],
              "rawData": "3JvpRSxKFyKV",
              "summary": {
                "type": "transfer",
                "description": "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE transferred 470.2293 SOL from 7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE to 8FnX3xo2yYw3EUE6w3nQA4GfXGS9wpK6oj3veJpbFzLo",
                "parsedData": null
              },
              "programName": "token",
              "instructionName": "transfer",
              "decoded": {
                "args": {
                  "amount": "470229300000"
                },
                "accounts": [
                  {
                    "name": "source_account",
                    "pubkey": "2oL6my4QDDCfpgJZX1bZV1NgbmuNptKdgcE8wJm6efgk",
                    "isSigner": false,
                    "isWritable": true
                  },
                  {
                    "name": "destination_account",
                    "pubkey": "ATRsNGv2nDw7hSMfkUTBoVUDsFDwN7po7KbecyiGWNB4",
                    "isSigner": false,
                    "isWritable": true
                  },
                  {
                    "name": "owner_or_delegate",
                    "pubkey": "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE",
                    "isSigner": true,
                    "isWritable": false
                  }
                ]
              }
            },
            {
              "instructionIndex": 5,
              "innerInstructionIndex": 1,
              "stackHeight": 2,
              "programId": "BiSoNHVpsVZW2F7rx2eQ59yQwKxzU5NvBcmKshCSUypi",
              "rawAccounts": [
                "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE",
                "8FnX3xo2yYw3EUE6w3nQA4GfXGS9wpK6oj3veJpbFzLo",
                "ATRsNGv2nDw7hSMfkUTBoVUDsFDwN7po7KbecyiGWNB4",
                "2Y7HATmn9aJBcxCskE5V2U2epmjvkZmB51zTJBbhj4cU",
                "2oL6my4QDDCfpgJZX1bZV1NgbmuNptKdgcE8wJm6efgk",
                "EpdaePzdqRkMtdZJquVPUWgyoJ5YEEpYALki6dv9VBrt",
                "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                "Sysvar1nstructions1111111111111111111111111",
                "J1to1yufRnoWn81KYg1XkTWzmKjnYSnmE2VY8DGUJ9Qv"
              ],
              "rawData": "67t827t7UwAMHa6U18HnBBLj",
              "summary": null,
              "programName": "bison_fi",
              "instructionName": null,
              "decoded": null
            }
          ]
        }
      }
    ]
    ```

    L'exemple est réduit à deux instructions : un transfert de jeton décodé à l'intérieur de l'itinéraire et une instruction AMM dont le catalogue connaît le programme mais ne peut pas le décoder, ce qui laisse `instructionName` comme `null` tandis que `rawData` et `rawAccounts` restent disponibles. Voir [Réponse analysée](/docs/fr/parsed-events/parsed-response) pour chaque champ et un exemple de réponse complet.
  </Step>

  <Step title="Récupérer l'historique des adresses">
    `POST /v1/parsed-events/transaction-history` renvoie les mêmes résultats analysés que ci-dessus, pour chaque transaction qui a touché une adresse, du plus récent au plus ancien par défaut :

    <Tabs>
      <Tab title="JavaScript">
        ```javascript theme={"system"}
        const fetchTransactionHistory = async () => {
          const url = "https://mainnet.helius-rpc.com/v1/parsed-events/transaction-history?api-key=YOUR_API_KEY";

          const response = await fetch(url, {
            method: "POST",
            headers: {
              "Content-Type": "application/json",
            },
            body: JSON.stringify({
              address: "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
              limit: 100,
              sortOrder: "desc",
              commitment: "confirmed",
            }),
          });

          const page = await response.json();
          console.log(page.data);
          console.log(page.paginationToken);
        };

        fetchTransactionHistory();
        ```
      </Tab>

      <Tab title="cURL">
        ```bash theme={"system"}
        curl -X POST "https://mainnet.helius-rpc.com/v1/parsed-events/transaction-history?api-key=YOUR_API_KEY" \
          -H "content-type: application/json" \
          -d '{
              "address": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
              "limit": 100,
              "sortOrder": "desc",
              "commitment": "confirmed"
            }'
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Paginer">
    Les réponses d'historique enveloppent les résultats dans un objet page. Passez `paginationToken` dans la requête suivante pour continuer. Si `paginationToken` est manquant, le service a atteint la fin de la plage de pages disponible.
  </Step>
</Steps>

## Guides

<CardGroup cols={2}>
  <Card title="Récupérer les Mint de Pump.fun" icon="rocket" href="/docs/fr/parsed-events/guides/fetch-pumpfun-mints">
    Feuilletez chaque jeton qu'un portefeuille a déployé sur Pump.fun.
  </Card>

  <Card title="Requête avec GraphQL" icon="diagram-project" href="/docs/fr/parsed-events/guides/query-with-graphql">
    Sélectionnez exactement les champs analysés dont votre application a besoin.
  </Card>

  <Card title="Migrer depuis les transactions améliorées" icon="arrow-right" href="/docs/fr/parsed-events/guides/migrate-from-enhanced-transactions">
    Mappage des points de terminaison, paramètres, et réponses de l'API héritée.
  </Card>
</CardGroup>

## Référence REST

Les deux méthodes REST acceptent un corps JSON via `POST` sous `/v1/parsed-events/` à `https://mainnet.helius-rpc.com`, authentifié avec le paramètre de requête `api-key`. Les corps de requête rejettent les champs inconnus, donc les fautes de frappe échouent bruyamment au lieu d'être silencieusement ignorées. Les requêtes GraphQL vont à `POST /v1/parsed-events/graphql`.

### Analyser les transactions

`POST /v1/parsed-events/transactions` récupère les transactions complètes de Solana par signature, les décode avec le même décodeur d'instructions basé sur IDL qui alimente les [flux analysés](/docs/fr/parsed-streams) et renvoie un `TransactionResult` par signature demandée. La même méthode est disponible en GraphQL sous `transactions`.

L'ordre des réponses correspond à l'ordre d'entrée, y compris les signatures en double. Les transactions manquantes et les échecs de l'analyseur par élément sont retournés en tant que résultats de niveau élément `parserStatus: "ERROR"` :

```json theme={"system"}
[
  {
    "signature": "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
    "parserStatus": "ERROR",
    "parserError": {
      "code": "transaction_not_found",
      "message": "transaction was not found"
    }
  }
]
```

#### Corps de requête

<ParamField body="transactions" type="string[]" required>
  Signatures de transactions à analyser. La taille maximale du lot est de 100.
</ParamField>

<ParamField body="commitment" type="string" default="confirmed">
  Niveau d'engagement utilisé lors de la récupération des transactions.

  * `confirmed`
  * `finalized`
</ParamField>

<ParamField body="includeRawTransaction" type="boolean" default="false">
  Lorsque `true`, incluez la charge utile brute de la transaction Solana comme `rawTransaction` sur chaque résultat.
</ParamField>

#### Remarques

* `processed` l'engagement n'est pas pris en charge.
* `rawTransaction` est omis sauf si `includeRawTransaction` est `true`.
* Les échecs d'exécution des transactions peuvent encore être analysés. Dans ce cas, `parsed.transactionStatus` est `ERROR`, et l'erreur de transaction est exposée sur `parsed.error` lorsqu'elle est disponible.
* Les erreurs de validation au niveau des requêtes renvoient une réponse d'erreur au lieu de résultats au niveau des éléments.

### Historique des transactions analysées

`POST /v1/parsed-events/transaction-history` renvoie l'historique des transactions analysées pour une adresse. Il prend en charge la pagination, les limites de signature, les limites de slot, les limites de temps de bloc, l'ordre de tri et les transactions brutes facultatives. La même méthode est disponible en GraphQL sous `transactionsByAddress`.

Contrairement au point de terminaison d'adresse des [transactions améliorées](/docs/fr/enhanced-transactions/transaction-history) héritées, les paramètres de requête sont envoyés dans un corps JSON plutôt que par des paramètres de chaîne de requête.

#### Corps de requête

<ParamField body="address" type="string" required>
  Adresse dont l'historique des transactions doit être récupéré.
</ParamField>

<ParamField body="limit" type="number" default="100">
  Nombre de transactions à retourner. Doit être compris entre `1` et `100`.
</ParamField>

<ParamField body="beforeSignature" type="string">
  Retourner les transactions avant cette signature.
</ParamField>

<ParamField body="afterSignature" type="string">
  Retourner les transactions après cette signature.
</ParamField>

<ParamField body="paginationToken" type="string">
  Curseur retourné par la réponse précédente.
</ParamField>

<ParamField body="sortOrder" type="string" default="desc">
  Ordre de tri pour les transactions retournées.

  * `asc`
  * `desc`
</ParamField>

<ParamField body="commitment" type="string" default="confirmed">
  Niveau d'engagement utilisé pour la récupération de l'historique.

  * `confirmed`
  * `finalized`
</ParamField>

<ParamField body="includeRawTransaction" type="boolean" default="false">
  Lorsque `true`, incluez la charge utile brute de la transaction Solana comme `rawTransaction` sur chaque résultat.
</ParamField>

<ParamField body="slot" type="object">
  Limites de comparaison de slot. Chaque limite est facultative : `gt`, `gte`, `lt`, `lte`.
</ParamField>

<ParamField body="time" type="object">
  Limites de comparaison du temps de bloc en secondes Unix. Chaque limite est facultative : `gt`, `gte`, `lt`, `lte`.
</ParamField>

#### Pagination

Les réponses ont cette forme. Chaque élément `data` utilise le même format `TransactionResult` renvoyé par Analyser les transactions :

```json [expandable] theme={"system"}
{
  "data": [
    {
      "signature": "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
      "parserStatus": "OK",
      "parsed": {
        "slot": 433950192,
        "blockTime": 1784487060,
        "fee": 2005000,
        "feePayer": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
        "transactionStatus": "OK",
        "nativeTransfers": [],
        "tokenTransfers": [],
        "summary": {
          "type": "swap",
          "description": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52 swapped 1500 SOL for 64672839.26195 pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn via Jupiter",
          "parsedData": {
            "type": "swap",
            "protocol": "jupiter",
            "kind": "swap",
            "in_amount": "1500000000000",
            "actual_out_amount": "64672839261950",
            "input_mint": "So11111111111111111111111111111111111111112",
            "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn",
            "inner_swaps": [
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "470229300000",
                "output_amount": "35579021038",
                "input_mint": "So11111111111111111111111111111111111111112",
                "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              },
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "1028270700000",
                "output_amount": "77798063361",
                "input_mint": "So11111111111111111111111111111111111111112",
                "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              },
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "14625643887",
                "output_amount": "8348494812168",
                "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
              },
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "35566391375",
                "output_amount": "20283004384731",
                "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
              },
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "63185049137",
                "output_amount": "36041340065051",
                "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
              }
            ]
          }
        },
        "instructions": []
      }
    }
  ],
  "paginationToken": "433950192:0"
}
```

Passez `paginationToken` dans la requête suivante pour continuer. Si `paginationToken` est manquant, le service a atteint la fin de la plage de pages disponible.
