Most blockchain nodes contain a kind of a wallet functionality if they provide some kind of a functionalities for the end-users as well. This is actually not a coincident, both in account/balance and UTXO based systems, private keys self are not stored in the blockchain. As a consequence, for creating a new account which is practically a public private key pairs we need a local wallet functionality. Locally created addresses appear in the blockchain only if someone sends money for that address in an UTXO based system or if that account is explicitly added to the system in an account balance based blockchain. As a consequence a wallet has the following functionalities:
- creating accounts: generating private public keys
- managing already created accounts that are still not added to the blockchain
- managing accounts already added to the blockchain, calculating balance, managing keys ...