Розробка TON-додатків: смарт-контракти, інтеграція, back-end під ключ
Ми створюємо TON-додатки під ключ. Команда з 5+ років досвіду в блокчейні та 20+ завершених проєктів на TON покриває повний цикл: від проєктування до деплою та моніторингу. Оцінимо ваш проєкт за 1-2 дні — просто напишіть нам.
TON — не просто блокчейн із швидкими транзакціями. Архітектура з нескінченним шардингом та actor model накладає жорсткі обмеження на проєктування смарт-контрактів і back-end. Якщо перенести підходи з EVM, на mainnet виникнуть проблеми з паралельними запитами та bounce-повідомленнями. Наприклад, в одному проєкті ми зіткнулися із завданням реалізації DEX з атомарним обміном — через асинхронну модель довелося перейти на escrow-контракти, що заощадило місяці розробки.
Як архітектура TON впливає на розробку додатків?
У TON кожен смарт-контракт — це actor. Послідовна обробка повідомлень всередині контракту, паралельна між різними. Немає глобального стану, немає синхронних викликів. Натомість — повідомлення із затримкою на 1-2 блоки. Це означає, що атомарність складних операцій вимагає патерну commit-confirm-rollback:
- Контракт A фіксує попередній стан і надсилає запит контракту B.
- B обробляє запит і надсилає confirm або reject.
- 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). Per-user контракти в десятки разів краще монолітних за витратами на зберігання, економлячи до $5 000 на місяць для високонавантаженого DApp.
Як інтегрувати TON Connect?
TON Connect 2.0 — протокол підключення гаманців (Tonkeeper, MyTonWallet, Tonhub). Інтеграція через @tonconnect/sdk або @tonconnect/ui-react. Покроковий процес:
- Встановіть пакет:
npm install @tonconnect/sdk. - Створіть екземпляр
TonConnectз налаштуваннями додатка. - Викличте
connector.connect()для відображення QR-коду. - Обробіть подію
onStatusChangeдля отримання адреси гаманця. - Використовуйте
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 тижні залежно від складності. Вартість розробки залежить від складності: від $8 000 для MVP до $30 000 для повноцінного продукту. Замовте розробку — ми розрахуємо точні терміни та вартість за 1-2 дні.
Типові помилки
- Ігнорувати bounce. Обробляйте bounced message в кожному контракті, що надсилає кошти.
- Зберігати все в одному контракті. Використовуйте per-user контракти.
- Не враховувати storage fees. Закладайте механізм поповнення.
У нас є готові рішення та шаблони для прискорення розробки. Ми використовуємо Blueprint для розгортання, Jest для тестування, та GitHub Actions для CI/CD. Гарантуємо якість коду та дотримання термінів. Наші контракти проходять внутрішній аудит та покриваються тестами на 90%. Важливо враховувати особливості TVM TON: стекова модель, обмеження на довжину cell (1023 біти), та специфіка обчислення газових витрат складніша, ніж в EVM. Отримайте консультацію — ми відповімо на всі питання.







