modified: Home.md

new file:   cmdhelp/Command-Help.md
	new file:   cmdhelp/mmgen-addrgen.md
	new file:   cmdhelp/mmgen-addrimport.md
	new file:   cmdhelp/mmgen-keygen.md
	new file:   cmdhelp/mmgen-passchg.md
	new file:   cmdhelp/mmgen-pywallet.md
	new file:   cmdhelp/mmgen-tool.md
	new file:   cmdhelp/mmgen-txcreate.md
	new file:   cmdhelp/mmgen-txsend.md
	new file:   cmdhelp/mmgen-txsign.md
	new file:   cmdhelp/mmgen-walletchk.md
	new file:   cmdhelp/mmgen-walletgen.md
philemon 2014-07-30 00:46:27 +04:00
commit b0ec7b61ec
13 changed files with 418 additions and 0 deletions

@ -9,6 +9,8 @@
> #### See [Getting Started with MMGen](Getting-Started-with-MMGen)
> #### [MMGen command help](cmdhelp/Command-Help)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[**Forum**](https://bitcointalk.org/index.php?topic=567069.0) |

13
cmdhelp/Command-Help.md Normal file

@ -0,0 +1,13 @@
## MMGen Command Help
* [mmgen-addrgen](mmgen-addrgen)
* [mmgen-addrimport](mmgen-addrimport)
* [mmgen-keygen](mmgen-keygen)
* [mmgen-passchg](mmgen-passchg)
* [mmgen-pywallet](mmgen-pywallet)
* [mmgen-tool](mmgen-tool)
* [mmgen-txcreate](mmgen-txcreate)
* [mmgen-txsend](mmgen-txsend)
* [mmgen-txsign](mmgen-txsign)
* [mmgen-walletchk](mmgen-walletchk)
* [mmgen-walletgen](mmgen-walletgen)

57
cmdhelp/mmgen-addrgen.md Normal file

@ -0,0 +1,57 @@
#### mmgen-addrgen --help
MMGEN-ADDRGEN: Generate a list or range of addresses from an MMGen wallet,
mnemonic, seed or password
USAGE: mmgen-addrgen [opts] [infile] <address list>
OPTIONS:
-h, --help Print this help message
-d, --outdir d Specify an alternate directory 'd' for output
-e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry
-H, --show-hash-presets Show information on available hash presets
-K, --no-keyconv Use internal libraries for address generation
instead of 'keyconv'
-l, --seed-len N Length of seed. Options: 128, 192, 256
(default: 256)
-p, --hash-preset p Use scrypt.hash() parameters from preset 'p' when
hashing password (default: '3')
-P, --passwd-file f Get passphrase from file 'f'
-q, --quiet Suppress warnings; overwrite files without
prompting
-S, --stdout Print addresses to stdout
-v, --verbose Produce more verbose output
-b, --from-brain l,p Generate addresses from a user-created password,
i.e. a "brainwallet", using seed length 'l' and
hash preset 'p' (comma-separated)
-g, --from-incog Generate addresses from an incognito wallet
-X, --from-incog-hex Generate addresses from incognito hexadecimal wallet
-G, --from-incog-hidden f,o,l Generate addresses from incognito data in file
'f' at offset 'o', with seed length of 'l'
-m, --from-mnemonic Generate addresses from an electrum-like mnemonic
-s, --from-seed Generate addresses from a seed in .mmseed format
Addresses are given in a comma-separated list. Hyphen-separated ranges are
also allowed.
If available, the external 'keyconv' program will be used for address
generation.
Data for the --from-<what> options will be taken from <infile> if <infile>
is specified. Otherwise, the user will be prompted to enter the data.
For passphrases all combinations of whitespace are equal, and leading and
trailing space are ignored. This permits reading passphrase data from a
multi-line file with free spacing and indentation. This is particularly
convenient for long brainwallet passphrases, for example.
BRAINWALLET NOTE:
As brainwallets require especially strong hashing to thwart dictionary
attacks, the brainwallet hash preset must be specified by the user, using
the 'p' parameter of the '--from-brain' option
The '--from-brain' option also requires the user to specify a seed length
(the 'l' parameter)
For a brainwallet passphrase to always generate the same keys and addresses,
the same 'l' and 'p' parameters to '--from-brain' must be used in all future
invocations with that passphrase

@ -0,0 +1,10 @@
#### mmgen-addrimport --help
MMGEN-ADDRIMPORT: Import addresses (both MMGen and non-MMGen) into a bitcoind
watching wallet
USAGE: mmgen-addrimport [opts] [mmgen address file]
OPTIONS:
-h, --help Print this help message
-l, --addrlist f Import the non-mmgen Bitcoin addresses listed in file 'f'
-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.

63
cmdhelp/mmgen-keygen.md Normal file

@ -0,0 +1,63 @@
#### mmgen-keygen --help
MMGEN-KEYGEN: Generate a list or range of keys from an MMGen wallet,
mnemonic, seed or password
USAGE: mmgen-keygen [opts] [infile] <address list>
OPTIONS:
-h, --help Print this help message
-A, --no-addresses Print only secret keys, no addresses
-d, --outdir d Specify an alternate directory 'd' for output
-e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry
-f, --flat-list Produce a flat list of keys suitable for use with
'mmgen-txsign'
-H, --show-hash-presets Show information on available hash presets
-K, --no-keyconv Use internal libraries for address generation
instead of 'keyconv'
-l, --seed-len N Length of seed. Options: 128, 192, 256
(default: 256)
-p, --hash-preset p Use scrypt.hash() parameters from preset 'p' when
hashing password (default: '3')
-P, --passwd-file f Get passphrase from file 'f'
-q, --quiet Suppress warnings; overwrite files without
prompting
-S, --stdout Print keys to stdout
-v, --verbose Produce more verbose output
-x, --b16 Print secret keys in hexadecimal too
-b, --from-brain l,p Generate keys from a user-created password,
i.e. a "brainwallet", using seed length 'l' and
hash preset 'p' (comma-separated)
-g, --from-incog Generate keys from an incognito wallet
-X, --from-incog-hex Generate keys from incognito hexadecimal wallet
-G, --from-incog-hidden f,o,l Generate keys from incognito data in file
'f' at offset 'o', with seed length of 'l'
-m, --from-mnemonic Generate keys from an electrum-like mnemonic
-s, --from-seed Generate keys from a seed in .mmseed format
Addresses are given in a comma-separated list. Hyphen-separated ranges are
also allowed.
By default, both addresses and secret keys are generated.
If available, the external 'keyconv' program will be used for address
generation.
Data for the --from-<what> options will be taken from <infile> if <infile>
is specified. Otherwise, the user will be prompted to enter the data.
For passphrases all combinations of whitespace are equal, and leading and
trailing space are ignored. This permits reading passphrase data from a
multi-line file with free spacing and indentation. This is particularly
convenient for long brainwallet passphrases, for example.
BRAINWALLET NOTE:
As brainwallets require especially strong hashing to thwart dictionary
attacks, the brainwallet hash preset must be specified by the user, using
the 'p' parameter of the '--from-brain' option
The '--from-brain' option also requires the user to specify a seed length
(the 'l' parameter)
For a brainwallet passphrase to always generate the same keys and addresses,
the same 'l' and 'p' parameters to '--from-brain' must be used in all future
invocations with that passphrase

22
cmdhelp/mmgen-passchg.md Normal file

@ -0,0 +1,22 @@
#### mmgen-passchg --help
MMGEN-PASSCHG: Change the passphrase, hash preset or label of an MMGen
deterministic wallet
USAGE: mmgen-passchg [opts] [filename]
OPTIONS:
-h, --help Print this help message
-d, --outdir d Specify an alternate directory 'd' for output
-H, --show-hash-presets Show information on available hash presets
-k, --keep-old-passphrase Keep old passphrase (use when changing hash
strength or label only)
-L, --label l Change the wallet's label to 'l'
-p, --hash-preset p Change scrypt.hash() parameters to preset 'p'
(default: '3')
-P, --passwd-file f Get new passphrase from file 'f'
-r, --usr-randchars n Get 'n' characters of additional randomness from
user (min=10, max=80)
-q, --quiet Suppress warnings; overwrite files without
prompting
-v, --verbose Produce more verbose output
NOTE: The key ID will change if either the passphrase or hash preset are
changed

13
cmdhelp/mmgen-pywallet.md Normal file

@ -0,0 +1,13 @@
#### mmgen-pywallet --help
MMGEN-PYWALLET: Dump contents of a bitcoind wallet to file
USAGE: mmgen-pywallet [opts] <bitcoind wallet file>
OPTIONS:
-h, --help Print this help message
-d, --outdir d Specify an alternate directory 'd' for output
-e, --echo-passphrase Display passphrase on screen upon entry
-j, --json Dump wallet in json format
-k, --keys Dump all private keys (flat list)
-a, --addrs Dump all addresses (flat list)
-K, --keysforaddrs f Dump private keys for addresses listed in file 'f'
-P, --passwd-file f Get passphrase from file 'f'
-S, --stdout Dump to stdout rather than file

69
cmdhelp/mmgen-tool.md Normal file

@ -0,0 +1,69 @@
#### mmgen-tool --help
MMGEN-TOOL: Perform various BTC-related operations
USAGE: mmgen-tool [opts] <command> <args>
OPTIONS:
-h, --help Print this help message
-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:
File operations
hexdump - encode data into formatted hexadecimal form (file or stdin)
unhexdump - decode formatted hexadecimal data (file or stdin)
MMGen-specific operations
id8 - generate 8-character MMGen ID checksum for file (or stdin)
id6 - generate 6-character MMGen ID checksum for file (or stdin)
check_addrfile - compute checksum and address list for MMGen address file
Bitcoin operations:
strtob58 - convert a string to base 58
hextob58 - convert a hexadecimal number to base 58
b58tohex - convert a base 58 number to hexadecimal
b58randenc - generate a random 32-byte number and convert it to base 58
randwif - generate a random private key in WIF format
randpair - generate a random private key/address pair
wif2hex - convert a private key from WIF to hex format
hex2wif - convert a private key from hex to WIF format
wif2addr - generate a Bitcoin address from a key in WIF format
pubkey2addr - convert Bitcoin public key to address
pubkey2hexaddr - convert Bitcoin public key to address in hex format
hexaddr2addr - convert Bitcoin address from hex to base58 format
addr2hexaddr - convert Bitcoin address from base58 to hex format
privhex2addr - generate Bitcoin address from private key in hex format
Miscellaneous operations:
hexreverse - reverse bytes of a hexadecimal string
hexlify - display string in hexadecimal format
sha256x2 - compute a double sha256 hash of data
getrand - print 'n' bytes (default 32) of random data in hex format
Encryption operations:
encrypt - encrypt a file using MMGen's encryption suite
decrypt - decrypt an MMGen-encrypted file
MMGen encryption suite:
* Key: Scrypt (user-configurable hash parameters, 32-byte salt)
* Enc: AES256_CTR, 16-byte rand IV, sha256 hash + 32-byte nonce + data
* The encrypted file is indistinguishable from random data
Mnemonic operations (choose "electrum" (default), "tirosh" or "all"
wordlists):
mn_rand128 - generate random 128-bit mnemonic
mn_rand192 - generate random 192-bit mnemonic
mn_rand256 - generate random 256-bit mnemonic
mn_stats - show stats for mnemonic wordlist
mn_printlist - print mnemonic wordlist
Bitcoind operations (bitcoind must be running):
listaddresses - show MMGen addresses and their balances
getbalance - like 'bitcoind getbalance' but shows confirmed/unconfirmed,
spendable/unspendable
viewtx - show raw/signed MMGen transaction in human-readable form
IMPORTANT NOTE: Though MMGen mnemonics use the Electrum wordlist, they're
computed using a different algorithm and are NOT Electrum-compatible!
Type 'mmgen-tool <command> --help for usage information on a particular
command

23
cmdhelp/mmgen-txcreate.md Normal file

@ -0,0 +1,23 @@
#### mmgen-txcreate --help
MMGEN-TXCREATE: Create a BTC transaction with outputs to specified addresses
USAGE: mmgen-txcreate [opts] <addr,amt> ... [change addr] [addr file] ...
OPTIONS:
-h, --help Print this help message
-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 (default: 0.0001 BTC)
-i, --info Display unspent outputs and exit
-q, --quiet Suppress warnings; overwrite files without
prompting
Transaction inputs are chosen from a list of the user's unpent outputs
via an interactive menu.
Ages of transactions are approximate based on an average block creation
interval of 8.5 minutes.
Addresses on the command line can be Bitcoin addresses or MMGen addresses
of the form <seed ID>:<number>.
To send all inputs (minus TX fee) to a single output, specify one address
with no amount on the command line.

7
cmdhelp/mmgen-txsend.md Normal file

@ -0,0 +1,7 @@
#### mmgen-txsend --help
MMGEN-TXSEND: Send a Bitcoin transaction signed by mmgen-txsign
USAGE: mmgen-txsend [opts] <signed transaction file>
OPTIONS:
-h, --help Print this help message
-d, --outdir d Specify an alternate directory 'd' for output
-q, --quiet Suppress warnings; overwrite files without prompting

54
cmdhelp/mmgen-txsign.md Normal file

@ -0,0 +1,54 @@
#### mmgen-txsign --help
MMGEN-TXSIGN: Sign Bitcoin transactions generated by mmgen-txcreate
USAGE: mmgen-txsign [opts] <transaction file> .. [mmgen wallet/seed/words/brainwallet file] .. [addrfile] ..
OPTIONS:
-h, --help Print this help message
-d, --outdir d Specify an alternate directory 'd' for output
-e, --echo-passphrase Print passphrase to screen when typing it
-i, --info Display information about the transaction and exit
-I, --tx-id Display transaction ID and exit
-k, --keys-from-file f Provide additional keys for non-MMGen addresses
-K, --all-keys-from-file f Like '-k', only use the keyfile as key source
for ALL inputs, including MMGen ones. Can be used
for online signing without an MMGen seed source.
MMGen-to-BTC mappings can optionally be verified
using address file(s) listed on the command line
-P, --passwd-file f Get passphrase from file 'f'
-q, --quiet Suppress warnings; overwrite files without
prompting
-V, --skip-key-preverify Skip optional key pre-verification step
-b, --from-brain l,p Generate keys from a user-created password,
i.e. a "brainwallet", using seed length 'l' and
hash preset 'p'
-w, --use-wallet-dat Get keys from a running bitcoind
-g, --from-incog Generate keys from an incognito wallet
-X, --from-incog-hex Generate keys from an incognito hexadecimal wallet
-G, --from-incog-hidden f,o,l Generate keys from incognito data in file
'f' at offset 'o', with seed length of 'l'
-m, --from-mnemonic Generate keys from an electrum-like mnemonic
-s, --from-seed Generate keys from a seed in .mmseed format
Transactions with either MMGen or non-MMGen input addresses may be signed.
For non-MMGen inputs, the bitcoind wallet.dat is used as the key source.
For MMGen inputs, key data is generated from your seed as with the
mmgen-addrgen and mmgen-keygen utilities.
Data for the --from-<what> options will be taken from a file if a second
file is specified on the command line. Otherwise, the user will be
prompted to enter the data.
In cases of transactions with mixed MMGen and non-MMGen inputs, non-MMGen
keys must be supplied in a separate file (WIF format, one key per line)
using the '--keys-from-file' option. Alternatively, one may get keys from
a running bitcoind using the '--force-wallet-dat' option. First import the
required MMGen keys using 'bitcoind importprivkey'.
For transaction outputs that are MMGen addresses, MMGen-to-Bitcoin address
mappings are verified. Therefore, seed material for these addresses must
be supplied on the command line (but see '--all-keys-from-file').
Seed data supplied in files must have the following extensions:
wallet: '.mmdat'
seed: '.mmseed'
mnemonic: '.mmwords'
brainwallet: '.mmbrain'

@ -0,0 +1,26 @@
#### mmgen-walletchk --help
MMGEN-WALLETCHK: Check integrity of an MMGen deterministic wallet, display
its information, and export seed and mnemonic data.
USAGE: mmgen-walletchk [opts] [filename]
OPTIONS:
-h, --help Print this help message
-d, --outdir d Specify an alternate directory 'd' for output
-e, --echo-passphrase Print passphrase to screen when typing it
-P, --passwd-file f Get passphrase from file 'f'
-q, --quiet Suppress warnings; overwrite files without prompting
-r, --usr-randchars n Get 'n' characters of additional randomness from
user (min=10, max=80)
-S, --stdout Print seed or mnemonic data to standard output
-v, --verbose Produce more verbose output
-g, --export-incog Export wallet to incognito format
-X, --export-incog-hex Export wallet to incognito hexadecimal format
-G, --export-incog-hidden f,o Hide incognito data in existing file 'f'
at offset 'o' (comma-separated)
-m, --export-mnemonic Export the wallet's mnemonic to file
-s, --export-seed Export the wallet's seed to file
Since good randomness is particularly important for incognito wallets,
the '--usr-randchars' option is turned on by default to gather additional
entropy from the user when one of the '--export-incog*' options is
selected. If you fully trust your OS's random number generator and wish
to disable this option, then specify '-r0' on the command line.

@ -0,0 +1,59 @@
#### mmgen-walletgen --help
MMGEN-WALLETGEN: Generate an MMGen deterministic wallet
USAGE: mmgen-walletgen [opts] [infile]
OPTIONS:
-h, --help Print this help message
-d, --outdir d Specify an alternate directory 'd' for output
-e, --echo-passphrase Print passphrase to screen when typing it
-H, --show-hash-presets Show information on available hash presets
-l, --seed-len n Create seed of length 'n'. Options: 128,192,256
(default: 256)
-L, --label l Label to identify this wallet (32 chars max.
Allowed symbols: A-Z, a-z, 0-9, " ", "_", ".")
-p, --hash-preset p Use scrypt.hash() parameters from preset 'p'
(default: '3')
-P, --passwd-file f Get passphrase from file 'f'
-q, --quiet Produce quieter output; overwrite files without
prompting
-r, --usr-randchars n Get 'n' characters of additional randomness from
user (min=10, max=80)
-v, --verbose Produce more verbose output
-b, --from-brain l,p Generate wallet from a user-created passphrase,
i.e. a "brainwallet", using seed length 'l' and
hash preset 'p' (comma-separated)
-g, --from-incog Generate wallet from an incognito-format wallet
-m, --from-mnemonic Generate wallet from an Electrum-like mnemonic
-s, --from-seed Generate wallet from a seed in .mmseed format
By default (i.e. when invoked without any of the '--from-<what>' options),
mmgen-walletgen generates a wallet based on a random seed.
Data for the --from-<what> options will be taken from <infile> if <infile>
is specified. Otherwise, the user will be prompted to enter the data.
For passphrases all combinations of whitespace are equal, and leading and
trailing space are ignored. This permits reading passphrase data from a
multi-line file with free spacing and indentation. This is particularly
convenient for long brainwallet passphrases, for example.
Since good randomness is particularly important when generating wallets,
the '--usr-randchars' option is turned on by default to gather additional
entropy from the user. If you fully trust your OS's random number gener-
ator and wish to disable this option, specify '-r0' on the command line.
BRAINWALLET NOTE:
As brainwallets require especially strong hashing to thwart dictionary
attacks, the brainwallet hash preset must be specified by the user, using
the 'p' parameter of the '--from-brain' option. This preset should be
stronger than the one used for hashing the seed (i.e. the default value or
the one specified in the '--hash-preset' option).
The '--from-brain' option also requires the user to specify a seed length
(the 'l' parameter), which overrides both the default and any one given in
the '--seed-len' option.
For a brainwallet passphrase to always generate the same keys and
addresses, the same 'l' and 'p' parameters to '--from-brain' must be used
in all future invocations with that passphrase.