Conversor de direcciones TON: Raw ↔ Bounceable ↔ Non-Bounceable

Pega una dirección TON en cualquier forma y obtén el raw workchain:hash, las formas bounceable EQ… y non-bounceable UQ…, y las variantes solo para testnet, con el checksum CRC16 verificado.

Forma user-friendly de 48 caracteres en base64 (bounceable EQ…, non-bounceable UQ…, testnet kQ… / 0Q…) o la forma raw workchain:hash.

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

¿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

BytesCampoSignificado
0Tag0x11 bounceable, 0x51 non-bounceable; se suma 0x80 para solo-testnet (0x91, 0xD1)
1Workchain0x00 basechain, 0xFF masterchain (-1 como byte con signo)
2–33Hash de cuentaSHA-256 del estado inicial del contrato (código + datos)
34–35CRC16CRC-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

  1. 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.
  2. 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.
  3. 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

Otras herramientas de direcciones de este sitio: el validador de direcciones cripto y el conversor de direcciones de Tron.

Preguntas frecuentes

¿Cuál es la diferencia entre las direcciones TON EQ… y UQ…?

Son la misma cuenta. EQ… es la forma bounceable (byte de tag 0x11): si el contrato de destino no existe o rechaza el mensaje, los TON rebotan al remitente. UQ… es non-bounceable (tag 0x51): la transferencia se acredita incluso a una billetera no inicializada. Las apps de billetera muestran UQ… para recibir; EQ… se usa para contratos inteligentes.

¿Qué forma debo dar a alguien para recibir TON?

La forma non-bounceable UQ…, sobre todo para una billetera nueva que aún no ha enviado nada. Una transferencia bounceable a una billetera no inicializada rebota y el destinatario no recibe nada. Una vez desplegada la billetera, ambas formas funcionan, y la mayoría de las billeteras modernas eligen por ti.

¿Qué es la forma raw 0:…?

La dirección canónica: workchain (0 para la basechain, donde viven las billeteras, y -1 para la masterchain) y el hash de 256 bits del código y los datos iniciales del contrato, escritos como workchain:hex. No tiene checksum ni flag de rebote, y por eso existen las formas user-friendly.

¿Qué significan kQ… y 0Q…?

Las mismas dos formas con el bit de solo-testnet (0x80) activado en el byte de tag: kQ… es bounceable de testnet y 0Q… non-bounceable de testnet. Las billeteras de mainnet las rechazan. La dirección raw subyacente es idéntica a la de mainnet.

¿Cómo se calcula el checksum de una dirección TON?

La forma user-friendly de 36 bytes es tag (1 byte), workchain (1 byte), hash (32 bytes) y un CRC-16/XMODEM de 2 bytes (polinomio 0x1021, valor inicial 0) sobre los primeros 34 bytes, codificado luego en base64 o base64 URL-safe. La herramienta recalcula el CRC y rechaza las direcciones en las que no coincide.

¿Por qué veo versiones con - _ y con + /?

El base64 estándar usa + y /, y el base64 URL-safe usa - y _. Ambos decodifican a los mismos bytes y ambos son direcciones TON válidas. Los exploradores y las billeteras suelen mostrar la forma URL-safe para poder incrustarla en enlaces; el conversor muestra ambas.