Now that the source is available I thought I'd bring up the subject of the seed difference between the Trezor and Simplewallet. The Trezor uses 24 words, while Simplewallet uses 24 plus an extra word as a checksum. How compatible are these two seeds? And what needs to be done to convert a simplewallet seed to a Trezor so that people don't need to "sweep" funds to a brand new seed, as well as doing the reverse?
2 Answers
In the experimental binaries, which can be found here, NoodleDoodle included a tool called trezorctl
. With this tool you can convert your Trezor mnemonic seed to a mnemonic seed compatible with simplewallet. Thus, using this tool allows you to, after conversion, restore your wallet using simplewallet. The tool works as follows. Note that <word_list>
is your 24 word Trezor mnemonic seed. On Linux and Mac OS:
./trezorctl recover_mnemonic <index> <passphrase> <language> <word_list>
On Windows make sure to launch it from the command line. Go to the folder monero-cli-wallet is located and make sure your cursor isn't located on any of the files. Subsequently do SHIFT + right click and it will give you an option to "Open command window here". Lastly, type the following command:
trezorctl.exe recover_mnemonic <index> <passphrase> <language> <word_list>
The default language is English for seeds. Note that simplewallet also supports Spanish, German, Italian, Japanese, Russian, and Portugese. Lastly, the trezorctrl output looks like this:
USAGE: trezorctl recover_mnemonic index passphrase language word_list
Supported languages:
English
Spanish
German
Italian
Portuguese
Russian
Japanese
-
-
So it looks like the production trezorctl and the forked trezorctl commands are very different. Thus, recovery_device is solely meant for BIP 39 recovery words and recover_mnemonic is solely meant for Electrum recovery words. What about taking this to the next level for achieving interoperability between BIP 32/39/44 & Electrum words? [see]( monero.stackexchange.com/questions/1523/…)– skahtSep 22, 2016 at 12:10
-
The corresponding simplewallet takes a corresponding index:addr_version, will/could/should addr_version impact the behavior of the command above?– skahtOct 2, 2016 at 3:31
I've never owned Trezor so my answer might be irrelevant, but I've studied the code to learn how the Electrum seed phrase is treated in the simplewallet so that I can create my own specific choice of seed phrase.
From lines 216-221 of electrum-words.cpp, with seed_length
being set constant to 24, I guess the number of words in the phrase can be either 12, 24, or 25. Line 224 suggests that the 25th word if existent would be treated as a checksum.
So, if Trezor gives you 24 words, I guess you can just put those 24 words (i.e. with no checksum) into simplewallet to restore your wallet. Hope this works.
-
1The English Electrum Seed Word List and the English BIP 39 Seed Word List are of different lengths and the words they contain are very different.– skahtSep 22, 2016 at 12:00
-
It's been almost 4 years since this was answered. Has anyone actually gone through the BIP39 seedphrase => Monero "Electrum" seedphrase conversion? Jun 17, 2020 at 16:00