Skip to content
Tact logo Tact logo

Learn all about programming in ⚡ Tact

Tact is a new programming language for TON Blockchain 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 a simple counter contract:

    Terminal window
    # recommended
    yarn create ton simple-counter --type tact-counter --contractName SimpleCounter
  3. That’s it!

    Your first contract project has already been written and compiled!

    Check it out by moving into the relevant directory — cd simple-counter/contracts. Here’s what it would look like:

    message Add {
    queryId: Int as uint64;
    amount: Int as uint32;
    }
    contract SimpleCounter {
    id: Int as uint32;
    counter: Int as uint32;
    init(id: Int) {
    self.id = id;
    self.counter = 0;
    }
    // Empty receiver for the deployment
    receive() {
    // Forward the remaining value in the
    // incoming message back to the sender
    cashback(sender());
    }
    receive(msg: Add) {
    self.counter += msg.amount;
    // Forward the remaining value in the
    // incoming message back to the sender
    cashback(sender());
    }
    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. 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 reinventing the wheel.

  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 at the top of the documentation. There is also a handy Ctrl + K shortcut to 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!