Wallet Logo

SBW: Simple Bitcoin Wallet

Latest release: 2.4.27 ( 19th January 2022 ) 🔍 Last analysed 16th January 2023 . Reproducible when tested Not updated in a while
4 ★★★★★
1061 ratings
100 thousand
15th July 2015

The binary provided was reproducible from the code provided.

As part of our Methodology, we ask:

Does the binary we built differ from what we downloaded?

If the answer is "no", we mark it as "Reproducible when tested".

If we can reproduce the binary we downloaded from the public source code, with all bytes accounted for, we call the product reproducible. This does not mean we audited the code but it’s the precondition to make sure the public code has relevance for the provided binary.

If the provider puts your funds at risk on purpose or by accident, security researchers can see this if they care to look. It also means that inside the company, engineers can verify that the release manager is releasing the product based on code known to all engineers on the team. A scammer would have to work under the potential eyes of security researchers. He would have to take more effort in hiding any exploit.

“Reproducible” does not mean “verified”. There is good reason to believe that security researchers as of today would not detect very blatant backdoors in the public source code before it gets exploited, much less if the attacker takes moderate efforts to hide it. This is especially true for less popular projects.

But we also ask:

Was the product updated during the last year?

If the answer is "no", we mark it as "Not updated in a while".

Bitcoin wallets are complex products and Bitcoin is a new, advancing technolgy. Projects that don’t get updated in a year are probably not well maintained.

This verdict may not get applied if the provider is active and expresses good reasons for not updating the product.

The product cannot be independently verified. If the provider puts your funds at risk on purpose or by accident, you will probably not know about the issue before people start losing money. If the provider is more criminally inclined he might have collected all the backups of all the wallets, ready to be emptied at the press of a button. The product might have a formidable track record but out of distress or change in management turns out to be evil from some point on, with nobody outside ever knowing before it is too late.

Show Older Reviews

Help spread awareness for build reproducibility

Please follow SBW: Simple Bitcoin Wallet and thank them for being reproducible  via their Twitter!


The following Analysis is not a full code review! We plan to make code reviews available in the future but even then it will never be a stamp of approval but rather a list of incidents and questionable coding practice. Nasa sends probes to space that crash due to software bugs despite a huge budget and stringent scrutiny.

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.

If you find something we should include, you can create an issue or edit this analysis yourself and create a merge request for your changes.

The Analysis 

For that latest version, our test script (?) returned this:

===== Begin Results =====
appId:          com.btcontract.wallet
signer:         dca2c3527ec7f7c0e38c0353278e7a5674cfa6e4b7556510ff05f60073ca338a
apkVersionName: 2.4.27
apkVersionCode: 95
verdict:        reproducible
appHash:        3c7f6da25bd0df54dd6068ddf50ee316d82691766e31b328156591b8c5b5ea01
commit:         2bcad8faeda2ca67f8ceb4b0e686ac1cce0f0d1b

Only in /tmp/fromPlay_com.btcontract.wallet_95/META-INF: BITCOINS.RSA
Only in /tmp/fromPlay_com.btcontract.wallet_95/META-INF: BITCOINS.SF
Files /tmp/fromPlay_com.btcontract.wallet_95/META-INF/MANIFEST.MF and /tmp/fromBuild_com.btcontract.wallet_95/META-INF/MANIFEST.MF differ

Revision, tag (and its signature):

===== End Results =====

The app is reproducible.

(lw, em)