Разработка на TON: смарт-контракты, TON Connect и back-end под ключ

Разработка на TON: архитектура и реализация Мы создаём TON-приложения под ключ. Команда с 5+ лет опыта в блокчейне и 20+ завершённых проектов на TON покрывает полный цикл: от проектирования до деплоя и мониторинга. Оценим ваш проект за 1-2 дня — просто напишите нам. TON — не просто блокчейн с

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1011

Разработка на TON: архитектура и реализация

Мы создаём TON-приложения под ключ. Команда с 5+ лет опыта в блокчейне и 20+ завершённых проектов на TON покрывает полный цикл: от проектирования до деплоя и мониторинга. Оценим ваш проект за 1-2 дня — просто напишите нам.

TON — не просто блокчейн с быстрыми транзакциями. Архитектура с бесконечным шардингом и actor model накладывает жёсткие ограничения на проектирование смарт-контрактов и back-end. Если перенести подходы из EVM, на mainnet возникнут проблемы с параллельными запросами и bounce-сообщениями. Например, в одном проекте мы столкнулись с задачей реализации DEX с атомарным обменом — из-за асинхронной модели пришлось перейти на escrow-контракты, что сэкономило месяцы разработки.

Как архитектура TON влияет на разработку приложений?

В TON каждый смарт-контракт — это actor. Последовательная обработка сообщений внутри контракта, параллельная между разными. Нет глобального состояния, нет синхронных вызовов. Вместо этого — сообщения с задержкой на 1-2 блока. Это означает, что атомарность сложных операций требует паттерна commit-confirm-rollback:

  1. Контракт A фиксирует предварительное состояние и отправляет запрос контракту B.
  2. B обрабатывает запрос и отправляет confirm или reject.
  3. A получает ответ и финализирует или откатывает состояние.

Bounce-сообщения критичны: если B вернул ошибку, bounced-сообщение идёт к A. Если у A нет обработчика, средства могут зависнуть. Правильная обработка bounce снижает риски на 90%.

Смарт-контракты: FunC vs Tact, когда что

Для большинства задач используем Tact — строгая типизация, встроенные проверки, читаемый синтаксис. Jetton (TEP-74), NFT (TEP-62), кастомная бизнес-логика — всё на Tact. По сравнению с FunC, Tact сокращает время разработки на 30–50%.

FunC — для максимальной оптимизации газа или нестандартной работы с cell layout.

Критерий Tact FunC
Безопасность Высокая (типизация) Средняя (низкий уровень)
Скорость разработки Высокая Низкая
Оптимизация газа Хорошая Максимальная
Подходит для Jetton, NFT, бизнес-логика Высоконагруженные контракты

Стандартные шаблоны (Jetton Minter + Wallet) используем аудированные от TON Foundation. Это снижает затраты на аудит на 70%.

Почему стоит хранить данные в дочерних контрактах?

TON взимает storage fee за хранение данных. Если контракт накапливает все данные пользователей в одном месте, он быстро исчерпает баланс и заморозится. Правильный паттерн: мастер-контракт + per-user контракты (как jetton minter + jetton wallet). Это снижает storage fee в десятки раз по сравнению с монолитным контрактом, экономя до $5 000 в месяц для высоконагруженного DApp.

Как интегрировать TON Connect?

TON Connect 2.0 — протокол подключения кошельков (Tonkeeper, MyTonWallet, Tonhub). Интеграция через @tonconnect/sdk или @tonconnect/ui-react. Пошаговый процесс:

  1. Установите пакет: npm install @tonconnect/sdk.
  2. Создайте экземпляр TonConnect с настройками приложения.
  3. Вызовите connector.connect() для отображения QR-кода.
  4. Обработайте событие onStatusChange для получения адреса кошелька.
  5. Используйте connector.sendTransaction() для подписи транзакций, проверяя результат через polling.
import { useTonConnectUI } from '@tonconnect/ui-react'; const [tonConnectUI] = useTonConnectUI(); const sendTransaction = async () => { const result = await tonConnectUI.sendTransaction({ messages: [{ address: contractAddress, amount: toNano('0.05').toString(), payload: beginCell() .storeUint(0x1234, 32) .storeAddress(userAddress) .endCell() .toBoc() .toString('base64') }] }); }; 

Back-end и индексация событий

В TON нет event log. Транзакции читаются через TON HTTP API или tonapi.io. Для production используем tonapi.io — надёжный, с высокими rate limits и webhook-ами. Для сложной индексации — собственный индексер на основе ton-index-worker или managed-решения (TONX, GetBlock). Данные пишем в PostgreSQL, API строим на Node.js/FastAPI. Это обеспечивает обработку до 10 000 запросов в секунду.

Front-end: стек и особенности

Для TON не подходит EVM-стек. Используем:

  • @ton/core, @ton/ton
  • @tonconnect/ui-react
  • Telegram Mini App (TMA) через @telegram-apps/sdk

TMA — основной паттерн для массовых приложений. Свяжитесь с нами, чтобы обсудить ваш проект и получить коммерческое предложение.

Что входит в работу

  • Проектирование архитектуры (message flow diagram, storage model)
  • Разработка и тестирование смарт-контрактов
  • Развёртывание back-end (API, индексер)
  • Front-end с TON Connect
  • Деплой в mainnet и мониторинг
  • Документация и передача исходников
  • Поддержка после запуска (опционально)

Процесс разработки

Этап Срок
Проектирование 3-5 дней
Разработка контрактов 1-2 недели
Back-end 1-2 недели
Front-end + TON Connect 1-2 недели
Деплой и мониторинг 2-3 дня

Итоговые сроки полноценного TON-приложения: 2-4 недели в зависимости от сложности. Закажите разработку — мы рассчитаем точные сроки и стоимость за 1-2 дня.

Типичные ошибки

  • Игнорировать bounce. Обрабатывайте bounced message в каждом контракте, отправляющем средства.
  • Хранить всё в одном контракте. Используйте per-user контракты.
  • Не учитывать storage fees. Закладывайте механизм пополнения.

У нас есть готовые решения и шаблоны для ускорения разработки. Получите консультацию — мы ответим на все вопросы.