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

# Cómo usar getSlotLeader

> Conoce los casos de uso de getSlotLeader, ejemplos de código, parámetros de solicitud, estructura de respuesta y consejos.

El método RPC [`getSlotLeader`](https://www.helius.dev/docs/api-reference/rpc/http/getslotleader) devuelve la clave pública del validador que actualmente lidera la producción de bloques, según la vista del nodo en un nivel de compromiso específico. El líder es responsable de producir bloques para el slot actual.

## Casos de uso comunes

* **Identificar al productor del bloque actual:** Averigua qué validador está programado actualmente para producir bloques.
* **Monitorear la red:** Observa la rotación de los líderes de slots.
* **Depurar problemas con transacciones:** En algunos escenarios avanzados, conocer al líder del slot actual puede ser relevante si las transacciones se envían directamente a los líderes, aunque esta no es una práctica común del lado del cliente.

## Parámetros de la solicitud

Este método acepta un objeto de configuración opcional como primer parámetro:

1. **`options`** (`object`, opcional): Un objeto de configuración opcional con los siguientes campos:
   * **`commitment`** (`string`, opcional): Especifica el [nivel de compromiso](https://www.helius.dev/blog/solana-commitment-levels) de la consulta. Los valores admitidos son `finalized`, `confirmed` o `processed`. Si se omite, se usa el nivel de compromiso predeterminado del nodo RPC, normalmente `finalized`. El líder se determina según el slot que coincida con este nivel de compromiso.
   * **`minContextSlot`** (`number`, opcional): El slot mínimo en el que puede evaluarse la solicitud. Esto establece el slot mínimo para el contexto del nodo.

## Estructura de la respuesta

El campo `result` de la respuesta JSON-RPC es una sola cadena codificada en base 58 que representa la clave pública (identidad) del líder del slot actual.

**Ejemplo de respuesta:**

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

## Ejemplos

### 1. Obtener el líder del slot actual (nivel de compromiso predeterminado)

Este ejemplo obtiene el líder del slot actual mediante el nivel de compromiso predeterminado del nodo, normalmente `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. Obtener el líder del slot actual con el nivel de compromiso `confirmed`

Este ejemplo obtiene el líder del slot más reciente que alcanzó el nivel de compromiso `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>

## Consejos para desarrolladores

* **Naturaleza dinámica:** Los líderes de slots cambian con frecuencia, cada pocos slots, normalmente 4. El resultado de esta llamada es una instantánea en el tiempo basada en la vista actual del nodo y en el nivel de compromiso elegido.
* **Nivel de compromiso:** El nivel de compromiso afecta qué slot se considera «actual» para determinar al líder. Si usas `processed`, obtendrás al líder del slot más reciente que conoce el nodo. Este puede cambiar rápidamente y quizá aún no esté confirmado por el resto de la red.
* **Programación de líderes:** La secuencia de líderes de slots se determina mediante una programación de líderes que se calcula al comienzo de cada época. Nuestra guía sobre [Slots, bloques y épocas](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) proporciona más detalles sobre este proceso. Para obtener una vista más completa de los próximos líderes, usa `getLeaderSchedule`.
* **Perspectiva del nodo:** El líder del slot devuelto se basa en la información disponible para el nodo RPC específico que consultas. Los distintos nodos pueden tener vistas ligeramente diferentes debido a la latencia de la red.

`getSlotLeader` ofrece una forma rápida de identificar al validador que actualmente es responsable de producir bloques. Para obtener una vista más amplia de la rotación de líderes, considera usar `getLeaderSchedule`.

## Métodos relacionados

<CardGroup cols={2}>
  <Card title="getLeaderSchedule" href="/docs/es/api-reference/rpc/http/getleaderschedule">
    Obtén la programación completa de líderes de una época
  </Card>

  <Card title="getSlotLeaders" href="/docs/es/api-reference/rpc/http/getslotleaders">
    Obtén los líderes de un intervalo de próximos slots
  </Card>
</CardGroup>
