continues to be supported with '--old-incog-fmt' option
* mmgen-txsign: '--mmgen-keys-from-file' option (supersedes
'--all-keys-from-file' option) allows offline signing of transactions with
both MMGen and non-MMGen inputs. Instead of a flat keylist, a key-address
file (the output of 'mmgen-keygen'), optionally encrypted, is used both as a
key source and to verify MMGen-to-BTC mappings for both inputs and outputs,
eliminating the need for an additional address file.
* mmgen-addrimport: '--keyaddr-file' option allows using key-address file
(possibly encrypted) as an address source.
WARNING: As of this commit, the old sipa watchonly build is NO LONGER SUPPORTED
due to wallet incompatibility.
With the next release of Bitcoin Core, MMGen will work with the binary build of
bitcoind and building the daemon from source will become unnecessary. For those
who don't wish to wait, updated build instructions are provided in the
documentation wiki.
in -txcreate, -txsign and -txsend. All UTF-8 characters allowed, <= 72 chars
(non-UTF-8 terminals are limited to ASCII). Motivation: saved *.sig files now
become valuable for recordkeeping.
* 'mmgen-tool': file encryption utility with strong encryption
* 'mmgen-tool': find hidden incognito data in file using the Incog ID
* User may now supply additional entropy in all cases where random data is
needed. This user entropy (typed symbols + keystroke intervals) is hashed
into a key with Scrypt and used to encrypt all random data produced during
the session by the OS.
Additions/improvements:
mmgen-txsign - sign multiple transactions in one operation
mmgen-addrimport - skip rescanning block chain for new addresses
mmgen-tool - new functions:
Bitcoind operations:
listaccounts - like 'bitcoind listaccounts' but shows MMGen wallet balances
too
getbalance - like 'bitcoind getbalance' but shows confirmed/unconfirmed,
spendable/unspendable
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)
General operations:
hexdump - encode binary data in formatted hexadecimal form
unhexdump - decode formatted hexadecimal data
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
wif2addr - generate a Bitcoin address from a key in WIF format
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
Incognito wallet is 48, 56 or 64 bytes of apparently random data.
Allows user to hide wallet data in a pre-existing file or on a disk
partition (preferably filled in advance with random data).
Can be used to hide wallet securely in unencrypted cloud storage or
on paper, without revealing the nature of the data.
Data may be written at a user-specified offset into the file or
partition, in which case user must remember the offset.
Each export operation uses a new random init vector to create different
data each time. This allows the user to hide wallets at different
locations on the Net without detection.
User must remember hash preset in addition to passphrase (though trial
and error can be used if it's forgotten).
Fully integrated with address generation and tx signing operations.