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

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

O método RPC [`getSlotLeader`](https://www.helius.dev/docs/api-reference/rpc/http/getslotleader) retorna a chave pública do validador que é o líder atual para a produção de blocos, com base na visão do nó em um nível de compromisso especificado. O líder é responsável por produzir blocos para o slot atual.

## Casos de Uso Comuns

* **Identificação do Produtor de Blocos Atual:** Descubra qual validador está atualmente programado para produzir blocos.
* **Monitoramento da Rede:** Observe a rotação dos líderes de slots.
* **Depuração de Problemas de Transação:** Em alguns cenários avançados, saber o líder de slot atual pode ser relevante se as transações estiverem sendo enviadas diretamente para os líderes (embora não seja uma prática comum no lado do cliente).

## 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`). O líder de slot é determinado com base no slot que corresponde a este nível de compromisso.
   * **`minContextSlot`** (`number`, opcional): O slot mínimo que a solicitação pode ser avaliada. Este define o slot mínimo para o contexto do nó.

## Estrutura de Resposta

O campo `result` da resposta JSON-RPC é uma única string codificada em base-58 representando a chave pública (identidade) do atual líder de slot.

**Exemplo de Resposta:**

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

## Exemplos

### 1. Obter Líder de Slot Atual (Compromisso Padrão)

Este exemplo busca o líder de 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": "getSlotLeader"
    }'
  ```

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

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

  getCurrentSlotLeader();
  ```
</CodeGroup>

### 2. Obter Líder de Slot Atual com Compromisso `confirmed`

Este exemplo busca o líder de slot para o slot mais recente 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": "getSlotLeader",
      "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 getConfirmedSlotLeader() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slotLeader = await connection.getSlotLeader('confirmed');
      console.log('Current slot leader (confirmed commitment):', slotLeader);
      // 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 slotLeader = await connection.getSlotLeader({ commitment: 'confirmed' });
    } catch (error) {
      console.error('Error fetching confirmed slot leader:', error);
    }
  }

  getConfirmedSlotLeader();
  ```
</CodeGroup>

## Dicas para Desenvolvedores

* **Natureza Dinâmica:** Os líderes de slots mudam com frequência (a cada poucos slots, tipicamente 4). O resultado desta chamada é uma fotografia no tempo com base na visão atual do nó e no compromisso escolhido.
* **Nível de Compromisso:** O nível de compromisso afeta qual slot é considerado "atual" para determinar o líder. Usar `processed` lhe dará o líder do slot mais recente que o nó tem conhecimento, o que pode mudar rapidamente e pode não estar ainda confirmado pela rede mais ampla.
* **Agenda de Líderes:** A sequência de líderes de slots é determinada por um cronograma de líderes, que é calculado no início de cada época. Nosso guia sobre [Slots, Blocos e Épocas](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) fornece mais detalhes sobre este processo. Para uma visão mais abrangente dos líderes futuros, use `getLeaderSchedule`.
* **Perspectiva do Nó:** O líder de slot retornado é baseado nas informações disponíveis para o nó RPC específico que você está consultando. Diferentes nós podem ter visões ligeiramente diferentes devido à latência da rede.

`getSlotLeader` fornece uma maneira rápida de identificar o validador atualmente responsável por produzir blocos. Para uma visão mais ampla da rotação de líderes, considere `getLeaderSchedule`.

## Métodos Relacionados

<CardGroup cols={2}>
  <Card title="getLeaderSchedule" href="/docs/pt-BR/api-reference/rpc/http/getleaderschedule">
    Obter a agenda completa de líderes para uma época
  </Card>

  <Card title="getSlotLeaders" href="/docs/pt-BR/api-reference/rpc/http/getslotleaders">
    Obter líderes para uma gama de slots futuros
  </Card>
</CardGroup>
