Not sure if this is helpful, but here's what I think you should think about when you hear *"Bitcoin wallet"*: 1. A Bitcoin _wallet_ is a set of _accounts_ that you can (a) spend coins from and (b) receive coins into. 2. An _account_ is one and the same thing as a _secret key_ and its corresponding _public key_ [1]. 3. To spend coins from an _account_, you need to perform a _digital signature_ using that account's _secret key_. 4. Thus, anybody in possession of the account's _secret key_ can spend all coins from that account. In other words, your _secret key_ **better stay secret** and please **don't lose or "forget" it**. Or else [2]. 5. To receive coins from Alice, you have to give Alice one of your accounts' _public key_ [1]. Now, armed with this knowledge, I think you can answer your own questions: > A Bitcoin wallet itself is nothing more than a "record" that is stored > on Blockchain. It's an identifier that will be used in a person's > Bitcoin transactions. Yes and no. A wallet is a bunch of _accounts_. Each _account_ has a "record" in the blockchain: there will be an entry of the form `(_public key_, 10 bitcoins)` for that account [3]. > A Bitcoin wallet app is simply a software tool to create transactions > that are written on BlockChain Yes. A _wallet app_ is a piece of software that manages all of your accounts' _secret keys_ and enables you to perform those _digital signatures_ that let you spend your coins. Those signatures are over _transactions_ of the form `(_my public key_, _recipient public key_, x bitcoins)` as I detailed in [3]. > I think some BitCoin wallet providers -- not sure if "provider" is the > right term -- may keep some information about the user's > wallet/transaction information on their own system. I'm assuming you are talking about folks like [coinbase.com](https://coinbase.com), which manage your _wallet_ for you? Recall that if they're gonna allow you to spend your bitcoins with a click of a button online, then they need your accounts' _secret keys_. So yes, they store that. And sometimes they're hacked and you lose your money [2]. On the other hand, if you don't use online wallets like coinbase.com, managing your own _secret keys_ can be dangerous too: I have heard many stories of people losing their hard drives and thus their bitcoins. > The value added by those who provide BitCoin services are simply > providing user-friendly tools to read/write information from > Blockchain. They may also be providing a method of converting real > currency into cryptocurrency and vice versa e.g. trading or purchasing > of BitCoin The value part of this is in "opinion land", but yes, I suppose I agree: it's much more user-friendly not to mange your _secret key_ and worry about losing it or being hacked. Still, you might just be replacing one worry with another: now coinbase.com might be hacked and your bitcoins gone [2]. And yes, some wallet providers like coinbase.com let you convert USDs into bitcoins and viceversa. I hope this helps. [1] Sometimes you'll hear the term _address_, which can be thought of as a "fingerprint" of the _public key_. To keep things simple, I will not distinguish between the two. Although, in practice, you will give the _address_, not the _public key_, to folks who want to send you coins. (This has to do with efficiency reasons and a bit of security.) [2] Every time you hear about one of these "Bitcoin hacks," it's because someone's _secret key_ got stolen `=>` the victim's coins got sent to the attacker's account using a _digital signature_ via the stolen _secret key_. [3] To be more specific, there are actually a bunch of entries recording transfers from some other account into your account: `(_public key_ of sender, your account's _public key_, 5 bitcoins sent to you)`