command-help-tool.md
MMGEN-TOOL: Perform various MMGen- and cryptocoin-related operations
USAGE: mmgen-tool [opts] <command> <command args>
OPTIONS:
-d, --outdir d Specify an alternate directory 'd' for output
-h, --help Print this help message
--longhelp Print help message for long options (common options)
-e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry
-k, --use-internal-keccak-module Force use of the internal keccak module
-K, --keygen-backend n Use backend 'n' for public key generation. Options
for BTC: 1:libsecp256k1 [default] 2:python-ecdsa
-l, --list List available commands
-p, --hash-preset p Use the scrypt hash parameters defined by preset 'p'
for password hashing (default: '3')
-P, --passwd-file f Get passphrase from file 'f'.
-q, --quiet Produce quieter output
-r, --usr-randchars n Get 'n' characters of additional randomness from
user (min=10, max=80)
-t, --type t Specify address type (valid choices: 'legacy',
'compressed', 'segwit', 'bech32', 'zcash_z')
-v, --verbose Produce more verbose output
-X, --cached-balances Use cached balances (Ethereum only)
-y, --yes Answer 'yes' to prompts, suppress non-essential output
COMMANDS
Help/usage commands:
help - display usage information for a single command or all commands
usage - display usage information for a single command or all commands
General string conversion and hashing utilities:
b32tohex - convert an MMGen-flavor base 32 string to hexadecimal
b58chktohex - convert a base58-check encoded string to hexadecimal
b58tobytes - convert a base 58 string to bytes (warning: outputs binary
data)
b58tohex - convert a base 58 string to hexadecimal
b6dtohex - convert a die roll base6 (base6d) string to hexadecimal
bytespec - convert a byte specifier such as ‘4GB’ into an integer
bytestob58 - convert bytes to base 58 (supply data via STDIN)
hash160 - compute ripemd160(sha256(data)) (convert hex pubkey to hex
addr)
hash256 - compute sha256(sha256(data)) (double sha256)
hexdump - create hexdump of data from file (use '-' for stdin)
hexlify - convert bytes in file to hexadecimal (use '-' for stdin)
hexreverse - reverse bytes of a hexadecimal string
hextob32 - convert a hexadecimal string to an MMGen-flavor base 32
string
hextob58 - convert a hexadecimal string to base 58
hextob58chk - convert a hexadecimal string to base58-check encoding
hextob6d - convert a hexadecimal string to die roll base6 (base6d)
id6 - generate 6-character MMGen ID for a file (use '-' for stdin)
id8 - generate 8-character MMGen ID for a file (use '-' for stdin)
randb58 - generate random data (default: 32 bytes) and convert it to
base 58
randhex - print 'n' bytes (default 32) of random data in hex format
str2id6 - generate 6-character MMGen ID for a string, ignoring spaces
in string
to_bytespec - convert an integer to a byte specifier such as ‘4GB’
unhexdump - decode hexdump from file (use '-' for stdin) (warning:
outputs binary data)
unhexlify - convert a hexadecimal string to bytes (warning: outputs
binary data)
Cryptocoin key/address utilities:
May require use of the '--coin', '--type' and/or '--testnet' options
Examples:
mmgen-tool --coin=ltc --type=bech32 wif2addr <wif key>
mmgen-tool --coin=zec --type=zcash_z randpair
addr2pubhash - convert coin address to public key hash
addr2scriptpubkey - convert coin address to scriptPubKey
eth_checksummed_addr - create a checksummed Ethereum address
hex2wif - convert a private key from hexadecimal to WIF format
privhex2addr - generate a coin address from raw hexadecimal
private key data
privhex2pubhex - generate a hexadecimal public key from raw
hexadecimal private key data
pubhash2addr - convert public key hash to address
pubhex2addr - convert a hexadecimal pubkey to an address
pubhex2redeem_script - convert a hexadecimal pubkey to a Segwit
P2SH-P2WPKH redeem script
randpair - generate a random private key/address pair
randwif - generate a random private key in WIF format
redeem_script2addr - convert a Segwit P2SH-P2WPKH redeem script to an
address
scriptpubkey2addr - convert scriptPubKey to coin address
wif2addr - generate a coin address from a key in WIF format
wif2hex - convert a private key from WIF to hexadecimal format
wif2redeem_script - convert a WIF private key to a Segwit P2SH-P2WPKH
redeem script
wif2segwit_pair - generate a Segwit P2SH-P2WPKH redeem script and
address from a WIF private key
Seed phrase utilities:
Supported seed phrase formats: 'mmgen' (default), 'bip39', 'xmrseed'
IMPORTANT NOTE: MMGen Wallet’s default seed phrase format uses the
Electrum wordlist, however seed phrases are computed using a different
algorithm and are NOT Electrum-compatible!
BIP39 support is fully compatible with the standard, allowing users to
import and export seed entropy from BIP39-compatible wallets. However,
users should be aware that BIP39 support does not imply BIP32 support!
MMGen uses its own key derivation scheme differing from the one described
by the BIP32 protocol.
For Monero (‘xmrseed’) seed phrases, input data is reduced to a spendkey
before conversion so that a canonical seed phrase is produced. This is
required because Monero seeds, unlike ordinary wallet seeds, are tied
to a concrete key/address pair. To manually generate a Monero spendkey,
use the ‘hex2wif’ command.
hex2mn - convert a 16, 24 or 32-byte hexadecimal string to a
mnemonic seed phrase
mn2hex - convert a mnemonic seed phrase to a hexadecimal string
mn2hex_interactive - convert an interactively supplied mnemonic seed
phrase to a hexadecimal string
mn_printlist - print a mnemonic wordlist
mn_rand128 - generate a random 128-bit mnemonic seed phrase
mn_rand192 - generate a random 192-bit mnemonic seed phrase
mn_rand256 - generate a random 256-bit mnemonic seed phrase
mn_stats - show stats for a mnemonic wordlist
Utilities for viewing/checking MMGen address and transaction files:
addrfile_chksum - compute checksum for MMGen address file
keyaddrfile_chksum - compute checksum for MMGen key-address file
viewkeyaddrfile_chksum - compute checksum for MMGen key-address file
passwdfile_chksum - compute checksum for MMGen password file
txview - display specified raw or signed MMGen transaction
files in human-readable form
File encryption and decryption:
MMGen encryption suite:
* Key: Scrypt (user-configurable hash parameters, 32-byte salt)
* Enc: AES256_CTR, 16-byte rand IV, sha256 hash + 32-byte nonce + data
* The encrypted file is indistinguishable from random data
decrypt - decrypt a file
encrypt - encrypt a file
File utilities:
decrypt_keystore - decrypt the data in a keystore wallet, returning
the decrypted data in binary format
decrypt_geth_keystore - decrypt the private key in a Geth keystore wallet,
returning the decrypted key in hex format
find_incog_data - Use an Incog ID to find hidden incognito wallet
data
rand2file - write ‘nbytes’ bytes of random data to specified
file (dd-style byte specifiers supported)
Key, address or subseed generation from an MMGen wallet:
gen_addr - generate a single MMGen address from default or
specified wallet
gen_key - generate a single WIF key for specified MMGen
address from default or specified wallet
get_subseed - get the Seed ID of a single subseed by Subseed
Index for default or specified wallet
get_subseed_by_seed_id - get the Subseed Index of a single subseed by Seed
ID for default or specified wallet
list_shares - list the Seed IDs of the shares resulting from a
split of default or specified wallet
list_subseeds - list a range of subseed Seed IDs for default or
specified wallet
Tracking-wallet commands using the JSON-RPC interface:
add_label - add descriptive label for address in tracking wallet
daemon_version - print coin daemon version
getbalance - list confirmed/unconfirmed, spendable/unspendable
balances in tracking wallet
listaddress - list the specified MMGen address in the tracking
wallet and its balance
listaddresses - list MMGen addresses in the tracking wallet and their
balances
remove_address - remove an address from tracking wallet
remove_label - remove descriptive label for address in tracking wallet
rescan_address - rescan an address in the tracking wallet to update its
balance
rescan_blockchain - rescan the blockchain to update historical
transactions in the tracking wallet
resolve_address - resolve an MMGen address in the tracking wallet to a
coin address or vice-versa
twexport - export a tracking wallet to JSON format
twimport - restore a tracking wallet from a JSON dump created by
‘twexport’
twview - view tracking wallet unspent outputs
txhist - view transaction history of tracking wallet
Type ‘mmgen-tool help <command>’ for help on a particular command
MMGEN v15.0.0 September 2024 MMGEN-TOOL(1)