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

> Pelajari kasus penggunaan getTokenSupply, contoh kode, parameter permintaan, struktur respons, dan kiat.

Metode RPC [`getTokenSupply`](https://www.helius.dev/docs/api-reference/rpc/http/gettokensupply) mengembalikan total suplai dari mint Token SPL tertentu. Informasi ini penting untuk memahami jumlah keseluruhan token yang telah dibuat.

## Kasus Penggunaan Umum

* **Menampilkan Informasi Token:** Menampilkan total suplai token pada penjelajah atau di antarmuka dompet.
* **Analisis Tokenomik:** Memahami jumlah maksimum atau total penerbitan token saat ini.
* **Verifikasi:** Memeriksa suplai token sebagaimana dilaporkan oleh akun mint itu sendiri.
* **Memantau Perubahan Suplai:** Jika token dapat dicetak, metode ini dapat digunakan untuk melacak perubahan total suplainya dari waktu ke waktu (meskipun untuk token yang dapat dipertukarkan, suplai biasanya tetap atau dikelola oleh otoritas pencetakan).

## Parameter Permintaan

1. **`mintAddress`** (string, wajib): Kunci publik akun mint token yang dienkode dengan base-58 dan total suplainya ingin Anda kueri.

2. **`options`** (object, opsional): Objek konfigurasi opsional yang dapat mencakup:
   * **`commitment`** (string, opsional): Menentukan [tingkat commitment](https://www.helius.dev/blog/solana-commitment-levels) untuk kueri (misalnya, `"finalized"`, `"confirmed"`, `"processed"`).

## Struktur Respons

Kolom `result.value` dalam respons JSON-RPC adalah objek yang berisi detail tentang suplai token:

* **`amount`** (string): Total suplai token dalam denominasi terkecilnya (jumlah mentah), dalam bentuk string. Nilai ini tidak disesuaikan dengan jumlah desimal.
* **`decimals`** (u8): Jumlah tempat desimal yang ditetapkan untuk mint token ini. Nilai ini sangat penting untuk mengonversi `amount` mentah ke format yang mudah dibaca manusia.
* **`uiAmount`** (number | null): Total suplai token sebagai angka titik mengambang, yang disesuaikan dengan `decimals` token. Kolom ini mungkin bernilai null atau kurang presisi; `uiAmountString` umumnya lebih disarankan untuk ditampilkan.
* **`uiAmountString`** (string): Total suplai token dalam bentuk string, yang disesuaikan dengan `decimals` token. Ini adalah representasi total suplai yang paling ramah pengguna.

**Contoh Respons:**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": {
    "context": { "slot": 123456789 },
    "value": {
      "amount": "1000000000000000", // e.g., 1,000,000,000 tokens with 6 decimals
      "decimals": 6,
      "uiAmount": 1000000000.0,
      "uiAmountString": "1000000000.0"
    }
  },
  "id": 1
}
```

## Contoh Kode

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <TOKEN_MINT_PUBKEY> with the actual mint address
  curl -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getTokenSupply",
      "params": [
        "<TOKEN_MINT_PUBKEY>"
      ]
    }' \
    <YOUR_RPC_URL>

  # Example with commitment level
  curl -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getTokenSupply",
      "params": [
        "<TOKEN_MINT_PUBKEY>",
        { "commitment": "confirmed" }
      ]
    }' \
    <YOUR_RPC_URL>
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection, PublicKey } = require('@solana/web3.js');

  async function checkTokenSupply(mintAddress) {
    // Replace with your RPC endpoint
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    const mintPublicKey = new PublicKey(mintAddress);

    try {
      const tokenSupply = await connection.getTokenSupply(mintPublicKey);
      console.log(`Token Supply for Mint ${mintAddress}:`);
      console.log(`  UI Amount: ${tokenSupply.value.uiAmountString}`);
      console.log(`  Raw Amount: ${tokenSupply.value.amount}`);
      console.log(`  Decimals: ${tokenSupply.value.decimals}`);
      // For full details:
      // console.log(JSON.stringify(tokenSupply, null, 2));
    } catch (error) {
      console.error(`Error fetching token supply for mint ${mintAddress}:`, error);
    }
  }

  // Replace with the actual token mint public key you want to query
  const exampleTokenMint = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'; // USDC mint
  checkTokenSupply(exampleTokenMint);

  // Example with a different mint (e.g., Raydium)
  // const raydiumMint = '4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R';
  // checkTokenSupply(raydiumMint);
  ```
</CodeGroup>

## Kiat untuk Pengembang

* **Suplai Tidak Dapat Diubah (Biasanya):** Untuk sebagian besar token SPL, setelah dicetak, total suplai dari perspektif akun mint itu sendiri bersifat tetap, kecuali mint tersebut memiliki otoritas pencetakan khusus yang dapat membuat lebih banyak token (atau membakarnya, meskipun pembakaran biasanya dilakukan dari akun token, bukan langsung dari suplai mint).
* **`decimals` adalah Kunci:** Selalu gunakan kolom `decimals` untuk menafsirkan `amount` atau `uiAmountString` dengan benar.
* **Sumber Data:** Metode ini mengueri akun mint secara langsung untuk mendapatkan informasi suplainya.

Panduan ini menyediakan informasi yang diperlukan untuk menggunakan metode RPC `getTokenSupply` secara efektif guna mengueri suplai token SPL di Solana.
