Bitcoin-Wallet-Android Google Colab

Overview

Beta channel


Run Google Colab

https://colab.research.google.com/drive/1OShIMVcFZ_khsUIBOIV1lzrqAGo1gfm_?usp=sharing


In order to receive updates quicker than others, you need to enable beta versions of the software in Google Play

As beta testers, please make sure you have a recent backup of the masterseed and all private keys inside Mycelium. Beta testers will experience many bugs. So far, restoring the wallet from masterseed has never been necessary, but we offer no guarantees.

Building

To build everything from source, simply checkout the source and build using gradle on the build system you need:

  • JDK 1.8

The project layout is designed to be used with a recent version of Android Studio (currently 4.1.2)

Build commands

To get the source code, type:

git clone https://github.com/mycelium-com/wallet-android.git
cd wallet-android
git submodule update --init --recursive

Linux/Mac type:

./gradlew clean test mbw::assembleProdnetRelease mbw::assembleBtctestnetRelease

Windows type:

gradlew.bat clean test mbw::assembleProdnetRelease mbw::assembleBtctestnetRelease
  • Voila, look into mbw/build/outputs/apk/ to see the generated apk. There are versions for both prodnet and testnet.

Alternatively you can install the latest version from the Play Store.

If you cannot access the Play store, you can obtain the apk directly from the Mycelium Bitcoin Wallet download page.

App Download Verification

All versions released by Mycelium are signed with the same release keys. If you do not trust the apk you can check that signature with apksigner:

apksigner verify --print-certs --verbose mycelium.apk

The output should look like:

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Number of signers: 1
Signer #1 certificate DN: CN=Mycelium Developers, O=Mycelium, L=Vienna, C=AT
Signer #1 certificate SHA-256 digest: b8e59d4a60b65290efb2716319e50b94e298d7a72c76c2119eb7d8d3afac302e
Signer #1 certificate SHA-1 digest: be575ec3b3b52e0b2392146cbdb245c91ef5a04f
Signer #1 certificate MD5 digest: 7aec063675b0206aba3b6175b89abc7d
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: 6d9c0cda9dcd3ec5efcdca41243829b1dcf1e9a91c6309bca167807282590a20
Signer #1 public key SHA-1 digest: b34336038c7ca678285c14aebe78b7d5add90e4c
Signer #1 public key MD5 digest: a78bdb2b6d074db4b1ff12eb9cddcfa3
WARNING: ...

Deterministic builds

To validate the Mycelium image you obtain from Google Play Store, you can rebuild the Mycelium wallet yourself using Docker and compare both images following these steps:

  • Get the source as above

  • Create your own Docker image from our simple Dockerfile

      $ docker build . --tag mycelium-wallet
    

    Check that this step succeeds by listing the available docker images:

      $ docker images | grep mycelium-wallet
    
  • Use disorderfs to eliminate non-determinism caused by file ordering

      $ mkdir /tmp/s
      $ sudo disorderfs --sort-dirents=yes --reverse-dirents=no --multi-user=yes $PWD /tmp/s
      $ cd /tmp/s
    
  • Build Mycelium using Docker

      $ docker run --rm --volume $(pwd):/project --workdir /project -it mycelium-wallet bash
      # yes | /opt/android-sdk/tools/bin/sdkmanager "build-tools;28.0.3"
      # ./gradlew clean :mbw:assProdRel
    

    If you see errors about local paths not being found, remove/move away local.properties. Run the mycelium-wallet docker with gradle compilation of mbw. As docker might run as a different user, its generated files will also be "not yours". Make them yours using chown as super user.

    The app can now be found in mbw/build/outputs/apk/prodnet/release/mbw-prodnet-release.apk.

    As maintainer with release keys you want to run a slightly different command: Add these docker parameters: --volume 'path/to/keys.properties':/project/keys.properties --volume 'path/to/keystore_mbwProd':/project/keystore_mbwProd --volume 'path/to/keystore_mbwTest':/project/keystore_mbwTest Build all these targets :mbw:assBtctRel :mbw:assProdRel :mbw:assBtctDeb :mbw:assProdDeb and to get an error on missing release keys, add this gradle option -PenforceReleaseSigning

    Note: for those who use Docker Toolbox $(pwd) should be under your home user folder since this is the only folder that is shared with VM.

  • Retrieve Google Play Mycelium APK from your phone Gets package path:

      $ adb shell pm path com.mycelium.wallet
      package:/data/app/com.mycelium.wallet-1/base.apk
    

    Retrieve file:

      $ adb pull /data/app/com.mycelium.wallet-1/base.apk mycelium-signed.apk
    
  • Extract content from both apks you want to compare, using ApkTool:

      java -jar ~/path/to/apktool.jar d mbw-prodnet-release.apk
      java -jar ~/path/to/apktool.jar d mycelium-signed.apk
    
  • Compare signed apk with unsigned locally built apk using a diff tool

      diff --brief --recursive  mbw-prodnet-release/ mycelium-signed/ | grep -v "META-INF/CERT.RSA\|META-INF/CERT.SF\|META-INF/MANIFEST.MF"
    
  • The expected difference between these files are elements that depend on the signature, that only the project's maintainer can reproduce:

    • original/META-INF/CERT.RSA
    • original/META-INF/CERT.SF
    • original/META-INF/MANIFEST.MF

Features

With the Mycelium Bitcoin Wallet you can send and receive Bitcoins using your mobile phone.

  • HD enabled - manage multiple accounts and never reuse addresses (Bip32/Bip44 compatible)
  • Masterseed based - make one backup and be safe for ever. (Bip39)
  • 100% control over your private keys, they never leave your device unless you export them
  • No block chain download - install and run in seconds
  • Ultra fast connection to the Bitcoin network through our super nodes
  • For enhanced privacy and availability you can connect to our super nodes via a tor-hidden service ( .onion address)
  • Watch-only addresses (single or xPub) & private key (single or xPriv) import for secure cold-storage integration
  • Directly spend from paper wallets (single key, xPriv or master seed)
  • Trezor enabled - directly spend from trezor-secured accounts.
  • Mycelium Entropy compatible Shamir-Secret-Shared 2-out-of-3 keys spending
  • Secure your wallet with a PIN
  • Compatible with other bitcoin services through the bitcoin: URI scheme

Please note that bitcoin is still experimental and this app comes with no warranty - while we make sure to adhere to the highest standards of software craftsmanship we can not exclude that the software contains bugs. Please make sure you have backups of your private keys and do not use this for more than you are willing to lose.

This application's source is published at https://github.com/mycelium-com/wallet We need your feedback. If you have a suggestion or a bug to report create an issue.

More features:

  • Sources available for review
  • Multiple HD accounts, private keys, external xPub or xPriv accounts
  • Multiple Bitcoin denominations: BTC, mBTC, bits and uBTC
  • View your balance in multiple fiat currencies: USD, AUD, CAD, CHF, CNY, DKK, EUR, GBP, HKD, JPY, NZD, PLN, RUB, SEK, SGD, THB, and many more
  • Send and receive by specifying an amount in fiat and switch between fiat and BTC while entering the amount
  • Address book for commonly used addresses
  • Transaction history with detailed information and local stored comments
  • Import private keys using SIPA (the ones beginning with a 5) and mini private key format (Casascius private keys) from QR-codes or clipboard
  • Export private-, xPub- or xPriv-keys as QR-codes, on clipboard or share with other applications
  • Share your bitcoin address using Twitter, Facebook, email and more.
  • Integrated QR-code scanner
  • Client side load balancing between three 100% redundant server nodes located in different data centers.
  • Sign Messages using your private keys (compatible with bitcoin-qt)

Authors

Credits

Thanks to all collaborators who provided us with code or helped us with integrations! Just to name a few:

  • Nicolas Bacca from Ledger
  • Sipa, Marek and others from Trezor
  • Jani and Aleš from Cashila
  • Kalle Rosenbaum, Bip120/121
  • David and Alex from Glidera
  • Wiz for helping us with KeepKey
  • Tom Bitton and Asa Zaidman from Simplex
  • (if you think you should be mentioned here, just notify us)

Thanks to Jethro for tirelessly testing the app during beta development.

Thanks to our numerous volunteer translators who provide high-quality translations in many languages. Your name should be listed here, please contact me so I know you want to be included.

Thanks to Johannes Zweng for his testing and providing pull requests for fixes.

Thanks to all beta testers to provide early feedback.

You might also like...
Lightning Dev Kit Android Demo Wallet

uMlando-wallet Lightning Dev Kit Android Demo Wallet This project uses a .aar package for the Android platforms that provide language bindings for the

Tonomy ID is the cross-platform mobile wallet (Android and iOS) for public and private EOSIO blockchains

Tonomy ID is the cross-platform mobile wallet (Android and iOS) for public and private EOSIO blockchains. This application allows you to sign transactions on the block chain, share your DID and Verifiable Credentials containing your identity with others in a consensual way and log into web2 and web3 applications. If you lose your phone several mechanisms exist to allow you to recover your account without trusting anyone with custody of your private keys.

Nova Wallet Android - Next get mobile app for Polkadot & Kusama ecosystem
Nova Wallet Android - Next get mobile app for Polkadot & Kusama ecosystem

Nova Wallet Android is a next gen application for Polkadot & Kusama ecosystem, transparent & community-oriented, focused on convenient UX/UI, fast performance & security.

Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.
Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.

A fully open source, open standard, decentralized "super app" including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet.

Google one tap sign in - Flutter Google One Tap Sign In (Android)
Google one tap sign in - Flutter Google One Tap Sign In (Android)

Google One Tap Sign In Google One Tap Sign In (Android) A Flutter Plugin for Google One Tap Sign In Getting Started To access Google Sign-In, you'll n

xCloud player for Google Chromecast with Google TV
xCloud player for Google Chromecast with Google TV

XCTV Player An awesome Microsoft xCloud player for Google Chromecast with Google

Xctvplayer - xCloud player for Google Chromecast with Google TV
Xctvplayer - xCloud player for Google Chromecast with Google TV

XCTV Player An awesome Microsoft xCloud player for Google Chromecast with Google

This application uses Google Play Services Vision library to scan barcodes. It uses Google's on device ML kit to scan for barcodes.
This application uses Google Play Services Vision library to scan barcodes. It uses Google's on device ML kit to scan for barcodes.

Barcode-Scanner This application showcases use of Google Play Services Vision library It uses Google's on device machine learning kit to scan for barc

android-delicious Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play.
android-delicious Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play.

Delicious Android Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play. Fea

Owner
DE MINING
Development Engineering Mining
DE MINING
Android Bitcoin market app base on Jetpack Compose and MVI. The app displays current bitcoin market price and history price k-line charts.

compose-bitcoin Android Bitcoin market app base on Jetpack Compose and MVVM & MVI. Features Current bitcoin market price. K-line charts of history pri

Chen Pan 3 May 20, 2022
Bitcoin Market app shows you the current Bitcoin market price and price chart of different time intervals 💰

Bitcoin Market ?? Bitcoin Market app shows you the current Bitcoin market price and price chart of different time intervals Tech stack and whys ?? Kot

Cafer Mert Ceyhan 320 Jan 4, 2023
Scp-wallet-android - Lightweight ScPrime wallet for Android

SCP Wallet Android SCP Wallet is lightweight ScPrime wallet for Android. Get sta

Paolo Biglioli 3 Mar 31, 2022
Cosmostation wallet apps are non-custodial tendermint-based wallet that supports Cosmos Network.

Cosmostation wallet apps are non-custodial tendermint-based wallet that supports Cosmos Network.

Cosmostation 44 Dec 21, 2022
Sample crypto wallet for Wallet Link SDK.

DemoWallet This repo is sample app for Wallet Link SDK. WalletLink is an open protocol that lets users connect their mobile wallets to your DApp. With

null 0 Dec 17, 2021
Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

null 727 Dec 26, 2022
EU Digital COVID Certificate Wallet App - Android

This repository contains the source code of the EU Digital COVID Certificate Wallet App for Android.

null 57 Oct 6, 2022
Ergo Wallet for Android, built on top of Ergo Appkit.

Ergo Wallet Android Ergo Wallet for Android, built on top of Ergo Appkit. You need at least Android 7 to run Ergo Wallet. Features: generating wallets

Benjamin Schulte 80 Dec 14, 2022
The Odysee Android app with wallet functionality

Odysee Android Release To create an APK file which can be installed on real devices, you will need to create a digital signature and then edit app/bui

Odysee 116 Dec 29, 2022
Ergo Wallet for Android

Ergo Wallet Android Official Ergo Wallet for Android (official announcement) Features: generating wallets, restoring wallets in a way compatible to Yo

Ergo 80 Dec 14, 2022