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

# Cara Menggunakan getMinimumBalanceForRentExemption

> Pelajari kasus penggunaan getMinimumBalanceForRentExemption, contoh kode, parameter permintaan, struktur respons, dan tips.

Metode RPC [`getMinimumBalanceForRentExemption`](https://www.helius.dev/docs/api-reference/rpc/http/getminimumbalanceforrentexemption) memungkinkan Anda menghitung saldo minimum dalam lamport yang diperlukan agar akun dengan ukuran data tertentu menjadi bebas sewa.

Di Solana, akun harus mempertahankan saldo minimum untuk menanggung biaya penyimpanan dari waktu ke waktu, sebuah konsep yang dikenal sebagai sewa. Akun dengan saldo yang setara dengan pembayaran sewa selama dua tahun dianggap "bebas sewa" dan saldonya tidak berkurang akibat [sewa](https://www.helius.dev/blog/solana-executive-overview).

## Kasus Penggunaan Umum

* **Pembuatan Akun:** Sebelum membuat akun baru (misalnya, untuk akun token baru, alamat turunan program, atau penyimpanan data khusus), gunakan metode ini untuk menentukan jumlah lamport yang perlu dialokasikan agar akun tersebut bebas sewa sejak awal. Ini mencegah akun dihapus oleh proses pengumpulan sampah jika saldonya terlalu rendah.
* **Penentuan Ukuran Akun Dinamis:** Jika aplikasi Anda menangani akun yang ukuran datanya dapat bertambah, Anda dapat menggunakan metode ini untuk memeriksa secara berkala apakah lamport tambahan diperlukan untuk mempertahankan status bebas sewa.
* **Estimasi Biaya:** Perkirakan biaya SOL yang terkait dengan penerapan program atau pembuatan akun data dengan berbagai ukuran.
* **Integrasi Dompet dan SDK:** Dompet dan SDK menggunakan metode ini untuk memastikan akun baru menerima pendanaan yang sesuai.

## Parameter Permintaan

1. **`dataLength`** (`usize`, wajib): Panjang data akun dalam byte. Ini adalah faktor utama yang menentukan saldo minimum agar akun bebas sewa.
   * Contoh: `165` (untuk akun SPL Token standar).

2. **`commitment`** (`object`, opsional): Menentukan [tingkat komitmen](https://www.helius.dev/blog/solana-commitment-levels) untuk kueri. Jika dihilangkan, komitmen default dari node RPC akan digunakan.
   * Bidang:
     * `commitment` (string): misalnya, `"finalized"`, `"confirmed"`, atau `"processed"`.

## Struktur Respons

Bidang `result` dalam respons JSON-RPC akan berupa `u64` (bilangan bulat 64-bit tanpa tanda) yang menunjukkan jumlah minimum lamport yang diperlukan agar akun dengan `dataLength` tertentu menjadi bebas sewa.

## Contoh

### 1. Mendapatkan Saldo Bebas Sewa untuk Akun Token Standar (165 byte)

Contoh ini meminta saldo minimum yang diperlukan agar akun SPL Token standar (yang memiliki ukuran data 165 byte) menjadi bebas sewa.

<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. Mendapatkan Saldo Bebas Sewa untuk Akun Berukuran Nol Byte

Ini menunjukkan saldo dasar agar akun tanpa data menjadi bebas sewa, yang sering kali merupakan nilai minimum absolut untuk akun apa pun.

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

## Tips untuk Developer

* **Sewa Berbeda Berdasarkan Ukuran Data:** Semakin besar data akun, semakin tinggi saldo minimum agar akun bebas sewa.
* **Parameter Jaringan:** Biaya dasar sewa (lamport per byte-tahun) adalah parameter jaringan yang secara teoretis dapat berubah melalui pemungutan suara cluster, meskipun hal ini jarang terjadi. Metode `getMinimumBalanceForRentExemption` akan selalu mengembalikan nilai terkini berdasarkan status cluster.
* **Lamport vs. SOL:** Respons diberikan dalam lamport. Ingat bahwa 1 SOL = 1.000.000.000 lamport.
* **Penting untuk Keberlanjutan:** Memastikan akun bebas sewa sangat penting untuk mempertahankan data dalam jangka panjang di blockchain Solana.

Panduan ini membantu Anda memahami dan menggunakan metode RPC `getMinimumBalanceForRentExemption` untuk mengelola sewa akun secara efektif dalam aplikasi Solana Anda.
