diff --git a/command-help-addrgen.md b/command-help-addrgen.md index 39ec92a..4278f35 100644 --- a/command-help-addrgen.md +++ b/command-help-addrgen.md @@ -1,117 +1,119 @@ - MMGEN-ADDRGEN: Generate a range or list of addresses from an MMGen wallet, - mnemonic, seed or brainwallet - USAGE: mmgen-addrgen [opts] [seed source] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -c, --print-checksum Print address list checksum and exit - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -k, --use-internal-keccak-module Force use of the internal keccak module - -K, --keygen-backend n Use backend 'n' for public key generation. Options - for BTC: 1:libsecp256k1 [default] 2:python-ecdsa - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Print addresses to stdout - -t, --type t Choose address type. Options: see ADDRESS TYPES below - (default: 'L' or 'legacy') - -U, --subwallet U Generate addresses for subwallet 'U' (see SUBWALLETS - below) - -v, --verbose Produce more verbose output +```text + MMGEN-ADDRGEN: Generate a range or list of addresses from an MMGen wallet, + mnemonic, seed or brainwallet + USAGE: mmgen-addrgen [opts] [seed source] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -c, --print-checksum Print address list checksum and exit + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -k, --use-internal-keccak-module Force use of the internal keccak module + -K, --keygen-backend n Use backend 'n' for public key generation. Options + for BTC: 1:libsecp256k1 [default] 2:python-ecdsa + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Print addresses to stdout + -t, --type t Choose address type. Options: see ADDRESS TYPES below + (default: 'L' or 'legacy') + -U, --subwallet U Generate addresses for subwallet 'U' (see SUBWALLETS + below) + -v, --verbose Produce more verbose output - NOTES FOR THIS COMMAND + NOTES FOR THIS COMMAND - Address indexes are given as a comma-separated list and/or hyphen-separated - range(s). + Address indexes are given as a comma-separated list and/or hyphen-separated + range(s). - If available, the libsecp256k1 library will be used for address generation. + If available, the libsecp256k1 library will be used for address generation. - ADDRESS TYPES: - 'L','legacy' - Legacy uncompressed address - 'C','compressed' - Compressed P2PKH address - 'S','segwit' - Segwit P2SH-P2WPKH address - 'B','bech32' - Native Segwit (Bech32) address - 'E','ethereum' - Ethereum address - 'Z','zcash_z' - Zcash z-address - 'M','monero' - Monero address + ADDRESS TYPES: + 'L','legacy' - Legacy uncompressed address + 'C','compressed' - Compressed P2PKH address + 'S','segwit' - Segwit P2SH-P2WPKH address + 'B','bech32' - Native Segwit (Bech32) address + 'E','ethereum' - Ethereum address + 'Z','zcash_z' - Zcash z-address + 'M','monero' - Monero address - NOTES FOR ALL GENERATOR COMMANDS + NOTES FOR ALL GENERATOR COMMANDS - SUBWALLETS: + SUBWALLETS: - Subwallets (subseeds) are specified by a "Subseed Index" consisting of: + Subwallets (subseeds) are specified by a "Subseed Index" consisting of: - a) an integer in the range 1-1000000, plus - b) an optional single letter, 'L' or 'S' + a) an integer in the range 1-1000000, plus + b) an optional single letter, 'L' or 'S' - The letter designates the length of the subseed. If omitted, 'L' is assumed. + The letter designates the length of the subseed. If omitted, 'L' is assumed. - Long ('L') subseeds are the same length as their parent wallet's seed - (typically 256 bits), while short ('S') subseeds are always 128-bit. - The long and short subseeds for a given index are derived independently, - so both may be used. + Long ('L') subseeds are the same length as their parent wallet's seed + (typically 256 bits), while short ('S') subseeds are always 128-bit. + The long and short subseeds for a given index are derived independently, + so both may be used. - MMGen has no notion of "depth", and to an outside observer subwallets are - identical to ordinary wallets. This is a feature rather than a bug, as it - denies an attacker any way of knowing whether a given wallet has a parent. + MMGen has no notion of "depth", and to an outside observer subwallets are + identical to ordinary wallets. This is a feature rather than a bug, as it + denies an attacker any way of knowing whether a given wallet has a parent. - Since subwallets are just wallets, they may be used to generate other - subwallets, leading to hierarchies of arbitrary depth. However, this is - inadvisable in practice for two reasons: Firstly, it creates accounting - complexity, requiring the user to independently keep track of a derivation - tree. More importantly, however, it leads to the danger of Seed ID - collisions between subseeds at different levels of the hierarchy, as - MMGen checks and avoids ID collisions only among sibling subseeds. + Since subwallets are just wallets, they may be used to generate other + subwallets, leading to hierarchies of arbitrary depth. However, this is + inadvisable in practice for two reasons: Firstly, it creates accounting + complexity, requiring the user to independently keep track of a derivation + tree. More importantly, however, it leads to the danger of Seed ID + collisions between subseeds at different levels of the hierarchy, as + MMGen checks and avoids ID collisions only among sibling subseeds. - An exception to this caveat would be a multi-user setup where sibling - subwallets are distributed to different users as their default wallets. - Since the subseeds derived from these subwallets are private to each user, - Seed ID collisions among them doesn't present a problem. + An exception to this caveat would be a multi-user setup where sibling + subwallets are distributed to different users as their default wallets. + Since the subseeds derived from these subwallets are private to each user, + Seed ID collisions among them doesn't present a problem. - A safe rule of thumb, therefore, is for *each user* to derive all of his/her - subwallets from a single parent. This leaves each user with a total of two - million subwallets, which should be enough for most practical purposes. + A safe rule of thumb, therefore, is for *each user* to derive all of his/her + subwallets from a single parent. This leaves each user with a total of two + million subwallets, which should be enough for most practical purposes. - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - BRAINWALLET NOTE: + BRAINWALLET NOTE: - To thwart dictionary attacks, it's recommended to use a strong hash preset - with brainwallets. For a brainwallet passphrase to generate the correct - seed, the same seed length and hash preset parameters must always be used. + To thwart dictionary attacks, it's recommended to use a strong hash preset + with brainwallets. For a brainwallet passphrase to generate the correct + seed, the same seed length and hash preset parameters must always be used. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-ADDRGEN(1) + MMGEN v13.2.0 August 2022 MMGEN-ADDRGEN(1) +``` diff --git a/command-help-addrimport.md b/command-help-addrimport.md index 5b17ebe..2a5c9a4 100644 --- a/command-help-addrimport.md +++ b/command-help-addrimport.md @@ -1,33 +1,35 @@ - MMGEN-ADDRIMPORT: Import addresses into an MMGen tracking wallet - USAGE: mmgen-addrimport [opts] [MMGen address file] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -a, --address a Import the single coin address 'a' - -b, --batch Import all addresses in one RPC call - -l, --addrlist Address source is a flat list of non-MMGen coin addresses - -k, --keyaddr-file Address source is a key-address file - -q, --quiet Suppress warnings - -r, --rescan Update address balances by selectively rescanning the - blockchain for unspent outputs that include the imported - address(es). Required if any of the imported addresses - are already in the blockchain and have a balance. - -t, --token-addr A Import addresses for ERC20 token with address 'A' +```text + MMGEN-ADDRIMPORT: Import addresses into an MMGen tracking wallet + USAGE: mmgen-addrimport [opts] [MMGen address file] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -a, --address a Import the single coin address 'a' + -b, --batch Import all addresses in one RPC call + -l, --addrlist Address source is a flat list of non-MMGen coin addresses + -k, --keyaddr-file Address source is a key-address file + -q, --quiet Suppress warnings + -r, --rescan Update address balances by selectively rescanning the + blockchain for unspent outputs that include the imported + address(es). Required if any of the imported addresses + are already in the blockchain and have a balance. + -t, --token-addr A Import addresses for ERC20 token with address 'A' - This command can also be used to update the comment fields or balances of - addresses already in the tracking wallet. + This command can also be used to update the comment fields or balances of + addresses already in the tracking wallet. - Rescanning now uses the ‘scantxoutset’ RPC call and a selective scan of - blocks containing the relevant UTXOs for much faster performance than the - previous implementation. The rescan operation typically takes around two - minutes total, independent of the number of addresses imported. + Rescanning now uses the ‘scantxoutset’ RPC call and a selective scan of + blocks containing the relevant UTXOs for much faster performance than the + previous implementation. The rescan operation typically takes around two + minutes total, independent of the number of addresses imported. - Bear in mind that the UTXO scan will not find historical transactions: to add - them to the tracking wallet, you must perform a full or partial rescan of the - blockchain with the ‘mmgen-tool rescan_blockchain’ utility. A full rescan of - the blockchain may take up to several hours. + Bear in mind that the UTXO scan will not find historical transactions: to add + them to the tracking wallet, you must perform a full or partial rescan of the + blockchain with the ‘mmgen-tool rescan_blockchain’ utility. A full rescan of + the blockchain may take up to several hours. - It’s recommended to use ‘--rpc-backend=aio’ with ‘--rescan’. + It’s recommended to use ‘--rpc-backend=aio’ with ‘--rescan’. - MMGEN v13.2.0 August 2022 MMGEN-ADDRIMPORT(1) + MMGEN v13.2.0 August 2022 MMGEN-ADDRIMPORT(1) +``` diff --git a/command-help-autosign.md b/command-help-autosign.md index 132314d..98559a3 100644 --- a/command-help-autosign.md +++ b/command-help-autosign.md @@ -1,74 +1,76 @@ - MMGEN-AUTOSIGN: Auto-sign MMGen transactions and message files - USAGE: mmgen-autosign [opts] [command] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -c, --coins c Coins to sign for (comma-separated list) - -I, --no-insert-check Don’t check for device insertion - -l, --led Use status LED to signal standby, busy and error - -m, --mountpoint M Specify an alternate mountpoint 'M' (default: '/mnt/tx') - -M, --mnemonic-fmt F During setup, prompt for mnemonic seed phrase of format - 'F' (choices: 'mmgen','bip39'; default: 'mmgen') - -n, --no-summary Don’t print a transaction summary - -s, --stealth-led Stealth LED mode - signal busy and error only, and only - after successful authorization. - -S, --full-summary Print a full summary of each signed transaction after - each autosign run. The default list of non-MMGen outputs - will not be printed. - -q, --quiet Produce quieter output - -v, --verbose Produce more verbose output +```text + MMGEN-AUTOSIGN: Auto-sign MMGen transactions and message files + USAGE: mmgen-autosign [opts] [command] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -c, --coins c Coins to sign for (comma-separated list) + -I, --no-insert-check Don’t check for device insertion + -l, --led Use status LED to signal standby, busy and error + -m, --mountpoint M Specify an alternate mountpoint 'M' (default: '/mnt/tx') + -M, --mnemonic-fmt F During setup, prompt for mnemonic seed phrase of format + 'F' (choices: 'mmgen','bip39'; default: 'mmgen') + -n, --no-summary Don’t print a transaction summary + -s, --stealth-led Stealth LED mode - signal busy and error only, and only + after successful authorization. + -S, --full-summary Print a full summary of each signed transaction after + each autosign run. The default list of non-MMGen outputs + will not be printed. + -q, --quiet Produce quieter output + -v, --verbose Produce more verbose output - COMMANDS + COMMANDS - gen_key - generate the wallet encryption key and copy it to '/mnt/tx' - setup - generate the wallet encryption key and wallet - wait - start in loop mode: wait-mount-sign-unmount-wait + gen_key - generate the wallet encryption key and copy it to '/mnt/tx' + setup - generate the wallet encryption key and wallet + wait - start in loop mode: wait-mount-sign-unmount-wait - USAGE NOTES + USAGE NOTES - If invoked with no command, the program mounts a removable device containing - unsigned MMGen transactions and/or message files, signs them, unmounts the - removable device and exits. + If invoked with no command, the program mounts a removable device containing + unsigned MMGen transactions and/or message files, signs them, unmounts the + removable device and exits. - If invoked with 'wait', the program waits in a loop, mounting the removable - device, performing signing operations and unmounting the device every time it - is inserted. + If invoked with 'wait', the program waits in a loop, mounting the removable + device, performing signing operations and unmounting the device every time it + is inserted. - On supported platforms (currently Orange Pi, Rock Pi and Raspberry Pi boards), - the status LED indicates whether the program is busy or in standby mode, i.e. - ready for device insertion or removal. + On supported platforms (currently Orange Pi, Rock Pi and Raspberry Pi boards), + the status LED indicates whether the program is busy or in standby mode, i.e. + ready for device insertion or removal. - The removable device must have a partition labeled MMGEN_TX with a user- - writable root directory and a directory named '/tx', where unsigned MMGen - transactions are placed. Optionally, the directory '/msg' may also be created - and unsigned message files created by `mmgen-msg` placed in this directory. + The removable device must have a partition labeled MMGEN_TX with a user- + writable root directory and a directory named '/tx', where unsigned MMGen + transactions are placed. Optionally, the directory '/msg' may also be created + and unsigned message files created by `mmgen-msg` placed in this directory. - On the signing machine the mount point '/mnt/tx' must exist and /etc/fstab - must contain the following entry: + On the signing machine the mount point '/mnt/tx' must exist and /etc/fstab + must contain the following entry: - LABEL='MMGEN_TX' /mnt/tx auto noauto,user 0 0 + LABEL='MMGEN_TX' /mnt/tx auto noauto,user 0 0 - Transactions are signed with a wallet on the signing machine (in the directory - '/dev/shm/autosign') encrypted with a 64-character hexadecimal password saved - in the file `autosign.key` in the root of the removable device partition. + Transactions are signed with a wallet on the signing machine (in the directory + '/dev/shm/autosign') encrypted with a 64-character hexadecimal password saved + in the file `autosign.key` in the root of the removable device partition. - The password and wallet can be created in one operation by invoking the - command with 'setup' with the removable device inserted. In this case, the - user will be prompted for a seed mnemonic. + The password and wallet can be created in one operation by invoking the + command with 'setup' with the removable device inserted. In this case, the + user will be prompted for a seed mnemonic. - Alternatively, the password and wallet can be created separately by first - invoking the command with 'gen_key' and then creating and encrypting the - wallet using the -P (--passwd-file) option: + Alternatively, the password and wallet can be created separately by first + invoking the command with 'gen_key' and then creating and encrypting the + wallet using the -P (--passwd-file) option: - $ mmgen-walletconv -r0 -q -iwords -d/dev/shm/autosign -p1 -P/mnt/tx/autosign.key -Llabel + $ mmgen-walletconv -r0 -q -iwords -d/dev/shm/autosign -p1 -P/mnt/tx/autosign.key -Llabel - Note that the hash preset must be '1'. Multiple wallets are permissible. + Note that the hash preset must be '1'. Multiple wallets are permissible. - For good security, it's advisable to re-generate a new wallet and key for - each signing session. + For good security, it's advisable to re-generate a new wallet and key for + each signing session. - This command is currently available only on Linux-based platforms. + This command is currently available only on Linux-based platforms. - MMGEN v13.2.0 August 2022 MMGEN-AUTOSIGN(1) + MMGEN v13.2.0 August 2022 MMGEN-AUTOSIGN(1) +``` diff --git a/command-help-keygen.md b/command-help-keygen.md index 6a4fbf3..08d7f0f 100644 --- a/command-help-keygen.md +++ b/command-help-keygen.md @@ -1,121 +1,123 @@ - MMGEN-KEYGEN: Generate a range or list of secret keys from an MMGen wallet, - mnemonic, seed or brainwallet - USAGE: mmgen-keygen [opts] [seed source] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -A, --no-addresses Print only secret keys, no addresses - -c, --print-checksum Print address list checksum and exit - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -k, --use-internal-keccak-module Force use of the internal keccak module - -K, --keygen-backend n Use backend 'n' for public key generation. Options - for BTC: 1:libsecp256k1 [default] 2:python-ecdsa - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Print keys to stdout - -t, --type t Choose address type. Options: see ADDRESS TYPES below - (default: 'L' or 'legacy') - -U, --subwallet U Generate keys for subwallet 'U' (see SUBWALLETS - below) - -v, --verbose Produce more verbose output - -x, --b16 Print secret keys in hexadecimal too +```text + MMGEN-KEYGEN: Generate a range or list of secret keys from an MMGen wallet, + mnemonic, seed or brainwallet + USAGE: mmgen-keygen [opts] [seed source] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -A, --no-addresses Print only secret keys, no addresses + -c, --print-checksum Print address list checksum and exit + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -k, --use-internal-keccak-module Force use of the internal keccak module + -K, --keygen-backend n Use backend 'n' for public key generation. Options + for BTC: 1:libsecp256k1 [default] 2:python-ecdsa + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Print keys to stdout + -t, --type t Choose address type. Options: see ADDRESS TYPES below + (default: 'L' or 'legacy') + -U, --subwallet U Generate keys for subwallet 'U' (see SUBWALLETS + below) + -v, --verbose Produce more verbose output + -x, --b16 Print secret keys in hexadecimal too - NOTES FOR THIS COMMAND + NOTES FOR THIS COMMAND - Address indexes are given as a comma-separated list and/or hyphen-separated - range(s). + Address indexes are given as a comma-separated list and/or hyphen-separated + range(s). - By default, both addresses and secret keys are generated. + By default, both addresses and secret keys are generated. - If available, the libsecp256k1 library will be used for address generation. + If available, the libsecp256k1 library will be used for address generation. - ADDRESS TYPES: - 'L','legacy' - Legacy uncompressed address - 'C','compressed' - Compressed P2PKH address - 'S','segwit' - Segwit P2SH-P2WPKH address - 'B','bech32' - Native Segwit (Bech32) address - 'E','ethereum' - Ethereum address - 'Z','zcash_z' - Zcash z-address - 'M','monero' - Monero address + ADDRESS TYPES: + 'L','legacy' - Legacy uncompressed address + 'C','compressed' - Compressed P2PKH address + 'S','segwit' - Segwit P2SH-P2WPKH address + 'B','bech32' - Native Segwit (Bech32) address + 'E','ethereum' - Ethereum address + 'Z','zcash_z' - Zcash z-address + 'M','monero' - Monero address - NOTES FOR ALL GENERATOR COMMANDS + NOTES FOR ALL GENERATOR COMMANDS - SUBWALLETS: + SUBWALLETS: - Subwallets (subseeds) are specified by a "Subseed Index" consisting of: + Subwallets (subseeds) are specified by a "Subseed Index" consisting of: - a) an integer in the range 1-1000000, plus - b) an optional single letter, 'L' or 'S' + a) an integer in the range 1-1000000, plus + b) an optional single letter, 'L' or 'S' - The letter designates the length of the subseed. If omitted, 'L' is assumed. + The letter designates the length of the subseed. If omitted, 'L' is assumed. - Long ('L') subseeds are the same length as their parent wallet's seed - (typically 256 bits), while short ('S') subseeds are always 128-bit. - The long and short subseeds for a given index are derived independently, - so both may be used. + Long ('L') subseeds are the same length as their parent wallet's seed + (typically 256 bits), while short ('S') subseeds are always 128-bit. + The long and short subseeds for a given index are derived independently, + so both may be used. - MMGen has no notion of "depth", and to an outside observer subwallets are - identical to ordinary wallets. This is a feature rather than a bug, as it - denies an attacker any way of knowing whether a given wallet has a parent. + MMGen has no notion of "depth", and to an outside observer subwallets are + identical to ordinary wallets. This is a feature rather than a bug, as it + denies an attacker any way of knowing whether a given wallet has a parent. - Since subwallets are just wallets, they may be used to generate other - subwallets, leading to hierarchies of arbitrary depth. However, this is - inadvisable in practice for two reasons: Firstly, it creates accounting - complexity, requiring the user to independently keep track of a derivation - tree. More importantly, however, it leads to the danger of Seed ID - collisions between subseeds at different levels of the hierarchy, as - MMGen checks and avoids ID collisions only among sibling subseeds. + Since subwallets are just wallets, they may be used to generate other + subwallets, leading to hierarchies of arbitrary depth. However, this is + inadvisable in practice for two reasons: Firstly, it creates accounting + complexity, requiring the user to independently keep track of a derivation + tree. More importantly, however, it leads to the danger of Seed ID + collisions between subseeds at different levels of the hierarchy, as + MMGen checks and avoids ID collisions only among sibling subseeds. - An exception to this caveat would be a multi-user setup where sibling - subwallets are distributed to different users as their default wallets. - Since the subseeds derived from these subwallets are private to each user, - Seed ID collisions among them doesn't present a problem. + An exception to this caveat would be a multi-user setup where sibling + subwallets are distributed to different users as their default wallets. + Since the subseeds derived from these subwallets are private to each user, + Seed ID collisions among them doesn't present a problem. - A safe rule of thumb, therefore, is for *each user* to derive all of his/her - subwallets from a single parent. This leaves each user with a total of two - million subwallets, which should be enough for most practical purposes. + A safe rule of thumb, therefore, is for *each user* to derive all of his/her + subwallets from a single parent. This leaves each user with a total of two + million subwallets, which should be enough for most practical purposes. - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - BRAINWALLET NOTE: + BRAINWALLET NOTE: - To thwart dictionary attacks, it's recommended to use a strong hash preset - with brainwallets. For a brainwallet passphrase to generate the correct - seed, the same seed length and hash preset parameters must always be used. + To thwart dictionary attacks, it's recommended to use a strong hash preset + with brainwallets. For a brainwallet passphrase to generate the correct + seed, the same seed length and hash preset parameters must always be used. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-KEYGEN(1) + MMGEN v13.2.0 August 2022 MMGEN-KEYGEN(1) +``` diff --git a/command-help-msg.md b/command-help-msg.md index 9890b08..0f257e4 100644 --- a/command-help-msg.md +++ b/command-help-msg.md @@ -1,106 +1,108 @@ - MMGEN-MSG: Perform message signing operations for MMGen addresses - USAGE: mmgen-msg [opts] create MESSAGE_TEXT ADDRESS_SPEC [...] - mmgen-msg [opts] sign MESSAGE_FILE [WALLET_FILE ...] - mmgen-msg [opts] verify MESSAGE_FILE [MMGen ID] - mmgen-msg [opts] verify [address] - mmgen-msg [opts] export MESSAGE_FILE [MMGen ID] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output file to directory 'd' instead of working dir - -t, --msghash-type T Specify the message hash type. Supported values: - 'eth_sign' (ETH default), 'raw' (non-ETH default) - -q, --quiet Produce quieter output +```text + MMGEN-MSG: Perform message signing operations for MMGen addresses + USAGE: mmgen-msg [opts] create MESSAGE_TEXT ADDRESS_SPEC [...] + mmgen-msg [opts] sign MESSAGE_FILE [WALLET_FILE ...] + mmgen-msg [opts] verify MESSAGE_FILE [MMGen ID] + mmgen-msg [opts] verify [address] + mmgen-msg [opts] export MESSAGE_FILE [MMGen ID] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output file to directory 'd' instead of working dir + -t, --msghash-type T Specify the message hash type. Supported values: + 'eth_sign' (ETH default), 'raw' (non-ETH default) + -q, --quiet Produce quieter output - SUPPORTED OPERATIONS + SUPPORTED OPERATIONS - create - create a raw MMGen message file with specified message text for - signing for addresses specified by ADDRESS_SPEC (see ADDRESS - SPECIFIER below) - sign - perform signing operation on an unsigned MMGen message file - verify - verify and display the contents of a signed MMGen message file - export - dump signed MMGen message file to ‘signatures.json’, including only - data relevant for a third-party verifier + create - create a raw MMGen message file with specified message text for + signing for addresses specified by ADDRESS_SPEC (see ADDRESS + SPECIFIER below) + sign - perform signing operation on an unsigned MMGen message file + verify - verify and display the contents of a signed MMGen message file + export - dump signed MMGen message file to ‘signatures.json’, including only + data relevant for a third-party verifier - ADDRESS SPECIFIER + ADDRESS SPECIFIER - The `create` operation takes one or more ADDRESS_SPEC arguments with the - following format: + The `create` operation takes one or more ADDRESS_SPEC arguments with the + following format: - SEED_ID:ADDR_TYPE:ADDR_IDX_SPEC + SEED_ID:ADDR_TYPE:ADDR_IDX_SPEC - where ADDR_TYPE is an address type letter from the list below, and - ADDR_IDX_SPEC is a comma-separated list of address indexes or hyphen- - separated address index ranges. + where ADDR_TYPE is an address type letter from the list below, and + ADDR_IDX_SPEC is a comma-separated list of address indexes or hyphen- + separated address index ranges. - ADDRESS TYPES + ADDRESS TYPES - 'L','legacy' - Legacy uncompressed address - 'C','compressed' - Compressed P2PKH address - 'S','segwit' - Segwit P2SH-P2WPKH address - 'B','bech32' - Native Segwit (Bech32) address - 'E','ethereum' - Ethereum address - 'Z','zcash_z' - Zcash z-address - 'M','monero' - Monero address + 'L','legacy' - Legacy uncompressed address + 'C','compressed' - Compressed P2PKH address + 'S','segwit' - Segwit P2SH-P2WPKH address + 'B','bech32' - Native Segwit (Bech32) address + 'E','ethereum' - Ethereum address + 'Z','zcash_z' - Zcash z-address + 'M','monero' - Monero address - NOTES + NOTES - Message signing operations are supported for Bitcoin, Ethereum and code forks - thereof. + Message signing operations are supported for Bitcoin, Ethereum and code forks + thereof. - By default, Ethereum messages are prefixed before hashing in conformity with - the standard defined by the Geth ‘eth_sign’ JSON-RPC call. This behavior may - be overridden with the --msghash-type option. + By default, Ethereum messages are prefixed before hashing in conformity with + the standard defined by the Geth ‘eth_sign’ JSON-RPC call. This behavior may + be overridden with the --msghash-type option. - Messages signed for Segwit-P2SH addresses cannot be verified directly using - the Bitcoin Core `verifymessage` RPC call, since such addresses are not hashes - of public keys. As a workaround for this limitation, this utility creates for - each Segwit-P2SH address a non-Segwit address with the same public key to be - used for verification purposes. This non-Segwit verifying address should then - be passed on to the verifying party together with the signature. The verifying - party may then use a tool of their choice (e.g. `mmgen-tool addr2pubhash`) to - assure themselves that the verifying address and Segwit address share the same - public key. + Messages signed for Segwit-P2SH addresses cannot be verified directly using + the Bitcoin Core `verifymessage` RPC call, since such addresses are not hashes + of public keys. As a workaround for this limitation, this utility creates for + each Segwit-P2SH address a non-Segwit address with the same public key to be + used for verification purposes. This non-Segwit verifying address should then + be passed on to the verifying party together with the signature. The verifying + party may then use a tool of their choice (e.g. `mmgen-tool addr2pubhash`) to + assure themselves that the verifying address and Segwit address share the same + public key. - Unfortunately, the aforementioned limitation applies to Segwit-P2PKH (Bech32) - addresses as well, despite the fact that Bech32 addresses are hashes of public - keys (we consider this an implementation shortcoming of `verifymessage`). - Therefore, the above procedure must be followed to verify messages for Bech32 - addresses too. `mmgen-tool addr2pubhash` or `bitcoin-cli validateaddress` - may then be used to demonstrate that the two addresses share the same public - key. + Unfortunately, the aforementioned limitation applies to Segwit-P2PKH (Bech32) + addresses as well, despite the fact that Bech32 addresses are hashes of public + keys (we consider this an implementation shortcoming of `verifymessage`). + Therefore, the above procedure must be followed to verify messages for Bech32 + addresses too. `mmgen-tool addr2pubhash` or `bitcoin-cli validateaddress` + may then be used to demonstrate that the two addresses share the same public + key. - EXAMPLES + EXAMPLES - Create a raw message file for the specified message and specified addresses, - where DEADBEEF is the Seed ID of the user’s default wallet and BEEFCAFE one - of its subwallets: - $ mmgen-msg create '16/3/2022 Earthquake strikes Fukushima coast' DEADBEEF:B:1-3,10,98 BEEFCAFE:S:3,9 + Create a raw message file for the specified message and specified addresses, + where DEADBEEF is the Seed ID of the user’s default wallet and BEEFCAFE one + of its subwallets: + $ mmgen-msg create '16/3/2022 Earthquake strikes Fukushima coast' DEADBEEF:B:1-3,10,98 BEEFCAFE:S:3,9 - Sign the raw message file created by the previous step: - $ mmgen-msg sign + Sign the raw message file created by the previous step: + $ mmgen-msg sign - Sign the raw message file using an explicitly supplied wallet: - $ mmgen-msg sign DEADBEEF.bip39 + Sign the raw message file using an explicitly supplied wallet: + $ mmgen-msg sign DEADBEEF.bip39 - Verify and display all signatures in the signed message file: - $ mmgen-msg verify + Verify and display all signatures in the signed message file: + $ mmgen-msg verify - Verify and display a single signature in the signed message file: - $ mmgen-msg verify DEADBEEF:B:98 + Verify and display a single signature in the signed message file: + $ mmgen-msg verify DEADBEEF:B:98 - Export data relevant for a third-party verifier to ‘signatures.json’: - $ mmgen-msg export + Export data relevant for a third-party verifier to ‘signatures.json’: + $ mmgen-msg export - Same as above, but export only one signature: - $ mmgen-msg export DEADBEEF:B:98 + Same as above, but export only one signature: + $ mmgen-msg export DEADBEEF:B:98 - Verify and display the exported JSON signature data: - $ mmgen-msg verify signatures.json + Verify and display the exported JSON signature data: + $ mmgen-msg verify signatures.json - MMGEN v13.2.0 August 2022 MMGEN-MSG(1) + MMGEN v13.2.0 August 2022 MMGEN-MSG(1) +``` diff --git a/command-help-passchg.md b/command-help-passchg.md index 7c5a4ff..845be70 100644 --- a/command-help-passchg.md +++ b/command-help-passchg.md @@ -1,53 +1,55 @@ - MMGEN-PASSCHG: Change the passphrase, hash preset or label of the default or specified MMGen wallet - USAGE: mmgen-passchg [opts] [infile] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -f, --force-update Force update of wallet even if nothing has changed - -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -k, --keep-passphrase Reuse passphrase of input wallet for output wallet - -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -L, --label l Specify a label 'l' for output wallet - -m, --keep-label Reuse label of input wallet for output wallet - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output +```text + MMGEN-PASSCHG: Change the passphrase, hash preset or label of the default or specified MMGen wallet + USAGE: mmgen-passchg [opts] [infile] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -f, --force-update Force update of wallet even if nothing has changed + -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -k, --keep-passphrase Reuse passphrase of input wallet for output wallet + -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -L, --label l Specify a label 'l' for output wallet + -m, --keep-label Reuse label of input wallet for output wallet + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-PASSCHG(1) + MMGEN v13.2.0 August 2022 MMGEN-PASSCHG(1) +``` diff --git a/command-help-passgen.md b/command-help-passgen.md index 3273637..ecf9569 100644 --- a/command-help-passgen.md +++ b/command-help-passgen.md @@ -1,102 +1,104 @@ - MMGEN-PASSGEN: Generate a range or list of passwords from an MMGen wallet, - mnemonic, seed or brainwallet for the given ID string - USAGE: mmgen-passgen [opts] [seed source] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry - -f, --passwd-fmt f Generate passwords of format 'f'. Default: b58. - See PASSWORD FORMATS below - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -L, --passwd-len l Specify length of generated passwords. For defaults, - see PASSWORD FORMATS below. An argument of 'h' will - generate passwords of half the default length. - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Print passwords to stdout - -v, --verbose Produce more verbose output +```text + MMGEN-PASSGEN: Generate a range or list of passwords from an MMGen wallet, + mnemonic, seed or brainwallet for the given ID string + USAGE: mmgen-passgen [opts] [seed source] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry + -f, --passwd-fmt f Generate passwords of format 'f'. Default: b58. + See PASSWORD FORMATS below + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -L, --passwd-len l Specify length of generated passwords. For defaults, + see PASSWORD FORMATS below. An argument of 'h' will + generate passwords of half the default length. + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Print passwords to stdout + -v, --verbose Produce more verbose output - NOTES FOR THIS COMMAND + NOTES FOR THIS COMMAND - ID string must be a valid UTF-8 string not longer than 256 characters and - not containing the symbols ' ', ':', '/', '\'. + ID string must be a valid UTF-8 string not longer than 256 characters and + not containing the symbols ' ', ':', '/', '\'. - Password indexes are given as a comma-separated list and/or hyphen-separated - range(s). + Password indexes are given as a comma-separated list and/or hyphen-separated + range(s). - Changing either the password format (base32,base58) or length alters the seed - and thus generates a completely new set of passwords. + Changing either the password format (base32,base58) or length alters the seed + and thus generates a completely new set of passwords. - PASSWORD FORMATS: + PASSWORD FORMATS: - Code Description Min Len Max Len Default Len - b32 - base32 password 10 42 24 - b58 - base58 password 8 36 20 - bip39 - BIP39 mnemonic 12 24 24 - xmrseed - Monero new-style mnemonic 25 25 25 - hex - hexadecimal password 32 64 64 + Code Description Min Len Max Len Default Len + b32 - base32 password 10 42 24 + b58 - base58 password 8 36 20 + bip39 - BIP39 mnemonic 12 24 24 + xmrseed - Monero new-style mnemonic 25 25 25 + hex - hexadecimal password 32 64 64 - EXAMPLES: + EXAMPLES: - Generate ten base58 passwords of length 20 for Alice's email account: - mmgen-passgen alice@nowhere.com 1-10 + Generate ten base58 passwords of length 20 for Alice's email account: + mmgen-passgen alice@nowhere.com 1-10 - Generate ten base58 passwords of length 16 for Alice's email account: - mmgen-passgen --passwd-len=16 alice@nowhere.com 1-10 + Generate ten base58 passwords of length 16 for Alice's email account: + mmgen-passgen --passwd-len=16 alice@nowhere.com 1-10 - Generate ten base32 passwords of length 24 for Alice's email account: - mmgen-passgen --passwd-fmt=b32 alice@nowhere.com 1-10 + Generate ten base32 passwords of length 24 for Alice's email account: + mmgen-passgen --passwd-fmt=b32 alice@nowhere.com 1-10 - Generate three BIP39 mnemonic seed phrases of length 24 for Alice's - Trezor device: - mmgen-passgen --passwd-fmt=bip39 mytrezor 1-3 + Generate three BIP39 mnemonic seed phrases of length 24 for Alice's + Trezor device: + mmgen-passgen --passwd-fmt=bip39 mytrezor 1-3 - All passwords are cryptographically unlinkable with each other, including - passwords with the same format but different length, so Alice needn't worry - about inadvertent reuse of private data. + All passwords are cryptographically unlinkable with each other, including + passwords with the same format but different length, so Alice needn't worry + about inadvertent reuse of private data. - NOTES FOR ALL GENERATOR COMMANDS + NOTES FOR ALL GENERATOR COMMANDS - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - BRAINWALLET NOTE: + BRAINWALLET NOTE: - To thwart dictionary attacks, it's recommended to use a strong hash preset - with brainwallets. For a brainwallet passphrase to generate the correct - seed, the same seed length and hash preset parameters must always be used. + To thwart dictionary attacks, it's recommended to use a strong hash preset + with brainwallets. For a brainwallet passphrase to generate the correct + seed, the same seed length and hash preset parameters must always be used. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-PASSGEN(1) + MMGEN v13.2.0 August 2022 MMGEN-PASSGEN(1) +``` diff --git a/command-help-regtest.md b/command-help-regtest.md index 1e51c43..1b6105b 100644 --- a/command-help-regtest.md +++ b/command-help-regtest.md @@ -1,27 +1,28 @@ - MMGEN-REGTEST: Coin daemon regression test mode setup and operations for the MMGen suite - USAGE: mmgen-regtest [opts] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -e, --empty Don't fund Bob and Alice's wallets on setup - -n, --setup-no-stop-daemon Don't stop daemon after setup is finished - -q, --quiet Produce quieter output - -v, --verbose Produce more verbose output +```text + MMGEN-REGTEST: Coin daemon regression test mode setup and operations for the MMGen suite + USAGE: mmgen-regtest [opts] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -e, --empty Don't fund Bob and Alice's wallets on setup + -n, --setup-no-stop-daemon Don't stop daemon after setup is finished + -q, --quiet Produce quieter output + -v, --verbose Produce more verbose output - AVAILABLE COMMANDS + AVAILABLE COMMANDS - setup - set up Bob and Alice regtest mode - start - start the regtest coin daemon - stop - stop the regtest coin daemon - generate N - mine N blocks (defaults to 1) - send ADDR AMT - send amount AMT of miner funds to address ADDR - state - show current state of daemon (ready, busy, or stopped) - balances - get Bob and Alice's balances - mempool - show transaction IDs in mempool - cli - execute an RPC call with supplied arguments - wallet_cli - execute a wallet RPC call with supplied arguments (wallet - is first argument) + setup - set up Bob and Alice regtest mode + start - start the regtest coin daemon + stop - stop the regtest coin daemon + generate N - mine N blocks (defaults to 1) + send ADDR AMT - send amount AMT of miner funds to address ADDR + state - show current state of daemon (ready, busy, or stopped) + balances - get Bob and Alice's balances + mempool - show transaction IDs in mempool + cli - execute an RPC call with supplied arguments + wallet_cli - execute a wallet RPC call with supplied arguments (wallet + is first argument) - - MMGEN v13.2.0 August 2022 MMGEN-REGTEST(1) + MMGEN v13.2.0 August 2022 MMGEN-REGTEST(1) +``` diff --git a/command-help-seedjoin.md b/command-help-seedjoin.md index 9b7012c..27faa5f 100644 --- a/command-help-seedjoin.md +++ b/command-help-seedjoin.md @@ -1,63 +1,65 @@ - MMGEN-SEEDJOIN: Regenerate an MMGen deterministic wallet from seed shares - created by 'mmgen-seedsplit' - USAGE: mmgen-seedjoin [options] share1 share2 [...shareN] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output file to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -i, --id-str s ID String of split (required for master share join only) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated). NOTE: only the - first share may be in hidden incognito format! - -J, --hidden-incog-output-params f,o Write hidden incognito data to file - 'f' at offset 'o' (comma-separated). File 'f' will be - created if necessary and filled with random data. - -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) - -O, --old-incog-fmt Specify old-format incognito input - -L, --label l Specify a label 'l' for output wallet - -M, --master-share i Use a master share with index 'i' (min:1, max:1024) - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output +```text + MMGEN-SEEDJOIN: Regenerate an MMGen deterministic wallet from seed shares + created by 'mmgen-seedsplit' + USAGE: mmgen-seedjoin [options] share1 share2 [...shareN] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output file to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -i, --id-str s ID String of split (required for master share join only) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated). NOTE: only the + first share may be in hidden incognito format! + -J, --hidden-incog-output-params f,o Write hidden incognito data to file + 'f' at offset 'o' (comma-separated). File 'f' will be + created if necessary and filled with random data. + -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) + -O, --old-incog-fmt Specify old-format incognito input + -L, --label l Specify a label 'l' for output wallet + -M, --master-share i Use a master share with index 'i' (min:1, max:1024) + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output - COMMAND NOTES: + COMMAND NOTES: - When joining with a master share, the master share must be listed first. - The remaining shares may be listed in any order. + When joining with a master share, the master share must be listed first. + The remaining shares may be listed in any order. - The --id-str option is required only for master share joins. For ordinary - joins it will be ignored. + The --id-str option is required only for master share joins. For ordinary + joins it will be ignored. - For usage examples, see the help screen for the 'mmgen-seedsplit' command. + For usage examples, see the help screen for the 'mmgen-seedsplit' command. - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-SEEDJOIN(1) + MMGEN v13.2.0 August 2022 MMGEN-SEEDJOIN(1) +``` diff --git a/command-help-seedsplit.md b/command-help-seedsplit.md index 7dc0ee1..f5d27b7 100644 --- a/command-help-seedsplit.md +++ b/command-help-seedsplit.md @@ -1,144 +1,146 @@ - MMGEN-SEEDSPLIT: Generate a seed share from the default or specified MMGen wallet - USAGE: mmgen-seedsplit [opts] [infile] [:]: - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) - -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -J, --hidden-incog-output-params f,o Write hidden incognito data to file - 'f' at offset 'o' (comma-separated). File 'f' will be - created if necessary and filled with random data. - -O, --old-incog-fmt Specify old-format incognito input - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -L, --label l Specify a label 'l' for output wallet - -M, --master-share i Use a master share with index 'i' (min:1, max:1024) - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output +```text + MMGEN-SEEDSPLIT: Generate a seed share from the default or specified MMGen wallet + USAGE: mmgen-seedsplit [opts] [infile] [:]: + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) + -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -J, --hidden-incog-output-params f,o Write hidden incognito data to file + 'f' at offset 'o' (comma-separated). File 'f' will be + created if necessary and filled with random data. + -O, --old-incog-fmt Specify old-format incognito input + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -L, --label l Specify a label 'l' for output wallet + -M, --master-share i Use a master share with index 'i' (min:1, max:1024) + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output - COMMAND NOTES: + COMMAND NOTES: - This command generates shares one at a time. Shares may be output to any - MMGen wallet format, with one limitation: only one share in a given split may - be in hidden incognito format, and it must be the master share in the case of - a master-share split. + This command generates shares one at a time. Shares may be output to any + MMGen wallet format, with one limitation: only one share in a given split may + be in hidden incognito format, and it must be the master share in the case of + a master-share split. - If the command's optional first argument is omitted, the default wallet is - used for the split. + If the command's optional first argument is omitted, the default wallet is + used for the split. - The last argument is a seed split specifier consisting of an optional split - ID, a share index, and a share count, all separated by colons. The split ID - must be a valid UTF-8 string. If omitted, the ID 'default' is used. The - share index (the index of the share being generated) must be in the range - 1-1024 and the share count (the total number of shares in the split) - in the range 2-1024. + The last argument is a seed split specifier consisting of an optional split + ID, a share index, and a share count, all separated by colons. The split ID + must be a valid UTF-8 string. If omitted, the ID 'default' is used. The + share index (the index of the share being generated) must be in the range + 1-1024 and the share count (the total number of shares in the split) + in the range 2-1024. - Master Shares + Master Shares - Each seed has a total of 1024 master shares, which can be used as the first - shares in multiple splits if desired. To generate a master share, use the - --master-share (-M) option with an index in the range 1-1024 and omit - the last argument. + Each seed has a total of 1024 master shares, which can be used as the first + shares in multiple splits if desired. To generate a master share, use the + --master-share (-M) option with an index in the range 1-1024 and omit + the last argument. - When creating and joining a split using a master share, ensure that the same - master share index is used in all split and join commands. + When creating and joining a split using a master share, ensure that the same + master share index is used in all split and join commands. - EXAMPLES: + EXAMPLES: - Split a BIP39 seed phrase into two BIP39 shares. Rejoin the split: + Split a BIP39 seed phrase into two BIP39 shares. Rejoin the split: - $ echo 'zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong' > sample.bip39 + $ echo 'zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong' > sample.bip39 - $ mmgen-seedsplit -o bip39 sample.bip39 1:2 - BIP39 mnemonic data written to file '03BAE887-default-1of2[D51CB683][128].bip39' + $ mmgen-seedsplit -o bip39 sample.bip39 1:2 + BIP39 mnemonic data written to file '03BAE887-default-1of2[D51CB683][128].bip39' - $ mmgen-seedsplit -o bip39 sample.bip39 2:2 - BIP39 mnemonic data written to file '03BAE887-default-2of2[67BFD36E][128].bip39' + $ mmgen-seedsplit -o bip39 sample.bip39 2:2 + BIP39 mnemonic data written to file '03BAE887-default-2of2[67BFD36E][128].bip39' - $ mmgen-seedjoin -o bip39 \ - '03BAE887-default-2of2[67BFD36E][128].bip39' \ - '03BAE887-default-1of2[D51CB683][128].bip39' - BIP39 mnemonic data written to file '03BAE887[128].bip39' + $ mmgen-seedjoin -o bip39 \ + '03BAE887-default-2of2[67BFD36E][128].bip39' \ + '03BAE887-default-1of2[D51CB683][128].bip39' + BIP39 mnemonic data written to file '03BAE887[128].bip39' - $ cat '03BAE887[128].bip39' - zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong + $ cat '03BAE887[128].bip39' + zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong - Create a 3-way default split of your default wallet, outputting all shares - to default wallet format. Rejoin the split: + Create a 3-way default split of your default wallet, outputting all shares + to default wallet format. Rejoin the split: - $ mmgen-seedsplit 1:3 # Step A - $ mmgen-seedsplit 2:3 # Step B - $ mmgen-seedsplit 3:3 # Step C - $ mmgen-seedjoin + $ mmgen-seedsplit 1:3 # Step A + $ mmgen-seedsplit 2:3 # Step B + $ mmgen-seedsplit 3:3 # Step C + $ mmgen-seedjoin - Create a 2-way split of your default wallet with ID string 'alice', - outputting shares to MMGen native mnemonic format. Rejoin the split: + Create a 2-way split of your default wallet with ID string 'alice', + outputting shares to MMGen native mnemonic format. Rejoin the split: - $ mmgen-seedsplit -o words alice:1:2 # Step D - $ mmgen-seedsplit -o words alice:2:2 # Step E - $ mmgen-seedjoin + $ mmgen-seedsplit -o words alice:1:2 # Step D + $ mmgen-seedsplit -o words alice:2:2 # Step E + $ mmgen-seedjoin - Create a 2-way split of your default wallet with ID string 'bob' using - master share #7, outputting share #1 (the master share) to default wallet - format and share #2 to BIP39 format. Rejoin the split: + Create a 2-way split of your default wallet with ID string 'bob' using + master share #7, outputting share #1 (the master share) to default wallet + format and share #2 to BIP39 format. Rejoin the split: - $ mmgen-seedsplit -M7 # Step X - $ mmgen-seedsplit -M7 -o bip39 bob:2:2 # Step Y - $ mmgen-seedjoin -M7 --id-str=bob + $ mmgen-seedsplit -M7 # Step X + $ mmgen-seedsplit -M7 -o bip39 bob:2:2 # Step Y + $ mmgen-seedjoin -M7 --id-str=bob - Create a 2-way split of your default wallet with ID string 'alice' using - master share #7. Rejoin the split using master share #7 generated in the - previous example: + Create a 2-way split of your default wallet with ID string 'alice' using + master share #7. Rejoin the split using master share #7 generated in the + previous example: - $ mmgen-seedsplit -M7 -o bip39 alice:2:2 # Step Z - $ mmgen-seedjoin -M7 --id-str=alice + $ mmgen-seedsplit -M7 -o bip39 alice:2:2 # Step Z + $ mmgen-seedjoin -M7 --id-str=alice - Create a 2-way default split of your default wallet with an incognito-format - master share hidden in file 'my.hincog' at offset 1325. Rejoin the split: + Create a 2-way default split of your default wallet with an incognito-format + master share hidden in file 'my.hincog' at offset 1325. Rejoin the split: - $ mmgen-seedsplit -M4 -o hincog -J my.hincog,1325 1:2 # Step M (share A) - $ mmgen-seedsplit -M4 -o bip39 2:2 # Step N (share B) - $ mmgen-seedjoin -M4 -H my.hincog,1325 + $ mmgen-seedsplit -M4 -o hincog -J my.hincog,1325 1:2 # Step M (share A) + $ mmgen-seedsplit -M4 -o bip39 2:2 # Step N (share B) + $ mmgen-seedjoin -M4 -H my.hincog,1325 - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - BRAINWALLET NOTE: + BRAINWALLET NOTE: - To thwart dictionary attacks, it's recommended to use a strong hash preset - with brainwallets. For a brainwallet passphrase to generate the correct - seed, the same seed length and hash preset parameters must always be used. + To thwart dictionary attacks, it's recommended to use a strong hash preset + with brainwallets. For a brainwallet passphrase to generate the correct + seed, the same seed length and hash preset parameters must always be used. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-SEEDSPLIT(1) + MMGEN v13.2.0 August 2022 MMGEN-SEEDSPLIT(1) +``` diff --git a/command-help-subwalletgen.md b/command-help-subwalletgen.md index 1db6208..09af473 100644 --- a/command-help-subwalletgen.md +++ b/command-help-subwalletgen.md @@ -1,97 +1,99 @@ - MMGEN-SUBWALLETGEN: Generate a subwallet from the default or specified MMGen wallet - USAGE: mmgen-subwalletgen [opts] [infile] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) - -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -J, --hidden-incog-output-params f,o Write hidden incognito data to file - 'f' at offset 'o' (comma-separated). File 'f' will be - created if necessary and filled with random data. - -O, --old-incog-fmt Specify old-format incognito input - -k, --keep-passphrase Reuse passphrase of input wallet for output wallet - -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -L, --label l Specify a label 'l' for output wallet - -m, --keep-label Reuse label of input wallet for output wallet - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output +```text + MMGEN-SUBWALLETGEN: Generate a subwallet from the default or specified MMGen wallet + USAGE: mmgen-subwalletgen [opts] [infile] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) + -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -J, --hidden-incog-output-params f,o Write hidden incognito data to file + 'f' at offset 'o' (comma-separated). File 'f' will be + created if necessary and filled with random data. + -O, --old-incog-fmt Specify old-format incognito input + -k, --keep-passphrase Reuse passphrase of input wallet for output wallet + -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -L, --label l Specify a label 'l' for output wallet + -m, --keep-label Reuse label of input wallet for output wallet + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output - SUBWALLETS: + SUBWALLETS: - Subwallets (subseeds) are specified by a "Subseed Index" consisting of: + Subwallets (subseeds) are specified by a "Subseed Index" consisting of: - a) an integer in the range 1-1000000, plus - b) an optional single letter, 'L' or 'S' + a) an integer in the range 1-1000000, plus + b) an optional single letter, 'L' or 'S' - The letter designates the length of the subseed. If omitted, 'L' is assumed. + The letter designates the length of the subseed. If omitted, 'L' is assumed. - Long ('L') subseeds are the same length as their parent wallet's seed - (typically 256 bits), while short ('S') subseeds are always 128-bit. - The long and short subseeds for a given index are derived independently, - so both may be used. + Long ('L') subseeds are the same length as their parent wallet's seed + (typically 256 bits), while short ('S') subseeds are always 128-bit. + The long and short subseeds for a given index are derived independently, + so both may be used. - MMGen has no notion of "depth", and to an outside observer subwallets are - identical to ordinary wallets. This is a feature rather than a bug, as it - denies an attacker any way of knowing whether a given wallet has a parent. + MMGen has no notion of "depth", and to an outside observer subwallets are + identical to ordinary wallets. This is a feature rather than a bug, as it + denies an attacker any way of knowing whether a given wallet has a parent. - Since subwallets are just wallets, they may be used to generate other - subwallets, leading to hierarchies of arbitrary depth. However, this is - inadvisable in practice for two reasons: Firstly, it creates accounting - complexity, requiring the user to independently keep track of a derivation - tree. More importantly, however, it leads to the danger of Seed ID - collisions between subseeds at different levels of the hierarchy, as - MMGen checks and avoids ID collisions only among sibling subseeds. + Since subwallets are just wallets, they may be used to generate other + subwallets, leading to hierarchies of arbitrary depth. However, this is + inadvisable in practice for two reasons: Firstly, it creates accounting + complexity, requiring the user to independently keep track of a derivation + tree. More importantly, however, it leads to the danger of Seed ID + collisions between subseeds at different levels of the hierarchy, as + MMGen checks and avoids ID collisions only among sibling subseeds. - An exception to this caveat would be a multi-user setup where sibling - subwallets are distributed to different users as their default wallets. - Since the subseeds derived from these subwallets are private to each user, - Seed ID collisions among them doesn't present a problem. + An exception to this caveat would be a multi-user setup where sibling + subwallets are distributed to different users as their default wallets. + Since the subseeds derived from these subwallets are private to each user, + Seed ID collisions among them doesn't present a problem. - A safe rule of thumb, therefore, is for *each user* to derive all of his/her - subwallets from a single parent. This leaves each user with a total of two - million subwallets, which should be enough for most practical purposes. + A safe rule of thumb, therefore, is for *each user* to derive all of his/her + subwallets from a single parent. This leaves each user with a total of two + million subwallets, which should be enough for most practical purposes. - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - BRAINWALLET NOTE: + BRAINWALLET NOTE: - To thwart dictionary attacks, it's recommended to use a strong hash preset - with brainwallets. For a brainwallet passphrase to generate the correct - seed, the same seed length and hash preset parameters must always be used. + To thwart dictionary attacks, it's recommended to use a strong hash preset + with brainwallets. For a brainwallet passphrase to generate the correct + seed, the same seed length and hash preset parameters must always be used. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-SUBWALLETGEN(1) + MMGEN v13.2.0 August 2022 MMGEN-SUBWALLETGEN(1) +``` diff --git a/command-help-tool(detail).md b/command-help-tool(detail).md index 9e36ce3..068197d 100644 --- a/command-help-tool(detail).md +++ b/command-help-tool(detail).md @@ -14,1044 +14,1200 @@ ### `mmgen-tool b32tohex` - Convert an MMGen-flavor base 32 string to hexadecimal - - USAGE: mmgen-tool [OPTS] b32tohex ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - b32_str [str] (use '-' to read from STDIN) - - Optional KEYWORD ARG (type and default value shown in square brackets): - - pad [int=0] Pad output to this width +```text +Convert an MMGen-flavor base 32 string to hexadecimal + +USAGE: mmgen-tool [OPTS] b32tohex ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + b32_str [str] (use '-' to read from STDIN) + +Optional KEYWORD ARG (type and default value shown in square brackets): + + pad [int=0] Pad output to this width +``` ### `mmgen-tool b58chktohex` - Convert a base58-check encoded string to hexadecimal - - USAGE: mmgen-tool [OPTS] b58chktohex ARG - - Required ARG (type shown in square brackets): - - b58chk_str [str] (use '-' to read from STDIN) +```text +Convert a base58-check encoded string to hexadecimal + +USAGE: mmgen-tool [OPTS] b58chktohex ARG + +Required ARG (type shown in square brackets): + + b58chk_str [str] (use '-' to read from STDIN) +``` ### `mmgen-tool b58tobytes` - Convert a base 58 string to bytes (warning: outputs binary data) - - USAGE: mmgen-tool [OPTS] b58tobytes ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - b58_str [str] (use '-' to read from STDIN) - - Optional KEYWORD ARG (type and default value shown in square brackets): - - pad [int=0] Pad output to this width +```text +Convert a base 58 string to bytes (warning: outputs binary data) + +USAGE: mmgen-tool [OPTS] b58tobytes ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + b58_str [str] (use '-' to read from STDIN) + +Optional KEYWORD ARG (type and default value shown in square brackets): + + pad [int=0] Pad output to this width +``` ### `mmgen-tool b58tohex` - Convert a base 58 string to hexadecimal - - USAGE: mmgen-tool [OPTS] b58tohex ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - b58_str [str] (use '-' to read from STDIN) - - Optional KEYWORD ARG (type and default value shown in square brackets): - - pad [int=0] Pad output to this width +```text +Convert a base 58 string to hexadecimal + +USAGE: mmgen-tool [OPTS] b58tohex ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + b58_str [str] (use '-' to read from STDIN) + +Optional KEYWORD ARG (type and default value shown in square brackets): + + pad [int=0] Pad output to this width +``` ### `mmgen-tool b6dtohex` - Convert a die roll base6 (base6d) string to hexadecimal - - USAGE: mmgen-tool [OPTS] b6dtohex ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - b6d_str [str] (use '-' to read from STDIN) - - Optional KEYWORD ARG (type and default value shown in square brackets): - - pad [int=0] Pad output to this width +```text +Convert a die roll base6 (base6d) string to hexadecimal + +USAGE: mmgen-tool [OPTS] b6dtohex ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + b6d_str [str] (use '-' to read from STDIN) + +Optional KEYWORD ARG (type and default value shown in square brackets): + + pad [int=0] Pad output to this width +``` ### `mmgen-tool bytespec` - Convert a byte specifier such as ‘4GB’ into an integer - - USAGE: mmgen-tool [OPTS] bytespec ARG - - Required ARG (type shown in square brackets): - - dd_style_byte_specifier [str] - - Valid specifiers: - - c = 1 - w = 2 - b = 512 - kB = 1000 - K = 1024 - MB = 1000000 - M = 1048576 - GB = 1000000000 - G = 1073741824 - TB = 1000000000000 - T = 1099511627776 - PB = 1000000000000000 - P = 1125899906842624 - EB = 1000000000000000000 - E = 1152921504606846976 +```text +Convert a byte specifier such as ‘4GB’ into an integer + +USAGE: mmgen-tool [OPTS] bytespec ARG + +Required ARG (type shown in square brackets): + + dd_style_byte_specifier [str] + +Valid specifiers: + + c = 1 + w = 2 + b = 512 + kB = 1000 + K = 1024 + MB = 1000000 + M = 1048576 + GB = 1000000000 + G = 1073741824 + TB = 1000000000000 + T = 1099511627776 + PB = 1000000000000000 + P = 1125899906842624 + EB = 1000000000000000000 + E = 1152921504606846976 +``` ### `mmgen-tool bytestob58` - Convert bytes to base 58 (supply data via STDIN) - - USAGE: mmgen-tool [OPTS] bytestob58 ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - infile [str] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - pad [int=0] Pad output to this width +```text +Convert bytes to base 58 (supply data via STDIN) + +USAGE: mmgen-tool [OPTS] bytestob58 ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + infile [str] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + pad [int=0] Pad output to this width +``` ### `mmgen-tool hash160` - Compute ripemd160(sha256(data)) (convert hex pubkey to hex addr) - - USAGE: mmgen-tool [OPTS] hash160 ARG - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) +```text +Compute ripemd160(sha256(data)) (convert hex pubkey to hex addr) + +USAGE: mmgen-tool [OPTS] hash160 ARG + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) +``` ### `mmgen-tool hash256` - Compute sha256(sha256(data)) (double sha256) - - USAGE: mmgen-tool [OPTS] hash256 ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - data [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - file_input [bool=False] First arg is the name of a file containing the data - hex_input [bool=False] First arg is a hexadecimal string +```text +Compute sha256(sha256(data)) (double sha256) + +USAGE: mmgen-tool [OPTS] hash256 ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + data [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + file_input [bool=False] First arg is the name of a file containing the data + hex_input [bool=False] First arg is a hexadecimal string +``` ### `mmgen-tool hexdump` - Create hexdump of data from file (use '-' for stdin) - - USAGE: mmgen-tool [OPTS] hexdump ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - infile [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - cols [int=8] Number of columns in output - line_nums [str='hex'] Format for line numbers (valid choices: 'hex','dec') +```text +Create hexdump of data from file (use '-' for stdin) + +USAGE: mmgen-tool [OPTS] hexdump ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + infile [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + cols [int=8] Number of columns in output + line_nums [str='hex'] Format for line numbers (valid choices: 'hex','dec') +``` ### `mmgen-tool hexlify` - Convert bytes in file to hexadecimal (use '-' for stdin) - - USAGE: mmgen-tool [OPTS] hexlify ARG - - Required ARG (type shown in square brackets): - - infile [str] +```text +Convert bytes in file to hexadecimal (use '-' for stdin) + +USAGE: mmgen-tool [OPTS] hexlify ARG + +Required ARG (type shown in square brackets): + + infile [str] +``` ### `mmgen-tool hexreverse` - Reverse bytes of a hexadecimal string - - USAGE: mmgen-tool [OPTS] hexreverse ARG - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) +```text +Reverse bytes of a hexadecimal string + +USAGE: mmgen-tool [OPTS] hexreverse ARG + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) +``` ### `mmgen-tool hextob32` - Convert a hexadecimal string to an MMGen-flavor base 32 string - - USAGE: mmgen-tool [OPTS] hextob32 ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) - - Optional KEYWORD ARG (type and default value shown in square brackets): - - pad [int=0] Pad output to this width +```text +Convert a hexadecimal string to an MMGen-flavor base 32 string + +USAGE: mmgen-tool [OPTS] hextob32 ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) + +Optional KEYWORD ARG (type and default value shown in square brackets): + + pad [int=0] Pad output to this width +``` ### `mmgen-tool hextob58` - Convert a hexadecimal string to base 58 - - USAGE: mmgen-tool [OPTS] hextob58 ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) - - Optional KEYWORD ARG (type and default value shown in square brackets): - - pad [int=0] Pad output to this width +```text +Convert a hexadecimal string to base 58 + +USAGE: mmgen-tool [OPTS] hextob58 ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) + +Optional KEYWORD ARG (type and default value shown in square brackets): + + pad [int=0] Pad output to this width +``` ### `mmgen-tool hextob58chk` - Convert a hexadecimal string to base58-check encoding - - USAGE: mmgen-tool [OPTS] hextob58chk ARG - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) +```text +Convert a hexadecimal string to base58-check encoding + +USAGE: mmgen-tool [OPTS] hextob58chk ARG + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) +``` ### `mmgen-tool hextob6d` - Convert a hexadecimal string to die roll base6 (base6d) - - USAGE: mmgen-tool [OPTS] hextob6d ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - pad [int=0] Pad output to this width - add_spaces [bool=True] Add a space after every 5th character +```text +Convert a hexadecimal string to die roll base6 (base6d) + +USAGE: mmgen-tool [OPTS] hextob6d ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + pad [int=0] Pad output to this width + add_spaces [bool=True] Add a space after every 5th character +``` ### `mmgen-tool id6` - Generate 6-character MMGen ID for a file (use '-' for stdin) - - USAGE: mmgen-tool [OPTS] id6 ARG - - Required ARG (type shown in square brackets): - - infile [str] +```text +Generate 6-character MMGen ID for a file (use '-' for stdin) + +USAGE: mmgen-tool [OPTS] id6 ARG + +Required ARG (type shown in square brackets): + + infile [str] +``` ### `mmgen-tool id8` - Generate 8-character MMGen ID for a file (use '-' for stdin) - - USAGE: mmgen-tool [OPTS] id8 ARG - - Required ARG (type shown in square brackets): - - infile [str] +```text +Generate 8-character MMGen ID for a file (use '-' for stdin) + +USAGE: mmgen-tool [OPTS] id8 ARG + +Required ARG (type shown in square brackets): + + infile [str] +``` ### `mmgen-tool randb58` - Generate random data (default: 32 bytes) and convert it to base 58 - - USAGE: mmgen-tool [OPTS] randb58 [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - nbytes [int=32] Number of bytes to output - pad [int=0] Pad output to this width +```text +Generate random data (default: 32 bytes) and convert it to base 58 + +USAGE: mmgen-tool [OPTS] randb58 [KEYWORD ARGS] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + nbytes [int=32] Number of bytes to output + pad [int=0] Pad output to this width +``` ### `mmgen-tool randhex` - Print 'n' bytes (default 32) of random data in hex format - - USAGE: mmgen-tool [OPTS] randhex [KEYWORD ARG] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - nbytes [int=32] Number of bytes to output +```text +Print 'n' bytes (default 32) of random data in hex format + +USAGE: mmgen-tool [OPTS] randhex [KEYWORD ARG] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + nbytes [int=32] Number of bytes to output +``` ### `mmgen-tool str2id6` - Generate 6-character MMGen ID for a string, ignoring spaces in string - - USAGE: mmgen-tool [OPTS] str2id6 ARG - - Required ARG (type shown in square brackets): - - string [str] (use '-' to read from STDIN) +```text +Generate 6-character MMGen ID for a string, ignoring spaces in string + +USAGE: mmgen-tool [OPTS] str2id6 ARG + +Required ARG (type shown in square brackets): + + string [str] (use '-' to read from STDIN) +``` ### `mmgen-tool to_bytespec` - Convert an integer to a byte specifier such as ‘4GB’ - - USAGE: mmgen-tool [OPTS] to_bytespec ARGS [KEYWORD ARGS] - - Required ARGS (type shown in square brackets): - - n [int] - dd_style_byte_specifier [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - fmt [str='0.2'] Width and precision of output - print_sym [bool=True] Print the specifier after the numerical value - strip [bool=False] Strip trailing zeroes - add_space [bool=False] With print_sym, add space between value and specifier - - Supported specifiers: - - c = 1 - w = 2 - b = 512 - kB = 1000 - K = 1024 - MB = 1000000 - M = 1048576 - GB = 1000000000 - G = 1073741824 - TB = 1000000000000 - T = 1099511627776 - PB = 1000000000000000 - P = 1125899906842624 - EB = 1000000000000000000 - E = 1152921504606846976 +```text +Convert an integer to a byte specifier such as ‘4GB’ + +USAGE: mmgen-tool [OPTS] to_bytespec ARGS [KEYWORD ARGS] + +Required ARGS (type shown in square brackets): + + n [int] + dd_style_byte_specifier [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + fmt [str='0.2'] Width and precision of output + print_sym [bool=True] Print the specifier after the numerical value + strip [bool=False] Strip trailing zeroes + add_space [bool=False] With print_sym, add space between value and specifier + +Supported specifiers: + + c = 1 + w = 2 + b = 512 + kB = 1000 + K = 1024 + MB = 1000000 + M = 1048576 + GB = 1000000000 + G = 1073741824 + TB = 1000000000000 + T = 1099511627776 + PB = 1000000000000000 + P = 1125899906842624 + EB = 1000000000000000000 + E = 1152921504606846976 +``` ### `mmgen-tool unhexdump` - Decode hexdump from file (use '-' for stdin) (warning: outputs binary data) - - USAGE: mmgen-tool [OPTS] unhexdump ARG - - Required ARG (type shown in square brackets): - - infile [str] +```text +Decode hexdump from file (use '-' for stdin) (warning: outputs binary data) + +USAGE: mmgen-tool [OPTS] unhexdump ARG + +Required ARG (type shown in square brackets): + + infile [str] +``` ### `mmgen-tool unhexlify` - Convert a hexadecimal string to bytes (warning: outputs binary data) - - USAGE: mmgen-tool [OPTS] unhexlify ARG - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) +```text +Convert a hexadecimal string to bytes (warning: outputs binary data) + +USAGE: mmgen-tool [OPTS] unhexlify ARG + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) +``` ## Cryptocoin key/address utilities: ### `mmgen-tool addr2pubhash` - Convert coin address to public key hash - - USAGE: mmgen-tool [OPTS] addr2pubhash ARG - - Required ARG (type shown in square brackets): - - addr [str] (use '-' to read from STDIN) +```text +Convert coin address to public key hash + +USAGE: mmgen-tool [OPTS] addr2pubhash ARG + +Required ARG (type shown in square brackets): + + addr [str] (use '-' to read from STDIN) +``` ### `mmgen-tool addr2scriptpubkey` - Convert coin address to scriptPubKey - - USAGE: mmgen-tool [OPTS] addr2scriptpubkey ARG - - Required ARG (type shown in square brackets): - - addr [str] (use '-' to read from STDIN) +```text +Convert coin address to scriptPubKey + +USAGE: mmgen-tool [OPTS] addr2scriptpubkey ARG + +Required ARG (type shown in square brackets): + + addr [str] (use '-' to read from STDIN) +``` ### `mmgen-tool eth_checksummed_addr` - Create a checksummed Ethereum address - - USAGE: mmgen-tool [OPTS] eth_checksummed_addr ARG - - Required ARG (type shown in square brackets): - - addr [str] (use '-' to read from STDIN) +```text +Create a checksummed Ethereum address + +USAGE: mmgen-tool [OPTS] eth_checksummed_addr ARG + +Required ARG (type shown in square brackets): + + addr [str] (use '-' to read from STDIN) +``` ### `mmgen-tool hex2wif` - Convert a private key from hexadecimal to WIF format - - USAGE: mmgen-tool [OPTS] hex2wif ARG - - Required ARG (type shown in square brackets): - - privhex [str] (use '-' to read from STDIN) +```text +Convert a private key from hexadecimal to WIF format + +USAGE: mmgen-tool [OPTS] hex2wif ARG + +Required ARG (type shown in square brackets): + + privhex [str] (use '-' to read from STDIN) +``` ### `mmgen-tool privhex2addr` - Generate a coin address from raw hexadecimal private key data - - USAGE: mmgen-tool [OPTS] privhex2addr ARG - - Required ARG (type shown in square brackets): - - privhex [str] (use '-' to read from STDIN) +```text +Generate a coin address from raw hexadecimal private key data + +USAGE: mmgen-tool [OPTS] privhex2addr ARG + +Required ARG (type shown in square brackets): + + privhex [str] (use '-' to read from STDIN) +``` ### `mmgen-tool privhex2pubhex` - Generate a hexadecimal public key from raw hexadecimal private key data - - USAGE: mmgen-tool [OPTS] privhex2pubhex ARG - - Required ARG (type shown in square brackets): - - privhex [str] (use '-' to read from STDIN) +```text +Generate a hexadecimal public key from raw hexadecimal private key data + +USAGE: mmgen-tool [OPTS] privhex2pubhex ARG + +Required ARG (type shown in square brackets): + + privhex [str] (use '-' to read from STDIN) +``` ### `mmgen-tool pubhash2addr` - Convert public key hash to address - - USAGE: mmgen-tool [OPTS] pubhash2addr ARG - - Required ARG (type shown in square brackets): - - pubhashhex [str] (use '-' to read from STDIN) +```text +Convert public key hash to address + +USAGE: mmgen-tool [OPTS] pubhash2addr ARG + +Required ARG (type shown in square brackets): + + pubhashhex [str] (use '-' to read from STDIN) +``` ### `mmgen-tool pubhex2addr` - Convert a hexadecimal pubkey to an address - - USAGE: mmgen-tool [OPTS] pubhex2addr ARG - - Required ARG (type shown in square brackets): - - pubkeyhex [str] (use '-' to read from STDIN) +```text +Convert a hexadecimal pubkey to an address + +USAGE: mmgen-tool [OPTS] pubhex2addr ARG + +Required ARG (type shown in square brackets): + + pubkeyhex [str] (use '-' to read from STDIN) +``` ### `mmgen-tool pubhex2redeem_script` - Convert a hexadecimal pubkey to a Segwit P2SH-P2WPKH redeem script - - USAGE: mmgen-tool [OPTS] pubhex2redeem_script ARG - - Required ARG (type shown in square brackets): - - pubkeyhex [str] (use '-' to read from STDIN) +```text +Convert a hexadecimal pubkey to a Segwit P2SH-P2WPKH redeem script + +USAGE: mmgen-tool [OPTS] pubhex2redeem_script ARG + +Required ARG (type shown in square brackets): + + pubkeyhex [str] (use '-' to read from STDIN) +``` ### `mmgen-tool randpair` - Generate a random private key/address pair - - USAGE: mmgen-tool [OPTS] randpair +```text +Generate a random private key/address pair + +USAGE: mmgen-tool [OPTS] randpair +``` ### `mmgen-tool randwif` - Generate a random private key in WIF format - - USAGE: mmgen-tool [OPTS] randwif +```text +Generate a random private key in WIF format + +USAGE: mmgen-tool [OPTS] randwif +``` ### `mmgen-tool redeem_script2addr` - Convert a Segwit P2SH-P2WPKH redeem script to an address - - USAGE: mmgen-tool [OPTS] redeem_script2addr ARG - - Required ARG (type shown in square brackets): - - redeem_script_hex [str] (use '-' to read from STDIN) +```text +Convert a Segwit P2SH-P2WPKH redeem script to an address + +USAGE: mmgen-tool [OPTS] redeem_script2addr ARG + +Required ARG (type shown in square brackets): + + redeem_script_hex [str] (use '-' to read from STDIN) +``` ### `mmgen-tool scriptpubkey2addr` - Convert scriptPubKey to coin address - - USAGE: mmgen-tool [OPTS] scriptpubkey2addr ARG - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) +```text +Convert scriptPubKey to coin address + +USAGE: mmgen-tool [OPTS] scriptpubkey2addr ARG + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) +``` ### `mmgen-tool wif2addr` - Generate a coin address from a key in WIF format - - USAGE: mmgen-tool [OPTS] wif2addr ARG - - Required ARG (type shown in square brackets): - - wifkey [str] (use '-' to read from STDIN) +```text +Generate a coin address from a key in WIF format + +USAGE: mmgen-tool [OPTS] wif2addr ARG + +Required ARG (type shown in square brackets): + + wifkey [str] (use '-' to read from STDIN) +``` ### `mmgen-tool wif2hex` - Convert a private key from WIF to hexadecimal format - - USAGE: mmgen-tool [OPTS] wif2hex ARG - - Required ARG (type shown in square brackets): - - wifkey [str] (use '-' to read from STDIN) +```text +Convert a private key from WIF to hexadecimal format + +USAGE: mmgen-tool [OPTS] wif2hex ARG + +Required ARG (type shown in square brackets): + + wifkey [str] (use '-' to read from STDIN) +``` ### `mmgen-tool wif2redeem_script` - Convert a WIF private key to a Segwit P2SH-P2WPKH redeem script - - USAGE: mmgen-tool [OPTS] wif2redeem_script ARG - - Required ARG (type shown in square brackets): - - wifkey [str] (use '-' to read from STDIN) +```text +Convert a WIF private key to a Segwit P2SH-P2WPKH redeem script + +USAGE: mmgen-tool [OPTS] wif2redeem_script ARG + +Required ARG (type shown in square brackets): + + wifkey [str] (use '-' to read from STDIN) +``` ### `mmgen-tool wif2segwit_pair` - Generate a Segwit P2SH-P2WPKH redeem script and address from a WIF private key - - USAGE: mmgen-tool [OPTS] wif2segwit_pair ARG - - Required ARG (type shown in square brackets): - - wifkey [str] (use '-' to read from STDIN) +```text +Generate a Segwit P2SH-P2WPKH redeem script and address from a WIF private key + +USAGE: mmgen-tool [OPTS] wif2segwit_pair ARG + +Required ARG (type shown in square brackets): + + wifkey [str] (use '-' to read from STDIN) +``` ## Seed phrase utilities: ### `mmgen-tool hex2mn` - Convert a 16, 24 or 32-byte hexadecimal string to a mnemonic seed phrase - - USAGE: mmgen-tool [OPTS] hex2mn ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - hexstr [str] (use '-' to read from STDIN) - - Optional KEYWORD ARG (type and default value shown in square brackets): - - fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +```text +Convert a 16, 24 or 32-byte hexadecimal string to a mnemonic seed phrase + +USAGE: mmgen-tool [OPTS] hex2mn ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + hexstr [str] (use '-' to read from STDIN) + +Optional KEYWORD ARG (type and default value shown in square brackets): + + fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +``` ### `mmgen-tool mn2hex` - Convert a mnemonic seed phrase to a hexadecimal string - - USAGE: mmgen-tool [OPTS] mn2hex ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - seed_mnemonic [str] (use '-' to read from STDIN) - - Optional KEYWORD ARG (type and default value shown in square brackets): - - fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +```text +Convert a mnemonic seed phrase to a hexadecimal string + +USAGE: mmgen-tool [OPTS] mn2hex ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + seed_mnemonic [str] (use '-' to read from STDIN) + +Optional KEYWORD ARG (type and default value shown in square brackets): + + fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +``` ### `mmgen-tool mn2hex_interactive` - Convert an interactively supplied mnemonic seed phrase to a hexadecimal string - - USAGE: mmgen-tool [OPTS] mn2hex_interactive [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') - mn_len [int=24] Length of seed phrase in words - print_mn [bool=False] Print the seed phrase after entry +```text +Convert an interactively supplied mnemonic seed phrase to a hexadecimal string + +USAGE: mmgen-tool [OPTS] mn2hex_interactive [KEYWORD ARGS] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') + mn_len [int=24] Length of seed phrase in words + print_mn [bool=False] Print the seed phrase after entry +``` ### `mmgen-tool mn_printlist` - Print a mnemonic wordlist - - USAGE: mmgen-tool [OPTS] mn_printlist [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') - enum [bool=False] Enumerate the list - pager [bool=False] Send output to pager +```text +Print a mnemonic wordlist + +USAGE: mmgen-tool [OPTS] mn_printlist [KEYWORD ARGS] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') + enum [bool=False] Enumerate the list + pager [bool=False] Send output to pager +``` ### `mmgen-tool mn_rand128` - Generate a random 128-bit mnemonic seed phrase - - USAGE: mmgen-tool [OPTS] mn_rand128 [KEYWORD ARG] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +```text +Generate a random 128-bit mnemonic seed phrase + +USAGE: mmgen-tool [OPTS] mn_rand128 [KEYWORD ARG] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +``` ### `mmgen-tool mn_rand192` - Generate a random 192-bit mnemonic seed phrase - - USAGE: mmgen-tool [OPTS] mn_rand192 [KEYWORD ARG] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +```text +Generate a random 192-bit mnemonic seed phrase + +USAGE: mmgen-tool [OPTS] mn_rand192 [KEYWORD ARG] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +``` ### `mmgen-tool mn_rand256` - Generate a random 256-bit mnemonic seed phrase - - USAGE: mmgen-tool [OPTS] mn_rand256 [KEYWORD ARG] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +```text +Generate a random 256-bit mnemonic seed phrase + +USAGE: mmgen-tool [OPTS] mn_rand256 [KEYWORD ARG] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +``` ### `mmgen-tool mn_stats` - Show stats for a mnemonic wordlist - - USAGE: mmgen-tool [OPTS] mn_stats [KEYWORD ARG] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +```text +Show stats for a mnemonic wordlist + +USAGE: mmgen-tool [OPTS] mn_stats [KEYWORD ARG] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + fmt [str='mmgen'] Seed phrase format (valid choices: 'mmgen','bip39','xmrseed') +``` ## Utilities for viewing/checking MMGen address and transaction files: ### `mmgen-tool addrfile_chksum` - Compute checksum for MMGen address file - - USAGE: mmgen-tool [OPTS] addrfile_chksum ARG - - Required ARG (type shown in square brackets): - - mmgen_addrfile [str] +```text +Compute checksum for MMGen address file + +USAGE: mmgen-tool [OPTS] addrfile_chksum ARG + +Required ARG (type shown in square brackets): + + mmgen_addrfile [str] +``` ### `mmgen-tool keyaddrfile_chksum` - Compute checksum for MMGen key-address file - - USAGE: mmgen-tool [OPTS] keyaddrfile_chksum ARG - - Required ARG (type shown in square brackets): - - mmgen_keyaddrfile [str] +```text +Compute checksum for MMGen key-address file + +USAGE: mmgen-tool [OPTS] keyaddrfile_chksum ARG + +Required ARG (type shown in square brackets): + + mmgen_keyaddrfile [str] +``` ### `mmgen-tool passwdfile_chksum` - Compute checksum for MMGen password file - - USAGE: mmgen-tool [OPTS] passwdfile_chksum ARG - - Required ARG (type shown in square brackets): - - mmgen_passwdfile [str] +```text +Compute checksum for MMGen password file + +USAGE: mmgen-tool [OPTS] passwdfile_chksum ARG + +Required ARG (type shown in square brackets): + + mmgen_passwdfile [str] +``` ### `mmgen-tool txview` - Display specified raw or signed MMGen transaction files in human-readable form - - USAGE: mmgen-tool [OPTS] txview ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - mmgen_tx_file(s) [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - pager [bool=False] Send output to pager - terse [bool=False] Produce compact tabular output - sort [str='addr'] Sort order for transaction inputs and outputs (valid choices: 'addr','raw') - filesort [str='mtime'] File sort order (valid choices: 'mtime','ctime','atime') +```text +Display specified raw or signed MMGen transaction files in human-readable form + +USAGE: mmgen-tool [OPTS] txview ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + mmgen_tx_file(s) [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + pager [bool=False] Send output to pager + terse [bool=False] Produce compact tabular output + sort [str='addr'] Sort order for transaction inputs and outputs (valid choices: 'addr','raw') + filesort [str='mtime'] File sort order (valid choices: 'mtime','ctime','atime') +``` ## File encryption and decryption: ### `mmgen-tool decrypt` - Decrypt a file - - USAGE: mmgen-tool [OPTS] decrypt ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - infile [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - outfile [str=''] - hash_preset [str=''] +```text +Decrypt a file + +USAGE: mmgen-tool [OPTS] decrypt ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + infile [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + outfile [str=''] + hash_preset [str=''] +``` ### `mmgen-tool encrypt` - Encrypt a file - - USAGE: mmgen-tool [OPTS] encrypt ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - infile [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - outfile [str=''] - hash_preset [str=''] +```text +Encrypt a file + +USAGE: mmgen-tool [OPTS] encrypt ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + infile [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + outfile [str=''] + hash_preset [str=''] +``` ## File utilities: ### `mmgen-tool extract_key_from_geth_wallet` - Decrypt the encrypted private key in a Geth keystore wallet, returning the decrypted key - - USAGE: mmgen-tool [OPTS] extract_key_from_geth_wallet ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - wallet_file [str] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - check_addr [bool=True] +```text +Decrypt the encrypted private key in a Geth keystore wallet, returning the decrypted key + +USAGE: mmgen-tool [OPTS] extract_key_from_geth_wallet ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + wallet_file [str] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + check_addr [bool=True] +``` ### `mmgen-tool find_incog_data` - Use an Incog ID to find hidden incognito wallet data - - USAGE: mmgen-tool [OPTS] find_incog_data ARGS [KEYWORD ARG] - - Required ARGS (type shown in square brackets): - - filename [str] - incog_id [str] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - keep_searching [bool=False] Continue search after finding data (ID collisions can yield false positives) +```text +Use an Incog ID to find hidden incognito wallet data + +USAGE: mmgen-tool [OPTS] find_incog_data ARGS [KEYWORD ARG] + +Required ARGS (type shown in square brackets): + + filename [str] + incog_id [str] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + keep_searching [bool=False] Continue search after finding data (ID collisions can yield false positives) +``` ### `mmgen-tool rand2file` - Write ‘nbytes’ bytes of random data to specified file (dd-style byte specifiers supported) - - USAGE: mmgen-tool [OPTS] rand2file ARGS [KEYWORD ARGS] - - Required ARGS (type shown in square brackets): - - outfile [str] - nbytes [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - threads [int=4] - silent [bool=False] - - Valid specifiers: - - c = 1 - w = 2 - b = 512 - kB = 1000 - K = 1024 - MB = 1000000 - M = 1048576 - GB = 1000000000 - G = 1073741824 - TB = 1000000000000 - T = 1099511627776 - PB = 1000000000000000 - P = 1125899906842624 - EB = 1000000000000000000 - E = 1152921504606846976 +```text +Write ‘nbytes’ bytes of random data to specified file (dd-style byte specifiers supported) + +USAGE: mmgen-tool [OPTS] rand2file ARGS [KEYWORD ARGS] + +Required ARGS (type shown in square brackets): + + outfile [str] + nbytes [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + threads [int=4] + silent [bool=False] + +Valid specifiers: + + c = 1 + w = 2 + b = 512 + kB = 1000 + K = 1024 + MB = 1000000 + M = 1048576 + GB = 1000000000 + G = 1073741824 + TB = 1000000000000 + T = 1099511627776 + PB = 1000000000000000 + P = 1125899906842624 + EB = 1000000000000000000 + E = 1152921504606846976 +``` ## Key, address or subseed generation from an MMGen wallet: ### `mmgen-tool gen_addr` - Generate a single MMGen address from default or specified wallet - - USAGE: mmgen-tool [OPTS] gen_addr ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - mmgen_addr [str] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - wallet [str=''] +```text +Generate a single MMGen address from default or specified wallet + +USAGE: mmgen-tool [OPTS] gen_addr ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + mmgen_addr [str] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + wallet [str=''] +``` ### `mmgen-tool gen_key` - Generate a single WIF key for specified MMGen address from default or specified wallet - - USAGE: mmgen-tool [OPTS] gen_key ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - mmgen_addr [str] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - wallet [str=''] +```text +Generate a single WIF key for specified MMGen address from default or specified wallet + +USAGE: mmgen-tool [OPTS] gen_key ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + mmgen_addr [str] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + wallet [str=''] +``` ### `mmgen-tool get_subseed` - Get the Seed ID of a single subseed by Subseed Index for default or specified wallet - - USAGE: mmgen-tool [OPTS] get_subseed ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - subseed_idx [str] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - wallet [str=''] +```text +Get the Seed ID of a single subseed by Subseed Index for default or specified wallet + +USAGE: mmgen-tool [OPTS] get_subseed ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + subseed_idx [str] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + wallet [str=''] +``` ### `mmgen-tool get_subseed_by_seed_id` - Get the Subseed Index of a single subseed by Seed ID for default or specified wallet - - USAGE: mmgen-tool [OPTS] get_subseed_by_seed_id ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - seed_id [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - wallet [str=''] - last_idx [int=100] +```text +Get the Subseed Index of a single subseed by Seed ID for default or specified wallet + +USAGE: mmgen-tool [OPTS] get_subseed_by_seed_id ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + seed_id [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + wallet [str=''] + last_idx [int=100] +``` ### `mmgen-tool list_shares` - List the Seed IDs of the shares resulting from a split of default or specified wallet - - USAGE: mmgen-tool [OPTS] list_shares ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - share_count [int] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - id_str [str='default'] - master_share [int=0] (min:1, max:1024, 0=no master share) - wallet [str=''] +```text +List the Seed IDs of the shares resulting from a split of default or specified wallet + +USAGE: mmgen-tool [OPTS] list_shares ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + share_count [int] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + id_str [str='default'] + master_share [int=0] (min:1, max:1024, 0=no master share) + wallet [str=''] +``` ### `mmgen-tool list_subseeds` - List a range of subseed Seed IDs for default or specified wallet - - USAGE: mmgen-tool [OPTS] list_subseeds ARG [KEYWORD ARG] - - Required ARG (type shown in square brackets): - - subseed_idx_range [str] - - Optional KEYWORD ARG (type and default value shown in square brackets): - - wallet [str=''] +```text +List a range of subseed Seed IDs for default or specified wallet + +USAGE: mmgen-tool [OPTS] list_subseeds ARG [KEYWORD ARG] + +Required ARG (type shown in square brackets): + + subseed_idx_range [str] + +Optional KEYWORD ARG (type and default value shown in square brackets): + + wallet [str=''] +``` ## Tracking-wallet commands using the JSON-RPC interface: ### `mmgen-tool add_label` - Add descriptive label for address in tracking wallet - - USAGE: mmgen-tool [OPTS] add_label ARGS - - Required ARGS (type shown in square brackets): - - mmgen_or_coin_addr [str] - label [str] +```text +Add descriptive label for address in tracking wallet + +USAGE: mmgen-tool [OPTS] add_label ARGS + +Required ARGS (type shown in square brackets): + + mmgen_or_coin_addr [str] + label [str] +``` ### `mmgen-tool daemon_version` - Print coin daemon version - - USAGE: mmgen-tool [OPTS] daemon_version +```text +Print coin daemon version + +USAGE: mmgen-tool [OPTS] daemon_version +``` ### `mmgen-tool getbalance` - List confirmed/unconfirmed, spendable/unspendable balances in tracking wallet - - USAGE: mmgen-tool [OPTS] getbalance [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - minconf [int=1] Minimum number of confirmations - quiet [bool=False] Produce quieter output - pager [bool=False] Send output to pager +```text +List confirmed/unconfirmed, spendable/unspendable balances in tracking wallet + +USAGE: mmgen-tool [OPTS] getbalance [KEYWORD ARGS] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + minconf [int=1] Minimum number of confirmations + quiet [bool=False] Produce quieter output + pager [bool=False] Send output to pager +``` ### `mmgen-tool listaddress` - List the specified MMGen address in the tracking wallet and its balance - - USAGE: mmgen-tool [OPTS] listaddress ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - mmgen_addr [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - wide [bool=False] Display data in wide tabular format - minconf [int=1] Minimum number of confirmations - showcoinaddr [bool=True] Display coin address in addition to MMGen ID - age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') +```text +List the specified MMGen address in the tracking wallet and its balance + +USAGE: mmgen-tool [OPTS] listaddress ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + mmgen_addr [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + wide [bool=False] Display data in wide tabular format + minconf [int=1] Minimum number of confirmations + showcoinaddr [bool=True] Display coin address in addition to MMGen ID + age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') +``` ### `mmgen-tool listaddresses` - List MMGen addresses in the tracking wallet and their balances - - USAGE: mmgen-tool [OPTS] listaddresses [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - pager [bool=False] Send output to pager - reverse [bool=False] Reverse order of unspent outputs - wide [bool=False] Display data in wide tabular format - minconf [int=1] Minimum number of confirmations - sort [str=''] Address sort order (valid choices: 'reverse','mmid','addr','amt') - age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') - interactive [bool=False] Enable interactive operation - mmgen_addrs [str=''] Hyphenated range or comma-separated list of addresses - showcoinaddrs [bool=True] Display coin addresses in addition to MMGen IDs - showempty [bool=True] Show addresses with no balances - showused [int=1] Show used addresses (tristate: 0=no, 1=yes, 2=all) - all_labels [bool=False] Show all addresses with labels +```text +List MMGen addresses in the tracking wallet and their balances + +USAGE: mmgen-tool [OPTS] listaddresses [KEYWORD ARGS] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + pager [bool=False] Send output to pager + reverse [bool=False] Reverse order of unspent outputs + wide [bool=False] Display data in wide tabular format + minconf [int=1] Minimum number of confirmations + sort [str=''] Address sort order (valid choices: 'reverse','mmid','addr','amt') + age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') + interactive [bool=False] Enable interactive operation + mmgen_addrs [str=''] Hyphenated range or comma-separated list of addresses + showcoinaddrs [bool=True] Display coin addresses in addition to MMGen IDs + showempty [bool=True] Show addresses with no balances + showused [int=1] Show used addresses (tristate: 0=no, 1=yes, 2=all) + all_labels [bool=False] Show all addresses with labels +``` ### `mmgen-tool remove_address` - Remove an address from tracking wallet - - USAGE: mmgen-tool [OPTS] remove_address ARG - - Required ARG (type shown in square brackets): - - mmgen_or_coin_addr [str] +```text +Remove an address from tracking wallet + +USAGE: mmgen-tool [OPTS] remove_address ARG + +Required ARG (type shown in square brackets): + + mmgen_or_coin_addr [str] +``` ### `mmgen-tool remove_label` - Remove descriptive label for address in tracking wallet - - USAGE: mmgen-tool [OPTS] remove_label ARG - - Required ARG (type shown in square brackets): - - mmgen_or_coin_addr [str] +```text +Remove descriptive label for address in tracking wallet + +USAGE: mmgen-tool [OPTS] remove_label ARG + +Required ARG (type shown in square brackets): + + mmgen_or_coin_addr [str] +``` ### `mmgen-tool rescan_address` - Rescan an address in the tracking wallet to update its balance - - USAGE: mmgen-tool [OPTS] rescan_address ARG - - Required ARG (type shown in square brackets): - - mmgen_or_coin_addr [str] +```text +Rescan an address in the tracking wallet to update its balance + +USAGE: mmgen-tool [OPTS] rescan_address ARG + +Required ARG (type shown in square brackets): + + mmgen_or_coin_addr [str] +``` ### `mmgen-tool rescan_blockchain` - Rescan the blockchain to update historical transactions in the tracking wallet - - USAGE: mmgen-tool [OPTS] rescan_blockchain [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - start_block [int=None] - stop_block [int=None] - - NOTE: - - The rescanning process typically takes several hours and may be interrupted - using Ctrl-C. An interrupted rescan may be resumed using the ‘start_block’ - parameter. +```text +Rescan the blockchain to update historical transactions in the tracking wallet + +USAGE: mmgen-tool [OPTS] rescan_blockchain [KEYWORD ARGS] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + start_block [int=None] + stop_block [int=None] + +NOTE: + + The rescanning process typically takes several hours and may be interrupted + using Ctrl-C. An interrupted rescan may be resumed using the ‘start_block’ + parameter. +``` ### `mmgen-tool resolve_address` - Resolve an MMGen address in the tracking wallet to a coin address or vice-versa - - USAGE: mmgen-tool [OPTS] resolve_address ARG - - Required ARG (type shown in square brackets): - - mmgen_or_coin_addr [str] +```text +Resolve an MMGen address in the tracking wallet to a coin address or vice-versa + +USAGE: mmgen-tool [OPTS] resolve_address ARG + +Required ARG (type shown in square brackets): + + mmgen_or_coin_addr [str] +``` ### `mmgen-tool twexport` - Export a tracking wallet to JSON format - - USAGE: mmgen-tool [OPTS] twexport [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - include_amts [bool=True] - pretty [bool=False] - prune [bool=False] - warn_used [bool=False] - - NOTES: - - If ‘include_amts’ is true (the default), Ethereum balances will be restored - from the dump upon import. For Bitcoin and forks, amount fields in the dump - are ignored. - - If ‘pretty’ is true, JSON will be dumped in human-readable format to allow - for editing of comment fields. - - If ‘prune’ is true, an interactive menu will be launched allowing the user - to prune unwanted addresses before creating the JSON dump. Pruning has no - effect on the existing tracking wallet. - - If ‘warn_used’ is true, the user will be prompted before pruning used - addresses. +```text +Export a tracking wallet to JSON format + +USAGE: mmgen-tool [OPTS] twexport [KEYWORD ARGS] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + include_amts [bool=True] + pretty [bool=False] + prune [bool=False] + warn_used [bool=False] + +NOTES: + + If ‘include_amts’ is true (the default), Ethereum balances will be restored + from the dump upon import. For Bitcoin and forks, amount fields in the dump + are ignored. + + If ‘pretty’ is true, JSON will be dumped in human-readable format to allow + for editing of comment fields. + + If ‘prune’ is true, an interactive menu will be launched allowing the user + to prune unwanted addresses before creating the JSON dump. Pruning has no + effect on the existing tracking wallet. + + If ‘warn_used’ is true, the user will be prompted before pruning used + addresses. +``` ### `mmgen-tool twimport` - Restore a tracking wallet from a JSON dump created by ‘twexport’ - - USAGE: mmgen-tool [OPTS] twimport ARG [KEYWORD ARGS] - - Required ARG (type shown in square brackets): - - filename [str] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - ignore_checksum [bool=False] - batch [bool=False] - - NOTES: - - If comment fields in the JSON dump have been edited, ‘ignore_checksum’ must - be set to true. - - The restored tracking wallet will have correct balances but no record of - historical transactions. These may be restored by running ‘mmgen-tool - rescan_blockchain’. +```text +Restore a tracking wallet from a JSON dump created by ‘twexport’ + +USAGE: mmgen-tool [OPTS] twimport ARG [KEYWORD ARGS] + +Required ARG (type shown in square brackets): + + filename [str] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + ignore_checksum [bool=False] + batch [bool=False] + +NOTES: + + If comment fields in the JSON dump have been edited, ‘ignore_checksum’ must + be set to true. + + The restored tracking wallet will have correct balances but no record of + historical transactions. These may be restored by running ‘mmgen-tool + rescan_blockchain’. +``` ### `mmgen-tool twview` - View tracking wallet unspent outputs - - USAGE: mmgen-tool [OPTS] twview [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - pager [bool=False] Send output to pager - reverse [bool=False] Reverse order of unspent outputs - wide [bool=False] Display data in wide tabular format - minconf [int=1] Minimum number of confirmations - sort [str='age'] Unspent output sort order (valid choices: 'addr','age','amt','txid','twmmid') - age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') - interactive [bool=False] Enable interactive operation - show_mmid [bool=True] Show MMGen IDs along with coin addresses +```text +View tracking wallet unspent outputs + +USAGE: mmgen-tool [OPTS] twview [KEYWORD ARGS] + +Optional KEYWORD ARGS (type and default value shown in square brackets): + + pager [bool=False] Send output to pager + reverse [bool=False] Reverse order of unspent outputs + wide [bool=False] Display data in wide tabular format + minconf [int=1] Minimum number of confirmations + sort [str='age'] Unspent output sort order (valid choices: 'addr','age','amt','txid','twmmid') + age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') + interactive [bool=False] Enable interactive operation + show_mmid [bool=True] Show MMGen IDs along with coin addresses +``` ### `mmgen-tool txhist` - View transaction history of tracking wallet - - USAGE: mmgen-tool [OPTS] txhist [KEYWORD ARGS] - - Optional KEYWORD ARGS (type and default value shown in square brackets): - - pager [bool=False] Send output to pager - reverse [bool=False] Reverse order of transactions - detail [bool=False] Produce detailed, non-tabular output - sinceblock [int=0] Display transactions starting from this block - sort [str='age'] Transaction sort order (valid choices: 'age','blockheight','amt','total_amt','txid') - age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') - interactive [bool=False] Enable interactive operation +```text +View transaction history of tracking wallet -### ~~~ +USAGE: mmgen-tool [OPTS] txhist [KEYWORD ARGS] - MMGEN v13.3.dev24 December 2022 +Optional KEYWORD ARGS (type and default value shown in square brackets): + + pager [bool=False] Send output to pager + reverse [bool=False] Reverse order of transactions + detail [bool=False] Produce detailed, non-tabular output + sinceblock [int=0] Display transactions starting from this block + sort [str='age'] Transaction sort order (valid choices: 'age','blockheight','amt','total_amt','txid') + age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') + interactive [bool=False] Enable interactive operation +``` + +```text +MMGEN v13.3.dev24 December 2022 MMGEN-TOOL(DETAIL)(1) +``` diff --git a/command-help-tool(usage).md b/command-help-tool(usage).md index 2ee3b41..4a07609 100644 --- a/command-help-tool(usage).md +++ b/command-help-tool(usage).md @@ -1,187 +1,189 @@ - GENERAL USAGE INFORMATION FOR MMGEN-TOOL COMMANDS +```text +GENERAL USAGE INFORMATION FOR MMGEN-TOOL COMMANDS - Arguments with only type specified in square brackets are required + Arguments with only type specified in square brackets are required - Arguments with both type and default value specified in square brackets are - optional and must be specified in the form ‘name=value’ + Arguments with both type and default value specified in square brackets are + optional and must be specified in the form ‘name=value’ - For more detailed usage information for a particular tool command, type - ‘mmgen-tool help ’ + For more detailed usage information for a particular tool command, type + ‘mmgen-tool help ’ - Help/usage commands: + Help/usage commands: - help command_name [str=''] - usage command_name [str=''] + help command_name [str=''] + usage command_name [str=''] - General string conversion and hashing utilities: + General string conversion and hashing utilities: - b32tohex b32_str [str or STDIN] pad [int=0] - b58chktohex b58chk_str [str or STDIN] - b58tobytes b58_str [str or STDIN] pad [int=0] - b58tohex b58_str [str or STDIN] pad [int=0] - b6dtohex b6d_str [str or STDIN] pad [int=0] - bytespec dd_style_byte_specifier [str] - bytestob58 infile [str] pad [int=0] - hash160 hexstr [str or STDIN] - hash256 data [str] file_input [bool=False] hex_input [bool=False] - hexdump infile [str] cols [int=8] line_nums [str='hex'] - hexlify infile [str] - hexreverse hexstr [str or STDIN] - hextob32 hexstr [str or STDIN] pad [int=0] - hextob58 hexstr [str or STDIN] pad [int=0] - hextob58chk hexstr [str or STDIN] - hextob6d hexstr [str or STDIN] pad [int=0] add_spaces [bool=True] - id6 infile [str] - id8 infile [str] - randb58 nbytes [int=32] pad [int=0] - randhex nbytes [int=32] - str2id6 string [str or STDIN] - to_bytespec n [int] dd_style_byte_specifier [str] fmt [str='0.2'] print_sym [bool=True] strip [bool=False] add_space [bool=False] - unhexdump infile [str] - unhexlify hexstr [str or STDIN] + b32tohex b32_str [str or STDIN] pad [int=0] + b58chktohex b58chk_str [str or STDIN] + b58tobytes b58_str [str or STDIN] pad [int=0] + b58tohex b58_str [str or STDIN] pad [int=0] + b6dtohex b6d_str [str or STDIN] pad [int=0] + bytespec dd_style_byte_specifier [str] + bytestob58 infile [str] pad [int=0] + hash160 hexstr [str or STDIN] + hash256 data [str] file_input [bool=False] hex_input [bool=False] + hexdump infile [str] cols [int=8] line_nums [str='hex'] + hexlify infile [str] + hexreverse hexstr [str or STDIN] + hextob32 hexstr [str or STDIN] pad [int=0] + hextob58 hexstr [str or STDIN] pad [int=0] + hextob58chk hexstr [str or STDIN] + hextob6d hexstr [str or STDIN] pad [int=0] add_spaces [bool=True] + id6 infile [str] + id8 infile [str] + randb58 nbytes [int=32] pad [int=0] + randhex nbytes [int=32] + str2id6 string [str or STDIN] + to_bytespec n [int] dd_style_byte_specifier [str] fmt [str='0.2'] print_sym [bool=True] strip [bool=False] add_space [bool=False] + unhexdump infile [str] + unhexlify hexstr [str or STDIN] - Cryptocoin key/address utilities: + Cryptocoin key/address utilities: - May require use of the '--coin', '--type' and/or '--testnet' options + May require use of the '--coin', '--type' and/or '--testnet' options - Examples: - mmgen-tool --coin=ltc --type=bech32 wif2addr - mmgen-tool --coin=zec --type=zcash_z randpair + Examples: + mmgen-tool --coin=ltc --type=bech32 wif2addr + mmgen-tool --coin=zec --type=zcash_z randpair - addr2pubhash addr [str or STDIN] - addr2scriptpubkey addr [str or STDIN] - eth_checksummed_addr addr [str or STDIN] - hex2wif privhex [str or STDIN] - privhex2addr privhex [str or STDIN] - privhex2pubhex privhex [str or STDIN] - pubhash2addr pubhashhex [str or STDIN] - pubhex2addr pubkeyhex [str or STDIN] - pubhex2redeem_script pubkeyhex [str or STDIN] - randpair - randwif - redeem_script2addr redeem_script_hex [str or STDIN] - scriptpubkey2addr hexstr [str or STDIN] - wif2addr wifkey [str or STDIN] - wif2hex wifkey [str or STDIN] - wif2redeem_script wifkey [str or STDIN] - wif2segwit_pair wifkey [str or STDIN] + addr2pubhash addr [str or STDIN] + addr2scriptpubkey addr [str or STDIN] + eth_checksummed_addr addr [str or STDIN] + hex2wif privhex [str or STDIN] + privhex2addr privhex [str or STDIN] + privhex2pubhex privhex [str or STDIN] + pubhash2addr pubhashhex [str or STDIN] + pubhex2addr pubkeyhex [str or STDIN] + pubhex2redeem_script pubkeyhex [str or STDIN] + randpair + randwif + redeem_script2addr redeem_script_hex [str or STDIN] + scriptpubkey2addr hexstr [str or STDIN] + wif2addr wifkey [str or STDIN] + wif2hex wifkey [str or STDIN] + wif2redeem_script wifkey [str or STDIN] + wif2segwit_pair wifkey [str or STDIN] - Seed phrase utilities: + Seed phrase utilities: - Supported seed phrase formats: 'mmgen' (default), 'bip39', 'xmrseed' + Supported seed phrase formats: 'mmgen' (default), 'bip39', 'xmrseed' - IMPORTANT NOTE: MMGen’s default seed phrase format uses the Electrum - wordlist, however seed phrases are computed using a different algorithm - and are NOT Electrum-compatible! + IMPORTANT NOTE: MMGen’s default seed phrase format uses the Electrum + wordlist, however seed phrases are computed using a different algorithm + and are NOT Electrum-compatible! - BIP39 support is fully compatible with the standard, allowing users to - import and export seed entropy from BIP39-compatible wallets. However, - users should be aware that BIP39 support does not imply BIP32 support! - MMGen uses its own key derivation scheme differing from the one described - by the BIP32 protocol. + BIP39 support is fully compatible with the standard, allowing users to + import and export seed entropy from BIP39-compatible wallets. However, + users should be aware that BIP39 support does not imply BIP32 support! + MMGen uses its own key derivation scheme differing from the one described + by the BIP32 protocol. - For Monero (‘xmrseed’) seed phrases, input data is reduced to a spendkey - before conversion so that a canonical seed phrase is produced. This is - required because Monero seeds, unlike ordinary wallet seeds, are tied - to a concrete key/address pair. To manually generate a Monero spendkey, - use the ‘hex2wif’ command. + For Monero (‘xmrseed’) seed phrases, input data is reduced to a spendkey + before conversion so that a canonical seed phrase is produced. This is + required because Monero seeds, unlike ordinary wallet seeds, are tied + to a concrete key/address pair. To manually generate a Monero spendkey, + use the ‘hex2wif’ command. - hex2mn hexstr [str or STDIN] fmt [str='mmgen'] - mn2hex seed_mnemonic [str or STDIN] fmt [str='mmgen'] - mn2hex_interactive fmt [str='mmgen'] mn_len [int=24] print_mn [bool=False] - mn_printlist fmt [str='mmgen'] enum [bool=False] pager [bool=False] - mn_rand128 fmt [str='mmgen'] - mn_rand192 fmt [str='mmgen'] - mn_rand256 fmt [str='mmgen'] - mn_stats fmt [str='mmgen'] + hex2mn hexstr [str or STDIN] fmt [str='mmgen'] + mn2hex seed_mnemonic [str or STDIN] fmt [str='mmgen'] + mn2hex_interactive fmt [str='mmgen'] mn_len [int=24] print_mn [bool=False] + mn_printlist fmt [str='mmgen'] enum [bool=False] pager [bool=False] + mn_rand128 fmt [str='mmgen'] + mn_rand192 fmt [str='mmgen'] + mn_rand256 fmt [str='mmgen'] + mn_stats fmt [str='mmgen'] - Utilities for viewing/checking MMGen address and transaction files: + Utilities for viewing/checking MMGen address and transaction files: - addrfile_chksum mmgen_addrfile [str] - keyaddrfile_chksum mmgen_keyaddrfile [str] - passwdfile_chksum mmgen_passwdfile [str] - txview mmgen_tx_file(s) [str] pager [bool=False] terse [bool=False] sort [str='addr'] filesort [str='mtime'] + addrfile_chksum mmgen_addrfile [str] + keyaddrfile_chksum mmgen_keyaddrfile [str] + passwdfile_chksum mmgen_passwdfile [str] + txview mmgen_tx_file(s) [str] pager [bool=False] terse [bool=False] sort [str='addr'] filesort [str='mtime'] - File encryption and decryption: + File encryption and decryption: - MMGen encryption suite: - * Key: Scrypt (user-configurable hash parameters, 32-byte salt) - * Enc: AES256_CTR, 16-byte rand IV, sha256 hash + 32-byte nonce + data - * The encrypted file is indistinguishable from random data + MMGen encryption suite: + * Key: Scrypt (user-configurable hash parameters, 32-byte salt) + * Enc: AES256_CTR, 16-byte rand IV, sha256 hash + 32-byte nonce + data + * The encrypted file is indistinguishable from random data - decrypt infile [str] outfile [str=''] hash_preset [str=''] - encrypt infile [str] outfile [str=''] hash_preset [str=''] + decrypt infile [str] outfile [str=''] hash_preset [str=''] + encrypt infile [str] outfile [str=''] hash_preset [str=''] - File utilities: + File utilities: - extract_key_from_geth_wallet wallet_file [str] check_addr [bool=True] - find_incog_data filename [str] incog_id [str] keep_searching [bool=False] - rand2file outfile [str] nbytes [str] threads [int=4] silent [bool=False] + extract_key_from_geth_wallet wallet_file [str] check_addr [bool=True] + find_incog_data filename [str] incog_id [str] keep_searching [bool=False] + rand2file outfile [str] nbytes [str] threads [int=4] silent [bool=False] - Key, address or subseed generation from an MMGen wallet: + Key, address or subseed generation from an MMGen wallet: - gen_addr mmgen_addr [str] wallet [str=''] - gen_key mmgen_addr [str] wallet [str=''] - get_subseed subseed_idx [str] wallet [str=''] - get_subseed_by_seed_id seed_id [str] wallet [str=''] last_idx [int=100] - list_shares share_count [int] id_str [str='default'] master_share [int=0] wallet [str=''] - list_subseeds subseed_idx_range [str] wallet [str=''] + gen_addr mmgen_addr [str] wallet [str=''] + gen_key mmgen_addr [str] wallet [str=''] + get_subseed subseed_idx [str] wallet [str=''] + get_subseed_by_seed_id seed_id [str] wallet [str=''] last_idx [int=100] + list_shares share_count [int] id_str [str='default'] master_share [int=0] wallet [str=''] + list_subseeds subseed_idx_range [str] wallet [str=''] - Tracking-wallet commands using the JSON-RPC interface: + Tracking-wallet commands using the JSON-RPC interface: - add_label mmgen_or_coin_addr [str] label [str] - daemon_version - getbalance minconf [int=1] quiet [bool=False] pager [bool=False] - listaddress mmgen_addr [str] wide [bool=False] minconf [int=1] showcoinaddr [bool=True] age_fmt [str='confs'] - listaddresses pager [bool=False] reverse [bool=False] wide [bool=False] minconf [int=1] sort [str=''] age_fmt [str='confs'] interactive [bool=False] mmgen_addrs [str=''] showcoinaddrs [bool=True] showempty [bool=True] showused [int=1] all_labels [bool=False] - remove_address mmgen_or_coin_addr [str] - remove_label mmgen_or_coin_addr [str] - rescan_address mmgen_or_coin_addr [str] - rescan_blockchain start_block [int=None] stop_block [int=None] - resolve_address mmgen_or_coin_addr [str] - twexport include_amts [bool=True] pretty [bool=False] prune [bool=False] warn_used [bool=False] - twimport filename [str] ignore_checksum [bool=False] batch [bool=False] - twview pager [bool=False] reverse [bool=False] wide [bool=False] minconf [int=1] sort [str='age'] age_fmt [str='confs'] interactive [bool=False] show_mmid [bool=True] - txhist pager [bool=False] reverse [bool=False] detail [bool=False] sinceblock [int=0] sort [str='age'] age_fmt [str='confs'] interactive [bool=False] + add_label mmgen_or_coin_addr [str] label [str] + daemon_version + getbalance minconf [int=1] quiet [bool=False] pager [bool=False] + listaddress mmgen_addr [str] wide [bool=False] minconf [int=1] showcoinaddr [bool=True] age_fmt [str='confs'] + listaddresses pager [bool=False] reverse [bool=False] wide [bool=False] minconf [int=1] sort [str=''] age_fmt [str='confs'] interactive [bool=False] mmgen_addrs [str=''] showcoinaddrs [bool=True] showempty [bool=True] showused [int=1] all_labels [bool=False] + remove_address mmgen_or_coin_addr [str] + remove_label mmgen_or_coin_addr [str] + rescan_address mmgen_or_coin_addr [str] + rescan_blockchain start_block [int=None] stop_block [int=None] + resolve_address mmgen_or_coin_addr [str] + twexport include_amts [bool=True] pretty [bool=False] prune [bool=False] warn_used [bool=False] + twimport filename [str] ignore_checksum [bool=False] batch [bool=False] + twview pager [bool=False] reverse [bool=False] wide [bool=False] minconf [int=1] sort [str='age'] age_fmt [str='confs'] interactive [bool=False] show_mmid [bool=True] + txhist pager [bool=False] reverse [bool=False] detail [bool=False] sinceblock [int=0] sort [str='age'] age_fmt [str='confs'] interactive [bool=False] - To force a command to read from STDIN instead of file (for commands taking - a filename as their first argument), substitute "-" for the filename. + To force a command to read from STDIN instead of file (for commands taking + a filename as their first argument), substitute "-" for the filename. - EXAMPLES: +EXAMPLES: - Generate a random LTC Bech32 public/private keypair: - $ mmgen-tool -r0 --coin=ltc --type=bech32 randpair + Generate a random LTC Bech32 public/private keypair: + $ mmgen-tool -r0 --coin=ltc --type=bech32 randpair - Generate a DASH address with compressed public key from the supplied WIF key: - $ mmgen-tool --coin=dash --type=compressed wif2addr XJkVRC3eGKurc9Uzx1wfQoio3yqkmaXVqLMTa6y7s3M3jTBnmxfw + Generate a DASH address with compressed public key from the supplied WIF key: + $ mmgen-tool --coin=dash --type=compressed wif2addr XJkVRC3eGKurc9Uzx1wfQoio3yqkmaXVqLMTa6y7s3M3jTBnmxfw - Generate a well-known burn address: - $ mmgen-tool hextob58chk 000000000000000000000000000000000000000000 + Generate a well-known burn address: + $ mmgen-tool hextob58chk 000000000000000000000000000000000000000000 - Generate a random 12-word seed phrase: - $ mmgen-tool -r0 mn_rand128 fmt=bip39 + Generate a random 12-word seed phrase: + $ mmgen-tool -r0 mn_rand128 fmt=bip39 - Same as above, but get additional entropy from user: - $ mmgen-tool mn_rand128 fmt=bip39 + Same as above, but get additional entropy from user: + $ mmgen-tool mn_rand128 fmt=bip39 - Encode bytes from a file to base 58: - $ mmgen-tool bytestob58 /etc/timezone pad=20 + Encode bytes from a file to base 58: + $ mmgen-tool bytestob58 /etc/timezone pad=20 - Reverse a hex string: - $ mmgen-tool hexreverse "deadbeefcafe" + Reverse a hex string: + $ mmgen-tool hexreverse "deadbeefcafe" - Same as above, but supply input via STDIN: - $ echo "deadbeefcafe" | mmgen-tool hexreverse - + Same as above, but supply input via STDIN: + $ echo "deadbeefcafe" | mmgen-tool hexreverse - - MMGEN v13.3.dev24 December 2022 MMGEN-TOOL(USAGE)(1) + MMGEN v13.3.dev24 December 2022 MMGEN-TOOL(USAGE)(1) +``` diff --git a/command-help-tool.md b/command-help-tool.md index 4bff52d..cced73c 100644 --- a/command-help-tool.md +++ b/command-help-tool.md @@ -1,198 +1,200 @@ - MMGEN-TOOL: Perform various MMGen- and cryptocoin-related operations - USAGE: mmgen-tool [opts] - OPTIONS: - -d, --outdir d Specify an alternate directory 'd' for output - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry - -k, --use-internal-keccak-module Force use of the internal keccak module - -K, --keygen-backend n Use backend 'n' for public key generation. Options - for BTC: 1:libsecp256k1 [default] 2:python-ecdsa - -l, --list List available commands - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -P, --passwd-file f Get passphrase from file 'f'. - -q, --quiet Produce quieter output - -r, --usr-randchars n Get 'n' characters of additional randomness from - user (min=10, max=80) - -t, --type t Specify address type (valid choices: 'legacy', - 'compressed', 'segwit', 'bech32', 'zcash_z') - -v, --verbose Produce more verbose output - -X, --cached-balances Use cached balances (Ethereum only) - -y, --yes Answer 'yes' to prompts, suppress non-essential output +```text + MMGEN-TOOL: Perform various MMGen- and cryptocoin-related operations + USAGE: mmgen-tool [opts] + OPTIONS: + -d, --outdir d Specify an alternate directory 'd' for output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry + -k, --use-internal-keccak-module Force use of the internal keccak module + -K, --keygen-backend n Use backend 'n' for public key generation. Options + for BTC: 1:libsecp256k1 [default] 2:python-ecdsa + -l, --list List available commands + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -P, --passwd-file f Get passphrase from file 'f'. + -q, --quiet Produce quieter output + -r, --usr-randchars n Get 'n' characters of additional randomness from + user (min=10, max=80) + -t, --type t Specify address type (valid choices: 'legacy', + 'compressed', 'segwit', 'bech32', 'zcash_z') + -v, --verbose Produce more verbose output + -X, --cached-balances Use cached balances (Ethereum only) + -y, --yes Answer 'yes' to prompts, suppress non-essential output - COMMANDS + COMMANDS - Help/usage commands: + Help/usage commands: - help - display usage information for a single command or all commands - usage - display usage information for a single command or all commands + help - display usage information for a single command or all commands + usage - display usage information for a single command or all commands - General string conversion and hashing utilities: + General string conversion and hashing utilities: - b32tohex - convert an MMGen-flavor base 32 string to hexadecimal - b58chktohex - convert a base58-check encoded string to hexadecimal - b58tobytes - convert a base 58 string to bytes (warning: outputs binary - data) - b58tohex - convert a base 58 string to hexadecimal - b6dtohex - convert a die roll base6 (base6d) string to hexadecimal - bytespec - convert a byte specifier such as ‘4GB’ into an integer - bytestob58 - convert bytes to base 58 (supply data via STDIN) - hash160 - compute ripemd160(sha256(data)) (convert hex pubkey to hex - addr) - hash256 - compute sha256(sha256(data)) (double sha256) - hexdump - create hexdump of data from file (use '-' for stdin) - hexlify - convert bytes in file to hexadecimal (use '-' for stdin) - hexreverse - reverse bytes of a hexadecimal string - hextob32 - convert a hexadecimal string to an MMGen-flavor base 32 - string - hextob58 - convert a hexadecimal string to base 58 - hextob58chk - convert a hexadecimal string to base58-check encoding - hextob6d - convert a hexadecimal string to die roll base6 (base6d) - id6 - generate 6-character MMGen ID for a file (use '-' for stdin) - id8 - generate 8-character MMGen ID for a file (use '-' for stdin) - randb58 - generate random data (default: 32 bytes) and convert it to - base 58 - randhex - print 'n' bytes (default 32) of random data in hex format - str2id6 - generate 6-character MMGen ID for a string, ignoring spaces - in string - to_bytespec - convert an integer to a byte specifier such as ‘4GB’ - unhexdump - decode hexdump from file (use '-' for stdin) (warning: - outputs binary data) - unhexlify - convert a hexadecimal string to bytes (warning: outputs - binary data) + b32tohex - convert an MMGen-flavor base 32 string to hexadecimal + b58chktohex - convert a base58-check encoded string to hexadecimal + b58tobytes - convert a base 58 string to bytes (warning: outputs binary + data) + b58tohex - convert a base 58 string to hexadecimal + b6dtohex - convert a die roll base6 (base6d) string to hexadecimal + bytespec - convert a byte specifier such as ‘4GB’ into an integer + bytestob58 - convert bytes to base 58 (supply data via STDIN) + hash160 - compute ripemd160(sha256(data)) (convert hex pubkey to hex + addr) + hash256 - compute sha256(sha256(data)) (double sha256) + hexdump - create hexdump of data from file (use '-' for stdin) + hexlify - convert bytes in file to hexadecimal (use '-' for stdin) + hexreverse - reverse bytes of a hexadecimal string + hextob32 - convert a hexadecimal string to an MMGen-flavor base 32 + string + hextob58 - convert a hexadecimal string to base 58 + hextob58chk - convert a hexadecimal string to base58-check encoding + hextob6d - convert a hexadecimal string to die roll base6 (base6d) + id6 - generate 6-character MMGen ID for a file (use '-' for stdin) + id8 - generate 8-character MMGen ID for a file (use '-' for stdin) + randb58 - generate random data (default: 32 bytes) and convert it to + base 58 + randhex - print 'n' bytes (default 32) of random data in hex format + str2id6 - generate 6-character MMGen ID for a string, ignoring spaces + in string + to_bytespec - convert an integer to a byte specifier such as ‘4GB’ + unhexdump - decode hexdump from file (use '-' for stdin) (warning: + outputs binary data) + unhexlify - convert a hexadecimal string to bytes (warning: outputs + binary data) - Cryptocoin key/address utilities: + Cryptocoin key/address utilities: - May require use of the '--coin', '--type' and/or '--testnet' options + May require use of the '--coin', '--type' and/or '--testnet' options - Examples: - mmgen-tool --coin=ltc --type=bech32 wif2addr - mmgen-tool --coin=zec --type=zcash_z randpair + Examples: + mmgen-tool --coin=ltc --type=bech32 wif2addr + mmgen-tool --coin=zec --type=zcash_z randpair - addr2pubhash - convert coin address to public key hash - addr2scriptpubkey - convert coin address to scriptPubKey - eth_checksummed_addr - create a checksummed Ethereum address - hex2wif - convert a private key from hexadecimal to WIF format - privhex2addr - generate a coin address from raw hexadecimal - private key data - privhex2pubhex - generate a hexadecimal public key from raw - hexadecimal private key data - pubhash2addr - convert public key hash to address - pubhex2addr - convert a hexadecimal pubkey to an address - pubhex2redeem_script - convert a hexadecimal pubkey to a Segwit - P2SH-P2WPKH redeem script - randpair - generate a random private key/address pair - randwif - generate a random private key in WIF format - redeem_script2addr - convert a Segwit P2SH-P2WPKH redeem script to an - address - scriptpubkey2addr - convert scriptPubKey to coin address - wif2addr - generate a coin address from a key in WIF format - wif2hex - convert a private key from WIF to hexadecimal format - wif2redeem_script - convert a WIF private key to a Segwit P2SH-P2WPKH - redeem script - wif2segwit_pair - generate a Segwit P2SH-P2WPKH redeem script and - address from a WIF private key + addr2pubhash - convert coin address to public key hash + addr2scriptpubkey - convert coin address to scriptPubKey + eth_checksummed_addr - create a checksummed Ethereum address + hex2wif - convert a private key from hexadecimal to WIF format + privhex2addr - generate a coin address from raw hexadecimal + private key data + privhex2pubhex - generate a hexadecimal public key from raw + hexadecimal private key data + pubhash2addr - convert public key hash to address + pubhex2addr - convert a hexadecimal pubkey to an address + pubhex2redeem_script - convert a hexadecimal pubkey to a Segwit + P2SH-P2WPKH redeem script + randpair - generate a random private key/address pair + randwif - generate a random private key in WIF format + redeem_script2addr - convert a Segwit P2SH-P2WPKH redeem script to an + address + scriptpubkey2addr - convert scriptPubKey to coin address + wif2addr - generate a coin address from a key in WIF format + wif2hex - convert a private key from WIF to hexadecimal format + wif2redeem_script - convert a WIF private key to a Segwit P2SH-P2WPKH + redeem script + wif2segwit_pair - generate a Segwit P2SH-P2WPKH redeem script and + address from a WIF private key - Seed phrase utilities: + Seed phrase utilities: - Supported seed phrase formats: 'mmgen' (default), 'bip39', 'xmrseed' + Supported seed phrase formats: 'mmgen' (default), 'bip39', 'xmrseed' - IMPORTANT NOTE: MMGen’s default seed phrase format uses the Electrum - wordlist, however seed phrases are computed using a different algorithm - and are NOT Electrum-compatible! + IMPORTANT NOTE: MMGen’s default seed phrase format uses the Electrum + wordlist, however seed phrases are computed using a different algorithm + and are NOT Electrum-compatible! - BIP39 support is fully compatible with the standard, allowing users to - import and export seed entropy from BIP39-compatible wallets. However, - users should be aware that BIP39 support does not imply BIP32 support! - MMGen uses its own key derivation scheme differing from the one described - by the BIP32 protocol. + BIP39 support is fully compatible with the standard, allowing users to + import and export seed entropy from BIP39-compatible wallets. However, + users should be aware that BIP39 support does not imply BIP32 support! + MMGen uses its own key derivation scheme differing from the one described + by the BIP32 protocol. - For Monero (‘xmrseed’) seed phrases, input data is reduced to a spendkey - before conversion so that a canonical seed phrase is produced. This is - required because Monero seeds, unlike ordinary wallet seeds, are tied - to a concrete key/address pair. To manually generate a Monero spendkey, - use the ‘hex2wif’ command. + For Monero (‘xmrseed’) seed phrases, input data is reduced to a spendkey + before conversion so that a canonical seed phrase is produced. This is + required because Monero seeds, unlike ordinary wallet seeds, are tied + to a concrete key/address pair. To manually generate a Monero spendkey, + use the ‘hex2wif’ command. - hex2mn - convert a 16, 24 or 32-byte hexadecimal string to a - mnemonic seed phrase - mn2hex - convert a mnemonic seed phrase to a hexadecimal string - mn2hex_interactive - convert an interactively supplied mnemonic seed - phrase to a hexadecimal string - mn_printlist - print a mnemonic wordlist - mn_rand128 - generate a random 128-bit mnemonic seed phrase - mn_rand192 - generate a random 192-bit mnemonic seed phrase - mn_rand256 - generate a random 256-bit mnemonic seed phrase - mn_stats - show stats for a mnemonic wordlist + hex2mn - convert a 16, 24 or 32-byte hexadecimal string to a + mnemonic seed phrase + mn2hex - convert a mnemonic seed phrase to a hexadecimal string + mn2hex_interactive - convert an interactively supplied mnemonic seed + phrase to a hexadecimal string + mn_printlist - print a mnemonic wordlist + mn_rand128 - generate a random 128-bit mnemonic seed phrase + mn_rand192 - generate a random 192-bit mnemonic seed phrase + mn_rand256 - generate a random 256-bit mnemonic seed phrase + mn_stats - show stats for a mnemonic wordlist - Utilities for viewing/checking MMGen address and transaction files: + Utilities for viewing/checking MMGen address and transaction files: - addrfile_chksum - compute checksum for MMGen address file - keyaddrfile_chksum - compute checksum for MMGen key-address file - passwdfile_chksum - compute checksum for MMGen password file - txview - display specified raw or signed MMGen transaction - files in human-readable form + addrfile_chksum - compute checksum for MMGen address file + keyaddrfile_chksum - compute checksum for MMGen key-address file + passwdfile_chksum - compute checksum for MMGen password file + txview - display specified raw or signed MMGen transaction + files in human-readable form - File encryption and decryption: + File encryption and decryption: - MMGen encryption suite: - * Key: Scrypt (user-configurable hash parameters, 32-byte salt) - * Enc: AES256_CTR, 16-byte rand IV, sha256 hash + 32-byte nonce + data - * The encrypted file is indistinguishable from random data + MMGen encryption suite: + * Key: Scrypt (user-configurable hash parameters, 32-byte salt) + * Enc: AES256_CTR, 16-byte rand IV, sha256 hash + 32-byte nonce + data + * The encrypted file is indistinguishable from random data - decrypt - decrypt a file - encrypt - encrypt a file + decrypt - decrypt a file + encrypt - encrypt a file - File utilities: + File utilities: - extract_key_from_geth_wallet - decrypt the encrypted private key in a Geth - keystore wallet, returning the decrypted key - find_incog_data - Use an Incog ID to find hidden incognito - wallet data - rand2file - write ‘nbytes’ bytes of random data to - specified file (dd-style byte specifiers - supported) + extract_key_from_geth_wallet - decrypt the encrypted private key in a Geth + keystore wallet, returning the decrypted key + find_incog_data - Use an Incog ID to find hidden incognito + wallet data + rand2file - write ‘nbytes’ bytes of random data to + specified file (dd-style byte specifiers + supported) - Key, address or subseed generation from an MMGen wallet: + Key, address or subseed generation from an MMGen wallet: - gen_addr - generate a single MMGen address from default or - specified wallet - gen_key - generate a single WIF key for specified MMGen - address from default or specified wallet - get_subseed - get the Seed ID of a single subseed by Subseed - Index for default or specified wallet - get_subseed_by_seed_id - get the Subseed Index of a single subseed by Seed - ID for default or specified wallet - list_shares - list the Seed IDs of the shares resulting from a - split of default or specified wallet - list_subseeds - list a range of subseed Seed IDs for default or - specified wallet + gen_addr - generate a single MMGen address from default or + specified wallet + gen_key - generate a single WIF key for specified MMGen + address from default or specified wallet + get_subseed - get the Seed ID of a single subseed by Subseed + Index for default or specified wallet + get_subseed_by_seed_id - get the Subseed Index of a single subseed by Seed + ID for default or specified wallet + list_shares - list the Seed IDs of the shares resulting from a + split of default or specified wallet + list_subseeds - list a range of subseed Seed IDs for default or + specified wallet - Tracking-wallet commands using the JSON-RPC interface: + Tracking-wallet commands using the JSON-RPC interface: - add_label - add descriptive label for address in tracking wallet - daemon_version - print coin daemon version - getbalance - list confirmed/unconfirmed, spendable/unspendable - balances in tracking wallet - listaddress - list the specified MMGen address in the tracking - wallet and its balance - listaddresses - list MMGen addresses in the tracking wallet and their - balances - remove_address - remove an address from tracking wallet - remove_label - remove descriptive label for address in tracking wallet - rescan_address - rescan an address in the tracking wallet to update its - balance - rescan_blockchain - rescan the blockchain to update historical - transactions in the tracking wallet - resolve_address - resolve an MMGen address in the tracking wallet to a - coin address or vice-versa - twexport - export a tracking wallet to JSON format - twimport - restore a tracking wallet from a JSON dump created by - ‘twexport’ - twview - view tracking wallet unspent outputs - txhist - view transaction history of tracking wallet + add_label - add descriptive label for address in tracking wallet + daemon_version - print coin daemon version + getbalance - list confirmed/unconfirmed, spendable/unspendable + balances in tracking wallet + listaddress - list the specified MMGen address in the tracking + wallet and its balance + listaddresses - list MMGen addresses in the tracking wallet and their + balances + remove_address - remove an address from tracking wallet + remove_label - remove descriptive label for address in tracking wallet + rescan_address - rescan an address in the tracking wallet to update its + balance + rescan_blockchain - rescan the blockchain to update historical + transactions in the tracking wallet + resolve_address - resolve an MMGen address in the tracking wallet to a + coin address or vice-versa + twexport - export a tracking wallet to JSON format + twimport - restore a tracking wallet from a JSON dump created by + ‘twexport’ + twview - view tracking wallet unspent outputs + txhist - view transaction history of tracking wallet - Type ‘mmgen-tool help ’ for help on a particular command + Type ‘mmgen-tool help ’ for help on a particular command - MMGEN v13.3.dev23 November 2022 MMGEN-TOOL(1) + MMGEN v13.3.dev23 November 2022 MMGEN-TOOL(1) +``` diff --git a/command-help-txbump.md b/command-help-txbump.md index 4702fff..64bed0f 100644 --- a/command-help-txbump.md +++ b/command-help-txbump.md @@ -1,89 +1,91 @@ - MMGEN-TXBUMP: Increase the fee on a replaceable (RBF) MMGen transaction, - creating a new transaction, and optionally sign and send the - new transaction - USAGE: mmgen-txbump [opts] [seed source] ... - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for - brainwallet input - -c, --comment-file f Source the transaction's comment from file 'f' - -d, --outdir d Specify an alternate directory 'd' for output - -e, --echo-passphrase Print passphrase to screen when typing it - -f, --fee f Transaction fee, as a decimal BTC amount or as - satoshis per byte (an integer followed by 's'). - See FEE SPECIFICATION below. - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -k, --keys-from-file f Provide additional keys for non-MMGen addresses - -K, --keygen-backend n Use backend 'n' for public key generation. Options - for BTC: 1:libsecp256k1 [default] 2:python-ecdsa - -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- - address file (output of 'mmgen-keygen'). Permits - online signing without an MMGen seed source. The - key-address file is also used to verify MMGen-to-BTC - mappings, so the user should record its checksum. - -o, --output-to-reduce o Deduct the fee from output 'o' (an integer, or 'c' - for the transaction's change output, if present) - -O, --old-incog-fmt Specify old-format incognito input - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -P, --passwd-file f Get MMGen wallet passphrase from file 'f' - -q, --quiet Suppress warnings; overwrite files without prompting - -s, --send Sign and send the transaction (the default if seed - data is provided) - -v, --verbose Produce more verbose output - -y, --yes Answer 'yes' to prompts, suppress non-essential output - -z, --show-hash-presets Show information on available hash presets +```text + MMGEN-TXBUMP: Increase the fee on a replaceable (RBF) MMGen transaction, + creating a new transaction, and optionally sign and send the + new transaction + USAGE: mmgen-txbump [opts] [seed source] ... + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for + brainwallet input + -c, --comment-file f Source the transaction's comment from file 'f' + -d, --outdir d Specify an alternate directory 'd' for output + -e, --echo-passphrase Print passphrase to screen when typing it + -f, --fee f Transaction fee, as a decimal BTC amount or as + satoshis per byte (an integer followed by 's'). + See FEE SPECIFICATION below. + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -k, --keys-from-file f Provide additional keys for non-MMGen addresses + -K, --keygen-backend n Use backend 'n' for public key generation. Options + for BTC: 1:libsecp256k1 [default] 2:python-ecdsa + -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- + address file (output of 'mmgen-keygen'). Permits + online signing without an MMGen seed source. The + key-address file is also used to verify MMGen-to-BTC + mappings, so the user should record its checksum. + -o, --output-to-reduce o Deduct the fee from output 'o' (an integer, or 'c' + for the transaction's change output, if present) + -O, --old-incog-fmt Specify old-format incognito input + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -P, --passwd-file f Get MMGen wallet passphrase from file 'f' + -q, --quiet Suppress warnings; overwrite files without prompting + -s, --send Sign and send the transaction (the default if seed + data is provided) + -v, --verbose Produce more verbose output + -y, --yes Answer 'yes' to prompts, suppress non-essential output + -z, --show-hash-presets Show information on available hash presets - FEE SPECIFICATION + FEE SPECIFICATION - Transaction fees, both on the command line and at the interactive prompt, may - be specified as either absolute BTC amounts, using a plain decimal number, or - as satoshis per byte, using an integer followed by 's', for satoshi. + Transaction fees, both on the command line and at the interactive prompt, may + be specified as either absolute BTC amounts, using a plain decimal number, or + as satoshis per byte, using an integer followed by 's', for satoshi. - Transactions may contain both MMGen or non-MMGen input addresses. + Transactions may contain both MMGen or non-MMGen input addresses. - To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used - as the key source ('--keys-from-file' option). + To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used + as the key source ('--keys-from-file' option). - To sign MMGen inputs, key data is generated from a seed as with the - mmgen-addrgen and mmgen-keygen commands. Alternatively, a key-address file - may be used (--mmgen-keys-from-file option). + To sign MMGen inputs, key data is generated from a seed as with the + mmgen-addrgen and mmgen-keygen commands. Alternatively, a key-address file + may be used (--mmgen-keys-from-file option). - Multiple wallets or other seed files can be listed on the command line in - any order. If the seeds required to sign the transaction's inputs are not - found in these files (or in the default wallet), the user will be prompted - for seed data interactively. + Multiple wallets or other seed files can be listed on the command line in + any order. If the seeds required to sign the transaction's inputs are not + found in these files (or in the default wallet), the user will be prompted + for seed data interactively. - To prevent an attacker from crafting transactions with bogus MMGen-to-Bitcoin - address mappings, all outputs to MMGen addresses are verified with a seed - source. Therefore, seed files or a key-address file for all MMGen outputs - must also be supplied on the command line if the data can't be found in the - default wallet. + To prevent an attacker from crafting transactions with bogus MMGen-to-Bitcoin + address mappings, all outputs to MMGen addresses are verified with a seed + source. Therefore, seed files or a key-address file for all MMGen outputs + must also be supplied on the command line if the data can't be found in the + default wallet. - Seed source files must have the canonical extensions listed in the 'FileExt' - column below: + Seed source files must have the canonical extensions listed in the 'FileExt' + column below: - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.3.dev23 November 2022 MMGEN-TXBUMP(1) + MMGEN v13.3.dev23 November 2022 MMGEN-TXBUMP(1) +``` diff --git a/command-help-txcreate.md b/command-help-txcreate.md index 90443bf..9b3c27b 100644 --- a/command-help-txcreate.md +++ b/command-help-txcreate.md @@ -1,99 +1,101 @@ - MMGEN-TXCREATE: Create a transaction with outputs to specified coin or MMGen addresses - USAGE: mmgen-txcreate [opts] [ ...] [addr file ...] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -a, --fee-adjust f Adjust transaction fee by factor 'f' (see below) - -B, --no-blank Don't blank screen before displaying unspent outputs - -c, --comment-file f Source the transaction's comment from file 'f' - -C, --fee-estimate-confs c Desired number of confirmations for fee estimation - (default: 3) - -d, --outdir d Specify an alternate directory 'd' for output - -D, --contract-data D Path to hex-encoded contract data (ETH only) - -E, --fee-estimate-mode M Specify the network fee estimate mode. Choices: - 'conservative','economical'. Default: 'conservative' - -f, --fee f Transaction fee, as a decimal BTC amount or as - satoshis per byte (an integer followed by 's'). - See FEE SPECIFICATION below. If omitted, fee will be - calculated using network fee estimation. - -g, --gas g Specify start gas amount in Wei (ETH only) - -i, --info Display unspent outputs and exit - -I, --inputs i Specify transaction inputs (comma-separated list of - MMGen IDs or coin addresses). Note that ALL unspent - outputs associated with each address will be included. - -L, --locktime t Lock time (block height or unix seconds) (default: 0) - -m, --minconf n Minimum number of confirmations required to spend - outputs (default: 1) - -q, --quiet Suppress warnings; overwrite files without prompting - -r, --rbf Make transaction BIP 125 replaceable (replace-by-fee) - -v, --verbose Produce more verbose output - -V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f' - -y, --yes Answer 'yes' to prompts, suppress non-essential output - -X, --cached-balances Use cached balances (Ethereum only) +```text + MMGEN-TXCREATE: Create a transaction with outputs to specified coin or MMGen addresses + USAGE: mmgen-txcreate [opts] [ ...] [addr file ...] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -a, --fee-adjust f Adjust transaction fee by factor 'f' (see below) + -B, --no-blank Don't blank screen before displaying unspent outputs + -c, --comment-file f Source the transaction's comment from file 'f' + -C, --fee-estimate-confs c Desired number of confirmations for fee estimation + (default: 3) + -d, --outdir d Specify an alternate directory 'd' for output + -D, --contract-data D Path to hex-encoded contract data (ETH only) + -E, --fee-estimate-mode M Specify the network fee estimate mode. Choices: + 'conservative','economical'. Default: 'conservative' + -f, --fee f Transaction fee, as a decimal BTC amount or as + satoshis per byte (an integer followed by 's'). + See FEE SPECIFICATION below. If omitted, fee will be + calculated using network fee estimation. + -g, --gas g Specify start gas amount in Wei (ETH only) + -i, --info Display unspent outputs and exit + -I, --inputs i Specify transaction inputs (comma-separated list of + MMGen IDs or coin addresses). Note that ALL unspent + outputs associated with each address will be included. + -L, --locktime t Lock time (block height or unix seconds) (default: 0) + -m, --minconf n Minimum number of confirmations required to spend + outputs (default: 1) + -q, --quiet Suppress warnings; overwrite files without prompting + -r, --rbf Make transaction BIP 125 replaceable (replace-by-fee) + -v, --verbose Produce more verbose output + -V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f' + -y, --yes Answer 'yes' to prompts, suppress non-essential output + -X, --cached-balances Use cached balances (Ethereum only) - The transaction’s outputs are listed on the command line, while its inputs - are chosen from a list of the wallet’s unspent outputs via an interactive - menu. Alternatively, inputs may be specified using the --inputs option. + The transaction’s outputs are listed on the command line, while its inputs + are chosen from a list of the wallet’s unspent outputs via an interactive + menu. Alternatively, inputs may be specified using the --inputs option. - All addresses on the command line can be either Bitcoin addresses or MMGen - IDs in the form :
:. + All addresses on the command line can be either Bitcoin addresses or MMGen + IDs in the form :
:. - Outputs are specified in the form
,, with the change output - specified by address only. Alternatively, the change output may be an - addrlist ID in the form :
, in which case the - first unused address in the tracking wallet matching the requested ID will - be automatically selected as the change output. + Outputs are specified in the form
,, with the change output + specified by address only. Alternatively, the change output may be an + addrlist ID in the form :
, in which case the + first unused address in the tracking wallet matching the requested ID will + be automatically selected as the change output. - If the transaction fee is not specified on the command line (see FEE - SPECIFICATION below), it will be calculated dynamically using network fee - estimation for the default (or user-specified) number of confirmations. - If network fee estimation fails, the user will be prompted for a fee. + If the transaction fee is not specified on the command line (see FEE + SPECIFICATION below), it will be calculated dynamically using network fee + estimation for the default (or user-specified) number of confirmations. + If network fee estimation fails, the user will be prompted for a fee. - Network-estimated fees will be multiplied by the value of --fee-adjust, if - specified. + Network-estimated fees will be multiplied by the value of --fee-adjust, if + specified. - To send the value of all inputs (minus TX fee) to a single output, specify - a single address with no amount on the command line. Alternatively, an - addrlist ID may be specified, and the address will be chosen automatically - as described above for the change output. + To send the value of all inputs (minus TX fee) to a single output, specify + a single address with no amount on the command line. Alternatively, an + addrlist ID may be specified, and the address will be chosen automatically + as described above for the change output. - FEE SPECIFICATION + FEE SPECIFICATION - Transaction fees, both on the command line and at the interactive prompt, may - be specified as either absolute BTC amounts, using a plain decimal number, or - as satoshis per byte, using an integer followed by 's', for satoshi. + Transaction fees, both on the command line and at the interactive prompt, may + be specified as either absolute BTC amounts, using a plain decimal number, or + as satoshis per byte, using an integer followed by 's', for satoshi. - EXAMPLES: + EXAMPLES: - Send 0.123 BTC to an external Bitcoin address, returning the change to a - specific MMGen address in the tracking wallet: + Send 0.123 BTC to an external Bitcoin address, returning the change to a + specific MMGen address in the tracking wallet: - $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S:7 + $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S:7 - Same as above, but select the change address automatically: + Same as above, but select the change address automatically: - $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S + $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S - Same as above, but select the change address automatically by address type: + Same as above, but select the change address automatically by address type: - $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S + $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S - Same as above, but reduce verbosity and specify fee of 20 satoshis - per byte: + Same as above, but reduce verbosity and specify fee of 20 satoshis + per byte: - $ mmgen-txcreate -q -f 20s 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S + $ mmgen-txcreate -q -f 20s 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S - Send entire balance of selected inputs minus fee to an external Bitcoin - address: + Send entire balance of selected inputs minus fee to an external Bitcoin + address: - $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB + $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB - Send entire balance of selected inputs minus fee to first unused wallet - address of specified type: + Send entire balance of selected inputs minus fee to first unused wallet + address of specified type: - $ mmgen-txcreate S + $ mmgen-txcreate S - MMGEN v13.3.dev23 November 2022 MMGEN-TXCREATE(1) + MMGEN v13.3.dev23 November 2022 MMGEN-TXCREATE(1) +``` diff --git a/command-help-txdo.md b/command-help-txdo.md index 809b850..411c1b2 100644 --- a/command-help-txdo.md +++ b/command-help-txdo.md @@ -1,165 +1,167 @@ - MMGEN-TXDO: Create, sign and send an MMGen transaction - USAGE: mmgen-txdo [opts] [ ...] [addr file ...] [seed source ...] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -a, --fee-adjust f Adjust transaction fee by factor 'f' (see below) - -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for - brainwallet input - -B, --no-blank Don't blank screen before displaying unspent outputs - -c, --comment-file f Source the transaction's comment from file 'f' - -C, --fee-estimate-confs c Desired number of confirmations for fee estimation - (default: 3) - -d, --outdir d Specify an alternate directory 'd' for output - -D, --contract-data D Path to hex-encoded contract data (ETH only) - -e, --echo-passphrase Print passphrase to screen when typing it - -E, --fee-estimate-mode M Specify the network fee estimate mode. Choices: - 'conservative','economical'. Default: 'conservative' - -f, --fee f Transaction fee, as a decimal BTC amount or as - satoshis per byte (an integer followed by 's'). - See FEE SPECIFICATION below. If omitted, fee will be - calculated using network fee estimation. - -g, --gas g Specify start gas amount in Wei (ETH only) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -I, --inputs i Specify transaction inputs (comma-separated list of - MMGen IDs or coin addresses). Note that ALL unspent - outputs associated with each address will be included. - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -k, --keys-from-file f Provide additional keys for non-MMGen addresses - -K, --keygen-backend n Use backend 'n' for public key generation. Options - for BTC: 1:libsecp256k1 [default] 2:python-ecdsa - -L, --locktime t Lock time (block height or unix seconds) (default: 0) - -m, --minconf n Minimum number of confirmations required to spend - outputs (default: 1) - -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- - address file (output of 'mmgen-keygen'). Permits - online signing without an MMGen seed source. The - key-address file is also used to verify MMGen-to-BTC - mappings, so the user should record its checksum. - -O, --old-incog-fmt Specify old-format incognito input - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -P, --passwd-file f Get MMGen wallet passphrase from file 'f' - -r, --rbf Make transaction BIP 125 (replace-by-fee) replaceable - -q, --quiet Suppress warnings; overwrite files without prompting - -u, --subseeds n The number of subseed pairs to scan for (default: 100, - maximum: 1000000). Only the default or first supplied - wallet is scanned for subseeds. - -v, --verbose Produce more verbose output - -V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f' - -X, --cached-balances Use cached balances (Ethereum only) - -y, --yes Answer 'yes' to prompts, suppress non-essential output - -z, --show-hash-presets Show information on available hash presets +```text + MMGEN-TXDO: Create, sign and send an MMGen transaction + USAGE: mmgen-txdo [opts] [ ...] [addr file ...] [seed source ...] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -a, --fee-adjust f Adjust transaction fee by factor 'f' (see below) + -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for + brainwallet input + -B, --no-blank Don't blank screen before displaying unspent outputs + -c, --comment-file f Source the transaction's comment from file 'f' + -C, --fee-estimate-confs c Desired number of confirmations for fee estimation + (default: 3) + -d, --outdir d Specify an alternate directory 'd' for output + -D, --contract-data D Path to hex-encoded contract data (ETH only) + -e, --echo-passphrase Print passphrase to screen when typing it + -E, --fee-estimate-mode M Specify the network fee estimate mode. Choices: + 'conservative','economical'. Default: 'conservative' + -f, --fee f Transaction fee, as a decimal BTC amount or as + satoshis per byte (an integer followed by 's'). + See FEE SPECIFICATION below. If omitted, fee will be + calculated using network fee estimation. + -g, --gas g Specify start gas amount in Wei (ETH only) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -I, --inputs i Specify transaction inputs (comma-separated list of + MMGen IDs or coin addresses). Note that ALL unspent + outputs associated with each address will be included. + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -k, --keys-from-file f Provide additional keys for non-MMGen addresses + -K, --keygen-backend n Use backend 'n' for public key generation. Options + for BTC: 1:libsecp256k1 [default] 2:python-ecdsa + -L, --locktime t Lock time (block height or unix seconds) (default: 0) + -m, --minconf n Minimum number of confirmations required to spend + outputs (default: 1) + -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- + address file (output of 'mmgen-keygen'). Permits + online signing without an MMGen seed source. The + key-address file is also used to verify MMGen-to-BTC + mappings, so the user should record its checksum. + -O, --old-incog-fmt Specify old-format incognito input + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -P, --passwd-file f Get MMGen wallet passphrase from file 'f' + -r, --rbf Make transaction BIP 125 (replace-by-fee) replaceable + -q, --quiet Suppress warnings; overwrite files without prompting + -u, --subseeds n The number of subseed pairs to scan for (default: 100, + maximum: 1000000). Only the default or first supplied + wallet is scanned for subseeds. + -v, --verbose Produce more verbose output + -V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f' + -X, --cached-balances Use cached balances (Ethereum only) + -y, --yes Answer 'yes' to prompts, suppress non-essential output + -z, --show-hash-presets Show information on available hash presets - The transaction’s outputs are listed on the command line, while its inputs - are chosen from a list of the wallet’s unspent outputs via an interactive - menu. Alternatively, inputs may be specified using the --inputs option. + The transaction’s outputs are listed on the command line, while its inputs + are chosen from a list of the wallet’s unspent outputs via an interactive + menu. Alternatively, inputs may be specified using the --inputs option. - All addresses on the command line can be either Bitcoin addresses or MMGen - IDs in the form :
:. + All addresses on the command line can be either Bitcoin addresses or MMGen + IDs in the form :
:. - Outputs are specified in the form
,, with the change output - specified by address only. Alternatively, the change output may be an - addrlist ID in the form :
, in which case the - first unused address in the tracking wallet matching the requested ID will - be automatically selected as the change output. + Outputs are specified in the form
,, with the change output + specified by address only. Alternatively, the change output may be an + addrlist ID in the form :
, in which case the + first unused address in the tracking wallet matching the requested ID will + be automatically selected as the change output. - If the transaction fee is not specified on the command line (see FEE - SPECIFICATION below), it will be calculated dynamically using network fee - estimation for the default (or user-specified) number of confirmations. - If network fee estimation fails, the user will be prompted for a fee. + If the transaction fee is not specified on the command line (see FEE + SPECIFICATION below), it will be calculated dynamically using network fee + estimation for the default (or user-specified) number of confirmations. + If network fee estimation fails, the user will be prompted for a fee. - Network-estimated fees will be multiplied by the value of --fee-adjust, if - specified. + Network-estimated fees will be multiplied by the value of --fee-adjust, if + specified. - To send the value of all inputs (minus TX fee) to a single output, specify - a single address with no amount on the command line. Alternatively, an - addrlist ID may be specified, and the address will be chosen automatically - as described above for the change output. + To send the value of all inputs (minus TX fee) to a single output, specify + a single address with no amount on the command line. Alternatively, an + addrlist ID may be specified, and the address will be chosen automatically + as described above for the change output. - FEE SPECIFICATION + FEE SPECIFICATION - Transaction fees, both on the command line and at the interactive prompt, may - be specified as either absolute BTC amounts, using a plain decimal number, or - as satoshis per byte, using an integer followed by 's', for satoshi. + Transaction fees, both on the command line and at the interactive prompt, may + be specified as either absolute BTC amounts, using a plain decimal number, or + as satoshis per byte, using an integer followed by 's', for satoshi. - SIGNING NOTES + SIGNING NOTES - Transactions may contain both MMGen or non-MMGen input addresses. + Transactions may contain both MMGen or non-MMGen input addresses. - To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used - as the key source ('--keys-from-file' option). + To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used + as the key source ('--keys-from-file' option). - To sign MMGen inputs, key data is generated from a seed as with the - mmgen-addrgen and mmgen-keygen commands. Alternatively, a key-address file - may be used (--mmgen-keys-from-file option). + To sign MMGen inputs, key data is generated from a seed as with the + mmgen-addrgen and mmgen-keygen commands. Alternatively, a key-address file + may be used (--mmgen-keys-from-file option). - Multiple wallets or other seed files can be listed on the command line in - any order. If the seeds required to sign the transaction's inputs are not - found in these files (or in the default wallet), the user will be prompted - for seed data interactively. + Multiple wallets or other seed files can be listed on the command line in + any order. If the seeds required to sign the transaction's inputs are not + found in these files (or in the default wallet), the user will be prompted + for seed data interactively. - To prevent an attacker from crafting transactions with bogus MMGen-to-Bitcoin - address mappings, all outputs to MMGen addresses are verified with a seed - source. Therefore, seed files or a key-address file for all MMGen outputs - must also be supplied on the command line if the data can't be found in the - default wallet. + To prevent an attacker from crafting transactions with bogus MMGen-to-Bitcoin + address mappings, all outputs to MMGen addresses are verified with a seed + source. Therefore, seed files or a key-address file for all MMGen outputs + must also be supplied on the command line if the data can't be found in the + default wallet. - Seed source files must have the canonical extensions listed in the 'FileExt' - column below: + Seed source files must have the canonical extensions listed in the 'FileExt' + column below: - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - EXAMPLES: + EXAMPLES: - Send 0.123 BTC to an external Bitcoin address, returning the change to a - specific MMGen address in the tracking wallet: + Send 0.123 BTC to an external Bitcoin address, returning the change to a + specific MMGen address in the tracking wallet: - $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S:7 + $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S:7 - Same as above, but select the change address automatically: + Same as above, but select the change address automatically: - $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S + $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S - Same as above, but select the change address automatically by address type: + Same as above, but select the change address automatically by address type: - $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S + $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S - Same as above, but reduce verbosity and specify fee of 20 satoshis - per byte: + Same as above, but reduce verbosity and specify fee of 20 satoshis + per byte: - $ mmgen-txdo -q -f 20s 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S + $ mmgen-txdo -q -f 20s 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S - Send entire balance of selected inputs minus fee to an external Bitcoin - address: + Send entire balance of selected inputs minus fee to an external Bitcoin + address: - $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB + $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB - Send entire balance of selected inputs minus fee to first unused wallet - address of specified type: + Send entire balance of selected inputs minus fee to first unused wallet + address of specified type: - $ mmgen-txdo S + $ mmgen-txdo S - MMGEN v13.3.dev23 November 2022 MMGEN-TXDO(1) + MMGEN v13.3.dev23 November 2022 MMGEN-TXDO(1) +``` diff --git a/command-help-txsend.md b/command-help-txsend.md index bc318fc..2fd6044 100644 --- a/command-help-txsend.md +++ b/command-help-txsend.md @@ -1,11 +1,13 @@ - MMGEN-TXSEND: Send a signed MMGen cryptocoin transaction - USAGE: mmgen-txsend [opts] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Specify an alternate directory 'd' for output - -q, --quiet Suppress warnings; overwrite files without prompting - -s, --status Get status of a sent transaction - -y, --yes Answer 'yes' to prompts, suppress non-essential output +```text + MMGEN-TXSEND: Send a signed MMGen cryptocoin transaction + USAGE: mmgen-txsend [opts] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Specify an alternate directory 'd' for output + -q, --quiet Suppress warnings; overwrite files without prompting + -s, --status Get status of a sent transaction + -y, --yes Answer 'yes' to prompts, suppress non-essential output - MMGEN v13.2.0 August 2022 MMGEN-TXSEND(1) + MMGEN v13.2.0 August 2022 MMGEN-TXSEND(1) +``` diff --git a/command-help-txsign.md b/command-help-txsign.md index 73508ca..8e8084e 100644 --- a/command-help-txsign.md +++ b/command-help-txsign.md @@ -1,81 +1,83 @@ - MMGEN-TXSIGN: Sign cryptocoin transactions generated by mmgen-txcreate - USAGE: mmgen-txsign [opts] ... [seed source]... - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for - brainwallet input - -d, --outdir d Specify an alternate directory 'd' for output - -D, --tx-id Display transaction ID and exit - -e, --echo-passphrase Print passphrase to screen when typing it - -E, --use-internal-keccak-module Force use of the internal keccak module - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -k, --keys-from-file f Provide additional keys for non-MMGen addresses - -K, --keygen-backend n Use backend 'n' for public key generation. Options - for BTC: 1:libsecp256k1 [default] 2:python-ecdsa - -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- - address file (output of 'mmgen-keygen'). Permits - online signing without an MMGen seed source. The - key-address file is also used to verify MMGen-to-BTC - mappings, so the user should record its checksum. - -P, --passwd-file f Get MMGen wallet passphrase from file 'f' - -q, --quiet Suppress warnings; overwrite files without prompting - -I, --info Display information about the transaction and exit - -t, --terse-info Like '--info', but produce more concise output - -u, --subseeds n The number of subseed pairs to scan for (default: 100, - maximum: 1000000). Only the default or first supplied - wallet is scanned for subseeds. - -v, --verbose Produce more verbose output - -V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f' - -y, --yes Answer 'yes' to prompts, suppress non-essential output +```text + MMGEN-TXSIGN: Sign cryptocoin transactions generated by mmgen-txcreate + USAGE: mmgen-txsign [opts] ... [seed source]... + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for + brainwallet input + -d, --outdir d Specify an alternate directory 'd' for output + -D, --tx-id Display transaction ID and exit + -e, --echo-passphrase Print passphrase to screen when typing it + -E, --use-internal-keccak-module Force use of the internal keccak module + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -k, --keys-from-file f Provide additional keys for non-MMGen addresses + -K, --keygen-backend n Use backend 'n' for public key generation. Options + for BTC: 1:libsecp256k1 [default] 2:python-ecdsa + -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- + address file (output of 'mmgen-keygen'). Permits + online signing without an MMGen seed source. The + key-address file is also used to verify MMGen-to-BTC + mappings, so the user should record its checksum. + -P, --passwd-file f Get MMGen wallet passphrase from file 'f' + -q, --quiet Suppress warnings; overwrite files without prompting + -I, --info Display information about the transaction and exit + -t, --terse-info Like '--info', but produce more concise output + -u, --subseeds n The number of subseed pairs to scan for (default: 100, + maximum: 1000000). Only the default or first supplied + wallet is scanned for subseeds. + -v, --verbose Produce more verbose output + -V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f' + -y, --yes Answer 'yes' to prompts, suppress non-essential output - Transactions may contain both MMGen or non-MMGen input addresses. + Transactions may contain both MMGen or non-MMGen input addresses. - To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used - as the key source ('--keys-from-file' option). + To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used + as the key source ('--keys-from-file' option). - To sign MMGen inputs, key data is generated from a seed as with the - mmgen-addrgen and mmgen-keygen commands. Alternatively, a key-address file - may be used (--mmgen-keys-from-file option). + To sign MMGen inputs, key data is generated from a seed as with the + mmgen-addrgen and mmgen-keygen commands. Alternatively, a key-address file + may be used (--mmgen-keys-from-file option). - Multiple wallets or other seed files can be listed on the command line in - any order. If the seeds required to sign the transaction's inputs are not - found in these files (or in the default wallet), the user will be prompted - for seed data interactively. + Multiple wallets or other seed files can be listed on the command line in + any order. If the seeds required to sign the transaction's inputs are not + found in these files (or in the default wallet), the user will be prompted + for seed data interactively. - To prevent an attacker from crafting transactions with bogus MMGen-to-Bitcoin - address mappings, all outputs to MMGen addresses are verified with a seed - source. Therefore, seed files or a key-address file for all MMGen outputs - must also be supplied on the command line if the data can't be found in the - default wallet. + To prevent an attacker from crafting transactions with bogus MMGen-to-Bitcoin + address mappings, all outputs to MMGen addresses are verified with a seed + source. Therefore, seed files or a key-address file for all MMGen outputs + must also be supplied on the command line if the data can't be found in the + default wallet. - Seed source files must have the canonical extensions listed in the 'FileExt' - column below: + Seed source files must have the canonical extensions listed in the 'FileExt' + column below: - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-TXSIGN(1) + MMGEN v13.2.0 August 2022 MMGEN-TXSIGN(1) +``` diff --git a/command-help-walletchk.md b/command-help-walletchk.md index 31116f8..63e89d9 100644 --- a/command-help-walletchk.md +++ b/command-help-walletchk.md @@ -1,52 +1,54 @@ - MMGEN-WALLETCHK: Check validity of the default or specified MMGen wallet - USAGE: mmgen-walletchk [opts] [infile] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -e, --echo-passphrase Echo passphrases and other user input to screen - -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -v, --verbose Produce more verbose output +```text + MMGEN-WALLETCHK: Check validity of the default or specified MMGen wallet + USAGE: mmgen-walletchk [opts] [infile] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -e, --echo-passphrase Echo passphrases and other user input to screen + -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -v, --verbose Produce more verbose output - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - BRAINWALLET NOTE: + BRAINWALLET NOTE: - To thwart dictionary attacks, it's recommended to use a strong hash preset - with brainwallets. For a brainwallet passphrase to generate the correct - seed, the same seed length and hash preset parameters must always be used. + To thwart dictionary attacks, it's recommended to use a strong hash preset + with brainwallets. For a brainwallet passphrase to generate the correct + seed, the same seed length and hash preset parameters must always be used. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-WALLETCHK(1) + MMGEN v13.2.0 August 2022 MMGEN-WALLETCHK(1) +``` diff --git a/command-help-walletconv.md b/command-help-walletconv.md index 390d83f..a8790eb 100644 --- a/command-help-walletconv.md +++ b/command-help-walletconv.md @@ -1,62 +1,64 @@ - MMGEN-WALLETCONV: Convert the default or specified MMGen wallet from one format to another - USAGE: mmgen-walletconv [opts] [infile] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -i, --in-fmt f Convert from wallet format 'f' (see FMT CODES below) - -o, --out-fmt f Convert to wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -J, --hidden-incog-output-params f,o Write hidden incognito data to file - 'f' at offset 'o' (comma-separated). File 'f' will be - created if necessary and filled with random data. - -O, --old-incog-fmt Specify old-format incognito input - -k, --keep-passphrase Reuse passphrase of input wallet for output wallet - -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -L, --label l Specify a label 'l' for output wallet - -m, --keep-label Reuse label of input wallet for output wallet - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output +```text + MMGEN-WALLETCONV: Convert the default or specified MMGen wallet from one format to another + USAGE: mmgen-walletconv [opts] [infile] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -i, --in-fmt f Convert from wallet format 'f' (see FMT CODES below) + -o, --out-fmt f Convert to wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -J, --hidden-incog-output-params f,o Write hidden incognito data to file + 'f' at offset 'o' (comma-separated). File 'f' will be + created if necessary and filled with random data. + -O, --old-incog-fmt Specify old-format incognito input + -k, --keep-passphrase Reuse passphrase of input wallet for output wallet + -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -L, --label l Specify a label 'l' for output wallet + -m, --keep-label Reuse label of input wallet for output wallet + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - BRAINWALLET NOTE: + BRAINWALLET NOTE: - To thwart dictionary attacks, it's recommended to use a strong hash preset - with brainwallets. For a brainwallet passphrase to generate the correct - seed, the same seed length and hash preset parameters must always be used. + To thwart dictionary attacks, it's recommended to use a strong hash preset + with brainwallets. For a brainwallet passphrase to generate the correct + seed, the same seed length and hash preset parameters must always be used. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-WALLETCONV(1) + MMGEN v13.2.0 August 2022 MMGEN-WALLETCONV(1) +``` diff --git a/command-help-walletgen.md b/command-help-walletgen.md index c575200..bf3190a 100644 --- a/command-help-walletgen.md +++ b/command-help-walletgen.md @@ -1,55 +1,57 @@ - MMGEN-WALLETGEN: Generate an MMGen wallet from a random seed - USAGE: mmgen-walletgen [opts] - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) - -J, --hidden-incog-output-params f,o Write hidden incognito data to file - 'f' at offset 'o' (comma-separated). File 'f' will be - created if necessary and filled with random data. - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -L, --label l Specify a label 'l' for output wallet - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output +```text + MMGEN-WALLETGEN: Generate an MMGen wallet from a random seed + USAGE: mmgen-walletgen [opts] + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) + -J, --hidden-incog-output-params f,o Write hidden incognito data to file + 'f' at offset 'o' (comma-separated). File 'f' will be + created if necessary and filled with random data. + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -L, --label l Specify a label 'l' for output wallet + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output - PASSPHRASE NOTE: + PASSPHRASE NOTE: - For passphrases all combinations of whitespace are equal, and leading and - trailing space are ignored. This permits reading passphrase or brainwallet - data from a multi-line file with free spacing and indentation. + For passphrases all combinations of whitespace are equal, and leading and + trailing space are ignored. This permits reading passphrase or brainwallet + data from a multi-line file with free spacing and indentation. - BRAINWALLET NOTE: + BRAINWALLET NOTE: - To thwart dictionary attacks, it's recommended to use a strong hash preset - with brainwallets. For a brainwallet passphrase to generate the correct - seed, the same seed length and hash preset parameters must always be used. + To thwart dictionary attacks, it's recommended to use a strong hash preset + with brainwallets. For a brainwallet passphrase to generate the correct + seed, the same seed length and hash preset parameters must always be used. - FMT CODES: + FMT CODES: - Format FileExt Valid codes - ------ ------- ----------- - BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw - DieRollWallet .b6d b6d,die,dieroll - IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi - IncogWalletHidden None incog_hidden,hincog,ih,hi - MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex - MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m - MMGenSeedFile .mmseed mmseed,seed,s - MMGenWallet .mmdat wallet,w - PlainHexSeedFile .hex hex,rawhex,plainhex + Format FileExt Valid codes + ------ ------- ----------- + BIP39Mnemonic .bip39 bip39 + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll + IncogWallet .mmincog mmincog,incog,icg,i + IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi + IncogWalletHidden None incog_hidden,hincog,ih,hi + MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m + MMGenSeedFile .mmseed mmseed,seed,s + MMGenWallet .mmdat wallet,w + PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.2.0 August 2022 MMGEN-WALLETGEN(1) + MMGEN v13.2.0 August 2022 MMGEN-WALLETGEN(1) +``` diff --git a/command-help-xmrwallet.md b/command-help-xmrwallet.md index 52aad6f..613b993 100644 --- a/command-help-xmrwallet.md +++ b/command-help-xmrwallet.md @@ -1,170 +1,172 @@ - MMGEN-XMRWALLET: Perform various Monero wallet operations for addresses - in an MMGen XMR key-address file - USAGE: mmgen-xmrwallet [opts] create [wallets] - mmgen-xmrwallet [opts] sync [wallets] - mmgen-xmrwallet [opts] list [wallets] - mmgen-xmrwallet [opts] new NEW_ADDRESS_SPEC - mmgen-xmrwallet [opts] transfer TRANSFER_SPEC - mmgen-xmrwallet [opts] sweep SWEEP_SPEC - mmgen-xmrwallet [opts] relay - mmgen-xmrwallet [opts] txview ... - OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common - options) - -b, --rescan-blockchain Rescan the blockchain if wallet fails to sync - -d, --outdir D Save transaction files to directory 'D' - instead of the working directory - -D, --daemon H:P Connect to the monerod at HOST:PORT - -R, --tx-relay-daemon H:P[:H:P] Relay transactions via a monerod specified by - HOST:PORT[:PROXY_HOST:PROXY_PORT] - -k, --use-internal-keccak-module Force use of the internal keccak module - -p, --hash-preset P Use scrypt hash preset 'P' for password - hashing (default: '3') - -r, --restore-height H Scan from height 'H' when creating wallets - -R, --no-relay Save transaction to file instead of relaying - -s, --no-start-wallet-daemon Don’t start the wallet daemon at startup - -S, --no-stop-wallet-daemon Don’t stop the wallet daemon at exit - -w, --wallet-dir D Output or operate on wallets in directory 'D' - instead of the working directory - -H, --wallet-rpc-host host Wallet RPC hostname (default: 'localhost') - -U, --wallet-rpc-user user Wallet RPC username (default: 'monero') - -P, --wallet-rpc-password pass Wallet RPC password (default: '') +```text + MMGEN-XMRWALLET: Perform various Monero wallet operations for addresses + in an MMGen XMR key-address file + USAGE: mmgen-xmrwallet [opts] create [wallets] + mmgen-xmrwallet [opts] sync [wallets] + mmgen-xmrwallet [opts] list [wallets] + mmgen-xmrwallet [opts] new NEW_ADDRESS_SPEC + mmgen-xmrwallet [opts] transfer TRANSFER_SPEC + mmgen-xmrwallet [opts] sweep SWEEP_SPEC + mmgen-xmrwallet [opts] relay + mmgen-xmrwallet [opts] txview ... + OPTIONS: + -h, --help Print this help message + --longhelp Print help message for long options (common + options) + -b, --rescan-blockchain Rescan the blockchain if wallet fails to sync + -d, --outdir D Save transaction files to directory 'D' + instead of the working directory + -D, --daemon H:P Connect to the monerod at HOST:PORT + -R, --tx-relay-daemon H:P[:H:P] Relay transactions via a monerod specified by + HOST:PORT[:PROXY_HOST:PROXY_PORT] + -k, --use-internal-keccak-module Force use of the internal keccak module + -p, --hash-preset P Use scrypt hash preset 'P' for password + hashing (default: '3') + -r, --restore-height H Scan from height 'H' when creating wallets + -R, --no-relay Save transaction to file instead of relaying + -s, --no-start-wallet-daemon Don’t start the wallet daemon at startup + -S, --no-stop-wallet-daemon Don’t stop the wallet daemon at exit + -w, --wallet-dir D Output or operate on wallets in directory 'D' + instead of the working directory + -H, --wallet-rpc-host host Wallet RPC hostname (default: 'localhost') + -U, --wallet-rpc-user user Wallet RPC username (default: 'monero') + -P, --wallet-rpc-password pass Wallet RPC password (default: '') - All operations except for ‘relay’ require a running Monero daemon. Unless - --daemon is specified, the monerod is assumed to be listening on localhost at - the default RPC port. + All operations except for ‘relay’ require a running Monero daemon. Unless + --daemon is specified, the monerod is assumed to be listening on localhost at + the default RPC port. - If --tx-relay-daemon is specified, the monerod at HOST:PORT will be used to - relay any created transactions. PROXY_HOST:PROXY_PORT, if specified, may - point to a SOCKS proxy, in which case HOST may be a Tor onion address. + If --tx-relay-daemon is specified, the monerod at HOST:PORT will be used to + relay any created transactions. PROXY_HOST:PROXY_PORT, if specified, may + point to a SOCKS proxy, in which case HOST may be a Tor onion address. - All communications use the RPC protocol via SSL (HTTPS) or Tor. RPC over - plain HTTP is not supported. + All communications use the RPC protocol via SSL (HTTPS) or Tor. RPC over + plain HTTP is not supported. - SUPPORTED OPERATIONS + SUPPORTED OPERATIONS - create - create wallet for all or specified addresses in key-address file - sync - sync wallet for all or specified addresses in key-address file - list - same as 'sync', but also list detailed address info for accounts - new - create a new account in a wallet, or a new address in an account - transfer - transfer specified XMR amount from specified wallet:account to - specified address - sweep - sweep funds in specified wallet:account to new address in same - account or new account in another wallet - relay - relay a transaction from a transaction file created using 'sweep' - or 'transfer' with the --no-relay option - txview - view a transaction file or files created using 'sweep' or - 'transfer' with the --no-relay option + create - create wallet for all or specified addresses in key-address file + sync - sync wallet for all or specified addresses in key-address file + list - same as 'sync', but also list detailed address info for accounts + new - create a new account in a wallet, or a new address in an account + transfer - transfer specified XMR amount from specified wallet:account to + specified address + sweep - sweep funds in specified wallet:account to new address in same + account or new account in another wallet + relay - relay a transaction from a transaction file created using 'sweep' + or 'transfer' with the --no-relay option + txview - view a transaction file or files created using 'sweep' or + 'transfer' with the --no-relay option - 'CREATE', 'SYNC' AND 'LIST' OPERATION NOTES + 'CREATE', 'SYNC' AND 'LIST' OPERATION NOTES - These operations take an optional `wallets` argument: one or more address - indexes (expressed as a comma-separated list, hyphenated range, or both) - in the specified key-address file, each corresponding to a Monero wallet - to be created, synced or listed. If omitted, all wallets are operated upon. + These operations take an optional `wallets` argument: one or more address + indexes (expressed as a comma-separated list, hyphenated range, or both) + in the specified key-address file, each corresponding to a Monero wallet + to be created, synced or listed. If omitted, all wallets are operated upon. - 'NEW' OPERATION NOTES + 'NEW' OPERATION NOTES - This operation takes a NEW_ADDRESS_SPEC arg with the following format: + This operation takes a NEW_ADDRESS_SPEC arg with the following format: - WALLET[:ACCOUNT][,"label text"] + WALLET[:ACCOUNT][,"label text"] - where WALLET is a wallet number and ACCOUNT an account index. If ACCOUNT is - omitted, a new account will be created in the wallet, otherwise a new address - will be created in the specified account. An optional label text may be - appended to the spec following a comma. + where WALLET is a wallet number and ACCOUNT an account index. If ACCOUNT is + omitted, a new account will be created in the wallet, otherwise a new address + will be created in the specified account. An optional label text may be + appended to the spec following a comma. - 'TRANSFER' OPERATION NOTES + 'TRANSFER' OPERATION NOTES - The transfer operation takes a TRANSFER_SPEC arg with the following format: + The transfer operation takes a TRANSFER_SPEC arg with the following format: - SOURCE:ACCOUNT:ADDRESS,AMOUNT + SOURCE:ACCOUNT:ADDRESS,AMOUNT - where SOURCE is a wallet number; ACCOUNT the source account index; and ADDRESS - and AMOUNT the destination Monero address and XMR amount, respectively. + where SOURCE is a wallet number; ACCOUNT the source account index; and ADDRESS + and AMOUNT the destination Monero address and XMR amount, respectively. - 'SWEEP' OPERATION NOTES + 'SWEEP' OPERATION NOTES - The sweep operation takes a SWEEP_SPEC arg with the following format: + The sweep operation takes a SWEEP_SPEC arg with the following format: - SOURCE:ACCOUNT[,DEST] + SOURCE:ACCOUNT[,DEST] - where SOURCE and DEST are wallet numbers and ACCOUNT an account index. + where SOURCE and DEST are wallet numbers and ACCOUNT an account index. - If DEST is omitted, a new address will be created in ACCOUNT of SOURCE and - all funds from ACCOUNT of SOURCE will be swept into it. + If DEST is omitted, a new address will be created in ACCOUNT of SOURCE and + all funds from ACCOUNT of SOURCE will be swept into it. - If DEST is included, all funds from ACCOUNT of SOURCE will be swept into a - newly created account in DEST, or the last existing account, if requested - by the user. + If DEST is included, all funds from ACCOUNT of SOURCE will be swept into a + newly created account in DEST, or the last existing account, if requested + by the user. - The user is prompted before addresses are created or funds are transferred. + The user is prompted before addresses are created or funds are transferred. - Note that multiple sweep operations may be required to sweep all the funds - in an account. + Note that multiple sweep operations may be required to sweep all the funds + in an account. - 'RELAY' OPERATION NOTES + 'RELAY' OPERATION NOTES - By default, transactions are relayed to a monerod running on localhost at the - default RPC port. To relay transactions to a remote or non-default monerod - via optional SOCKS proxy, use the --tx-relay-daemon option described above. + By default, transactions are relayed to a monerod running on localhost at the + default RPC port. To relay transactions to a remote or non-default monerod + via optional SOCKS proxy, use the --tx-relay-daemon option described above. - WARNING + WARNING - To avoid exposing your private keys on a network-connected machine, you’re - strongly advised to create all transactions offline using the --no-relay - option. For this, a monerod with a fully synced blockchain must be running - on the offline machine. The resulting transaction files are then sent using - the 'relay' operation. + To avoid exposing your private keys on a network-connected machine, you’re + strongly advised to create all transactions offline using the --no-relay + option. For this, a monerod with a fully synced blockchain must be running + on the offline machine. The resulting transaction files are then sent using + the 'relay' operation. - EXAMPLES + EXAMPLES - Generate an XMR key-address file with 5 addresses from your default wallet: - $ mmgen-keygen --coin=xmr 1-5 + Generate an XMR key-address file with 5 addresses from your default wallet: + $ mmgen-keygen --coin=xmr 1-5 - Create 3 Monero wallets from the key-address file: - $ mmgen-xmrwallet create *.akeys.mmenc 1-3 + Create 3 Monero wallets from the key-address file: + $ mmgen-xmrwallet create *.akeys.mmenc 1-3 - After updating the blockchain, sync wallets 1 and 2: - $ mmgen-xmrwallet sync *.akeys.mmenc 1,2 + After updating the blockchain, sync wallets 1 and 2: + $ mmgen-xmrwallet sync *.akeys.mmenc 1,2 - Sweep all funds from account #0 of wallet 1 to a new address: - $ mmgen-xmrwallet sweep *.akeys.mmenc 1:0 + Sweep all funds from account #0 of wallet 1 to a new address: + $ mmgen-xmrwallet sweep *.akeys.mmenc 1:0 - Same as above, but use a TX relay on the Tor network: - $ mmgen-xmrwallet --tx-relay-daemon=abcdefghijklmnop.onion:127.0.0.1:9050 sweep *.akeys.mmenc 1:0 + Same as above, but use a TX relay on the Tor network: + $ mmgen-xmrwallet --tx-relay-daemon=abcdefghijklmnop.onion:127.0.0.1:9050 sweep *.akeys.mmenc 1:0 - Sweep all funds from account #0 of wallet 1 to wallet 2: - $ mmgen-xmrwallet sweep *.akeys.mmenc 1:0,2 + Sweep all funds from account #0 of wallet 1 to wallet 2: + $ mmgen-xmrwallet sweep *.akeys.mmenc 1:0,2 - Send 0.1 XMR from account #0 of wallet 2 to an external address: - $ mmgen-xmrwallet transfer *.akeys.mmenc 2:0:,0.1 + Send 0.1 XMR from account #0 of wallet 2 to an external address: + $ mmgen-xmrwallet transfer *.akeys.mmenc 2:0:,0.1 - Sweep all funds from account #0 of wallet 2 to a new address, saving the - transaction to a file: - $ mmgen-xmrwallet --no-relay sweep *.akeys.mmenc 2:0 + Sweep all funds from account #0 of wallet 2 to a new address, saving the + transaction to a file: + $ mmgen-xmrwallet --no-relay sweep *.akeys.mmenc 2:0 - Relay the created sweep transaction via a host on the Tor network: - $ mmgen-xmrwallet --tx-relay-daemon=abcdefghijklmnop.onion:127.0.0.1:9050 relay *XMR*.sigtx + Relay the created sweep transaction via a host on the Tor network: + $ mmgen-xmrwallet --tx-relay-daemon=abcdefghijklmnop.onion:127.0.0.1:9050 relay *XMR*.sigtx - Create a new account in wallet 2: - $ mmgen-xmrwallet new *.akeys.mmenc 2 + Create a new account in wallet 2: + $ mmgen-xmrwallet new *.akeys.mmenc 2 - Create a new address in account 1 of wallet 2, with label: - $ mmgen-xmrwallet new *.akeys.mmenc 2:1,"from ABC exchange" + Create a new address in account 1 of wallet 2, with label: + $ mmgen-xmrwallet new *.akeys.mmenc 2:1,"from ABC exchange" - View all the XMR transaction files in the current directory, sending output - to pager: - $ mmgen-xmrwallet --pager txview *XMR*.sigtx + View all the XMR transaction files in the current directory, sending output + to pager: + $ mmgen-xmrwallet --pager txview *XMR*.sigtx - MMGEN v13.3.dev16 November 2022 MMGEN-XMRWALLET(1) + MMGEN v13.3.dev16 November 2022 MMGEN-XMRWALLET(1) +```