Passer au contenu principal
La surveillance des transactions vous permet de suivre l’exécution des transactions, le statut de réussite/échec, les interactions de programme et les changements de solde de jetons sur Solana en temps réel. Ce guide couvre les stratégies de filtrage et les implémentations pratiques à l’aide du SDK helius-laserstream.
Prérequis : Ce guide suppose que vous avez complété le Démarrage rapide LaserStream gRPC et que vous avez une clé API.

Options de filtrage des transactions

LaserStream utilise la même structure de filtre que Yellowstone gRPC, y compris le filtre tokenAccounts (expansion ATA). Les champs à définir dans transactions.<label> :
  • accountInclude — correspond si l’un de ces comptes apparaît (OU logique)
  • accountRequired — correspond uniquement si tous ces comptes apparaissent (ET logique)
  • accountExclude — exclut si l’un de ces comptes apparaît
  • vote / failed — indicateurs booléens pour les transactions de vote et les transactions ayant échoué
  • tokenAccounts — active l’extension des comptes de jetons associés (ATA) ("balanceChanged", "all" ou "none"), afin qu’un portefeuille accountInclude corresponde également aux transactions dans lesquelles il détient un solde de jetons SPL. Consultez Filtrage des comptes de jetons (ATA) et l’onglet Surveiller un portefeuille ci-dessous.
  • matchMints — indicateur facultatif qui compare également les listes de comptes aux mints figurant dans les soldes de jetons avant et après une transaction, afin qu’un mint dans accountInclude capture chaque transfert, swap, mint et burn de ce jeton. Consultez Filtrage par mint de jeton et l’onglet Surveiller un jeton ci-dessous.
Surveiller les transactions impliquant des programmes spécifiquesSuivre toutes les transactions qui touchent les programmes qui vous intéressent :
Idéal pour : Surveillance spécifique aux programmes, suivi de protocoles DeFi, interactions avec des contrats intelligents.

Exemples pratiques

Exemple 1 : surveiller les transactions DEX

Suivez les transactions impliquant des programmes DEX populaires :

Exemple 2 : surveiller les transactions ayant échoué

Suivez les transactions ayant échoué afin de détecter les problèmes de l’application :

Exemple 3 : surveiller les transactions de grande valeur

Suivez les transactions comportant des transferts importants de SOL :

Exemple 4 : surveiller un portefeuille (y compris les transferts de jetons)

Surveillez tous les mouvements de fonds d’un portefeuille, y compris les transferts entrants de jetons SPL qui impliquent ses ATA, en ajoutant tokenAccounts à un filtre accountInclude simple :

Structure des données de transaction


Référence de la logique de filtrage

Include Logic (OR)

accountInclude : la transaction doit impliquer AU MOINS UN de ces comptes.["A", "B"] correspond aux transactions impliquant le compte A OU le compte B.

Required Logic (AND)

accountRequired : la transaction doit impliquer TOUS ces comptes.["A", "B"] correspond aux transactions impliquant le compte A ET le compte B.

Exclude Logic (NOT)

accountExclude : la transaction ne doit impliquer AUCUN de ces comptes.

Combined Logic

Filtre final : (accountInclude OR empty) AND (accountRequired AND all) AND NOT (accountExclude OR any).

Considérations relatives aux performances

Les flux de transactions peuvent être volumineux. Pour suivre le rythme :
  • Commencez par des filtres de programme spécifiques (ne vous abonnez pas à « toutes les transactions »)
  • Utilisez confirmed plutôt que processed si vous pouvez tolérer environ 1,5 s de latence supplémentaire
  • Surveillez votre capacité de traitement à l’aide d’un compteur
  • Envisagez d’exécuter des consommateurs en parallèle derrière une file d’attente

Gestion des erreurs

Symptôme : volume de transactions trop élevé.Solutions : ajoutez des filtres plus stricts (accountRequired, accountExclude) ; utilisez un niveau d’engagement supérieur ; mettez en œuvre un échantillonnage ou une limitation du débit ; traitez les données de manière asynchrone.
Symptôme : les transactions attendues n’apparaissent pas.Solutions : vérifiez que les adresses des programmes sont correctes ; vérifiez que les transactions existent réellement ; essayez processed pour obtenir des mises à jour plus rapides ; assouplissez les filtres restrictifs accountRequired/accountExclude.
Symptôme : impossible d’analyser les données de transaction.Solutions : gérez correctement les champs manquants ; validez la structure avant le traitement ; placez l’analyse dans un bloc try/catch ; consultez Décodage des données de transaction.

Étapes suivantes

Slot & Block Monitoring

Suivez le consensus du réseau et la production des blocs.

Stream Pump AMM Data

Exemple concret : surveillez les transactions AMM de Pump.fun.

Decoding Transaction Data

Analysez les charges utiles binaires des transactions pour obtenir des transactions Solana lisibles.

Yellowstone protocol reference

Le même workflow avec le protocole gRPC Yellowstone brut.