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.
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.
Multibit uses the bitcoinj protobuf wallet file.