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

# getTokenSupply 사용 방법

> getTokenSupply 사용 사례, 코드 예제, 요청 매개변수, 응답 구조 및 팁을 배웁니다.

[`getTokenSupply`](https://www.helius.dev/docs/api-reference/rpc/http/gettokensupply) RPC 메서드는 특정 SPL 토큰 민트의 총 공급량을 반환합니다. 이는 생성된 토큰의 전체 수량을 이해하는 데 필수적입니다.

## 일반적인 사용 사례

* **토큰 정보 표시:** 탐색기 또는 지갑 인터페이스에서 토큰의 총 공급량을 표시합니다.
* **토크노믹스 분석:** 토큰의 최대 또는 현재 총 발행량을 이해합니다.
* **검증:** 민트 계정 자체에서 보고한 토큰의 공급량을 확인합니다.
* **공급 변화 모니터링:** 토큰이 민트 가능하다면 전체 공급량의 변화를 추적하는 데 사용할 수 있습니다 (다만, 대체 가능한 토큰의 경우 공급량은 보통 고정되거나 민트 권한에 의해 관리됩니다).

## 요청 매개변수

1. **`mintAddress`** (string, 필수): 총 공급량을 쿼리하려는 토큰 민트의 base-58로 인코딩된 공개 키입니다.

2. **`options`** (object, 선택 사항): 다음을 포함할 수 있는 선택적 구성 객체:
   * **`commitment`** (string, 선택 사항): 쿼리에 대한 [커밋 수준](https://www.helius.dev/blog/solana-commitment-levels)을 지정합니다 (예: `"finalized"`, `"confirmed"`, `"processed"`).

## 응답 구조

JSON-RPC 응답의 `result.value` 필드는 토큰의 공급에 대한 세부 정보를 포함하는 객체입니다:

* **`amount`** (string): 가장 작은 명목상 토큰의 총 공급량(원시 양)으로, 문자열로 표시됩니다. 이 값은 소수점에 맞춰 조정되지 않습니다.
* **`decimals`** (u8): 이 토큰 민트를 위해 정의된 소수 자릿수입니다. 이것은 원시 `amount`를 사람이 읽을 수 있는 형식으로 변환하는 데 중요합니다.
* **`uiAmount`** (number | null): 토큰의 `decimals`에 맞춰 조정된 부동 소수점으로 표시된 토큰의 총 공급량. 이 필드는 null이거나 덜 정확할 수 있습니다. `uiAmountString`는 일반적으로 표시를 위해 선호됩니다.
* **`uiAmountString`** (string): 토큰의 `decimals`에 맞춰 조정된 문자열로 표시된 토큰의 총 공급량. 이는 토큰 공급량의 가장 사용자 친화적인 표현입니다.

**응답 예시:**

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

## 코드 예제

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

## 개발자 팁

* **변경 불가능한 공급 (보통):** 대부분의 SPL 토큰의 경우 민트 계정 관점에서 총 공급량은 민트가 더 많은 토큰을 생성할 수 있는 특정 민트 권한을 갖지 않는 한 고정되어 있습니다 (혹은 소각할 수도 있지만, 소각은 보통 토큰 계정에서 발생하며 민트의 공급을 직접적으로 감소시키지는 않습니다).
* **`decimals`가 중요:** 항상 `decimals` 필드를 사용하여 `amount` 또는 `uiAmountString`를 올바르게 해석하십시오.
* **데이터 소스:** 이 메서드는 공급 정보에 대해 민트 계정을 직접 쿼리합니다.

이 가이드는 Solana에서 SPL 토큰 공급을 쿼리하기 위한 `getTokenSupply` RPC 메서드를 효과적으로 사용하는 데 필요한 정보를 제공합니다.
