Bitcoin Forum
May 06, 2024, 11:02:40 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: make_seed command in console  (Read 176 times)
Dabs (OP)
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
January 21, 2021, 05:26:51 PM
 #1

Is there any documentation for the make_seed command? Does it make a seed with version number included, is it segwit by default for the latest Electrum version 4?

Code:
>>> make_seed(1)
"black about"
>>> make_seed(1)
"black about"
>>> make_seed(2)
"black about"
>>> make_seed(32)
"fuel apology tank"
>>> make_seed(32)
"canal family jazz"
>>> make_seed(16)
"antenna surprise"
>>> make_seed(16)
"uncle devote"
>>> make_seed(16)
"curve track"
>>> make_seed(64)
"village upset grain candy gather music"
>>> make_seed(64)
"load mule lyrics define head weekend"
>>> make_seed(257)
"february extend grain dream ice match flat empty hazard ramp plunge afraid conduct boring airport clown issue board crouch entire element phrase argue view"

So if I just use make_seed(256) and it spits out 24 words, I can use that as my seed phrase for Electrum to set up or recover from it seems?

I've tested it, and it seems to work, just wanted confirmation from anyone else who has tried it.

The 2 and 3 word results are interesting, although should not use those for an actual wallet.

1714993360
Hero Member
*
Offline Offline

Posts: 1714993360

View Profile Personal Message (Offline)

Ignore
1714993360
Reply with quote  #2

1714993360
Report to moderator
1714993360
Hero Member
*
Offline Offline

Posts: 1714993360

View Profile Personal Message (Offline)

Ignore
1714993360
Reply with quote  #2

1714993360
Report to moderator
1714993360
Hero Member
*
Offline Offline

Posts: 1714993360

View Profile Personal Message (Offline)

Ignore
1714993360
Reply with quote  #2

1714993360
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Dabs (OP)
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
January 21, 2021, 06:37:49 PM
 #2

The largest seed I could have Electrum create with the command using 1034 as the number.

Quote
>>> make_seed(1034)
"south robot know bundle flush never radar hedgehog shaft mountain poet hungry uphold inherit predict claw van view inspire stick talk wide egg blouse door eyebrow battle ostrich logic glide wink gate later flight budget trumpet victory ripple option about because rose calm fun oak rich fox vintage trophy option tip pluck jealous defy other jeans choose first know train horse repair absent close slight basket gym prosper explain obvious speak distance solid about laundry step also update door viable oil noble best hip there will soon gorilla economy correct problem negative fury knee"

Any higher and it doesn't like it:

Code:
>>> make_seed(1035)
Traceback (most recent call last):
  File "electrum\commands.py", line 181, in _run
  File "concurrent\futures\_base.py", line 435, in result
  File "concurrent\futures\_base.py", line 384, in __get_result
  File "electrum\commands.py", line 144, in func_wrapper
  File "electrum\commands.py", line 319, in make_seed
  File "electrum\mnemonic.py", line 200, in make_seed
OverflowError: (34, 'Result too large')

nc50lc
Legendary
*
Offline Offline

Activity: 2408
Merit: 5588


Self-proclaimed Genius


View Profile
January 22, 2021, 04:08:38 AM
 #3

Based from the code [commands.py], there are only two optional arguments aside from from the language which are the --nbits and --seed_type.

By following what's written in the link, these examples should work:
Code:
make_seed(320,"","standard")
Code:
make_seed(320,"","2fa")
Without the "" at the middle, it'll take the "seed_type" as the language.

Walang tulugan?  :D

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
Abdussamad
Legendary
*
Offline Offline

Activity: 3612
Merit: 1564



View Profile
January 22, 2021, 07:52:10 AM
 #4

Is there any documentation for the make_seed command? Does it make a seed with version number included, is it segwit by default for the latest Electrum version 4?

you can pass the following args:

Code:
  async def make_seed(self, nbits=None, language=None, seed_type=None):

so you can do

Code:
make_seed(nbits=256, language="english", seed_type="standard")

the above will create a 256bit seed in english with p2pkh wallet type. segwit is indeed the default type in 4.0.x

Quote
So if I just use make_seed(256) and it spits out 24 words, I can use that as my seed phrase for Electrum to set up or recover from it seems?

yes. you can also use your own larger wordlist to get smaller mnemonics. you just have to replace the english.txt file with your own one:

https://bitcoinelectrum.com/english-alpha-numeric.txt

the above file will give you a 19 word seed instead of a 24 word one. for example:

"gratify thumping 785 stoning rose 1323 1244 3189 kindred 6932 837 hyperlink expletive 2845 willing override 3967 1878 national"
Dabs (OP)
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
January 22, 2021, 01:55:51 PM
 #5

Thanks for the explanations guys. I think I will stick to defaults or standard words. Native Segwit is fine. I'm going to try and experiment with some multi-sig now.

Step 1: nuke machine, air gap.
Step 2: sideload verified electrum.
Step 3: make_seed(256)
Step 4: do it on 14 other devices.

Abdussamad
Legendary
*
Offline Offline

Activity: 3612
Merit: 1564



View Profile
January 23, 2021, 12:31:25 PM
 #6

wow 15 cosigners. make sure you backup the xpubs as well (wallet > information). otherwise you won't be able to sign transactions even if you have the required subset of cosigners.

may i ask what the usecase is for such a large multisig setup?
Dabs (OP)
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
January 23, 2021, 06:49:08 PM
 #7

wow 15 cosigners. make sure you backup the xpubs as well (wallet > information). otherwise you won't be able to sign transactions even if you have the required subset of cosigners.

may i ask what the usecase is for such a large multisig setup?

I'm not sure. This is an experiment. I've only managed to make sense of 2-of-3 and 3-of-5.. Bitfinex uses 3-of-6 for their cold storage of about 140k BTC.

Only real reason I can think of is to test how much hardware can handle it, someone has tested multisig on hardware wallets and they choke on 100 inputs for more than 5 co-signers or something. Or because you can.

But true, reminder for everyone else, need all xpubs and not just the minimum number of signatures. Whoever makes the watch-only wallet should duplicate all of those xpubs for everyone else (or have multiple backups).

pooya87
Legendary
*
Offline Offline

Activity: 3444
Merit: 10550



View Profile
January 24, 2021, 05:16:28 AM
 #8

You'll could probably hit some standard rule limitations due to large number of sigops. For example each Xof15 multisig input using P2SH is counted as 60 sigops* for legacy multisig and 15 sigops for SegWit multisig (aka the P2WSH or the wrapped one with P2SH-P2WSH), there is also a couple in outputs which I ignore for simplicity.
100 inputs with 1 or 2 outputs seem to be fine since the sigopcount is 6000 or 1500 sigops for legacy and SegWit respectively and the limit for standard seem to be at 1/5 of max block SigOpCount or 16000.

If it is bare multisig they are counted as 80 sigop each regardless of how many pubkeys they have!

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
January 24, 2021, 08:07:00 PM
Last edit: November 15, 2023, 12:16:32 AM by HCP
 #9

But true, reminder for everyone else, need all xpubs and not just the minimum number of signatures. Whoever makes the watch-only wallet should duplicate all of those xpubs for everyone else (or have multiple backups).
Everyone will need everyone else's Master Public Key ("xpub") anyway... as everyone participating as a co-signer will need to have their own "copy" of the MultiSig wallet to be able to sign transactions... you can't import partially signed transactions from the multisig and sign it from your "standard" wallet, even if you used the master public key from that "standard" wallet to create the multisig.

You'll get "Transaction unrelated to your wallet":



So, effectively everyone participating should have:
- Their own seed/Master Private Key and xpub
- xpub's from all other parties involved

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!