Qu’est-ce que transactionSubscribe?
La méthode WebSocket transactionSubscribe (une extension Helius de l’API WebSocket standard Solana) permet des événements de transaction en temps réel.
Pour l’utiliser, fournissez un TransactionSubscribeFilter et incluez éventuellement TransactionSubscribeOptions pour une personnalisation supplémentaire.
transactionSubscribe réside sur le même wss://mainnet.helius-rpc.com et wss://devnet.helius-rpc.com unifiés endpoints que les méthodes d’abonnement standard de Solana.
INLINE_CODE_PLACEHOLDER_90586faa3b753_END
vote: indicateur booléen pour inclure/exclure les transactions liées au votefailed: indicateur booléen pour inclure/exclure les transactions qui ont échouésignature: filtre les mises à jour vers une transaction spécifique basée sur sa signatureaccountInclude: liste de comptes pour lesquels vous souhaitez recevoir des mises à jour de transaction. Un seul des comptes doit être inclus dans les mises à jour de transaction (par exemple, Compte 1 OU 2).accountExclude: liste de comptes que vous souhaitez exclure des mises à jour de transactionaccountRequired: les transactions doivent inclure tous les comptes spécifiés pour être incluses dans les mises à jour (par exemple, Compte 1 ET 2)tokenAccounts: expansion optionnelle des comptes de jetons associés (ATA) (balanceChanged,all, ounone). Voir Surveiller un portefeuille, y compris les transferts de jetons ci-dessous.
TransactionSubscribeOptions (optionnel)
commitment: niveau d’engagement pour récupérer les données (processed,confirmed, oufinalized)encoding: format d’encodage des données retournées (base58,base64, oujsonParsed)transactionDetails: niveau de détail pour les données retournées (full,signatures,accountsetnone)showRewards: indicateur booléen indiquant si les données de récompense doivent être incluses dans les mises à jourmaxSupportedTransactionVersion: spécifie la version la plus élevée des transactions dont vous souhaitez recevoir les mises à jour. Définissez la valeur sur1pour recevoir les transactions legacy, v0 et v1. Voir Transaction v1 support.
maxSupportedTransactionVersion est requis pour retourner les comptes et les détails de niveau complet d’une transaction donnée (c’est-à-dire, transactionDetails: "accounts" | "full").Exemple d’abonnement à une transaction
Dans cet exemple, nous nous abonnons aux transactions contenant le compte Raydium675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8.
Lorsqu’une transaction contenant le compte 675k...1Mp8 dans le accountKeys de la transaction se produit, nous recevrons une notification WSS.
Sur la base des options d’abonnement, la notification de transaction sera envoyée au niveau d’engagement processed, encodage jsonParsed, détails de la transaction full, et affichera les récompenses.
Exemple de notification
Surveiller un portefeuille, y compris les transferts de jetons
Lorsque vous surveillez un portefeuille avecaccountInclude, vous ne correspondez qu’aux transactions où la clé publique du portefeuille apparaît directement dans les clés de compte. Un cas commun passe inaperçu : lorsque quelqu’un envoie au portefeuille un jeton SPL (USDC, par exemple), le transfert touche le compte de jetons associé (ATA) du portefeuille, et non la clé publique du portefeuille — donc un abonnement en ligne accountInclude: [wallet] ne le voit jamais.
Définissez le champ tokenAccounts pour élargir la correspondance de sorte que le compte surveillé corresponde également aux transactions où il détient un solde de jeton :
balanceChanged: correspondance lorsque le portefeuille détient un solde de jeton dont le montant a changé (ou dont le compte de jeton a été fermé) dans la transaction. Utilisez ceci pour “me dire quand l’argent a réellement bougé.” C’est le choix le plus étroit, à faible volume et le plus courant.all: correspond à toute transaction référencée à un solde de jeton que le portefeuille détient, même si invariable. Volume plus élevé.none: pas d’expansion. Identique à l’omission du champ (par défaut).
-32602. Les abonnements qui omettent tokenAccounts se comportent exactement comme avant. Pour un aperçu complet du fonctionnement de l’expansion ATA, voir Filtrage des comptes de jetons (ATA) sur WebSocket.
Surveiller les nouveaux Jupiter DCAs
Jupiter DCA, ou Dollar Cost Averaging, est un moyen de programmer des transactions récurrentes sur Solana. Étant donné que ces ordres d’achat/vente programmés sont enregistrés sur la chaîne, les traders peuvent utiliser la méthodetransactionSubscribe et getAsset pour écouter les nouveaux ordres.
Exemple de notification

Surveiller les nouveaux tokens pump.fun
Exemple de notification

Gestion des abonnements
Identifiants d’abonnement
LorsquetransactionSubscribe réussit, le serveur renvoie un identifiant d’abonnement dans le champ result. C’est le même numéro qui apparaît dans params.subscription à chaque notification de cet abonnement :
Désabonnement
Pour arrêter de recevoir des notifications, appeleztransactionUnsubscribe avec l’identifiant d’abonnement. Chaque appel transactionSubscribe sur la même connexion crée un abonnement distinct avec son propre identifiant, alors assurez-vous de vous désabonner avant de vous réabonner pour éviter de recevoir des notifications en double.
transactionUnsubscribe. C’est un comportement attendu.