Una dirección EIP-55 con checksum es una dirección de Ethereum que utiliza un patrón específico de letras mayúsculas y minúsculas para codificar una verificación de errores incorporada. La combinación de mayúsculas y minúsculas no es aleatoria ni cosmética. Es un hash keccak-256 mapeado sobre los caracteres hexadecimales para que las billeteras puedan detectar una dirección mal escrita antes de que envíes fondos al lugar equivocado. Si alguna vez te has preguntado qué es una dirección EIP-55 con checksum, la versión corta es esta: es la misma dirección de 40 caracteres que ya conoces, con las mayúsculas actuando como un detector de errores tipográficos gratuito.
Las direcciones de Ethereum no distinguen entre mayúsculas y minúsculas a nivel de protocolo, por lo que la red trata 0xabc... y 0xABC... como la misma cuenta. EIP-55 añade una capa adicional donde el patrón exacto de mayúsculas contiene información. Si una letra tiene la mayúscula incorrecta, una billetera compatible rechaza la dirección como inválida. Esta única protección ha evitado innumerables errores irreversibles.
¿Qué es una dirección EIP-55 con suma de verificación?#
Una dirección Ethereum en bruto tiene 20 bytes, mostrada como una cadena hexadecimal de 40 caracteres después del prefijo 0x. El hexadecimal usa los dígitos del 0 al 9 y las letras de la a a la f. Los dígitos no tienen mayúsculas ni minúsculas, pero esas seis letras sí, y ese es el espacio que explota EIP-55.
La propuesta, creada por Vitalik Buterin en 2016, definió una regla: aplicar hash a la dirección en minúsculas con keccak-256, luego usar ese hash para decidir qué letras se capitalizan. El resultado se ve así.
Minúsculas: 0x52908400098527886e0f7030069857d2e4169ee7
EIP-55: 0x52908400098527886E0F7030069857D2E4169EE7
Ambas cadenas apuntan a la misma cuenta. La segunda simplemente codifica una suma de verificación en su capitalización. Una billetera que entiende EIP-55 puede recalcular las mayúsculas esperadas y confirmar que nada se alteró en la transmisión.
Punto clave: las mayúsculas no cambian la dirección. Son metadatos incorporados en los caracteres. La blockchain los ignora; tu software de billetera los usa para detectar errores.
Por qué las direcciones Ethereum usan mayúsculas y minúsculas#
Antes de EIP-55, las direcciones Ethereum eran todas minúsculas. Un solo carácter mal escrito producía otra dirección de aspecto perfectamente válido, sin forma de saberlo. Bitcoin tenía sumas de verificación desde el principio mediante su codificación base58check, pero Ethereum no, por lo que la comunidad necesitaba una solución compatible hacia atrás que no rompiera los millones de direcciones en minúsculas existentes.
La mezcla de mayúsculas y minúsculas fue la respuesta elegante. Las direcciones antiguas en minúsculas siguen funcionando en todas partes, y las nuevas direcciones con suma de verificación añaden protección sin cambiar la longitud, el prefijo ni los bytes subyacentes. No hubo que cambiar nada del protocolo, razón por la cual EIP-55 fue adoptado casi universalmente por billeteras y exploradores.
Cómo funciona la suma de verificación keccak-256#
Esta es la parte que la mayoría de las explicaciones omiten o entierran en código. La regla en sí es simple: para cada letra en la dirección en minúsculas, observa el carácter correspondiente en el hash keccak-256 de esa dirección. Si el carácter del hash es 8 o superior, escribe la letra en mayúscula. Si es 7 o inferior, déjala en minúscula. Los dígitos nunca cambian porque no tienen mayúsculas ni minúsculas.
Paso a paso, con un ejemplo práctico#
- Elimina el prefijo y conviértelo a minúsculas. Comienza con los 40 caracteres hexadecimales después de
0x, todos en minúsculas. - Aplica keccak-256 al texto ASCII de esa cadena. Detalle importante: se aplica hash a la dirección como caracteres de texto, no como bytes sin procesar. Esto confunde a los desarrolladores que aplican hash a lo incorrecto.
- Alinea los dígitos del hash con los caracteres de la dirección. El hash también es hexadecimal, por lo que cada carácter de la dirección tiene un carácter de hash correspondiente en la misma posición.
- Aplica la regla de mayúsculas/minúsculas. Para cada carácter alfabético (a-f), si su dígito de hash correspondiente es 8, 9, a, b, c, d, e o f, escríbelo en mayúscula. De lo contrario, déjalo en minúscula. No toques los dígitos 0-9.
Recorre los primeros caracteres de una dirección cuya forma en minúsculas comienza con 0x5aaeb6.... Supón que el hash keccak-256 de la cadena en minúsculas comienza con 38bf.... El primer carácter de la dirección es 5, un dígito, por lo que permanece 5. El siguiente es a, y el dígito de hash correspondiente es 8, que es 8 o superior, por lo que se convierte en mayúscula A. El siguiente a se alinea con el dígito de hash 3, por debajo de 8, por lo que permanece en minúscula a. Así es como se obtiene el patrón 5aA al inicio.
Repite el proceso en los 40 caracteres y obtendrás la dirección con suma de verificación. Para verificar una, ejecuta exactamente el mismo proceso y comprueba que las mayúsculas/minúsculas que calculaste coinciden con las que te dieron.
Verifica antes de confiar: no necesitas hacer esto manualmente. Un validador de carteras cripto recalcula la suma de verificación keccak-256 por ti y te indica al instante si una dirección es válida, está mal formada o tiene una suma de verificación incorrecta.
Por qué EIP-55 detecta errores tipográficos#
Lo ingenioso es la probabilidad. Dado que aproximadamente la mitad de las letras hexadecimales en una dirección típica se capitalizan según el hash, cualquier cambio, incluso en un solo carácter, se propaga por toda la salida keccak-256 y casi siempre produce una discrepancia de mayúsculas/minúsculas en algún lugar de la cadena.
La cifra comúnmente citada es que EIP-55 detecta una dirección incorrecta con aproximadamente un 99,986% de probabilidad para un error de un solo carácter. En términos simples, si tecleas mal una letra al copiar una dirección, una billetera con suma de verificación la rechazará la gran mayoría de las veces. Esa es la diferencia entre un error detectado y fondos perdidos para siempre.
Lo que no protege merece ser dicho claramente:
- No puede detectar una dirección incorrecta pero válida. Si pegas accidentalmente la dirección correcta y con suma de verificación de otra persona, EIP-55 no ve nada malo. La suma de verificación verifica la integridad, no la intención.
- Solo ayuda si la dirección tiene suma de verificación. Una dirección en minúsculas no tiene suma de verificación que verificar, por lo que las billeteras la aceptan sin la protección contra errores tipográficos.
- No detiene el malware de portapapeles. El malware que reemplaza direcciones sustituye la dirección copiada por una dirección válida del atacante que tiene su propia suma de verificación correcta.
EIP-55 vs EIP-1191: La actualización del Chain ID#
EIP-55 tiene un sucesor que vale la pena conocer si trabajas en múltiples redes. EIP-1191 extiende la idea original al mezclar el chain ID en el hash antes de calcular las mayúsculas y minúsculas.
La motivación fue la seguridad entre cadenas. El mismo formato de dirección se usa en Ethereum mainnet, Polygon, BNB Smart Chain y muchas otras cadenas EVM, y un checksum EIP-55 simple es idéntico en todas ellas. No puede indicarte si una dirección fue checksummeada para la cadena que pretendes usar. EIP-1191 antepone el chain ID al texto de la dirección antes de hacer el hash, produciendo un uso de mayúsculas específico de la cadena.
| Característica | EIP-55 | EIP-1191 |
|---|---|---|
| Entrada del hash | Solo dirección en minúsculas | Chain ID + dirección en minúsculas |
| Conciencia de cadena | Ninguna, igual en toda cadena EVM | Mayúsculas difieren por cadena |
| Adopción | Casi universal | Parcial, principalmente RSK y algunas cadenas |
| Compatibilidad hacia atrás | Sí | Mayormente, pero mainnet mantuvo EIP-55 |
En la práctica, Ethereum mainnet se quedó con el EIP-55 clásico, por lo que la mayoría de las herramientas que encuentras usan el algoritmo original. EIP-1191 tuvo adopción real en redes como RSK. Si una billetera alguna vez marca una dirección de mainnet perfectamente válida como fallida en el checksum, una discrepancia de chain ID de una implementación EIP-1191 es un posible culpable.
Errores comunes de "Dirección de suma de verificación no válida"#
Si te encuentras con un error de "suma de verificación de dirección incorrecta" o "dirección de suma de verificación no válida", normalmente una de estas es la causa.
- Modificaste las mayúsculas manualmente. Cambiar una mayúscula a minúscula (o viceversa) rompe la suma de verificación, aunque la dirección siga apuntando a la misma cuenta. Copia y pega la dirección completa en lugar de volver a escribirla.
- Se truncó o duplicó un carácter. Un carácter faltante o extra desplaza todo y casi siempre falla la verificación. Este es exactamente el caso de error tipográfico que EIP-55 está diseñado para detectar.
- La herramienta espera entrada con suma de verificación y pegaste minúsculas. Algunas bibliotecas rechazan direcciones en minúsculas en modo estricto porque no pueden verificar una suma de verificación que no existe. Procesa la dirección con un sumador de verificación para agregar las mayúsculas correctas.
- Discrepancia de ID de cadena (EIP-1191). Una dirección con suma de verificación para una cadena puede fallar la validación en una herramienta que espera el formato EIP-55 de la red principal, y viceversa.
La medida segura en todos los casos es nunca alterar una dirección que recibiste. Cópiala completa, pégala completa y deja que tu billetera o un validador confirmen la suma de verificación. Si también trabajas con direcciones de tokens y quieres confirmar que un contrato es legítimo antes de interactuar con él, un verificador de contratos de tokens inspecciona el contrato en sí, que es una capa de seguridad independiente del formato de la dirección.
Cómo verificar una dirección EIP-55 por ti mismo#
Tienes tres opciones prácticas.
La más rápida es una herramienta de navegador. Pega la dirección en un validador y este recalcula el hash keccak-256, aplica la regla de mayúsculas y te indica si la suma de verificación es válida. Esta es la opción adecuada para quienes no escriben código, y es la misma lógica que ejecuta una billetera internamente antes de permitir una transacción.
Para desarrolladores, las bibliotecas hacen esto en una línea. Ethers.js expone getAddress(), que lanza un error si la suma de verificación es incorrecta y devuelve la dirección con el formato de mayúsculas correcto. Web3.py ofrece to_checksum_address(), y viem también proporciona getAddress(). Si estás depurando el hex original o la capa de codificación de una dirección, un codificador base64 y hex ayuda a verificar la representación de bytes junto con la suma de verificación.
La tercera opción es hacerlo manualmente con cualquier implementación de keccak-256, siguiendo los cuatro pasos del ejemplo práctico. Rara vez es necesario, pero es la forma más segura de entender qué codifican las mayúsculas.
Direcciones EIP-55 con Checksum, en Resumen#
¿Qué es una dirección EIP-55 con checksum? Es una dirección Ethereum normal cuyas letras en mayúsculas y minúsculas codifican un checksum keccak-256, convirtiendo el uso de mayúsculas en un detector de errores tipográficos integrado. No cuesta nada, no rompe nada y detecta la gran mayoría de errores de un solo carácter antes de que te cuesten dinero real.
Las conclusiones prácticas:
- Trata las mayúsculas como algo importante. Nunca vuelvas a escribir o "limpiar" una dirección manualmente. Cópiala y pégala completa.
- Prefiere direcciones con checksum. Una dirección con mayúsculas y minúsculas ofrece una protección que una toda en minúsculas no tiene.
- Verifica antes de enviar. Revisa cualquier dirección que vayas a fondear con un validador de carteras cripto, confirma que el checksum EIP-55 pase, luego envía. Unos segundos de verificación son el seguro más barato en cripto.
Preguntas Frecuentes#
¿Qué es una dirección con checksum EIP-55? Es una dirección de Ethereum que usa un patrón específico de letras hexadecimales mayúsculas y minúsculas para codificar un checksum keccak-256. Las mayúsculas no cambian a qué cuenta apunta la dirección. Permite que las billeteras detecten una dirección mal escrita o alterada antes de enviar fondos, ya que casi cualquier error de un solo carácter rompe la capitalización esperada.
¿Por qué las direcciones de Ethereum tienen mayúsculas y minúsculas? Las mayúsculas y minúsculas provienen de EIP-55, introducido en 2016 para agregar protección contra errores tipográficos a direcciones que antes eran todas minúsculas. Cada letra hexadecimal se capitaliza según el hash keccak-256 de la dirección, por lo que el patrón de mayúsculas actúa como un checksum. Las direcciones antiguas en minúsculas aún funcionan, pero la versión con mayúsculas y minúsculas agrega una verificación de errores gratuita.
¿Una dirección en minúsculas de Ethereum sigue siendo válida? Sí. El protocolo Ethereum no distingue entre mayúsculas y minúsculas, por lo que una dirección en minúsculas apunta a la misma cuenta y funciona en la red. Lo único que se pierde es la protección contra errores tipográficos de EIP-55, porque no hay mayúsculas de checksum para verificar. Algunas herramientas estrictas rechazan la entrada en minúsculas hasta que la conviertes a la forma con checksum.
¿Qué causa un error de "dirección con checksum inválido"? El error significa que las mayúsculas no coinciden con lo que keccak-256 calcula para la dirección. Las causas comunes son editar manualmente la capitalización, un carácter truncado o duplicado, pegar una dirección en minúsculas en una herramienta que requiere entrada con checksum, o una discrepancia en el ID de cadena de una implementación EIP-1191. Vuelve a copiar la dirección original y valídala en lugar de corregir las mayúsculas manualmente.
¿Cuál es la diferencia entre EIP-55 y EIP-1191? EIP-55 solo hashea la dirección en minúsculas para decidir las mayúsculas, por lo que la misma dirección se ve idéntica en todas las cadenas EVM. EIP-1191 mezcla primero el ID de cadena en el hash, produciendo mayúsculas específicas de la cadena que pueden señalar cuándo una dirección fue checksummeada para la red equivocada. La red principal de Ethereum usa el EIP-55 clásico, mientras que EIP-1191 fue adoptado en cadenas como RSK.
¿Puede EIP-55 protegerme de enviar a la billetera equivocada? Solo parcialmente. Detecta errores tipográficos y caracteres alterados con una probabilidad muy alta, alrededor del 99.986% para un error de un solo carácter. No ayuda si pegas una dirección válida pero no deseada, y no detiene el malware que intercambia el portapapeles. Siempre verifica la dirección completa mediante un validador y vuelve a confirmar el destinatario antes de enviar.


