Hi everyone,
I understand that the term "wallet" can be used to refer to the Bitcoin client software, such Armory, Electrum, or the official Bitcoin Core. What I'd like to ask about is the logical concept of a "wallet", that holds a collection of Bitcoins across these various products.
Is a wallet merely a collection of private/public key pairs that can be used to send/receive Bitcoins? How are these addresses generated? Is there a maximum number of addresses that can be generated per wallet? How does the client know if an address is in my wallet? How is a HD wallet (used in Mycelium) different from an ordinary wallet?
Also, I have a related question: according to the official Bitcoin website, an address should only be used to receive coins once. I want to put a donation link on my website. How can I generate a new address for each donation?
Many thanks
~LU