update documentation from wiki

This commit is contained in:
The MMGen Project 2026-05-15 13:42:49 +00:00
commit 2d1a626a7d
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
4 changed files with 158 additions and 27 deletions

View file

@ -94,7 +94,7 @@ the `--help` option for more complete information.
#### <a id="a_tx">Transacting and other basic operations</a> #### <a id="a_tx">Transacting and other basic operations</a>
Basic operations with ETH, ETC and ERC20 tokens work as described in the Basic operations with ETH, ETC and ERC20 tokens work as described in the
[**Getting Started**][bo] guide, with some differences. Please note the [**Getting Started**][ct] guide, with some differences. Please note the
following: following:
* Don’t forget to invoke relevant commands with `--coin=eth` or `--coin=etc`. * Don’t forget to invoke relevant commands with `--coin=eth` or `--coin=etc`.
@ -156,7 +156,7 @@ On your offline machine, sign the TX:
$ mmgen-txsign --coin=eth --token=eos ABC123-EOS[10,50000].rawtx $ mmgen-txsign --coin=eth --token=eos ABC123-EOS[10,50000].rawtx
``` ```
*You can also set up and use [autosigning][X] on the offline machine.* *You can also set up and use [**autosigning**][ax] on the offline machine.*
On your online machine, send the TX: On your online machine, send the TX:
@ -242,10 +242,10 @@ commands. It’s that simple!
### <a id="a_xmr">Monero (XMR)</a> ### <a id="a_xmr">Monero (XMR)</a>
MMGen Wallet’s Monero support includes automated wallet creation/syncing and Monero is fully supported by MMGen Wallet.
transacting via the [`mmgen-xmrwallet`][mx] command. Make sure that
[Monerod][M] is installed and running and that `monero-wallet-rpc` is located Make sure that [Monerod][M] is installed and running and that
in your executable path. `monero-wallet-rpc` is located in your executable path.
<a id="a_xmr_req">Install the Python XMR requirements:</a> <a id="a_xmr_req">Install the Python XMR requirements:</a>
@ -260,6 +260,32 @@ $ python3 -m pip install -r keccak-requirements.txt # see above
$ python3 -m pip install -r xmr-requirements.txt $ python3 -m pip install -r xmr-requirements.txt
``` ```
#### Wallet creation and transacting via the compatibility layer
This is now the preferred way to transact XMR, replacing the deprecated
`mmgen-xmrwallet` command for most operations. Everything works as described
in the [**Getting Started**][ct] guide, with the following differences:
- Manual transacting is not supported, only version 2 [**autosigning**][ax].
- XMR compatibility mode must be enabled. Use `--xmrwallet-compat` for online
commands, or set `xmrwallet_compat` to `true` in your config file.
- The `mmgen-addrgen` script is not used. Instead, addresses are created
automatically when `mmgen-autosign setup` is run with the `--xmrwallets`
option. Type `mmgen-autosign --help` for more information.
- After autosign setup, `mmgen-addrimport --coin=xmr` is run on the online
machine with no arguments. This creates the watch-only wallet or wallets
that together comprise the user’s tracking wallet. For watch-only wallets
that already exist, no action is performed.
- The `mmgen-xmrwallet` script may be used to list and view sent transactions
on the removable device. Type `mmgen-xmrwallet --help` for details.
- New accounts and addresses may be added to the tracking wallet via
`mmgen-tool --coin=xmr listaddresses`.
#### Wallet creation and transacting via `mmgen-xmrwallet` (deprecated)
Monero support includes automated wallet creation/syncing and transacting via
the [`mmgen-xmrwallet`][mx] command.
*The following instructions are applicable for a hot wallet setup. To learn *The following instructions are applicable for a hot wallet setup. To learn
how to cold sign transactions using MMGen Wallet’s autosign feature, first how to cold sign transactions using MMGen Wallet’s autosign feature, first
familiarize yourself with the basic concepts here and then consult the OFFLINE familiarize yourself with the basic concepts here and then consult the OFFLINE
@ -410,9 +436,9 @@ the MMGen Project.
[y]: https://github.com/ethereum/pyethereum [y]: https://github.com/ethereum/pyethereum
[P]: https://pypi.org/project/pip [P]: https://pypi.org/project/pip
[M]: https://getmonero.org/downloads/#linux [M]: https://getmonero.org/downloads/#linux
[X]: cmds/command-help-autosign.md [ax]: Autosigning.md
[gs]: Getting-Started-with-MMGen-Wallet.md [gs]: Getting-Started-with-MMGen-Wallet.md
[bo]: Getting-Started-with-MMGen-Wallet.md#a_bo [ct]: Getting-Started-with-MMGen-Wallet.md#a_ct
[si]: Install-Bitcoind-from-Source-on-Linux.md [si]: Install-Bitcoind-from-Source-on-Linux.md
[bi]: Install-Bitcoind.md#a_d [bi]: Install-Bitcoind.md#a_d
[p8]: Install-Bitcoind.md#a_r [p8]: Install-Bitcoind.md#a_r

90
doc/wiki/Autosigning.md Normal file
View file

@ -0,0 +1,90 @@
### [Manual transacting](#as_r) | [Autosigning v1](#as_v1) | [Autosigning v2](#as_v2)
For most situations, Version 2 autosigning is the best way to transact with
MMGen Wallet.
## <a id="as_r">Transacting, the manual way</a>
Transacting manually involves the following steps:
#### Preparation of signing session:
1. Boot and log in to offline signing machine
#### Transacting:
1. On online machine, create transaction with [`mmgen-txcreate`][tc] (or [`mmgen-swaptxcreate`][sc])
1. Insert removable device
1. Mount removable device
1. Copy transaction file to removable device
1. Unmount removable device
1. Extract removable device and transfer it to offline machine
1. Mount removable device
1. Locate transaction file on removable device, sign it with [`mmgen-txsign`][ts]
1. Unmount removable device
1. Extract removable device and transfer it to online machine
1. Mount removable device
1. Locate signed transaction file on removable device, send it with [`mmgen-txsend`][tx]
Admittedly, this is all quite tedious. To simplify the transaction workflow,
Version 1 Autosigning was introduced.
## <a id="as_v1">Autosigning, Version 1</a>
Here the main innovation was to eliminate keyboard interaction with the
offline signing machine during the signing process.
#### <a id="as_v1_s">Preparation of signing session:
1. Boot and log in to offline signing machine
1. Set up autosigning session ([`mmgen-autosign setup`][as])
1. Start signing loop ([`mmgen-autosign wait`][as])
#### Transacting:
1. On online machine, create transaction with [`mmgen-txcreate`][tc] (or [`mmgen-swaptxcreate`][sc])
1. Insert removable device
1. Mount removable device
1. Copy transaction file to `/mnt/mmgen_autosign/tx` on removable device
1. Unmount removable device
1. Extract removable device and transfer it to offline machine
1. Wait for [autosigning][as] to complete
1. Extract removable device and transfer it to online machine
1. Mount removable device
1. Locate signed transaction file on removable device, send it with [`mmgen-txsend`][tx]
#### Differences compared to manual method:
- signing session preparation involves additional steps
- signing requires no keyboard interaction
While this is already much better, there was still room for improvement.
Enter Version 2 Autosigning.
## <a id="as_v2">Autosigning, Version 2</a>
Here the main innovation was to automate all mounting, unmounting, and file
copying operations. Version 2 autosigning is sometimes referred to in program
output by the term “automount”.
#### Preparation of signing session:
1. Same as for [Version 1](#as_v1_s)
#### Transacting:
1. On online machine, insert removable device
1. Create transaction with [`mmgen-txcreate`][tc] (or [`mmgen-swaptxcreate`][sc])
1. Extract removable device and transfer it to offline machine
1. Wait for [autosigning][as] to complete
1. Extract removable device and transfer it to online machine
1. Send transaction with [`mmgen-txsend`][tx]
#### Differences compared to Version 1:
- filename arguments are omitted from all commands
- for online operations, the `--autosign` option must be supplied, or
`autosign` set to `true` in the config file
- only one transaction may be created-signed-sent at a time (Version 1 allows
for multiple signables per signing operation)
- unsent transactions may be aborted and ranges of sent transactions viewed or
checked for confirmation status (see [`mmgen-txsend --help`][tx])
[tc]: cmds/command-help-txcreate.md
[ts]: cmds/command-help-txsign.md
[tx]: cmds/command-help-txsend.md
[sc]: cmds/command-help-swaptxcreate.md
[as]: cmds/command-help-autosign.md

View file

@ -48,8 +48,9 @@ commands and filenames) will speed up your work at the command line greatly.
The examples in this tutorial are geared towards Bitcoin, but with some The examples in this tutorial are geared towards Bitcoin, but with some
modification they may be used with altcoins and forkcoins for which MMGen modification they may be used with altcoins and forkcoins for which MMGen
Wallet supports transaction operations (BCH, LTC, ETH, ETC, RUNE and XMR as of Wallet supports transaction operations (BCH, LTC, ETH, ETC, ERC20 tokens, RUNE
this writing). See [Altcoin-and-Forkcoin-Support][09] for more details. and XMR as of this writing). See [**Altcoin-and-Forkcoin-Support**][09] for
more details.
#### <a id="a_iv">Invocation</a> #### <a id="a_iv">Invocation</a>
@ -170,9 +171,10 @@ overestimated.
### <a id="a_tr">Transacting</a> ### <a id="a_tr">Transacting</a>
*The following transacting information is applicable to BTC, BCH, LTC, ETH, ETC *Transacting is supported for BTC, BCH, LTC, ETH, ETC, ERC20 tokens, RUNE and
and RUNE. For transacting with Monero, consult [Altcoin-and-Forkcoin-Support][x] XMR. The description below applies to BTC, BCH and LTC. For other coins, there
and the [`mmgen-xmrwallet`][mx] help screen.* are important differences: consult [**Altcoin-and-Forkcoin-Support**][09] for
details.*
#### <a id="a_ga">Generate addresses (offline computer)</a> #### <a id="a_ga">Generate addresses (offline computer)</a>
@ -337,6 +339,15 @@ TOTAL: 1 BTC
#### <a id="a_ct">Create a transaction (online computer)</a> #### <a id="a_ct">Create a transaction (online computer)</a>
*The following decribes the old, manual way of transacting with MMGen Wallet.
Instead, you should consider setting up [transaction autosigning][ax] on your
offline machine, which will greatly simplify the transacting process. For
optimal user experience, the offline signing device should be a Raspberry Pi
or other single-board computer for which LED signaling support is provided.*
*The [**Autosigning**][ax] wiki page outlines the differences between the manual
and autosigning methods of transacting.*
Now that you have some coins under MMGen Wallet’s control, you’re ready to Now that you have some coins under MMGen Wallet’s control, you’re ready to
create a transaction. Note that transactions are harmless until they’re signed create a transaction. Note that transactions are harmless until they’re signed
and broadcast to the network, so feel free to experiment and create transactions and broadcast to the network, so feel free to experiment and create transactions
@ -476,6 +487,17 @@ Network: BTC MAINNET
4) 123c.. 6 3PeI55vtp2bX2uKDkAAR2c6e.. 89ABCDEF:S:5 0.0999 7 4) 123c.. 6 3PeI55vtp2bX2uKDkAAR2c6e.. 89ABCDEF:S:5 0.0999 7
``` ```
Note that all tracking wallet views support the --scroll option, which provides
a curses-like scrolling interface that greatly improves the user experience when
there’s more than a screenful of lines to display. The option may also be set
in the configuration file.
```text
$ mmgen-txcreate --scroll --info
$ mmgen-tool --scroll twview
$ mmgen-tool --scroll listaddresses
```
Since you’ve sent 0.1 BTC to a third party, your balance has decreased by 0.1 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. BTC plus the transaction fee of 0.0001 BTC.
@ -849,18 +871,12 @@ Signed transaction written to file 'ABCDEF[0.1].sigtx'
#### <a id="a_hw">Hot wallets</a> #### <a id="a_hw">Hot wallets</a>
*Instead of using a hot wallet, you should consider setting up [transaction For greater transacting convenience, it’s possible to place a small portion of
autosigning][07] on your offline machine. Autosigning makes it possible to your funds in a “hot wallet” on your online computer. You may then use the
transact directly from cold storage in a secure and convenient way. Ideally, `mmgen-txdo` command to quickly create, sign and send transactions in one
your autosigning device should be a Raspberry Pi or other single-board computer operation.
for which MMGen Wallet provides LED support. However, an old laptop running
Linux or macOS will also suffice, provided its network interfaces are removed
or disabled.*
To use MMGen Wallet for not only cold storage but also day-to-day transacting, It’s recommended to entrust only very small sums to the hot wallet.
it’s possible to place a portion of your funds in a “hot wallet” on your online
computer. You may then use the `mmgen-txdo` command to quickly create, sign and
send transactions in one operation.
*Note: prior to Version 0.11.0, MMGen Wallet implemented hot wallets using *Note: prior to Version 0.11.0, MMGen Wallet implemented hot wallets using
[key-address files][05], but these have now been obsoleted by [subwallets][06]. [key-address files][05], but these have now been obsoleted by [subwallets][06].
@ -1124,11 +1140,10 @@ $ python3 -m pip install user --upgrade dist/*.whl
[04]: MMGen-Wallet-Quick-Start-with-Regtest-Mode.md [04]: MMGen-Wallet-Quick-Start-with-Regtest-Mode.md
[05]: Key-address-files.md [05]: Key-address-files.md
[06]: Subwallets.md [06]: Subwallets.md
[07]: cmds/command-help-autosign.md
[08]: Install-Bitcoind.md [08]: Install-Bitcoind.md
[09]: Altcoin-and-Forkcoin-Support.md [09]: Altcoin-and-Forkcoin-Support.md
[x]: Altcoin-and-Forkcoin-Support.md#a_xmr
[cp]: ../../../../commits/master [cp]: ../../../../commits/master
[mx]: cmds/command-help-xmrwallet.md [mx]: cmds/command-help-xmrwallet.md
[li]: Install-MMGen-Wallet-on-Linux-or-macOS.md [li]: Install-MMGen-Wallet-on-Linux-or-macOS.md
[wi]: Install-MMGen-Wallet-on-Microsoft-Windows.md [wi]: Install-MMGen-Wallet-on-Microsoft-Windows.md
[ax]: Autosigning.md

View file

@ -437,7 +437,7 @@ Offline upgrade:
[ib]: Install-Bitcoind.md [ib]: Install-Bitcoind.md
[gs]: Getting-Started-with-MMGen-Wallet.md [gs]: Getting-Started-with-MMGen-Wallet.md
[pl]: Altcoin-and-Forkcoin-Support.md#a_ed [pl]: Altcoin-and-Forkcoin-Support.md#a_ed
[ax]: cmds/command-help-autosign.md [ax]: Autosigning.md
[mc]: Altcoin-and-Forkcoin-Support.md#a_xmr [mc]: Altcoin-and-Forkcoin-Support.md#a_xmr
[ts]: Test-Suite.md [ts]: Test-Suite.md
[vv]: https://docs.python.org/3/library/venv.html [vv]: https://docs.python.org/3/library/venv.html