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

# Anleitung zur Verwendung von getSupply

> Erfahren Sie mehr über die Anwendungsfälle von getSupply, Codebeispiele, Anfrageparameter, Antwortstrukturen und Tipps.

Die [`getSupply`](https://www.helius.dev/docs/api-reference/rpc/http/getsupply) RPC-Methode bietet Informationen über das aktuelle Angebot von SOL im Solana-Netzwerk. Sie beschreibt das Gesamtangebot, das zirkulierende Angebot, das nicht zirkulierende Angebot und kann optional nicht zirkulierende Konten auflisten.

## Häufige Anwendungsfälle

* **Verständnis von SOL Tokenomics:** Erhalten Sie einen Überblick über die aktuelle Verteilung von SOL.
* **Wirtschaftsanalyse:** Verfolgen Sie zeitliche Veränderungen in den Angebotsmetriken.
* **Anzeige von Netzwerkstatistiken:** Stellen Sie den Benutzern aktuelle Informationen zum SOL-Angebot in Dashboards oder Explorern bereit.
* **Überwachung der Inflation:** Obwohl `getInflationRate` und `getInflationGovernor` direktere Inflationsdaten liefern, kann `getSupply` einen breiteren Kontext bieten.

## Anfrageparameter

Die `getSupply`-Methode akzeptiert ein optionales Konfigurationsobjekt mit den folgenden Feldern:

1. **`commitment`** (string, optional): Gibt die [Commitment-Ebene](https://www.helius.dev/blog/solana-commitment-levels) für die Abfrage an. Wenn weggelassen, wird das Standard-Commitment des RPC-Knotens verwendet.
2. **`excludeNonCirculatingAccountsList`** (boolean, optional): Wenn auf `true` gesetzt, wird das `nonCirculatingAccounts`-Array aus der Antwort ausgeschlossen. Standard ist `false`. Dies kann nützlich sein, um die Antwortgröße zu reduzieren, wenn die Liste der einzelnen nicht zirkulierenden Konten nicht benötigt wird.

**Beispielkonfiguration:**

```json theme={"system"}
{
  "commitment": "finalized",
  "excludeNonCirculatingAccountsList": true
}
```

## Antwortstruktur

Die Antwort ist ein JSON-Objekt mit den folgenden Feldern:

* **`value`**: Ein Objekt, das die Angebotsinformationen enthält:
  * **`total`** (u64): Das gesamte SOL-Angebot in Lamports.
  * **`circulating`** (u64): Das zirkulierende SOL-Angebot in Lamports.
  * **`nonCirculating`** (u64): Das nicht zirkulierende SOL-Angebot in Lamports.
  * **`nonCirculatingAccounts`** (Array von Strings, optional): Ein Array von öffentlichen Schlüsseln (als Base58-codierte Strings) von Konten, die nicht zirkulierendes SOL halten. Dieses Feld wird weggelassen, wenn `excludeNonCirculatingAccountsList` in der Anfrage auf `true` gesetzt wurde.
* **`context`**: Ein Objekt, das enthält:
  * **`slot`** (u64): Den Slot, in dem die Informationen abgerufen wurden.

**Beispielantwort (mit `excludeNonCirculatingAccountsList: false`):**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": {
    "context": {
      "slot": 169890374
    },
    "value": {
      "circulating": 423105827585008800,
      "nonCirculating": 123456789012345678, // Example value
      "nonCirculatingAccounts": [
        "Stake11111111111111111111111111111111111111",
        "Vote11111111111111111111111111111111111111",
        // ... other non-circulating accounts
      ],
      "total": 546562616597354478
    }
  },
  "id": 1
}
```

**Beispielantwort (mit `excludeNonCirculatingAccountsList: true`):**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": {
    "context": {
      "slot": 169890380
    },
    "value": {
      "circulating": 423105830000000000,
      "nonCirculating": 123456780000000000, // Example value
      "total": 546562610000000000
      // nonCirculatingAccounts field is absent
    }
  },
  "id": 1
}
```

## Codebeispiele

<CodeGroup>
  ```bash cURL theme={"system"}
  # Basic Request:
  curl -X POST -H "Content-Type: application/json" -d \
    '{"jsonrpc":"2.0","id":1,"method":"getSupply"}' \
    <YOUR_RPC_URL>

  # Request with excludeNonCirculatingAccountsList:
  curl -X POST -H "Content-Type: application/json" -d \
    '{"jsonrpc":"2.0","id":1,"method":"getSupply", "params": [{"excludeNonCirculatingAccountsList": true}]}' \
    <YOUR_RPC_URL>

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

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

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

    try {
      const supplyInfo = await connection.getSupply();
      console.log('Supply Information:', supplyInfo.value);
      console.log('Total SOL:', supplyInfo.value.total / 1_000_000_000); // Convert lamports to SOL
      console.log('Circulating SOL:', supplyInfo.value.circulating / 1_000_000_000);
      console.log('Non-Circulating SOL:', supplyInfo.value.nonCirculating / 1_000_000_000);

      if (supplyInfo.value.nonCirculatingAccounts) {
        console.log('Non-circulating accounts count:', supplyInfo.value.nonCirculatingAccounts.length);
      }

      // Example with options
      const supplyInfoWithoutAccountsList = await connection.getSupply({
        commitment: 'finalized',
        excludeNonCirculatingAccountsList: true,
      });
      console.log('\nSupply Information (excluding non-circulating accounts list):');
      console.log('Total SOL:', supplyInfoWithoutAccountsList.value.total / 1_000_000_000);
      console.log('Circulating SOL:', supplyInfoWithoutAccountsList.value.circulating / 1_000_000_000);

    } catch (error) {
      console.error('Error getting supply information:', error);
    }
  }

  getNetworkSupply();
  ```
</CodeGroup>

## Entwicklertipps

* **Lamports vs. SOL:** Die Beträge werden in Lamports angegeben. Denken Sie daran, durch `1,000,000,000` zu dividieren (1 SOL = 10^9 Lamports), um in SOL umzuwandeln.
* **Datenaktualität:** Die Daten spiegeln den Zustand zum Slot wider, der im `context`-Objekt angegeben ist und basierend auf der verwendeten Commitment-Ebene.
* **`excludeNonCirculatingAccountsList`:** Verwenden Sie diese Option, wenn Sie nur die aggregierten Angebotszahlen benötigen, um die Antwortgröße und die Verarbeitungszeit zu optimieren, insbesondere wenn die Liste der nicht zirkulierenden Konten sehr lang ist.
* **Dynamische Werte:** Die Angebotszahlen können sich aufgrund von Token-Ausgabe (Inflation) und Brennmechanismen häufig ändern.

Diese Anleitung sollte Ihnen helfen, die `getSupply` RPC-Methode effektiv zu nutzen, um Solanas Angebotsdaten abzufragen.

## Verwandte Methoden

<CardGroup cols={2}>
  <Card title="getInflationRate" href="/docs/de/api-reference/rpc/http/getinflationrate">
    Erhalten Sie die aktuelle Inflationsrate
  </Card>

  <Card title="getInflationGovernor" href="/docs/de/api-reference/rpc/http/getinflationgovernor">
    Erhalten Sie Inflationsverwaltungsparameter
  </Card>
</CardGroup>
