Skip to main content
Sender soumet simultanément votre transaction à travers chaque voie à grande vitesse (Helius, Jito, Harmonic, Rakurai) et ne consomme aucun crédit API. Vous payez par envoi avec un pourboire en SOL. Ce guide construit une boucle d’envoi en production avec des connexions chaudes, des frais à prix réel et une confirmation avec une politique de nouvelle tentative.

Choisissez votre niveau

Sender Max (pourboire minimum de 0,001 SOL) s’adresse à toutes les voies et entre dans le tampon de pourboires prioritaires, où un plus grand pourboire atterrit en premier. SWQOS-only (0,000005 SOL) prend une seule voie rapide pour un flux optimisé en termes de coûts. Ajoutez ?swqos_only=true à l’URL du point de terminaison. Les pourboires entre les deux minimums sont des meilleurs efforts à travers moins de voies, donc choisissez l’un ou l’autre niveau.

Choisissez votre point de terminaison

Les backends doivent utiliser le point de terminaison HTTP régional le plus proche de leurs serveurs (http://ewr-sender.helius-rpc.com/fast, fra, slc, ams, lon, sg, tyo). Les navigateurs doivent utiliser le point de terminaison HTTPS global https://sender.helius-rpc.com/fast, qui s’auto-route et évite les problèmes CORS.

Préchauffez la connexion

Une poignée de main TCP/TLS à froid ajoute une latence au premier envoi après une période d’inactivité. Si votre système peut dépasser environ 5 secondes entre les envois, gardez la connexion chaude avec le point de terminaison ping :

Construisez la transaction

Chaque transaction Sender doit inclure à la fois un transfert de pourboire à un compte de pourboire désigné et un prix d’unité de calcul. Sender rejette les transactions manquant soit l’un soit l’autre. Le codage en dur des frais de priorité vous fait surpayer sur les marchés calmes et perdre des courses sur les marchés chargés, alors fixez-les à partir de l’API des frais de priorité :
send.ts
Le pourboire détermine quelles voies votre transaction peut emprunter, et les frais de priorité augmentent sa position dans la file d’attente du validateur. Ensemble, ils maximisent la probabilité d’inclusion.

Envoyer, puis confirmer

Soumettez avec skipPreflight: true pour échanger la validation côté client contre la latence, puis confirmez via votre connexion RPC. Sender renvoie immédiatement la signature, ce qui n’est pas une preuve d’atterrissage :
Avec maxRetries: 0 vous possédez la politique de nouvelle tentative : lorsque la confirmation expire, reconstruisez avec un nouveau blockhash et des frais réévalués au lieu de renvoyer la transaction obsolète. Le débit par défaut est de 50 TPS. Les plans professionnels peuvent demander des limites plus élevées.

Optionnel : contournez les attaquants en sandwich

Ajoutez ?mev-protect=true à l’URL du point de terminaison pour éviter les validateurs statistiquement liés aux attaques sandwich. Le corps de la requête reste inchangé, et cela fonctionne sur les deux niveaux :
Voir MEV Protect pour les compromis. Pour une exécution multi-transaction atomique (jusqu’à 4 transactions, tout-ou-rien), utilisez sendBundle sur le même point de terminaison.

Guides connexes

Aperçu de Sender

Niveaux, points de terminaison, comptes de pourboires et limites de taux en entier

Échanger sur les pré-confirmations

Associer le chemin d’envoi le plus rapide avec le signal de transaction le plus tôt