I know this question has been asked several times, But it never made any sense reading each of them. Can Anyone really explain deeply by using technical language so that I could really understand pros and cons and everything ? Thank you.


A wallet is an application that manages your keys and can create transactions. There are many open source and closed source wallet applications for different platforms (Desktop, Mobile, custom Hardware Wallets). Bitcoin-core has an implementation that runs on a full node. See Bitcoin Wiki - Wallet.

An account can have different meanings depending on the wallet application you are using, but in bitcoin core it is a way to give a readable name to an address and keep track of your balance. In bitcoin core, an account can include multiple receiving addresses. See Bitcoin Wiki - Accounts explained. Note: See @Pieter Wuille's comment below that this will be deprecated from bitcoin-core.

An address can be a form of your public key (or a script), to which people can send bitcoin, and which can only be spent by the corresponding private key (or by satisfying the script). There are many forms your address can take, because it can be derived from any valid script. A simple P2PKH (Pay to public key hash) address is the RIPEMD160(SHA256(public key)) encoded using Base58 checksum. A P2SH is a hash of a script. Basically, in order to spend coins sent to any address, one must satisfy the script that address represents, which usually includes providing the script (P2SH) that the address was hashed from, and any required signatures. See Bitcoin Wiki - Address

| improve this answer | |
  • RIPEMD160, not 140. – Meni Rosenfeld Aug 13 '18 at 14:21
  • Thanks JBaczuk, But here is the thing I'm really interested in. So wallet can have many accounts and those many accounts (each of them) can have many addresses? So Is it 100% right that wallet also saves private/public key for each address? Why was account even invented? so that to unite some addresses into one name and some others into another name? How can an account balance be negative? I'd really appreciate it if you could just answer all these questions. Thank you again. – Giorgi Lagidze Aug 13 '18 at 15:07
  • 1
    @Giorgi Read the "How accounts work" link if you're really interested, but accounts are almost certainly not what you assume they are. They're deprecated and are expected to be removed from Core in an upcoming version even due to confusion and other reasons. – Pieter Wuille Aug 13 '18 at 15:14
  • Depends on what "account" means for that wallet application. Also, there are watch-only addresses that your wallet can keep track of (balance, txs, etc.) but that it does not have the private key for. Also see stackoverflow.com/questions/22237621/…. Maybe you should open separate questions. – JBaczuk Aug 13 '18 at 15:14
  • Also, a wallet does not necessarily store private and public key for every address. For example hardware wallets or watch-only wallets don't. – Pieter Wuille Aug 13 '18 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.