Skip to main content
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.

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

vs Enhanced WebSockets

Enhanced WebSockets streamen ganze Transaktionen oder Kontoupdates ohne Dekodierung. Parsed Streams stimmt auf Anweisungsebene ab und dekodiert alles für Sie.

vs LaserStream gRPC

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.

vs Parsed Events

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.

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:
Sie sehen kein Programm? Es ist wahrscheinlich immer noch im Katalog. Rufen Sie describeProgram mit seiner Adresse auf, um seine Anweisungen, Ereignisse und Kontorollen zu sehen.

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. Verbinden Sie sich mit dem Beta-Endpunkt:
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

Schnellstart

Verbinden, ersten Filter senden und Benachrichtigung lesen.

Jupiter-Swaps verfolgen

Erstellen und abonnieren Sie einen echten Filter mithilfe der Programmentdeckung.

Pump.fun-Mints verfolgen

Ein wiederverbindungs-sicherer Listener, der jede neue Pump.fun-Token-Bereitstellung protokolliert.

Umgang mit Wiederverbindungen

Erkennen von Trennungen, zurücksetzen, neu abonnieren und verpasste Slots nachfüllen.