Conversor de direcciones de Cosmos: cambiador de prefijo bech32

Pega cualquier dirección del ecosistema Cosmos y mira la misma cuenta recodificada para veinte cadenas habituales, además del hex de 20 bytes en bruto. También codifica una cuenta 0x en bech32 para Injective, Evmos y compañía.

Cualquier dirección bech32 (cosmos, osmo, juno, celestia, dydx, inj, sei, kava, akash, stars, axelar, noble, neutron, stride y otras), una dirección valoper / valcons, o una cuenta hex 0x de 20 o 32 bytes.

Se comprueba en tu navegador con JavaScript. Las direcciones nunca se suben ni se almacenan.

¿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

  1. 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).
  2. Convertir los grupos de datos de 5 bits de nuevo a bytes sin permitir relleno, y exigir 20 o 32 bytes.
  3. 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

PrefijoCadenaDerivación de clavePrefijoCadenaDerivación de clave
cosmosCosmos Hubsecp256k1celestiaCelestiasecp256k1
osmoOsmosissecp256k1dydxdYdX Chainsecp256k1
junoJunosecp256k1nobleNoblesecp256k1
starsStargazesecp256k1neutronNeutronsecp256k1
akashAkashsecp256k1strideStridesecp256k1
kavaKavasecp256k1evmosEvmosethsecp256k1
secretSecret Networksecp256k1creCrescentsecp256k1
axelarAxelarsecp256k1regenRegensecp256k1
injInjectiveethsecp256k1terraTerrasecp256k1
seiSeisecp256k1 (dirección EVM vinculada on-chain)kujiraKujirasecp256k1

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

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.

Preguntas frecuentes

¿Las direcciones cosmos1… y osmo1… son la misma cuenta?

Contienen los mismos 20 bytes y, en las cadenas que usan la derivación secp256k1 estándar, la misma frase semilla produce ambas. Pero cada cadena es un libro contable independiente: los tokens en Osmosis están bajo la dirección osmo1 y los tokens en Cosmos Hub bajo la cosmos1. Recodificar no mueve nada; solo te dice cómo se ve tu dirección en otra cadena.

¿Por qué mi dirección de Injective o Evmos no coincide con la fila convertida?

Injective, Evmos y otras cadenas ethsecp256k1 derivan los bytes de cuenta como Ethereum (keccak-256 de la clave pública sin comprimir), mientras que la mayoría de las cadenas Cosmos usan sha256 y luego ripemd160 de la clave comprimida. Por tanto, la misma frase semilla da bytes distintos en las dos familias. El conversor recodifica los bytes que pegues, así que una dirección inj1 convertida a cosmos1 es una cadena válida, pero no la dirección que tu billetera muestra para Cosmos Hub.

¿Para qué sirve la forma 0x?

En Injective y Evmos, la forma 0x es la dirección Ethereum de la cuenta, la que usan MetaMask y las herramientas EVM. En otras cadenas son solo los bytes en bruto, útiles para depurar y para buscar cuentas de módulo. La herramienta la muestra con checksum EIP-55.

¿Qué son las direcciones valoper y valcons?

cosmosvaloper1… es la dirección de operador de un validador, los mismos 20 bytes que la billetera del operador bajo otro prefijo; cosmosvalcons1… es el hash de la clave de consenso del validador. Ninguna de las dos puede recibir tokens. El conversor reconoce ambas y, para valoper, muestra la dirección de cuenta correspondiente.

¿Por qué mi dirección tiene 59 caracteres?

Es una dirección de 32 bytes: las cuentas de módulo, las cuentas interchain y las direcciones de contratos CosmWasm se derivan con sha256 y son más largas que las direcciones de billetera. La herramienta las decodifica y las recodifica con otros prefijos, pero una cuenta así solo existe en la cadena que la creó.

¿La herramienta comprueba el checksum bech32?

Sí. Las direcciones de Cosmos usan el checksum bech32 original de BIP-173 (no bech32m), y la herramienta lo verifica antes de convertir. Un checksum fallido significa un error de escritura; un checksum bech32m significa que la cadena es una dirección Taproot o similar, no una dirección de Cosmos.