en

Can your Telegram Mini App take USDT, or is it Stars only?

Published
29.06.2026
Updated
22.09.2026
Soft 3D illustration of a user confirming a wallet payment in a Telegram-like mini app environment with abstract coins and network nodes
Contents

    You have a Telegram Mini App, you sell something through it, and you would rather take USDT than match bank transfers to orders by hand every evening. Whether you can depends on one thing: what the buyer gets for his money.

    Sell him something he uses up inside Telegram, and the payment goes through Stars. Stars are the currency users buy from Telegram and spend inside bots and Mini Apps. Access to a closed channel, a subscription, lives in a game: all of that is Stars, and crypto there is against the rules. Sell him something he gets outside the messenger, like a parcel, a repair or a consultation, and you may take USDT.

    For example, Artem runs one Mini App with two businesses inside it: a board-game shop that ships boxes to the door, and a paid club in a private channel. He can move the shop to USDT. The club stays on Stars.

    Below: what a Star actually pays you, where the line for crypto runs, what a USDT payment costs on TON, and how to wire both. TON is the blockchain Telegram's apps are tied to, and inside a Mini App it is the only one you may touch. If the chain itself is new to you, here is how the TON network works and what its coin is called now.

    What you sell: inside Telegram or outside it

    Before you pick a wallet, a network or a payment service, sort your catalogue. For each item, ask what the buyer receives and where that thing lives afterwards. There are two answers.

    • It lives only inside Telegram. Access to a closed channel, a subscription, lives or boosts in a game, a balance inside your app. These are paid for with Stars.
    • The buyer gets something outside Telegram. A parcel, a repair, a consultation, an hour of your time, a login to your own website. Here crypto is allowed.

    You sort items, not businesses. One Mini App can hold both kinds: Artem's club falls in the first line, his shop in the second.

    A courier holding a parcel and a phone showing a private chat inside Telegram - two kinds of purchase that get paid for differently

    If the buyer gets it inside Telegram, it is Stars and nothing else

    Digital goods and services consumed inside Telegram apps are paid for with Stars, and only with Stars. This covers bots and Mini Apps alike, and it is written into Telegram's terms for bot developers and into the documentation on paying with Stars.

    So for a paid channel there is nothing to choose. Crypto there breaks the rules, and Telegram bans bots that break them — and with the bot goes the audience living inside it.

    For the buyer the comfort is real: one tap, money he already keeps in Telegram, no leaving the chat. Its price is Telegram's rate, Telegram's schedule and Telegram's route out.

    What a Star pays you, and when you can touch the money

    Stars have two prices: what a user pays Telegram to buy them, and what Telegram pays you after he spends them in your app. Only the second is your revenue.

    • About 1.3 cents per Star to the developer. That is the payout rate, not the shop price. Put a month of a club at 500 Stars and you receive roughly six and a half dollars.
    • A hold of up to 21 days before the money moves. Stars you receive can be withdrawn or spent on Telegram ads only after that hold ends, and 21 days is the ceiling on the wait, not a promise.
    • Withdrawal only through Fragment, to an address in the TON network. Telegram's payout route ends on this blockchain, so a wallet there is not optional.
    • The rate and the withdrawal limits come from Telegram. It changes both and announces neither. Read them in your dashboard on the day you withdraw.
    • Unused Stars expire three years after you receive them. This is money passing through, not money in storage.
    The path of a Star's money: a hold of up to three weeks, then a withdrawal through Fragment to an address on the TON network

    Invoices, refunds and balances are documented in Telegram's payments documentation and in the Stars API reference.

    How paying with Stars gets wired, from invoice to refund

    For a developer this is the simpler of the two routes: no payment provider, no wallets, no network fee, nothing to switch on in BotFather.

    1. Send the invoice. Your bot calls sendInvoice with an empty provider token and the currency set to XTR, which is the code for Stars. For digital goods no payment provider is connected at all.
    2. Confirm the order within ten seconds. Telegram asks your server whether the order still stands, and the server answers with answerPreCheckoutQuery. Miss that window and the payment does not happen.
    3. Take the paid order from Telegram's message. When the buyer pays, Telegram sends your bot a message with the completed payment inside. That is your signal to open the channel.
    4. Save the charge id from that message. It is your only handle on that payment, and without it you cannot refund.
    5. Refund in Stars if you have to. A refund goes through refundStarPayment and returns Stars to the buyer, not dollars.

    Where crypto is allowed, and where the line runs

    For a delivered box of dice and cardboard, the payment need not go through Telegram at all. Telegram takes no commission on payments through outside providers; the provider charges its own fee. Telegram's payments documentation gives the example of a card processor at about 3% plus a fixed few dozen cents.

    Crypto is usually cheaper. But the line below decides what your checkout may look like:

    • Inside the Mini App: the TON network only, over TON Connect only. An app that touches a blockchain may use this network and no other, and may connect wallets only through TON Connect — the standard way a TON wallet approves a connection to an app. BTC on a Mini App screen, or USDT on TRON, is not allowed, whatever it would cost.
    • Outside the Mini App: whatever you and your customers agree on. A payment link in the chat, a checkout page of your own, a widget on your website. The buyer leaves the app to pay, and the network restriction stops at that door.

    So, the straight answer: yes, a Mini App shop can take USDT — on the app's own screens as USDT on the TON network, and off those screens on any network your payment service supports.

    A payment service always lives on that outside path: it gives you a link or a checkout page, watches the blockchain and tells your server when the money arrives. CryptumPay is one of them: it accepts BTC, ETH, USDT in several networks, TRX, BNB, SOL, XRP and the TON network's own coin, charges 1% per successful payment with rates from 0.5% at volume, and converts what arrives into USDT.

    A fair question here: a Mini App is an ordinary web page in a Telegram window, so why not put such a service's widget straight inside it? Because what rules that out is not the code but section 7 of Telegram's terms for bot developers: a Mini App with any crypto functionality must be based only on the TON network, may connect wallets only through TON Connect, and may not promote coins or wallets of other networks, directly or indirectly. A payment widget offers the buyer a list of coins across several networks — exactly what that clause forbids inside the app. The place for a widget and for a payment link is your own website and the chat with the buyer.

    Which network your customers actually use has a guide of its own on which USDT network to accept in a business. The wider picture is in a piece on taking crypto payments in Telegram.

    Gram, Toncoin, TON: which name means what?

    Two of those three names are the same thing. The network's coin used to be called Toncoin, ticker TON. Since 15 June 2026 it is called Gram, ticker GRAM. The third name belongs to the blockchain, and the blockchain kept it: still The Open Network, still TON.

    Nothing happened to anyone's money: no swap, no migration, 10 Toncoin simply became 10 Gram, addresses and balances unchanged. The name comes from Telegram's own 2018 coin project, stopped by the SEC in the United States; Telegram returned over 1.2 billion dollars to investors and paid an 18.5 million dollar penalty in 2020.

    Say the naming once, plainly, to buyers and to support. Many wallets still show the old name, and a buyer who sees "Toncoin" in his wallet and "Gram" on your payment screen decides he is in the wrong place and leaves. The current naming sits on the network's site.

    Worth one more line for customers: there was no swap, so there is nothing to claim. Any site offering to exchange old coins or to "claim GRAM" is a scam.

    What a USDT payment costs on the TON network

    The transfer itself costs pennies. What surprises people is what the sender has to attach to that transfer.

    USDT here is a jetton — a token that lives in its own small contract next to your wallet, not in the wallet itself. To move it, the wallet sends that contract a message and attaches about 0.1 Gram to cover the work along the way. Only a few cents' worth of that gets spent, and the rest comes straight back to the sender.

    So a USDT payment costs a few cents, not 0.1 Gram. But the sender must still have that 0.1 Gram in his wallet when he presses send. The exact figure depends on his wallet and on whether your side already has a jetton wallet for USDT; the TON documentation on jetton transfers has the mechanics.

    If you would rather see what senders actually spend than work it out from the mechanics, there is a measured answer. Every month we read real USDT transfers on TON and publish the median cost, separately for a recipient who already has a USDT jetton wallet and one who doesn't, next to the same figures for other networks: what a USDT transfer on TON costs in practice.

    Why the payment fails on the buyer's side, and how to stop it

    Here is the failure you will meet most often: a customer holds 50 USDT and no Gram, taps pay — and his wallet refuses to send, because there is nothing to attach to the transfer.

    The buyer holds USDT but no Gram for the fee, so the wallet cannot send the transfer

    From his chair that reads as "this shop is broken". He will write to support, or just leave.

    The fix is timing, not technology: tell him before he opens his wallet. On the payment screen, next to the amount, say that a USDT transfer here needs about 0.1 Gram sitting in the wallet, and that most of that Gram comes straight back. Every network with a separate fee coin has this trap; the ways out are in a piece on a transfer that will not leave without coin for the fee.

    Do you build the crypto payment yourself, or let a service do it?

    One decision comes before any code: who watches the blockchain for you.

    • A payment service watches it. You get a link or a checkout page and a webhook when the money lands, and your developer's work shrinks to order numbers and statuses. This path runs outside the Mini App: the buyer pays on a page.
    • Your developer builds the payment into the app. TON Connect for the wallet, your own backend watching the network. No service fee, and the buyer never leaves the app — at the price of building and maintaining that watching yourself.

    The steps that follow are the in-app build; with a service, the middle ones are its job.

    How the payment gets wired into the Mini App, step by step

    1. Sort the catalogue by where each item lives. Anything the buyer consumes inside Telegram goes to Stars; anything shipped or delivered outside goes to the crypto checkout.
    2. Build the payment request in the app. It carries the amount, the currency of the payment, your own order number and an expiry time. The order number is what later says which transfer paid for which parcel.
    3. Connect the buyer's wallet over TON Connect. He approves the connection in his own wallet, and your app receives an address and nothing else: no keys, no seed phrase. His money never passes through your hands.
    4. Let the buyer sign the transaction in his wallet. He sees the amount and the recipient on the wallet's own screen, not on yours, and confirms it there.
    5. Watch the network for that exact transaction. Match it on the amount, the currency and your order number. TON Pay, a kit from the network itself, saves writing that from scratch: a payment button component and transaction tracking for Gram and jetton transfers such as USDT, inside Mini Apps too. See the TON Pay overview.
    6. Release the goods once your backend has matched a confirmed transaction to the order. Print the label, pack the box, send the tracking number — here and not earlier.

    A signature in the wallet is not money in your account

    The buyer taps confirm, sees a checkmark and considers the deal done. For your shop that checkmark means one thing: a transaction was signed and sent. It still has to reach the network, get confirmed and match a specific order for the right amount.

    A screenshot proves nothing either. It can show an unconfirmed transaction, a transfer on another network or a payment for someone else's order — and it can itself be a picture edited in two minutes. Until your backend has seen the money, the box stays on the shelf.

    In practice this is a status model — one status per state, one rule for each. A payment service hands you the same over a webhook: CryptumPay sends one on every status change, and the statuses run created, pending, crediting, finished. Ship on the last one.

    Support needs the same map: when a customer writes "I paid", the answer depends on the status of his order. That lookup is in a guide on how to verify a crypto payment.

    So which way should you take the money?

    For access sold inside Telegram there is no choice: it is Stars, and the only decision left is your price, worked back from the payout rate above.

    For goods and services delivered outside, Stars drop out of the picture — they are the required way to pay for digital goods, not a universal one — and two real routes are left:

    • Telegram's own checkout, run by an outside provider. The buyer pays without leaving the chat and needs no wallet, no network and no fee coin. You connect that provider yourself and pay its price: Telegram's documentation gives the example of a card processor at about 3% plus a fixed few dozen cents.
    • A crypto checkout: cheaper per payment. Run it through a payment service and the service takes a cut — 1% at CryptumPay's rate, less at volume — while the network itself takes pennies. Build it into the app yourself and there is no service fee, only the developer time. Either way you pay by asking three things of the buyer: a wallet, the right network and a little Gram.

    Plenty of Mini Apps end up doing both at once, the way Artem does: the club on Stars, the delivery orders on crypto.

    Wrap-up

    What you sell decides how you may be paid, item by item.

    Anything the buyer consumes inside Telegram is Stars: quick to wire, about 1.3 cents per Star to you, up to 21 days before you can move the money.

    Anything delivered outside the messenger may be paid in crypto — on the app's own screens that means the TON network.

    A USDT transfer there costs a few cents, but the buyer needs about 0.1 Gram in his wallet, so warn him before he opens it.

    And never treat a signature as settlement: ship when your backend has seen the money.

    FAQ

    Do I need Gram in my own wallet to receive USDT?

    No. The fee coin is spent by the sender, who attaches about 0.1 Gram to the transfer. Part of that sets up a jetton wallet on your side if you have never held USDT here; the rest goes back to him.

    Can I show a USDT address on TRON inside the Mini App?

    No. A Mini App that works with a blockchain may work with the TON network only, and may connect wallets only through TON Connect. A payment page outside the app is another matter: the restriction ends where the app does.

    What if the buyer sends 99 USDT instead of 100?

    Treat that order as unpaid until a human decides otherwise. A short payment usually happens because an exchange took its withdrawal fee out of the amount sent. Decide the rule in advance — accept small shortfalls up to a limit, or ask for the difference — and put it in the support script, because the transfer cannot be reversed.

    Can I take Stars for shipped goods too?

    No. Stars are the required way to pay for digital goods used inside Telegram, and a parcel is not one of those. It goes an outside route instead: a payment provider you connect yourself, priced in Telegram's documentation as a card processor at about 3% plus a fixed few dozen cents, or a crypto checkout, normally the cheaper of the two.

    Start accepting crypto payments

    Create an account and connect the checkout yourself, or talk to sales and we will plan the integration with you.