Seeds, accounts and addresses
25 words, 16 words, 13 words — and why your wallet has so many different addresses
The classic seed is 25 words (it is the spend key). The new one is Polyseed, 16 words with the creation date. There's also the legacy 13-word MyMonero seed. One seed yields an endless tree of accounts and subaddresses — which is why a wallet shows so many addresses, all of them yours.
Seed formats
| Format | Words | What it encodes | Where you see it |
|---|---|---|---|
| Classic (Electrum-style) | 25 | 256 bits of spend key + 1 checksum word | Monero GUI/CLI, almost every wallet |
| Polyseed | 16 | 150 bits of entropy + creation date + flags + checksum | Feather, Cake, ANONERO, Monerujo, etc. |
| MyMonero (legacy) | 13 | 128 bits of entropy from which keys are derived in a special way | MyMonero (shut down in 2026), some old wallets |
| BIP39 / hardware | 12/24 | The device seed; the Monero key is derived from it along its own path | Ledger, Trezor — restorable only on the same kind of device or compatible software |
Classic 25 words
The spend key b (32 bytes) is cut into 8 chunks of 4 bytes; each chunk is encoded with three words from a 1626-word list (1626³ > 2³²). The 25th word is a checksum chosen from the 24 by a hash (CRC32) of their prefixes. Word lists exist in several languages (English, Russian, Spanish, Chinese, Japanese, etc.) — the same 32 bytes written with different words. The view key is derived as Hs(b), so it needn't be stored separately.
Polyseed
Polyseed (by tevador) encodes entropy from which keys are derived via a key-stretching function (PBKDF2). Advantages:
- 16 words from the standard BIP39 list (2048 words) — shorter and handier;
- creation date inside — the wallet knows which block to scan from, no need to remember a "restore height";
- passphrase support — seed + passphrase gives a different wallet (plausible deniability);
- "coin" flags: the phrase can't be confused with another cryptocurrency's seed.
A Polyseed can't be converted to 25 words or vice versa without creating a new wallet — they're different key derivations.
Seed offset (a passphrase for 25 words)
A classic seed can take an "offset" — a passphrase mixed into the key. Without it, the same 25 words open a different (usually empty) wallet. Don't confuse it with the wallet file password, which only protects the file on disk.
Restore height
When restoring a classic wallet you're asked for a "restore height" — the block to start scanning from. Too late, and the wallet won't see old payments. Too early just means a longer sync. If unsure, give a date slightly before the wallet was created (wallets convert dates to heights).
Why so many addresses
From one key pair the wallet derives a two-level tree of subaddresses:
- Account (major index) — like a separate "account" with its own balance: "personal", "business", "donations". The wallet doesn't mix coins from different accounts in one transaction (unless you ask).
- Subaddress (minor index) — an address inside an account. A new subaddress per payer: nobody can link two of your subaddresses.
- The main address (0,0) starts with
4, every subaddress with8.
A wallet has exactly one main address — (0,0), which is just B and A with prefix 18. Any other index, including the "first" address of the second account (1,0), is a subaddress: its keys are derived via m = Hs("SubAddr\0" ‖ a ‖ 1 ‖ 0), and it's encoded with prefix 42, hence 8…. An account is just a way to group subaddresses; it has no "main" address of its own.
Address types
| Type | Starts with (mainnet) | Length | When to use |
|---|---|---|---|
| Main | 4 | 95 | Fine, but better to hand out subaddresses |
| Subaddress | 8 | 95 | The recommended way to receive |
| Integrated | 4 | 106 | Deprecated: main address + payment ID. Some exchanges still use it |
| Stagenet / testnet | 5 7 / 9 A B | 95/106 | For testing; the coins are worthless |
Each type's structure is broken down on the Address page. Decode any address with the decoder.
Even if a site promises keys are generated "only in your browser" and never sent anywhere (like the tools on this site), a browser is not a safe place for secrets: extensions with page access, malware, the clipboard and screen recording can read them. Create a seed for real money only in a trusted wallet, preferably on an offline machine or a hardware device.
What to store and how
- Seed (+ offset/Polyseed passphrase if any) — on paper or metal, in two places. Never in the cloud, a messenger or a photo.
- Restore height / date — next to the seed (not needed for Polyseed).
- Wallet file — a convenience, not a backup. Without the seed, losing it means nothing; with a weak password, its theft means stolen money.