A cryptocurrency wallet is software or a device used to manage keys and authorise transactions on a blockchain. The assets are recorded on the network; a wallet supplies the means to control them. Receiving addresses, transaction signing, and communication with the network can be handled by different components.1

Keys, accounts, and custodyReport an error

For a conventional key-controlled account, a private key authorises transactions and the receiving address identifies where assets can be sent. A wallet interface is distinct from the account: compatible software can access the same account. Ethereum also has contract accounts, whose authority is defined by program logic rather than a private key belonging to the contract itself.23

Custody describes who can sign. MetaMask's documentation distinguishes wallets controlled by the user from services that control keys for customers. A balance displayed by a hosted service therefore involves trust in that service. A self-managed wallet instead places responsibility for signing and recovery with its controller.4

Storage and recoveryReport an error

A hardware wallet separates signing from a networked computer. The computer can prepare and broadcast a transaction while the device retains the signing keys. Offline signing reduces exposure of those keys to the connected machine; the user still needs to verify what is being signed.1

BIP-39, assigned on 10 September 2013, specifies a mnemonic representation of computer-generated randomness. Its word sequences, commonly called seed or recovery phrases, produce a seed for a deterministic wallet. An optional passphrase changes the resulting seed: a different passphrase produces a different wallet rather than a password error. The specification does not describe a way to recover forgotten secrets from an address.5

Applications and permissionsReport an error

Wallets can display balances, send transactions, and connect accounts to applications. The interface may manage several accounts or networks, but the account's assets remain part of the relevant blockchain's state.2

On Ethereum, an ERC-20 approval gives another address a token-spending allowance. This is distinct from transferring tokens immediately. An application can subsequently use the allowance through transferFrom; understanding that permission is part of understanding the transaction a wallet presents.6

TimelineReport an error

Date Event
2013-09-10 BIP-39 assigned5
2015-11-19 ERC-20 proposed, including token allowances6

See alsoReport an error

ReferencesReport an error


  1. ^ a b Bitcoin developer documentation. Wallets. https://developer.bitcoin.org/devguide/wallets.html 

  2. ^ a b c ethereum.org. Ethereum wallets. https://ethereum.org/en/wallets/ 

  3. ^ ethereum.org. Ethereum accounts. https://ethereum.org/en/developers/docs/accounts/ 

  4. ^ MetaMask. What is a self-custodial wallet? https://support.metamask.io/start/metamask-is-a-self-custodial-wallet 

  5. ^ a b c Bitcoin Improvement Proposals. BIP-39: Mnemonic code for generating deterministic keys. https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki 

  6. ^ a b Vogelsteller, F. and Buterin, V. (2015). ERC-20: Token Standard. https://eips.ethereum.org/EIPS/eip-20