TON Surf

**TON Surf** or **Surf** is a TON blockchain interface, which main functionality include a non-custodial wallet, secure chat and debot browsing. Surf does not require registration and does not collect any data from user. Nonetheless, in order to comply with legal requirements, a user has to explicitly agree with Surf Decentralization Policy.

Third party services in Surf, such as buying or selling tokens for fiat or other virtual currency, may ask a user to pass verification and request user's personal data or other information via Surf. In such cases a user is responsible for reviewing their terms and conditions before accepting them. TON Labs shall assume no liability for your usage of any third-party services in Surf.

An existing account created through other means may be accessed via Surf, depending on the algorithms used to calculate the account address and the cryptographic keys when initially deploying an account.

For instance, Surf is currently fully compatible with the SetcodeMultisig contract deployed through TONOS-CLI, but not with the SafeMultisig contract deployed the same way.

Given the nature of blockchain, transaction data and account address cannot be removed from it. So, it is not possible to delete an account and all the data related to it. If the account is no longer needed, a user should withdraw funds, logout, remove the application from all devices and destroy the seed phrase.

## Seed phrase

A seed phrase or mnemonic phrase is an automatically generated random permanent list of 12 words which store all the information needed to recover access to Surf account and private keys. By default, the private key and seed phrase are stored only on user's device.

User cannot create their own seed phase or change it. If it is compromised, the only solution is to urgently create a new Surf account (wallet) and transfer all funds to it.

It is recommended to write the seed phrase down on paper and keep it in a protected place.

Creation of a private key is executed through the open source TON Labs SDK located only on user's device and likewise stored only on that device.

**Surf has no way to recover lost seed phrase. Without seed phrase an access to Surf wallet is lost forever.**

## PIN code

At each login a user must create a one-time PIN code, which will only work for current session. Entering PIN is required for sending transactions and displaying sensitive information in Surf, such as the seed phrase or private key. If PIN is lost, a user should simply log out from the account and then log in again to create new PIN code.

Surf also supports Touch ID/Face ID as a method to unlock the app, send coins or confirm other operations instead of the PIN code.

## Fees

Transaction fees consist of a few types of different fees connected to the execution of a single transaction. Transactions itself are complex processes, and fees are paid relative to different stages of executing them:

* Storage phase: collects **storage fee** - a payment for storing the contract code and data on the blockchain. In it not directly related to the transaction itself.
* Credit phase: collects toll for importing the message into the block. There's a variety of types depending on the message origin and routing, generally referred to as **import fees**.
* Computing phase: collects **gas fee**, paying up for the smart-contract execution inside VM.
* Action phase: collects some payments for composing outbound messages and performing special manipulations, collectively called **action fee**.
* Bounce phase: if it happens, collects **bounce fee** for forwarding a special "bounce" message to the original sender.

The fees do not depend on the amount of the transfer, they are based on the smart contract being executed.

More detailed information about how the fees are calculated https://docs.ton.dev/86757ecb2/p/632251-fee-calculation-details

## Gas

Gas is a processing capacity to execute a smart contract inside TVM. The gas payment one of the few internal TON blockchain commission types.

Simply put, it is the fuel for smart contract execution on TON blockchain.

More information about gas calculation is available at https://docs.ton.dev/86757ecb2/p/00f1c7-managing-gas-in-ton

## Transaction comments

Encrypted or public comments can be attached to transactions. They will be stored in the Free TON blockchain.

All can see encrypted comments in the blockchain as an encrypted string and the content is not available to third parties. For sender and receiver it will be a normal text in Surf.

All unencrypted comments to transactions are public in the Free TON blockchain.

It is possible to check and view comments in the Free TON blockchain through https://ton.live/.

The comment is a body of the transaction and increases the size of the transaction, that make an influence during the Free TON fee calculation.

## Developer mode

Developer mode allows to switch Surf to the Free TON devnet, a separate blockchain, running the latest stable version of Free TON, that is used for the purposes of development and testing.

The devnet has its own test coins – Rubies. They have no real value and can be freely obtained both in Surf directly, and from devnet support.

The account address in the devnet will stay the same. Only the network Surf connects to will be changed. Different devnet address can be obtained via logging out of Surf, creating a new wallet and switching Surf to Developer mode to work with this new wallet.

In Developer mode the Chain Rider bot can once grant any account 100 Rubies. More rubies can be obtained via contacting support or the community at large.

Since devnet is used for testing purposes, it can, on rare occasions, undergo full restarts, that wipe all account and transaction history. In such an event test Rubies can be requested from the Chain Rider bot again.

## Secure chat

Surf provides end-to-end encryption chat for users with their private keys.

Messages are not stored in the TON Blockchain. Currently, TON Labs uses a database, where all messages are encrypted based on curve25519-xsalsa20-poly1305 asymmetric algorithm.

In future releases messages will be stored in a decentralized TON storage database.

Surf allows to block messages in any chat except bots to prevent spam or unwanted messages. While messages are blocked, the text input field in the chat is inactive, and displays information on which of the participants blocked the other.

Note, that coin transfers are not blocked by this action.

## Debots

Debot (decentralized bot) is an intuitive chat-like interface for smart contracts in TON blockchain. Debots themselves are also smart contracts, the difference being that instead of executing in blockchain, debots are downloaded to a Surf user's device and executed locally.

Debots are called "decentralized bots" since smart contracts (both debot itself and the smart contract, for which this particular debot serves as an interface) are stored and executed on the blockchain, and are therefore as decentralized, as the blockchain itself.

Currently there are three debots from TON Labs available in Surf, which are DePool, Multisig and DoD debots.

Surf supports third-party debots, just as any web browser supports any web page, and it is possible for everyone to create their own debots for any purpose or service.

## Staking

The concept of staking means participating in a pool that finances validators who submit stakes to get a TON validation mandate for a specific period of time.

Surf acts as a nominator and offers a simplified staking option.

**Staking is not an investment or any other regulated activity. Staking is a risk in which you could potentially lose your tokens. Please read the Surf Decentralization Policy carefully and educate yourself about all the risks related to this service.**

**By using Surf staking you hereby agree not to hold Surf and TON Labs liable for any risks or losses associated with your use of staking.**