Ir al contenido principal
TelegramMar 28, 2026

Construir en TON en 2026: Pagos cripto en Telegram Mini Apps con TON Pay SDK

OS
Open Soft Team

Engineering Team

El ecosistema TON en 2026

The Open Network (TON) ha evolucionado de un proyecto blockchain con raices en Telegram a uno de los ecosistemas de criptomonedas mas activamente utilizados del mundo. A marzo de 2026, los numeros cuentan una historia convincente:

  • 500M+ de usuarios activos mensuales en Telegram Mini Apps
  • 3.600+ Mini Apps activas listadas en el catalogo de Telegram Mini App
  • 400M+ de billeteras TON creadas a traves de Telegram Wallet, Tonkeeper y TON Space
  • $4.200 millones en valor total bloqueado en protocolos DeFi de TON
  • 12M de transacciones on-chain diarias en la mainnet de TON

Estas cifras hacen de TON la blockchain mas ampliamente distribuida por numero de usuarios activos, superando a Ethereum (incluyendo L2s) y Solana. El crecimiento esta impulsado por un unico factor: la integracion con Telegram. Con mas de 950M de usuarios activos mensuales de Telegram en todo el mundo, incluso una pequena tasa de conversion produce numeros masivos.

Por que TON para pagos?

Para los desarrolladores que construyen aplicaciones con funcionalidad de pago, TON ofrece tres ventajas estructurales sobre otras blockchains:

  1. Distribucion — Tu Mini App es descubrible dentro de Telegram, la plataforma de mensajeria que tus usuarios ya usan a diario. Sin envio a app store, sin friccion de descarga, sin instalacion de billetera requerida.
  2. Comisiones casi nulas — Las comisiones de transaccion de TON promedian $0,005-0,01, haciendo que los micropagos y compras in-app sean economicamente viables sin batching ni complejidad L2.
  3. Finalidad sub-segundo — La arquitectura fragmentada de TON logra tiempos de bloque de ~5 segundos con finalidad practica en 1-2 bloques. Los usuarios ven pagos confirmados en 10 segundos.

TON Pay SDK: Vision general de la arquitectura

TON Pay SDK es la biblioteca oficial de integracion de pagos para Telegram Mini Apps. Publicada en Q4 2025, proporciona una API unificada para:

  • TON Connect — autenticacion de billetera
  • Pagos Toncoin — transferencias TON nativas
  • Pagos Jetton — estandar de tokens TRC-20: USDT, NOT y tokens personalizados
  • Facturacion por suscripcion — cargos Jetton recurrentes via smart contracts preautorizados
  • Recibos de pago — prueba de pago on-chain con metadatos

El SDK esta disponible como paquete npm (@tonconnect/pay-sdk) y soporta uso tanto del lado del cliente (navegador) como del servidor (Node.js).

Prerrequisitos

  1. Un Bot de Telegram registrado con capacidades de Mini App (@BotFather/newapp)
  2. Una direccion de billetera TON para recibir pagos (billetera de comerciante)
  3. Node.js 20+ y TypeScript 5.x para el entorno de desarrollo
  4. Familiaridad basica con la API de Telegram Mini App (window.Telegram.WebApp)

Paso 1: Autenticacion de billetera TON Connect

TON Connect es el protocolo estandar para conectar billeteras TON a dApps y Mini Apps.

import { TonConnect } from "@tonconnect/sdk";
import { TonPaySDK } from "@tonconnect/pay-sdk";

const tonConnect = new TonConnect({
  manifestUrl: "https://yourapp.com/tonconnect-manifest.json",
});

const existingWallet = tonConnect.wallet;
if (existingWallet) {
  console.log("Conectado:", existingWallet.account.address);
}

Flujo de conexion de billetera

import { toUserFriendlyAddress } from "@tonconnect/sdk";

async function connectWallet(): Promise<string> {
  const walletList = await tonConnect.getWallets();
  const tonSpace = walletList.find((w) => w.appName === "tonspace");

  if (tonSpace) {
    await tonConnect.connect({ jsBridgeKey: tonSpace.jsBridgeKey });
  } else {
    const universalLink = tonConnect.connect({
      universalLink: walletList[0].universalLink,
      bridgeUrl: walletList[0].bridgeUrl,
    });
    window.open(universalLink, "_blank");
  }

  return new Promise((resolve) => {
    tonConnect.onStatusChange((wallet) => {
      if (wallet) {
        resolve(toUserFriendlyAddress(wallet.account.address));
      }
    });
  });
}

Persistencia de sesion

async function initAuth(): Promise<string | null> {
  await tonConnect.restoreConnection();
  if (tonConnect.connected && tonConnect.wallet) {
    return toUserFriendlyAddress(tonConnect.wallet.account.address);
  }
  return null;
}

Paso 2: Aceptar pagos Toncoin

import { TonPaySDK, PaymentRequest } from "@tonconnect/pay-sdk";

const tonPay = new TonPaySDK({
  tonConnect,
  merchantWallet: "EQD...direccion-comerciante",
  webhookUrl: "https://yourapi.com/webhooks/ton-pay",
});

async function requestPayment(amount: number, orderId: string): Promise<string> {
  const payment: PaymentRequest = {
    amount: amount.toString(),
    payload: orderId,
    description: `Pedido #${orderId}`,
  };

  const result = await tonPay.requestPayment(payment);
  if (result.status === "confirmed") return result.txHash;
  if (result.status === "rejected") throw new Error("Pago rechazado por el usuario");
  throw new Error(`Pago fallido: ${result.error}`);
}

Verificacion del lado del servidor

Nunca confies solo en las confirmaciones de pago del lado del cliente:

import { TonClient } from "@ton/ton";
import { Address, fromNano } from "@ton/core";

async function verifyPayment(
  txHash: string, expectedAmount: string,
  expectedPayload: string, merchantAddress: string
): Promise<boolean> {
  const tx = await tonClient.getTransaction(Address.parse(merchantAddress), txHash);
  if (!tx) return false;
  const receivedAmount = fromNano(tx.inMessage?.value ?? 0n);
  if (parseFloat(receivedAmount) < parseFloat(expectedAmount)) return false;
  const payload = tx.inMessage?.body?.toString() ?? "";
  return payload === expectedPayload;
}

Paso 3: Pagos Jetton (tokens)

Los Jettons son el equivalente TON de los tokens ERC-20. El Jetton mas comun para pagos es USDT en TON con mas de $1.200 millones en circulacion.

async function requestUSDTPayment(amount: number, orderId: string): Promise<string> {
  const USDT_MASTER = "EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs";
  const payment: JettonPaymentRequest = {
    jettonMaster: USDT_MASTER,
    amount: (amount * 1e6).toString(),
    payload: orderId,
    description: `$${amount} USDT — Pedido #${orderId}`,
    forwardTonAmount: "50000000",
  };
  const result = await tonPay.requestJettonPayment(payment);
  if (result.status === "confirmed") return result.txHash;
  throw new Error(`Pago Jetton fallido: ${result.error}`);
}

Paso 4: Facturacion por suscripcion

async function createSubscription(userId: string): Promise<string> {
  const subscription: SubscriptionRequest = {
    jettonMaster: USDT_MASTER,
    amount: "4990000",
    period: 30 * 24 * 60 * 60,
    maxCharges: 12,
    payload: `sub-${userId}`,
    description: "Premium — $4,99/mes",
  };
  const result = await tonPay.createSubscription(subscription);
  if (result.status === "active") return result.subscriptionAddress;
  throw new Error("Error al crear la suscripcion");
}

Estrategias de monetizacion para Telegram Mini Apps

1. Plataforma de anuncios de Telegram

Las Mini Apps top reportan $5-15 de eCPM para anuncios de video con recompensa en paises Tier 1.

2. Compras in-app via Telegram Stars

Los desarrolladores reciben el 70% de los ingresos por Stars.

3. Monetizacion cripto-nativa

  • Acceso con token requerido — requerir posesion de un Jetton o SBT especifico para funciones premium
  • Marketplace de NFT — venta de coleccionables digitales (estandar TEP-62)
  • Recompensas de staking — los usuarios hacen staking de TON o Jettons en el smart contract
  • Comisiones por referidos — pagar bonos de referidos en Jettons via smart contracts

Comparacion de modelos de monetizacion

ModeloMetodo de pagoParte del desarrolladorFriccion del usuarioIdeal para
Anuncios TelegramImpresiones50-70% de ingresosBaja (pasiva)Apps gratis con alto DAU
Telegram StarsFiat → Stars70%Media (compra in-app)Bienes digitales, juegos casual
TON Pay (Toncoin)Billetera cripto100% (menos gas)Alta (billetera requerida)Usuarios cripto-nativos
TON Pay (USDT)Billetera cripto100% (menos gas)Alta (billetera requerida)Transacciones de valor estable
SuscripcionesBilletera cripto100% (menos gas)Media (aprobacion unica)SaaS, contenido premium

Lista de verificacion para produccion

  1. Seguridad de la billetera — usar billetera multisig (ej. TON Safe).
  2. Verificacion de pagos — siempre verificar del lado del servidor.
  3. Manejo de errores — gestionar timeouts y transacciones rechazadas.
  4. Politica de reembolso — las transacciones TON son irreversibles.
  5. Limitacion de velocidad — proteger el endpoint webhook.
  6. Registro — registrar todos los eventos de pago.
  7. Pruebas — usar testnet de TON para desarrollo.

Preguntas frecuentes

Cuantos usuarios pueden alcanzar las TON Mini Apps?

Telegram tiene mas de 950M de usuarios activos mensuales. Las Mini Apps top han alcanzado 30-40M de usuarios.

Cuales son las comisiones de transaccion de TON?

Transferencias nativas: 0,005-0,01 TON (0,01-0,02). Transferencias Jetton: 0,03-0,05 TON (0,06-0,10).

Se pueden aceptar pagos fiat en una Telegram Mini App?

Si, a traves de Telegram Stars (integrado) o proveedores de pago de terceros.

Se requiere KYC para aceptar pagos TON?

Para el comerciante: depende de la jurisdiccion. Para usuarios: crear una billetera TON no requiere KYC.

Cual es la diferencia entre TON y Ethereum para pagos?

TON ofrece comisiones mas bajas ($0,01 vs $0,50-5,00), finalidad mas rapida (10 seg. vs 12-15 min.) y distribucion integrada de Telegram.

Como manejar disputas y contracargos?

Los pagos blockchain son irreversibles. Debe implementar su propio sistema de reembolso y resolucion de disputas.