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

# Как использовать getLargestAccounts

> Изучите варианты использования getLargestAccounts, примеры кода, параметры запроса, структуру ответа и рекомендации.

Метод RPC [`getLargestAccounts`](https://www.helius.dev/docs/api-reference/rpc/http/getlargestaccounts) возвращает список из 20 крупнейших аккаунтов в сети Solana, отсортированных по балансу в лампортах. Этот метод можно использовать для анализа сети, изучения распределения активов или выявления крупных держателей SOL.

Обратите внимание, что результаты этого метода могут кешироваться узлом RPC на срок до двух часов.

## Распространенные варианты использования

* **Мониторинг состояния сети:** Отслеживайте концентрацию SOL на крупнейших аккаунтах.
* **Экономический анализ:** Изучайте распределение активов в сети Solana.
* **Выявление китов:** Находите аккаунты, на которых хранятся значительные объемы SOL.

## Параметры запроса

Метод может принимать необязательный объект конфигурации со следующими параметрами:

* **`commitment`** (строка, необязательный): Задает [уровень подтверждения](https://www.helius.dev/blog/solana-commitment-levels), который используется при запросе к реестру. Если параметр не указан, используется уровень подтверждения узла по умолчанию.
* **`filter`** (строка, необязательный): Фильтрует результаты по типу аккаунта. Допустимые значения:
  * `circulating`: Возвращает крупнейшие аккаунты, входящие в оборотное предложение.
  * `nonCirculating`: Возвращает крупнейшие аккаунты, не входящие в оборотное предложение (например, заблокированные аккаунты и аккаунты фонда).
    Если параметр не указан, рассматриваются все аккаунты без этого фильтра.

## Структура ответа

Поле `result` ответа JSON-RPC содержит объект `RpcResponse`. Поле `value` этого объекта содержит массив из не более чем 20 объектов аккаунтов, каждый из которых включает:

* **`address`** (строка): Публичный ключ аккаунта в кодировке base58.
* **`lamports`** (u64): Баланс аккаунта в лампортах.

Ответ также содержит объект `context` с полем `slot`, указывающим слот, в котором была получена информация.

## Примеры

### 1. Получение 20 крупнейших аккаунтов (без фильтра)

В этом примере запрашиваются 20 крупнейших аккаунтов по балансу в лампортах без фильтра по предложению.

<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. Получение 20 крупнейших аккаунтов в обороте

В этом примере запрашиваются 20 крупнейших аккаунтов, которые считаются частью оборотного предложения.

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

## Рекомендации разработчикам

* **Кешированные данные:** Результаты могут кешироваться узлом RPC на срок до двух часов. Поэтому данные могут не соответствовать состоянию последнего блока в реальном времени.
* **Ограничение до 20 аккаунтов:** Метод возвращает только 20 крупнейших аккаунтов. Для более полного анализа распределения активов могут потребоваться другие источники данных или методы.
* **Поведение фильтров:** Фильтры `circulating` и `nonCirculating` зависят от определения этих категорий и источников данных, используемых узлом RPC.

В этом руководстве приведена информация, необходимая для использования метода RPC `getLargestAccounts` при запросе крупнейших держателей SOL в сети Solana.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.