Learn all about programming in ⚡ Tact

Tact banner

Tact is a new 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.

Let's start!

Ensure that Node.js LTS is installed and available

To check it, run node --version — it should show you the version 18.0.0 or later.

Run the following command

It will create a new project with the simple counter contract:

npm create ton -- simple-counter --type tact-counter --contractName SimpleCounter

That's it!

Your first contract project is written and compiled already! Go check it out by moving into the relevant directory — cd simple-counter/contracts.

Here's how it would look like:

import "@stdlib/deploy";
 
message Add {
    queryId: Int as uint64;
    amount: Int as uint32;
}
 
contract SimpleCounter with Deployable {
    id: Int as uint32;
    counter: Int as uint32;
 
    init(id: Int) {
        self.id = id;
        self.counter = 0;
    }
 
    receive(msg: Add) {
        self.counter += msg.amount;
    }
 
    get fun counter(): Int {
        return self.counter;
    }
 
    get fun id(): Int {
        return self.id;
    }
}

To re-compile or deploy, refer to the commands in the scripts section of package.json in the root of this newly created project and to the documentation of Blueprint (opens in a new tab) — this is the tool we've used to create and compile your first simple counter contract in Tact. In fact, Blueprint can do much more than that: including tests, customizations and more.

Where to go next?

Have some blockchain knowledge already?

See the Tact Cookbook, which is a handy collection of everyday tasks (and solutions) every Tact developer faces during smart contract development. Use it to avoid re-inventing the wheel.

Alternatively, check the following cheatsheets to quickly get started:

Want to know more?

For further guidance on compilation, testing and deployment see the Getting started guide.

For custom plugins for your favorite editor and other tooling see the Tools page.

Alternatively, take a look at the following broader sections:

  • Book helps you learn the language step-by-step
  • Cookbook gives you ready-made recipes of Tact code
  • Language provides a complete reference of the standard library, grammar and evolution process
  • Finally, Ecosystem describes "what's out there" in the Tacts' and TONs' ecosystems

Feeling a bit uncomfortable?

If you ever get stuck, don't hesitate to reach out to Tact's flourishing community:

Good luck on your coding adventure with ⚡ Tact!