Zum Hauptinhalt springen
Streame mit dem LaserStream SDK jede Kontoaktualisierung und Transaktion von Pump.fun in Echtzeit. Diese Seite führt dich durch ein vollständiges TypeScript-Skript, das du direkt ausführen kannst: Es gibt jede Transaktion bei ihrem Eingang aus, meldet einmal pro Minute fortlaufende Statistiken (Durchsatz, eindeutige Gebührenzahler und Gesamtgebühren in SOL) und stellt die Verbindung nach Unterbrechungen automatisch wieder her. Es ist ein nützlicher Ausgangspunkt für alles, was kontinuierliche Einblicke in Pump.fun benötigt – Trading-Bots, Analyse-Dashboards, Benachrichtigungs-Pipelines oder einfach zum Erkunden der Datenstruktur, damit du darauf etwas Spezialisierteres aufbauen kannst.
Voraussetzungen: Ein Helius API key (Business- oder Professional-Tarif für Mainnet LaserStream) und Node.js 18+. Kenntnisse zu Kontosubscriptions und Transaktionsüberwachung sind hilfreich, aber nicht erforderlich.

Einrichtung

Erstelle ein neues Projekt, installiere das SDK und bs58 (zum Dekodieren von Transaktionssignaturen) und lege deinen API key fest:
Wähle den endpoint, der dem Ausführungsort dieses Skripts am nächsten liegt. Weitere Informationen findest du unter LaserStream-Regionen.

Das Skript

Speichere es als index.ts und führe dann npx ts-node index.ts aus:

Funktionsweise des Skripts

Eine Subscription, zwei Filterblöcke

Ein einzelner subscribe(...)-Aufruf enthält zwei benannte Filtergruppen:
  • Der Filter accounts empfängt jedes Konto, das dem Pump.fun-Programm gehört (Bonding Curves, Mint-Status usw.), sobald sich dessen Daten ändern.
  • Der Filter transactions empfängt jede Transaktion, die mit dem Pump.fun-Programm interagiert. Die Flags vote: false, failed: false filtern Votes und fehlgeschlagene Transaktionen heraus, bevor sie deinen Handler erreichen.
Beide werden über einen einzigen gRPC stream übertragen. Das SDK muss daher nur eine Verbindung verwalten. Wird sie unterbrochen, stellt das SDK sie automatisch wieder her und du erhältst weiterhin Aktualisierungen von beiden Filtern.

Rohdatenfelder auslesen

Einige Werte im payload benötigen eine kleine Konvertierung, bevor du sie problemlos verwenden kannst:
  • tx.signature ist ein Buffer. Übergib ihn an bs58.encode(...), um die Base58-Signatur zu erhalten, die du in einem Explorer oder einer getTransaction-response sehen würdest.
  • tx.meta.fee ist ein u64-Wert, der als String gespeichert wird, damit Werte über Number.MAX_SAFE_INTEGER in JavaScript nicht an Präzision verlieren. Übergib ihn vor Berechnungen an Number(...). Dieselbe String-Konvention für u64 gilt auch für mehrere Felder auf Blockebene. Die vollständige Datenstruktur findest du unter Slot- und Blocküberwachung.

Fortlaufende Statistiken

Ein setInterval gibt alle 60 Sekunden eine Momentaufnahme aus: Gesamtzahl der Transaktionen, erfolgreiche und fehlgeschlagene Transaktionen, Durchsatz, eindeutige Gebührenzahler und Gesamtgebühren in SOL. Drücke Ctrl+C, um vor dem Beenden des Skripts eine letzte Momentaufnahme auszugeben.

Das Skript erweitern

Einige Möglichkeiten, das Skript weiterzuentwickeln:
  • Dekodiere Instruction-Discriminators, um Trades als buy / sell / create zu kennzeichnen. Das Parsing-Muster findest du unter Transaktionsdaten dekodieren.
  • Speichere die fortlaufenden Statistiken in einer Datenbank (Postgres, Redis, ClickHouse) statt in Set / Zählern im Arbeitsspeicher.
  • Löse Warnungen aus, wenn Schwellenwerte überschritten werden, etwa bei hohen Gebührenzahlern, plötzlichen Volumenspitzen oder neuen Bonding-Curve-Konten.
  • Spiele beim Start verpasste Aktivitäten erneut ab, indem du fromSlot für SubscribeRequest festlegst (bis zu 48 Stunden rückwirkend – siehe Historische Wiedergabe).
  • Kombiniere dies mit der Slot- und Blocküberwachung, um Kontext auf Blockebene zu erhalten.
  • Verfolge einen einzelnen token statt des gesamten Programms: Trage den Mint in accountInclude ein und lege matchMints: true im Transaktionsfilter fest, um jeden Transfer, Swap, Mint und Burn für diesen token zu empfangen (siehe Nach token-Mint filtern).

Nächste Schritte

Transaction Monitoring

Die allgemeinen Muster zur Transaktionsfilterung, die dieses Skript verwendet.

Decoding Transaction Data

Parse den binären Transaktions-payload in lesbare Solana-Transaktionen.

Account Subscriptions

Überwache mit Filtern bestimmte Änderungen am Kontostatus.

Historical Replay

Spiele bis zu 24 Stunden vergangener Pump.fun-Aktivitäten ab einem Start-slot erneut ab.