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

> Saiba mais sobre casos de uso do getMinimumBalanceForRentExemption, exemplos de código, parâmetros de requisição, estrutura de resposta e dicas.

O método RPC [`getMinimumBalanceForRentExemption`](https://www.helius.dev/docs/api-reference/rpc/http/getminimumbalanceforrentexemption) permite calcular o saldo mínimo de lamports necessário para que uma conta de um tamanho de dado específico se torne isenta de aluguel.

No Solana, as contas devem manter um saldo mínimo para cobrir os custos de armazenamento ao longo do tempo, um conceito conhecido como aluguel. Contas que mantêm um saldo equivalente a dois anos de pagamentos de aluguel são consideradas "isentas de aluguel" e não têm seus saldos diminuídos pelo [aluguel](https://www.helius.dev/blog/solana-executive-overview).

## Casos Comuns de Uso

* **Criação de Conta:** Antes de criar uma nova conta (por exemplo, para uma nova conta de token, endereço derivado de programa ou armazenamento de dados personalizados), use este método para determinar os lamports necessários para torná-la isenta de aluguel desde o início. Isso evita que a conta seja coletada como lixo se o saldo cair demais.
* **Dimensionamento Dinâmico de Conta:** Se sua aplicação lida com contas que podem crescer em tamanho de dados, você pode usar este método para verificar periodicamente se lamports adicionais são necessários para manter a isenção de aluguel.
* **Estimativa de Custo:** Estime o custo em SOL associado ao envio de programas ou criação de contas de dados de vários tamanhos.
* **Integração com Carteiras e SDKs:** Carteiras e SDKs usam isso para garantir que financiem novas contas adequadamente.

## Parâmetros da Requisição

1. **`dataLength`** (`usize`, obrigatório): O comprimento dos dados da conta em bytes. Este é o principal fator que determina o mínimo isento de aluguel.
   * Exemplo: `165` (para uma conta SPL Token padrão).

2. **`commitment`** (`object`, opcional): Especifica o [nível de compromisso](https://www.helius.dev/blog/solana-commitment-levels) para a consulta. Se omitido, o compromisso padrão do nó RPC é usado.
   * Campos:
     * `commitment` (string): por exemplo, `"finalized"`, `"confirmed"`, ou `"processed"`.

## Estrutura da Resposta

O campo `result` da resposta JSON-RPC será um `u64` (inteiro não assinado de 64 bits) representando o número mínimo de lamports necessários para que uma conta com o `dataLength` especificado seja isenta de aluguel.

## Exemplos

### 1. Obter Isenção de Aluguel para uma Conta de Token Padrão (165 bytes)

Este exemplo consulta o saldo mínimo necessário para que uma conta SPL Token típica (que tem um tamanho de dados de 165 bytes) seja isenta de aluguel.

<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. Obter Isenção de Aluguel para uma Conta de Zero Bytes

Isso mostra a isenção de aluguel base para uma conta sem dados, muitas vezes o mínimo absoluto para qualquer conta.

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

## Dicas para Desenvolvedores

* **O Aluguel Varia pelo Tamanho dos Dados:** Quanto maior o dado da conta, maior será o mínimo isento de aluguel.
* **Parâmetro de Rede:** O custo subjacente do aluguel (lamports por byte-ano) é um parâmetro de rede que pode teoricamente mudar por meio de uma votação de cluster, embora isso seja raro. O método `getMinimumBalanceForRentExemption` sempre retornará o valor atual baseado no estado do cluster.
* **Lamports vs. SOL:** A resposta está em lamports. Lembre-se que 1 SOL = 1.000.000.000 lamports.
* **Essencial para Longevidade:** Garantir que as contas sejam isentas de aluguel é crucial para a persistência a longo prazo dos dados no blockchain Solana.

Este guia ajuda você a entender e usar o método RPC `getMinimumBalanceForRentExemption` para gerenciar efetivamente o aluguel de contas em seus aplicativos Solana.
