Grenze den stream ein, bevor du dich verbindest
Ein ungefiltertespreconfSubscribe stellt jede Transaktion für jeweils 10 Credits zu. Filtere serverseitig, damit dir nur die Transaktionen berechnet werden, mit denen du handelst. Jedes Abonnement wird unabhängig abgerechnet, sobald es in einem berechtigten, abgedeckten slot mindestens eine Nachricht empfängt. Fasse Kontofilter daher nach Möglichkeit in einem Abonnement zusammen. Verwende regionInclude, um die Abrechnung auf die benötigten Regionen zu beschränken. Lege includeSource: ["helius"] fest, wenn du BAM nicht benötigst, und überwache deine Credits im Helius Dashboard.
failed: falseverwirft Transaktionen, von denen bereits bekannt ist, dass sie rückgängig gemacht wurden. Es gibt keinen Grund, bei ihnen um Schnelligkeit zu konkurrieren.regionIncludebindet den stream an die Region, die deiner Infrastruktur am nächsten liegt. So verbraucht ein regionsübergreifender Hop nicht deinen Vorsprung.accountIncludefindet jede Transaktion, die dein Ziel referenziert, etwa eine Wallet, einen AMM-Pool oder ein Programm. Helius löst Address Lookup Tables serverseitig auf. Der Filter greift daher auch, wenn das Konto über eine ALT geladen wird.
Verbinden, abonnieren und dekodieren
preconfSubscribe wird über den Gatekeeper endpoint (wss://beta.helius-rpc.com) bereitgestellt. Benachrichtigungen kommen als binäre Frames statt als JSON an.
Jeder Frame besteht aus einem festen 18-Byte-Präfix, gefolgt von der mit bincode serialisierten Transaktion:
listener.js
Mit Sender Max reagieren
Eine Preconfirmation lohnt sich nur, wenn deine response zuerst landet. Sende deine Reaktion über Sender Max: Der Tip von 0,001 SOL gelangt in den Priority-Tip-Puffer und wird über alle Hochgeschwindigkeitsrouten weitergeleitet:Landung bestätigen und mit Lücken rechnen
Eine Preconfirmation bietet nur einen frühen Einblick. Die Transaktion ist noch nicht gelandet und kann weiterhin fehlschlagen oder verworfen werden. Deshalb gelten zwei Regeln:- Bestätige die Landung mit den üblichen Prüfungen über commitment (
getSignatureStatusesoder einen stream mitprocessed-commitment), bevor du die beobachtete Transaktion oder deine Reaktion als final behandelst. - Rechne mit Lücken. Die Abdeckung hängt vom Anteil des Stake ab, der an Helius weitergeleitet wird. Deshalb erzeugen manche slot keine Nachrichten. Das ist erwartetes Verhalten und keine unterbrochene Verbindung. Der Keepalive-Ping hilft dir, beides zu unterscheiden. Abonniere nach dem Schließen erneut.
Weitere Leitfäden
preconfSubscribe API reference
Vollständige Filtersemantik, Regionscodes und Aufbau des binären payload
Trade on Preprocessed Transactions
Abdeckung vor der Ausführung für 0,1 Credits pro Nachricht in allen kostenpflichtigen Tarifen