diff --git a/MMGen-command-help.md b/MMGen-command-help.md index c548493..1841779 100644 --- a/MMGen-command-help.md +++ b/MMGen-command-help.md @@ -11,6 +11,7 @@ * [mmgen-subwalletgen](subwalletgen-[MMGen-command-help]) * [mmgen-tool](tool-[MMGen-command-help]) * [mmgen-tool (usage)][u] +* [mmgen-tool (detailed usage)][d] * [mmgen-txbump](txbump-[MMGen-command-help]) * [mmgen-txcreate](txcreate-[MMGen-command-help]) * [mmgen-txdo](txdo-[MMGen-command-help]) @@ -22,3 +23,4 @@ * [mmgen-xmrwallet](xmrwallet-[MMGen-command-help]) [u]: tool(usage)-[MMGen-command-help] +[d]: tool(detail)-[MMGen-command-help] diff --git a/addrgen-[MMGen-command-help].md b/addrgen-[MMGen-command-help].md index 8956b93..80b8811 100644 --- a/addrgen-[MMGen-command-help].md +++ b/addrgen-[MMGen-command-help].md @@ -114,4 +114,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-ADDRGEN(1) + MMGEN v13.2.dev13 August 2022 MMGEN-ADDRGEN(1) diff --git a/addrimport-[MMGen-command-help].md b/addrimport-[MMGen-command-help].md index 151d037..958779c 100644 --- a/addrimport-[MMGen-command-help].md +++ b/addrimport-[MMGen-command-help].md @@ -1,5 +1,5 @@ MMGEN-ADDRIMPORT: Import addresses into an MMGen tracking wallet - USAGE: mmgen-addrimport [opts] [mmgen address file] + USAGE: mmgen-addrimport [opts] [MMGen address file] OPTIONS: -h, --help Print this help message --longhelp Print help message for long options (common options) @@ -8,14 +8,26 @@ -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 Rescan the blockchain. Required if address to import is - in the blockchain and has a balance. Rescanning is slow. + -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 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. - The --batch and --rescan options cannot be used together. + 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. - MMGEN v13.1.0 May 2022 MMGEN-ADDRIMPORT(1) + 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’. + + MMGEN v13.2.dev13 August 2022 MMGEN-ADDRIMPORT(1) diff --git a/autosign-[MMGen-command-help].md b/autosign-[MMGen-command-help].md index ce72046..0988c58 100644 --- a/autosign-[MMGen-command-help].md +++ b/autosign-[MMGen-command-help].md @@ -71,4 +71,4 @@ This command is currently available only on Linux-based platforms. - MMGEN v13.1.0 May 2022 MMGEN-AUTOSIGN(1) + MMGEN v13.2.dev13 August 2022 MMGEN-AUTOSIGN(1) diff --git a/keygen-[MMGen-command-help].md b/keygen-[MMGen-command-help].md index d7d8aca..4de38df 100644 --- a/keygen-[MMGen-command-help].md +++ b/keygen-[MMGen-command-help].md @@ -118,4 +118,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-KEYGEN(1) + MMGEN v13.2.dev13 August 2022 MMGEN-KEYGEN(1) diff --git a/msg-[MMGen-command-help].md b/msg-[MMGen-command-help].md index 86a1f62..8829042 100644 --- a/msg-[MMGen-command-help].md +++ b/msg-[MMGen-command-help].md @@ -103,4 +103,4 @@ Verify and display the exported JSON signature data: $ mmgen-msg verify signatures.json - MMGEN v13.1.0 May 2022 MMGEN-MSG(1) + MMGEN v13.2.dev13 August 2022 MMGEN-MSG(1) diff --git a/passchg-[MMGen-command-help].md b/passchg-[MMGen-command-help].md index 4c94741..ae0a0d2 100644 --- a/passchg-[MMGen-command-help].md +++ b/passchg-[MMGen-command-help].md @@ -50,4 +50,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-PASSCHG(1) + MMGEN v13.2.dev13 August 2022 MMGEN-PASSCHG(1) diff --git a/passgen-[MMGen-command-help].md b/passgen-[MMGen-command-help].md index 3777bcf..9245e7f 100644 --- a/passgen-[MMGen-command-help].md +++ b/passgen-[MMGen-command-help].md @@ -99,4 +99,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-PASSGEN(1) + MMGEN v13.2.dev13 August 2022 MMGEN-PASSGEN(1) diff --git a/regtest-[MMGen-command-help].md b/regtest-[MMGen-command-help].md index b142499..3d56b79 100644 --- a/regtest-[MMGen-command-help].md +++ b/regtest-[MMGen-command-help].md @@ -24,4 +24,4 @@ is first argument) - MMGEN v13.1.0 May 2022 MMGEN-REGTEST(1) + MMGEN v13.2.dev13 August 2022 MMGEN-REGTEST(1) diff --git a/seedjoin-[MMGen-command-help].md b/seedjoin-[MMGen-command-help].md index dda729a..100a38d 100644 --- a/seedjoin-[MMGen-command-help].md +++ b/seedjoin-[MMGen-command-help].md @@ -60,4 +60,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-SEEDJOIN(1) + MMGEN v13.2.dev13 August 2022 MMGEN-SEEDJOIN(1) diff --git a/seedsplit-[MMGen-command-help].md b/seedsplit-[MMGen-command-help].md index 972bdb9..63d555e 100644 --- a/seedsplit-[MMGen-command-help].md +++ b/seedsplit-[MMGen-command-help].md @@ -141,4 +141,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-SEEDSPLIT(1) + MMGEN v13.2.dev13 August 2022 MMGEN-SEEDSPLIT(1) diff --git a/subwalletgen-[MMGen-command-help].md b/subwalletgen-[MMGen-command-help].md index ee6052e..2e882ca 100644 --- a/subwalletgen-[MMGen-command-help].md +++ b/subwalletgen-[MMGen-command-help].md @@ -94,4 +94,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-SUBWALLETGEN(1) + MMGEN v13.2.dev13 August 2022 MMGEN-SUBWALLETGEN(1) diff --git a/tool(detail)-[MMGen-command-help].md b/tool(detail)-[MMGen-command-help].md new file mode 100644 index 0000000..178e0c9 --- /dev/null +++ b/tool(detail)-[MMGen-command-help].md @@ -0,0 +1,1037 @@ +# Detailed usage information for `mmgen-tool` commands + +## Table of Contents +* [General string conversion and hashing utilities](#a_1) +* [Cryptocoin key/address utilities](#a_2) +* [Seed phrase utilities](#a_3) +* [Utilities for viewing/checking MMGen address and transaction files](#a_4) +* [File encryption and decryption](#a_5) +* [File utilities](#a_6) +* [Key, address or subseed generation from an MMGen wallet](#a_7) +* [Tracking-wallet commands using the JSON-RPC interface](#a_8) + +## General string conversion and hashing utilities: + +### `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 + +### `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) + +### `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 + +### `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 + +### `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 + +### `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 + +### `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 + +### `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) + +### `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 + +### `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') + +### `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] + +### `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) + +### `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 + +### `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 + +### `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) + +### `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 + +### `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] + +### `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] + +### `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 + +### `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 + +### `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) + +### `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 + + 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] + +### `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) + + +## 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) + +### `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) + +### `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) + +### `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) + +### `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) + +### `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) + +### `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) + +### `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) + +### `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) + +### `mmgen-tool randpair` + + 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 + +### `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) + +### `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) + +### `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) + +### `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) + +### `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) + +### `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) + + +## 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') + +### `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') + +### `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 + +### `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 + +### `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') + +### `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') + +### `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') + +### `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') + + +## 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] + +### `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] + +### `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] + +### `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') + + +## 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=''] + +### `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=''] + + +## 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] + +### `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) + +### `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 + + +## 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=''] + +### `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=''] + +### `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=''] + +### `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] + +### `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=''] + +### `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=''] + + +## 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] + +### `mmgen-tool daemon_version` + + 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 + +### `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): + + minconf [int=1] Minimum number of confirmations + showbtcaddr [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): + + mmgen_addrs [str=''] Hyphenated range or comma-separated list of addresses + minconf [int=1] Minimum number of confirmations + pager [bool=False] Send output to pager + showbtcaddr [bool=True] Display coin addresses in addition to MMGen IDs + showempty [bool=True] Show addresses with no balances + all_labels [bool=False] Show all addresses with labels + age_fmt [str='confs'] Format for the Age/Date column (valid choices: 'confs','block','days','date','date_time') + sort [str=''] Address sort order (valid choices: 'reverse','age') + +### `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] + +### `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] + +### `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] + +### `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. + +### `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] + +### `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] + + 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. + +### `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’. + +### `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 + +### `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 diff --git a/tool(usage)-[MMGen-command-help].md b/tool(usage)-[MMGen-command-help].md index 100faad..e68692b 100644 --- a/tool(usage)-[MMGen-command-help].md +++ b/tool(usage)-[MMGen-command-help].md @@ -1,129 +1,179 @@ - USAGE INFORMATION FOR MMGEN-TOOL COMMANDS: + GENERAL USAGE INFORMATION FOR MMGEN-TOOL COMMANDS + + 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’ + + For more detailed usage information for a particular tool command, type + ‘mmgen-tool help ’ - Unquoted arguments are mandatory - Quoted arguments are optional, default values will be used - Argument types and default values are shown in square brackets 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: - b32tohex b32num [str or STDIN] "pad" [int=0] - b58chktohex b58chk_num [str or STDIN] - b58tobytes b58num [str or STDIN] "pad" [int=0] - b58tohex b58num [str or STDIN] "pad" [int=0] - b6dtohex b6d_num [str or STDIN] "pad" [int=0] + 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] + bytestob58 infile [str] pad [int=0] hash160 hexstr [str or STDIN] - hash256 string_or_bytes [str] "file_input" [bool=False] "hex_input" [bool=False] - hexdump infile [str] "cols" [int=8] "line_nums" [str='hex'] + 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] + 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] + 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" [str='32'] + 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] + to_bytespec n [int] dd_style_byte_specifier [str] fmt [str='0.2'] print_sym [bool=True] unhexdump infile [str] unhexlify hexstr [str or STDIN] + Cryptocoin key/address utilities: + 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 + 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] "output_pubhex" [bool=False] + 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_scripthex [str or STDIN] + 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 (valid formats: 'mmgen' (default), 'bip39', 'xmrseed'): - hex2mn hexstr [str or STDIN] "fmt" [str='mmgen' (valid options: 'mmgen','bip39','xmrseed')] - mn2hex seed_mnemonic [str or STDIN] "fmt" [str='mmgen' (valid options: 'mmgen','bip39','xmrseed')] - mn2hex_interactive "fmt" [str='mmgen' (valid options: 'mmgen','bip39','xmrseed')] "mn_len" [int=24] "print_mn" [bool=False] - mn_printlist "fmt" [str='mmgen' (valid options: 'mmgen','bip39','xmrseed')] "enum" [bool=False] "pager" [bool=False] - mn_rand128 "fmt" [str='mmgen' (valid options: 'mmgen','bip39','xmrseed')] - mn_rand192 "fmt" [str='mmgen' (valid options: 'mmgen','bip39','xmrseed')] - mn_rand256 "fmt" [str='mmgen' (valid options: 'mmgen','bip39','xmrseed')] - mn_stats "fmt" [str='mmgen' (valid options: 'mmgen','bip39','xmrseed')] + Seed phrase utilities: + + 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! + + 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. + + 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: 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' (valid options: 'addr','raw')] "filesort" [str='mtime' (valid options: 'mtime','ctime','atime')] + txview mmgen_tx_file(s) [str] pager [bool=False] terse [bool=False] sort [str='addr'] filesort [str='mtime'] + File encryption and decryption: - decrypt infile [str] "outfile" [str=''] "hash_preset" [str=''] - encrypt infile [str] "outfile" [str=''] "hash_preset" [str=''] + 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=''] + 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: - gen_addr mmgen_addr [str] "wallet" [str=''] "target" [str='addr'] - 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 (min:1, max:1024, 0=no master share)] "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: - add_label mmgen_or_coin_addr [str] label [str] + 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] "minconf" [int=1] "pager" [bool=False] "showempty" [bool=True] "showbtcaddr" [bool=True] "age_fmt" [str='confs' (valid options: 'confs','block','days','date','date_time')] - listaddresses "mmgen_addrs" [str='' (range or list)] "minconf" [int=1] "showempty" [bool=False] "pager" [bool=False] "showbtcaddrs" [bool=True] "all_labels" [bool=False] "sort" [str='' (valid options: 'reverse','age')] "age_fmt" [str='confs' (valid options: 'confs','block','days','date','date_time')] - remove_address mmgen_or_coin_addr [str] - remove_label mmgen_or_coin_addr [str] - twview "pager" [bool=False] "reverse" [bool=False] "wide" [bool=False] "minconf" [int=1] "sort" [str='age'] "age_fmt" [str='confs' (valid options: 'confs','block','days','date','date_time')] "show_mmid" [bool=True] "wide_show_confs" [bool=True] + getbalance minconf [int=1] quiet [bool=False] pager [bool=False] + listaddress mmgen_addr [str] minconf [int=1] showbtcaddr [bool=True] age_fmt [str='confs'] + listaddresses mmgen_addrs [str=''] minconf [int=1] pager [bool=False] showbtcaddr [bool=True] showempty [bool=True] all_labels [bool=False] age_fmt [str='confs'] sort [str=''] + 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] + 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. + EXAMPLES: - Generate a random Bech32 public/private keypair for LTC: + Generate a random LTC Bech32 public/private keypair: $ mmgen-tool -r0 --coin=ltc --type=bech32 randpair - Generate a DASH compressed public key address from the supplied WIF key: + 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 random 12-word seed phrase: - $ mmgen-tool -r0 mn_rand128 + $ mmgen-tool -r0 mn_rand128 fmt=bip39 Same as above, but get additional entropy from user: - $ mmgen-tool mn_rand128 + $ mmgen-tool mn_rand128 fmt=bip39 Encode bytes from a file to base 58: $ mmgen-tool bytestob58 /etc/timezone pad=20 @@ -131,7 +181,6 @@ Reverse a hex string: $ mmgen-tool hexreverse "deadbeefcafe" - Same as above, but use a pipe: + Same as above, but supply input via STDIN: $ echo "deadbeefcafe" | mmgen-tool hexreverse - - - MMGEN v13.1.0 May 2022 MMGEN-TOOL(USAGE)(1) + MMGEN v13.2.dev13 August 2022 MMGEN-TOOL(USAGE)(1) diff --git a/tool-[MMGen-command-help].md b/tool-[MMGen-command-help].md index f7ecb2f..2d0521d 100644 --- a/tool-[MMGen-command-help].md +++ b/tool-[MMGen-command-help].md @@ -8,13 +8,14 @@ -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 options: 'legacy', + -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) @@ -26,17 +27,17 @@ Help/usage commands: help - display usage information for a single command or all commands - usage - display usage information for a single command + usage - display usage information for a single command or all commands General string conversion and hashing utilities: - b32tohex - convert an MMGen-flavor base 32 number to hexadecimal - b58chktohex - convert a base58-check encoded number to hexadecimal - b58tobytes - convert a base 58 number to bytes (warning: outputs binary + 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 number to hexadecimal - b6dtohex - convert a die roll base6 (base6d) number to hexadecimal - bytespec - convert a byte specifier such as '1GB' into an integer + 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) @@ -44,21 +45,23 @@ 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 number to MMGen's flavor of base 32 - hextob58 - convert a hexadecimal number to base 58 - hextob58chk - convert a hexadecimal number to base58-check encoding - hextob6d - convert a hexadecimal number to die roll base6 (base6d) + 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 - to_bytespec - convert an integer to a byte specifier such as '1GB' + 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 hexadecimal value to bytes (warning: outputs binary - data) + unhexlify - convert a hexadecimal string to bytes (warning: outputs + binary data) Cryptocoin key/address utilities: @@ -71,29 +74,32 @@ 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 hex to WIF format - privhex2addr - generate coin address from raw private key data in - hexadecimal format - privhex2pubhex - generate a hex public key from a hex private key + 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 hex pubkey to an address - pubhex2redeem_script - convert a hex pubkey to a Segwit P2SH-P2WPKH redeem - script + 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 hex 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 both a Segwit P2SH-P2WPKH redeem script - and address from WIF + wif2segwit_pair - generate a Segwit P2SH-P2WPKH redeem script and + address from a WIF private key - Seed phrase utilities (valid formats: 'mmgen' (default), 'bip39', 'xmrseed'): + Seed phrase utilities: - IMPORTANT NOTE: MMGen's default seed phrase format uses the Electrum + 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! @@ -103,30 +109,30 @@ 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 + 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. + use the ‘hex2wif’ command. - hex2mn - convert a 16, 24 or 32-byte hexadecimal number to a + hex2mn - convert a 16, 24 or 32-byte hexadecimal string to a mnemonic seed phrase - mn2hex - convert a mnemonic seed phrase to a hexadecimal number + mn2hex - convert a mnemonic seed phrase to a hexadecimal string mn2hex_interactive - convert an interactively supplied mnemonic seed - phrase to a hexadecimal number - mn_printlist - print mnemonic wordlist - mn_rand128 - generate random 128-bit mnemonic seed phrase - mn_rand192 - generate random 192-bit mnemonic seed phrase - mn_rand256 - generate random 256-bit mnemonic seed phrase - mn_stats - show stats for mnemonic wordlist + 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: 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 - show raw/signed MMGen transaction in human-readable - form + txview - display specified raw or signed MMGen transaction + files in human-readable form File encryption and decryption: @@ -144,15 +150,16 @@ keystore wallet, returning the decrypted key find_incog_data - Use an Incog ID to find hidden incognito wallet data - rand2file - write 'n' bytes of random data to specified - file + rand2file - write ‘nbytes’ bytes of random data to + specified file (dd-style byte specifiers + supported) 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 MMGen WIF key 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 @@ -162,18 +169,30 @@ 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 and its balance - listaddresses - list MMGen addresses and their balances - remove_address - remove an address from tracking wallet - remove_label - remove descriptive label for address in tracking wallet - twview - view 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.1.0 May 2022 MMGEN-TOOL(1) + MMGEN v13.2.dev13 August 2022 MMGEN-TOOL(1) diff --git a/txbump-[MMGen-command-help].md b/txbump-[MMGen-command-help].md index 2ec4aea..6a68485 100644 --- a/txbump-[MMGen-command-help].md +++ b/txbump-[MMGen-command-help].md @@ -85,4 +85,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-TXBUMP(1) + MMGEN v13.2.dev13 August 2022 MMGEN-TXBUMP(1) diff --git a/txcreate-[MMGen-command-help].md b/txcreate-[MMGen-command-help].md index 78a3602..43ca786 100644 --- a/txcreate-[MMGen-command-help].md +++ b/txcreate-[MMGen-command-help].md @@ -53,4 +53,4 @@ a plain decimal number, or as satoshis per byte, using an integer followed by 's', for satoshi. - MMGEN v13.1.0 May 2022 MMGEN-TXCREATE(1) + MMGEN v13.2.dev13 August 2022 MMGEN-TXCREATE(1) diff --git a/txdo-[MMGen-command-help].md b/txdo-[MMGen-command-help].md index 3b6da13..e543b56 100644 --- a/txdo-[MMGen-command-help].md +++ b/txdo-[MMGen-command-help].md @@ -116,4 +116,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-TXDO(1) + MMGEN v13.2.dev13 August 2022 MMGEN-TXDO(1) diff --git a/txsend-[MMGen-command-help].md b/txsend-[MMGen-command-help].md index f3ab69d..bbb9b3c 100644 --- a/txsend-[MMGen-command-help].md +++ b/txsend-[MMGen-command-help].md @@ -8,4 +8,4 @@ -s, --status Get status of a sent transaction -y, --yes Answer 'yes' to prompts, suppress non-essential output - MMGEN v13.1.0 May 2022 MMGEN-TXSEND(1) + MMGEN v13.2.dev13 August 2022 MMGEN-TXSEND(1) diff --git a/txsign-[MMGen-command-help].md b/txsign-[MMGen-command-help].md index 8a704e4..3e421d1 100644 --- a/txsign-[MMGen-command-help].md +++ b/txsign-[MMGen-command-help].md @@ -78,4 +78,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-TXSIGN(1) + MMGEN v13.2.dev13 August 2022 MMGEN-TXSIGN(1) diff --git a/walletchk-[MMGen-command-help].md b/walletchk-[MMGen-command-help].md index 67ad950..f8d1344 100644 --- a/walletchk-[MMGen-command-help].md +++ b/walletchk-[MMGen-command-help].md @@ -49,4 +49,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-WALLETCHK(1) + MMGEN v13.2.dev13 August 2022 MMGEN-WALLETCHK(1) diff --git a/walletconv-[MMGen-command-help].md b/walletconv-[MMGen-command-help].md index 9847225..a98724a 100644 --- a/walletconv-[MMGen-command-help].md +++ b/walletconv-[MMGen-command-help].md @@ -59,4 +59,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-WALLETCONV(1) + MMGEN v13.2.dev13 August 2022 MMGEN-WALLETCONV(1) diff --git a/walletgen-[MMGen-command-help].md b/walletgen-[MMGen-command-help].md index a102fe1..a139aa7 100644 --- a/walletgen-[MMGen-command-help].md +++ b/walletgen-[MMGen-command-help].md @@ -52,4 +52,4 @@ MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.0 May 2022 MMGEN-WALLETGEN(1) + MMGEN v13.2.dev13 August 2022 MMGEN-WALLETGEN(1) diff --git a/xmrwallet-[MMGen-command-help].md b/xmrwallet-[MMGen-command-help].md index 2a2451d..0b54786 100644 --- a/xmrwallet-[MMGen-command-help].md +++ b/xmrwallet-[MMGen-command-help].md @@ -2,8 +2,10 @@ in an MMGen XMR key-address file USAGE: mmgen-xmrwallet [opts] create [wallets] mmgen-xmrwallet [opts] sync [wallets] - mmgen-xmrwallet [opts] transfer - mmgen-xmrwallet [opts] sweep + 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 OPTIONS: -h, --help Print this help message @@ -44,6 +46,8 @@ 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 to specified address from specified wallet:account sweep - sweep funds in specified wallet:account to new address in same @@ -52,18 +56,29 @@ or 'transfer' with the --do-not-relay option - CREATE AND SYNC 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 or synced. If omitted, all wallets are operated upon. + to be created, synced or listed. If omitted, all wallets are operated upon. - TRANSFER OPERATION NOTES + 'NEW' OPERATION NOTES - The transfer operation takes a `transfer specifier` arg with the following - format: + This operation takes a NEW_ADDRESS_SPEC arg with the following format: + + 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. + + + 'TRANSFER' OPERATION NOTES + + The transfer operation takes a TRANSFER_SPEC arg with the following format: SOURCE:ACCOUNT:ADDRESS,AMOUNT @@ -71,9 +86,9 @@ and AMOUNT the destination Monero address and XMR amount, respectively. - SWEEP OPERATION NOTES + 'SWEEP' OPERATION NOTES - The sweep operation takes a `sweep specifier` arg with the following format: + The sweep operation takes a SWEEP_SPEC arg with the following format: SOURCE:ACCOUNT[,DEST] @@ -92,7 +107,7 @@ 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 @@ -138,4 +153,10 @@ 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 - MMGEN v13.1.0 May 2022 MMGEN-XMRWALLET(1) + 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" + + MMGEN v13.2.dev13 August 2022 MMGEN-XMRWALLET(1)