SkillAgentSearch skills...

Tact

⚡ Tact compiler for TON blockchain—build secure, efficient smart contracts with powerful tooling and seamless integration

Install / Use

/learn @tact-lang/Tact
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Tact Language Compiler

<div align="center">

Tact language banner

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 — as of the beginning of 2025, the number of unique code[^1] contracts deployed on the mainnet reached almost 28 thousand, of which about 33% were written in Tact. You can view some selected projects here: Tact in production.

Tact has undergone a comprehensive security audit by Trail of Bits, a leading Web3 security firm.

Try it onlineFeaturesSecurityKey resourcesInstallationCommunityContributing

Website Documentation Audited by Trail of Bits Twitter Telegram Telegram

</div>

Features

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 and composable behaviors using traits, similar to interfaces or mixins.
  • 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() and loadStructureName() 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 there's much more to come!

Security

Tact in production

Some selected software and applications based on contracts written in Tact, deployed in production, and consumed by end users:

Open source or source available
Closed source

See Tact in production on the Awesome Tact list.

Key resources

Installation

Compiler

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 minimum version is 18.

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

It 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.
  • a formatter tact-fmt, which can format or check the formatting of individual Tact files and directories.

Tooling

Extensions and plugins
Security
Utility
  • Formatter (tact-fmt) — The official formatter. It ships with the Tact Language Server, VS Code extension, and as a standalone binary with the compiler. You can invoke it by running npx tact-fmt in your Tact projects.
  • BoC Disassembler (unboc) — Disassembler for .boc files. Ships as a standalone binary with the compiler. You can invoke it by running npx unboc in your Tact projects.

Getting started

For a quick start, read the "Let's start!" mini-guide in the Tact documentation. It 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 --depth 1 https://github.com/tact-lang/tact-template

Community

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:

Related Skills

View on GitHub
GitHub Stars693
CategoryDevelopment
Updated11d ago
Forks219

Languages

TypeScript

Security Score

100/100

Audited on Mar 19, 2026

No findings