
Un nonce est un nombre ou un compteur utilisé une seule fois pour garantir qu’une action spécifique n’ait lieu qu’une fois et dans le bon ordre. Il s’apparente à un numéro de file d’attente ou à un code de vérification à usage unique, devenu invalide après utilisation ou expiration.
Dans la blockchain, le nonce se présente généralement sous trois formes : la numérotation séquentielle au niveau du compte (qui contrôle l’ordre des transactions depuis une même adresse), la valeur changeant en continu lors des tentatives de minage (pour trouver un hash de bloc conforme à la difficulté du réseau), et le code de défi dans les signatures de connexion (pour empêcher la réutilisation de messages anciens). Dans tous ces cas, les objectifs sont l’unicité et la protection contre le rejeu.
Sans nonce, d’anciennes transactions ou signatures pourraient être soumises à nouveau, ouvrant la voie à des attaques par rejeu. Une attaque par rejeu survient lorsqu’un attaquant copie et renvoie un message précédemment valide, ce qui entraîne la répétition d’opérations qui ne devraient plus se produire.
Le nonce impose également l’ordre d’exécution des transactions pour une même adresse. Sans ce contrôle, des transferts ultérieurs pourraient être traités avant les précédents, compromettant la logique des smart contracts et risquant de bloquer des fonds ou de provoquer des échecs stratégiques. C’est pourquoi les principales blockchains intègrent le nonce au niveau protocolaire pour garantir cohérence et sécurité. En 2025, ce mécanisme est fondamental dans les écosystèmes basés sur l’EVM, les standards de connexion blockchain et les réseaux PoW.
Sur Ethereum et les chaînes compatibles, chaque adresse possède un compteur de transactions commençant à 0 : c’est le nonce du compte. La prochaine transaction doit utiliser la valeur actuelle ; une fois incluse dans un bloc, le nonce du compte augmente de un.
Si vous définissez un nonce inférieur à votre compteur actuel, les nœuds retourneront une erreur « nonce trop bas », car cette valeur a déjà été utilisée. S’il est trop élevé, le réseau attend les transactions intermédiaires manquantes, ce qui bloque le processus. Les portefeuilles gèrent généralement ce compteur automatiquement afin d’éviter les erreurs manuelles.
Exemple : si votre nonce actuel est 10, utilisez 10 pour la prochaine transaction. Si la transaction n°10 est bloquée et non minée, vous pouvez renvoyer une transaction similaire avec le même nonce mais des frais plus élevés afin de remplacer celle non confirmée et d’accélérer son traitement par les mineurs ou validateurs.
Dans le Proof of Work de Bitcoin, les mineurs ajustent en continu le champ nonce dans l’en-tête du bloc pour trouver un hash conforme à la difficulté du réseau. Le Proof of Work revient à « deviner le mot de passe d’un cadenas » : le premier mineur à trouver une solution valide propose le bloc et reçoit la récompense.
Le champ nonce de l’en-tête de bloc Bitcoin est codé sur 32 bits. Après avoir épuisé toutes les valeurs possibles, les mineurs modifient d’autres champs ajustables comme l’horodatage ou l’ordre des transactions (modifiant la racine de Merkle) afin d’élargir l’espace de recherche de nouveaux hashs. Ce processus consiste à « essayer différentes valeurs jusqu’à ce que l’une fonctionne ».
Lors d’une connexion à un portefeuille ou d’une signature web, le serveur génère un nonce aléatoire et l’intègre au message à signer. Une fois la signature réalisée, ce nonce est marqué comme utilisé ; chaque connexion suivante doit employer un nouveau nonce, ce qui empêche la validation d’un ancien message copié.
Par exemple, les standards de connexion basés sur Ethereum incluent fréquemment dans les messages des champs comme « nonce », « domaine » et « date d’expiration », créant ainsi des défis à usage unique. De nombreuses autorisations DeFi et signatures d’ordres s’appuient aussi sur le nonce pour identifier des instructions à usage unique ou des numéros de version, permettant la révocation d’anciennes commandes ou évitant leur exécution en double.
Il n’est généralement pas nécessaire de définir le nonce manuellement : les portefeuilles le gèrent automatiquement. Toutefois, savoir le vérifier peut s’avérer utile dans certains cas avancés.
Étape 1 : saisissez votre adresse dans un explorateur blockchain pour afficher l’index de la dernière transaction confirmée et vérifier les transactions en attente dans la file. La plupart des explorateurs affichent le nonce de chaque transaction, ce qui vous aide à déduire la prochaine valeur à utiliser.
Étape 2 : dans les paramètres avancés de votre portefeuille, vérifiez le nonce actuel de votre compte. Certains portefeuilles proposent temporairement un « nonce personnalisé » ; utilisez cette fonctionnalité avec prudence pour éviter les conflits avec des transactions en attente. Sur le portefeuille Web3 de Gate ou des services associés, le nonce est géré automatiquement et consultable dans les paramètres ou les détails de transaction.
Étape 3 : si vous devez définir manuellement le nonce (par exemple pour remplacer une transaction bloquée), vérifiez toujours l’état de la file de transactions afin d’éviter de sauter des étapes nécessaires. Un paramétrage erroné peut bloquer les transactions suivantes pour une période prolongée.
Les erreurs fréquentes incluent « nonce trop bas », « nonce trop élevé » et « transactions bloquées ». Voici comment les aborder :
Étape 1 : pour « nonce trop bas », ce nombre a déjà été utilisé ou une transaction non confirmée possède le même nonce. Consultez la liste des transactions en attente dans votre portefeuille et sur l’explorateur ; évitez d’envoyer un contenu différent avec un nonce déjà utilisé.
Étape 2 : pour « nonce trop élevé », il manque des numéros intermédiaires. Vous pouvez attendre la validation des transactions précédentes ou envoyer des transactions vides dans l’ordre (technique avancée—attention aux frais et aux risques).
Étape 3 : si une transaction est bloquée, renvoyez une transaction identique avec le même nonce mais des frais plus élevés pour remplacer l’ancienne et accélérer son inclusion. Une fois confirmée, le nonce de votre compte sera incrémenté.
Avertissement : un paramétrage incorrect du nonce peut bloquer toutes les transactions suivantes ou perturber la gestion de vos actifs. Vérifiez toujours la file de transactions et les frais avant toute intervention manuelle pour éviter les risques financiers liés à une erreur.
Les transactions issues d’une même adresse doivent être exécutées dans l’ordre des nonces, mais la priorité d’inclusion dépend des frais que vous acceptez de payer. Des frais plus élevés augmentent vos chances de traitement rapide ; envoyer une nouvelle transaction avec le même nonce permet de remplacer l’ancienne (« accélérer »).
En pratique, deux dimensions s’articulent : l’ordre intra-compte est contraint par le nonce, tandis que la concurrence entre comptes est déterminée par les frais de transaction. Si vos frais sont trop bas, certaines transactions portant des nonces spécifiques peuvent rester en attente longtemps, bloquant toute activité ultérieure.
Le nonce est à la base du séquencement des transactions, des opérations de minage et de la sécurité des signatures : il garantit unicité et bon ordre. L’incrémentation des nonces empêche le rejeu et l’exécution désordonnée dans les comptes ; les nonces variables du minage Bitcoin servent à rechercher des hashs conformes à la difficulté ; les nonces aléatoires des signatures de connexion protègent contre le rejeu de messages. En pratique, laissez les portefeuilles gérer automatiquement les nonces autant que possible ; en cas d’intervention manuelle, vérifiez systématiquement la file d’attente et les frais, notamment avec le portefeuille Web3 de Gate ou des outils compatibles, afin de limiter les transactions bloquées et les risques sur les actifs.
La réinitialisation du nonce invalide les transactions précédemment envoyées mais non confirmées. Il est conseillé d’attendre la confirmation ou le rejet par les mineurs de toutes les transactions en attente avant de réinitialiser. Si une transaction est bloquée, vous pouvez la remplacer en augmentant les frais de gas et en la renvoyant avec le même nonce—cela écrasera la transaction initiale.
Les écarts de nonce proviennent généralement de plusieurs transactions confirmées avec un compteur local non synchronisé ou d’un envoi dans le désordre. Pour corriger cela, vérifiez le nombre de transactions confirmées de votre compte sur Gate ou un explorateur blockchain ; le nonce de votre prochaine transaction doit correspondre à ce nombre. Si votre portefeuille affiche des erreurs localement, essayez de vider le cache ou de réimporter votre compte.
Les transactions simultanées nécessitent des nonces consécutifs. Par exemple, si votre nonce actuel est 5 : utilisez 5 pour la première transaction, 6 pour la deuxième, 7 pour la troisième, etc. Toutes seront exécutées dans l’ordre des nonces même si elles sont envoyées en parallèle. Les mineurs trient habituellement selon le nonce, il n’est donc pas nécessaire de s’inquiéter d’une exécution désordonnée.
Pour la signature hors ligne, vous devez renseigner manuellement le nonce—il ne peut pas être récupéré automatiquement. Étapes : vérifiez d’abord le nonce actuel de votre compte sur un appareil connecté → saisissez cette valeur dans le logiciel de signature de votre cold wallet → diffusez la transaction signée depuis un appareil en ligne. L’utilisation d’un nonce incorrect entraînera un rejet par le réseau ; vérifiez toujours l’exactitude avant toute opération hors ligne.
Oui—chaque blockchain maintient son propre compteur de nonce indépendant. L’envoi de 10 transactions (nonces 0 à 9) sur le mainnet Ethereum n’affecte pas votre compteur sur Polygon, qui recommencera à 0. Chaque chaîne gère l’état de compte de façon autonome. Lors d’opérations cross-chain via Gate, gardez à l’esprit que le changement de réseau réinitialise le calcul du nonce—évitez toute confusion en vérifiant après chaque changement.


