modified: Getting-Started-with-MMGen.md

modified:   Home.md
	modified:   MMGen-Quick-Start-with-Regtest-Mode.md
	renamed:    Recovering-Keys-Without-MMGen.md -> Recovering-Your-Keys-Without-the-MMGen-Software.md
	modified:   [manpages]
philemon 2017-10-01 11:37:32 +03:00
commit de35adc3f4
Signed by untrusted user who does not match committer: mmgen
GPG key ID: 62DBE9E5212F05BE
18 changed files with 153 additions and 137 deletions

@ -86,17 +86,16 @@ generation, wallet format conversion, address and key generation, and address
import operations on an offline computer with no blockchain and no bitcoin
balance.
If you want to practice creating, signing and sending transactions, however, as
well as tracking balances, you'll need a fully synced blockchain and some actual
coins to play with. To avoid risking real funds, it's *highly recommended* to
practice transaction operations using **Bob and Alice regtest mode** until you
feel confident you know what you're doing.
If you want to practice creating, signing and sending transactions with real
bitcoins, however, you'll need a fully synced blockchain and some actual coins
to play with.
A convenient frontend for bitcoind's regression test mode, MMGen's Bob and Alice
mode creates a private blockchain and a virtual network of two users who can
send bitcoins to each other. All of MMGen's functionality is available in this
mode, making it an ideal, risk-free way to acquaint yourself with the wallet's
features. Refer to [MMGen Quick Start with Regtest Mode][06] to get started.
Fortunately, there's an alternative: MMGen's **regtest mode** feature creates a
virtual network of two users, Bob and Alice, who transact with each other on a
private blockchain. All of MMGen's functionality is available in regtest mode,
making it an ideal way to learn to use the MMGen wallet without risking real
coins. You may wish to pause here and perform the steps in the tutorial [MMGen
Quick Start with Regtest Mode][06] before continuing on.
### <a name='a_bo'>Basic Operations</a>
@ -143,54 +142,63 @@ printed out on paper.
Another highly recommended way to back up your wallet is to generate a mnemonic
or seed file <a href='#a_ms'>as described below </a> and memorize it. If you
have an average or better memory, you'll find memorizing mnemonics to be
have an average or better memory, you'll find memorizing your mnemonic to be
surprisingly easy.
#### <a name='a_ga'>Generate addresses (offline computer)</a>
Now generate ten addresses with your just-created wallet:
Now generate ten Segwit addresses with your just-created wallet:
$ mmgen-addrgen 1-10
$ mmgen-addrgen --type=segwit 1-10
...
Addresses written to file '89ABCDEF[1-10].addrs'
Addresses written to file '89ABCDEF-S[1-10].addrs'
$ cat '89ABCDEF[1-10].addrs'
89ABCDEF {
1 16bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE
2 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc
3 1HgYCsfqYzIg7LVVfDTp7gYJocJEiDAy6N
4 14Tu3z1tiexXDonNsFIkvzqutE5E3pTK8s
5 1PeI55vtp2bX2uKDkAAR2c6ekHNYe4Hcq7
6 1FEqfEsSILwXPfMvVvVuUovzTaaST62Mnf
7 1LTTzuhMqPLwQ4IGCwwugny6ZMtUQJSJ1
8 1F9495H8EJLb54wirgZkVgI47SP7M2RQWv
9 1JbrCyt7BdxRE9GX1N7GiEct8UnIjPmpYd
10 1H7vVTk4ejUbQXw45I6g5qvPBSe9bsjDqh
$ cat '89ABCDEF-S[1-10].addrs'
89ABCDEF SEGWIT {
1 36bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE
2 3AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc
3 3HgYCsfqYzIg7LVVfDTp7gYJocJEiDAy6N
4 34Tu3z1tiexXDonNsFIkvzqutE5E3pTK8s
5 3PeI55vtp2bX2uKDkAAR2c6ekHNYe4Hcq7
6 3FEqfEsSILwXPfMvVvVuUovzTaaST62Mnf
7 3LTTzuhMqPLwQ4IGCwwugny6ZMtUQJSJ1
8 3F9495H8EJLb54wirgZkVgI47SP7M2RQWv
9 3JbrCyt7BdxRE9GX1N7GiEct8UnIjPmpYd
10 3H7vVTk4ejUbQXw45I6g5qvPBSe9bsjDqh
}
Note that the address range ‘1-10’ specified on the command line is included in
the resulting filename.
NOTE: MMGen supports Segwit addresses as of version 0.9.2 and compressed P2PKH
addresses as of version 0.9.3. To generate Segwit or compressed addresses, add
`--type=segwit` or `--type=compressed` to the command line. Segwit and
compressed address files are distinguished from Legacy ones by an added ‘-S’ and
‘-C’ in the filenames:
MMGen currently supports three address types: legacy uncompressed, compressed
P2PKH and Segwit, denoted by the respective code letters ‘L’, ‘C’ and ‘S’. For
backwards compatibility, legacy addresses are generated by default. To generate
compressed addresses, specify `--type=compressed` on the command line.
$ mmgen-addrgen --type segwit 1-10
Legacy addresses are of interest only for existing pre-Segwit MMGen
installations, so it's unlikely you'll wish to generate them. Compressed
addresses are the preferable choice for Bitcoin Cash (BCH) wallets, since
Bitcoin Cash doesn't support Segwit.
# legacy uncompressed
$ mmgen-addrgen 1-10
...
$ cat '89ABCDEF-S[1-10].addrs'
89ABCDEF SEGWIT {
1 32GiSWo9zIQgkCmjAaLIrbPwXhKry2jHhj
$ cat '89ABCDEF[1-10].addrs'
89ABCDEF {
1 12GiSWo9zIQgkCmjAaLIrbPwXhKry2jHhj
...
$ mmgen-addrgen --type compressed 1-10
# compressed P2PKH
$ mmgen-addrgen --type=compressed 1-10
...
$ cat '89ABCDEF-C[1-10].addrs'
89ABCDEF COMPRESSED {
1 13jbRxWjswXtaDzLBJDboMcIe6nLohFb9M
...
Note that for non-legacy address types the code letter is present in the
filename.
To fund your MMGen wallet, first import the addresses into your tracking wallet
and then spend some BTC into any of them. If you run out of addresses, generate
more. To generate a hundred addresses, for example, you’d specify an address
@ -204,7 +212,7 @@ provide the addresses with labels. We’ll use the labels ‘Donations’, ‘S
Make a copy of the address file
$ cp '89ABCDEF[1-10].addrs' my.addrs
$ cp '89ABCDEF-S[1-10].addrs' my.addrs
and edit it using the text editor of your choice,
@ -213,17 +221,17 @@ and edit it using the text editor of your choice,
adding labels to the addresses you’ve chosen to spend to:
# My first MMGen addresses
89ABCDEF {
1 16bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE Donations
2 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc Storage 1
3 1HgYCsfqYzIg7LVVfDTp7gYJocJEiDAy6N Storage 2
4 14Tu3z1tiexXDonNsFIkvzqutE5E3pTK8s Storage 3
5 1PeI55vtp2bX2uKDkAAR2c6ekHNYe4Hcq7
6 1FEqfEsSILwXPfMvVvVuUovzTaaST62Mnf
7 1LTTzuhMqPLwQ4IGCwwugny6ZMtUQJSJ1
8 1F9495H8EJLb54wirgZkVgI47SP7M2RQWv
9 1JbrCyt7BdxRE9GX1N7GiEct8UnIjPmpYd
10 1H7vVTk4ejUbQXw45I6g5qvPBSe9bsjDqh
89ABCDEF SEGWIT {
1 36bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE Donations
2 3AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc Storage 1
3 3HgYCsfqYzIg7LVVfDTp7gYJocJEiDAy6N Storage 2
4 34Tu3z1tiexXDonNsFIkvzqutE5E3pTK8s Storage 3
5 3PeI55vtp2bX2uKDkAAR2c6ekHNYe4Hcq7
6 3FEqfEsSILwXPfMvVvVuUovzTaaST62Mnf
7 3LTTzuhMqPLwQ4IGCwwugny6ZMtUQJSJ1
8 3F9495H8EJLb54wirgZkVgI47SP7M2RQWv
9 3JbrCyt7BdxRE9GX1N7GiEct8UnIjPmpYd
10 3H7vVTk4ejUbQXw45I6g5qvPBSe9bsjDqh
}
Any line beginning with ‘#’ is a comment. Comments may be placed at the ends
@ -247,11 +255,11 @@ empty balances).
$ mmgen-tool listaddresses showempty=1
MMGenID ADDRESS COMMENT BALANCE
89ABCDEF:L:1 16bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE Donations 0
89ABCDEF:L:2 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc Storage 1 0
89ABCDEF:L:3 1HgYCsfqYzIg7LVVfDTp7gYJocJEiDAy6N Storage 2 0
89ABCDEF:L:4 14Tu3z1tiexXDonNsFIkvzqutE5E3pTK8s Storage 3 0
89ABCDEF:L:5 1PeI55vtp2bX2uKDkAAR2c6ekHNYe4Hcq7 0
89ABCDEF:S:1 36bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE Donations 0
89ABCDEF:S:2 3AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc Storage 1 0
89ABCDEF:S:3 3HgYCsfqYzIg7LVVfDTp7gYJocJEiDAy6N Storage 2 0
89ABCDEF:S:4 34Tu3z1tiexXDonNsFIkvzqutE5E3pTK8s Storage 3 0
89ABCDEF:S:5 3PeI55vtp2bX2uKDkAAR2c6ekHNYe4Hcq7 0
...
TOTAL: 0 BTC
@ -262,10 +270,9 @@ 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.*
Note that each address has a unique ID (the ‘MMGen ID’) consisting of its Seed
ID, its address type (‘L’ for Legacy, ‘S’ for Segwit and ‘C’ for Compressed),
and its number (index). Addresses of different types may be imported into the
same tracking wallet; since they're generated from different sub-seeds you
needn't worry about key reuse.
ID, its address type code letter and its index. Addresses of different types
may be imported into the same tracking wallet; since they're generated from
different sub-seeds you needn't worry about key reuse.
Now that your addresses are being tracked, you may go ahead and send some BTC to
them over the Bitcoin network. If you send 0.1, 0.2, 0.3 and 0.4 BTC
@ -274,10 +281,10 @@ have confirmed:
$ mmgen-tool listaddresses
MMGenID COMMENT BALANCE
89ABCDEF:L:1 Donations 0.1
89ABCDEF:L:2 Storage 1 0.2
89ABCDEF:L:3 Storage 2 0.3
89ABCDEF:L:4 Storage 3 0.4
89ABCDEF:S:1 Donations 0.1
89ABCDEF:S:2 Storage 1 0.2
89ABCDEF:S:3 Storage 2 0.3
89ABCDEF:S:4 Storage 3 0.4
TOTAL: 1 BTC
#### <a name='a_ct'>Create a transaction (online computer)</a>
@ -289,29 +296,28 @@ with different combinations of inputs and outputs. Of course, if you're using
testnet or regtest mode, then you risk nothing even when broadcasting
transactions.
To send 0.1 BTC to the a third-party address 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,
for example, and send the change back to yourself at address 89ABCDEF:5, you’d
To send 0.1 BTC to the a third-party address 3AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,
for example, and send the change back to yourself at address 89ABCDEF:S:5, you’d
issue the following command:
$ mmgen-txcreate 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 89ABCDEF:5
$ mmgen-txcreate 3AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 89ABCDEF:S:5
Note that 'mmgen-txcreate' accepts either MMGen IDs or Bitcoin addresses as
arguments.
'mmgen-txcreate' accepts either MMGen IDs or Bitcoin addresses as arguments.
IMPORTANT NOTE: For the time being, Legacy addresses are the default, so
address ‘89ABCDEF:5’ is equivalent to ‘89ABCDEF:L:5’. In the future, users may
be given the option to make Segwit (for BTC) or Compressed (for BCH) addresses
the default.
NOTE: For backwards compatibility, the code letter may be omitted from the MMGen
ID for legacy addresses. Thus address ‘89ABCDEF:L:5’, for example, may be
expressed as ‘89ABCDEF:5’. For other address types the code letter is
mandatory.
To send 0.1 BTC to each of your addresses 89ABCDEF:6 and 89ABCDEF:7 and return the
change to 89ABCDEF:8, you’d do this:
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:
$ mmgen-txcreate 89ABCDEF:6,0.1 89ABCDEF:7,0.1 89ABCDEF:8
$ 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:11 instead, you'd have to import it first.
you wanted to send to 89ABCDEF:S:11 instead, you'd have to import it first.
Let’s go with the first of our two examples above.
@ -324,10 +330,10 @@ will look something like this:
UNSPENT OUTPUTS (sort order: Age) Total BTC: 1
Num TX id Vout Address Amt(BTC) Age(d)
1) e9742b16... 5 1L3kxmi.. 89ABCDEF:L:1 Donations 0.1 1
2) fa84d709... 6 1N4dSGj.. 89ABCDEF:L:2 Storage 1 0.2 1
3) 8dde8ef5... 6 1M1fVDc.. 89ABCDEF:L:3 Storage 1 0.3 1
4) c76874c7... 0 1E8MFoC.. 89ABCDEF:L:4 Storage 3 0.4 1
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
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
Display options: show [D]ays, [g]roup, show [m]mgen addr, r[e]draw screen
@ -365,9 +371,9 @@ Note that the signed transaction file has a new extension, '.sigtx'.
#### <a name='a_st'>Send a transaction (online computer)</a>
Now you’re ready for the final step: broadcasting the transaction to the
network. Copy the signed transaction file to your online computer, start
bitcoind if necessary, make sure your blockchain is up-to-date and issue the
command:
network. Start bitcoind if it's not already running, and make sure your
blockchain is fully synced. Then copy the signed transaction file to your
online computer and issue the command:
$ mmgen-txsend FEDCBA[0.1].sigtx
...
@ -383,10 +389,10 @@ listing should look something like this:
$ mmgen-tool listaddresses minconf=1
MMGenID COMMENT BALANCE
89ABCDEF:L:1 Donations 0.1
89ABCDEF:L:3 Storage 2 0.3
89ABCDEF:L:4 Storage 3 0.4
89ABCDEF:L:5 Storage 1 0.0999
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
TOTAL: 0.8999 BTC
Since you’ve sent 0.1 BTC to a third party, your balance has declined by 0.1 BTC
@ -427,9 +433,9 @@ The mnemonic is a complete representation of your seed and may be used anywhere
where you’d use an MMGen wallet. You can generate addresses with it just as you
do with a wallet:
$ mmgen-addrgen 89ABCDEF.mmwords 1-10
$ mmgen-addrgen --type=segwit 89ABCDEF.mmwords 1-10
...
Address data written to file '89ABCDEF[1-10].addrs'
Address data written to file '89ABCDEF-S[1-10].addrs'
You can use it to sign transactions:
@ -592,10 +598,10 @@ the wrong hands.
Your incognito wallet (whether hex or binary) can be used just like any other
MMGen wallet, mnemonic or seed file to generate addresses and sign transactions:
$ mmgen-addrgen 89ABCDEF-87654321-CA86420E[256,5].mmincox 101-110
$ mmgen-addrgen --type=segwit 89ABCDEF-87654321-CA86420E[256,5].mmincox 101-110
...
Generated 10 addresses
Addresses written to file '89ABCDEF[101-110].addrs'
Addresses written to file '89ABCDEF-S[101-110].addrs'
$ mmgen-txsign FABCDE[0.3].rawtx 89ABCDEF-87654321-CA86420E[256,5].mmincox
...
@ -676,9 +682,9 @@ well as addresses, thus functioning as a hot wallet for a range of addresses.
Assuming your hot address range begins at 1001, you could start by creating a
key-address file for a hundred hot addresses like this:
$ mmgen-keygen 1001-1100
$ mmgen-keygen --type=segwit 1001-1100
...
Secret keys written to file '89ABCDEF[1001-1100].akeys.mmenc'
Secret keys written to file '89ABCDEF-S[1001-1100].akeys.mmenc'
`mmgen-keygen` prompts you for a password to encrypt the key-address file with.
This is a wise precaution, as it provides at least some security for keys that
@ -687,25 +693,25 @@ will be stored on an online machine.
Now copy the key-address file to your online machine and import the addresses
into your tracking wallet:
$ mmgen-addrimport --batch --keyaddr-file '89ABCDEF[1001-1100].akeys.mmenc'
$ mmgen-addrimport --batch --keyaddr-file '89ABCDEF-S[1001-1100].akeys.mmenc'
After funding your hot wallet by spending into some addresses in this range you
can do quickie transactions with these funds using the `mmgen-txdo` command:
$ mmgen-txdo -M '89ABCDEF[1001-1100].akeys.mmenc' 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 89ABCDEF:1010
$ mmgen-txdo -M '89ABCDEF-S[1001-1100].akeys.mmenc' 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 89ABCDEF:S:1010
...
Transaction sent: dcea1357....
The `--mmgen-keys-from-file` or `-M` option is required when using a key-address
file in place of a default wallet. Note that your change address 89ABCDEF:1010
is within the range covered by the key-address file, so your change funds will
remain “hot spendable”.
file in place of a default wallet. Note that your change address
89ABCDEF:S:1010 is within the range covered by the key-address file, so your
change funds will remain “hot spendable”.
Using `mmgen-txdo` with a default online hot wallet is even simpler. For a hot
wallet with Seed ID 0FDE89AB, for instance, creating and sending a transaction
looks like this:
would look like this:
$ mmgen-txdo 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 0FDE89AB:10
$ mmgen-txdo 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 0FDE89AB:S:10
#### <a name='a_fee'>Transaction Fees</a>
@ -757,7 +763,7 @@ incrementally increasing fees will created online and then signed offline.
Create, sign and send a BIP 125 replaceable transaction with a fee of 50
satoshis per byte:
$ mmgen-txdo --rbf --tx-fee 50s 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 0FDE89AB:5
$ mmgen-txdo --rbf --tx-fee 50s 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 0FDE89AB:S:5
...
Signed transaction written to file 'FEDCBB[0.1,50].sigtx'
...
@ -799,7 +805,7 @@ you'll need to supply it on the command line as a parameter to the `-M` option.
To achieve the same result as in the above example using a cold wallet, just
create the initial transaction with `mmgen-txcreate` instead of `mmgen-txdo`:
$ mmgen-txcreate --rbf --tx-fee 50s 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 89ABCDEF:5
$ mmgen-txcreate --rbf --tx-fee 50s 1AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc,0.1 89ABCDEF:S:5
...
Transaction written to file 'FEDCBC[0.1,50].rawtx'
@ -834,7 +840,7 @@ them in turn until you get a confirmation:
[01]: https://github.com/mmgen/mmgen/wiki/Tracking-and-spending-ordinary-Bitcoin-addresses
[02]: https://tpfaucet.appspot.com
[03]: Recovering-Keys-Without-MMGen
[03]: Recovering-Your-Keys-Without-the-MMGen-Software
[04]: https://bitcoin.org/en/developer-examples#testnet
[05]: https://bitcoin.org/en/developer-examples#regtest-mode
[06]: https://github.com/mmgen/mmgen/wiki/MMGen-Quick-Start-with-Regtest-Mode

@ -13,4 +13,4 @@
> #### [MMGen command help](MMGen-command-help)
> #### [Recovering your keys without the MMGen software](Recovering-Keys-Without-MMGen)
> #### [Recovering your keys without the MMGen software](Recovering-Your-Keys-Without-the-MMGen-Software)

@ -1,17 +1,17 @@
MMGen's regtest mode, also known as Bob and Alice mode, provides a convenient
front-end for bitcoind's regression test mode. It creates a private blockchain
and a virtual network of two users who can perform all MMGen operations,
including sending bitcoins to each other.
MMGen's regtest mode, also known as Bob and Alice mode, uses the Bitcoin
daemon's regression test feature to create a virtual network of two users who
transact on a private blockchain.
To transact as Bob or Alice, just add the '--bob' or '--alice' option to any
MMGen command. MMGen will start and stop the Bitcoin daemon automatically as
required. All of MMGen's functionality is available in this mode, making it an
ideal, risk-free way to acquaint yourself with the MMGen wallet's features and
transacting on the Bitcoin blockchain in general.
All of MMGen's functionality is available in regtest mode, making it an ideal
way to learn to use the MMGen wallet without risking real coins.
To send a transaction or perform any other operation as Bob or Alice, just add
the '--bob' or '--alice' option to the relevant MMGen command. MMGen will start
and stop the Bitcoin daemon automatically as needed.
This tutorial provides a quick, hands-on introduction.
1. Create the blockchain and Bob and Alice's tracking wallets:
1. Create the regtest blockchain and Bob and Alice's tracking wallets:
$ mmgen-regtest setup
@ -26,7 +26,7 @@ This tutorial provides a quick, hands-on introduction.
$ mmgen-addrgen --bob --type=compressed 1-3
...
Addresses written to file '1163DDF1-C[1-3].addrs'
# 1163DDF1 is Bob's Seed ID; since it's generated randomly, your Bob's will be different
# 1163DDF1 is Bob's Seed ID; since it's generated randomly, yours will be different
4. Import the addresses into Bob's tracking wallet:
@ -34,8 +34,8 @@ This tutorial provides a quick, hands-on introduction.
...
Type uppercase 'YES' to confirm: YES
5. List the addresses in Bob's tracking wallet. You should see the addresses
you just imported:
5. List the addresses in Bob's tracking wallet. You'll see the addresses you
just imported:
$ mmgen-tool --bob listaddresses showempty=1
MMGenID ADDRESS COMMENT BALANCE
@ -43,17 +43,21 @@ you just imported:
1163DDF1:C:2 n1oszhfAyRrHi7qJupyzaWXTcpMQGsGJEf - 0
1163DDF1:C:3 mhYYHM7renPpNi8SUj5yeEZ54eAUJ5HyQ1 - 0
Note that regtest mode uses testnet-format addresses, which differ from the
familiar mainnet addresses beginning with '1'.
6. Fund one of the addresses (let's choose the first one) with some BTC:
$ mmgen-regtest send mw42oJ94yRA6ZUNSzmMpjZDR74JNyvqzzZ 500
7. Make sure the funds arrived:
7. Make sure the funds reached their destination:
$ mmgen-tool --bob listaddresses showempty=1
MMGenID ADDRESS COMMENT BALANCE
1163DDF1:C:1 mw42oJ94yRA6ZUNSzmMpjZDR74JNyvqzzZ - 500
1163DDF1:C:2 n1oszhfAyRrHi7qJupyzaWXTcpMQGsGJEf - 0
1163DDF1:C:3 mhYYHM7renPpNi8SUj5yeEZ54eAUJ5HyQ1 - 0
TOTAL: 500 BTC
8. You can view Bob's total balance this way too:
@ -72,8 +76,8 @@ you just imported:
Addresses written to file '9304C211-S[1-3].addrs'
11. Repeat steps 4-7 for Alice by substituting '--bob' for '--alice'. Don't
forget to adjust the address filename and send address as well. The result of
step 7 should look something like this:
forget to change the address filename and send address to suit. The result of
step 7 will look something like this:
MMGenID ADDRESS COMMENT BALANCE
9304C211:S:1 2N3HhxasbRvrJyHg72JNVCCPi9EUGrEbFnu - 500
@ -82,14 +86,20 @@ step 7 should look something like this:
TOTAL: 500 BTC
12. Split Alice's funds, sending 200 BTC to address S:2 and the change to S:3.
Specify a fee of 20 satoshis/byte and '--quiet' for less noisy output:
Specify a fee of 20 satoshis/byte and make output quieter:
$ mmgen-txdo --alice --tx-fee=20s --quiet 9304C211:S:2,300 9304C211:S:3
...
Type uppercase 'YES' to confirm: YES
Transaction sent: 78ca853816b55527b42ca8784c887a5f482c752522f914d2f17d6afcd8a3b076
13. Check the mempool for the transaction:
Note that for simplicity's sake this tutorial uses the `mmgen-txdo` command
to create, sign and send transactions in one operation. In normal, cold
wallet mode, your seed will be held on a separate offline computer which
you'll use to sign transactions using the `mmgen-txsign` command. This is
explained in detail in the Getting Started guide.
13. View the transaction in the mempool:
$ mmgen-regtest show_mempool
['78ca853816b55527b42ca8784c887a5f482c752522f914d2f17d6afcd8a3b076']
@ -112,7 +122,7 @@ Specify a fee of 20 satoshis/byte and '--quiet' for less noisy output:
9304C211:S:3 2NF4y3y4CEjQCcssjX2BDLHT88XHn8z53JS - 199.999967
TOTAL: 499.999967 BTC
17. Have Alice send 10 BTC to Bob's C:2 address, with the change back to her S:1
17. Have Alice send 10 BTC to Bob's C:2 address and the change back to her S:1
address. This time Alice specifies an absolute fee in BTC.
$ mmgen-txdo --alice --tx-fee=0.0001 --quiet 9304C211:S:1 n1oszhfAyRrHi7qJupyzaWXTcpMQGsGJEf,10
@ -120,7 +130,7 @@ address. This time Alice specifies an absolute fee in BTC.
Enter a range or space-separated list of outputs to spend: 1
...
Note that Alice is reusing address S:1 here, and address reuse is generally a
Note that Alice is reusing address S:1 here, and address reuse is generally a
bad idea. You'd be better off generating and importing some new addresses for
Alice by repeating steps 3 and 4 with a different address range. I'll leave
that to you as an exercise.

@ -66,4 +66,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-ADDRGEN(1)
MMGEN v0.9.3 October 2017 MMGEN-ADDRGEN(1)

@ -18,4 +18,4 @@
The --batch and --rescan options cannot be used together.
MMGEN v0.9.3 August 2017 MMGEN-ADDRIMPORT(1)
MMGEN v0.9.3 October 2017 MMGEN-ADDRIMPORT(1)

@ -70,4 +70,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-KEYGEN(1)
MMGEN v0.9.3 October 2017 MMGEN-KEYGEN(1)

@ -43,4 +43,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-PASSCHG(1)
MMGEN v0.9.3 October 2017 MMGEN-PASSCHG(1)

@ -78,4 +78,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-PASSGEN(1)
MMGEN v0.9.3 October 2017 MMGEN-PASSGEN(1)

@ -91,4 +91,4 @@
Type 'mmgen-tool help <command> for help on a particular command
MMGEN v0.9.3 August 2017 MMGEN-TOOL(1)
MMGEN v0.9.3 October 2017 MMGEN-TOOL(1)

@ -77,4 +77,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-TXBUMP(1)
MMGEN v0.9.3 October 2017 MMGEN-TXBUMP(1)

@ -44,4 +44,4 @@
a plain decimal number, or as satoshis per byte, using an integer followed by
the letter 's'.
MMGEN v0.9.3 August 2017 MMGEN-TXCREATE(1)
MMGEN v0.9.3 October 2017 MMGEN-TXCREATE(1)

@ -102,4 +102,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-TXDO(1)
MMGEN v0.9.3 October 2017 MMGEN-TXDO(1)

@ -8,4 +8,4 @@
-s, --status Get status of a sent transaction
-y, --yes Answer 'yes' to prompts, suppress non-essential output
MMGEN v0.9.3 August 2017 MMGEN-TXSEND(1)
MMGEN v0.9.3 October 2017 MMGEN-TXSEND(1)

@ -68,4 +68,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-TXSIGN(1)
MMGEN v0.9.3 October 2017 MMGEN-TXSIGN(1)

@ -42,4 +42,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-WALLETCHK(1)
MMGEN v0.9.3 October 2017 MMGEN-WALLETCHK(1)

@ -52,4 +52,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-WALLETCONV(1)
MMGEN v0.9.3 October 2017 MMGEN-WALLETCONV(1)

@ -45,4 +45,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.3 August 2017 MMGEN-WALLETGEN(1)
MMGEN v0.9.3 October 2017 MMGEN-WALLETGEN(1)