Guides
Tact overview

Overview

What is Tact?

Tact is a high-level programming language for TON blockchain that is focused on efficiency and simplicity. It is designed to be easy to learn and use, and to be a good fit for smart contracts. Tact is a statically typed language with a simple syntax and a powerful type system.

👀 Tact needs contributors!

Tact is in the rapid development stage and offers a wide range of tasks for participants to work on. Noticed some issue? Report this with issue (opens in a new tab). Have any suggest how to improve Tact? Just create pull request (opens in a new tab) with your updates. Have directly Tact-lang questions? Ask community in chat (opens in a new tab).

Tact concept

Strong type system

Tact offers algebraic data types compatible with TL-B scheme. Arithmetic is always safe because integers have precise bounds. Tact compiler helps you perform necessary checks and does not produce silent failures or unexpected truncation.

Actor-oriented

Tact is designed specifically for the TON actor model. Strongly typed messages enforce communication contracts between actors.

Tact and FunC

FunC is a lower-level language aimed at developers who are deeply familiar with TON architecture. FunC liberates developers from writing raw Fift code, while providing the same level of control. Unfortunately, the precision of FunC makes it harder to write complex multi-contract systems. Tact enables developers to go even further: you can write the entire suites of smart contracts with strongly typed interfaces and statically verified execution costs. With Tact you can focus on your problem and worry less about blockchain idiosyncrasies.

Typescript Libraries

Tact language has built-in support for ton and ton-core typescript libraries. Compiler generates code for these libraries automatically and you can use libraries like ton-emulator (opens in a new tab), @ton-community/sandbox (opens in a new tab).

Tact contract in Typescript

Compiler generates files named {project}_{contract}.ts for each contract in your project that contains ready-to use strongly typed wrappers to work with a contract in any environment: for testing, deployments, etc.

Tact is just getting started

Tact is a very new project. Currently work in progress, check last version Tact (opens in a new tab).