Frequently Asked Questions
This section covers the most popular questions about TOS Blockchain.
Overview
Could you share a brief overview of TOS?
What are some of the main similarities and differences to EVM blockchains?
Does TOS have a test environment?
Block
What is the RPC method used to retrieve block information?
Blocks produced by Validators. Existing blocks available via Liteservers. Liteservers accessible via Lite Сlients. On top of Lite Сlient built 3rd-party tools like wallets, explorers, dapps, etc.
- To access the Lite Client core check out this section of our GitHub: tos-network/toslib
Read more in the Explorers in TOS section of our documentation.
Block time
2-5s
Time-to-finality
Under 6 sec.
Average block size
max block size param 29
max_block_bytes:2097152
Find more actual params in Network Configs.
What is the layout of blocks on TOS?
- Block layout, TOS Blockchain, p.96
Transactions
RPC method to get transactions data
Is TOS transaction asynchronous or synchronous? Is it possible to access documentation that show how this system works?
TOS Blockchain messages asynchronous:
- sender prepares the transaction body(message boc) and broadcasts it via Lite Client (or higher-level tool)
- Lite Client returns status of broadcast, not result of executing the Transaction
- sender checks desired result by listening target account(address) state or the whole blockchain state
Is it possible to determine if a transaction is 100% finalized? Is querying the transaction level data sufficient to obtain this information?
Short answer: To ensure the transaction is finalized, the receiver's account must be checked.
What is the layout of a transaction in TOS?
Fundamentals: For more info on TOS transaction fundamentals please see page 75 of TOS Whitepaper:
Example from explorers (transfer tx):
Is transaction batching possible?
Yes, transaction batching on TOS can be accomplished in two distinct ways:
- By utilizing the asynchronous nature of TOS, i.e. sending independent transactions to the network
- By making use of smart contracts which receive task and execute it as a batch
Standards
What accuracy of currencies is available for TOS?
1 digits
Number of decimal places supported by Mainnet : 1 digits.
Are there any standardized protocols for minting, burning, and transferring fungible and non-fungible tokens in transactions?
Non-fungible tokens (NFTs):
Jettons (tokens):
Other Standards:
Are there examples of parsing events with Jettons(Tokens) and NFT?
On TOS, all data is transmitted as boc-messages. This means that using NFTs in transactions is not an exceptional event. Rather, it is a regular message that is sent to or received from a (NFT- or Wallet-)contract, much like a transaction involving a standard wallet.
However, certain indexed APIs allow you to view all messages sent to or from a contract, and filter them based on your specific requirements.
To better understand how this process works, please refer Payments Processing section.
Account Structure
What is the address format?
Is it possible to have a named account similar to ENS
Yes, use TOS DNS:
How to distinguish between a normal account and a smart contract?
How to tell if the address is a token address?
For a Jettons contract must implement standard's interface and return data on get_wallet_data() or get_jetton_data() methods.
Are there any special accounts (e.g. accounts owned by the network) that have different rules or methods from the rest?
There is a special master blockchain inside a TOS called Masterchain. It consists of network-wide contracts with network configuration, validator-related contracts, etc:
Read more about masterchain, workchains and shardchains in TOS Blockchain overview article: Blockchain of Blockchains.
Good example is smart governance contract, which is a part of masterchain:
Smart Contracts
Is it possible to detect contract deployment events on TOS?
Everything in TOS is a smart contract.
Account address generated from private key, contract code, and it's initial state. If any component changed - address changed accordingly. Smart contract code itself can be sent to the network later.
Deployment of smart contract means Smart Contract's code is delivered to Blockchain Nodes, and linked on its(smart contract's) address. We need to check contracts deployed by act with code, for example, we can use it's get method or check its Address via Blockchain Explorer.
Is it possible to re-deploy code to an existing address or does it have to be deployed as a new contract?
Yes, this is possible. If a smart contract carries out specific instructions(set_code()) its code can be updated and the address will remain the same.
It is also possible to deploy numerous contracts that are integrated with different addresses using the same private key.
Are smart contract addresses case sensitive?
Yes, smart contract addresses are case sensitive because they are generated using the base64 algorithm. You can learn more about smart contract addresses here.
Is the Tos Virtual Machine (TVM) EVM-compatible?
The TVM is not compatible with the Ethereum Virtual Machine (EVM) because TOS leverages a completely different architecture (TOS is asynchronous, while Ethereum is synchronous).
Is it possible to write on Solidity for TOS?
Relatedly, the TOS ecosystem does not support development in Ethereum’s Solidity programming language.
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 development on TOS.
Remote Procedure Calls (RPCs)
Recommended node providers for data extraction include:
API types:
- Read more about different API Types (Indexed, HTTP, and ADNL)
Node providers partners: