Skip to main content
Best Practices und empfohlene Muster für Agenten, die das Helius TypeScript SDK verwenden. Für Installation und Einstieg siehe die Übersicht.

Empfehlungen für Agenten

Verwenden Sie getTransactionsForAddress anstelle einer zweistufigen Abfrage

getTransactionsForAddress kombiniert Signaturabfrage und Transaktionsabruf in einem einzigen Aufruf mit serverseitiger Filterung. Es unterstützt Zeit-/Slot-Bereiche, Token-Konto-Filterung und Paginierung.

Verwenden Sie sendSmartTransaction für Standard-Sendungen

Es simuliert automatisch, schätzt Recheneinheiten, ruft Priority Fees ab und bestätigt. Bauen Sie keine ComputeBudget-Anweisungen manuell — das SDK fügt sie automatisch hinzu.

Verwenden Sie Helius Sender für ultra-niedrige Latenz

Für zeitkritische Transaktionen (Arbitrage, Sniping, Liquidationen) verwenden Sie sendTransactionWithSender. Es leitet über Helius’ Multi-Region-Infrastruktur und Jito.

Verwenden Sie getAssetBatch für mehrere Assets

Beim Abrufen von mehr als einem Asset bündeln Sie diese. Rufen Sie getAsset nicht in einer Schleife auf.

Verwenden Sie Webhooks oder WebSockets anstelle von Polling

Führen Sie kein Polling von getTransactionsForAddress in einer Schleife durch. Verwenden Sie Webhooks für Server-zu-Server-Benachrichtigungen oder WebSockets für Echtzeit-Client-Streaming.

Paginierung

Das SDK verwendet je nach Methode unterschiedliche Paginierungsstrategien.

Token-/Cursor-basiert (RPC V2 Methoden)

Seitenbasiert (DAS API)

tokenAccounts Filter

Beim Abfragen von getTransactionsForAddress steuert der tokenAccounts-Filter, ob Aktivität von Token-Konten einbezogen wird:

changedSinceSlot — Inkrementelles Kontoabrufen

changedSinceSlot gibt nur Konten zurück, die nach einem bestimmten Slot geändert wurden. Nützlich für Synchronisierungs- oder Indizierungs-Workflows. Unterstützt von getProgramAccountsV2, getTokenAccountsByOwnerV2, getAccountInfo, getMultipleAccounts, getProgramAccounts, und getTokenAccountsByOwner.

Häufige Fehler

  1. transactionDetails: "full" ist nicht der Standard — Standardmäßig gibt getTransactionsForAddress nur Signaturen zurück. Setzen Sie transactionDetails: "full", um vollständige Transaktionsdaten zu erhalten.
  2. Fügen Sie keine ComputeBudget-Anweisungen mit sendSmartTransaction hinzu — Das SDK fügt sie automatisch hinzu. Eigene hinzufügen verursacht doppelte Anweisungen und Transaktionsfehler.
  3. Prioritätsgebühren sind in Mikro-Lamports pro Recheneinheit — Nicht in Lamports. Werte aus getPriorityFeeEstimate sind bereits in der korrekten Einheit für SetComputeUnitPrice.
  4. DAS-Paginierung ist 1-indiziertpage: 1 ist die erste Seite, nicht page: 0.
  5. blockTime ist in Unix-Sekunden, nicht Millisekunden — Verwenden Sie Math.floor(Date.now() / 1000), wenn Sie nach blockTime filtern.
  6. getAsset verbirgt fungible Token standardmäßig — Geben Sie options: { showFungible: true } an, um sie einzuschließen.
  7. WebSocket-Streams benötigen Bereinigung — Verwenden Sie immer ein AbortController-Signal und rufen Sie helius.ws.close() auf, wenn Sie fertig sind, um Verbindungslecks zu vermeiden.
  8. Setzen Sie maxSupportedTransactionVersion: 1, wenn Sie Transaktionen abrufen. getTransaction, getBlock, und getTransactionsForAddress mit transactionDetails: "full" schlagen mit Fehler -32015 bei Transaktion v1 sonst fehl. Bei v1-Transaktionen ist die Prioritätsgebühr message.transactionConfig.priorityFee, eine Summe in Lamports; es gibt keine ComputeBudget-Anweisungen, die gescannt werden können. Siehe Transaktion v1 Unterstützung.

Fehlerbehandlung und Wiederholungen

Das SDK wirft native Error-Objekte mit dem HTTP-Statuscode eingebettet in die Nachrichtenzeichenkette (z. B. "API error (429): ..."). Es gibt keine .status-Eigenschaft im Fehlerobjekt, daher erfordert die Statuserkennung die Nachrichtenanalyse.