Aller au contenu principal
TelegramMar 28, 2026

Construire sur TON en 2026 : Paiements crypto dans les Telegram Mini Apps avec TON Pay SDK

OS
Open Soft Team

Engineering Team

L’ecosysteme TON en 2026

The Open Network (TON) a evolue d’un projet blockchain issu de Telegram en l’un des ecosystemes de cryptomonnaies les plus activement utilises au monde. En mars 2026, les chiffres racontent une histoire convaincante :

  • 500M+ d’utilisateurs actifs mensuels a travers les Telegram Mini Apps
  • 3 600+ Mini Apps actives repertoriees dans le catalogue Telegram Mini App
  • 400M+ de portefeuilles TON crees via Telegram Wallet, Tonkeeper et TON Space
  • 4,2 milliards $ de valeur totale verrouillee dans les protocoles DeFi TON
  • 12M de transactions on-chain quotidiennes sur le mainnet TON

Ces chiffres font de TON la blockchain la plus largement distribuee en nombre d’utilisateurs actifs, depassant Ethereum (y compris les L2) et Solana. La croissance est portee par un seul facteur : l’integration Telegram. Avec plus de 950M d’utilisateurs actifs mensuels de Telegram dans le monde, meme un faible taux de conversion en utilisation de Mini Apps et de portefeuilles produit des chiffres massifs.

Pourquoi TON pour les paiements ?

Pour les developpeurs construisant des applications avec des fonctionnalites de paiement, TON offre trois avantages structurels par rapport aux autres blockchains :

  1. Distribution — Votre Mini App est decouvrable dans Telegram, la plateforme de messagerie que vos utilisateurs utilisent deja quotidiennement. Pas de soumission a l’app store, pas de friction de telechargement, pas d’installation de portefeuille necessaire.
  2. Frais quasi nuls — Les frais de transaction TON sont en moyenne de 0,005-0,01 $, rendant les micropaiements et les achats in-app economiquement viables sans batching ni complexite L2.
  3. Finalite sub-seconde — L’architecture shardee de TON atteint des temps de bloc d’environ 5 secondes avec une finalite pratique en 1-2 blocs. Les utilisateurs voient les paiements confirmes en 10 secondes.

TON Pay SDK : Apercu de l’architecture

TON Pay SDK est la bibliotheque officielle d’integration des paiements pour les Telegram Mini Apps. Publiee au Q4 2025, elle fournit une API unifiee pour :

  • TON Connect — authentification du portefeuille
  • Paiements Toncoin — transferts TON natifs
  • Paiements Jetton — standard de jetons TRC-20 : USDT, NOT et jetons personnalises
  • Facturation par abonnement — charges Jetton recurrentes via des smart contracts pre-autorises
  • Recus de paiement — preuve de paiement on-chain avec metadonnees

Le SDK est disponible en tant que package npm (@tonconnect/pay-sdk) et prend en charge l’utilisation cote client (navigateur) et cote serveur (Node.js).

Prerequis

Avant d’integrer TON Pay SDK, assurez-vous d’avoir :

  1. Un Bot Telegram enregistre avec des capacites Mini App (@BotFather/newapp)
  2. Une adresse de portefeuille TON pour recevoir les paiements (portefeuille marchand)
  3. Node.js 20+ et TypeScript 5.x pour l’environnement de developpement
  4. Une familiarite de base avec l’API Telegram Mini App (window.Telegram.WebApp)

Etape 1 : Authentification du portefeuille TON Connect

TON Connect est le protocole standard pour connecter les portefeuilles TON aux dApps et Mini Apps. Il sert de couche d’authentification — avant d’accepter les paiements, vous devez savoir depuis quel portefeuille l’utilisateur souhaite payer.

Configuration de TON Connect

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

// Initialiser TON Connect avec votre manifeste
const tonConnect = new TonConnect({
  manifestUrl: "https://yourapp.com/tonconnect-manifest.json",
});

// Verifier si l'utilisateur a un portefeuille precedemment connecte
const existingWallet = tonConnect.wallet;
if (existingWallet) {
  console.log("Connecte :", existingWallet.account.address);
}

Flux de connexion du portefeuille

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

async function connectWallet(): Promise<string> {
  const walletList = await tonConnect.getWallets();

  // Pour les Telegram Mini Apps, prioriser TON Space (integre)
  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) {
        const address = toUserFriendlyAddress(
          wallet.account.address
        );
        resolve(address);
      }
    });
  });
}

Persistance de session

Les sessions TON Connect persistent entre les redemarrages de Mini App. Le SDK stocke les donnees de session dans localStorage :

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

Etape 2 : Accepter les paiements Toncoin

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

const tonPay = new TonPaySDK({
  tonConnect,
  merchantWallet: "EQD...adresse-marchand",
  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: `Commande #${orderId}`,
  };

  const result = await tonPay.requestPayment(payment);

  if (result.status === "confirmed") {
    return result.txHash;
  } else if (result.status === "rejected") {
    throw new Error("Paiement refuse par l'utilisateur");
  } else {
    throw new Error(`Echec du paiement : ${result.error}`);
  }
}

Verification cote serveur

Ne faites jamais confiance aux confirmations de paiement cote client seules. Verifiez chaque paiement sur votre backend :

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() ?? "";
  if (payload !== expectedPayload) return false;

  return true;
}

Etape 3 : Paiements Jetton (jetons)

Les Jettons sont l’equivalent TON des jetons ERC-20. Le Jetton le plus courant pour les paiements est USDT sur TON (Tether), avec plus de 1,2 milliard $ en circulation sur le reseau TON en mars 2026.

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

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 — Commande #${orderId}`,
    forwardTonAmount: "50000000",
  };

  const result = await tonPay.requestJettonPayment(payment);
  if (result.status === "confirmed") return result.txHash;
  throw new Error(`Echec du paiement Jetton : ${result.error}`);
}

Etape 4 : Facturation par abonnement

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

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 $/mois",
  };

  const result = await tonPay.createSubscription(subscription);
  if (result.status === "active") return result.subscriptionAddress;
  throw new Error("Echec de la creation de l'abonnement");
}

Strategies de monetisation pour Telegram Mini Apps

Les paiements ne sont qu’une piece du puzzle de la monetisation. Voici comment les Mini Apps a succes combinent plusieurs sources de revenus :

1. Plateforme publicitaire Telegram

La plateforme publicitaire native de Telegram permet aux Mini Apps d’afficher des publicites et de generer des revenus en TON. Les Mini Apps les plus performantes rapportent 5-15 $ d’eCPM pour les publicites video recompensees dans les pays de Tier 1.

2. Achats in-app via Telegram Stars

Telegram Stars est la monnaie virtuelle integree de Telegram, disponible depuis 2024. Les developpeurs recoivent 70% des revenus Stars.

3. Monetisation crypto-native

  • Acces a jeton requis — exiger la detention d’un Jetton ou SBT specifique pour acceder aux fonctionnalites premium
  • Marketplace NFT — vente de collectibles numeriques (les TON NFT utilisent le standard TEP-62)
  • Recompenses de staking — permettre aux utilisateurs de staker TON ou Jettons dans le smart contract de votre Mini App
  • Commissions de parrainage — payer des bonus de parrainage en Jettons via des smart contracts

Comparaison des modeles de monetisation

ModeleMethode de paiementPart developpeurFriction utilisateurIdeal pour
Publicites TelegramImpressions pub50-70% du revenu pubFaible (passif)Apps gratuites avec DAU eleve
Telegram StarsFiat → Stars70%Moyenne (achat in-app)Biens numeriques, jeux casual
TON Pay (Toncoin)Portefeuille crypto100% (moins le gas)Elevee (portefeuille requis)Utilisateurs crypto-natifs
TON Pay (USDT)Portefeuille crypto100% (moins le gas)Elevee (portefeuille requis)Transactions a valeur stable
AbonnementsPortefeuille crypto100% (moins le gas)Moyenne (approbation unique)SaaS, contenu premium

Checklist de deploiement en production

  1. Securite du portefeuille marchand — utilisez un portefeuille multisig (ex. TON Safe).
  2. Verification des paiements — toujours verifier cote serveur.
  3. Gestion des erreurs — gerez les timeouts, transactions rejetees et soldes insuffisants.
  4. Politique de remboursement — les transactions TON sont irreversibles.
  5. Limitation de debit — protegez votre endpoint webhook.
  6. Journalisation — enregistrez tous les evenements de paiement.
  7. Tests — utilisez le testnet TON pour le developpement.

Questions frequentes

Combien d’utilisateurs les TON Mini Apps peuvent-elles atteindre ?

Telegram compte plus de 950M d’utilisateurs actifs mensuels. Les Mini Apps les plus populaires (Notcoin, Hamster Kombat) ont atteint 30-40M d’utilisateurs.

Quels sont les frais de transaction pour les paiements TON ?

Les transferts TON natifs coutent environ 0,005-0,01 TON (0,01-0,02 $ aux prix actuels). Les transferts Jetton sont legerement plus couteux, generalement 0,03-0,05 TON (0,06-0,10 $).

Peut-on accepter des paiements fiat dans une Telegram Mini App ?

Oui, via Telegram Stars (integre) ou des prestataires de paiement tiers.

Le KYC est-il requis pour accepter les paiements TON ?

Pour le marchand : cela depend de votre juridiction et du volume de transactions. Pour les utilisateurs : la creation d’un portefeuille TON ne necessite pas de KYC.

Quelle est la difference entre TON et Ethereum pour les paiements ?

TON offre des frais plus bas (0,01 $ vs 0,50-5,00 $ sur Ethereum L1), une finalite plus rapide (10 secondes vs 12-15 minutes) et une distribution Telegram integree. Ethereum a un ecosysteme DeFi plus large et des garanties de decentralisation plus fortes.

Comment gerer les litiges et les retours de fonds ?

Les paiements blockchain sont irreversibles. Vous devez implementer votre propre systeme de remboursement et de resolution des litiges.