Since the IOTA network is permission-less, anybody is able to use it and interact with it. No central authority is
required at any stage. So anybody is able to generate their own
seed and then deterministically generate the
respective private keys/addresses.
IOTA uses the
Ed25519 signature scheme and addresses are usually represented by Bech32 (checksummed base32) format
string of 64 characters.
A root of the
Ed25519 signature scheme is basically a
32-byte (256-bit) uniformly randomly generated seed on which
all private keys and corresponding addresses are generated. In the examples below, the seed is represented by a string
of 64 characters using the
[0-9a-f] alphabet (32 bytes encoded in hexadecimal).
In modern wallet implementations such as the wallet.rs library and the
firefly wallet, the seed is usually generated from a
seed phrase), using BIP39 standard, to be better memorized/stored by humans.
It is based on a randomly generated list of english words and later used to generate the seed. The seed is a root for
all generated private keys and addresses.