Prérequis : Une clé API Helius (plan Business ou Professional pour Mainnet LaserStream) et Node.js 18+. Une connaissance des Abonnements de Comptes et de la Surveillance des Transactions est utile mais non requise.
Configuration
Créez un nouveau projet, installez le SDK +bs58 (utilisé pour décoder les signatures de transaction), et définissez votre clé API :
Le script
Enregistrez ceci commeindex.ts, puis exécutez npx ts-node index.ts :
Ce que fait le script
Un abonnement, deux blocs de filtres
Un seul appelsubscribe(...) transporte deux groupes de filtres nommés :
- Le filtre
accountsreçoit chaque compte possédé par le programme Pump.fun (courbes de liaison, état de la frappe, etc.) chaque fois que leurs données changent. - Le filtre
transactionsreçoit chaque transaction qui interagit avec le programme Pump.fun. Les drapeauxvote: false, failed: falsesuppriment les votes et les transactions échouées avant qu’ils n’atteignent votre gestionnaire.
Lecture des champs bruts
Quelques valeurs dans la charge utile nécessitent une petite conversion avant d’être faciles à utiliser :tx.signatureest unBuffer. Passez-le parbs58.encode(...)pour obtenir la signature base58 que vous verriez dans un explorateur ou dans une réponsegetTransaction.tx.meta.feeest un u64 stocké sous forme de chaîne pour que les valeurs au-dessus deNumber.MAX_SAFE_INTEGERne perdent pas de précision en JavaScript. Enveloppez-le dansNumber(...)avant de faire des calculs. La même convention chaîne-pour-u64 s’applique à plusieurs champs de niveau bloc aussi — voir Surveillance de Slot et Bloc pour la forme complète des données.
Statistiques continues
UnsetInterval imprime un instantané toutes les 60 secondes : total des transactions, succès versus échecs, débit, payeurs de frais uniques et frais totaux en SOL. Appuyez sur Ctrl+C pour un dernier instantané avant que le script ne se termine.
Extension du script
Quelques directions pour aller plus loin :- Décodez les discriminateurs d’instruction pour étiqueter les échanges comme
buy/sell/create— voir Décodage des Données de Transactions pour le modèle d’analyse. - Conservez les statistiques continues dans une base de données (Postgres, Redis, ClickHouse) au lieu de
Set/ compteurs en mémoire. - Alertez sur les seuils — grands payeurs de frais, pics soudains de volume, nouveaux comptes à courbe de liaison.
- Rejouez l’activité manquée au démarrage en définissant
fromSlotsurSubscribeRequest(jusqu’à 24 heures en arrière — voir Relecture Historique). - Combinez avec Surveillance de Slot et Bloc pour un contexte de niveau bloc.
Prochaines étapes
Surveillance des Transactions
Les modèles généraux de filtrage des transactions que ce script utilise.
Décodage des Données de Transactions
Analysez la charge utile binaire des transactions en transactions Solana lisibles.
Abonnements de Comptes
Surveillez les changements d’état de comptes spécifiques avec des filtres.
Relecture Historique
Rejouez jusqu’à 24h d’activité passée de Pump.fun à partir d’un slot de départ.