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

# logsSubscribe

> logsSubscribe diffuse en temps réel les journaux de transactions Solana via WebSocket — abonnez-vous à toutes les transactions ou filtrez par programme ou compte avec des mentions.

## Points de terminaison

Les websockets sont disponibles sur mainnet et devnet avec les URL suivantes :

* **Mainnet** `wss://mainnet.helius-rpc.com/?api-key=<api-key>`
* **Devnet** `wss://devnet.helius-rpc.com/?api-key=<api-key>`

<Note>Les websockets ont une minuterie d'inactivité de 10 minutes ; il est fortement recommandé d'implémenter des vérifications de santé et d'envoyer des pings chaque minute pour maintenir la connexion websocket active.</Note>

## Autorisations

<ParamField query="api-key" type="string" required>
  Votre clé API Helius. Vous pouvez en obtenir une gratuitement sur le [tableau de bord](https://dashboard.helius.dev/api-keys).
</ParamField>

## Corps

<ParamField body="params" type="array" required>
  <Expandable title="propriétés" defaultOpen>
    <ParamField body="filter" type="string | object" required>
      Critères de filtrage pour les journaux afin de recevoir les résultats par type de compte. Les types de filtres suivants sont actuellement pris en charge :

      * `all` - s'abonner à toutes les transactions excepté les transactions de vote simples
      * `allWithVotes` - s'abonner à toutes les transactions, y compris les transactions de vote simples
      * Un objet JSON avec le champ suivant :
        * `mentions: [ <string> ]` - tableau contenant une seule clé publique (sous forme de chaîne encodée en base-58) ; si présent, s'abonner uniquement aux transactions mentionnant cette adresse

      Remarque : Le champ `mentions` ne prend actuellement en charge qu'une seule chaîne de clé publique par appel de méthode. La liste d'adresses supplémentaires entraînera une erreur.
    </ParamField>

    <ParamField body="config" type="object">
      Objet de configuration contenant les champs suivants :

      <ParamField body="commitment" type="string">
        Le niveau d'engagement pour l'abonnement. Peut être `finalized`, `confirmed`, ou `processed`.
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

## Réponse

<ResponseField name="result" type="integer">
  ID d'abonnement (nécessaire pour se désabonner)
</ResponseField>

## Format de Notification

La notification sera un objet JSON RpcResponse avec une valeur égale à :

* `signature: <string>` - La signature de transaction encodée en base58.
* `err: <object|null>` - Erreur si la transaction a échoué, null si la transaction a réussi. Voir les définitions TransactionError.
* `logs: <array[string]>` - Tableau de messages de journal que les instructions de transaction ont produits lors de l'exécution.

<RequestExample>
  ```json Request theme={"system"}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "logsSubscribe",
    "params": [
      {
        "mentions": ["11111111111111111111111111111111"]
      },
      {
        "commitment": "finalized"
      }
    ]
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={"system"}
  {
    "jsonrpc": "2.0",
    "result": 24040,
    "id": 1
  }
  ```

  ```json Notification theme={"system"}
  {
    "jsonrpc": "2.0",
    "method": "logsNotification",
    "params": {
      "result": {
        "context": {
          "slot": 5208469
        },
        "value": {
          "signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
          "err": null,
          "logs": [
            "SBF program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri success"
          ]
        }
      },
      "subscription": 24040
    }
  }
  ```
</ResponseExample>
