Skip to content
Tact logo Tact logo

Learn all about programming in ⚡ Tact

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!

  1. Ensure that the supported version of Node.js is installed and available

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

  2. Run the following command

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

    Terminal window
    # recommended
    yarn create ton simple-counter --type tact-counter --contractName SimpleCounter
  3. 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;
    // Notify the caller that the receiver was executed and forward remaining value back
    self.notify("Cashback".asComment());
    }
    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 — 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?

  1. 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 cheat sheets to quickly get started:

  2. Want to know more?

    For further guidance on compilation, testing and deployment see the respective pages:

    For custom plugins for your favorite editor and other tooling see the Ecosystem section.

    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
    • Reference provides a complete glossary of the standard library, grammar and evolution process
    • Finally, Ecosystem describes “what’s out there” in the Tact’s and TON’s ecosystems
  3. Feeling a bit uncomfortable?

    If you ever get stuck, try searching — the search box is right at the top of the documentation. There is also a handy Ctrl + K shortcut to quickly focus and start the search as you type.

    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:

    Good luck on your coding adventure with ⚡ Tact!