¿Qué es un conversor de direcciones TON?
Un conversor de direcciones TON traduce una cuenta de The Open Network entre su forma raw (workchain:hash, p. ej. 0:83df…31a8) y las formas user-friendly definidas en la documentación de direcciones de TON: una estructura de 36 bytes con flags, workchain, hash y checksum CRC16, codificada en base64 en las conocidas cadenas de 48 caracteres EQ… (bounceable) y UQ… (non-bounceable). Todas las formas identifican la misma cuenta de contrato inteligente; solo difieren en cómo se le indica al remitente que debe tratarla.
Anatomía de una dirección user-friendly
| Bytes | Campo | Significado |
|---|---|---|
| 0 | Tag | 0x11 bounceable, 0x51 non-bounceable; se suma 0x80 para solo-testnet (0x91, 0xD1) |
| 1 | Workchain | 0x00 basechain, 0xFF masterchain (-1 como byte con signo) |
| 2–33 | Hash de cuenta | SHA-256 del estado inicial del contrato (código + datos) |
| 34–35 | CRC16 | CRC-16/XMODEM sobre los bytes 0–33, big-endian |
El base64 de 36 bytes son exactamente 48 caracteres sin relleno, y por eso todas las direcciones TON user-friendly tienen la misma longitud. Los dos primeros caracteres provienen del tag y de los bits superiores del byte de workchain: EQ y UQ para el workchain 0 de mainnet, Ef y Uf para la masterchain, kQ y 0Q para testnet.
Ejemplo práctico
Toma la dirección raw 0:83dfd552e63729b472fcbcc8c45ebcc6691702558b68ec7527e1ba403a0f31a8. Antepón el tag 0x11 y el workchain 0x00, añade el CRC-16/XMODEM de esos 34 bytes y codifica en base64url: el resultado es la forma bounceable EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N. Cambiar el tag a 0x51 cambia el primer carácter y el checksum, dando UQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqEBI. Los 43 caracteres centrales son idénticos porque el hash es idéntico. Pega cualquiera de las dos cadenas arriba y la herramienta recupera la forma raw y muestra las cuatro variantes.
Bounceable o non-bounceable: cuál usar
- Enviar a una persona. Usa la forma non-bounceable
UQ…. Si su contrato de billetera aún no se ha desplegado (una billetera recién creada), una transferencia bounceable rebotaría y no recibiría nada. - Llamar a un contrato inteligente. Usa la forma bounceable
EQ…. Si la llamada falla, el contrato rebota el mensaje y los TON vuelven a ti menos las comisiones, en lugar de quedarse atascados. - Depósitos en exchanges. Sigue las instrucciones del exchange, incluido el memo o comentario. La forma de la dirección no cambia el destino, pero el flag cambia lo que ocurre en caso de fallo.
Por qué importa la comprobación CRC
Las direcciones TON son base64, así que un solo carácter erróneo cambia el hash en silencio, y un hash distinto es una cuenta distinta, probablemente inexistente. El CRC16 detecta todos los errores de un carácter y la mayoría de los errores de varios caracteres. Esta herramienta se niega a convertir cualquier dirección user-friendly cuyo checksum falle, y nunca adivina lo que querías decir. Las direcciones raw no tienen checksum, así que al convertir una dirección raw el resultado es tan correcto como el hex que pegaste; compara los primeros y los últimos caracteres con la fuente.
Usos habituales
- Convertir la dirección raw que imprime un nodo, la API de un explorador o un manifiesto de TON Connect a la forma que acepta una billetera.
- Pasar una dirección bounceable de un listado de contratos a la forma non-bounceable antes de enviar a una billetera nueva.
- Comprobar si una dirección que te enviaron es una forma solo para testnet.
Otras herramientas de direcciones de este sitio: el validador de direcciones cripto y el conversor de direcciones de Tron.