BitCold was an idea for an open source Android cold storage wallet for Bitcoin.
I have since run across the Bither Wallet, available for Android or iPhone. This wallet’s core functionality is what I had in mind. Going forward, I’ll be putting all my effort in this area towards this project.
It was designed to work on two Android devices:
- Cold device
- Hot device
The cold device generates and stores keys. Transactions are generated and submitted on the hot device, but are signed on the cold devices. All input/output on the cold device is done via QR code scanning.
The cold device may be encrypted or not.
Aside from holding Bitcoin, BitCold alerts you of all threats against you coins. Examples include: forgetting your password, not having a backup, etcetera.
Private keys are stored in multiple places on the phone, including the SD card.
How to Use
Development has not started yet, but this is the goal
- Cold Device: an old/cheap Android smart-phone with a camera and preferably an SD card
- Hot Device: any android phone with network connection, presumably your main phone
- Install BitCold.apk on your cold device
- Start BitCold on the cold device
- Select that you want it as a cold device
- Observe it goes into airplane mode
- Choose whether you want to encrypt your keys
- Encrypted keys cannot be recovered if you forget your password
- Unencrypted keys cannot be protected if your device is stolen
- Generate an address
- Using any wallet on the hot device, send coins into cold storage
- Install BitCold on your hot device
- Scan your cold storage address
- Generate a transaction
- Scan the transaction with the cold device
- Scan the signed transaction with the hot device and submit it to the network
- Build the .apk yourself from source using Eclipse
- Factory reset your cold device before using it
- Back up your cold device with another cold device
- Requires additional devices
- Interactive diagram (and white paper?)
- Share idea/get feedback
- Choose License
- Pick Libraries
- QR Code scanner
- QR Code generator
- Encryption (Open SSL, javax.crypto ?)
- Bitcoin transactions (on and off network)