|
@@ -86,7 +86,8 @@ The data directory is `.mmgen` in the user’s home directory and the config
|
|
|
file is `mmgen.cfg`. The config file contains global settings which you may
|
|
|
wish to edit at some point to customize your installation. These settings
|
|
|
include the maximum transaction fee; the user name, password and hostname
|
|
|
-used for communicating with bitcoind; and a number of others.
|
|
|
+used for communicating with your Bitcoin or altcoin daemon; and a number of
|
|
|
+others.
|
|
|
|
|
|
#### <a name='a_ts'>Bob and Alice regtest mode</a>
|
|
|
|
|
@@ -151,11 +152,11 @@ Since the wallet is a small, humanly readable ASCII file, it can easily be
|
|
|
printed out on paper.
|
|
|
|
|
|
Another highly recommended way to back up your wallet is to generate a mnemonic
|
|
|
-or seed file [as described below](#a_ms) and memorize it. If you have an
|
|
|
-average or better memory, you’ll find memorizing your mnemonic to be
|
|
|
-surprisingly easy. And the peace of mind that comes with knowing that your coins
|
|
|
-are recoverable **even if you lose all your physical backups** can’t be
|
|
|
-overestimated.
|
|
|
+seed phrase or seed file [as described below](#a_ms) and write it down or
|
|
|
+memorize it. If you have an average or better memory, you’ll find memorizing
|
|
|
+your seed phrase to be surprisingly easy. And the peace of mind that comes with
|
|
|
+knowing that your coins are recoverable **even if you lose all your physical
|
|
|
+backups** can’t be overestimated.
|
|
|
|
|
|
#### <a name='a_ga'>Generate addresses (offline computer)</a>
|
|
|
|
|
@@ -182,18 +183,19 @@ Now generate ten Segwit-P2SH addresses with your just-created wallet:
|
|
|
Note that the address range `1-10` specified on the command line is included in
|
|
|
the resulting filename.
|
|
|
|
|
|
-MMGen currently supports four Bitcoin address types: `legacy` (uncompressed
|
|
|
-P2PKH), `compressed` (compressed P2PKH), `segwit` (P2SH-P2WPKH) and `bech32`
|
|
|
-(native Segwit), denoted by the code letters `L`, `C`, `S` and `B` respectively.
|
|
|
-Address types can be referred to either in full or by code letter. To generate
|
|
|
-Bech32 addresses, for example, you can specify either `--type=bech32` or
|
|
|
-`--type=B` on the command line.
|
|
|
+MMGen currently supports four address types for Bitcoin and Bitcoin code fork
|
|
|
+coins: `legacy` (uncompressed P2PKH), `compressed` (compressed P2PKH),
|
|
|
+`segwit` (P2SH-P2WPKH) and `bech32` (native Segwit), denoted by the code
|
|
|
+letters `L`, `C`, `S` and `B` respectively. Address types can be referred to
|
|
|
+either in full or by code letter. To generate Bech32 addresses, for example,
|
|
|
+you can specify either `--type=bech32` or `--type=B` on the command line.
|
|
|
|
|
|
-For backwards compatibility, legacy addresses are generated by default, but this
|
|
|
-is probably not what you want unless you have a very old MMGen installation
|
|
|
-created before compressed address support was added. Most new users will wish
|
|
|
-to generate either Segwit-P2SH (`S`) or Bech32 (`B`) addresses instead. For
|
|
|
-BCH, which lacks Segwit support, compressed (`C`) addresses are the best choice.
|
|
|
+For backwards compatibility, legacy addresses with uncompressed public keys
|
|
|
+are generated by default, but this is almost certainly not what you want
|
|
|
+unless you’re restoring an old MMGen installation created before compressed
|
|
|
+address support was added. Most new users will wish to generate either
|
|
|
+Segwit-P2SH (`S`) or Bech32 (`B`) addresses instead. For BCH, which lacks
|
|
|
+Segwit support, compressed (`C`) addresses are the best choice.
|
|
|
|
|
|
Generation examples for various address types:
|
|
|
|
|
@@ -225,7 +227,7 @@ Note that for non-legacy address types the code letter is included in the
|
|
|
filename.
|
|
|
|
|
|
To fund your MMGen wallet, first import the addresses into your tracking wallet
|
|
|
-and then send some BTC to any of them. If you run out of addresses, generate
|
|
|
+and then send some coins to any of them. If you run out of addresses, generate
|
|
|
more. To generate a hundred addresses you’d specify an address range of
|
|
|
`1-100`.
|
|
|
|
|
@@ -277,7 +279,7 @@ wiki page for more details on invoking the daemon for your coin and platform).
|
|
|
Upon startup, older daemons will automatically generate a new default
|
|
|
`wallet.dat`, which MMGen will use as its tracking wallet. With newer daemons
|
|
|
(e.g. Core 0.21.0 and above), the tracking wallet will be a directory named
|
|
|
-`mmgen-tracking-wallet` located by default in the `wallets` subdirectory.
|
|
|
+`mmgen-tracking-wallet` located by default under the `wallets` subdirectory.
|
|
|
|
|
|
Import your ten addresses into the new tracking wallet with the command:
|
|
|
|
|
@@ -285,8 +287,8 @@ 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).
|
|
|
+listaddresses` (the `showempty` option requests addresses with empty balances
|
|
|
+to be displayed too).
|
|
|
|
|
|
$ mmgen-tool listaddresses showempty=1
|
|
|
MMGenID ADDRESS COMMENT BALANCE
|
|
@@ -299,16 +301,16 @@ empty balances).
|
|
|
TOTAL: 0 BTC
|
|
|
|
|
|
*While not covered in this introduction, note that it’s also possible to [import
|
|
|
-ordinary Bitcoin addresses into your tracking wallet][01]. This allows you to
|
|
|
-track and spend funds from another wallet using MMGen without having to go
|
|
|
-through the network. To use it, you must save the keys corresponding to the
|
|
|
-addresses where the funds are stored in a separate file to use during signing.*
|
|
|
+external coin addresses into your tracking wallet][01]. This allows you to
|
|
|
+track and spend funds from another wallet with MMGen without having to go
|
|
|
+through the network. To do this, you must save the keys corresponding to the
|
|
|
+given addresses in a separate file for use during transaction signing.*
|
|
|
|
|
|
Note that each address has a unique ID (the ‘MMGen ID’) consisting of a Seed ID,
|
|
|
address type code letter, and index. Addresses of different types may be
|
|
|
imported into the same tracking wallet, and since they’re generated from different
|
|
|
sub-seeds you needn’t worry about key reuse. For example, the addresses
|
|
|
-`89ABCDEF:S:1` and `89ABCDEF:B:1` are cryptographically distinct: no one but the
|
|
|
+`89ABCDEF:S:1` and `89ABCDEF:B:1` are cryptographically unrelated: no one but the
|
|
|
wallet’s owner can see that they were generated from the same seed.
|
|
|
|
|
|
Now that your addresses are being tracked, you may go ahead and send some BTC to
|
|
@@ -345,15 +347,16 @@ NOTE: For backwards compatibility, legacy addresses may omit the code letter
|
|
|
from the MMGen ID. Thus address `89ABCDEF:L:5` may be expressed as
|
|
|
`89ABCDEF:5`. For other address types the code letter is mandatory.
|
|
|
|
|
|
-To send 0.1 BTC to each of addresses `89ABCDEF:S:6` and `89ABCDEF:S:7` and return
|
|
|
-the change to `89ABCDEF:S:8`, you’d do this:
|
|
|
+To send 0.1 BTC to each of addresses `89ABCDEF:S:6` and `89ABCDEF:S:7`,
|
|
|
+sending the change to `89ABCDEF:S:8`, you’d do this:
|
|
|
|
|
|
$ mmgen-txcreate 89ABCDEF:S:6,0.1 89ABCDEF:S:7,0.1 89ABCDEF:S:8
|
|
|
|
|
|
-As you can see, each send address is followed by a comma and the amount. The
|
|
|
-address with no amount is the change address. All addresses belonging to your
|
|
|
-seed in the above examples are already imported and tracked, so you’re OK. If
|
|
|
-you wanted to send to `89ABCDEF:S:11`, you’d have to import it first.
|
|
|
+As you can see, each address is followed by a comma and an amount, except for
|
|
|
+the change address, for which the amount will be calculated automatically.
|
|
|
+All addresses belonging to your seed in the above examples are already
|
|
|
+imported and tracked, so you’re OK. If you wanted to send to `89ABCDEF:S:11`,
|
|
|
+you’d have to import it first.
|
|
|
|
|
|
|
|
|
Let’s go with the first of our two examples above.
|
|
@@ -368,7 +371,7 @@ will look something like this:
|
|
|
Num TX id Vout Address Amt(BTC) Age(d)
|
|
|
1) e9742b16... 5 3L3kxmi.. 89ABCDEF:S:1 Donations 0.1 1
|
|
|
2) fa84d709... 6 3N4dSGj.. 89ABCDEF:S:2 Storage 1 0.2 1
|
|
|
- 3) 8dde8ef5... 6 3M1fVDc.. 89ABCDEF:S:3 Storage 1 0.3 1
|
|
|
+ 3) 8dde8ef5... 6 3M1fVDc.. 89ABCDEF:S:3 Storage 2 0.3 1
|
|
|
4) c76874c7... 0 3E8MFoC.. 89ABCDEF:S:4 Storage 3 0.4 1
|
|
|
|
|
|
Sort options: [t]xid, [a]mount, a[d]dress, [A]ge, [r]everse, [M]mgen addr
|
|
@@ -382,13 +385,15 @@ After quitting the menu with ‘q’, you’ll see the following prompt:
|
|
|
Here you must choose unspent outputs of sufficient value to cover the send
|
|
|
amount of 0.1 BTC, plus the transaction fee (for more on fees, see ‘Transaction
|
|
|
Fees’ under ‘Advanced Topics’ below). Output #2 is worth 0.2 BTC, which is
|
|
|
-sufficient, so we’ll choose that. After several more prompts and confirmations,
|
|
|
-your transaction will be saved:
|
|
|
+sufficient, so we’ll choose that and hit ENTER. When prompted for a
|
|
|
+transaction fee, we’ll choose 0.0001 BTC (note that integer fees followed by
|
|
|
+the letter ‘s’ for “satoshis per byte” are also permissible). After a couple
|
|
|
+more prompts and confirmations, your transaction will be saved:
|
|
|
|
|
|
Transaction written to file 'FEDCBA[0.1].rawtx'
|
|
|
|
|
|
-Note that the transaction filename consists of a unique MMGen Transaction ID
|
|
|
-plus the non-change spend amount.
|
|
|
+The transaction filename consists of a unique MMGen Transaction ID plus the
|
|
|
+non-change spend amount.
|
|
|
|
|
|
As you can see, MMGen gives you complete control over your transaction inputs
|
|
|
and change addresses. This feature will be appreciated by privacy-conscious users.
|
|
@@ -428,12 +433,23 @@ listing should look something like this:
|
|
|
89ABCDEF:S:1 Donations 0.1
|
|
|
89ABCDEF:S:3 Storage 2 0.3
|
|
|
89ABCDEF:S:4 Storage 3 0.4
|
|
|
- 89ABCDEF:S:5 Storage 1 0.0999
|
|
|
+ 89ABCDEF:S:5 0.0999
|
|
|
TOTAL: 0.8999 BTC
|
|
|
|
|
|
-Since you’ve sent 0.1 BTC to a third party, your balance has declined by 0.1 BTC
|
|
|
-plus the tx fee of 0.0001 BTC. To verify that your transaction’s received its
|
|
|
-second, third and so on confirmations, increase `minconf` accordingly.
|
|
|
+Alternatively, you may use `mmgen-tool twview` or `mmgen-txcreate -i` for more
|
|
|
+detailed and configurable output:
|
|
|
+
|
|
|
+ $ mmgen-tool twview
|
|
|
+ UNSPENT OUTPUTS (sort order: Age) Total BTC: 0.8999
|
|
|
+ Network: BTC MAINNET
|
|
|
+ Num TXid Vout Address Amt(BTC) Confs
|
|
|
+ 1) e3c3.. 6 36bNmyYISiptuvJG3X7MPwii.. 89ABCDEF:S:1 Donations 0.1 68
|
|
|
+ 2) face.. 6 3HgYCsfqYzIg7LVVfDTp7gYJ.. 89ABCDEF:S:3 Storage 2 0.3 68
|
|
|
+ 3) abab.. 6 34Tu3z1tiexXDonNsFIkvzqu.. 89ABCDEF:S:4 Storage 3 0.4 68
|
|
|
+ 4) 123c.. 6 3PeI55vtp2bX2uKDkAAR2c6e.. 89ABCDEF:S:5 0.0999 7
|
|
|
+
|
|
|
+Since you’ve sent 0.1 BTC to a third party, your balance has decreased by 0.1
|
|
|
+BTC plus the transaction fee of 0.0001 BTC.
|
|
|
|
|
|
Congratulations! You’ve now mastered the basics of MMGen! To learn about some
|
|
|
of MMGen’s more advanced features, continue reading.
|
|
@@ -793,7 +809,7 @@ wallet for the online machine:
|
|
|
Securely delete the original file.
|
|
|
|
|
|
Generate a range of addresses with your online default wallet/subwallet and
|
|
|
-import them into your tracking wallet:
|
|
|
+import them into your tracking wallet:
|
|
|
|
|
|
$ mmgen-addrgen --type=bech32 1-10
|
|
|
$ mmgen-addrimport FC9A8735-B*.addrs
|