TONTONDocs
Wallet apps

wallet.ton.org

wallet.ton.org is a self-custodial wallet web app that doesn't require installation. It supports regular wallets, Jettons, and NFTs. Its source code can be found here.

Wallet interface
  • 🟡 Account balance displays the total amount of Toncoin and other tokens held on account.
  • 🔴 Account address is shown both as a QR code and as a base64-encoded string. You can share this address to receive TON, jettons, or NFTs.
  • 🟢 Send button opens the transfer form, allowing you to send TON or jettons to another account address.

Create a wallet

A wallet is required to do any transactions on a public global network. It is the primary way to interact with the blockchain. This step-by-step guide explains how to use wallet.ton.org app to create a testnet wallet account.

Testnet is used instead of mainnet, because it is more suitable for development and experimentation, and test coins can be obtained for free on testnet. The procedure works the same way on mainnet, except funds will have to be procured in a different way.

Overall procedure is:

  • Generate a mnemonic (a key). It uniquely determines wallet's address, but the wallet doesn't exist on blockchain yet, i.e. is in nonexist status.
  • Send some funds to the wallet's account. Now it will be in uninit status, i.e. already with some balance on it, but without any code yet.
  • Deploy wallet's code to this address. Some of these funds will be used to pay for the deploy process. Now the wallet is in active status, and can be used for any purpose.

Funds at risk

Addresses of both mainnet and testnet accounts can be derived from the same mnemonic, i.e. the same key might be used for both wallets. Beware these accounts exist only in their corresponding networks.

It's possible to forget switching to testnet, and accidentally spend real funds on mainnet.

It's possible to accidentally transfer funds to a testnet wallet address on mainnet. These funds will be impossible to recover.

Verify which network is used before any funds are sent.

Bug!

There is a bug in wallet.ton.org. Mainnet subwallet ID is used to generate the address of testnet account.

If an address from wallet.ton.org doesn't match an address computed with @ton/ton or some other library, this might be the reason.

Generate a key

  1. Open wallet.ton.org.
  2. Click "Create Wallet".
    Web wallet welcome page
  3. Choose "Use Password".
    Password option
  4. Set and confirm password. Password will be used to encrypt the mnemonic that is stored in browser's local storage.
    Password setup
  5. Save 24 words of the mnemonic.

    Funds at risk

    Mnemonic is the text representation of wallet's secret key. Losing it is the same as losing access to the wallet.
    Anyone who has access to the mnemonic can take control of the wallet and move funds. If you suspect it already happened, create a new wallet and transfer all funds immediately. Prefer not to store recovery words digitally; write them down and keep them offline.
    Recovery words
  6. Pass the check that the mnemonic was actually saved.
    Verify secret words
  7. Now the app should show its main interface.

Switch to testnet

  1. Click the "Settings" icon.
    Settings button
  2. In the settings window, double-click the wallet version number to open developer options.
    Click on version
  3. In the "Developer options" panel, locate the "Networks" section and select "Testnet".
    Choose Testnet
  4. The interface should indicate that testnet is used. Also address of the testnet wallet in the user-friendly format starts with k or 0.
    Choose Testnet

Add funds into the wallet

There is a separate article on this.

  1. Message @testgiver_ton_bot in Telegram.
  2. Press the Start button or send /start message.
  3. Pass the captcha test.
  4. Enter and send the testnet wallet address displayed by wallet.ton.org.
  5. Soon after the "Request added to the queue" response, 2 TON will be sent to the wallet.
  6. There won't be any other message that the transfer happened. Use an explorer to check the request status.
  7. The account should be in the uninit status now.
Account status: uninit

Deploy the code

Funds at risk

On-chain transfers are irreversible — verify the recipient and amount before confirming. Use testnet for practice; only use mainnet when you intend to make a real transfer.

To deploy the code, send any transaction from the wallet. The recipient can be any address, including the wallet itself.

  1. Click "Send", enter wallet address in "Recipient Address", and the "Amount" of TON. Click "Send TON".
    Sending coins
  2. In the confirmation popup, verify the transaction details and click "Confirm" if correct; otherwise, "Edit".
    Confirm transaction
  3. After confirmation, the wallet will display a notification: "Coins have been sent!"
    Notification
  4. Use an explorer to check wallet's status. It should be active now.
    Account status: active

Check the account state

Use a blockchain explorer to inspect the account. For Testnet, use Tonviewer Testnet.

  1. Paste the wallet address into the search bar.
    Insert address in Tonviewer search

  2. The account details will appear. In a newly created wallet, the status is nonexist, indicating the wallet is not deployed.
    Account status: nonexist

Verify wallet's version

By default, wallet.ton.org creates wallets with the Wallet v5 code deployed on them. To check which wallet contract version is used:

  1. Click the "Settings" icon.
    Settings button
  2. In the "Wallet Versions", you can see which contract the wallet uses.
    Settings button
  3. Click the field to view the current version, for example, W5.
    Settings button

Last updated on

On this page