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.