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

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

El método RPC [`getLargestAccounts`](https://www.helius.dev/docs/api-reference/rpc/http/getlargestaccounts) devuelve una lista de las 20 cuentas principales de la red Solana, ordenadas según su saldo en lamports. Este método puede ser útil para analizar la red, comprender la distribución de la riqueza o identificar a los principales titulares de SOL.

Ten en cuenta que el nodo RPC puede almacenar en caché los resultados de este método hasta por dos horas.

## Casos de uso comunes

* **Monitoreo del estado de la red:** Observa la concentración de SOL en las cuentas con mayores saldos.
* **Análisis económico:** Estudia la distribución de la riqueza en la red Solana.
* **Identificación de ballenas:** Encuentra cuentas que tienen cantidades significativas de SOL.

## Parámetros de solicitud

Este método puede recibir opcionalmente un objeto de configuración con los siguientes parámetros:

* **`commitment`** (cadena, opcional): Especifica el [nivel de compromiso](https://www.helius.dev/blog/solana-commitment-levels) que se usará al consultar el libro mayor. Si no se proporciona, se utiliza el nivel de compromiso predeterminado del nodo.
* **`filter`** (cadena, opcional): Filtra los resultados por tipo de cuenta. Los valores aceptados son:
  * `circulating`: Devuelve las cuentas con mayores saldos que forman parte de la oferta circulante.
  * `nonCirculating`: Devuelve las cuentas con mayores saldos que no forman parte de la oferta circulante (por ejemplo, cuentas bloqueadas o cuentas de fundaciones).
    Si se omite, se consideran todas las cuentas sin aplicar este filtro específico.

## Estructura de la respuesta

El campo `result` de la respuesta JSON-RPC será un objeto `RpcResponse`. El campo `value` dentro de este objeto es un arreglo de hasta 20 objetos de cuenta, cada uno de los cuales contiene:

* **`address`** (cadena): La clave pública de la cuenta codificada en base 58.
* **`lamports`** (u64): El saldo de la cuenta en lamports.

La respuesta también incluye un objeto `context` con el `slot` en el que se recuperó la información.

## Ejemplos

### 1. Obtén las 20 cuentas con mayores saldos (sin filtro)

Este ejemplo obtiene las 20 cuentas con mayores saldos en lamports sin aplicar ningún filtro de oferta.

<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": "getLargestAccounts"
    }'
  ```

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

  async function logLargestAccounts() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const largestAccounts = await connection.getLargestAccounts();
      console.log(`Largest Accounts (Slot: ${largestAccounts.context.slot}):`);
      largestAccounts.value.forEach((account, index) => {
        console.log(
          `  ${index + 1}. Address: ${account.address}, Balance: ${account.lamports / 10**9} SOL`
        );
      });
      // For full raw details:
      // console.log(JSON.stringify(largestAccounts, null, 2));
    } catch (error) {
      console.error('Error fetching largest accounts:', error);
    }
  }

  logLargestAccounts();
  ```
</CodeGroup>

### 2. Obtén las 20 cuentas circulantes con mayores saldos

Este ejemplo obtiene las 20 cuentas con mayores saldos que se consideran parte de la oferta circulante.

<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": "getLargestAccounts",
      "params": [{ "filter": "circulating" }]
    }'
  ```

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

  async function logLargestCirculatingAccounts() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const largestAccounts = await connection.getLargestAccounts({ filter: 'circulating' });
      console.log(`Largest Circulating Accounts (Slot: ${largestAccounts.context.slot}):`);
      largestAccounts.value.forEach((account, index) => {
        console.log(
          `  ${index + 1}. Address: ${account.address}, Balance: ${account.lamports / 10**9} SOL`
        );
      });
      // console.log(JSON.stringify(largestAccounts, null, 2));
    } catch (error) {
      console.error('Error fetching largest circulating accounts:', error);
    }
  }

  logLargestCirculatingAccounts();
  ```
</CodeGroup>

## Consejos para desarrolladores

* **Datos almacenados en caché:** El nodo RPC puede almacenar los resultados en caché hasta por dos horas. Esto significa que los datos podrían no estar actualizados en tiempo real hasta el bloque más reciente.
* **Limitado a las 20 cuentas principales:** Este método solo devuelve las 20 cuentas con mayores saldos. Para realizar un análisis más completo de la distribución de la riqueza, podrías necesitar otras fuentes de datos o métodos.
* **Comportamiento de los filtros:** Los filtros `circulating` e `nonCirculating` dependen de la definición y las fuentes de datos que utilice el nodo RPC para estas clasificaciones.

Esta guía proporciona la información necesaria para usar el método RPC `getLargestAccounts` y consultar los principales titulares de SOL en la red Solana.
