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 transactions comme
buy/sell/create— consultez Décodage des données de transaction pour découvrir le modèle d’analyse. - Conservez les statistiques glissantes dans une base de données (Postgres, Redis, ClickHouse) plutôt que dans des
Set/ compteurs en mémoire. - Déclenchez des alertes lorsque des seuils sont atteints — frais élevés, pics soudains de volume, nouveaux comptes de courbe de liaison.
- Rejouez l’activité manquée au démarrage en définissant
fromSlotsurSubscribeRequest(jusqu’à 48 heures en arrière — consultez Relecture historique). - Combinez cette approche avec la Surveillance des slots et des blocs pour obtenir un contexte au niveau des blocs.
- Suivez un seul token plutôt que l’ensemble du programme : indiquez l’adresse de création dans
accountIncludeet définissezmatchMints: truedans le filtre de transaction afin de recevoir chaque transfert, swap, création et destruction pour ce token (consultez Filtrage par adresse de création de token).
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.