¿Qué es un conversor de direcciones de Cosmos?
Un conversor de direcciones de Cosmos decodifica una dirección bech32 de cualquier cadena del Cosmos SDK a sus bytes de cuenta en bruto (20 bytes para billeteras, 32 para cuentas de módulo y de contrato) y vuelve a codificar esos bytes con un prefijo legible distinto. Todas las cadenas del Cosmos SDK usan la misma codificación, descrita en la documentación de cuentas del Cosmos SDK: prefijo, el separador 1, los datos en el alfabeto de 32 caracteres de bech32 y un checksum de seis caracteres. Entre cadenas solo cambia el prefijo, así que las direcciones cosmos1…, osmo1… y juno1… con los mismos bytes pertenecen a la misma clave.
Cómo funciona la conversión
- Verificar el checksum bech32 sobre toda la cadena, incluido el prefijo. La herramienta usa el mismo polymod que las direcciones SegWit, con la constante bech32 1 (Cosmos no usa bech32m).
- Convertir los grupos de datos de 5 bits de nuevo a bytes sin permitir relleno, y exigir 20 o 32 bytes.
- Para cada prefijo de la tabla, reagrupar los bytes en valores de 5 bits y calcular un checksum nuevo con ese prefijo.
Ejemplo práctico
La dirección cosmos15c20sqakl4uqnp4y93uwe8rlwlnda5futtjxsl se decodifica a los 20 bytes 0xa614f803b6fd780986a42c78ec9c7f77e6ded13c. Recodificar esos bytes con el prefijo de Osmosis produce una dirección osmo1… con los mismos 32 caracteres de datos y un checksum de seis caracteres distinto, porque el prefijo forma parte de la entrada del checksum. La forma 0x, con checksum EIP-55, es lo que una cadena compatible con EVM mostraría para los mismos bytes.
Prefijos de la tabla
| Prefijo | Cadena | Derivación de clave | Prefijo | Cadena | Derivación de clave |
|---|---|---|---|---|---|
| cosmos | Cosmos Hub | secp256k1 | celestia | Celestia | secp256k1 |
| osmo | Osmosis | secp256k1 | dydx | dYdX Chain | secp256k1 |
| juno | Juno | secp256k1 | noble | Noble | secp256k1 |
| stars | Stargaze | secp256k1 | neutron | Neutron | secp256k1 |
| akash | Akash | secp256k1 | stride | Stride | secp256k1 |
| kava | Kava | secp256k1 | evmos | Evmos | ethsecp256k1 |
| secret | Secret Network | secp256k1 | cre | Crescent | secp256k1 |
| axelar | Axelar | secp256k1 | regen | Regen | secp256k1 |
| inj | Injective | ethsecp256k1 | terra | Terra | secp256k1 |
| sei | Sei | secp256k1 (dirección EVM vinculada on-chain) | kujira | Kujira | secp256k1 |
Una dirección con un prefijo fuera de esta lista también se decodifica y se muestra al principio de la tabla bajo su propio prefijo.
Cuándo la dirección convertida es tuya y cuándo no
Billeteras como Keplr y Leap derivan una clave por cadena a partir de tu frase semilla. En las cadenas que comparten el coin type estándar 118 y la derivación secp256k1, la dirección derivada en cada cadena es exactamente la recodificada, y por eso funcionan las transferencias IBC a "tu propia dirección en la otra cadena". Las cadenas con coin type 60 y claves al estilo Ethereum (Injective, Evmos) derivan bytes distintos, y Sei vincula una dirección EVM separada a la cuenta sei1 mediante una asociación on-chain en lugar de compartir bytes. Antes de enviar a una dirección convertida, confírmala en la billetera de esa cadena.
Usos habituales
- Encontrar tu dirección de depósito de Osmosis o Celestia a partir de una dirección de Cosmos Hub cuando una billetera solo muestra una cadena.
- Convertir una dirección 0x de MetaMask a la forma
inj1…oevmos1…que espera el formulario de retiro de un exchange. - Comprobar que no se pegó una dirección
valoperdonde corresponde una dirección de cuenta.
Para cadenas bech32 en bruto con prefijos arbitrarios usa el codificador / decodificador bech32; para verificar una forma EIP-55 usa el conversor de checksum de Ethereum.