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

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

O método RPC [`getSlot`](https://www.helius.dev/docs/api-reference/rpc/http/getslot) retorna o slot atual que o nó RPC considera ter atingido um nível de compromisso específico. Este é um método fundamental para entender o estado atual da blockchain conforme percebido pelo nó.

## Casos de Uso Comuns

* **Obtendo o Progresso Atual da Rede:** Determine o slot mais recente processado ou confirmado pelo nó.
* **Verificação de Sincronização do Nó:** Comparar o slot de diferentes nós pode dar uma indicação de seu status de sincronização.
* **Operações de Timestamping:** Usar o slot atual como ponto de referência para operações ou para entender a idade de determinados dados.
* **Entrada para Outras Chamadas RPC:** Alguns métodos RPC podem usar um número de slot como ponto de referência.

## Parâmetros de Solicitação

Este método aceita um objeto de configuração opcional como seu primeiro parâmetro:

1. **`options`** (`object`, opcional): Um objeto de configuração opcional com os seguintes campos:
   * **`commitment`** (`string`, opcional): Especifica o [nível de compromisso](https://www.helius.dev/blog/solana-commitment-levels) para a consulta. Os valores suportados são `finalized`, `confirmed` ou `processed`. Se omitido, o compromisso padrão do nó RPC é usado (geralmente `finalized`).
     * `processed`: O nó irá consultar seu slot mais recente. Note que este slot pode não ser confirmado pelo cluster ainda e pode ser potencialmente ignorado.
     * `confirmed`: O nó irá consultar o slot mais recente que foi votado por uma supermaioria do cluster.
     * `finalized`: O nó irá consultar o slot mais recente confirmado pela supermaioria do cluster como tendo atingido o bloqueio máximo (não pode ser revertido).
   * **`minContextSlot`** (`number`, opcional): O slot mínimo que a solicitação pode ser avaliada. Isso define o slot mínimo para o contexto do nó. Se o estado do nó for mais antigo que este slot, ele pode retornar um erro ou um número de slot que reflete seu estado atual (mais antigo) em relação a este mínimo.

## Estrutura da Resposta

O campo `result` da resposta JSON-RPC é um único `u64` (inteiro sem sinal de 64 bits) que representa o número do slot atual de acordo com o nível de compromisso especificado.

**Exemplo de Resposta:**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": 123456789,
  "id": 1
}
```

## Exemplos

### 1. Obter Slot Atual (Compromisso Padrão)

Este exemplo obtém o slot atual usando o nível de compromisso padrão do nó (geralmente `finalized`).

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlot"
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getCurrentSlot() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slot = await connection.getSlot();
      console.log('Current slot (default commitment):', slot);
    } catch (error) {
      console.error('Error fetching current slot:', error);
    }
  }

  getCurrentSlot();
  ```
</CodeGroup>

### 2. Obter Slot Atual com um Compromisso Específico

Este exemplo obtém o slot atual que atingiu o compromisso `confirmed`.

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlot",
      "params": [
        {
          "commitment": "confirmed"
        }
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getConfirmedSlot() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slot = await connection.getSlot('confirmed');
      console.log('Current slot (confirmed commitment):', slot);
      // Note: For @solana/web3.js v1.30.0 and later, you can pass commitment directly.
      // For older versions or more complex options, use an object:
      // const slot = await connection.getSlot({ commitment: 'confirmed' });
    } catch (error) {
      console.error('Error fetching confirmed slot:', error);
    }
  }

  getConfirmedSlot();
  ```
</CodeGroup>

## Dicas para Desenvolvedores

* **O Compromisso Importa:** O número do slot retornado depende fortemente do nível `commitment` especificado. Consulte [Níveis de Compromisso do Solana](https://www.helius.dev/blog/solana-commitment-levels) para informações detalhadas. `processed` será o slot mais alto (mais recente) que o nó conhece, enquanto `finalized` será um slot mais antigo confirmado por toda a rede. Escolha o nível de compromisso apropriado para a necessidade de finalização de dados do seu caso de uso.
* **Variabilidade do Nó:** Diferentes nós RPC podem retornar números de slot ligeiramente diferentes para o mesmo nível de compromisso devido a atrasos de propagação de rede ou seu próprio estado de processamento. Isso é especialmente verdadeiro para os níveis `processed` e `confirmed`.
* **`minContextSlot`:** Este parâmetro garante que o nó processando sua solicitação tenha alcançado pelo menos o `minContextSlot`. Se o nó estiver atrás desse slot, o comportamento pode variar (por exemplo, um erro ou o slot mais alto atual do nó que é menor que `minContextSlot`). Geralmente é usado em cenários avançados onde você precisa garantir que uma consulta seja feita em um estado suficientemente recente.

`getSlot` é um método simples, mas essencial, para interagir com a blockchain Solana e entender sua progressão atual.
