TON Blockchain para desarrolladores: Stars, USDT, TonConnect y pagos en Telegram
Análisis técnico profundo de la integración de TON en Telegram Mini Apps desde la experiencia de The Open Squad. Arquitectura, TonConnect, Jettons (USDT), Telegram Stars, contratos de escrow, seguridad.
En 2026, TON Blockchain ya no es la "cripto de los fans de Telegram": es la capa de infraestructura de toda la pila de pagos del mensajero. En The Open Squad integramos TON en cada producto: pagos USDT en The Open Earn, contratos de escrow en The Open Guarantor. Esta guía es lo que aprendimos por el camino.
Por qué TON para productos de Telegram
Alternativas:
- Stripe / PayPal — lentos, caros (3–5%), no funcionan para usuarios de los 50+ países que servimos
- Wallets cripto multi-chain — pesadilla de UX: los usuarios tienen que conocer redes, direcciones, gas
- Saldo interno sin retiro — los usuarios no confían
TON resuelve tres problemas a la vez:
- Comisiones bajas — fracciones de centavo por transacción (frente a $0.30+ en Stripe)
- Velocidad — finalidad en 5 segundos
- UX — TonConnect permite vincular un wallet en dos toques, sin copiar direcciones
Arquitectura de TON en dos minutos
TON es una blockchain PoS sharded. La unidad nativa es el TON. Sobre ella corren:
- Jettons — estándar de tokens (el equivalente de ERC-20 en TON). USDT en TON es un Jetton emitido por Tether
- NFTs — estándar de tokens únicos
- Workchains / Shardchains — shards para escalar
Para los desarrolladores esto significa:
- Un único SDK (
@ton/ton,@ton/core) maneja TON y Jettons - Sin malabares multi-chain
- Una transacción es un mensaje de un contrato a otro (todo es un contrato, incluidos los wallets)
Conectar un wallet vía TonConnect
TonConnect es un protocolo open-source que vincula una dApp con el wallet del usuario. Todos los grandes wallets de TON lo soportan: Tonkeeper, MyTonWallet, Tonhub.
En una Mini App se ve así:
import { TonConnectUI } from "@tonconnect/ui";
const tonConnectUI = new TonConnectUI({
manifestUrl: "https://yourapp.com/tonconnect-manifest.json",
});
// Abrir el modal de selección de wallet
await tonConnectUI.openModal();
// Tras la conexión — info del wallet disponible:
const wallet = tonConnectUI.wallet;
console.log(wallet?.account.address);
El manifest (tonconnect-manifest.json) es un JSON estático con los metadatos de tu app. Los wallets lo leen para mostrar tu icono y nombre en la pantalla de consentimiento.
Recibir pagos: TON y USDT
Escenario 1: recibir TON. Genera una dirección de depósito por usuario (vía una subcuenta HD-wallet). Escucha nuevas transacciones a través de una TON API:
from pytoniq import LiteClient
async def listen_deposits(address: str):
async with LiteClient.from_mainnet_config() as client:
txs = await client.get_transactions(address, count=10)
for tx in txs:
if tx.in_msg.value > 0:
process_deposit(user_id, tx.in_msg.value)
Escenario 2: recibir USDT (Jetton). USDT es un contrato Jetton. Cada receptor tiene su propio Jetton wallet (una dirección distinta a la de su wallet TON principal). Escuchas las transacciones en el Jetton wallet, no en el principal.
La vía más sencilla: usar una TON Index API hospedada (Tonapi.io, TonCenter) con webhooks para transferencias entrantes.
Telegram Stars: la moneda digital de Telegram
Las Stars son la moneda virtual de Telegram (1 Star ≈ $0.013). Se usan para comprar bienes digitales: suscripciones, emojis personalizados, temas, funciones premium de bots.
A diferencia de TON, las Stars no pueden retirarse libremente — Telegram convierte Stars a TON solo para creadores verificados y con retraso.
Cuándo usar Stars en lugar de TON:
- Contenido de pago (artículos, cursos, funciones premium de bots)
- Compras in-app (stickers, temas)
- Propinas y donaciones
- Cumplimiento App Store / Play Store (Apple y Google exigen Stars para compras digitales in-app)
Cuándo es mejor TON directo:
- Pagos B2B
- Escrow P2P
- Importes mayores
- Cuando los usuarios necesitan retiro libre
Smart contracts: lecciones de escrow de The Open Guarantor
The Open Guarantor es nuestro bot para deals P2P seguros en TON. La lógica es simple:
- El comprador envía TON al contrato de escrow
- El contrato retiene los fondos hasta la confirmación
- El comprador confirma la recepción → el contrato paga al vendedor
- En disputa, un árbitro (nosotros) decide
Los contratos se escriben en FunC (lenguaje de bajo nivel de TON) o Tact (alto nivel). Usamos Tact:
contract Escrow {
buyer: Address;
seller: Address;
arbiter: Address;
amount: Int;
state: Int; // 0 = pending, 1 = released, 2 = refunded
receive("release") {
require(sender() == self.buyer, "only buyer");
require(self.state == 0, "already settled");
send(SendParameters{
to: self.seller,
value: self.amount,
mode: SendPayGasSeparately
});
self.state = 1;
}
// ... refund, dispute logic
}
Despliega con blueprint (TON DevKit). Prueba primero en testnet, luego mainnet.
Checklist de seguridad de pagos
Lo que pusimos en marcha tras nuestro primer incidente:
- Valida cada importe entrante — nunca confíes en el
valuede una transacción sin verificarlo - Protección contra reorgs — espera 6+ bloques antes de acreditar (≈30 segundos en TON)
- Separación hot/cold wallet — mantén solo ~24 horas de pagos en el hot wallet, el resto en cold
- Hardware wallet para cold — Ledger o multisig
- Límites de tasa de retiro — limita N retiros por minuto por cuenta
- Audit trail — cada movimiento de fondos se loguea en BD con replicación a S3 / réplica Postgres
Costes de operación
Para la unit economics:
- Transacción TON — ~0,005 TON de gas (≈$0.025 a $5/TON)
- Transacción Jetton (USDT) — ~0,05 TON (≈$0.25)
- Despliegue de smart contract — único ~0,1 TON
Si procesas 1.000 retiros USDT al día, son ~$250/día de gas. Para reducirlo:
- Agrupa retiros (varios destinatarios en una transacción)
- Usa TON directo en vez de USDT para microimportes
Lo que viene
TON es la blockchain más práctica para productos Telegram-native en 2026. Si tu producto toca dinero, integrar TON lleva 2–3 semanas y te da al instante una UX que las pasarelas de pago clásicas no pueden igualar.
Si quieres verlo en producción — mira The Open Earn (pagos USDT) o The Open Guarantor (contratos de escrow).