Skip to content

Commit 2215f58

Browse files
authored
feat: add tonkeeper wallet docs (#1274)
1 parent ed84778 commit 2215f58

36 files changed

+317
-0
lines changed

docs.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
"group": "Wallet apps",
5252
"pages": [
5353
"ecosystem/wallet-apps/web",
54+
"ecosystem/wallet-apps/tonkeeper",
5455
"ecosystem/wallet-apps/get-coins",
5556
"ecosystem/wallet-apps/deep-links",
5657
"ecosystem/wallet-apps/addresses-workflow"
Lines changed: 316 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,316 @@
1+
---
2+
title: "Tonkeeper"
3+
---
4+
5+
import { Aside } from "/snippets/aside.jsx";
6+
import { Image } from '/snippets/image.jsx';
7+
8+
[Tonkeeper](https://tonkeeper.com/) is a self‑custodial mobile wallet available on [iOS](https://apps.apple.com/us/app/tonkeeper-ton-wallet/id1587742107) and [Android](https://play.google.com/store/apps/details?id=com.ton_keeper).
9+
It supports regular [wallets](/standard/wallets/how-it-works), [Jettons](/standard/tokens/jettons/overview), [NFTs](/standard/tokens/nft/overview), and [TON Connect](/ecosystem/ton-connect). Its github repository can be found [here](https://github.com/tonkeeper).
10+
11+
<div
12+
style={{ display: "flex", justifyContent: "center" }}
13+
>
14+
<Image
15+
src="/resources/images/wallets/tonkeeper/main-int-light.png"
16+
darkSrc="/resources/images/wallets/tonkeeper/main-int-dark.png"
17+
width={228}
18+
height={342}
19+
alt="Tonkeeper main interface"
20+
/>
21+
</div>
22+
23+
- 🟡 **Account balance** displays the total amount of Toncoin and other tokens held on account.
24+
- 🔴 **Account address** is shown as a base64-encoded string. It can be shared to receive TON, jettons, or NFTs.
25+
- 🟢 **Send/Receive/Scan buttons** are used to transfer TON or jettons to another account, receive TON or jettons to the wallet, and scan QR codes to confirm transactions, respectively.
26+
27+
## Create a wallet
28+
29+
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 Tonkeeper app to create a testnet wallet account.
30+
31+
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.
32+
33+
Overall procedure is:
34+
35+
- 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`](/foundations/status#status-variety) status.
36+
- Send some funds to the wallet's account. Now it will be in [`uninit`](/foundations/status#status-variety) status, i.e. already with some balance on it, but without any code yet.
37+
- 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`](/foundations/status#status-variety) status, and can be used for any purpose.
38+
39+
<Aside
40+
type="danger"
41+
title="Funds at risk"
42+
>
43+
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.
44+
45+
It's possible to forget switching to testnet, and accidentally spend real funds on mainnet.
46+
47+
It's possible to accidentally transfer funds to a testnet wallet address on mainnet. These funds will be impossible to recover.
48+
49+
Verify which network is used before any funds are sent.
50+
</Aside>
51+
52+
### Generate a key
53+
54+
1. Install Tonkeeper on [iOS](https://apps.apple.com/us/app/tonkeeper-ton-wallet/id1587742107) or [Android](https://play.google.com/store/apps/details?id=com.ton_keeper).
55+
56+
1. Click <kbd>Create New Wallet</kbd>
57+
58+
<div
59+
style={{ display: "flex", justifyContent: "center" }}
60+
>
61+
<Image
62+
src="/resources/images/wallets/tonkeeper/create-wallet-light.png"
63+
darkSrc="/resources/images/wallets/tonkeeper/create-wallet-dark.png"
64+
width={228}
65+
height={342}
66+
alt="Create a wallet"
67+
/>
68+
</div>
69+
70+
1. Create a passcode and re-enter it. Passcode is used to encrypt the mnemonic.
71+
72+
<div
73+
style={{ display: "flex", justifyContent: "center", gap: "16px" }}
74+
>
75+
<Image
76+
src="/resources/images/wallets/tonkeeper/passcode-light.png"
77+
darkSrc="/resources/images/wallets/tonkeeper/passcode-dark.png"
78+
width={228}
79+
height={342}
80+
alt="Create a passcode"
81+
/>
82+
83+
<Image
84+
src="/resources/images/wallets/tonkeeper/reenter-light.png"
85+
darkSrc="/resources/images/wallets/tonkeeper/reenter-dark.png"
86+
width={228}
87+
height={342}
88+
alt="Confirm the passcode"
89+
/>
90+
</div>
91+
92+
1. Click <kbd>Back up your recovery phrase</kbd> and <kbd>Back Up Manually</kbd>.
93+
94+
<div
95+
style={{ display: "flex", justifyContent: "center", gap: "16px" }}
96+
>
97+
<Image
98+
src="/resources/images/wallets/tonkeeper/backup-light.png"
99+
darkSrc="/resources/images/wallets/tonkeeper/backup-dark.png"
100+
width={228}
101+
height={300}
102+
alt="Back up"
103+
/>
104+
105+
<Image
106+
src="/resources/images/wallets/tonkeeper/backup-manually-light.png"
107+
darkSrc="/resources/images/wallets/tonkeeper/backup-manually-dark.png"
108+
width={228}
109+
height={342}
110+
alt="Confirm the passcode"
111+
/>
112+
</div>
113+
114+
1. Save 24 words of the [mnemonic](/standard/wallets/mnemonics).
115+
116+
<Aside
117+
type="danger"
118+
title="Funds at risk"
119+
>
120+
Mnemonic is the text representation of wallet's secret key. Losing it is the same as losing access to the wallet.<br />
121+
Anyone who has access to the mnemonic can take control of the wallet and move funds. If compromise is suspected, create a new wallet and transfer all funds immediately. Prefer not to store recovery words digitally; write them down and keep them offline.
122+
</Aside>
123+
124+
<div
125+
style={{ display: "flex", justifyContent: "center" }}
126+
>
127+
<Image
128+
src="/resources/images/wallets/tonkeeper/recovery-light.png"
129+
darkSrc="/resources/images/wallets/tonkeeper/recovery-dark.png"
130+
width={228}
131+
height={342}
132+
alt="Recovery phrase"
133+
/>
134+
</div>
135+
136+
1. Pass the check that the mnemonic was saved.
137+
138+
<div
139+
style={{ display: "flex", justifyContent: "center" }}
140+
>
141+
<Image
142+
src="/resources/images/wallets/tonkeeper/backup-check-light.png"
143+
darkSrc="/resources/images/wallets/tonkeeper/backup-check-dark.png"
144+
width={228}
145+
height={342}
146+
alt="Recovery phrase"
147+
/>
148+
</div>
149+
150+
1. The main interface of the app should now appear.
151+
152+
### Switch to testnet
153+
154+
1. Click <kbd>wallet</kbd> to open the <kbd>Add Wallet</kbd> pop-up.
155+
156+
<div
157+
style={{ display: "flex", justifyContent: "center" }}
158+
>
159+
<Image
160+
src="/resources/images/wallets/tonkeeper/add-testnet-wallet-light.png"
161+
darkSrc="/resources/images/wallets/tonkeeper/add-testnet-wallet-dark.png"
162+
width={228}
163+
height={342}
164+
alt="Add testnet"
165+
/>
166+
</div>
167+
168+
1. In the "Add Wallet" window, scroll down to the "For developers" section. Click the "Testnet Account" card.
169+
170+
<div
171+
style={{ display: "flex", justifyContent: "center" }}
172+
>
173+
<Image
174+
src="/resources/images/wallets/tonkeeper/for-devs-light.png"
175+
darkSrc="/resources/images/wallets/tonkeeper/for-devs-dark.png"
176+
width={228}
177+
height={342}
178+
alt="Testnet account"
179+
/>
180+
</div>
181+
182+
1. Enter the recovery phrase that was provided when the wallet was created on Mainnet, then click <kbd>Confirm</kbd>.
183+
184+
<div
185+
style={{ display: "flex", justifyContent: "center" }}
186+
>
187+
<Image
188+
src="/resources/images/wallets/tonkeeper/recovery-test-light.png"
189+
darkSrc="/resources/images/wallets/tonkeeper/recovery-test-dark.png"
190+
width={228}
191+
height={342}
192+
alt="Recovery phrase for testnet"
193+
/>
194+
</div>
195+
196+
1. The main interface of the app should now appear, indicating that the testnet is used. Also address of the testnet wallet in the [user-friendly format](/foundations/addresses/formats#user-friendly-format) starts with `k` or `0`.
197+
198+
<div
199+
style={{ display: "flex", justifyContent: "center" }}
200+
>
201+
<Image
202+
src="/resources/images/wallets/tonkeeper/main-int-test-light.png"
203+
darkSrc="/resources/images/wallets/tonkeeper/main-int-test-dark.png"
204+
width={228}
205+
height={342}
206+
alt="Main interface with testnet note"
207+
/>
208+
</div>
209+
210+
### Add funds into the wallet
211+
212+
To get free coins on testnet, follow [the guide](/ecosystem/wallet-apps/get-coins).
213+
214+
#### Quick version
215+
216+
1. Message [`@testgiver_ton_bot`](https://t.me/testgiver_ton_bot) in [Telegram](https://telegram.org/).
217+
1. Press the <kbd>Start</kbd> or send `/start` message.
218+
1. Pass the captcha test.
219+
1. Enter and send the testnet wallet address displayed by wallet.
220+
1. Soon after the "Request added to the queue" response, 2 TON will be sent to the wallet.
221+
1. There won't be any other message that the transfer happened. [Use an explorer](#check-the-account-state) to check the request status.
222+
1. The account should be in the `uninit` status now.
223+
224+
<Image
225+
src="/resources/images/wallets/wallet-ton-org/address_uninit_light.png"
226+
darkSrc="/resources/images/wallets/wallet-ton-org/address_uninit_dark.png"
227+
alt="Account status: uninit"
228+
/>
229+
230+
### Deploy the code
231+
232+
<Aside
233+
type="danger"
234+
title="Funds at risk"
235+
>
236+
On-chain transfers are irreversible — verify the recipient and amount before confirming. Use testnet for practice; use mainnet only for real transfers.
237+
</Aside>
238+
239+
To deploy the code, send any transaction from the wallet. The recipient can be any address, including the wallet itself.
240+
241+
1. Click <kbd>Send</kbd> on the main interface, enter wallet address in "Address or name", and the "Amount" of TON. Click <kbd>Continue</kbd>.
242+
243+
<div
244+
style={{ display: "flex", justifyContent: "center" }}
245+
>
246+
<Image
247+
src="/resources/images/wallets/tonkeeper/send-light.png"
248+
darkSrc="/resources/images/wallets/tonkeeper/send-dark.png"
249+
width={228}
250+
height={342}
251+
alt="Send TON"
252+
/>
253+
</div>
254+
255+
1. Verify the transaction details and swipe if correct. Otherwise, tap <kbd>`<`</kbd> in the top-left corner to edit.
256+
257+
<div
258+
style={{ display: "flex", justifyContent: "center" }}
259+
>
260+
<Image
261+
src="/resources/images/wallets/tonkeeper/confirm-light.png"
262+
darkSrc="/resources/images/wallets/tonkeeper/confirm-dark.png"
263+
width={228}
264+
height={342}
265+
alt="Verify transaction"
266+
/>
267+
</div>
268+
269+
1. After confirmation, enter the passcode. Then, the "History" page displays the sent transaction.
270+
271+
1. [Use an explorer](#check-the-account-state) to check wallet's status. It should be `active` now.
272+
273+
## Check the account state
274+
275+
Use a [blockchain explorer](/ecosystem/explorers/overview) to inspect the account. For **Testnet**, use [Tonviewer Testnet](https://testnet.tonviewer.com/).
276+
277+
1. Paste the wallet address into the search bar.<br /><Image src="/resources/images/wallets/wallet-ton-org/tonviewer_light.png" darkSrc="/resources/images/wallets/wallet-ton-org/tonviewer_dark.png" alt="Insert address in Tonviewer search" />
278+
279+
1. The account details will appear. In a newly created wallet, the status is `nonexist`, indicating the wallet is not deployed.<br /><Image src="/resources/images/wallets/wallet-ton-org/address_nonexist_light.png" darkSrc="/resources/images/wallets/wallet-ton-org/address_nonexist_dark.png" alt="Account status: nonexist" />
280+
281+
## Verify wallet's version
282+
283+
By default, Tonkeeper creates wallets with the [Wallet v5](/standard/wallets/v5) code deployed on them. To switch [wallet contract version](/standard/wallets/comparison) to [v4](/standard/wallets/v4):
284+
285+
1. On the main menu, tap the gear icon <kbd><Icon icon="gear" size={16} /></kbd> in the upper-right corner.
286+
287+
1. In "Settings", select <kbd>Wallet v4R2</kbd> and enter the passcode.
288+
289+
<div
290+
style={{ display: "flex", justifyContent: "center" }}
291+
>
292+
<Image
293+
src="/resources/images/wallets/tonkeeper/v4r2-light.png"
294+
darkSrc="/resources/images/wallets/tonkeeper/v4r2-dark.png"
295+
width={228}
296+
height={342}
297+
alt="V4R2"
298+
/>
299+
</div>
300+
301+
1. The wallet v4r2 is auto-generated and the app returns to the main menu.
302+
303+
- If v5 is highlighted, v4 has no visual indicator.
304+
- To check, tap the wallet name — **wallet v4r2** — v5 is highlighted, while v4 is not.
305+
306+
<div
307+
style={{ display: "flex", justifyContent: "center" }}
308+
>
309+
<Image
310+
src="/resources/images/wallets/tonkeeper/wallet-v4r2-light.png"
311+
darkSrc="/resources/images/wallets/tonkeeper/wallet-v4r2-dark.png"
312+
width={228}
313+
height={342}
314+
alt="V4R2"
315+
/>
316+
</div>
75.7 KB
Loading
72.4 KB
Loading
109 KB
Loading
108 KB
Loading
99.4 KB
Loading
96.9 KB
Loading
94 KB
Loading
48.5 KB
Loading

0 commit comments

Comments
 (0)