Skip to main content

Getting started

Welcome to TON quick start guide! This guide will give you a starting point for further research of TON concepts and basic practical experience of developing applications with the TON Ecosystem.

Prerequisites

  • Basic programming knowledge.
  • Around 30 minutes of your time.

Note: We will provide a short explanation of core concepts during the guide, but if you prefer a more theoretical approach, you can check out core concepts of TON Blockchain first.

What You'll Learn

  • Interact with TON Ecosystem: Wallets and Explorers.
  • Setup development environment: use Blueprint SDK for developing smart contracts using FunC, Tact, and Tolk programming languages.
  • Send transactions and read from TON Blockchain using your preferred programming language and available SDKs.
  • Core concepts of TON Blockchain: messages, smart contracts, addresses and etc.
  • Basic templates ready for implementation of your project logic.

Concept of smart contract

You can think of smart contracts in TON as a program running on blockchain following well known behavior concept of actor.

info

In contrast to some other blockchains where you can call in synchronous way other contracts code, smart contract in TON is a thing in itself, and communicates with other smart contracts on equal basis sending asynchronous messages between each other.

Each processing of message by receiver smart contract is considered a transaction resulting in following actions:

  • Sending further messages.
  • Changing internal data or even code of smart contract itself.
  • Changing it's balance.

Available interfaces of smart contract are:

  • Receiving internal messages from other smart contract.
  • Receiving external messages from outside the blockchain.
  • Receiving get methods request from outside the blockchain.

In contrast to internal and external messages, get methods are not what you can consider as a transaction. Those are special functions of smart contract that cannot change contract internal state or proceed any other action except querying specific data from contract state.

info

Contrary to what might seem intuitive, invoking get methods from other contracts is not possible.

Interacting with TON Ecosystem

Before we step on our way of becoming a TON developer, we should become an advanced user of TON! Let's create your own wallet, send a few transactions, and see how our actions are reflected on the blockchain using explorers.

Step 1: Create a new wallet using an app

The simplest way to create a wallet is to visit https://ton.org/wallets and choose one of the wallet apps from the list. They are all pretty similar, let's choose Tonkeeper. Go ahead, install and run it.

Step 2: Mainnet and Testnet

In the TON there is two different networks called Mainnet and Testnet, that have distinct roles:

  • The Mainnet is the primary network where actual transactions take place, carrying real economic value as they involve real cryptocurrency.
  • The Testnet is a testing version of the TON Blockchain designed for development and testing purposes. It's a risk-free zone for developers to test without financial implications. It's mainly used for development, testing smart contracts, and trying new features.

Getting funds

Transactions in TON always require some amount of funds, since executing smart contracts code requires fee payment. TON basic transactions are very cheap, about 1 cent per transaction, getting euqivalent to $5 amount of Toncoin will be enough for hundreds of them. Here is how you can get them:

  • For Mainnet you can get Toncoins by simply pressing the buy button in the user interface, or ask someone to send them to your address, which you can copy from the wallet app somewhere near your balance.
warning

Don't worry, sharing your address is totally safe, unless you don't want it to be associated with you.

  • For the Testnet version, you can request funds from the Testgiver Ton Bot completly for free! After a short wait, you will receive 2 Toncoins that will appear in your wallet app.

Step 3: Creating Testnet wallet

If you decide to use the Testnet version, you can do to it by following guide below.

Generating mnemonic

To create your first Testnet wallet in Tonkeeper you should obtain mnemonic using the button below. Do not forget to save this phrase!

Your mnemonic:
s

Creating wallet

To create Testnet wallet click Wallet -> Add Wallet - TestnetAccount. Then import seed phrase generated in previous step.



Step 4: Exploring TON Blockchain

Congratulations! We created our first wallet and received some funds on it. Now let's take a look at how our actions are reflected in the blockchain. We can do this by using various explorers.

An explorer is a tool that allows you to query data from the chain, investigate TON smart contracts, and transactions. For our examples, we are going to use TonViewer.

tip

Note that in case of using Testnet, you should manually change the explorer mode to the Testnet version. Don't forget that these are different networks not sharing any transactions or smart contracts, so your Testnet wallet would not be visible in Mainnet mode and vice versa.

Let's take a look at our newly created wallet using the explorer: copy your wallet address from the app and insert it into the search line of the explorer like this:

Screenshot of explorer search interface

Address state

First, let't examine common address state of our smart contract:

  • Nonexisting: If you still didn't receive funds to your address you can see the default state for any address that has not been used before, and therefore don't have any data.
Screenshot of nonexistent wallet state
  • Uninit: stands for an address that has some metadata such as funds, but hasn't been initialized by deployed smart contract code or data.
Screenshot of uninitialized wallet state
info

This might seem unintuitive, why is your wallet in uninit state when you already created it? There is little difference between wallet app and wallet smart contract:

  • wallet app is your off-chain client for wallet smart contract
  • wallet smart contract is contract itself, since its deployment requires some fees most wallet apps don't actually deploy the wallet smart contract until you receive funds on your address and try to make your first transaction.
  • Active: state of deployed smart contract with positive balance. To deploy our wallet let's send first transaction to someone special - ourselves. And see how it looks on the blockchain. Enter the send menu in your wallet app and transfer some funds to your own address that you have copied before. In the explorer, our contract should start looking something like this:
Screenshot of active wallet state
info

There is also fourth state called frozen standing for smart contract with storage charge that exceeds it's balance. In this state smart contract cannot perform any operations.

And here we are, our wallet contract is deployed and ready to use. Let's examine provided user interface:

Metadata Section

  • Address: Your account's unique ID (e.g., QQB...1g6VdFEg)
  • Balance: Current TON amount
  • Type: Contract version (e.g., wallet_v5r1 – detected automatically by code)
  • State: address state. Maybe nonexisting, uninit, active or frozen
  • History/Transactions: Displays recent activity (e.g., received funds, contract deployments)
  • Code: Shows raw smart contract code compiled from Func/Tact/Tolk.
  • Methods: Allows execution of get methods to retrieve persistent contract data.

Next Steps:

  • Try to experiment with wallet app and wallet smart contract: create another wallet contract in your wallet app and try to send transactions between them.
  • Continue to Blockchain interaction if you want to learn how to interact with smart contracts from outside the blockchain.
  • Or dive into Developing smart contracts to learn how to develop smart contracts by yourself!

Happy creating on TON!