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

# Comment utiliser getTokenSupply

> Découvrez les cas d'utilisation de getTokenSupply, des exemples de code, des paramètres de requête, la structure des réponses et des conseils.

La méthode RPC [`getTokenSupply`](https://www.helius.dev/docs/api-reference/rpc/http/gettokensupply) renvoie l'offre totale d'une mint spécifique de jeton SPL. Cela est essentiel pour comprendre la quantité totale de jetons qui a été créée.

## Cas d'utilisation communs

* **Affichage des informations sur le jeton :** Afficher l'offre totale d'un jeton sur un explorateur ou dans une interface de portefeuille.
* **Analyse de la tokenomique :** Comprendre l'émission maximale ou actuelle d'un jeton.
* **Vérification :** Vérifier l'offre d'un jeton telle que rapportée par le compte de mint lui-même.
* **Suivi des changements d'offre :** Si un jeton est mintable, cela peut être utilisé pour suivre les changements dans son offre totale au fil du temps (bien que pour les jetons fongibles, l'offre soit généralement fixe ou gérée par une autorité de mint).

## Paramètres de requête

1. **`mintAddress`** (string, requis) : La clé publique encodée en base-58 de la mint du jeton dont vous souhaitez interroger l'offre totale.

2. **`options`** (objet, optionnel) : Un objet de configuration optionnel qui peut inclure :
   * **`commitment`** (string, optionnel) : Spécifie le [niveau d'engagement](https://www.helius.dev/blog/solana-commitment-levels) pour la requête (par exemple, `"finalized"`, `"confirmed"`, `"processed"`).

## Structure de la réponse

Le champ `result.value` dans la réponse JSON-RPC est un objet contenant des détails sur l'offre du jeton :

* **`amount`** (string) : L'offre totale du jeton dans sa plus petite dénomination (montant brut), sous forme de chaîne. Cette valeur n'est pas ajustée pour les décimales.
* **`decimals`** (u8) : Le nombre de décimales défini pour cette mint de jeton. Cela est crucial pour convertir `amount` en un format lisible par l'homme.
* **`uiAmount`** (nombre | null) : L'offre totale du jeton en tant que nombre à virgule flottante, ajustée pour `decimals` du jeton. Ce champ peut être nul ou moins précis; `uiAmountString` est généralement préféré pour l'affichage.
* **`uiAmountString`** (string) : L'offre totale du jeton sous forme de chaîne, ajustée pour `decimals` du jeton. C'est la représentation la plus conviviale de l'offre totale.

**Exemple de réponse :**

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

## Exemples de code

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

## Conseils pour les développeurs

* **Offre immuable (généralement) :** Pour la plupart des jetons SPL, une fois émis, l'offre totale du point de vue du compte de mint est fixe, à moins que la mint ne dispose d'une autorité spécifique qui peut créer plus de jetons (ou les brûler, bien que la combustion se produise généralement à partir des comptes de jetons, pas directement de l'offre du mint).
* **`decimals` est clé :** Utilisez toujours le champ `decimals` pour interpréter correctement `amount` ou `uiAmountString`.
* **Source de données :** Cette méthode interroge directement le compte de mint pour ses informations d'offre.

Ce guide fournit les informations nécessaires pour utiliser efficacement la méthode RPC `getTokenSupply` pour interroger l'offre de jetons SPL sur Solana.
