¿Qué es una dirección SS58?
SS58 es el formato de dirección de Polkadot, Kusama y todas las cadenas basadas en Substrate: un prefijo de red, la clave pública de 32 bytes (ID de cuenta) y un checksum de 2 bytes, codificados en Base58. El formato está documentado en la wiki de Polkadot y los prefijos se asignan en el registro SS58. Un conversor de direcciones SS58 decodifica la cadena, verifica el checksum, extrae la clave pública y la recodifica para otros prefijos.
Cómo funciona la codificación SS58
- Bytes de prefijo. Los prefijos 0–63 ocupan un byte. Los prefijos mayores (hasta 16383) ocupan dos bytes en forma empaquetada: el primer byte contiene los bits 2–7 del prefijo más un marcador 0b01, y el segundo contiene los bits 8–13 y los bits 0–1.
- Checksum. Se calcula BLAKE2b-512 sobre
SS58PRE+ bytes de prefijo + clave pública, y se añaden los dos primeros bytes del digest. - Base58. Todo el búfer (1 o 2 + 32 + 2 bytes) se codifica en Base58 con el alfabeto de Bitcoin. El prefijo 0 siempre produce una dirección que empieza por 1, el prefijo 2 por una letra mayúscula de C a J, y el prefijo 42 por 5.
Ejemplo práctico
La conocida cuenta de desarrollo Alice tiene la clave pública 0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d. Con el prefijo 0 se codifica como 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5 (Polkadot), con el prefijo 2 como HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F (Kusama) y con el prefijo 42 como 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY (Substrate genérico). Pega cualquiera de ellas arriba para ver las tres, y catorce más.
Prefijos y primeros caracteres
| Prefijo | Red | La dirección empieza por | Prefijo | Red | La dirección empieza por |
|---|---|---|---|---|---|
| 0 | Polkadot | 1 | 36 | Centrifuge | 4 |
| 2 | Kusama | C, D, E, F, G, H, J | 38 | KILT | 4 |
| 5 | Astar | V, W, X, Y, Z, a, b | 42 | Substrate (genérico) | 5 |
| 6 | Bifrost | b, c, d, e, f, g, h | 63 | Hydration | 7 |
| 7 | Edgeware | h, i, j, k, m, n, o | 73 | Zeitgeist | dD, dE |
| 8 | Karura | o, p, q, r, s, t, u | 2032 | Interlay | wd |
| 10 | Acala | 2, z | 2092 | Kintsugi | a3 |
| 12 | Polymesh | 2 | 10041 | Basilisk | bX |
| 30 | Phala | 3, 4 |
Los caracteres iniciales son un efecto secundario de Base58 y del valor del prefijo; son una pista visual rápida, no una garantía. Fíate siempre del prefijo decodificado que muestra la herramienta.
Por qué importa el checksum
Base58 no tiene detección de errores incorporada, así que SS58 añade un checksum BLAKE2b de dos bytes que detecta cualquier carácter mal escrito y la gran mayoría de los errores de varios caracteres. En la práctica no existe ninguna billetera ni exchange que acepte una dirección con un checksum incorrecto; esta herramienta también la rechaza y te indica que el checksum falló en lugar de adivinar. Ten en cuenta que el checksum incluye el prefijo, y por eso una dirección de Kusama se rechaza como dirección de Polkadot inválida aunque la clave que contiene sea la misma: el remitente debe recodificarla, no volver a escribirla.
Usos habituales
- Encontrar tu dirección de Kusama, Astar o Hydration a partir de una dirección de Polkadot mostrada por una billetera hardware que solo muestra una red.
- Obtener el ID de cuenta en hex para llamadas a la API de Polkadot.js, la configuración de una multifirma o cuentas de destino XCM.
- Comprobar que una dirección de depósito de un exchange está realmente en la cadena por la que piensas enviar, leyendo el prefijo decodificado.
Solo claves públicas y direcciones: esta página nunca pide una frase semilla ni una clave privada, y nada de lo que pegues sale de tu navegador. Para otros formatos consulta el validador de direcciones cripto.