
A next-gen smart contract programming language for TON Blockchain, focused on efficiency and ease of development. Tact is a good fit for complex smart contracts, quick onboarding and rapid prototyping.
Developed by TON Studio, powered by the community.
Try online! • Features • Security • Key resources • Installation • Community • Contributing
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. - Rich standard library.
- Extensive documentation.
- Robust tooling.
- ...and there's much more to come!
The Tact compiler is distributed as an NPM package bundled with the Tact standard library.
The recommended Node.js version is 22 or higher, while the bare minimum Node.js version must be at least 18 or higher.
Use your favorite package manager to install it into a Node.js project:
# yarn is recommended, but not required
yarn add @tact-lang/compiler
# you can also use npm
npm i @tact-lang/compiler@latest
# or pnpm
pnpm add @tact-lang/compiler
# or bun
bun add @tact-lang/compiler
Alternatively, you can install it globally as such:
npm i -g @tact-lang/compiler
This will make the tact
compiler available on your PATH, as well as a convenient unboc
disassembler of a contract's code compiled into a Bag of Cells .boc
format.
- 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.
- Language Server (LSP Server) - Supports Sublime Text, (Neo)Vim, Helix, and other editors with LSP support.
- tact.vim - Vim 8+ plugin.
- tact-sublime - Sublime Text 4 package.
- Get it on the Package Control.
- Misti - Static smart contract analyzer.
- TON Symbolic Analyzer (TSA) - Static smart contract analysis tool based on symbolic execution.
For a quick start, read the "Let's start!" mini-guide in the Tact documentation, which uses the Blueprint development environment for writing, testing and deploying smart contracts on TON Blockchain.
If you want more manual control, use tact-template — it's a ready-to-use template with the development environment set up, including the Tact compiler with TypeScript + Jest, a local TON emulator, AI-based editor support, and examples of how to run tests.
git clone https://github.com/tact-lang/tact-template
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
on Telegram - Main community chat and discussion group.@tactlang_ru
on Telegram (Russian)@tact_kitchen
on Telegram - Channel with updates from the team.@tact_language
on X/Twittertact-lang
organization on GitHub@ton_studio
on Telegram@thetonstudio
on X/Twitter
Contributions are welcome! To help with the development of the compiler, see the contributing guide.
In addition, we invite you to create new educational materials in any form, help foster the community, and write new Tact contracts. The best creations will be featured in awesome-tact and on social media.
Good luck on your coding adventure with ⚡ Tact!
MIT © The Tact Authors: Steve Korshakov; TON Studio.