O Validador de Checksum de Endereço ETH responde a uma única pergunta sobre um endereço Ethereum: a maiúscula e minúscula das letras é a que o EIP-55 prescreve? Você cola um endereço, pressiona Validar, e a ferramenta faz o hash do endereço com keccak256, deriva a forma canônica com maiúsculas e minúsculas misturadas e compara com o que você digitou letra por letra. Tudo acontece no seu navegador: a função keccak256 vem empacotada na página, nada é enviado, e o endereço nunca sai da sua máquina.
Cole o endereço e pressione Validar
Não há verificação ao vivo: a entrada é lida somente quando você pressiona o botão Validar. Se você pressionar com a entrada vazia, o resultado é simplesmente o estado vermelho de formato de endereço inválido, sem travar e sem mensagem especial. Quando a entrada passa pela porta de formato, a ferramenta compara sua string com a forma com checksum letra por letra, e o resultado é ou bem checksum válido, quando as duas são idênticas, ou bem formato válido mas a checksum não confere, quando as letras estão certas mas a maiúscula e minúscula não.
A porta de formato: 0x mais exatamente 40 dígitos hexadecimais
A porta é uma única expressão regular com três exigências. O endereço deve começar com o prefixo 0x em minúscula: um X maiúsculo é rejeitado mesmo que tudo depois esteja certo. Depois ele deve levar exatamente 40 caracteres hexadecimais, o que torna a string inteira de 42 caracteres; um dígito a menos ou um a mais, os dois falham. Por fim, os espaços iniciais e finais são removidos antes da verificação, então uma cópia que trouxe preenchimento ao redor do endereço passa mesmo assim, enquanto um espaço em qualquer ponto interno não é um caractere hexadecimal e falha.
Como o EIP-55 decide a maiúscula de cada letra
Uma vez que o formato é válido, a ferramenta calcula a forma canônica. Ela remove o prefixo 0x, passa os 40 caracteres hexadecimais para minúscula e os entrega ao keccak256, que devolve um resumo hexadecimal de 64 caracteres. Então ela percorre o endereço posição por posição: para cada uma das 40 posições, olha o caractere correspondente do resumo, e se esse dígito do resumo tem valor 8 ou mais, ou seja 8, 9 ou qualquer letra de a a f, a letra do endereço nessa posição vira maiúscula; caso contrário fica minúscula. Aproximadamente metade das letras termina em maiúscula, e quais são, o hash decide por completo.
O que significam os três estados de resultado
Um checksum válido em verde significa que sua string é byte por byte a forma canônica de maiúsculas e minúsculas misturadas, a forma que o EIP-55 foi desenhado para produzir. O estado de aviso, formato válido mas a checksum não confere, significa que os 40 dígitos hexadecimais estão todos corretos mas pelo menos uma letra tem a maiúscula errada; o endereço ainda aponta para a mesma conta, ele só não passa na verificação ortográfica. Um endereço todo em minúscula é o exemplo clássico do estado de não confere: o formato é válido e a checksum nunca confere. O mesmo vale para um 0x em minúscula seguido de 40 dígitos hexadecimais em maiúscula: a porta de formato é atravessada, mas a forma canônica sempre começa com um x minúsculo no prefixo, de modo que as duas nunca podem ser iguais. Uma string com X maiúsculo no prefixo nem chega à comparação, porque a regra do prefixo sozinha já a elimina.
As três cópias que você pode levar
Quando o formato é válido, aparecem três cartões de resultado, cada um com seu botão de copiar. O primeiro mostra a string inteira em minúscula. O segundo a mostra em maiúscula, e como a conversão se aplica à string completa, até o prefixo vira 0X, uma forma que você não deveria colar em uma carteira. O terceiro mostra a forma com checksum EIP-55, a que vale a pena copiar: é o endereço com uma maiúscula e minúscula que carrega seu próprio certificado de validade.
Por que a maiúscula e minúscula importa
Na blockchain, a maiúscula e minúscula não significam nada: minúscula, maiúscula e misturadas são a mesma conta, porque um endereço Ethereum são 20 bytes e a maiúscula das letras não faz parte desses bytes. A checksum existe para o lado humano da transação. Enviar para um endereço digitado errado é irreversível, e o EIP-55 transforma aproximadamente metade das letras em dígitos de verificação sensíveis à maiúscula, de modo que um caractere digitado errado ou trocado costuma produzir uma string cuja checksum não confere, e carteiras e formulários de exchange podem rejeitá-la antes de o dinheiro se mover.
O que não existe aqui, e para onde ir a seguir
A ferramenta é deliberadamente estreita: uma entrada, um botão, sem histórico guardado e sem controle de troca, porque não há nada para trocar. Se você quiser ver o hash que dirige as decisões de maiúscula, o Gerador de Hash Keccak-256 calcula o mesmo resumo keccak256 sobre qualquer entrada que você escolher. Se você trabalha com outras famílias de hash, o Gerador de Hash as cobre, e se seu trabalho com Ethereum é sobre codificar chamadas de função e dados mais do que sobre endereços, o Codificador/Decodificador ABI cuida desse lado, enquanto o guia do codificador ABI percorre o mesmo conduto keccak256 a partir do lado da codificação.