Skip to main content


Smart contract creation, development, and deployment on TON Blockchain leverages the FunC programming language and TON Virtual Machine (TVM). This section will give software engineers an overview of smart contract development on TON.

Quick Start

Write and deploy your first smart contract with either Blueprint or toncli frameworks.


Blueprint — is a development environment for writing, testing, and deploying smart contracts. To create a new demo project use the following command:

Learn Through VideosLearn More


Toncli — is a TON cross-platform smart contract command line interface. Install this and run test project via following command:

toncli start wallet
Learn More

Getting Started

Fast Track Tutorials

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

Comprehensive and Detailed Tutorials

Detailed and cautionary explanations of smart contract basics:

Smart Contract Guidelines

Learn principals of designing and architecture of TON.

TON’s systemized smart contract development allows engineers to build smart contracts for many uses. That said, to unlock the full capabilities of smart contract iteration on TON, it's necessary to follow our predetermined smart contract guidelines to ensure their correct composition.

TON Virtual Machine

TON smart contracts are executed on TON Virtual Machine (TVM). The TVM is a stack-based virtual machine that employs many qualities that make it efficient and easy to implement.

To get a better understanding of how the TVM works, consider reading the TVM Overview section of our documentation.

TVM Overview

Programming Languages

FunC Language

FunC is TON’s high-level programming language used to program smart contracts on TON Blockchain. The proprietary in-house language is a domain-specific statically typed framework which exhibits many characteristics simply not found in competing language types.

FunC Overview

Fift language

advanced level

This information is very low level and may be challenging for newcomers to understand. Therefore, we suggest that you read about it later at your convenience.

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

Fift Overview

Tact language


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

Official SiteTact Hello World

Smart Contract Examples

little tip

Feel free to focus on smart contracts written using FunC. it's often better to focus on smart contracts written using FunC (.fc) instead of the lower-level Fift (.fif) language.

Standard examples of smart contracts on TON include wallets, electors (which manage validation on TON), multi-signature wallets can be a reference when studying.

If you're familiar with smart contracts, consider reading the following GitHub specifications for more context:

Additionally, discover more FunC libraries and SDK in the FunC section of our documentation.


The installation process for Local Environments may require more knowledge and time, but they are better suited for everyday use and eliminate the need for internet dependency. These include IDE plugins, various SDKs, binaries, syntax highlighting, and more. Check out our local environment installation guide to learn more.

Development Toolkit

Development toolkits play a pivotal role in the development of smart contracts on TON Blockchain. To begin developing, testing, and debugging smart contracts on TON, we’ll make use of these products and services:

JavaScript SDK

Other Tools


More articles from TON community:

See Also