К основному содержанию
T TON Adoption
Основы GUIDE · 2026

TON для разработчиков: знакомство с FunC, Tact и Tolk

Какие языки используются для смарт-контрактов TON в 2026 — FunC, Tact, Tolk. Что выбрать новичку, чем отличаются, какие инструменты нужны и где учиться.

Автор
TON Adoption Team · исследовательская группа проекта
Опубликовано
Обновлено
5 мин. чтения

Для разработчика, который привык к Solidity, TON — отдельная вселенная. Другие языки, другие концепции (асинхронность, ячейки, message-passing), другие инструменты. Этот гайд — карта местности: что есть, что выбрать, в каком порядке учить.

Один важный disclaimer: ниже мы говорим про смарт-контракты, то есть код, который живёт в блокчейне. Для front-end интеграции (dApp на JS/React, бот, мини-аппа) языки другие — TypeScript, Python — и они стандартные.

Три языка TON

В TON существует три актуальных языка для смарт-контрактов на 2026 год:

  • FunC — низкоуровневый, исторически первый, написан Николаем Дуровым.
  • Tact — высокоуровневый, появился в 2023, синтаксис похож на TypeScript/Kotlin.
  • Tolk — новейший (2024–2025), позиционируется TON Foundation как рекомендуемый по умолчанию.

Плюс есть Fift — стек-ориентированный язык, но он используется только для деплоя и низкоуровневых утилит. Контракты на нём в проде не пишут.

Все три языка компилируются в TVM-байткод, который и исполняется в сети.

FunC: классика

FunC — функциональный, низкоуровневый язык с явной работой с памятью TON (ячейки, slices, dictionaries). Его синтаксис напоминает гибрид C и Lisp:

  • Явная типизация (int, cell, slice).
  • Прямые TVM-инструкции при необходимости.
  • Минимум абстракций — пишешь близко к железу.

Плюсы:

  • Полный контроль над gas-расходом.
  • Все примеры в документации TON исторически на FunC — базовый язык.
  • Большинство существующих контрактов в mainnet написано на FunC.

Минусы:

  • Высокий порог входа: нужно понимать ячейки и низкоуровневую модель.
  • Много boilerplate (сериализация, обработка сообщений, авторизация — всё руками).
  • Легко ошибиться с типами или порядком операций.

FunC всё ещё поддерживается, но TON Foundation постепенно сдвигает фокус на Tolk. Новые проекты на чистом FunC в 2026 году пишутся редко.

Tact: дружелюбный

Tact задумывался как «Solidity для TON» — высокоуровневый язык, который скрывает большую часть сложности TVM. Синтаксис близок к TypeScript:

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

Плюсы:

  • Низкий порог входа для разработчиков с опытом TypeScript/Java/Kotlin.
  • Автоматическая сериализация сообщений.
  • Встроенные паттерны для jetton, NFT, ownership.
  • Отличная документация на tact-lang.org.

Минусы:

  • Меньше контроля над gas — компилятор генерирует код «безопасно», но не всегда оптимально.
  • Часть сценариев требует встраивания FunC-фрагментов.
  • Сообщество меньше, чем у FunC.

Tact активно используется в продакшене — много проектов 2024–2025 годов перешли с FunC именно на него.

Tolk: новый рекомендованный

Tolk — самая свежая разработка TON Foundation. Запущен в 2024–2025 годах, к 2026 — рекомендуемый язык по умолчанию.

fun main(in_msg: cell, in_msg_full: cell, my_balance: int): int {
    var counter: int = read_counter();
    counter += 1;
    save_counter(counter);
    return 0;
}

Идея Tolk:

  • Современный, типобезопасный синтаксис (как TypeScript).
  • Под капотом FunC-ядро — полный контроль над TVM.
  • Автоматическая упаковка структур в ячейки.
  • Pattern matching, null safety, generics.

Плюсы:

  • Экономия gas 30–50% против FunC по официальным замерам TON Foundation.
  • Авто-инлайн функций (в FunC нужны вручную).
  • Современный type system: type aliases, union types, generics, null safety.
  • Всё ещё — близко к TVM, гибкость на низком уровне.

Минусы:

  • Молод — экосистема только формируется.
  • Меньше готовых примеров и аудит-кейсов.
  • Документация ещё дописывается.

В 2026 году TON Foundation активно переписывает примеры и шаблоны на Tolk. Новый разработчик — должен смотреть в Tolk в первую очередь.

Что выбрать

СценарийРекомендация
Новый проект, нет легаси-кодаTolk
Высокая важность gas-оптимизацииTolk или FunC
Команда привыкла к TypeScript/SolidityTact
Поддержка существующего проекта на FunCFunC
Учеба, понимание устройства TONСначала FunC для базы, потом Tolk

Для абсолютного новичка путь:

  1. Изучить базовую модель TON — ячейки, асинхронные сообщения, account-as-contract.
  2. Сделать первый контракт на Tolk через Blueprint.
  3. По мере необходимости — заглядывать в FunC для глубокого контроля.

Blueprint: главный инструмент

Blueprint — это фреймворк для разработки на TON, аналог Hardhat в Ethereum. Создан TON Foundation, поддерживает все три языка контрактов.

Что внутри

  • Скаффолдингnpm create ton@latest создаёт проект с примером.
  • Компилятор — встроена поддержка FunC, Tact, Tolk.
  • Sandbox — локальный эмулятор TVM для unit-тестов.
  • Деплой — скрипты для testnet/mainnet через Tonkeeper или mnemonic.
  • Тестирование — Jest-based, работает через @ton/sandbox.

Создание проекта

npm create ton@latest my-contract
cd my-contract
npm install

Дальше Blueprint спросит: какой язык контракта (FunC/Tact/Tolk), как назвать главный контракт, делать ли пример. После этого получишь готовую структуру с тестами и скриптом деплоя.

Запуск тестов

npx blueprint test

Тесты выполняются в локальном sandbox — никаких сетевых вызовов, без расхода TON. Время — миллисекунды на тест.

Деплой в testnet

npx blueprint run --testnet

Скрипт спросит, как авторизоваться (через Tonkeeper по QR или mnemonic-фразу), и задеплоит контракт. Аналогично с --mainnet для продакшена.

Минимальный workflow разработки

Типичный процесс работы над контрактом:

  1. Скаффолдинг. npm create ton@latest my-token.
  2. Локальная разработка. Пишешь контракт, пишешь тесты в tests/MyToken.spec.ts.
  3. Локальные тесты. npx blueprint test — должны зелёные.
  4. Testnet деплой. npx blueprint run --testnet. Контракт получает адрес. Дальше можешь подключиться к нему через Tonkeeper в testnet.
  5. Ручное тестирование. Переключаешь Tonkeeper в testnet, отправляешь транзакции, проверяешь поведение через TonScan testnet.
  6. Аудит. Если контракт держит реальные деньги — обязательный шаг. Аудит-фирмы в TON: Certik, Trail of Bits, slowmist.com (специализированные на TON), Tonbit.
  7. Mainnet деплой. npx blueprint run --mainnet. Деплой стоит 0.05–0.5 TON.

Что важно понимать про модель TON

Несколько концепций, которые отличают разработку на TON от EVM:

Каждый аккаунт — это контракт

Даже обычный кошелёк — это смарт-контракт (wallet contract). У него есть код, состояние, баланс. Когда ты «отправляешь TON», ты на самом деле дёргаешь функцию своего wallet-контракта, который шлёт сообщение получателю.

Асинхронность

Контракты не «вызывают» друг друга. Они посылают сообщения, и получатель обработает их в следующем блоке. Возврата значения «прямо сейчас» нет — нужно дизайнить логику с callback-сообщениями.

Bounce

Если получатель не смог обработать сообщение, оно «отскакивает» обратно с флагом bounced=true. Контракт-отправитель должен уметь обрабатывать bounce — иначе деньги «зависнут».

Storage fee

Контракт платит за storage из своего баланса. Если оставить контракт без TON, через несколько месяцев его state «съест» storage fee и контракт замёрзнет (frozen).

Cells и Slices

Все данные в TON хранятся в ячейках — структурах с фиксированным лимитом (1023 бит данных + 4 ссылки на другие ячейки). Большие данные — это дерево ячеек. Сериализация в ячейки и обратно — отдельный навык.

Подробнее про модель — в статье про несовместимость с EVM.

Frontend и dApp

Если ты пишешь не сам контракт, а dApp вокруг него — frontend-разработка стандартная: TypeScript, React/Vue/Svelte, что угодно.

Ключевые библиотеки:

  • @ton/ton — официальный SDK для работы с TON-сетью из JS/TS.
  • @tonconnect/ui-react — кнопка Connect Wallet с поддержкой всех кошельков. Подробнее — в материале про TON Connect.
  • @ton/core — типы и низкоуровневые операции с ячейками.
  • @ton/crypto — криптография (mnemonic, keys, signatures).

Где учиться

Бесплатные источники в 2026 году:

  • docs.ton.org — официальная документация. Обновляется, есть туториалы.
  • tact-lang.org — отдельная документация Tact.
  • TON Hello World — пошаговый туториал «свой первый контракт».
  • GitHub TON-Foundation — репозитории с примерами и образцами.
  • Telegram-каналы@toncontests, @tondevchat, @TONresearch.

Платные курсы существуют, но для входа достаточно бесплатных материалов плюс собственная практика.

Дальше

Если хочешь сначала разобраться с архитектурой TON — полный гайд по сети. Если интересует, как dApp общается с кошельками — TON Connect. Если будешь тестировать без рисков — гайд по testnet.

Источники

Частые вопросы

Tolk — рекомендуемый по умолчанию. Это новейший язык TON Foundation с современным синтаксисом, до 30–50% экономии gas против FunC. Tact — высокоуровневая альтернатива с TypeScript-подобным синтаксисом. FunC поддерживается, но больше как legacy.
Нет, это компилируемые языки в TVM-байткод. JS используется для скриптов деплоя (через Blueprint и @ton/ton SDK), но не для самих контрактов. Python — для тестирования через @ton/sandbox.
Blueprint — официальный фреймворк TON Foundation. Покрывает создание проекта, написание контракта, тесты в sandbox, деплой в testnet/mainnet. Установка одной командой npm create ton@latest.
Через @ton/sandbox — локальный эмулятор TVM. Тесты пишутся на Jest, выполняются за миллисекунды без сетевых задержек. Только когда логика отлажена, переходишь на testnet, потом на mainnet.
Простой контракт (jetton-минтер, NFT-коллекция, кастомный wallet) — 0.05–0.5 TON ($0.02–$0.20). Сложные контракты с большим кодом — до нескольких TON. Это разовая трата при первом деплое.

Похожие материалы