An Electrum seed is not a BIP39 phrase, even though new ones use words from the same 2048-word English list. Since version 2.0, Electrum checks a phrase with a hash-based version number instead of the BIP39 checksum and derives keys with a different salt and its own paths. Since 4.1.3, it also discards new seeds that happen to pass the BIP39 checksum. Wallets that check that checksum reject the phrase, and an older Electrum seed that slips through opens an empty wallet. This guide covers the format, a worked example, how to recognize each type, where it restores and how to move funds. For the standard itself, see what BIP39 is.
Electrum documents its format as the Seed Version System. The phrase is normalized (lowercased, with accents and extra spaces removed) and hashed with HMAC-SHA512, keyed with the string Seed version. The hex result must start with a registered prefix, which names the wallet type and doubles as the integrity check. Keys then come from PBKDF2-HMAC-SHA512 with 2048 rounds and the salt electrum plus the optional seed extension, as Electrum's mnemonic.py shows.
BIP39 appends a checksum taken from the SHA-256 hash of the entropy instead, 4 bits for 12 words (the BIP39 checksum checker shows it with test phrases), and uses the salt mnemonic plus the passphrase. Electrum's documentation objects that this checksum ties a phrase to a fixed word list and that a BIP39 phrase records no version, so future software has to guess how its keys were derived. Electrum's hash works on the text itself, so it needs no word list. BIP39's own text now lists the missing version among its shortcomings and says descriptor wallets largely mitigate it.
| Electrum seed (2.0 and later) | BIP39 phrase | |
|---|---|---|
| Length | 12 words since Electrum 2.7; usually 13 in 2.0 to 2.6 (2FA: 24 or 25) | 12, 15, 18, 21 or 24 words |
| Integrity check | 8- or 12-bit hash prefix, which also names the wallet type | Checksum, 4 bits for 12 words |
| PBKDF2 salt | electrum + seed extension |
mnemonic + passphrase |
| Address paths | m/0/i (standard), m/0'/0/i (segwit) |
BIP44-style, such as m/84'/0'/0'/0/i |
With a 4-bit checksum, about 1 in 16 random 12-word phrases pass BIP39's check, and Electrum's developers gave the same odds for their own seeds in pull request #6001. Since version 4.1.3 (June 2021), Electrum's seed generator skips every candidate with a valid BIP39 checksum, according to its release notes, so every new Electrum seed fails that check. Twelve-word seeds from Electrum 2.7 to 4.1.2 pass it about 1 time in 16, and a BIP39 app then opens an empty wallet without any error. The 13-word seeds of Electrum 2.0 to 2.6 never pass, because BIP39 has no 13-word length.
Electrum's version.py defines four prefixes. The first hex digit sets the prefix length: 0 means two digits, 1 means three.
| Prefix | Seed type | Wallet | Addresses start with | Since |
|---|---|---|---|---|
01 |
Standard | P2PKH (P2SH in multisig) | 1 (3 in multisig) | Electrum 2.0 |
100 |
Segwit | Native SegWit P2WPKH (P2WSH in multisig) | bc1q | 3.0; default for new wallets since 3.3.0 |
101 |
2FA | TrustedCoin 2-of-3 multisig, P2SH | 3 | 2.0 |
102 |
2FA segwit | TrustedCoin 2-of-3 multisig, P2WSH | bc1q, 62 characters | 3.3.0 |
| none | Old | Electrum 1.x wallet | 1 | Before 2.0 |
Electrum 2.7 changed how 2FA keys are derived but kept the prefix, so Electrum tells older and newer 2FA seeds apart by length: 12 words since 2.7, more before it. Since 4.1.0 (March 2021), the wizard no longer asks for a seed type and creates segwit wallets.
Electrum 1.x seeds encode 128 bits in 12 words from Electrum's own list of 1,626 words, taken from a frequency list of words in contemporary poetry, with no checksum or version. Electrum recognizes an old seed when all 12 or 24 words are on that list. By our count, 861 of them are also BIP39 words, but words such as powerful, nobody and look are not in the BIP39 word list and give an old seed away. Old seeds take no seed extension, and their addresses start with 1.
Electrum's test suite, test_wallet_vertical.py, restores wallets from published example seeds and checks their addresses. Here is its segwit seed run through the formula. These phrases are public test data: never send funds to them.
phrase bitter grass shiver impose acquire brush forget axis eager alone wine silver
HMAC-SHA512 key "Seed version" 100400bacf13fe2e… -> prefix 100: segwit
BIP39 checksum invalid
PBKDF2 salt "electrum", 2048 rounds 8ff3b1fa35d0bace…
m/0' account key zpub6nsHdRuY92FsMKdbn9BfjBCG6X8pyhCibNP6uDvpnw2cyrVhecvHRMa3Ne8kdJZxjxgwnpbHLkcR4bfnhHy6auHPJyDTQ3kianeuVLdkCYQ
m/0'/0/0 first receiving address bc1q3g5tmkmlvxryhh843v4dz026avatc0zzr6h3af
m/0'/1/0 first change address bc1qdy94n2q5qcp0kg7v9yzwe6wvfkhnvyzje7nx2p
The zpub and both addresses match Electrum's test; we derived them again with the @noble/hashes, @scure/bip32 and @scure/btc-signer libraries. The version check in Node.js, for test phrases only:
const { createHmac } = require('node:crypto');
const phrase = 'bitter grass shiver impose acquire brush forget axis eager alone wine silver';
console.log(createHmac('sha512', 'Seed version').update(phrase).digest('hex').slice(0, 3)); // 100
Other test phrases from the same file:
| Public test phrase | Hash starts with | Electrum reads it as |
|---|---|---|
cycle rocket west magnet parrot shuffle foot correct salt library feed song |
01d374d9… |
Standard; first address 1NNkttn1YvVGdqBW4PR6zvc3Zx3H5owKRf |
kiss live scene rude gate step hip quarter bunker oxygen motor glove |
101a8791… |
2FA |
universe topic remind silver february ranch shine worth innocent cattle enhance wise |
1027a92a… |
2FA segwit |
powerful random nobody notice nothing important anyway look away hidden message over |
55dd1334… |
Old, by its word list; first address 1FJEEB8ihPMbzs2SkLmr37dHyRFzakqUmo |
abandon abandon … about |
9b99f787… |
Not an Electrum seed; the file uses it as a BIP39 test phrase |
Under BIP39 rules, the segwit test seed gives an unrelated wallet. If you choose BIP39 seed in Electrum's options and type it, Electrum shows BIP39 checksum failed but lets you continue, and on the default path m/84'/0'/0' the first address is bc1qdlgh4gp7rsty5vt49alv9can6jalz37z0sy7t3.
nobody, points to an old Electrum 1.x seed.Never paste a real phrase into a website for these checks, including this site's tools, which are for public test phrases only.
Checked against each project's documentation or code in October 2026:
| Wallet | Electrum seeds | BIP39 | Notes |
|---|---|---|---|
| Electrum 4.8.2, desktop | All types | Yes, via Options | Also SLIP-39 shares |
| Electrum, Android | Yes | Yes | Seed Type: Electrum or BIP39 |
| BlueWallet | Standard and segwit | Yes | Import only, detected automatically |
| Cake Wallet | Segwit only | Yes, the default | Also creates them, with 24 words, under Advanced Settings; path m/0' |
| SeedSigner | Segwit only | Yes | Off by default: Settings → Advanced |
| Sparrow | No | Yes | Segwit and 2FA seeds: Unsupported Electrum seed; standard ones: Invalid checksum |
BlueWallet asks for the seed extension if you turn on Import with a passphrase in the ⋯ menu of its import screen. Cake Wallet's restore code accepts an Electrum seed only if it has the segwit prefix. SeedSigner keeps Electrum seeds on Electrum's own paths and disables SeedQR backups and BIP-85 for them. Sparrow's tooltip suggests importing the Electrum wallet file instead.
Steps for Electrum 4.8.2, the current version, on the desktop:
Electrum skips the derivation path screen for its own seeds, because the prefix says which paths to use. On Android, choose Electrum under Seed Type. For installation and other features, see our Electrum wallet overview.
The same wizard imports BIP39 phrases from other wallets: choose Standard wallet and I already have a seed, click Options, select BIP39 seed and tick the extension box if the wallet had a passphrase. Unlike its own seeds, a BIP39 phrase then needs a script type and derivation path: Detect Existing Accounts scans for used accounts, or you pick legacy (p2pkh) at m/44'/0'/0', p2sh-segwit (p2wpkh-p2sh) at m/49'/0'/0' or native segwit (p2wpkh) at m/84'/0'/0', the default. The step-by-step version for Electrum and other wallets is in how to restore a wallet from a seed phrase, and the paths are explained in derivation paths. What changes compared with an Electrum seed:
Both are optional extra words that open a different wallet when they change, and Electrum uses one checkbox for both, but they are treated differently:
| Electrum seed extension | BIP39 passphrase | |
|---|---|---|
| Salt | electrum + extension |
mnemonic + passphrase |
| Normalization | Lowercased; accents and repeated spaces removed | Unicode NFKD only |
Satoshi and satoshi |
Same wallet | Different wallets |
| Available for | Electrum seeds except old ones and pre-2.7 2FA seeds | Every BIP39 phrase |
A forgotten capital letter therefore does not lock you out of an Electrum-seed wallet, but it does in any BIP39 wallet, Electrum's BIP39 mode included. Neither is the wallet password, which only encrypts the file on your computer.
There is no conversion. Both formats feed the words themselves into PBKDF2 with different salts, then follow different paths: the same 12 words lead to bc1q3g5t… in Electrum and to bc1qdlgh… under BIP39 rules. Working backwards is not possible either, since the BIP39 text itself notes that its conversion is one-way and an existing BIP32 seed cannot be expressed as a BIP39 sentence. Moving means sending the coins:
To open the same wallet in Sparrow instead, import the Electrum wallet file with File → Import Wallet. Sparrow's Electrum importer reads wallet files made from standard and segwit seeds but rejects 2FA wallets, and the backup is still the Electrum seed.
No. With different salts and paths, no BIP39 phrase opens the same wallet. Create a new BIP39 wallet and send the funds to it.
It checks the BIP39 checksum, which every Electrum seed made since version 4.1.3 fails on purpose and most older ones fail by chance; a 13-word seed also has a length BIP39 does not allow. Restore the phrase in Electrum or another wallet from the table above. If Electrum rejects it too, look for a typo or swapped words with our guide on how to fix seed phrase errors.
Not in practice. Electrum's documentation counts 132 bits of entropy for a 12-word seed, against 128 bits plus a 4-bit checksum for 12 BIP39 words, but it also notes that the version prefix weakens key stretching: an attacker can discard most wrong guesses after one quick hash, without running PBKDF2. Either format is far beyond brute force; the real difference is compatibility, since fewer wallets restore Electrum seeds.