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

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

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

Метод RPC [`getMinimumBalanceForRentExemption`](https://www.helius.dev/docs/api-reference/rpc/http/getminimumbalanceforrentexemption) позволяет рассчитать минимальный баланс в лампортах, необходимый для освобождения от арендной платы учетной записи с определенным объемом данных.

В Solana учетные записи должны поддерживать минимальный баланс для покрытия расходов на хранение данных с течением времени. Эта концепция называется арендной платой. Учетные записи с балансом, эквивалентным арендной плате за два года, считаются освобожденными от нее, и их баланс не уменьшается из-за списания [арендной платы](https://www.helius.dev/blog/solana-executive-overview).

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

* **Создание учетной записи:** Перед созданием новой учетной записи (например, учетной записи нового токена, адреса, производного от программы, или пользовательского хранилища данных) используйте этот метод, чтобы определить необходимое количество лампортов для освобождения от арендной платы с самого начала. Это предотвратит удаление учетной записи сборщиком мусора, если ее баланс станет слишком низким.
* **Динамическое изменение размера учетной записи:** Если ваше приложение работает с учетными записями, объем данных которых может увеличиваться, вы можете использовать этот метод для периодической проверки необходимости дополнительных лампортов для сохранения освобождения от арендной платы.
* **Оценка затрат:** Оценивайте затраты в SOL на развертывание программ или создание учетных записей данных разного размера.
* **Интеграция с кошельками и SDK:** Кошельки и SDK используют этот метод, чтобы обеспечить надлежащее финансирование новых учетных записей.

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

1. **`dataLength`** (`usize`, обязательный): Размер данных учетной записи в байтах. Это основной фактор, определяющий минимальный баланс для освобождения от арендной платы.
   * Пример: `165` (для стандартной учетной записи SPL Token).

2. **`commitment`** (`object`, необязательный): Задает [уровень подтверждения](https://www.helius.dev/blog/solana-commitment-levels) для запроса. Если параметр не указан, используется уровень подтверждения узла RPC по умолчанию.
   * Поля:
     * `commitment` (строка): например, `"finalized"`, `"confirmed"` или `"processed"`.

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

Поле `result` ответа JSON-RPC содержит значение типа `u64` (64-разрядное целое число без знака), представляющее минимальное количество лампортов, необходимое для освобождения от арендной платы учетной записи с указанным значением `dataLength`.

## Примеры

### 1. Получение суммы для освобождения от арендной платы стандартной учетной записи токена (165 байт)

В этом примере запрашивается минимальный баланс, необходимый для освобождения от арендной платы типичной учетной записи SPL Token с объемом данных 165 байт.

<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": "getMinimumBalanceForRentExemption",
      "params": [
        165
      ]
    }'
  ```

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

  async function fetchMinimumBalanceForRentExemption() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    const dataLength = 165; // Data length for a typical SPL token account

    try {
      const lamports = await connection.getMinimumBalanceForRentExemption(dataLength);
      console.log(`Minimum lamports for rent exemption (data length ${dataLength} bytes): ${lamports} SOL: (${lamports / 1_000_000_000})`);
    } catch (error) {
      console.error(`Error fetching minimum balance for rent exemption for data length ${dataLength}:`, error);
    }
  }

  fetchMinimumBalanceForRentExemption();
  ```
</CodeGroup>

### 2. Получение суммы для освобождения от арендной платы учетной записи с нулевым объемом данных

Здесь показана базовая сумма для освобождения от арендной платы учетной записи без данных. Часто это абсолютный минимум для любой учетной записи.

<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": "getMinimumBalanceForRentExemption",
      "params": [
        0
      ]
    }'
  ```

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

  async function fetchMinimumBalanceForZeroByteAccount() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    const dataLength = 0;

    try {
      const lamports = await connection.getMinimumBalanceForRentExemption(dataLength);
      console.log(`Minimum lamports for rent exemption (data length ${dataLength} bytes): ${lamports} SOL: (${lamports / 1_000_000_000})`);
    } catch (error) {
      console.error(`Error fetching minimum balance for rent exemption for data length ${dataLength}:`, error);
    }
  }

  fetchMinimumBalanceForZeroByteAccount();
  ```
</CodeGroup>

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

* **Арендная плата зависит от объема данных:** Чем больше данных в учетной записи, тем выше минимальный баланс для освобождения от арендной платы.
* **Параметр сети:** Базовая стоимость аренды (количество лампортов за байт в год) — это параметр сети, который теоретически может измениться посредством голосования в кластере, хотя такое случается редко. Метод `getMinimumBalanceForRentExemption` всегда возвращает актуальное значение с учетом состояния кластера.
* **Лампорты и SOL:** В ответе сумма указана в лампортах. Помните, что 1 SOL = 1 000 000 000 лампортов.
* **Необходимо для долгосрочного хранения:** Освобождение учетных записей от арендной платы критически важно для долгосрочного хранения данных в блокчейне Solana.

Это руководство поможет вам понять, как использовать метод RPC `getMinimumBalanceForRentExemption` для эффективного управления арендной платой учетных записей в приложениях Solana.


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