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

# Comment Utiliser getBlockTime

> Découvrez les cas d'utilisation de getBlockTime, des exemples de code, des paramètres de requête, la structure de réponse et des conseils.

La méthode RPC [`getBlockTime`](https://www.helius.dev/docs/api-reference/rpc/http/getblocktime) fournit le temps de production estimé d'un bloc spécifié, identifié par son numéro de slot. Le temps est renvoyé sous forme de timestamp Unix (secondes depuis l'époque Unix).

Cette méthode est utile lorsque vous devez corréler la production de blocs avec le temps réel.

<Warning>
  **Évitez le Batching pour de meilleures performances**

  Le batching des méthodes archivées augmente considérablement la latence. Les lots de plus de 10 requêtes ne sont pas autorisés.
</Warning>

## Cas d'utilisation courants

* **Horodatage des événements :** Déterminez quand un bloc particulier a été produit pour horodater des événements on-chain.
* **Analyse des intervalles de production de blocs :** Calculez la différence de temps entre les blocs (bien que pour une analyse plus détaillée, d'autres méthodes puissent être combinées).
* **Corrélation des données off-chain :** Alignez les événements ou données off-chain avec l'activité on-chain en faisant correspondre les temps de production des blocs.

## Paramètres de requête

La méthode `getBlockTime` prend un seul paramètre :

1. **`slot`** (u64, requis) : Le numéro de slot du bloc pour lequel récupérer le temps de production estimé.

## Structure de réponse

Le champ `result` de la réponse JSON-RPC sera soit :

* **`timestamp`** (i64) : Le temps de production estimé en tant que timestamp Unix (secondes depuis l'époque Unix).
* **`null`** : Si le timestamp n'est pas disponible pour le bloc spécifié (par exemple, le bloc est très ancien et les données ont été élaguées, ou le bloc a été ignoré et n'a pas de timestamp associé).

## Exemples

### 1. Obtenez le temps estimé d'un bloc spécifique

Cet exemple récupère le temps de production estimé pour un slot spécifique. N'oubliez pas de remplacer `SLOT_NUMBER_TO_QUERY` par un slot réel, récent et confirmé sur le réseau que vous visez (par exemple, Mainnet Beta ou Devnet).

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace SLOT_NUMBER_TO_QUERY with a valid slot, e.g., a recent one from an explorer
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlockTime",
      "params": [
        SLOT_NUMBER_TO_QUERY 
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getSpecificBlockTime(slotToQuery) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blockTime = await connection.getBlockTime(slotToQuery);
      if (blockTime !== null) {
        console.log(`Estimated time for slot ${slotToQuery}: ${new Date(blockTime * 1000).toISOString()} (Unix: ${blockTime})`);
      } else {
        console.log(`Timestamp not available for slot ${slotToQuery}.`);
      }
    } catch (error) {
      console.error('Error fetching block time:', error);
    }
  }

  // Example usage: Replace with a recent, valid slot number from Mainnet Beta
  // You can find recent slots on Solana explorers like Solscan or SolanaFM
  const slotToQuery = 300000000; // Replace with an actual slot number
  getSpecificBlockTime(slotToQuery);
  ```
</CodeGroup>

## Conseils pour les développeurs

* **Disponibilité des timestamps :** Les timestamps peuvent ne pas être disponibles pour tous les blocs, en particulier ceux très anciens ou les slots qui ont été ignorés. Dans de tels cas, la méthode renvoie `null`.
* **Estimation :** Le temps est une *estimation*. Il est dérivé de la moyenne pondérée par le staking des timestamps de Vote des validateurs. Bien qu'il soit généralement précis, ce n'est pas un timestamp garanti, sécurisé cryptographiquement pour chaque bloc de la même manière qu'un hash de bloc.
* **Dépendance au nœud :** La disponibilité et la précision peuvent varier légèrement selon le nœud RPC interrogé, en particulier pour les blocs très récents (pas encore finalisés).

Ce guide explique comment utiliser `getBlockTime` pour récupérer le timestamp de production estimé pour un bloc donné sur le réseau Solana.
