imToken - Bitcoin & Ethereum Walletlatest release: 2.9.7 ( 8th October 2021 ) last analysed 13th April 2021 No source for current release found
Help spread awareness for build reproducibility
Please help us spread the word discussing transparency with imToken - Bitcoin & Ethereum Wallet via their Twitter!
Do your own research!
Try out searching for "lost bitcoins", "stole my money" or "scammers" together with the wallet's name, even if you think the wallet is generally trustworthy. For all the bigger wallets you will find accusations. Make sure you understand why they were made and if you are comfortable with the provider's reaction.
The Analysis ¶
In the description we read:
imToken is a feature-rich digital wallet to securely manage BTC, ETH, ATOM, EOS, TRX, CKB, BCH, LTC, KSM, DOT, FIL, XTZ and other digital assets. It enables decentralized value exchange and DApp browsing in one place.
“securely manage BTC”. Ok, so it is a BTC wallet but is it self-custodial?
Carefully Guarding Your Assets
Build a comprehensive risk control system to ensure the security of wallets. Support hardware wallets & cold wallets to prevent private keys from contacting the network and reduce the risk of theft.
This certainly implies to be self-custodial but there being something supported doesn’t mean that the default isn’t them holding the keys. So hardware wallets are supported but where are the keys stored if I use this wallet without a hardware wallet?
Their website is not much more helpful:
Digital assets under your control
imToken is an easy and secure digital wallet trusted by millions
again is implied self-custody but not really stated.
From their FAQ:
How to backup the mnemonic?
Whoever has the Mnemonic is able to use your wallet. So, be sure to do the following two things:
- Backup your Mnemonic,
- Keep the Mnemonic safe
- Once the Mnemonic is lost, no one can retrieve it
- Do not tell the Mnemonic to anyone, so as to avoid irreparable damage
Backup Mnemonic steps:
- Accurately transcribe 12 words in the displayed order
- Confirm the Mnemonic, to ensure that the word transcript in step 1 is correct, and the sorting is accurate
- Backup complete
So the user does have access to the private keys but strictly speaking there is no claim that they don’t have a copy.
Finally on their official Twitter account there is a clear statement in the account’s bio:
Self-Custodial Crypto Wallet Since 2016.
I hope they make this claim a bit more prominent in the app’s description and on the website and asked for that in this tweet.
Assuming self-custody, the next question is: Is it open source? Again, there is no such claim in the description or the website but there is a link to their GitHub. On their GitHub though there is only one mention of their applicationId in an issue opened by our contributor Emanuel. It’s issue 97 asking:
Where is the latest source-code for im.token.app?
So for now we conclude this app is closed source and therefore not verifiable.
Without public source of the reviewed release available, this product cannot be verified!
As part of our Methodology, we ask:Is the source code publicly available? If not, we tag it No Source!
A wallet that claims to not give the provider the means to steal the users’ funds might actually be lying. In the spirit of “Don’t trust - verify!” you don’t want to take the provider at his word, but trust that people hunting for fame and bug bounties could actually find flaws and back-doors in the wallet so the provider doesn’t dare to put these in.
Back-doors and flaws are frequently found in closed source products but some remain hidden for years. And even in open source security software there might be catastrophic flaws undiscovered for years.
An evil wallet provider would certainly prefer not to publish the code, as hiding it makes audits orders of magnitude harder.
For your security, you thus want the code to be available for review.
If the wallet provider doesn’t share up to date code, our analysis stops there as the wallet could steal your funds at any time, and there is no protection except the provider’s word.
“Up to date” strictly means that any instance of the product being updated without the source code being updated counts as closed source. This puts the burden on the provider to always first release the source code before releasing the product’s update. This paragraph is a clarification to our rules following a little poll.
We are not concerned about the license as long as it allows us to perform our analysis. For a security audit, it is not necessary that the provider allows others to use their code for a competing wallet.
Share onTwitter Facebook LinkedIn
Or embed a widget in your website
<iframe src="https://walletscrutiny.com/widget/#appId=android/im.token.app&theme=auto&style=short" name="_ts" style="min-width:180px;border:0;border-radius:10px;max-width:280px;min-height:30px;"> </iframe>
<iframe src="https://walletscrutiny.com/widget/#appId=android/im.token.app&theme=auto&style=long" style="max-width:100%;width:342px;border:0;border-radius:10px;min-height:290px;"> </iframe>