Skip to main content


Getting Started

TON Hello World guide is the easiest way to start with smart contracts development:

Community Tutorials

More articles from TON community:

Testing and Debugging

The easiest way to start testing your smart contract is:


A local environment allows you to develop contracts faster, with more comfort, and use bonuses like IDE plugins with syntax highlight for smart contracts development.

Read more in the INSTALLATION guide.

Development Toolkit

Start developing, testing, and debugging smart contracts easily with these resources:

JavaScript SDK

Other Tools

TON Virtual Machine

TON smart contracts are executed on their own TON Virtual Machine (TVM).
TVM is built on the stack principle, which makes it efficient and easy to implement.

You can read more about how TVM works in TVM bird's-eye overview.

FunC language

High-level language FunC is used to program smart contracts on TON.

Feel free to read more about FunC in DOCUMENTATION section.

Smart Contract Examples

little tip

Feel free to focus on smart contracts written using FunC (*.fc) instead of low-level Fift (*.fif) language. It would be a better experience.

Standard basic smart contracts like wallets, electors (manage validation on TON), multi-signature wallets, etc. can be a reference when studying.

If you're already familiar with smart contracts, you can try to read the following articles:

Discover more FunC libraries and SDK in the FunC Documentation.

Smart Contract Guidelines

TON allows you to do anything, but if you want to discover full power of the TON Blockchain, you must follow the smart contract guidelines when developing a smart contract.

Fift language

advanced level

This information is very low level and can be hard to understand for newcomers.
So feel free to read about it later.

Messages to smart contracts are binary data. To construct such messages, you can use one of the SDKs or the special programming language Fift.

Since Fift is close to TVM opcodes, it also helps to test the limits of your brain.

Tact language

advanced level

The Tact language is developed by independent developers. Use at your own risk.


  • Is TVM compatible with EVM?

    TVM cannot be compatible with Ethereum Virtual Machine (EVM) because TON has a different modern architecture. (TON is asynchronous, Ethereum is synchronous.)

    Read more.

  • Is it possible to write on Solidity for TON?

    No, you cannot write on Solidity for TON.

    But if you add asynchronous messages to the Solidity syntax and the ability to interact with data at a low level, then you get FunC. FunC features a syntax that is common to most modern programming languages and is designed specifically for TON.