Skip to main content
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 interfaceWallet 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 https://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 riskAddresses 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 pageWeb wallet welcome page
  3. Choose “Use Password”.
    Password optionPassword option
  4. Set and confirm password. Password will be used to encrypt the mnemonic that is stored in browser’s local storage.
    Password setupPassword setup
  5. Save 24 words of the mnemonic.
  6. Pass the check that the mnemonic was actually saved.
    Verify secret wordsVerify secret words
  7. Now the app should show its main interface.

Switch to testnet

  1. Click the “Settings” icon.
    Settings buttonSettings button
  2. In the settings window, double-click the wallet version number to open developer options.
    Click on versionClick on version
  3. In the “Developer options” panel, locate the “Networks” section and select “Testnet”.
    Choose TestnetChoose 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.

Add funds into the wallet

  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: uninitAccount status: uninit

Deploy the code

Funds at riskOn-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 coinsSending coins
  2. In the confirmation popup, verify the transaction details and click “Confirm” if correct; otherwise, “Edit”.
    Confirm transactionConfirm transaction
  3. After confirmation, the wallet will display a notification: “Coins have been sent!”
    NotificationNotification
  4. Use an explorer to check wallet’s status. It should be active now.
    Account status: activeAccount 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 searchInsert 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: nonexistAccount 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 buttonSettings button
  2. In the “Wallet Versions”, you can see which contract the wallet uses.
    Settings buttonSettings button
  3. Click the field to view the current version, for example, W5.
    Settings buttonSettings button