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

# Authentification

> Apprenez à authentifier vos requêtes API Helius de manière sécurisée et efficace

L'API Helius utilise des clés API pour authentifier les requêtes. Chaque requête API doit inclure votre clé API pour vérifier votre identité et vos autorisations.

<Warning>
  Votre clé API est une information sensible qui donne accès à votre compte Helius. Ne l'exposez jamais dans le code côté client, les dépôts publics ou les zones accessibles par le navigateur.
</Warning>

## Pour Commencer

### 1. Créez Votre Clé API

<Steps>
  <Step title="Inscrivez-vous ou connectez-vous">
    Créez un compte sur le [Tableau de bord Helius](https://dashboard.helius.dev) ou connectez-vous à votre compte existant.
  </Step>

  <Step title="Accédez aux Clés API">
    Allez dans la section **Clés API** dans la barre latérale de votre tableau de bord.
  </Step>

  <Step title="Générez une nouvelle clé">
    Cliquez sur **Créer une nouvelle clé API** et donnez un nom descriptif à votre projet (par exemple, "Application de Production", "Environnement de Développement").
  </Step>

  <Step title="Copiez et sécurisez votre clé">
    Copiez immédiatement votre clé API et stockez-la en toute sécurité. Vous ne pourrez plus la voir une fois que vous aurez navigué ailleurs.
  </Step>
</Steps>

### 2. Utilisation de Votre Clé API

Incluez votre clé API comme paramètre de requête dans toutes les requêtes :

<CodeGroup>
  ```bash cURL 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":"getAccountInfo","params":["ACCOUNT_ADDRESS"]}'
  ```

  ```javascript JavaScript theme={"system"}
  const url = `https://mainnet.helius-rpc.com/?api-key=${YOUR_API_KEY}`;
  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: 1,
      method: 'getAccountInfo',
      params: ['ACCOUNT_ADDRESS']
    })
  });
  ```

  ```python Python theme={"system"}
  import requests

  url = f"https://mainnet.helius-rpc.com/?api-key={YOUR_API_KEY}"
  payload = {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getAccountInfo",
      "params": ["ACCOUNT_ADDRESS"]
  }
  response = requests.post(url, json=payload)
  ```
</CodeGroup>

## Pour Commencer (Pour les Agents)

Les agents peuvent s'inscrire programmatique pour des comptes Helius, créer des projets et générer des clés API en utilisant le [Helius CLI](/docs/fr/agents/cli).

Pour des instructions complètes, lisez : [https://dashboard.helius.dev/agents.md](https://dashboard.helius.dev/agents.md)

### Installez le Helius CLI

<CodeGroup>
  ```bash theme={"system"}
  npm install -g helius-cli
  ```
</CodeGroup>

### Générez une Paire de Clés

<CodeGroup>
  ```bash theme={"system"}
  helius keygen
  ```
</CodeGroup>

### Financez le Portefeuille Généré (Autopay uniquement)

Passez cette étape si vous payez via le lien de paiement hébergé (le mode d'inscription par défaut, finalisé avec `helius signup --resume`). Autopay (`--pay`) paie à partir de la paire de clés locale : envoyez 1 USDC et 0.001 SOL à l'adresse de portefeuille fournie à l'étape 2.

### Inscription et Obtention de la Clé API

<CodeGroup>
  ```bash theme={"system"}
  # Default: prints a hosted payment link — pay with any wallet in the browser
  helius signup --email you@example.com --first-name Jane --last-name Doe --json

  # After paying via the link, finalize the account
  helius signup --resume --json

  # Or autopay from the funded local keypair
  helius signup --plan agent --pay --email you@example.com --first-name Jane --last-name Doe --json
  ```
</CodeGroup>

## Meilleures Pratiques de Sécurité

<CardGroup cols={2}>
  <Card title="Variables d'Environnement" icon="shield-check">
    Stockez votre clé API dans des variables d'environnement, pas dans votre code source.

    ```bash theme={"system"}
    export HELIUS_API_KEY="YOUR_API_KEY"
    ```
  </Card>

  <Card title="Restrictions IP" icon="globe">
    Configurez les restrictions IP pour vos clés API dans le tableau de bord pour limiter l'accès à des adresses IP ou plages spécifiques.
  </Card>

  <Card title="Clés Séparées" icon="key">
    Utilisez différentes clés API pour les environnements de développement, de mise en scène et de production pour isoler l'utilisation et améliorer la sécurité.
  </Card>

  <Card title="Surveiller l'Utilisation" icon="chart-line">
    Vérifiez régulièrement votre utilisation de l'API dans le tableau de bord pour détecter des modèles inhabituels ou des problèmes de sécurité potentiels.
  </Card>
</CardGroup>

### Gestion des Secrets

<Tabs>
  <Tab title="Node.js">
    ```javascript theme={"system"}
    // Use environment variables
    const apiKey = process.env.HELIUS_API_KEY;

    // Or use a secrets manager
    const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
    const client = new SecretManagerServiceClient();

    async function getApiKey() {
      const [version] = await client.accessSecretVersion({
        name: 'projects/PROJECT_ID/secrets/helius-api-key/versions/latest',
      });
      return version.payload.data.toString();
    }
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={"system"}
    import os
    from dotenv import load_dotenv

    # Load environment variables
    load_dotenv()
    api_key = os.getenv('HELIUS_API_KEY')

    # Or use AWS Secrets Manager
    import boto3

    def get_secret():
        client = boto3.client('secretsmanager')
        response = client.get_secret_value(SecretId='helius-api-key')
        return response['SecretString']
    ```
  </Tab>

  <Tab title="Docker">
    ```dockerfile theme={"system"}
    # In your Dockerfile
    ENV HELIUS_API_KEY=""

    # Or use Docker secrets
    RUN --mount=type=secret,id=helius_key \
        cat /run/secrets/helius_key > /app/api_key.txt
    ```
  </Tab>
</Tabs>

## Limites de Taux et Utilisation

<Note>
  Les limites de taux varient selon le plan d'abonnement. Surveillez votre utilisation dans le [Tableau de bord Helius](https://dashboard.helius.dev) pour vous assurer de rester dans les limites allouées.
</Note>

### Comprendre les Limites de Taux

* **Requêtes par seconde** : Basé sur votre niveau d'abonnement
* **Quota mensuel de requêtes** : Total des requêtes autorisées par cycle de facturation
* **Tolérance de sursaut** : Pics à court terme au-dessus de votre limite de taux de base

### Gestion des Limites de Taux

<CodeGroup>
  ```javascript JavaScript theme={"system"}
  async function makeRequest(url, data) {
    try {
      const response = await fetch(url, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(data)
      });
      
      if (response.status === 429) {
        const retryAfter = response.headers.get('Retry-After');
        console.log(`Rate limited. Retry after ${retryAfter} seconds`);
        await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
        return makeRequest(url, data); // Retry
      }
      
      return response.json();
    } catch (error) {
      console.error('Request failed:', error);
      throw error;
    }
  }
  ```

  ```python Python theme={"system"}
  import time
  import requests

  def make_request(url, data):
      try:
          response = requests.post(url, json=data)
          
          if response.status_code == 429:
              retry_after = int(response.headers.get('Retry-After', 60))
              print(f"Rate limited. Waiting {retry_after} seconds...")
              time.sleep(retry_after)
              return make_request(url, data)  # Retry
          
          response.raise_for_status()
          return response.json()
      except requests.exceptions.RequestException as e:
          print(f"Request failed: {e}")
          raise
  ```
</CodeGroup>

## Dépannage

<AccordionGroup>
  <Accordion title="Erreur de Clé API Invalide">
    **Symptômes** : 401 Non autorisé ou erreurs "Clé API invalide"

    **Solutions** :

    * Vérifiez que votre clé API est correcte et n'a pas été régénérée
    * Assurez-vous d'inclure la clé API en tant que paramètre de requête : `?api-key=YOUR_KEY`
    * Assurez-vous qu'il n'y a pas d'espaces ou de caractères supplémentaires dans votre clé API
    * Confirmez que votre clé API n'a pas expiré ou n'a pas été révoquée
  </Accordion>

  <Accordion title="Limite de Taux Dépassée">
    **Symptômes** : 429 Erreurs Trop de Requêtes

    **Solutions** :

    * Vérifiez votre utilisation actuelle dans le tableau de bord
    * Implémentez un backoff exponentiel dans votre logique de réessai
    * Envisagez de mettre à niveau votre plan pour des limites plus élevées
    * Optimisez vos requêtes pour réduire les appels inutiles
  </Accordion>

  <Accordion title="Accès Interdit">
    **Symptômes** : 403 Erreurs Interdites

    **Solutions** :

    * Vérifiez que les restrictions IP ne bloquent pas vos requêtes
    * Vérifiez que votre abonnement inclut l'accès au point de terminaison
    * Assurez-vous que votre clé API a les autorisations nécessaires
  </Accordion>
</AccordionGroup>

## Étapes Suivantes

<CardGroup cols={2}>
  <Card title="Guide de Démarrage Rapide" icon="rocket" href="/docs/fr/quickstart">
    Commencez à effectuer vos premiers appels API avec Helius
  </Card>

  <Card title="Référence API" icon="book" href="/docs/fr/api-reference">
    Explorez tous les points de terminaison et méthodes disponibles
  </Card>

  <Card title="Limites de Taux" icon="credit-card" href="/docs/fr/billing/rate-limits">
    Comprenez les limites de taux et les options de mise à niveau
  </Card>

  <Card title="Tableau de Bord" icon="chart-line" href="https://dashboard.helius.dev">
    Surveillez votre utilisation de l'API et gérez les clés
  </Card>
</CardGroup>

## Support

Besoin d'aide avec l'authentification ou des questions sur les clés API ?

<CardGroup cols={2}>
  <Card title="Communauté Discord" icon="discord" href="https://discord.com/invite/6GXdee3gBj">
    Rejoignez notre Discord pour obtenir de l'aide en temps réel et le support de la communauté
  </Card>

  <Card title="Support par Email" icon="envelope" href="mailto:support@helius.xyz">
    Contactez directement notre équipe de support
  </Card>
</CardGroup>
