TON Hello World guide is the easiest way to start with smart contracts development:
More articles from TON community:
- TON Learn FunC journey: 10 zero-to-hero lessons (Ru version)
- Introduction to FunC: how to start developing on TON?
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.
Start developing, testing, and debugging smart contracts easily with these resources:
- disintar/toncli — Comfy CLI to build, deploy, and test FunC contracts
- MyLocalTON — Run your private TON Blockchain
- tonwhales.com/tools/boc — BOC parser
- tonwhales.com/tools/introspection-id — crc32 generator
- @orbs-network/ton-access — decentralized API gateway
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.
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
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:
- Fungible (Jettons), Non-Fungible (NFT), Semi-Fungible Tokens smart contracts
- Getgems NFT, sale, auctions smart contracts (FunC)
- Wallet V4 smart contract example
- Standard smart contracts examples
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.
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.
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.)
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.