Профессиональный деплой смарт-контрактов в TON под ключ

Мы помогаем проектам развернуть смарт-контракты в блокчейне TON: от разработки на FunC и Tact до деплоя в testnet и mainnet с полной верификацией. Наша команда — 5 лет на рынке блокчейн-разработки и 20+ успешных проектов на TON. Оценим ваш проект за один день. TON — не EVM. Это принципиально друг

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

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

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

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

Мы помогаем проектам развернуть смарт-контракты в блокчейне TON: от разработки на FunC и Tact до деплоя в testnet и mainnet с полной верификацией. Наша команда — 5 лет на рынке блокчейн-разработки и 20+ успешных проектов на TON. Оценим ваш проект за один день.

TON — не EVM. Это принципиально другая архитектура, и опыт деплоя в Ethereum здесь не переносится. Контракты пишутся на FunC (или Tact — более высокоуровневый язык), компилируются в TVM bytecode, и взаимодействуют через асинхронные сообщения. Синхронного вызова contract.someFunction() не существует — только отправка message и ожидание ответного сообщения. Каждая транзакция потребляет газ, и оптимизация газа критична для production.

Как деплоить смарт-контракт в TON?

Деплой в TON использует концепцию StateInit: контракт разворачивается отправкой сообщения с init (code + initial data) на адрес, вычисленный детерминированно из hash(code, data). Это значит, вы знаете адрес до деплоя. Для удобства используем Blueprint — официальный фреймворк (аналог Hardhat для EVM).

Пошаговая инструкция:

  1. Создайте проект: npm create ton@latest my-project и установите зависимости.
  2. Напишите контракт на Tact в папке contracts/.
  3. Соберите код: npx blueprint build.
  4. Напишите тесты в tests/ и выполните их: npx blueprint test.
  5. Для деплоя в testnet выполните npx blueprint run --testnet.
  6. После успешного тестирования деплойте в mainnet: npx blueprint run --mainnet.

Получите консультацию, если нужна помощь с настройкой окружения.

Что такое storage rent и как его учитывать?

В отличие от Ethereum, TON взимает аренду за хранение данных. Контракт с нулевым балансом «замораживается» через ~6 месяцев, а данные удаляются через несколько лет. Для production:

  1. Закладывайте 0.1–0.5 TON при деплое (простой контракт).
  2. Реализуйте механизм пополнения баланса.
  3. Мониторьте баланс через TonAPI.
Пример расчёта storage rent Механизм взимания аренды зависит от объёма занятого storage (code + persistent data). Ставка фиксированная: 1 KB данных ~0.015 TON/год. Для контракта с 500 байтами данных аренда составит ~0.0075 TON/год. Рекомендуется закладывать 0.1–0.5 TON, чтобы контракт жил несколько лет без пополнения.

Сравнение FunC и Tact

Критерий FunC Tact
Уровень Низкий Высокий
Скорость разработки Низкая Высокая
Контроль газа Полный Ограниченный
Ошибки в storage Часты Минимизированы
Для чего подходит Gas-оптимизированные контракты Типовые проекты (NFT, Jetton, DeFi)

Для новых проектов рекомендуем Tact — синтаксис ближе к TypeScript, быстрее писать, меньше багов. Пример контракта на Tact:

contract Counter { counter: Int as uint32; init() { self.counter = 0; } receive("increment") { self.counter = self.counter + 1; } get fun value(): Int { return self.counter; } } 

Эквивалент на FunC занял бы втрое больше строк с явным store_uint/load_uint.

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

  • Разработка смарт-контракта (FunC/Tact) под ваши бизнес-требования
  • Написание модульных тестов на TypeScript с эмулятором TVM
  • Деплой в testnet с отладкой через Tenderly (для TON)
  • Деплой в mainnet с верификацией на verifier.ton.org
  • Документация и инструкция по взаимодействию
  • Пост-деплойная поддержка на 7 дней

Закажите деплой — и мы запустим ваш контракт в TON с гарантией работоспособности.

Компиляция и тесты

npx blueprint build npx blueprint test 

Тесты работают на локальном TVM эмуляторе (@ton/sandbox), выполняются без доступа к сети. Пример теста:

import { Blockchain, SandboxContract, TreasuryContract } from '@ton/sandbox'; import { Counter } from '../wrappers/Counter'; describe('Counter', () => { let blockchain: Blockchain; let deployer: SandboxContract<TreasuryContract>; let counter: SandboxContract<Counter>; beforeEach(async () => { blockchain = await Blockchain.create(); deployer = await blockchain.treasury('deployer'); counter = blockchain.openContract(await Counter.fromInit()); await counter.send( deployer.getSender(), { value: toNano('0.05') }, { $$type: 'Deploy', queryId: 0n } ); }); it('should increment', async () => { await counter.send(deployer.getSender(), { value: toNano('0.01') }, 'increment'); expect(await counter.getValue()).toBe(1n); }); }); 

Деплой в testnet и mainnet

import { toNano } from '@ton/core'; import { Counter } from '../wrappers/Counter'; import { NetworkProvider } from '@ton/blueprint'; export async function run(provider: NetworkProvider) { const counter = provider.open(await Counter.fromInit()); await counter.send( provider.sender(), { value: toNano('0.05') }, { $$type: 'Deploy', queryId: 0n } ); await provider.waitForDeploy(counter.address); console.log('Deployed at:', counter.address.toString()); } 

Запустите npx blueprint run --testnet для testnet или --mainnet для mainnet. Blueprint запросит seed phrase или подключение Tonkeeper через QR.

Jetton (ERC-20 аналог) и NFT

Стандартные токены TON реализованы через TEP-74 (Jetton) и TEP-62 (NFT). Архитектура отличается от ERC-20: каждый holder имеет отдельный контракт JettonWallet. Основной JettonMaster только минтит и хранит глобальную информацию. Адрес кошелька вычисляется через getWalletAddress(ownerAddress). Blueprint предоставляет готовые обёртки от TON Foundation — не пишите с нуля.

Верификация и аудит контракта

После деплоя верифицируем контракт на verifier.ton.org. Загружаем исходники и proof-of-compilation — сервис подтверждает соответствие bytecode. После верификации tonviewer.com и tonscan.org отображают код и позволяют вызывать getter-функции. Также проводим аудит смарт-контрактов TON с использованием Slither и Mythril для выявления уязвимостей.

Ориентиры по срокам

Тип контракта Срок разработки
Простой (counter, storage) 1–2 дня
Средний (Jetton, NFT) 3–5 дней
Сложный (AMM, стейкинг) 1–2 недели

Деплой готового контракта (testnet + mainnet + верификация) — от 2–4 часов. Стоимость рассчитывается индивидуально под задачу. Свяжитесь с нами — мы оценим ваш проект за 1 день.