re: ethereum wallets

What is the difference between an Address, an Account and a Wallet?

An Address is an identifier to an account

An Account is an entity in the blockchain

A Wallet is any software that manages Accounts

...
So.... what is a Private key or a Public key?

A Private key is a secret used to authenticate data for an Account

A Public key is a public identifier of the Private key

...
What about my Seed phrase (aka mnemonic)? Is that my Private key?

Seed phrases are used to generate Hierarchal Deterministic Wallets (HD Wallets) which can generate many Private keys that will authenticate many Accounts

....
But isn't my Private key my Wallet? Or is it an Account?

Neither. Your Wallet manages the Private key used to authenticate your Account

Isn't my Address the same as my Public key?

Addresses represent Accounts. Public keys represent Private keys

...
On Ethereum, externally owned Accounts (aka EOA accounts) are owned and authenticated by a single Private key and the Address is represented by the hash of its Public key

And smart contract Accounts (aka smart Wallets) are owned and authenticated by one or many private keys

...
My smart Wallet doesn't have a Seed phrase? Where is the Private Key?

Smart Wallets manage a smart contract Account owned by many private keys... therefore they use recovery mechanisms to authorize new keys to own the same smart contract Account

...
How do I connect my Wallet to a Dapp?

Dapps use Providers to connect to Wallets. Different Wallets manage Accounts differently and Providers use a standard JSON-RPC interface to interact with different Wallets

...
What types of Wallets exist currently?

These can be divided into 4 categories:
- Browser extension wallets (Metamask, etc)
- Mobile wallets (Argent, Trust, Rainbow, etc)
- Browser iframe wallets (Fortmatic, Portis, Torus, etc)
- Hardware wallets (Ledger, Trezor, etc)

...
What types of Providers exist currently?

- Injected Provider (used by Browser extension wallets)
- @WalletConnect Provider (used by Mobile wallets)
- Custom proprietary providers (used by Browser iframe and Hardware wallets)

...
What data is authenticated with Private keys?

Primarily Private keys are used to sign Transactions and occasionally they are also used sign Messages

In a near future, they will also be used to encrypt and decrypt data

...
What is the difference between a Transaction and a Message?

A Transaction has a specific schema that is accepted by Nodes to be broadcasted in the network to be mined on-chain

A Message has a general-purpose schema that is usually used to verify or authenticate off-chain

...
How do Dapps verify that data is authenticated with the correct Private key?

Whenever a Private key signs data it generates a signature... using elliptic curve cryptography it's possible to recover the Public key from a signature

...
There you go... an impromptu intro into Ethereum wallets, Providers, Accounts and Dapps

The foundation to building a more interoperable and accessible future for Ethereum.

@WalletConnect and @web3modal are two of many crucial projects to aid this for both users and developers
You can follow @pedrouid.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.