A Bitcoin wallet is a file that contains a collection of private keys.
- keypairs for each of your addresses
- transactions done from/to your addresses
- user preferences
- default key
- reserve keys
- a version number
- Key pool
- Since 0.3.21: information about the current best chain, to be able to rescan automatically when restoring from a backup.
The data file for the wallet is wallet.dat and is located in the Bitcoin data directory.
It is intended that a wallet be used on only one installation of Bitcoin at a time. Attempting to clone a wallet for use on multiple computers will result in "weird behavior".
The format of this file is Berkeley DB. Tools that can manipulate wallet files include pywallet.
The Armory client uses a custom binary wallet format.
Bitcoin Wallet uses the bitcoinj protobuf format for its wallet file. However, due to Android isolation of applications, it is impossible to access the wallet file as a non-root user.
Blockchain.info use a plain text JSON wallet format documented here. Private keys Keys are stored in base58.
Coinkite is a web wallet using "HD Wallet (BIP32)" technology, which can be shared partially or entirely with different systems, each with or without the ability to spend coins here. Private keys Keys are sent to you encrypted with AES-256-CBC.
Coinprism is the first colored coins web wallet. Coinprism is similar to other web wallets, except you can store, issue, send and receive colored coins and not only normal Bitcoins. Note that the site is currently in invite-only beta.
Email Tip Bot
Email Tip Bot is a wallet that works entirely through email. This makes it the only native solution to sending bitcoins on iOS devices, like the iPhone and iPad. It is secure against email spoofing, but can be compromised by anyone who has read access to your email.
Hive is a lightweight "thin client" Bitcoin wallet for Mac OS X and soon in iOS, Web and Android. It is primarily based on bitcoinj focusing on ease-of-use that offers multi-currency support and many others.
HolyTransaction is your universal multi-currency wallet with instant exchange. You can send payments in one digital currency, and receive in another. It's designed for nontechnical users. Mobile wallet client available on any device with HTML5 support.
Multibit uses the bitcoinj protobuf wallet file.