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

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

O método RPC [`getSlotLeaders`](https://www.helius.dev/docs/api-reference/rpc/http/getslotleaders) permite que você recupere uma lista de chaves públicas dos validadores programados para serem líderes em um intervalo específico de slots. Isso pode ser útil para entender a sequência futura de produtores de blocos.

## Casos de Uso Comuns

* **Previsão de Produtores de Blocos a Curto Prazo:** Identifique quais validadores devem produzir blocos no futuro próximo para um intervalo limitado de slots.
* **Análise da Distribuição de Líderes:** Observe a sequência de líderes para um segmento de uma época.
* **Ferramentas de Análise de Rede:** Ferramentas que monitoram ou analisam o comportamento da rede podem usar isso para entender padrões de liderança.

## Parâmetros de Solicitação

1. **`startSlot`** (`u64`): (Obrigatório) O primeiro slot (inclusivo) para buscar a programação de líderes.
2. **`limit`** (`u64`): (Obrigatório) O número de slots consecutivos para recuperar os líderes. O limite deve ser entre 1 e 5.000.

## Estrutura da Resposta

O campo `result` da resposta JSON-RPC é um array de strings codificadas em base-58. Cada string é a chave pública (identidade) de um validador. A ordem das chaves públicas no array corresponde ao líder de cada slot no intervalo solicitado, começando de `startSlot`.

**Exemplo de Resposta (para um limite de 3 slots):**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": [
    "ValidatorPubkey1XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "ValidatorPubkey2XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "ValidatorPubkey3XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  ],
  "id": 1
}
```

## Exemplos

### 1. Obter Líderes de Slot para um Intervalo Específico

Este exemplo busca os líderes para 5 slots, começando de um slot especificado.

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  # Replace STARTING_SLOT with a recent or future slot number
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlotLeaders",
      "params": [
        180000000, 
        5          
      ]
    }'
  ```

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

  async function getUpcomingSlotLeaders() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    const startSlot = 180000000; // Replace with a recent or future slot number
    const limit = 5;

    try {
      const leaders = await connection.getSlotLeaders(startSlot, limit);
      console.log(`Slot leaders starting from slot ${startSlot} (limit ${limit}):`);
      leaders.forEach((leader, index) => {
        console.log(`  Slot ${startSlot + index}: ${leader}`);
      });
    } catch (error) {
      console.error('Error fetching slot leaders:', error);
    }
  }

  getUpcomingSlotLeaders();
  ```
</CodeGroup>

## Dicas para Desenvolvedores

* **Limite:** O parâmetro `limit` especifica quantos líderes de slots consecutivos retornar, até um máximo de 5.000. Isso significa que você pode prever um número substancial de slots dentro de uma época.
* **Limites de Época:** A programação de líderes é determinada para uma época inteira, conforme detalhado em nosso guia sobre [Slots, Blocos e Épocas](https://www.helius.dev/blog/solana-slots-blocks-and-epochs). Este método permite que você consulte partes dessa programação. Se seu intervalo cruzar um limite de época, os líderes retornados ainda serão baseados na programação da época em que `startSlot` reside, até o limite que você proporcionar ou o fim da programação conhecida daquela época se o nó RPC não projetar além disso para essa chamada.
* **Slots Futuros:** Você pode solicitar líderes para slots futuros. O nó RPC retornará os líderes programados com base na programação atual de líderes para a época relevante.
* **Precisão:** A programação de líderes é fixa para uma época, então os líderes retornados são geralmente precisos, a menos que ocorram circunstâncias excepcionais na rede ou mudanças no conjunto de validadores que possam afetar os cálculos posteriores da época.
* **Distinção de `getLeaderSchedule`:** Enquanto `getSlotLeaders` fornece uma lista direta para um intervalo, `getLeaderSchedule` fornece a programação completa para uma época inteira, mapeando identidades de validadores para todos os slots atribuídos dentro daquela época. `getSlotLeaders` é mais direto se você só precisar de uma lista sequencial para um intervalo específico e limitado.

Use `getSlotLeaders` quando precisar saber a sequência de produtores de blocos para um segmento definido de slots futuros.

## Métodos Relacionados

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

  <Card title="getSlotLeader" href="/docs/pt-BR/api-reference/rpc/http/getslotleader">
    Obter o líder do slot atual
  </Card>
</CardGroup>
