Интеграция
Цена, которая означает то же самое в момент нажатия «отправить»
USDT в сети TON — это жетон, то есть контракт токена, а не собственная монета сети, и принимается он внутри Telegram тем же кошельковым сценарием, что и сам TON. Для торговли он конвертирует лучше обычного TON, потому что названная сумма не меняется между расчётом цены и оплатой. После подтверждения платёж необратим.
USDT on TON — интеграция: доступ, лимиты и доступность
- Модель авторизации
- Не требуется
- Где лежит баланс
- В жетон-кошельке владельца, а не на основном счёте
- Доступность в Заливе
- Открыто любому кошельку TON с USDT; подключение не нужно
- Поток данных
- 5 переходов, через воркер
As of 2025-10-01, Telegram Bot API 13.4
Зачем нужна эта интеграция
Цена, названная в волатильном активе, создаёт проблему, не имеющую отношения к технологиям. Витрина называет 12 TON, покупатель думает полторы минуты, и стоимость успевает сдвинуться. Мелкие движения терпимы; заметные заставляют покупателя чувствовать, что он играет на ставку вместо того, чтобы покупать, и число брошенных оплат растёт соответственно.
Стейблкоин снимает это целиком. Двадцать USDT — это двадцать долларов и в момент расчёта цены, и в момент оплаты, а решение покупателя касается товара, а не выбора времени. Для любой торговли — витрины, подписки, оплаты услуги — это обычно самый весомый фактор конверсии на шаге оплаты, весомее чего угодно в оформлении самой корзины.
Механика отличается от собственной монеты сети так, как это важно для реализации. Баланс жетона не лежит на счёте: он живёт в отдельном жетон-кошельке владельца, адрес которого сначала нужно вычислить. Число десятичных разрядов задано контрактом и не совпадает с тем, что у TON. И отправителю всё равно нужно немного собственной монеты сети, чтобы оплатить перевод, — отсюда конкретный и очень частый сбой: у клиента полно USDT и нет TON, заплатить он не может, а сообщение об ошибке не объясняет ничего.
Как на самом деле движутся данные
Аутентификации у стейблкоина нет никакой. Платежи проверяются чтением блокчейна ровно так же, как и с собственной монетой сети, а любой задействованный ключ API принадлежит поставщику данных блокчейна, а не токену. Вместо аутентификации здесь работает сверка: бэкенд записывает, чего он ждёт, ещё до просьбы об оплате, и опознаёт перевод, когда тот появится.
Модель доступа: Без аутентификации
Их лимиты и что они означают для вас
Балансы жетонов лежат в отдельном жетон-кошельке каждого владельца, а не на его основном счёте.
Адрес жетон-кошелька вычисляется для каждого владельца прежде, чем удастся прочитать хоть какой-то баланс. Прочитать основной счёт и ничего там не увидеть — стандартное первое недоумение.
Число десятичных разрядов жетона задаётся контрактом токена и у разных токенов разное.
Суммы считаются целыми числами в младших единицах с разрядностью из контракта и никогда — числами с плавающей точкой. Догадка о разрядности даёт сумму, ошибочную на порядки, а это худшая из возможных ошибок округления.
Перевод жетона требует собственной монеты сети на комиссию, даже когда сам платёж целиком в USDT.
Клиент с USDT и без TON заплатить не может. Оформление заказа обнаруживает это и объясняет, потому что собственное сообщение кошелька непрозрачно, и клиент делает вывод, что сломана ваша витрина.
Подтверждённый перевод необратим: ни отмены платежа, ни арбитра нет.
Возврат — это новый платёж, который отправляете вы, и он исполняется как бизнес-процесс. Тексты витрины обязаны говорить об этом прямо, а не намекать на право возврата как по карте.
Как это ломается и что происходит потом
У покупателя есть USDT, но нет TON на комиссию.
Безусловно самый частый сбой оплаты жетонами. Он обнаруживается до оформления заказа и объясняется простыми словами, поскольку ни кошелёк, ни сеть за вас этого не объяснят.
Перевод пришёл на верную сумму без пригодной ссылки на заказ.
Там, где однозначно, сверяем по сумме и адресу получателя; где нет — передаём человеку. Зачислить неопознаваемый платёж ближайшему ожидающему заказу означает отдать чужой товар не тому покупателю.
На тот же адрес прислали другой жетон.
Наблюдатель сверяет и мастер-адрес жетона, и сумму. Считать любой входящий перевод ожидаемым — способ выдать заказ за токен, который ничего не стоит.
Покупатель отправил чуть меньше названной суммы из-за того, как кошелёк посчитал комиссию.
Небольшой допуск задаётся явно, а не оставляется на волю случая, и всё за его пределами уходит на проверку. Молчаливое принятие недоплаты — это решение о политике, и принимать его нужно осознанно.
Доступность в ОАЭ и остальных странах Залива
Глобально
Доступно любому, у кого есть кошелёк TON с USDT. Ни подключения, ни торгового счёта, ни включения по странам.
Объединённые Арабские Эмираты
Широко используется криптобизнесом Дубая. Приём платежей в стейблкоине может оказаться регулируемой деятельностью в зависимости от того, что вы продаёте; профильный регулятор — VARA.
Потребительская торговля
Практично только там, где ваши покупатели уже держат USDT в сети TON. Для криптоаудитории это отличный канал, для обычной — стена.
Категории с частыми возвратами
Необратимость плохо подходит там, где возвраты часты и ожидаемы. Карточные каналы существуют отчасти ради этого, и это законный повод выбрать их.
Когда эту интеграцию делать не нужно
- Ваши покупатели не держат USDT в сети TON. Для криптоаудитории канал отличный, для обычной — непригодный.
- В вашей категории часто возвращают покупки. Необратимость превращает каждый возврат в ручной исходящий платёж.
- Вам нужны деньги на банковском счёте. Это отдельный вывод в фиат и отдельный вопрос к регулированию.
- Вы продаёте цифровые товары аудитории Telegram. Stars проще для обеих сторон и не требуют кошелька.
На чём это работает
| Компонент | Версия | Зачем |
|---|---|---|
| Cloudflare Workers | current | Расчёт цены, вычисление жетон-кошелька и наблюдение за переводами. |
| Cloudflare D1 | current | Ожидаемые переводы, полосы допуска и очередь на проверку. |
| TON API | v2 | Чтение сети ради жетон-кошельков и истории переводов. |
| TypeScript | 5.9 | Строгий режим, суммы везде целыми числами в младших единицах. |
Вопросы, которые возникают при оценке
Почему USDT конвертирует лучше собственной монеты сети TON?
Потому что названная сумма означает то же самое в момент, когда покупатель нажимает «отправить». Цена в волатильном активе превращает покупку в ставку на момент времени, и число брошенных оплат растёт вместе с заметностью движения между расчётом цены и платежом.
Почему покупатель с большим запасом USDT не может заплатить?
Потому что перевод жетона требует собственной монеты сети на комиссию. Это самый частый сбой оплаты жетонами, и ни кошелёк, ни сеть не объясняют его внятно, поэтому оформление заказа само обнаруживает это условие и объясняет его раньше, чем покупатель решит, что ваша витрина сломана.
Как безопасно считать суммы в жетонах?
Целыми числами в младших единицах с разрядностью из самого контракта и никогда — числами с плавающей точкой. Догадка о разрядности даёт сумму, ошибочную на порядки, и это уже не погрешность округления, а попросту другое число.
Можно ли вернуть платёж в USDT?
Только отправив новый платёж. Исходный необратим после подтверждения, и арбитра нет, поэтому возврат — это бизнес-процесс, а не вызов API. Тексты витрины должны так и говорить, а не намекать на права, привычные по картам.
Что будет, если на наш адрес пришлют другой токен?
Наблюдатель сверяет мастер-адрес жетона наравне с суммой, поэтому такой перевод не зачисляется. Принимать любой входящий перевод за ожидаемый — так заказ и выдаётся за токен, который ничего не стоит.
А если недоплатили несколько центов?
Полоса допуска задаётся явно, а всё, что вне её, уходит на проверку человеку. Принимать недоплату молча — разумная политика, но это должно быть чьим-то решением, а не значением по умолчанию, которого никто не заметил.
Что почитать дальше
Отслеживание перевода и выбор глубины подтверждений закрывает интеграция с TON API.
Для цифровых товаров и некриптовой аудитории проще устроена интеграция с Telegram Stars.
Чаще всего за этим платёжным каналом стоит витрина в Mini App.
Подключение кошелька, предшествующее любому переводу, — это TON Connect.