# wallet.ton.org (https://docs-orhepa2tm-ton-core-docs.vercel.app/llms/ecosystem/wallet-apps/web/content.md)



[wallet.ton.org](https://wallet.ton.org) is a self-custodial wallet web app that doesn't require installation. It supports regular [wallets](/llms/standard/wallets/how-it-works/content.md), [Jettons](/llms/standard/tokens/jettons/overview/content.md), and [NFTs](/llms/standard/tokens/nft/overview/content.md). Its source code can be found [here](https://github.com/ton-blockchain/ton-wallet).

<Image src="/images/wallets/wallet-ton-org/ui_light.png" darkSrc="/images/wallets/wallet-ton-org/ui_dark.png" alt="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 [#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](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`](/llms/foundations/status/content.md) status.
* Send some funds to the wallet's account. Now it will be in [`uninit`](/llms/foundations/status/content.md) 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`](/llms/foundations/status/content.md) status, and can be used for any purpose.

<Callout type="caution" title="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.
</Callout>

<Callout type="caution" title="Bug!">
  There is a bug in wallet.ton.org. Mainnet [subwallet ID](/llms/standard/wallets/how-it-works/content.md) 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.
</Callout>

### Generate a key [#generate-a-key]

1. Open [wallet.ton.org](https://wallet.ton.org/).
2. Click "Create Wallet".<br /><Image src="/images/wallets/wallet-ton-org/welcome_page_light.png" darkSrc="/images/wallets/wallet-ton-org/welcome_page_dark.png" alt="Web wallet welcome page" />
3. Choose "Use Password".<br /><Image src="/images/wallets/wallet-ton-org/password_light.png" darkSrc="/images/wallets/wallet-ton-org/password_dark.png" alt="Password option" />
4. Set and confirm password. Password will be used to encrypt the mnemonic that is stored in browser's local storage.<br /><Image src="/images/wallets/wallet-ton-org/creating_password_light.png" darkSrc="/images/wallets/wallet-ton-org/creating_password_dark.png" alt="Password setup" />
5. Save 24 words of the [mnemonic](/llms/standard/wallets/mnemonics/content.md).<br />{<Callout type="danger" title="Funds at risk">
     Mnemonic is the text representation of wallet's secret key. Losing it is the same as losing access to the wallet.<br/>
     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.
     </Callout>}{<Image
     src="/images/wallets/wallet-ton-org/secret_words_light.png"
     darkSrc="/images/wallets/wallet-ton-org/secret_words_dark.png"
     alt="Recovery words"
     />}
6. Pass the check that the mnemonic was actually saved.<br /><Image src="/images/wallets/wallet-ton-org/verify_light.png" darkSrc="/images/wallets/wallet-ton-org/verify_dark.png" alt="Verify secret words" />
7. Now the app should show its main interface.

### Switch to testnet [#switch-to-testnet]

1. Click the "Settings" icon.<br /><Image src="/images/wallets/wallet-ton-org/settings_light.png" darkSrc="/images/wallets/wallet-ton-org/settings_dark.png" alt="Settings button" />
2. In the settings window, double-click the wallet version number to open developer options.<br /><Image src="/images/wallets/wallet-ton-org/version_light.png" darkSrc="/images/wallets/wallet-ton-org/version_dark.png" alt="Click on version" />
3. In the "Developer options" panel, locate the "Networks" section and select "Testnet".<br /><Image src="/images/wallets/wallet-ton-org/testnet_light.png" darkSrc="/images/wallets/wallet-ton-org/testnet_dark.png" alt="Choose Testnet" />
4. The interface should indicate that testnet is used. Also address of the testnet wallet in the [user-friendly format](/llms/foundations/addresses/formats/content.md) starts with `k` or `0`.<br />{<Image
     src="/images/wallets/wallet-ton-org/testnet_version_light.png"
     darkSrc="/images/wallets/wallet-ton-org/testnet_version_dark.png"
     alt="Choose Testnet"
     />}

### Add funds into the wallet [#add-funds-into-the-wallet]

There is a [separate article](/llms/ecosystem/wallet-apps/get-coins/content.md) on this.

1. Message [`@testgiver_ton_bot`](https://t.me/testgiver_ton_bot) in [Telegram](https://telegram.org/).
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](#check-the-account-state) to check the request status.
7. The account should be in the `uninit` status now.

<Image src="/images/wallets/wallet-ton-org/address_uninit_light.png" darkSrc="/images/wallets/wallet-ton-org/address_uninit_dark.png" alt="Account status: uninit" />

### Deploy the code [#deploy-the-code]

<Callout type="caution" title="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.
</Callout>

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".<br /><Image src="/images/wallets/wallet-ton-org/send_coins_light.png" darkSrc="/images/wallets/wallet-ton-org/send_coins_dark.png" alt="Sending coins" />
2. In the confirmation popup, verify the transaction details and click "Confirm" if correct; otherwise, "Edit".<br /><Image src="/images/wallets/wallet-ton-org/confirm_light.png" darkSrc="/images/wallets/wallet-ton-org/confirm_dark.png" alt="Confirm transaction" />
3. After confirmation, the wallet will display a notification: "Coins have been sent!"<br /><Image src="/images/wallets/wallet-ton-org/notification_light.png" darkSrc="/images/wallets/wallet-ton-org/notification_dark.png" alt="Notification" />
4. [Use an explorer](#check-the-account-state) to check wallet's status. It should be `active` now.<br /><Image src="/images/wallets/wallet-ton-org/active_light.png" darkSrc="/images/wallets/wallet-ton-org/active_dark.png" alt="Account status: active" />

## Check the account state [#check-the-account-state]

Use a [blockchain explorer](/llms/ecosystem/explorers/overview/content.md) to inspect the account. For **Testnet**, use [Tonviewer Testnet](https://testnet.tonviewer.com/).

1. Paste the wallet address into the search bar.<br /><Image src="/images/wallets/wallet-ton-org/tonviewer_light.png" darkSrc="/images/wallets/wallet-ton-org/tonviewer_dark.png" alt="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.<br /><Image src="/images/wallets/wallet-ton-org/address_nonexist_light.png" darkSrc="/images/wallets/wallet-ton-org/address_nonexist_dark.png" alt="Account status: nonexist" />

## Verify wallet's version [#verify-wallets-version]

By default, wallet.ton.org creates wallets with the [Wallet v5](/llms/standard/wallets/v5/content.md) code deployed on them. To check which [wallet contract version](/llms/standard/wallets/comparison/content.md) is used:

1. Click the "Settings" icon.<br /><Image src="/images/wallets/wallet-ton-org/settings_light.png" darkSrc="/images/wallets/wallet-ton-org/settings_dark.png" alt="Settings button" />
2. In the "Wallet Versions", you can see which contract the wallet uses.<br /><Image src="/images/wallets/wallet-ton-org/wallet_version_light.png" darkSrc="/images/wallets/wallet-ton-org/wallet_version_dark.png" alt="Settings button" />
3. Click the field to view the current version, for example, W5.<br /><Image src="/images/wallets/wallet-ton-org/contract_type_light.png" darkSrc="/images/wallets/wallet-ton-org/contract_type_dark.png" alt="Settings button" />
