A next-gen smart contract language for TON focused on efficiency and simplicity.
The easiest way to start is to use our project template and read getting started.
git clone https://github.com/tact-lang/tact-template
TACT is distributed via NPM, to install tact into your project, you need:
yarn add @tact-lang/compiler
TACT doesn't have development environment dependencies and has everything built in. TACT's stdlib also distributed together with a compiler.
For Visual Studio Code syntax support, please download the tact extension.
We have formed a large-scale vision for the philosophy of Tact to make sure that community has something to refer to.
-
Familiar syntax Tact features modern post-C syntax familiar to developers who know TypeScript, Swift, Kotlin and Rust.
-
First-class data structures Tact makes it easy to declare, decode and encode data structures according to their TL-B schemas.
-
Safe contract interfaces and ABI Tact offers strong compile-time checks for contract interfaces, typed addresses and lets describe messages natively in a subset of TL-B.
-
Message dispatch Tact offers a convenient yet flexible way to declare, receive and send messages between contracts.
-
Plaintext commands Tact offers an innovative way for securely sending commands to the contracts by the users using plaintext commands that are parsed on-chain.
-
Composition of contracts Tact offers traits to extract commonly used behaviors into reusable and verified components.
-
Statically bounded iterators Tact offers convenient iterators and arrays are bounded and do not hurt scalability of the contracts.
-
Batteries-included standard library Tact comes with a rich standard library that offers data handling functions and standardized behaviors.
-
Interactive Tact comes with a live playground, explorer and easy to use deployment tools.
-
Verifiable Tact produces deterministic builds. Compiler helps analyze gas usage and storage costs.
MIT