Tact is a fresh programming language for TON Blockchain that is focused on efficiency and ease of development. It is a good fit for complex smart contracts, quick onboarding, and rapid prototyping. Tact is fast, gas-efficient, and developer-friendly.

What is Tact?
Mass adoption driver
At the start of 2025, the number of unique code contracts deployed on the mainnet has reached almost 28 thousand, of which about 33% were written in Tact.
Here are some selected Tact-based software and applications deployed in production and consumed by end users:
Powerful and feature-rich
The most prominent and distinctive features of Tact are:
- Familiar and user-friendly TypeScript-like syntax.
- Strong static type system with built-in Structs, Messages, and maps, among others.
- First-class maps support, with many methods and a convenient
foreach
statement for traversing. - Automatic (de)serialization of incoming messages and data structures.
- Automatic routing of internal, external, and bounced messages.
- Automatic handling of message types, including binary, text, and fallback slices.
- No boilerplate functions for sending messages and deploying child contracts.
- Reusable behaviors through traits.
- Support for low-level programming with
asm
functions. - Generation of single-file TypeScript wrappers for convenient interactions with compiled contracts, which include:
- Type definitions for Structs and Messages observable in the compilation report.
- Corresponding
storeStructureName()
andloadStructureName()
functions for (de)serialization. - All global and contract-level constants.
- Bi-directional records of exit codes: from their names to numbers and vice versa.
- Opcodes of all Messages.
- A contract wrapper class with various helper functions for initialization, deployment, and message exchange.
- Rich standard library.
- Extensive documentation.
- Robust tooling.
- ...and a lot more!
Tooling-packed
Extensions and plugins
- VS Code extension — powerful and feature-rich extension for Visual Studio Code (VSCode) and VSCode-based editors, like VSCodium, Cursor, Windsurf, and others.
- Get it on the Visual Studio Marketplace.
- Get it on the Open VSX Registry.
- Or install from the
.vsix
files in nightly releases. - Intelli Tact — powerful and feature-rich plugin for JetBrains IDEs like WebStorm, IntelliJ IDEA, and others.
- Language Server (LSP Server) — supports Sublime Text, (Neo)Vim, Helix, and other editors with LSP support.
- tact.vim — Vim 8+ and Neovim plugin.
- tact-sublime — Sublime Text 4 package.
- Get it on the Package Control.
Security
- Misti — static smart contract analyzer.
- TON Symbolic Analyzer (TSA) — static smart contract analysis tool based on symbolic execution.
Utility
- Compiler itself,
tact
— it is distributed as an NPM package bundled with the standard library. The recommended Node.js version is 22 or higher, while the minimum version is 18. You can invoke the compiler or any of the bundled tools withnpx
, followed by the name of the tool. - Formatter,
tact-fmt
— official formatter that ships with the Tact Language Server, VS Code extension, and as a standalone binary with the compiler. - BoC Disassembler,
unboc
— disassembler for.boc
files that ships as a standalone binary with the compiler. - ide.ton.org — online IDE and interactive web playground.
Project management
- tact-template — ready-to-use template with the development environment set up, including the Tact compiler with TypeScript and Jest, a local TON emulator, AI-based editor support, and examples of how to run tests.
- create-tact — a CLI for setting up a new clean project from the Tact template. You can use it with
npm
,yarn
,pnpm
, andbun
with one of the following commands: npm create tact@latest
yarn create tact@latest
pnpm create tact@latest
bun create tact@latest
Secure and accessible
Tact is audited and battle-tested
Compiler version 1.5.0 has passed a security review by Trail of Bits with no high-severity vulnerabilities found. See the full PDF report or its copy on this website.
Moreover, Tact documentation provides comprehensive pages on security best practices and gas best practices.
If you discover a vulnerability in the compiler, please report it to us without opening a public issue on GitHub. See the security policy in the SECURITY.md file for details.
Tact is open and public
It is developed by TON Studio in the open source and open development model on GitHub — suggestions, issues and bug fixes are welcome! Notice that GitHub provides syntax highlighting for Tact code across the website.
To help develop the compiler, see its contributing guide.
Tact is community-driven
If you can’t find the answer in the docs, or you’ve tried to do some local testing and it still didn’t help — don’t hesitate to reach out to Tact’s flourishing community:
@tactlang
— Main Telegram community chat and discussion group@tactlang_ru
— Russian-speaking Telegram chat@tact_kitchen
— Telegram channel with updates from the team@tact_language
— X/Twitter@ton_studio
— Telegram channel of teams behind Tact and other TON projects@thetonstudio
— X/Twitter
Sounds good? Let's get started!
To start writing Tact yourself, install the preferred tools, then see the Let's start section on the main page of the documentation.
Once you get the grip of it, we invite you to create new educational materials in any form, help foster the community, and build new Tact contracts and projects. The best creations will be featured in awesome-tact and on social media.
Good luck on your coding adventure with ⚡ Tact!