Passer au contenu principal
Préconfirmations diffuse les transactions avant qu’elles ne soient fragmentées — Helius préconfirme à l’instant où le leader les exécute, avec leur statut d’exécution. Ce guide construit un écouteur qui surveille un compte cible, décode chaque transaction et réagit en utilisant Sender Max.
Preconfirmations est disponible avec toutes les offres payantes et coûte 10 crédits par message transmis. Les slots sans aucun message transmis ne coûtent aucun crédit. Lorsqu’un slot transmet au moins un message, un minimum de 300 crédits s’applique à chaque abonnement. Consultez la section Tarification.

Définir la portée du flux avant de vous connecter

Un preconfSubscribe sans filtre transmet chaque transaction au coût de 10 crédits. Appliquez des filtres côté serveur pour limiter la facture aux transactions sur lesquelles vous intervenez. Chaque abonnement est facturé indépendamment lorsqu’il reçoit au moins un message dans un slot couvert éligible. Regroupez donc, lorsque cela est possible, les filtres de comptes dans un seul abonnement. Utilisez regionInclude pour limiter la facturation aux régions dont vous avez besoin, définissez includeSource: ["helius"] lorsque vous n’avez pas besoin de BAM et suivez vos crédits dans le tableau de bord Helius.
Trois filtres couvrent la plupart des écouteurs de trading :
  • failed: false élimine les transactions déjà connues pour avoir été annulées, que vous n’avez aucune raison de précipiter.
  • regionInclude ancre le flux à la région la plus proche de votre infrastructure, afin qu’un saut interrégional ne consomme pas l’avance.
  • accountInclude correspond à toute tx référencée par votre cible : un portefeuille, un pool AMM, un programme, etc. Helius résout les tables de consultation d’adresses côté serveur, donc le filtre correspond même lorsque le compte est chargé via un ALT.

Connectez-vous, abonnez-vous et décodez

preconfSubscribe est servi depuis le point de terminaison Gatekeeper (wss://beta.helius-rpc.com), et les notifications arrivent sous forme de trames binaires, pas JSON. Chaque trame est un préfixe immuable de 18 octets suivi de la transaction sérialisée en bincode :
listener.js
Vérifiez d’abord l’octet de version. Si Helius met à jour le format de charge utile, la version s’incrémente, et s’y brancher maintient votre décodeur fonctionnel. La transaction désérialisée vous donne les instructions, les comptes et la signature.

Agir avec Sender Max

Une préconfirmation ne rapporte que si votre réponse arrive en premier. Envoyez votre réaction via Sender Max : le pourboire de 0,001 SOL entre dans le tampon de pourboire prioritaire et est acheminé via chaque voie à haute vitesse :
Gardez cet gestionnaire court. Décidez et envoyez, et déplacez la journalisation, la comptabilité et la réconciliation hors du chemin de réception. Voir Land Trades with Sender pour la boucle d’envoi complète, y compris le réchauffement de la connexion et l’estimation des frais.

Confirmez l’atterrissage et attendez-vous à des écarts

Une préconfirmation est un aperçu précoce. La transaction n’a pas encore atterri et peut encore échouer ou être abandonnée, donc deux règles s’appliquent :
  • Confirmez via des vérifications d’engagement standard (getSignatureStatuses, ou un flux processed-engagement) avant de considérer la transaction observée ou votre réaction comme définitive.
  • Attendez-vous à des écarts. La couverture évolue avec la part du jalonnement transférée à Helius, donc certains créneaux ne produisent aucun message. C’est un comportement attendu plutôt qu’une connexion interrompue, et le ping keepalive différencie les deux. Réabonnez-vous à la fermeture.

Guides associés

Référence API preconfSubscribe

Semantiques complètes des filtres, codes régionaux et disposition de la charge utile binaire

Commerce sur les Transactions Prétraitées

Couverture pré-exécution à 0,1 crédit par message, sur tous les plans payants