Can I create a wallet and restore it on something like a Ledger S using any 24 words that I choose from the list of accepted words?
Is there any disadvantage to creating a wallet this way instead of having say Ledger generate 24 words for me?
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up.
Sign up to join this communityCan I create a wallet and restore it on something like a Ledger S using any 24 words that I choose from the list of accepted words?
Is there any disadvantage to creating a wallet this way instead of having say Ledger generate 24 words for me?
The short answer is NO because of a checksum. You are playing with fire if you are arbitrarily using the list of words from https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md#wordlists.
However, you can synthesize a list of from a from triplets of 3, 6, 9, 12, 15, 18, 21, and 24 words using 32, 64, 96, 128, 160, 192, 224, 256 binary seeds. See the three working examples below that use Bitcoin-Explorer (bx) command line interface.
24 Word Example:
% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | bx mnemonic-new
swear favorite title elegant eye trim situate velvet own atom change same net winner seven drum thunder subway convince arrive bid notice during vacant
18 Word Example:
% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | cut -c 1-48 | bx mnemonic-new
swear favorite title elegant eye trim situate velvet own atom change same net winner seven drum thunder surround
12 Word Example:
% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | cut -c 1-32 | bx mnemonic-new
swear favorite title elegant eye trim situate velvet own atom change sail
From the working examples above the checksum causes the last word of the triplet set of words to vary.
If you choose the words yourself, you're more likely to be biased towards some word selections based on position in the list, words you like and dislike, etc. Ledger is designed to pick the words as securely as possible. Also, some words are used as checksum I believe, so if you just picked them randomly the checksum would be invalid and you'd probably get a warning. But yes, it would still probably work.
You can generate your own master seed and use the resulting mnemonic in a restore function on any BIP39 compatible wallet. On the BIP39 generator, you can opt to enter your own entropy number (in hexadecimal, decimal, binary, etc.).
This approach is probably more reliable than directly choosing the words yourself.
"Is there any disadvantage to creating a wallet this way instead of having say Ledger generate 24 words for me?"
If you use a strong enough password in addition to the seed words, then no. The password changes the master seed, so even if the seed words are released publicly, nobody can access your funds or generate your private keys unless they know your password.