Last modified: Fri Sep 20 2019 11:21:30 GMT+0000 (Coordinated Universal Time)

How to generate Ethereum wallet?

In this tutorial, you will learn what an Ethereum wallet is, why do you need it and how to get one.

Step by step

Ethereum is a blockchain application platform. Every participant is identified by a public unique address, such as 0xd037ab9025d43f60a31b32a82e10936f07484246. This address is sometimes called Ethereum wallet. A single person can own many addresses at once. And behind some addresses there aren't even people, but computer code called smart contracts.

How do I own a wallet?

Every address is derived from a thing called private key and anyone who has access to this private key is in control of the wallet.

Never share your private key! If you do, you are risking losing your funds. It is like sharing a password. You should never do that.

When you are in control of a wallet, you can perform (technically correct term is sign) transactions with it. Transactions tell Ethereum to do something, the usual operation is to transfer Ether (ETH) or another ERC-20 token.

Every transaction also costs gas which is paid in ETH and the amount spent depends on how complex your transaction is. For example registering a hotel in Widing Tree platform will be more expensive than transferring ETH from one wallet to another.

Multi signature wallets

You may encounter a term multisig which is short for multi-signature wallets. These are smart contracts owned by multiple accounts that can also produce transactions, but only after a certain amount of accounts confirms them. For instance, a smart contract can have three owners and it may require two out of three owners to perform a certain action (e.g. to add, edit or remove data from it).

An excellent implementation of a multi signature wallet is the one by Gnosis.

Why do I need a wallet?

Winding Tree's core entity is deployed to Ethereum blockchain. It is called Winding Tree Entrypoint and it's a list of directories of hotels, airlines and other ecosystem participants.

In order to create and register your property to Winding Tree platform, you need to perform transactions on Ethereum and that is why you need a wallet with some ETH in it. You will also need your wallet to modify the record on Winding Tree.

The important thing to know is, that only the owner of the record can work with it. That means that only the owner of the wallet can work with the record. So don't throw your wallet away, it's your key to working with your data in Winding Tree ecosystem.

How to create a new wallet?

There are many options of how to create a new wallet. Some more secure than others.

Mnemonics

Mnemonic phrases, (often called seed words or recovery phrases) are series of words that are supposedly easy to remember by a human brain. They also contain enough information so it is possible to securely derive private keys from them. There are plenty of mnemonic generators that you can use.

The most important feature of a mnemonic is that you can derive many private-public key pairs, so by remembering a single phrase, you can get access to many accounts.

For use in an automatic environment, such as a server, it is better to use a different representation of a private key, since you typically don't need many of them.

Keystore file

Since Winding Tree tools are usually using wallets in the Web3 Secret Storage format, we will show you how to get that one. This is not necessarily a best format for humans, but works really well within the software.

As we said before, you should never share a private key, so you should never generate a wallet in an online service. Use a trusted software that is running locally and does not expose your secrets.

One of such tools is MyCrypto which also allows you to generate a Keystore file.

A Keystore file is a JSON file that contains a private key protected by a unique passphrase. If you forget your passphrase or lose your Keystore file, you will lose access to your wallet. So be careful.

Upon starting MyCrypto, you can select Create new wallet in the left menu. Then you select Generate wallet and finally a Keystore file. You will put in your passphrase which encrypts the Keystore file and then you can download the file itself. It will look like this:

{
  "version": 3,
  "id": "7fe84016-4686-4622-97c9-dc7b47f5f5c6",
  "address": "d037ab9025d43f60a31b32a82e10936f07484246",
  "crypto": {
    "ciphertext": "ef9dcce915eeb0c4f7aa2bb16b9ae6ce5a4444b4ed8be45d94e6b7fe7f4f9b47",
    "cipherparams": {
      "iv": "31b12ef1d308ea1edacc4ab00de80d55"
    },
    "cipher": "aes-128-ctr",
    "kdf": "scrypt",
    "kdfparams": {
      "dklen": 32,
      "salt": "d06ccd5d9c5d75e1a66a81d2076628f5716a3161ca204d92d04a42c057562541",
      "n": 8192,
      "r": 8,
      "p": 1
    },
    "mac": "2c30bc373c19c5b41385b85ffde14b9ea9f0f609c7812a10fdcb0a565034d9db"
  }
}

In addition to the Keystore file, you can save and even print your private key. That's an equivalent to the Keystore file and password combination. Protect it with the same care.

This JSON file can directly be used when creating an account in Write API. Without ETH associated with this wallet, however, you are not yet able to create transactions in the Ethereum network.

Where to next