diff --git a/Getting-Started-with-MMGen.md b/Getting-Started-with-MMGen.md index c34bda7..65d1ff2 100644 --- a/Getting-Started-with-MMGen.md +++ b/Getting-Started-with-MMGen.md @@ -287,10 +287,9 @@ Import your ten addresses into the new tracking wallet with the command: These addresses will now be tracked: any BTC transferred to them will show up in your listing of address balances. Balances can be viewed using `mmgen-tool listaddresses` (the `showempty` option requests the inclusion of addresses with -empty balances, and `showbtcaddrs` causes Bitcoin addresses to be displayed -also). +empty balances). - $ mmgen-tool listaddresses showempty=1 showbtcaddrs=1 + $ mmgen-tool listaddresses showempty=1 MMGenID ADDRESS COMMENT BALANCE 89ABCDEF:L:1 16bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE Donations 0 89ABCDEF:L:2 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc Storage 1 0 diff --git a/MMGen-command-help.md b/MMGen-command-help.md index 52d2337..812d858 100644 --- a/MMGen-command-help.md +++ b/MMGen-command-help.md @@ -3,11 +3,13 @@ * [mmgen-keygen](man-keygen) * [mmgen-passchg](man-passchg) * [mmgen-passgen](man-passgen) +* [mmgen-regtest](man-regtest) * [mmgen-tool](man-tool) * [mmgen-txbump](man-txbump) * [mmgen-txcreate](man-txcreate) +* [mmgen-txdo](man-txdo) * [mmgen-txsend](man-txsend) * [mmgen-txsign](man-txsign) -* [mmgen-txdo](man-txdo) * [mmgen-walletchk](man-walletchk) +* [mmgen-walletconv](man-walletconv) * [mmgen-walletgen](man-walletgen) diff --git a/Recovering-Keys-Without-MMGen.md b/Recovering-Keys-Without-MMGen.md index 3253170..4488771 100644 --- a/Recovering-Keys-Without-MMGen.md +++ b/Recovering-Keys-Without-MMGen.md @@ -1,3 +1,15 @@ +## Table of Contents + +* Introduction +* Obtaining the binary seed + * Convert the seed to binary (legacy addresses) + * Cook the seed and save to binary (Segwit and compressed addresses) +* Generating the keys +* Hex to WIF by hand +* Converting an MMGen mnemonic to hexadecimal format + +#### Introduction + If you're considering using MMGen and are a Bitcoiner with a normal, healthy degree of paranoia, then the following question will probably come to mind: “What if I have funds in an MMGen wallet and I lose the software? How do I @@ -9,60 +21,103 @@ backup copies of the software, MMGen's project page has disappeared from Github Internet. The following tutorial will show you how to recover your keys in the event this unlikely combination of circumstances ever occurs. -#### Obtaining the raw seed +#### Obtaining the binary seed To keep things simple, we'll assume you have a copy of your seed in hexadecimal -(mmhex) format. If your only backup's in Base-58 (mmseed) or mnemonic format, -an additional base-conversion step will be required. If your only backup is an -MMGen wallet, it will need to be decrypted. Both of these cases will be covered -in a future tutorial. +(mmhex) format. If your backup's in mnemonic format, skip to the section +'Converting an MMGen mnemonic to hexadecimal format' below and return here when you've +finished. If your backup is an MMGen wallet, it will need to be decrypted. +That case will be covered in a future tutorial. -Okay, so let's say we have a 128-bit seed with Seed ID FE3C6545, and funds in -the first five addresses of this seed. Here are the addresses: +Okay, so let's say you have a 128-bit seed with Seed ID FE3C6545 and funds in +the first three legacy uncompressed ('L') addresses of this seed. Here are the +addresses: FE3C6545 { 1 1JVi3qcNcjMM7cTR7y9ihKUG1yDLpKRJfL 2 15EfKymfe3v7mqCaL174hTWSgBLFAHvtaR 3 1CUDd6nPHdP5pT7nN8k2AA5WdKRaKPjmea - 4 1Kw2cPuBwY44iWJrzUk7bb2qfpaH6yZuyR - 5 1BNApVR8REhT1BzWP2CvAHKt6ZRxjpubew } -And here's the seed in hex format, which we've stored in some safe place (on +Since you might have your funds in Segwit ('S') addresses, we'll consider that +case too: + + FE3C6545 SEGWIT { + 1 3LpkKqtGkcCukRrgEFWyCajSApioiEWeTw + 2 3FYZQyWqBJcCjaSjCV9ZVj3gKyB9u8AYCX + 3 37wM8hwt69qwH7hZHAMn6RVdc8vMuM1CwJ + } + +Keys for MMGen's compressed ('C') addresses are generated in a similar way as +Segwit ones, as you'll see below, so we won't consider that case separately. + +Here's the seed itself in mmhex format, which you've stored in some safe place (on paper in a safe-deposit box, for example): afc3fe 456d 7f5f 1c4b fe3b c916 b875 60ae 6a3e -Now our task is to generate keys for the five addresses so we can spend our -coins. This task is divided into two parts: 1) generating the keys in -hexadecimal format, and 2) converting the hex keys to wallet interchange -(WIF) format so they can be imported into Bitcoin Core or some other wallet. +Now your task is to generate keys for the addresses so you can spend your coins. +This task is divided into two parts: + +1. generating the keys and converting them to hexadecimal format; and +2. converting the hex keys to wallet interchange (WIF) format for importation +into Bitcoin Core or some other wallet. We'll solve this task using standard command-line utilities available on any Linux or other Unix-like system. -The first thing we must do is convert the seed to binary form and store it in a -file. For that we use 'xxd', a handy tool for converting binary to hex and vice -versa: +> #### Convert the seed to binary (legacy addresses) - $ echo 456d 7f5f 1c4b fe3b c916 b875 60ae 6a3e | xxd -r -p > myseed.bin +> For the legacy addresses, we begin by converting the seed to binary form and +> storing it in a file. For that we use 'xxd', a handy tool for converting binary +> to hex and vice versa. Don't forget to omit the checksum from the seed and +> remove the spaces: -Note that we've omitted the seed's checksum. + $ echo 456d7f5f1c4bfe3bc916b87560ae6a3e | xxd -r -p > myseed.bin -#### Generating the keys +> #### Cook the seed and save to binary (Segwit and compressed addresses) + +> For the other address types, we first “cook” the seed with an identifier +> string using the HMAC-SHA256 algorithm, add ten rounds of SHA256, and save the +> result in binary form. This can be done with the 'openssl' utility, also +> included by default on Unix-based systems: + + $ echo -n segwit | openssl dgst -r -sha256 -mac hmac -macopt hexkey:456d7f5f1c4bfe3bc916b87560ae6a3e | xxd -r -p > cooked-seed.bin + +> If your addresses are of the compressed ('C') type, just use string 'compressed' +> instead of 'segwit' as the 'echo' command's argument. + +> Now add the ten rounds of sha256: + + $ openssl dgst -sha256 -binary cooked-seed.bin > cooked-round1.bin + $ openssl dgst -sha256 -binary cooked-round1.bin > cooked-round2.bin + $ openssl dgst -sha256 -binary cooked-round2.bin > cooked-round3.bin + $ openssl dgst -sha256 -binary cooked-round3.bin > cooked-round4.bin + $ openssl dgst -sha256 -binary cooked-round4.bin > cooked-round5.bin + $ openssl dgst -sha256 -binary cooked-round5.bin > cooked-round6.bin + $ openssl dgst -sha256 -binary cooked-round6.bin > cooked-round7.bin + $ openssl dgst -sha256 -binary cooked-round7.bin > cooked-round8.bin + $ openssl dgst -sha256 -binary cooked-round8.bin > cooked-round9.bin + $ openssl dgst -sha256 -binary cooked-round9.bin > myseed.bin + +#### Generating the keys The MMGen key-generating algorithm uses a chain of SHA-512 hashes with double SHA-256 branches to generate the keys from which each address is derived. To -obtain the chain's first link, we take a single SHA-512 hash of the seed, which -we save in binary form: +obtain the chain's first link, we make a single SHA-512 hash of the seed and +save it in binary form: $ sha512sum myseed.bin | xxd -r -p > link1.bin -A double SHA-256 hash of the link gives us the key of our first address: +A double SHA-256 hash of the first link gives us the key of our first address: $ sha256sum link1.bin | xxd -r -p | sha256sum 05d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e36 - +Or, in the Segwit case: + + b8e58ded53e9ba5a9f4e279a956c061a7da5487bde6a95f1ede0722d287881a0 - + With 'mmgen-tool', we can easily generate the WIF key and address from this hexadecimal key and see that it's correct: @@ -70,14 +125,22 @@ hexadecimal key and see that it's correct: 5HrrmMdQbELyW7iCns5kvSbN9GCPTqEfG7iP1PZiYk49yDDivTi $ mmgen-tool wif2addr 5HrrmMdQbELyW7iCns5kvSbN9GCPTqEfG7iP1PZiYk49yDDivTi - 1JVi3qcNcjMM7cTR7y9ihKUG1yDLpKRJfL # matches FE3C6545:1 above + 1JVi3qcNcjMM7cTR7y9ihKUG1yDLpKRJfL # matches FE3C6545:L:1 above -But since we've lost the MMGen software, we must do the hex-to-WIF conversion -some other way. We could use one of many key-manipulation tools available on -the Internet, such as [this one][01], or [this one][02] (bear in mind that MMGen -currently uses uncompressed public keys, and this must be specified when -converting the hex key to WIF format). Or we could do it ourselves: that will -be covered in the next section. +Or, in the Segwit case: + + $ mmgen-tool hex2wif b8e58ded53e9ba5a9f4e279a956c061a7da5487bde6a95f1ede0722d287881a0 compressed=1 + L3R8Fn21PsY3PWgT8BMggFwXswA2EZntwEGFS5mfDJpSiLq29a9F + + # for a compressed ('C') address, leave out the 'segwit=1' argument + $ mmgen-tool wif2addr L3R8Fn21PsY3PWgT8BMggFwXswA2EZntwEGFS5mfDJpSiLq29a9F segwit=1 + 3LpkKqtGkcCukRrgEFWyCajSApioiEWeTw # matches FE3C6545:S:1 above + +But since we're trying to do this without the MMGen software, we need to find +some other way to convert our hex key to a WIF key. We could use one of many +key-manipulation tools available on the Internet, such as [this one][01], or +[this one][02]. Or we can do it ourselves: that will be covered in the next +section. Meanwhile, let's finish generating hex keys for the rest of our addresses. To get the next key, we generate the next link in the chain from the first link and @@ -85,33 +148,46 @@ take its double SHA-256 hash, just as we did for the first one: $ sha512sum link1.bin | xxd -r -p > link2.bin $ sha256sum link2.bin | xxd -r -p | sha256sum - 5db8fe3c8b52ccc98deab5afae780b6fbe56629e7ee1c6ed826fc2d6a81fb144 - + 5db8fe3c8b52ccc98deab5afae780b6fbe56629e7ee1c6ed826fc2d6a81fb144 - (uncompressed example) + 42f1b998f0f9b7b27b5d0b92ffa8c1c6b96d7202789c41b6e6a6a402e318a04d - (Segwit example) -And so on and so forth, until we've generated all five keys. +And so on and so forth, until we've generated all the keys we need: three, in our case. -#### Hex to WIF the hard way +#### Hex to WIF by hand -If we've chosen to convert our hex keys to WIF format manually, then we have a -bit of work ahead of us. Let's use our just-generated key #1 as an example: +Since we've chosen to convert our hex keys to WIF format manually, we have a bit +of work ahead of us. Let's begin with our just-generated key #1 from seed +FE3C6545: - 05d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e36 + 05d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e36 (uncompressed example) + b8e58ded53e9ba5a9f4e279a956c061a7da5487bde6a95f1ede0722d287881a0 (Segwit example) WIF format prepends hex '80' to the beginning of the key. If the key is -associated with a compressed public key, it also appends '01'. Since MMGen uses -uncompressed public keys, we just prepend the '80': +associated with a compressed public key, it also appends '01': + # uncompressed example: 8005d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e36 + # Segwit example (Segwit uses compressed public keys): + 80b8e58ded53e9ba5a9f4e279a956c061a7da5487bde6a95f1ede0722d287881a001 + The Base58Check format invented by Satoshi for Bitcoin addresses and keys contains a checksum, which we now generate by taking the first four bytes (eight characters) of the double SHA-256 of the above result: + + # uncompressed example: $ echo 8005d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e36 | xxd -r -p | sha256sum | xxd -r -p | sha256sum | cut -c 1-8 7b818629 + # Segwit example: + $ echo 80b8e58ded53e9ba5a9f4e279a956c061a7da5487bde6a95f1ede0722d287881a001 | xxd -r -p | sha256sum | xxd -r -p | sha256sum | cut -c 1-8 + 89bba812 + The checksum gets appended to the end, giving us the following final result: - 8005d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e367b818629 + 8005d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e367b818629 (uncompressed example) + 80b8e58ded53e9ba5a9f4e279a956c061a7da5487bde6a95f1ede0722d287881a00189bba812 (Segwit example) The last step is to convert all this into Base 58. Satoshi created Base-58 encoding for convenient and error-free writing down and dictating of Bitcoin @@ -134,21 +210,28 @@ Now all that remains is to convert our hexadecimal key to decimal and then to Base 58 using this alphabet. This can be done in just four lines of code you can try out at the Python prompt: + # uncompressed example: $ python >>> b58a = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' >>> num = int('8005d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e367b818629',16) >>> result = [b58a[num / 58**e % 58] for e in range(60)] >>> print ''.join(reversed(result)).lstrip('1') - 5HrrmMdQbELyW7iCns5kvSbN9GCPTqEfG7iP1PZiYk49yDDivTi + 5HrrmMdQbELyW7iCns5kvSbN9GCPTqEfG7iP1PZiYk49yDDivTi # matches key for FE3C6545:L:1 above -The variable 'b58a' holds the Base 58 alphabet, 'num' holds the key converted -from hexidecimal to decimal using Python's `int()` function, the third line is -the base conversion routine proper, and the last line formats the result by -reversing it, converting it to a string and stripping off the leading zeroes -('1's). As you can see, the output matches the WIF key we generated above. + # Segwit example has the following differences: + ... + >>> num = int('80b8e58ded53e9ba5a9f4e279a956c061a7da5487bde6a95f1ede0722d287881a00189bba812',16) + ... + L3R8Fn21PsY3PWgT8BMggFwXswA2EZntwEGFS5mfDJpSiLq29a9F # matches key for FE3C6545:S:1 above -Those who know a bit of programming but are unfamiliar with Python might find -the following base conversion code clearer: +Explanation: the variable 'b58a' holds the Base 58 alphabet; 'num' holds the key +converted from hexidecimal to decimal using Python's `int()` function; the third +line is the base conversion routine proper; and the last line formats the result +by reversing it, converting it to a string and stripping off the leading zeroes +('1's). + +Programmers unfamiliar with Python might find the following base conversion code +clearer: def numtob58(n): result = [] @@ -159,8 +242,8 @@ the following base conversion code clearer: result = numtob58(num) -Putting our code into a file gives us have a handy conversion utility we can use -by calling `hex2b58.py `. +Adapting our code a bit and putting it in a file gives us have a handy +conversion utility we can use for any key: $ cat hex2b58.py #!/usr/bin/env python @@ -170,5 +253,110 @@ by calling `hex2b58.py `. result = [b58a[num / 58**e % 58] for e in range(60)] print ''.join(reversed(result)).lstrip('1') + $ hex2b58.py 8005d7219524b983290138a60ada101370007f59a625c43a46f0f8d92950955e367b818629 + 5HrrmMdQbELyW7iCns5kvSbN9GCPTqEfG7iP1PZiYk49yDDivTi + + $ hex2b58.py 80b8e58ded53e9ba5a9f4e279a956c061a7da5487bde6a95f1ede0722d287881a00189bba812 + L3R8Fn21PsY3PWgT8BMggFwXswA2EZntwEGFS5mfDJpSiLq29a9F + +#### Converting an MMGen mnemonic to hexadecimal format + +Our familiar base-10 system uses a series of ten symbols known as digits to +represent numbers from zero to nine: + + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 + +If a number has more than one digit, its value is the sum of its digits +multiplied by increasing powers of ten, beginning with the rightmost, least +significant digit (the “ones column”). + +Thus the number 1234, for example, can be summed as follows: + + 4 x 1 + + 3 x 10 + + 2 x 100 + + 1 x 1000 + +Or in exponential notation: + + 4 x 10^0 + + 3 x 10^1 + + 2 x 10^2 + + 1 x 10^3 + +An MMGen seed mnemonic is a number too, only the “digits” it's made up come from +an alphabetically sorted series of 1626 words, the [Electrum wordlist][03], +which begins like this: + + able (0), about (1), above (2), abuse (3), accept (4) ... + +and ends like this: + + yet (1621), young (1622), yours (1623), yourself (1624), youth (1625) + +(Type `mmgen-tool mn_printlist` to see the full list) + +The words of the Electrum wordlist thus comprise a base-1626 numbering system, +fully analogous to the digits of our familiar base-10 system. + +Here's the mnemonic of our seed (FE3C6545): + + dude foot desperate tie stood themselves trip descend cease suicide apple busy + +To decode it, we begin by listing its words, from least to most significant, +along with the value of each word corresponding to its position in the wordlist: + + busy - 200 + apple - 59 + suicide - 1384 + cease - 221 + descend - 379 + trip - 1493 + themselves - 1433 + stood - 1348 + tie - 1459 + desperate - 386 + foot - 562 + dude - 439 + +All that remains is to multiply the values by increasing powers of 1626 and sum +the results: + + 200 x 1626^0 + + 59 x 1626^1 + + 1384 x 1626^2 + + 221 x 1626^3 + + 379 x 1626^4 + + 1493 x 1626^5 + + 1433 x 1626^6 + + 1348 x 1626^7 + + 1459 x 1626^8 + + 386 x 1626^9 + + 562 x 1626^10 + + 439 x 1626^11 + +With a bit of Python code we can automate the process: + + $ python + >>> sum = power = 0 + >>> for word in 200,59,1384,221,379,1493,1433,1348,1459,386,562,439: + >>> sum += word * 1626 ** power + >>> power += 1 + >>> print sum + 92285275468192044354531703963345906238 # the value in decimal + >>> print '{:x}'.format(sum) + 456d7f5f1c4bfe3bc916b87560ae6a3e # the value in hexadecimal: matches our original hex seed above + +In case you're wondering why 1626 was chosen as the base: 1626 is just large +enough to allow a 128-bit seed to be represented by twelve words. This can also +be demonstrated at the Python prompt: + + $ python + >>> 1626**12 >= 2**128 + True + >>> 1625**12 >= 2**128 + False + [01]: https://github.com/casascius/Bitcoin-Address-Utility [02]: https://github.com/matja/bitcoin-tool +[03]: https://github.com/spesmilo/electrum/blob/1.9.5/lib/mnemonic.py diff --git a/man-addrgen.md b/man-addrgen.md index 07c4ff7..e802921 100644 --- a/man-addrgen.md +++ b/man-addrgen.md @@ -2,31 +2,31 @@ mnemonic, seed or brainwallet USAGE: mmgen-addrgen [opts] [seed source] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -c, --print-checksum Print address list checksum and exit - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -K, --key-generator m Use method 'm' for public key generation - Options: 1:python-ecdsa 2:secp256k1 (default: 2) - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Print addresses to stdout - -t, --type t Choose address type. Options: see ADDRESS TYPES below - (default: 'L' or 'legacy') - -v, --verbose Produce more verbose output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -c, --print-checksum Print address list checksum and exit + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -K, --key-generator m Use method 'm' for public key generation + Options: 1:python-ecdsa 2:secp256k1 (default: 2) + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Print addresses to stdout + -t, --type t Choose address type. Options: see ADDRESS TYPES below + (default: 'L' or 'legacy') + -v, --verbose Produce more verbose output NOTES FOR THIS COMMAND @@ -37,8 +37,10 @@ If available, the secp256k1 library will be used for address generation. ADDRESS TYPES: - 'S', 'segwit' - 'L', 'legacy' + 'C','compressed' - Compressed Bitcoin P2PKH address + 'S','segwit' - Bitcoin Segwit P2SH-P2WPK address + 'L','legacy' - Legacy uncompressed Bitcoin address + NOTES FOR ALL GENERATOR COMMANDS @@ -64,4 +66,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-ADDRGEN(1) + MMGEN v0.9.3 August 2017 MMGEN-ADDRGEN(1) diff --git a/man-addrimport.md b/man-addrimport.md index 86f22ee..9f6d952 100644 --- a/man-addrimport.md +++ b/man-addrimport.md @@ -2,20 +2,20 @@ tracking wallet USAGE: mmgen-addrimport [opts] [mmgen address file] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -a, --address a Import the single Bitcoin address 'a' - -b, --batch Import all addresses in one RPC call. - -l, --addrlist Address source is a flat list of (non-MMGen) Bitcoin 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 - on the blockchain and has a balance. Rescanning is slow. - -t, --test Simulate operation; don't actually import addresses + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -a, --address a Import the single Bitcoin address 'a' + -b, --batch Import all addresses in one RPC call. + -l, --addrlist Address source is a flat list of (non-MMGen) Bitcoin 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 + on the blockchain and has a balance. Rescanning is slow. + -t, --test Simulate operation; don't actually import addresses This command can also be used to update the comment fields of addresses already in the tracking wallet. The --batch and --rescan options cannot be used together. - MMGEN v0.9.2 July 2017 MMGEN-ADDRIMPORT(1) + MMGEN v0.9.3 August 2017 MMGEN-ADDRIMPORT(1) diff --git a/man-keygen.md b/man-keygen.md index 10a6866..5a04350 100644 --- a/man-keygen.md +++ b/man-keygen.md @@ -2,33 +2,33 @@ mnemonic, seed or brainwallet USAGE: mmgen-keygen [opts] [seed source] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -A, --no-addresses Print only secret keys, no addresses - -c, --print-checksum Print address list checksum and exit - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -K, --key-generator m Use method 'm' for public key generation - Options: 1:python-ecdsa 2:secp256k1 (default: 2) - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Print keys to stdout - -t, --type t Choose address type. Options: see ADDRESS TYPES below - (default: 'L' or 'legacy') - -v, --verbose Produce more verbose output - -x, --b16 Print secret keys in hexadecimal too + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -A, --no-addresses Print only secret keys, no addresses + -c, --print-checksum Print address list checksum and exit + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -K, --key-generator m Use method 'm' for public key generation + Options: 1:python-ecdsa 2:secp256k1 (default: 2) + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Print keys to stdout + -t, --type t Choose address type. Options: see ADDRESS TYPES below + (default: 'L' or 'legacy') + -v, --verbose Produce more verbose output + -x, --b16 Print secret keys in hexadecimal too NOTES FOR THIS COMMAND @@ -41,8 +41,10 @@ If available, the secp256k1 library will be used for address generation. ADDRESS TYPES: - 'S', 'segwit' - 'L', 'legacy' + 'C','compressed' - Compressed Bitcoin P2PKH address + 'S','segwit' - Bitcoin Segwit P2SH-P2WPK address + 'L','legacy' - Legacy uncompressed Bitcoin address + NOTES FOR ALL GENERATOR COMMANDS @@ -68,4 +70,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-KEYGEN(1) + MMGEN v0.9.3 August 2017 MMGEN-KEYGEN(1) diff --git a/man-passchg.md b/man-passchg.md index 04132e6..cd07f9b 100644 --- a/man-passchg.md +++ b/man-passchg.md @@ -1,31 +1,31 @@ MMGEN-PASSCHG: Change the passphrase, hash preset or label of an MMGen wallet USAGE: mmgen-passchg [opts] [infile] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -f, --force-update Force update of wallet even if nothing has changed - -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -k, --keep-passphrase Reuse passphrase of input wallet for output wallet - -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -L, --label l Specify a label 'l' for output wallet - -m, --keep-label Reuse label of input wallet for output wallet - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -f, --force-update Force update of wallet even if nothing has changed + -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -k, --keep-passphrase Reuse passphrase of input wallet for output wallet + -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -L, --label l Specify a label 'l' for output wallet + -m, --keep-label Reuse label of input wallet for output wallet + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output For passphrases all combinations of whitespace are equal and leading and trailing space is ignored. This permits reading passphrase or brainwallet @@ -43,4 +43,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-PASSCHG(1) + MMGEN v0.9.3 August 2017 MMGEN-PASSCHG(1) diff --git a/man-passgen.md b/man-passgen.md index 1b9c418..9d6b7d5 100644 --- a/man-passgen.md +++ b/man-passgen.md @@ -2,31 +2,31 @@ mnemonic, seed or brainwallet for the given ID string USAGE: mmgen-passgen [opts] [seed source] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -b, --base32 Generate passwords in Base32 format instead of Base58 - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -L, --passwd-len l Specify length of generated passwords - (default: 20 chars [base58], 24 chars [base32]). - An argument of 'h' will generate passwords of half - the default length. - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Print passwords to stdout - -v, --verbose Produce more verbose output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -b, --base32 Generate passwords in Base32 format instead of Base58 + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -L, --passwd-len l Specify length of generated passwords + (default: 20 chars [base58], 24 chars [base32]). + An argument of 'h' will generate passwords of half + the default length. + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Print passwords to stdout + -v, --verbose Produce more verbose output NOTES FOR THIS COMMAND @@ -78,4 +78,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-PASSGEN(1) + MMGEN v0.9.3 August 2017 MMGEN-PASSGEN(1) diff --git a/man-tool.md b/man-tool.md index 64e9b18..df1821d 100644 --- a/man-tool.md +++ b/man-tool.md @@ -1,14 +1,14 @@ MMGEN-TOOL: Perform various MMGen- and Bitcoin-related operations USAGE: mmgen-tool [opts] OPTIONS: - -d, --outdir d Specify an alternate directory 'd' for output - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -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) - -v, --verbose Produce more verbose output + -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) + -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) + -v, --verbose Produce more verbose output COMMANDS @@ -91,4 +91,4 @@ Type 'mmgen-tool help for help on a particular command - MMGEN v0.9.2 July 2017 MMGEN-TOOL(1) + MMGEN v0.9.3 August 2017 MMGEN-TOOL(1) diff --git a/man-txbump.md b/man-txbump.md index 0b6409a..6c912d6 100644 --- a/man-txbump.md +++ b/man-txbump.md @@ -1,46 +1,46 @@ MMGEN-TXBUMP: Increase the fee on a replaceable (RBF) MMGen transaction, creating a new transaction, and optionally sign and send the new transaction USAGE: mmgen-txbump [opts] [seed source] ... OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for - brainwallet input - -c, --comment-file f Source the transaction's comment from file 'f' - -d, --outdir d Specify an alternate directory 'd' for output - -e, --echo-passphrase Print passphrase to screen when typing it - -f, --tx-fee f Transaction fee, as a decimal BTC amount or in - satoshis per byte (an integer followed by 's') - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -k, --keys-from-file f Provide additional keys for non-MMGen addresses - -K, --key-generator m Use method 'm' for public key generation - Options: 1:python-ecdsa 2:secp256k1 - (default: 2) - -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- - address file (output of 'mmgen-keygen'). Permits - online signing without an MMGen seed source. The - key-address file is also used to verify MMGen-to-BTC - mappings, so the user should record its checksum. - -o, --output-to-reduce o Deduct the fee from output 'o' (an integer, or 'c' - for the transaction's change output, if present) - -O, --old-incog-fmt Specify old-format incognito input - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -P, --passwd-file f Get MMGen wallet or bitcoind passphrase from file 'f' - -q, --quiet Suppress warnings; overwrite files without prompting - -s, --send Sign and send the transaction (the default if seed - data is provided) - -v, --verbose Produce more verbose output - -y, --yes Answer 'yes' to prompts, suppress non-essential output - -z, --show-hash-presets Show information on available hash presets + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for + brainwallet input + -c, --comment-file f Source the transaction's comment from file 'f' + -d, --outdir d Specify an alternate directory 'd' for output + -e, --echo-passphrase Print passphrase to screen when typing it + -f, --tx-fee f Transaction fee, as a decimal BTC amount or in + satoshis per byte (an integer followed by 's') + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -k, --keys-from-file f Provide additional keys for non-MMGen addresses + -K, --key-generator m Use method 'm' for public key generation + Options: 1:python-ecdsa 2:secp256k1 + (default: 2) + -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- + address file (output of 'mmgen-keygen'). Permits + online signing without an MMGen seed source. The + key-address file is also used to verify MMGen-to-BTC + mappings, so the user should record its checksum. + -o, --output-to-reduce o Deduct the fee from output 'o' (an integer, or 'c' + for the transaction's change output, if present) + -O, --old-incog-fmt Specify old-format incognito input + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -P, --passwd-file f Get MMGen wallet or bitcoind passphrase from file 'f' + -q, --quiet Suppress warnings; overwrite files without prompting + -s, --send Sign and send the transaction (the default if seed + data is provided) + -v, --verbose Produce more verbose output + -y, --yes Answer 'yes' to prompts, suppress non-essential output + -z, --show-hash-presets Show information on available hash presets FEE SPECIFICATION: Transaction fees, both on the command line and at the - interactive prompt, may be specified as either absolute BTC amounts, using a - plain decimal number, or as satoshis per byte, using an integer followed by + interactive prompt, may be specified as either absolute BTC amounts, using + a plain decimal number, or as satoshis per byte, using an integer followed by the letter 's'. Transactions may contain both MMGen or non-MMGen input addresses. @@ -77,4 +77,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-TXBUMP(1) + MMGEN v0.9.3 August 2017 MMGEN-TXBUMP(1) diff --git a/man-txcreate.md b/man-txcreate.md index 8154836..86de004 100644 --- a/man-txcreate.md +++ b/man-txcreate.md @@ -1,23 +1,23 @@ MMGEN-TXCREATE: Create a transaction with outputs to specified Bitcoin or MMGen addresses USAGE: mmgen-txcreate [opts] ... [change addr] [addr file] ... OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -a, --tx-fee-adj f Adjust transaction fee by factor 'f' (see below) - -B, --no-blank Don't blank screen before displaying unspent outputs - -c, --comment-file f Source the transaction's comment from file 'f' - -C, --tx-confs c Desired number of confirmations (default: 3) - -d, --outdir d Specify an alternate directory 'd' for output - -f, --tx-fee f Transaction fee, as a decimal BTC amount or in satoshis - per byte (an integer followed by 's'). If omitted, fee - will be calculated using bitcoind's 'estimatefee' call - -i, --info Display unspent outputs and exit - -m, --minconf n Minimum number of confirmations required to spend - outputs (default: 1) - -q, --quiet Suppress warnings; overwrite files without prompting - -r, --rbf Make transaction BIP 125 replaceable (replace-by-fee) - -v, --verbose Produce more verbose output - -y, --yes Answer 'yes' to prompts, suppress non-essential output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -a, --tx-fee-adj f Adjust transaction fee by factor 'f' (see below) + -B, --no-blank Don't blank screen before displaying unspent outputs + -c, --comment-file f Source the transaction's comment from file 'f' + -C, --tx-confs c Desired number of confirmations (default: 3) + -d, --outdir d Specify an alternate directory 'd' for output + -f, --tx-fee f Transaction fee, as a decimal BTC amount or in satoshis + per byte (an integer followed by 's'). If omitted, fee + will be calculated using bitcoind's 'estimatefee' call + -i, --info Display unspent outputs and exit + -m, --minconf n Minimum number of confirmations required to spend + outputs (default: 1) + -q, --quiet Suppress warnings; overwrite files without prompting + -r, --rbf Make transaction BIP 125 replaceable (replace-by-fee) + -v, --verbose Produce more verbose output + -y, --yes Answer 'yes' to prompts, suppress non-essential output The transaction's outputs are specified on the command line, while its inputs are chosen from a list of the user's unpent outputs via an interactive menu. @@ -40,8 +40,8 @@ one address with no amount on the command line. FEE SPECIFICATION: Transaction fees, both on the command line and at the - interactive prompt, may be specified as either absolute BTC amounts, using a - plain decimal number, or as satoshis per byte, using an integer followed by + interactive prompt, may be specified as either absolute BTC amounts, using + a plain decimal number, or as satoshis per byte, using an integer followed by the letter 's'. - MMGEN v0.9.2 July 2017 MMGEN-TXCREATE(1) + MMGEN v0.9.3 August 2017 MMGEN-TXCREATE(1) diff --git a/man-txdo.md b/man-txdo.md index 75f5515..e24f70e 100644 --- a/man-txdo.md +++ b/man-txdo.md @@ -1,46 +1,47 @@ MMGEN-TXDO: Create, sign and send an MMGen transaction USAGE: mmgen-txdo [opts] ... [change addr] [addr file] ... [seed source] ... OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -a, --tx-fee-adj f Adjust transaction fee by factor 'f' (see below) - -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for - brainwallet input - -B, --no-blank Don't blank screen before displaying unspent outputs - -c, --comment-file f Source the transaction's comment from file 'f' - -C, --tx-confs c Desired number of confirmations (default: 3) - -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 in - satoshis per byte (an integer followed by 's'). - If omitted, bitcoind's 'estimatefee' will be used - to calculate the fee. - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -k, --keys-from-file f Provide additional keys for non-MMGen addresses - -K, --key-generator m Use method 'm' for public key generation - Options: 1:python-ecdsa 2:secp256k1 - (default: 2) - -m, --minconf n Minimum number of confirmations required to spend - outputs (default: 1) - -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- - address file (output of 'mmgen-keygen'). Permits - online signing without an MMGen seed source. The - key-address file is also used to verify MMGen-to-BTC - mappings, so the user should record its checksum. - -O, --old-incog-fmt Specify old-format incognito input - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -P, --passwd-file f Get MMGen wallet passphrase from file 'f' - -r, --rbf Make transaction BIP 125 (replace-by-fee) replaceable - -q, --quiet Suppress warnings; overwrite files without prompting - -v, --verbose Produce more verbose output - -y, --yes Answer 'yes' to prompts, suppress non-essential output - -z, --show-hash-presets Show information on available hash presets + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -A, --aug1hf Sign transaction for the Aug. 1 2017 UAHF chain + -a, --tx-fee-adj f Adjust transaction fee by factor 'f' (see below) + -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for + brainwallet input + -B, --no-blank Don't blank screen before displaying unspent outputs + -c, --comment-file f Source the transaction's comment from file 'f' + -C, --tx-confs c Desired number of confirmations (default: 3) + -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 in + satoshis per byte (an integer followed by 's'). + If omitted, bitcoind's 'estimatefee' will be used + to calculate the fee. + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -k, --keys-from-file f Provide additional keys for non-MMGen addresses + -K, --key-generator m Use method 'm' for public key generation + Options: 1:python-ecdsa 2:secp256k1 + (default: 2) + -m, --minconf n Minimum number of confirmations required to spend + outputs (default: 1) + -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- + address file (output of 'mmgen-keygen'). Permits + online signing without an MMGen seed source. The + key-address file is also used to verify MMGen-to-BTC + mappings, so the user should record its checksum. + -O, --old-incog-fmt Specify old-format incognito input + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -P, --passwd-file f Get MMGen wallet passphrase from file 'f' + -r, --rbf Make transaction BIP 125 (replace-by-fee) replaceable + -q, --quiet Suppress warnings; overwrite files without prompting + -v, --verbose Produce more verbose output + -y, --yes Answer 'yes' to prompts, suppress non-essential output + -z, --show-hash-presets Show information on available hash presets The transaction's outputs are specified on the command line, while its inputs are chosen from a list of the user's unpent outputs via an interactive menu. @@ -63,8 +64,8 @@ one address with no amount on the command line. FEE SPECIFICATION: Transaction fees, both on the command line and at the - interactive prompt, may be specified as either absolute BTC amounts, using a - plain decimal number, or as satoshis per byte, using an integer followed by + interactive prompt, may be specified as either absolute BTC amounts, using + a plain decimal number, or as satoshis per byte, using an integer followed by the letter 's'. Transactions may contain both MMGen or non-MMGen input addresses. @@ -101,4 +102,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-TXDO(1) + MMGEN v0.9.3 August 2017 MMGEN-TXDO(1) diff --git a/man-txsend.md b/man-txsend.md index 4c67177..fc8c3a0 100644 --- a/man-txsend.md +++ b/man-txsend.md @@ -1,10 +1,11 @@ MMGEN-TXSEND: Send a Bitcoin transaction signed by mmgen-txsign USAGE: mmgen-txsend [opts] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Specify an alternate directory 'd' for output - -q, --quiet Suppress warnings; overwrite files without prompting - -y, --yes Answer 'yes' to prompts, suppress non-essential output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Specify an alternate directory 'd' for output + -q, --quiet Suppress warnings; overwrite files without prompting + -s, --status Get status of a sent transaction + -y, --yes Answer 'yes' to prompts, suppress non-essential output - MMGEN v0.9.2 July 2017 MMGEN-TXSEND(1) + MMGEN v0.9.3 August 2017 MMGEN-TXSEND(1) diff --git a/man-txsign.md b/man-txsign.md index 528806d..1cf51b4 100644 --- a/man-txsign.md +++ b/man-txsign.md @@ -1,37 +1,38 @@ MMGEN-TXSIGN: Sign Bitcoin transactions generated by mmgen-txcreate USAGE: mmgen-txsign [opts] ... [seed source]... OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for - brainwallet input - -d, --outdir d Specify an alternate directory 'd' for output - -D, --tx-id Display transaction ID and exit - -e, --echo-passphrase Print passphrase to screen when typing it - -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -k, --keys-from-file f Provide additional keys for non-MMGen addresses - -K, --key-generator m Use method 'm' for public key generation - Options: 1:python-ecdsa 2:secp256k1 (default: 2) - -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- - address file (output of 'mmgen-keygen'). Permits - online signing without an MMGen seed source. The - key-address file is also used to verify MMGen-to-BTC - mappings, so the user should record its checksum. - -P, --passwd-file f Get MMGen wallet or bitcoind passphrase from file 'f' - -q, --quiet Suppress warnings; overwrite files without prompting - -I, --info Display information about the transaction and exit - -t, --terse-info Like '--info', but produce more concise output - -v, --verbose Produce more verbose output - -y, --yes Answer 'yes' to prompts, suppress non-essential output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -A, --aug1hf Sign transaction for the Aug. 1 2017 UAHF chain + -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for + brainwallet input + -d, --outdir d Specify an alternate directory 'd' for output + -D, --tx-id Display transaction ID and exit + -e, --echo-passphrase Print passphrase to screen when typing it + -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -k, --keys-from-file f Provide additional keys for non-MMGen addresses + -K, --key-generator m Use method 'm' for public key generation + Options: 1:python-ecdsa 2:secp256k1 (default: 2) + -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key- + address file (output of 'mmgen-keygen'). Permits + online signing without an MMGen seed source. The + key-address file is also used to verify MMGen-to-BTC + mappings, so the user should record its checksum. + -P, --passwd-file f Get MMGen wallet or bitcoind passphrase from file 'f' + -q, --quiet Suppress warnings; overwrite files without prompting + -I, --info Display information about the transaction and exit + -t, --terse-info Like '--info', but produce more concise output + -v, --verbose Produce more verbose output + -y, --yes Answer 'yes' to prompts, suppress non-essential output Transactions may contain both MMGen or non-MMGen input addresses. @@ -67,4 +68,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-TXSIGN(1) + MMGEN v0.9.3 August 2017 MMGEN-TXSIGN(1) diff --git a/man-walletchk.md b/man-walletchk.md index ea190f4..3a56a49 100644 --- a/man-walletchk.md +++ b/man-walletchk.md @@ -1,24 +1,24 @@ MMGEN-WALLETCHK: Check validity of an MMGen wallet USAGE: mmgen-walletchk [opts] [infile] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -e, --echo-passphrase Echo passphrases and other user input to screen - -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -O, --old-incog-fmt Specify old-format incognito input - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -v, --verbose Produce more verbose output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -e, --echo-passphrase Echo passphrases and other user input to screen + -i, --in-fmt f Input from wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -O, --old-incog-fmt Specify old-format incognito input + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -v, --verbose Produce more verbose output For passphrases all combinations of whitespace are equal and leading and trailing space is ignored. This permits reading passphrase or brainwallet @@ -42,4 +42,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-WALLETCHK(1) + MMGEN v0.9.3 August 2017 MMGEN-WALLETCHK(1) diff --git a/man-walletconv.md b/man-walletconv.md index a5cf719..d657bc5 100644 --- a/man-walletconv.md +++ b/man-walletconv.md @@ -1,34 +1,34 @@ MMGEN-WALLETCONV: Convert an MMGen wallet from one format to another USAGE: mmgen-walletconv [opts] [infile] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -i, --in-fmt f Convert from wallet format 'f' (see FMT CODES below) - -o, --out-fmt f Convert to wallet format 'f' (see FMT CODES below) - -H, --hidden-incog-input-params f,o Read hidden incognito data from file - 'f' at offset 'o' (comma-separated) - -J, --hidden-incog-output-params f,o Write hidden incognito data to file - 'f' at offset 'o' (comma-separated). File 'f' will be - created if necessary and filled with random data. - -O, --old-incog-fmt Specify old-format incognito input - -k, --keep-passphrase Reuse passphrase of input wallet for output wallet - -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -L, --label l Specify a label 'l' for output wallet - -m, --keep-label Reuse label of input wallet for output wallet - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -i, --in-fmt f Convert from wallet format 'f' (see FMT CODES below) + -o, --out-fmt f Convert to wallet format 'f' (see FMT CODES below) + -H, --hidden-incog-input-params f,o Read hidden incognito data from file + 'f' at offset 'o' (comma-separated) + -J, --hidden-incog-output-params f,o Write hidden incognito data to file + 'f' at offset 'o' (comma-separated). File 'f' will be + created if necessary and filled with random data. + -O, --old-incog-fmt Specify old-format incognito input + -k, --keep-passphrase Reuse passphrase of input wallet for output wallet + -K, --keep-hash-preset Reuse hash preset of input wallet for output wallet + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -L, --label l Specify a label 'l' for output wallet + -m, --keep-label Reuse label of input wallet for output wallet + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output For passphrases all combinations of whitespace are equal and leading and trailing space is ignored. This permits reading passphrase or brainwallet @@ -52,4 +52,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-WALLETCONV(1) + MMGEN v0.9.3 August 2017 MMGEN-WALLETCONV(1) diff --git a/man-walletgen.md b/man-walletgen.md index d187842..98811ca 100644 --- a/man-walletgen.md +++ b/man-walletgen.md @@ -1,27 +1,27 @@ MMGEN-WALLETGEN: Generate an MMGen wallet from a random seed USAGE: mmgen-walletgen [opts] OPTIONS: - -h, --help Print this help message - --longhelp Print help message for long options (common options) - -d, --outdir d Output files to directory 'd' instead of working dir - -e, --echo-passphrase Echo passphrases and other user input to screen - -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) - -J, --hidden-incog-output-params f,o Write hidden incognito data to file - 'f' at offset 'o' (comma-separated). File 'f' will be - created if necessary and filled with random data. - -l, --seed-len l Specify wallet seed length of 'l' bits. This option - is required only for brainwallet and incognito inputs - with non-standard (< 256-bit) seed lengths. - -L, --label l Specify a label 'l' for output wallet - -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' - for password hashing (default: '3') - -z, --show-hash-presets Show information on available hash presets - -P, --passwd-file f Get wallet passphrase from file 'f' - -q, --quiet Produce quieter output; suppress some warnings - -r, --usr-randchars n Get 'n' characters of additional randomness from user - (min=10, max=80, default=30) - -S, --stdout Write wallet data to stdout instead of file - -v, --verbose Produce more verbose output + -h, --help Print this help message + --longhelp Print help message for long options (common options) + -d, --outdir d Output files to directory 'd' instead of working dir + -e, --echo-passphrase Echo passphrases and other user input to screen + -o, --out-fmt f Output to wallet format 'f' (see FMT CODES below) + -J, --hidden-incog-output-params f,o Write hidden incognito data to file + 'f' at offset 'o' (comma-separated). File 'f' will be + created if necessary and filled with random data. + -l, --seed-len l Specify wallet seed length of 'l' bits. This option + is required only for brainwallet and incognito inputs + with non-standard (< 256-bit) seed lengths. + -L, --label l Specify a label 'l' for output wallet + -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p' + for password hashing (default: '3') + -z, --show-hash-presets Show information on available hash presets + -P, --passwd-file f Get wallet passphrase from file 'f' + -q, --quiet Produce quieter output; suppress some warnings + -r, --usr-randchars n Get 'n' characters of additional randomness from user + (min=10, max=80, default=30) + -S, --stdout Write wallet data to stdout instead of file + -v, --verbose Produce more verbose output For passphrases all combinations of whitespace are equal and leading and trailing space is ignored. This permits reading passphrase or brainwallet @@ -45,4 +45,4 @@ SeedFile .mmseed mmseed,seed,s Wallet .mmdat wallet,w - MMGEN v0.9.2 July 2017 MMGEN-WALLETGEN(1) + MMGEN v0.9.3 August 2017 MMGEN-WALLETGEN(1)