Wallet Logo

Bitcan Bitcoin Wallet - USDT ETH BCH TRON

latest release: 1.3 ( 1st February 2021 ) last analysed  30th April 2021 Not functioning anymore 
4.0 ★★★★★
71 ratings
1 thousand

Jump to verdict 

Older reviews (show 0 of 1 reproducible)

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 

Update 2021-04-30: This app is no more and probably scammed some people as the original analysis below suggests.

Original Analysis

This wallet imitates Bitpie Wallet - Bitcoin USDT ETH EOS BCH TRON LTC . It’s appId being jb.tech.bitpiewallet was the first hint but there are many more similarities. The description for example was also copied.

The provider has no website, so that’s certainly also suspicious.

Nevertheless they claim:

As a true decentralized wallet, your private key will never leave the device.

and unless we can proof that this is not the case, we will have to list it as merely “no source”? We had a look at their app for smoking guns, cause reviews like:

AVOID AVOID AVOID.. BEWARE FAKE WALLET, ADDRESSES DISPLAYED ARE NOT YOURS, FUND ARE TRANSFERED BUT NOT TO YOU. CHECKED ON BLOCKCHAIN AND ADDRESSES WERE ALREADY LIVE WITH MULTIPLE TRANSACTIONS . LESSON LEARNT, YOU ABSOLUTE SCUM.

Awful!! I sent $800 btc to Bitcan wallet and the money NEVER showed up! I copied Receive before I sent……then, after Receive is different and btc not found!!! Scam ‼️

Fake app, you coins get deposited to someone else’s wallet. DO NOT USE!

but that might just be haters, right? After all there is many 5 star ratings, too, like this one:

Wow this is great just after sending my deposit 15Btc it appeared immediately even before confirm.

which sounds like the fake reviewers are not even trying to look serious. WTH?

We downloaded the apk and threw it at jadx and and there, we went straight for the receive screen. jb.tech.bitpiewallet.Receive should be it, right? There in onCreate, the starting point of the Activity/screen, getWallet() is called. Here it is:

public void getWallet() {
  try {
    FirebaseDatabase.getInstance().getReference("Users").child(uid).addListenerForSingleValueEvent(new ValueEventListener() {
      /* class p009jb.tech.bitpiewallet.Receive.C13267 */

      @Override // com.google.firebase.database.ValueEventListener
      public void onCancelled(DatabaseError databaseError) {
      }

      @Override // com.google.firebase.database.ValueEventListener
      public void onDataChange(DataSnapshot dataSnapshot) {
        Receive.this.prd.show();
        Receive.walletid = (String) dataSnapshot.child("WalletId").getValue(String.class);
        Receive.walletname = (String) dataSnapshot.child("WalletName").getValue(String.class);
        TextView textView = Receive.this.tv48waltname;
        textView.setText(Receive.walletname + " Receiving Addresses");
        TextView textView2 = Receive.this.tv46name;
        textView2.setText("My " + Receive.walletname + " Addresses");
        FirebaseDatabase.getInstance().getReference("Wallets").child(Receive.walletid).addListenerForSingleValueEvent(new ValueEventListener() {
          /* class p009jb.tech.bitpiewallet.Receive.C13267.C13271 */

          @Override // com.google.firebase.database.ValueEventListener
          public void onCancelled(DatabaseError databaseError) {
          }

          @Override // com.google.firebase.database.ValueEventListener
          public void onDataChange(DataSnapshot dataSnapshot) {
            Receive.walletaddress = (String) dataSnapshot.child("Address").getValue(String.class);
            Receive.walletqr = (String) dataSnapshot.child("QrCode").getValue(String.class);
            Picasso.with(Receive.this).load(Receive.walletqr).into(Receive.this.iv8qr);
            Receive.this.tv49address.setText(Receive.walletaddress);
          }
        });
        Receive.this.prd.dismiss();
      }
    });
  } catch (Exception unused) {
  }
}

In the third line it calls FirebaseDatabase which according to the Firebase documentation is:

Store and sync data with our NoSQL cloud database.

So if the private keys never leave the device, why would the Receive Activity have to ask a cloud database for the receive address?

Without creating a new category very obvious obvious scam we file it as custodial (The “provider” holds the coins), assuming it’s prompt removal but either way it’s certainly not verifiable.

(lw)

Verdict Explained

This product went out of business ... or so. Read the analysis for details.

As part of our Methodology, we ask:

Is the product still supported by the still existing provider? If not, we tag it Defunct! 

Discontinued products or worse, products of providers that are not active anymore, are problematic, especially if they were not formerly reproducible and well audited to be self-custodial following open standards. If the provider hasn’t answered inquiries for a year but their server is still running or similar circumstances might get this verdict, too.