diff --git a/Getting-Started-with-MMGen.md b/Getting-Started-with-MMGen.md index c03aec5..9b20f7e 100644 --- a/Getting-Started-with-MMGen.md +++ b/Getting-Started-with-MMGen.md @@ -119,7 +119,7 @@ require a wallet or other seed source.* location other than your MMGen data directory. Otherwise, it’s recommended, as it frees you from having to type your wallet filename on the command line.* -*The following examples suppose that you’ve chosen to use a default wallet. +*The following examples assume that you’ve chosen to use a default wallet. If you haven’t, then you must include the path to a wallet file or other seed source in all commands where a seed source is required.* @@ -966,10 +966,11 @@ preceding step. Information on recently added features can be found by typing `git log` or visiting the commits page on [Github][hc] or [Gitlab][lc]. Check the latest release notes in `doc/release-notes` and make note of any new -features or requirements. Now perform the install: +features or requirements. Now build and install: - $ sudo ./setup.py install # Linux - $ ./setup.py install # Windows / MSYS2 + $ rm -rf dist build + $ python3 -m build --no-isolation + $ python3 -m pip install --user --upgrade dist/*.whl [01]: Tracking-and-spending-ordinary-Bitcoin-addresses [02]: https://tpfaucet.appspot.com diff --git a/Install-MMGen-on-Microsoft-Windows.md b/Install-MMGen-on-Microsoft-Windows.md index dc61f83..1b3c48b 100644 --- a/Install-MMGen-on-Microsoft-Windows.md +++ b/Install-MMGen-on-Microsoft-Windows.md @@ -300,16 +300,12 @@ repository: If you’re doing an offline install, then copy the cloned mmgen directory to your offline machine. -Enter the repo directory and build: +Enter the repo directory, build and install: $ cd mmgen $ git checkout stable_msys2 # See 'Note' below $ python3 -m build --no-isolation - -Exit the repo directory and install: - - $ cd .. - $ python3 -m pip install --upgrade mmgen/dist/*.whl # see 'Install Note' below + $ python3 -m pip install --user --upgrade dist/*.whl **Note:** if you want to use features that have appeared since the latest `stable_msys2` release, then you can omit the `git checkout stable_msys2` @@ -322,8 +318,8 @@ to missing dependencies or installation steps not yet covered in the documentation. **Install Note:** The `--force` and `--no-deps` options also come in handy on -occasion. Note that MMGen may be tested in place without installation. Refer -to the [Test Suite][ts] wiki page for details. +occasion. Note that MMGen has a test suite. Refer to the [Test Suite][ts] +wiki page for details. ### 10. Install Python Ethereum dependencies (Ethereum users only) diff --git a/MMGen-command-help.md b/MMGen-command-help.md index 6a18266..c548493 100644 --- a/MMGen-command-help.md +++ b/MMGen-command-help.md @@ -2,6 +2,7 @@ * [mmgen-addrimport](addrimport-[MMGen-command-help]) * [mmgen-autosign](autosign-[MMGen-command-help]) * [mmgen-keygen](keygen-[MMGen-command-help]) +* [mmgen-msg](msg-[MMGen-command-help]) * [mmgen-passchg](passchg-[MMGen-command-help]) * [mmgen-passgen](passgen-[MMGen-command-help]) * [mmgen-regtest](regtest-[MMGen-command-help]) diff --git a/Recovering-Your-Keys-Without-the-MMGen-Software.md b/Recovering-Your-Keys-Without-the-MMGen-Software.md index 9db7cd9..e5b175c 100644 --- a/Recovering-Your-Keys-Without-the-MMGen-Software.md +++ b/Recovering-Your-Keys-Without-the-MMGen-Software.md @@ -287,7 +287,7 @@ out at the Python prompt: L3R8Fn21PsY3PWgT8BMggFwXswA2EZntwEGFS5mfDJpSiLq29a9F # matches key for FE3C6545:S:1 above Explanation: the variable `b58a` holds the Base 58 alphabet; `num` holds the key -in decimal, converted from hexidecimal by Python’s `int()` function; the third +in decimal, converted from hexadecimal by Python’s `int()` function; the third line does the base-58 conversion; and the last line formats the result by reversing the order of the digits, converting it to a string and stripping off the leading zeroes (‘1’s). diff --git a/Test-Suite.md b/Test-Suite.md index 9e89e81..8da1fcc 100644 --- a/Test-Suite.md +++ b/Test-Suite.md @@ -142,9 +142,9 @@ For other systems, you may have to build ethkey from source: #### Monero note -The Monero test (`test/test-release xmr`) creates a private network and mines -coins, so is therefore non-deterministic and prone to random failures. If you -experience such a failure, just restart the test. +The Monero test (`test/test-release.sh xmr`) creates a private network and +mines coins, so is therefore non-deterministic and prone to random failures. +If you experience such a failure, just restart the test. ### Run the tests diff --git a/addrgen-[MMGen-command-help].md b/addrgen-[MMGen-command-help].md index 66ef250..8956b93 100644 --- a/addrgen-[MMGen-command-help].md +++ b/addrgen-[MMGen-command-help].md @@ -103,15 +103,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-ADDRGEN(1) + MMGEN v13.1.0 May 2022 MMGEN-ADDRGEN(1) diff --git a/addrimport-[MMGen-command-help].md b/addrimport-[MMGen-command-help].md index c6adeb8..151d037 100644 --- a/addrimport-[MMGen-command-help].md +++ b/addrimport-[MMGen-command-help].md @@ -18,4 +18,4 @@ The --batch and --rescan options cannot be used together. - MMGEN v13.1.dev009 January 2022 MMGEN-ADDRIMPORT(1) + MMGEN v13.1.0 May 2022 MMGEN-ADDRIMPORT(1) diff --git a/autosign-[MMGen-command-help].md b/autosign-[MMGen-command-help].md index 2ef05d2..ce72046 100644 --- a/autosign-[MMGen-command-help].md +++ b/autosign-[MMGen-command-help].md @@ -1,4 +1,4 @@ - MMGEN-AUTOSIGN: Auto-sign MMGen transactions + MMGEN-AUTOSIGN: Auto-sign MMGen transactions and message files USAGE: mmgen-autosign [opts] [command] OPTIONS: -h, --help Print this help message @@ -21,7 +21,7 @@ COMMANDS - gen_key - generate the wallet encryption key and copy it to '/mnt/tx/tx' + 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 @@ -29,18 +29,21 @@ USAGE NOTES If invoked with no command, the program mounts a removable device containing - MMGen transactions, signs any unsigned transactions, unmounts the removable - device and exits. + 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, signing and - unmounting every time the removable device 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. The removable device must have a partition labeled MMGEN_TX with a user- - writable directory '/tx', where unsigned MMGen transactions are placed. + 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: @@ -48,18 +51,18 @@ 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 on the - removable device. + '/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. The user will be - prompted for a seed mnemonic. + 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: - $ mmgen-walletconv -r0 -q -iwords -d/dev/shm/autosign -p1 -P/mnt/tx/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. @@ -68,4 +71,4 @@ This command is currently available only on Linux-based platforms. - MMGEN v13.1.dev009 January 2022 MMGEN-AUTOSIGN(1) + MMGEN v13.1.0 May 2022 MMGEN-AUTOSIGN(1) diff --git a/keygen-[MMGen-command-help].md b/keygen-[MMGen-command-help].md index 38133fd..d7d8aca 100644 --- a/keygen-[MMGen-command-help].md +++ b/keygen-[MMGen-command-help].md @@ -107,15 +107,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-KEYGEN(1) + MMGEN v13.1.0 May 2022 MMGEN-KEYGEN(1) diff --git a/msg-[MMGen-command-help].md b/msg-[MMGen-command-help].md new file mode 100644 index 0000000..86a1f62 --- /dev/null +++ b/msg-[MMGen-command-help].md @@ -0,0 +1,106 @@ + 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 + + 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 + + The `create` operation takes one or more ADDRESS_SPEC arguments with the + following format: + + 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. + + + 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 + + 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. + + 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. + + + 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 + + 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 + + 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 + + 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 + + Verify and display the exported JSON signature data: + $ mmgen-msg verify signatures.json + + MMGEN v13.1.0 May 2022 MMGEN-MSG(1) diff --git a/passchg-[MMGen-command-help].md b/passchg-[MMGen-command-help].md index 3e208b9..4c94741 100644 --- a/passchg-[MMGen-command-help].md +++ b/passchg-[MMGen-command-help].md @@ -39,15 +39,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-PASSCHG(1) + MMGEN v13.1.0 May 2022 MMGEN-PASSCHG(1) diff --git a/passgen-[MMGen-command-help].md b/passgen-[MMGen-command-help].md index e2f81f7..3777bcf 100644 --- a/passgen-[MMGen-command-help].md +++ b/passgen-[MMGen-command-help].md @@ -88,15 +88,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-PASSGEN(1) + MMGEN v13.1.0 May 2022 MMGEN-PASSGEN(1) diff --git a/regtest-[MMGen-command-help].md b/regtest-[MMGen-command-help].md index d5f286b..b142499 100644 --- a/regtest-[MMGen-command-help].md +++ b/regtest-[MMGen-command-help].md @@ -24,4 +24,4 @@ is first argument) - MMGEN v13.1.dev009 January 2022 MMGEN-REGTEST(1) + MMGEN v13.1.0 May 2022 MMGEN-REGTEST(1) diff --git a/seedjoin-[MMGen-command-help].md b/seedjoin-[MMGen-command-help].md index f3feabf..dda729a 100644 --- a/seedjoin-[MMGen-command-help].md +++ b/seedjoin-[MMGen-command-help].md @@ -49,15 +49,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-SEEDJOIN(1) + MMGEN v13.1.0 May 2022 MMGEN-SEEDJOIN(1) diff --git a/seedsplit-[MMGen-command-help].md b/seedsplit-[MMGen-command-help].md index 524db46..972bdb9 100644 --- a/seedsplit-[MMGen-command-help].md +++ b/seedsplit-[MMGen-command-help].md @@ -130,15 +130,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-SEEDSPLIT(1) + MMGEN v13.1.0 May 2022 MMGEN-SEEDSPLIT(1) diff --git a/subwalletgen-[MMGen-command-help].md b/subwalletgen-[MMGen-command-help].md index c03ed31..ee6052e 100644 --- a/subwalletgen-[MMGen-command-help].md +++ b/subwalletgen-[MMGen-command-help].md @@ -83,15 +83,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-SUBWALLETGEN(1) + MMGEN v13.1.0 May 2022 MMGEN-SUBWALLETGEN(1) diff --git a/tool(usage)-[MMGen-command-help].md b/tool(usage)-[MMGen-command-help].md index 7d959e6..100faad 100644 --- a/tool(usage)-[MMGen-command-help].md +++ b/tool(usage)-[MMGen-command-help].md @@ -40,6 +40,7 @@ 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] privhex2pubhex privhex [str or STDIN] @@ -80,8 +81,9 @@ File utilities: - 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: @@ -132,4 +134,4 @@ Same as above, but use a pipe: $ echo "deadbeefcafe" | mmgen-tool hexreverse - - MMGEN v13.1.dev009 January 2022 MMGEN-TOOL(USAGE)(1) + MMGEN v13.1.0 May 2022 MMGEN-TOOL(USAGE)(1) diff --git a/tool-[MMGen-command-help].md b/tool-[MMGen-command-help].md index 83cb217..f7ecb2f 100644 --- a/tool-[MMGen-command-help].md +++ b/tool-[MMGen-command-help].md @@ -4,6 +4,7 @@ -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 @@ -69,6 +70,7 @@ 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 @@ -138,8 +140,12 @@ File utilities: - find_incog_data - Use an Incog ID to find hidden incognito wallet data - rand2file - write 'n' bytes of random data to specified file + 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 'n' bytes of random data to specified + file Key, address or subseed generation from an MMGen wallet: @@ -170,4 +176,4 @@ Type 'mmgen-tool help ' for help on a particular command - MMGEN v13.1.dev009 January 2022 MMGEN-TOOL(1) + MMGEN v13.1.0 May 2022 MMGEN-TOOL(1) diff --git a/txbump-[MMGen-command-help].md b/txbump-[MMGen-command-help].md index 52e3809..2ec4aea 100644 --- a/txbump-[MMGen-command-help].md +++ b/txbump-[MMGen-command-help].md @@ -11,7 +11,7 @@ -d, --outdir d Specify an alternate directory 'd' for output -e, --echo-passphrase Print passphrase to screen when typing it -f, --tx-fee f Transaction fee, as a decimal BTC amount or as - satoshis per byte (an integer followed by s). + 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) @@ -74,15 +74,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-TXBUMP(1) + MMGEN v13.1.0 May 2022 MMGEN-TXBUMP(1) diff --git a/txcreate-[MMGen-command-help].md b/txcreate-[MMGen-command-help].md index d5d7267..78a3602 100644 --- a/txcreate-[MMGen-command-help].md +++ b/txcreate-[MMGen-command-help].md @@ -12,7 +12,7 @@ -E, --fee-estimate-mode M Specify the network fee estimate mode. Choices: 'conservative','economical'. Default: 'conservative' -f, --tx-fee f Transaction fee, as a decimal BTC amount or as - satoshis per byte (an integer followed by s). + satoshis per byte (an integer followed by 's'). See FEE SPECIFICATION below. If omitted, fee will be calculated using network fee estimation. -g, --tx-gas g Specify start gas amount in Wei (ETH only) @@ -53,4 +53,4 @@ a plain decimal number, or as satoshis per byte, using an integer followed by 's', for satoshi. - MMGEN v13.1.dev009 January 2022 MMGEN-TXCREATE(1) + MMGEN v13.1.0 May 2022 MMGEN-TXCREATE(1) diff --git a/txdo-[MMGen-command-help].md b/txdo-[MMGen-command-help].md index accba98..3b6da13 100644 --- a/txdo-[MMGen-command-help].md +++ b/txdo-[MMGen-command-help].md @@ -15,7 +15,7 @@ -E, --fee-estimate-mode M Specify the network fee estimate mode. Choices: 'conservative','economical'. Default: 'conservative' -f, --tx-fee f Transaction fee, as a decimal BTC amount or as - satoshis per byte (an integer followed by s). + satoshis per byte (an integer followed by 's'). See FEE SPECIFICATION below. If omitted, fee will be calculated using network fee estimation. -g, --tx-gas g Specify start gas amount in Wei (ETH only) @@ -105,15 +105,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-TXDO(1) + MMGEN v13.1.0 May 2022 MMGEN-TXDO(1) diff --git a/txsend-[MMGen-command-help].md b/txsend-[MMGen-command-help].md index 7b5bc5f..f3ab69d 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.dev009 January 2022 MMGEN-TXSEND(1) + MMGEN v13.1.0 May 2022 MMGEN-TXSEND(1) diff --git a/txsign-[MMGen-command-help].md b/txsign-[MMGen-command-help].md index b501260..8a704e4 100644 --- a/txsign-[MMGen-command-help].md +++ b/txsign-[MMGen-command-help].md @@ -67,15 +67,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-TXSIGN(1) + MMGEN v13.1.0 May 2022 MMGEN-TXSIGN(1) diff --git a/walletchk-[MMGen-command-help].md b/walletchk-[MMGen-command-help].md index df8ac76..67ad950 100644 --- a/walletchk-[MMGen-command-help].md +++ b/walletchk-[MMGen-command-help].md @@ -38,15 +38,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-WALLETCHK(1) + MMGEN v13.1.0 May 2022 MMGEN-WALLETCHK(1) diff --git a/walletconv-[MMGen-command-help].md b/walletconv-[MMGen-command-help].md index 2ee16a3..9847225 100644 --- a/walletconv-[MMGen-command-help].md +++ b/walletconv-[MMGen-command-help].md @@ -48,15 +48,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-WALLETCONV(1) + MMGEN v13.1.0 May 2022 MMGEN-WALLETCONV(1) diff --git a/walletgen-[MMGen-command-help].md b/walletgen-[MMGen-command-help].md index bbf2f92..a102fe1 100644 --- a/walletgen-[MMGen-command-help].md +++ b/walletgen-[MMGen-command-help].md @@ -41,15 +41,15 @@ Format FileExt Valid codes ------ ------- ----------- BIP39Mnemonic .bip39 bip39 - Brainwallet .mmbrain mmbrain,brainwallet,brain,bw,b - DieRollSeedFile .b6d b6d,die,dieroll + Brainwallet .mmbrain mmbrain,brainwallet,brain,bw + DieRollWallet .b6d b6d,die,dieroll IncogWallet .mmincog mmincog,incog,icg,i - IncogWalletHex .mmincox mmincox,incox,incog_hex,xincog,ix,xi + 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,mnem,mn,m + MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m MMGenSeedFile .mmseed mmseed,seed,s MMGenWallet .mmdat wallet,w PlainHexSeedFile .hex hex,rawhex,plainhex - MMGEN v13.1.dev009 January 2022 MMGEN-WALLETGEN(1) + MMGEN v13.1.0 May 2022 MMGEN-WALLETGEN(1) diff --git a/xmrwallet-[MMGen-command-help].md b/xmrwallet-[MMGen-command-help].md index d3c4070..2a2451d 100644 --- a/xmrwallet-[MMGen-command-help].md +++ b/xmrwallet-[MMGen-command-help].md @@ -138,4 +138,4 @@ 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.dev009 January 2022 MMGEN-XMRWALLET(1) + MMGEN v13.1.0 May 2022 MMGEN-XMRWALLET(1)