🧰 UtlKit

Comment Utiliser le Validateur de Checksum d’Adresse ETH: le 0x Doit Rester en Minuscule, Exactement 40 Chiffres Hexadécimaux, les Espaces des Bords sont Retirés Avant la Vérification, la Casse d’EIP-55 est Décidée par keccak256 Un Chiffre à la Fois, et le Format en Majuscule Change Même le Préfixe 0x en 0X

Parcours du validateur de checksum d’adresse ETH avec ses comportements exacts : l’exigence de 0x en minuscule, 40 chiffres hexadécimaux ou échec, espaces de bord retirés, la règle keccak256 qui met en majuscule une lettre quand le chiffre du résumé est 8 ou plus, et les trois états de résultat avec trois formats de copie.

Le Validateur de Checksum d’Adresse ETH répond à une seule question à propos d’une adresse Ethereum : la casse de ses lettres est-elle celle que prescrit EIP-55 ? Vous collez une adresse, vous appuyez sur Valider, et l’outil hache l’adresse avec keccak256, déduit la forme canonique à casse mêlée, puis la compare avec ce que vous avez saisi lettre par lettre. Tout se passe dans votre navigateur : la fonction keccak256 est embarquée dans la page, rien n’est envoyé, et l’adresse ne quitte jamais votre machine.

Collez l’adresse et appuyez sur Valider

Il n’y a pas de vérification en direct : la saisie n’est lue que lorsque vous appuyez sur le bouton Valider. Si vous appuyez avec une saisie vide, le résultat est simplement l’état rouge de format d’adresse non valide, sans plantage ni message particulier. Quand la saisie passe le contrôle de format, l’outil compare votre chaîne avec la forme checksummée lettre par lettre, et le résultat est soit checksum valide, quand les deux sont identiques, soit format valide mais la somme de contrôle ne correspond pas, quand les lettres sont justes mais la casse non.

Le contrôle de format : 0x plus exactement 40 chiffres hexadécimaux

Le contrôle est une seule expression régulière avec trois exigences. L’adresse doit commencer par le préfixe 0x en minuscule : un X majuscule est rejeté même si tout le reste est correct. Elle doit ensuite porter exactement 40 caractères hexadécimaux, ce qui fait de la chaîne complète 42 caractères ; un chiffre de moins ou un de trop, les deux échouent. Enfin, les espaces de début et de fin sont retirés avant la vérification, de sorte qu’une copie qui a traîné du remplissage autour de l’adresse passe quand même, tandis qu’un espace n’importe où à l’intérieur n’est pas un caractère hexadécimal et échoue.

Comment EIP-55 décide la casse de chaque lettre

Une fois le format valide, l’outil calcule la forme canonique. Il retire le préfixe 0x, passe les 40 caractères hexadécimaux en minuscule et les passe à keccak256, qui renvoie un résumé hexadécimal de 64 caractères. Il parcourt ensuite l’adresse position par position : pour chacune des 40 positions, il regarde le caractère correspondant du résumé, et si ce chiffre du résumé a une valeur de 8 ou plus, c’est-à-dire 8, 9 ou l’une des lettres de a à f, la lettre de l’adresse à cette position devient majuscule ; sinon elle reste minuscule. À peu près la moitié des lettres finit en majuscule, et lesquelles, c’est le hash qui le décide entièrement.

Ce que signifient les trois états de résultat

Un checksum valide en vert signifie que votre chaîne est, octet par octet, la forme canonique à casse mêlée, la forme qu’EIP-55 est conçu pour produire. L’état d’alerte, format valide mais la somme de contrôle ne correspond pas, signifie que les 40 chiffres hexadécimaux sont tous corrects mais qu’au moins une lettre a la mauvaise casse ; l’adresse pointe toujours vers le même compte, elle échoue juste au contrôle d’orthographe. Une adresse entièrement en minuscule est l’exemple classique de l’état de non-correspondance : le format est valide et le checksum ne correspond jamais. Il en va de même d’un 0x minuscule suivi de 40 chiffres hexadécimaux en majuscule : la porte du format est franchie, mais la forme canonique commence toujours par un x minuscule dans son préfixe, de sorte que les deux ne peuvent jamais être égales. Une chaîne avec un X majuscule dans le préfixe n’atteint même pas la comparaison, car la règle du préfixe seule suffit déjà à la rejeter.

Les trois copies que vous pouvez emporter

Quand le format est valide, trois cartes de résultat apparaissent, chacune avec son bouton de copier. La première montre la chaîne entière en minuscule. La deuxième la montre en majuscule, et comme la conversion s’applique à la chaîne complète, même le préfixe devient 0X, une forme que vous ne devriez pas coller dans un portefeuille. La troisième montre la forme checksummée EIP-55, celle qui vaut la peine d’être copiée : c’est l’adresse dont la casse porte son propre certificat de validité.

Pourquoi la casse compte

Sur la blockchain, la casse ne signifie rien : minuscule, majuscule et mêlée sont le même compte, car une adresse Ethereum c’est 20 octets et la casse des lettres ne fait pas partie de ces octets. Le checksum existe pour le côté humain de la transaction. Envoyer vers une adresse mal saisie est irrécupérable, et EIP-55 transforme à peu près la moitié des lettres en chiffres de contrôle sensibles à la casse, de sorte qu’un caractère mal saisi ou transposé produit souvent une chaîne dont le checksum ne correspond pas, et les portefeuilles et les formulaires d’exchange peuvent la rejeter avant que l’argent ne bouge.

Ce qui n’est pas ici, et où aller ensuite

L’outil est volontairement étroit : une saisie, un bouton, aucun historique conservé et aucun contrôle d’échange, car il n’y a rien à échanger. Si vous voulez voir le hash qui dirige les décisions de casse, le Générateur de Hash Keccak-256 calcule le même résumé keccak256 sur n’importe quelle saisie que vous choisissez. Si vous travaillez avec d’autres familles de hash, le Générateur de Hachage les couvre, et si votre travail avec Ethereum porte sur l’encodage d’appels de fonction et de données plutôt que sur les adresses, le Codeur/Décodeur ABI s’occupe de ce côté, tandis que le guide du codeur ABI parcourt le même pipeline keccak256 depuis le côté encodage.

Outils Associés

Questions Fréquentes

Le checksum modifie-t-il l’adresse elle-même ?

Non. La casse ne fait pas partie des 20 octets de l’adresse : minuscule, majuscule et la forme mêlée pointent toutes vers le même compte. Le checksum ne marque que l’orthographe exacte qui est la forme canonique, de sorte qu’une adresse à la casse fausse est le même destinataire qui échoue un contrôle d’orthographe.

Que fait l’outil avec une saisie vide ou malformée ?

Il signale l’état rouge de format d’adresse non valide, rien de plus. Il ne plante pas et aucun message d’erreur supplémentaire n’apparaît. Une saisie vide, un 0x manquant, un X majuscule, un mauvais nombre de chiffres hexadécimaux et tout caractère non hexadécimal produisent tous le même résultat unique.

L’adresse est-elle envoyée quelque part pour être vérifiée ?

Non. La fonction keccak256 est embarquée dans la page et s’exécute dans votre navigateur, de sorte que l’adresse est hachée localement et ne quitte jamais votre machine. Rien n’est conservé d’une visite à l’autre non plus.

Pourquoi une adresse entièrement en minuscule affiche-t-elle une non-correspondance de checksum ?

Parce que la forme checksummée a à peu près la moitié de ses lettres en majuscule, décidé par le hash. Une chaîne entièrement en minuscule ne peut jamais être égale à cette forme, donc une adresse minuscule valide reste dans l’état de non-correspondance tant que vous ne la remplacez pas par la version checksummée.

Laquelle des trois sorties faut-il copier ?

Celle avec checksum EIP-55. C’est la seule forme qui porte un checksum valide, et la forme que la plupart des portefeuilles et formulaires d’exchange attendent. La copie en minuscule est commode pour comparer, et la copie en majuscule change même le préfixe 0x en 0X, c’est donc celle qu’il faut éviter de coller n’importe où.

Articles Associés