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

# Parsed Streams

> Abonnieren Sie über WebSocket dekodierte Solana-Transaktionen mit serverseitigem Filtern nach Programm, Konto und Anweisungsnamen.

<Note>
  Parsed Streams ist in der **offenen Beta**. Es ist in kostenpflichtigen Plänen verfügbar — authentifizieren Sie sich mit dem API-Schlüssel Ihres Projekts. Die API kann sich vor der allgemeinen Verfügbarkeit noch ändern.
</Note>

## Was ist Parsed Streams?

Parsed Streams ist ein WebSocket-Dienst, der jede bestätigte Solana-Transaktion (ohne Abstimmungstransaktionen) überwacht, dekodiert und Ihnen die Transaktionen zusendet, die einem von Ihnen definierten Filter entsprechen. Sie sagen „Ich interessiere mich für Jupiter-Routenanweisungen“ oder „Ich interessiere mich für alles, was dieses Konto betrifft“, und der Server übernimmt das Überwachen, Dekodieren und Zuordnen für Sie.

Sie erhalten **ganze, bereits dekodierte Transaktionen**: jede Anweisung mit benannten Argumenten und benannten Konten, plus die Gebühr, die vollständige Liste der Kontoschlüssel, einen Transaktions-ebene `summary` dessen, was passiert ist, die SOL- und Token-Transfers sowie Hinweise auf die genauen Anweisungen, die Ihrem Filter entsprochen haben. Alle Daten werden mit dem **bestätigten** Commitment geliefert.

## Das mentale Modell

Wenn Sie die Solana-Interna bereits kennen, können Sie weitergehen. Wenn nicht, ist dies das Modell, auf dem die gesamte API basiert.

**Eine Transaktion** ist eine unterzeichnete Nachricht. Sie benennt einen Gebührenzahler, listet jedes Konto auf, das sie berühren wird, und enthält eine Liste von Anweisungen. Wenn Sie eine betrachten, sehen Sie: eine Signatur (ihre eindeutige ID), den Slot, in dem sie gelandet ist, die gezahlte Gebühr, die Kontoschlüssel, ob sie erfolgreich war oder fehlgeschlagen ist, und die Anweisungen.

**Eine Anweisung** ist eine Aktion: Führen Sie dieses Programm mit diesen Eingaben unter Verwendung dieser Konten aus. Ein Swap auf Jupiter, ein Token-Transfer, ein Memo. Eine Transaktion enthält normalerweise mehrere Anweisungen, die in der Reihenfolge ausgeführt werden.

**Programme können andere Programme aufrufen.** Wenn Jupiter einen Swap ausführt, bewegt es die Token nicht selbst. Seine Routenanweisung ruft das Token-Programm auf, um Tokens zu bewegen, und die Austauschprogramme, die die Liquidität halten. Diese verschachtelten Aufrufe sind ebenfalls Anweisungen, die als innere Anweisungen (oder CPIs, Cross-Program-Invocations) bezeichnet werden. Dies ist beim Schreiben eines Filters wichtig: Ein Großteil der tatsächlichen Aktivität, wie die tatsächlichen Token-Bewegungen innerhalb eines Swaps, findet in inneren Anweisungen statt, sodass Ihr Filter sie standardmäßig erfasst. Wenn Sie nur die Anweisungen möchten, die ein Benutzer unterzeichnet hat, setzen Sie `includeCpi` auf false.

**Konten** sind die On-Chain-Elemente, mit denen eine Anweisung arbeitet: Wallets, Token-Guthaben, Pools, Prägungen. Jede Anweisung enthält sie als geordnete Adressliste, und die Reihenfolge ist der Vertrag: Das Programm definiert, was jede Position bedeutet. Das Token-Programm erwartet beispielsweise das Konto, von dem zuerst Tokens entnommen werden, dann das Konto, das sie empfängt, und dann den Eigentümer, der die Übertragung genehmigt.

**Rollen** geben diesen Positionen Namen. Die bekanntesten Programme veröffentlichen ein maschinenlesbares Handbuch für ihre Schnittstelle, das als IDL bezeichnet wird. Das Handbuch listet jede Anweisung auf, die das Programm hat, was seine Datenfelder bedeuten und wofür jede Konto-Position steht. Helius führt einen Katalog dieser Handbücher für Tausende von Programmen. Damit wird eine bloße Adressliste zu benannten Konten: Für einen Token-Transfer wird Position 0 zu `source`, Position 1 zu `destination`, Position 2 wird zu `authority`. Anstatt zu raten, was die dritte Adresse bedeutet, lesen Sie `{"name": "authority", "pubkey": "9xQe...", "isSigner": true}`. Diese Namen sind die Rollen, nach denen Sie filtern können.

**Dekodierung** ist dieselbe Idee, die auf die Eingabedaten der Anweisung angewendet wird. Auf der Leitung sind diese Daten undurchsichtige Bytes. Mit dem Handbuch des Programms werden die Bytes zu benannten Werten: `{"in_amount": "1000000", "slippage_bps": 50}`. Nicht jede Anweisung kann dekodiert werden, daher landet jede in einem von drei Zuständen, die Sie direkt aus ihren Feldern sehen können:

* **Dekodiert**: Die Anweisung enthält ein `decoded`-Objekt mit benanntem `args` und benanntem `accounts`.
* **Erkannt**: zusätzlich zu `decoded` enthält die Anweisung ein `summary` mit einem `type` (wie `swap`), einem menschenlesbaren `description` und einem strukturierten `parsedData`-Payload, wie Swap-Metadaten mit Beträgen und Prägungen.
* **Unentschlüsselt**: Das Programm oder die Anweisung ist nicht im Katalog, `decoded` ist `null`, und die Anweisung enthält die rohen Bytes (`rawData`) und die einfache Adressliste (`rawAccounts`), sodass Sie immer etwas haben, mit dem Sie arbeiten können.

Das ist das ganze Modell, und Ihr Filter wird direkt daraus erstellt:

* `programs`: welches Programm die Anweisung aufruft
* `instructionNames`: wie das Handbuch des Programms diese Aktion nennt
* `accounts.include`: welche Adressen es berührt
* `accounts.roles`: welche benannte Position welche Adresse halten muss
* `includeCpi` und `includeFailed`: ob innere Anweisungen und fehlgeschlagene Transaktionen zählen

**Filter wählen Anweisungen aus; Benachrichtigungen liefern die gesamte Transaktion.**

### Wie es im Vergleich steht

<CardGroup cols={2}>
  <Card title="vs Enhanced WebSockets" icon="bolt">
    [Enhanced WebSockets](/docs/de/rpc/websocket) streamen ganze Transaktionen oder Kontoupdates ohne Dekodierung. Parsed Streams stimmt auf Anweisungsebene ab und dekodiert alles für Sie.
  </Card>

  <Card title="vs LaserStream gRPC" icon="server">
    [LaserStream](/docs/de/laserstream) ist eine hochdurchsatzfähige gRPC-Firehose, die Sie auf dem Client filtern und dekodieren. Parsed Streams ist eine WebSocket-API, die auf dem Server filtert und dekodiert.
  </Card>

  <Card title="vs Parsed Events" icon="clock-rotate-left">
    [Parsed Events](/docs/de/parsed-events) wendet dieselbe Dekodierung auf historische Transaktionen an: Signaturen analysieren oder den Verlauf einer Adresse auf Abruf über REST und GraphQL durchsehen. Parsed Streams übertragt neue Transaktionen, sobald sie landen.
  </Card>
</CardGroup>

## Unterstützte Programme

Parsed Streams dekodiert **3.600+ Programme** aus ihren On-Chain-IDLs, plus Kernprogramme wie SPL Token, Token-2022 und das Systemprogramm über integrierte Dekodierer. Sie können nach *jeder* Programmadresse filtern. Anweisungen, die der Dienst nicht dekodieren kann, werden stattdessen als Rohdaten gestreamt.

Einige der am häufigsten verwendeten dekodierten Programme:

<AccordionGroup>
  <Accordion title="DEXs & AMMs" icon="arrow-right-arrow-left">
    | Programm              | Adresse                                        |
    | --------------------- | ---------------------------------------------- |
    | Jupiter Aggregator v6 | `JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4`  |
    | Raydium CLMM          | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` |
    | Raydium CPMM          | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` |
    | Orca Whirlpool        | `whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc`  |
    | Meteora DLMM          | `LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo`  |
    | Meteora Pools         | `Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB` |
    | Lifinity v2           | `2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c` |
  </Accordion>

  <Accordion title="Launchpads" icon="rocket">
    | Programm | Adresse                                       |
    | -------- | --------------------------------------------- |
    | Pump.fun | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` |
    | PumpSwap | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` |
  </Accordion>

  <Accordion title="Lending & Perps" icon="building-columns">
    | Programm       | Adresse                                       |
    | -------------- | --------------------------------------------- |
    | marginfi v2    | `MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA` |
    | Kamino Lending | `KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD` |
  </Accordion>

  <Accordion title="NFTs & Kompression" icon="image">
    | Programm                  | Adresse                                        |
    | ------------------------- | ---------------------------------------------- |
    | Metaplex Bubblegum (cNFT) | `BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY` |
  </Accordion>
</AccordionGroup>

<Tip>
  Sie sehen kein Programm? Es ist wahrscheinlich immer noch im Katalog. Rufen Sie [`describeProgram`](/docs/de/parsed-streams/quickstart#entdeckung) mit seiner Adresse auf, um seine Anweisungen, Ereignisse und Kontorollen zu sehen.
</Tip>

## Zugang

Parsed Streams ist in der offenen Beta und in kostenpflichtigen Plänen verfügbar. Holen Sie sich Ihren API-Schlüssel vom [Helius Dashboard](https://dashboard.helius.dev).

Verbinden Sie sich mit dem Beta-Endpunkt:

```text theme={"system"}
wss://fs-beta.helius-rpc.com/?api-key=<API_KEY>
```

Authentifizieren Sie sich mit dem API-Schlüssel Ihres Projekts, weitergegeben als `api-key`-Abfrageparameter (oder im `x-api-key`-Header). Der Schlüssel wird überprüft, wenn die Verbindung geöffnet wird: Ein fehlender oder ungültiger Schlüssel wird mit HTTP 401 abgelehnt und ein Projekt an seiner Verbindungsgrenze erhält HTTP 429.

## Jetzt starten

<CardGroup cols={2}>
  <Card title="Schnellstart" icon="bolt" href="/docs/de/parsed-streams/quickstart">
    Verbinden, ersten Filter senden und Benachrichtigung lesen.
  </Card>

  <Card title="Jupiter-Swaps verfolgen" icon="arrow-right-arrow-left" href="/docs/de/parsed-streams/guides/track-jupiter-swaps">
    Erstellen und abonnieren Sie einen echten Filter mithilfe der Programmentdeckung.
  </Card>

  <Card title="Pump.fun-Mints verfolgen" icon="rocket" href="/docs/de/parsed-streams/guides/track-pumpfun-mints">
    Ein wiederverbindungs-sicherer Listener, der jede neue Pump.fun-Token-Bereitstellung protokolliert.
  </Card>

  <Card title="Umgang mit Wiederverbindungen" icon="rotate" href="/docs/de/parsed-streams/guides/handling-reconnects">
    Erkennen von Trennungen, zurücksetzen, neu abonnieren und verpasste Slots nachfüllen.
  </Card>
</CardGroup>
