How to generate an Ethereum address— Technical address generation explanation and online course Tuna Tore Follow Jan 2 · 4 min read

Ethereum

Ethereum Addresses are based on the Hexadecimal format (also base16 or hex). Hexadecimal numbers from “0” to “9” represent values from zero to nine, and “A”–”F” (or lower case “a”–”f”) represent values from ten to fifteen. Ethereum addresses are not case sensitive and can be used as lowercase or uppercase.

More information about Hexadecimal format:

https://en.wikipedia.org/wiki/Hexadecimal

Some Hexadecimal samples:

Therefore, Ethereum Addresses can contain the following characters 0–9 and [a-fA-F] — except the prefix which is 0x.

Sample Ethereum Address (42 Hexadecimal characters):

ETH Address: 0xDC25EF3F5B8A186998338A2ADA83795FBA2D695E

How Ethereum Address is created:

Private Key -> Public Key -> Ethereum Address

The first step is to create a random private key using SHA256, for example, using an open-source Ethereum library such as EthereumJ.

https://github.com/ethereum/ethereumj. Private keys are generated as random 256 bits, which is 64 (hex) characters or 32 bytes.

After this, Ethereum public keys (128 characters / 64 bytes) are created using an algorithm called Elliptic Curve Digital Signature Algorithm (ECDSA). Ethereum uses secp256k1 to generate public keys. Public key is a point in this Elliptic curve algorithm.

Please check this book to learn more about Public keys:

https://github.com/ethereumbook/ethereumbook/blob/develop/04keys-addresses.asciidoc#public-keys

In order to create Ethereum Addresses, keccak256 algorithm is applied to the x and y points on public keys.

https://eth-hash.readthedocs.io/en/latest/

More information about Ethereum Addresses:

https://github.com/ethereumbook/ethereumbook/blob/develop/04keys-addresses.asciidoc#ethereum-addresses

Graphical Ethereum Address Generator:

https://www.royalfork.org/2017/12/10/eth-graphical-address/