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

# Como Usar getBlockTime

> Aprenda sobre casos de uso do getBlockTime, exemplos de código, parâmetros de requisição, estrutura de resposta e dicas.

O método RPC [`getBlockTime`](https://www.helius.dev/docs/api-reference/rpc/http/getblocktime) fornece a estimativa de tempo de produção de um bloco especificado, identificado por seu número de slot. O tempo é retornado como um timestamp Unix (segundos desde a época Unix).

Este método é útil quando você precisa correlacionar a produção de blocos com o tempo do mundo real.

<Warning>
  **Evite Agrupamento para Melhor Desempenho**

  Agrupar métodos de arquivamento aumenta significativamente a latência. Grupos com mais de 10 requisições não são permitidos.
</Warning>

## Casos de Uso Comuns

* **Marcação Temporal de Eventos:** Determine quando um bloco específico foi produzido para marcar eventos on-chain.
* **Análise de Intervalos de Produção de Blocos:** Calcule a diferença de tempo entre blocos (embora para análises mais detalhadas, outros métodos possam ser combinados).
* **Correlacionando Dados Off-Chain:** Alinhe eventos ou dados off-chain com a atividade on-chain, combinando os tempos de produção de blocos.

## Parâmetros de Requisição

O método `getBlockTime` leva um único parâmetro:

1. **`slot`** (u64, obrigatório): O número de slot do bloco para o qual se deseja obter a estimativa do tempo de produção.

## Estrutura de Resposta

O campo `result` da resposta JSON-RPC será:

* **`timestamp`** (i64): O tempo estimado de produção como um timestamp Unix (segundos desde a época Unix).
* **`null`**: Se o timestamp não estiver disponível para o bloco especificado (por exemplo, o bloco é muito antigo e os dados foram eliminados, ou o bloco foi pulado e não tem timestamp associado).

## Exemplos

### 1. Obter o Tempo Estimado de um Bloco Específico

Este exemplo busca o tempo estimado de produção para um slot específico. Lembre-se de substituir `SLOT_NUMBER_TO_QUERY` por um slot real, recente e confirmado na rede que você está visando (por exemplo, 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>

## Dicas para Desenvolvedores

* **Disponibilidade de Timestamps:** Timestamps podem não estar disponíveis para todos os blocos, especialmente os muito antigos ou slots que foram pulados. Nesses casos, o método retorna `null`.
* **Estimativa:** O tempo é uma *estimativa*. É derivado da média ponderada por participação dos timestamps de Votação de validadores. Embora geralmente preciso, não é um timestamp garantido e criptograficamente seguro para cada bloco individual da mesma forma que um hash de bloco é.
* **Dependência de Nó:** A disponibilidade e precisão podem variar ligeiramente dependendo do nó RPC consultado, especialmente para blocos muito recentes (ainda não finalizados).

Este guia explica como usar `getBlockTime` para recuperar o timestamp estimado de produção para qualquer bloco dado na rede Solana.
