Update for v16.1.0
parent
babfc01446
commit
cfbf780ee6
32 changed files with 776 additions and 194 deletions
|
|
@ -35,10 +35,12 @@ tokens. In addition, ERC20 token creation and deployment are supported via the
|
|||
|
||||
#### <a id="a_ed">Install the Ethereum dependencies</a>
|
||||
|
||||
Skip this step for MSYS2 or if your Python version is 3.13 or greater.
|
||||
|
||||
From the MMGen Wallet repository root, type:
|
||||
|
||||
```text
|
||||
$ python3 -m pip install -r alt-requirements.txt # skip this for MSYS2
|
||||
$ python3 -m pip install -r keccak-requirements.txt
|
||||
```
|
||||
|
||||
#### <a id="a_geth">Install and run Reth, Geth or Parity</a>
|
||||
|
|
@ -92,7 +94,7 @@ the `--help` option for more complete information.
|
|||
#### <a id="a_tx">Transacting and other basic operations</a>
|
||||
|
||||
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:
|
||||
|
||||
* Don’t forget to invoke relevant commands with `--coin=eth` or `--coin=etc`.
|
||||
|
|
@ -154,7 +156,7 @@ On your offline machine, sign the TX:
|
|||
$ 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:
|
||||
|
||||
|
|
@ -240,21 +242,54 @@ commands. It’s that simple!
|
|||
|
||||
### <a id="a_xmr">Monero (XMR)</a>
|
||||
|
||||
MMGen Wallet’s Monero support includes automated wallet creation/syncing and
|
||||
transacting via the [`mmgen-xmrwallet`][mx] command. Make sure that
|
||||
[Monerod][M] is installed and running and that `monero-wallet-rpc` is located
|
||||
in your executable path.
|
||||
Monero is fully supported by MMGen Wallet.
|
||||
|
||||
Make sure that [Monerod][M] is installed and running and that
|
||||
`monero-wallet-rpc` is located in your executable path.
|
||||
|
||||
<a id="a_xmr_req">Install the Python XMR requirements:</a>
|
||||
|
||||
(Note that this step is not required for MSYS2, as these requirements were
|
||||
already installed by pacman.)
|
||||
Skip this step for MSYS2, as these requirements were already installed by
|
||||
pacman.
|
||||
|
||||
Skip ‘keccak-requirements.txt’ if your Python version is 3.13 or greater.
|
||||
|
||||
```text
|
||||
$ python3 -m pip install -r alt-requirements.txt
|
||||
$ python3 -m pip install -r keccak-requirements.txt # see above
|
||||
$ 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.
|
||||
- `mmgen-txcreate` supports both sweep transactions and send to external
|
||||
address (see `mmgen-txcreate --coin=xmr --help`)
|
||||
- Tracking wallet views are account-based.
|
||||
- New accounts and addresses may be added to the tracking wallet via
|
||||
`mmgen-tool --coin=xmr listaddresses`.
|
||||
- The `mmgen-xmrwallet` script may be used to list and view sent transactions
|
||||
on the removable device. Type `mmgen-xmrwallet --help` for details.
|
||||
- Compatibility mode is not available for Windows. Windows users must use
|
||||
`mmgen-xmrwallet` in non-automount (v1) mode to transact Monero.
|
||||
|
||||
#### 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
|
||||
how to cold sign transactions using MMGen Wallet’s autosign feature, first
|
||||
familiarize yourself with the basic concepts here and then consult the OFFLINE
|
||||
|
|
@ -302,6 +337,12 @@ To learn how to transact using your wallets, continue on to the
|
|||
|
||||
### <a id="a_rune">THORChain (RUNE)</a>
|
||||
|
||||
Install the RUNE requirements:
|
||||
|
||||
```text
|
||||
$ python3 -m pip install -r rune-requirements.txt
|
||||
```
|
||||
|
||||
Transacting RUNE with MMGen Wallet is similar to transacting BTC as described in
|
||||
the [**Getting Started**][gs] guide. Just add the `--coin=rune` option to all
|
||||
relevant commands. With `mmgen-autosign`, add `rune` to the list of coins in
|
||||
|
|
@ -315,6 +356,8 @@ communications via Tor or I2P: refer to the helpscreens of `mmgen-txcreate`,
|
|||
|
||||
### <a id="a_tcswap">Asset swaps via THORChain</a>
|
||||
|
||||
Install the RUNE requirements as shown above.
|
||||
|
||||
21 assets (as of this writing) may be swapped directly within MMGen Wallet via
|
||||
THORChain. Swapping assets is just like normal transacting, except transactions
|
||||
are created using `mmgen-swaptxcreate` instead of `mmgen-txcreate`. Note that
|
||||
|
|
@ -397,9 +440,9 @@ the MMGen Project.
|
|||
[y]: https://github.com/ethereum/pyethereum
|
||||
[P]: https://pypi.org/project/pip
|
||||
[M]: https://getmonero.org/downloads/#linux
|
||||
[X]: command-help-autosign
|
||||
[ax]: Autosigning
|
||||
[gs]: Getting-Started-with-MMGen-Wallet
|
||||
[bo]: Getting-Started-with-MMGen-Wallet#a_bo
|
||||
[ct]: Getting-Started-with-MMGen-Wallet#a_ct
|
||||
[si]: Install-Bitcoind-from-Source-on-Linux
|
||||
[bi]: Install-Bitcoind#a_d
|
||||
[p8]: Install-Bitcoind#a_r
|
||||
|
|
|
|||
99
Autosigning.md
Normal file
99
Autosigning.md
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
### [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
|
||||
(or `/mnt/mmgen_autosign/xmr/tx` for Monero)
|
||||
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
|
||||
- removable device and, for Linux, mountpoints must be prepared as described
|
||||
in [`mmgen-autosign --help`][as]
|
||||
|
||||
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 the
|
||||
program output and documentation 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]: command-help-txcreate
|
||||
[ts]: command-help-txsign
|
||||
[tx]: command-help-txsend
|
||||
[sc]: command-help-swaptxcreate
|
||||
[as]: command-help-autosign
|
||||
|
|
@ -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
|
||||
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
|
||||
this writing). See [Altcoin-and-Forkcoin-Support][09] for more details.
|
||||
Wallet supports transaction operations (BCH, LTC, ETH, ETC, ERC20 tokens, RUNE
|
||||
and XMR as of this writing). See [**Altcoin-and-Forkcoin-Support**][09] for
|
||||
more details.
|
||||
|
||||
#### <a id="a_iv">Invocation</a>
|
||||
|
||||
|
|
@ -170,9 +171,10 @@ overestimated.
|
|||
|
||||
### <a id="a_tr">Transacting</a>
|
||||
|
||||
*The following transacting information is applicable to BTC, BCH, LTC, ETH, ETC
|
||||
and RUNE. For transacting with Monero, consult [Altcoin-and-Forkcoin-Support][x]
|
||||
and the [`mmgen-xmrwallet`][mx] help screen.*
|
||||
*Transacting is supported for BTC, BCH, LTC, ETH, ETC, ERC20 tokens, RUNE and
|
||||
XMR. The description below applies to BTC, BCH and LTC. For other coins, there
|
||||
are important differences: consult [**Altcoin-and-Forkcoin-Support**][09] for
|
||||
details.*
|
||||
|
||||
#### <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>
|
||||
|
||||
*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
|
||||
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
|
||||
|
|
@ -476,6 +487,17 @@ Network: BTC MAINNET
|
|||
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
|
||||
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>
|
||||
|
||||
*Instead of using a hot wallet, you should consider setting up [transaction
|
||||
autosigning][07] on your offline machine. Autosigning makes it possible to
|
||||
transact directly from cold storage in a secure and convenient way. Ideally,
|
||||
your autosigning device should be a Raspberry Pi or other single-board computer
|
||||
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.*
|
||||
For greater transacting convenience, it’s possible to place a small 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.
|
||||
|
||||
To use MMGen Wallet for not only cold storage but also day-to-day transacting,
|
||||
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.
|
||||
It’s recommended to entrust only very small sums to the hot wallet.
|
||||
|
||||
*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].
|
||||
|
|
@ -1124,11 +1140,10 @@ $ python3 -m pip install user --upgrade dist/*.whl
|
|||
[04]: MMGen-Wallet-Quick-Start-with-Regtest-Mode
|
||||
[05]: Key-address-files
|
||||
[06]: Subwallets
|
||||
[07]: command-help-autosign
|
||||
[08]: Install-Bitcoind
|
||||
[09]: Altcoin-and-Forkcoin-Support
|
||||
[x]: Altcoin-and-Forkcoin-Support#a_xmr
|
||||
[cp]: ../commits/master
|
||||
[mx]: command-help-xmrwallet
|
||||
[li]: Install-MMGen-Wallet-on-Linux-or-macOS
|
||||
[wi]: Install-MMGen-Wallet-on-Microsoft-Windows
|
||||
[ax]: Autosigning
|
||||
|
|
|
|||
|
|
@ -59,9 +59,9 @@ Download the MSYS2 executable installer for your architecture from the [MSYS2
|
|||
homepage][mh], but ignore the installation instructions there.
|
||||
|
||||
Run the installer, accepting all defaults. When installation completes,
|
||||
uncheck ‘Run MSYS2 now’ and click ‘Finish’. From the Start menu, drag the
|
||||
‘MSYS2 UCRT64’ icon to the desktop. You will use it to launch all MSYS2
|
||||
terminal sessions from now on. Double-click the icon to launch the terminal.
|
||||
uncheck ‘Run MSYS2 now’ and click ‘Finish’. From the Start menu, pin the
|
||||
‘MSYS2 UCRT64’ icon to the taskbar. You will use it to launch all MSYS2
|
||||
terminal sessions from now on. Click the icon to launch the terminal.
|
||||
|
||||
Note that the root of your MSYS2 installation is located in `C:\\msys64`, so the
|
||||
following commands, for example, will produce a listing of the same directory:
|
||||
|
|
@ -102,18 +102,18 @@ $ ls 'C:\\msys64\etc' # the path as seen by Windows
|
|||
>
|
||||
> Download up-to-date versions of these files from the primary MSYS2 mirror:
|
||||
>
|
||||
>> <https://mirror.msys2.org/msys/x86_64/msys.db>
|
||||
>> <https://mirror.msys2.org/msys/x86_64/msys.db.sig>
|
||||
>> <https://mirror.msys2.org/mingw/mingw64/mingw64.db>
|
||||
>> <https://mirror.msys2.org/mingw/mingw64/mingw64.db.sig>
|
||||
>> <https://mirror.msys2.org/mingw/mingw32/mingw32.db>
|
||||
>> <https://mirror.msys2.org/mingw/mingw32/mingw32.db.sig>
|
||||
>> <https://mirror.msys2.org/mingw/clang64/clang64.db>
|
||||
>> <https://mirror.msys2.org/mingw/clang64/clang64.db.sig>
|
||||
>> <https://mirror.msys2.org/mingw/clangarm64/clangarm64.db>
|
||||
>> <https://mirror.msys2.org/mingw/clangarm64/clangarm64.db.sig>
|
||||
>> <https://mirror.msys2.org/mingw/ucrt64/ucrt64.db>
|
||||
>> <https://mirror.msys2.org/mingw/ucrt64/ucrt64.db.sig>
|
||||
>> <https://repo.msys2.org/msys/x86_64/msys.db>
|
||||
>> <https://repo.msys2.org/msys/x86_64/msys.db.sig>
|
||||
>> <https://repo.msys2.org/mingw/mingw64/mingw64.db>
|
||||
>> <https://repo.msys2.org/mingw/mingw64/mingw64.db.sig>
|
||||
>> <https://repo.msys2.org/mingw/mingw32/mingw32.db>
|
||||
>> <https://repo.msys2.org/mingw/mingw32/mingw32.db.sig>
|
||||
>> <https://repo.msys2.org/mingw/clang64/clang64.db>
|
||||
>> <https://repo.msys2.org/mingw/clang64/clang64.db.sig>
|
||||
>> <https://repo.msys2.org/mingw/clangarm64/clangarm64.db>
|
||||
>> <https://repo.msys2.org/mingw/clangarm64/clangarm64.db.sig>
|
||||
>> <https://repo.msys2.org/mingw/ucrt64/ucrt64.db>
|
||||
>> <https://repo.msys2.org/mingw/ucrt64/ucrt64.db.sig>
|
||||
>
|
||||
> Copy the files to your offline machine, replacing the originals at
|
||||
> `C:\msys64\var\lib\pacman\sync`.
|
||||
|
|
@ -184,13 +184,13 @@ pacman -S tar git vim autoconf automake-wrapper autogen libtool cygrunsrv \
|
|||
mingw-w64-ucrt-x86_64-libsodium \
|
||||
mingw-w64-ucrt-x86_64-python-pynacl \
|
||||
mingw-w64-ucrt-x86_64-python-cryptography \
|
||||
mingw-w64-ucrt-x86_64-python-pycryptodome \
|
||||
mingw-w64-ucrt-x86_64-python-six \
|
||||
mingw-w64-ucrt-x86_64-python-pexpect \
|
||||
mingw-w64-ucrt-x86_64-python-gmpy2 \
|
||||
mingw-w64-ucrt-x86_64-python-pysocks \
|
||||
mingw-w64-ucrt-x86_64-python-requests \
|
||||
mingw-w64-ucrt-x86_64-python-aiohttp \
|
||||
mingw-w64-ucrt-x86_64-python-ecdsa \
|
||||
mingw-w64-ucrt-x86_64-python-pyreadline3 \
|
||||
mingw-w64-ucrt-x86_64-python-lxml
|
||||
```
|
||||
|
|
@ -238,17 +238,13 @@ prevent pip from installing packages in the system directory.
|
|||
On your online machine:
|
||||
|
||||
```text
|
||||
$ python3 -m pip download ecdsa
|
||||
$ python3 -m pip download --no-binary :all: scrypt==0.8.27 aiohttp==3.12.9
|
||||
|
||||
$ python3 -m pip download --no-binary :all: scrypt==0.8.27
|
||||
```
|
||||
|
||||
Copy the downloaded files to your offline machine (if applicable) and install:
|
||||
|
||||
```text
|
||||
$ python3 -m pip install ecdsa-*.whl
|
||||
$ python3 -m pip install --no-build-isolation scrypt*gz
|
||||
$ python3 -m pip install --no-build-isolation aiohtt* multidic* yarl* aiohap* aiosig* attrs* frozenlist* idna* propcache*
|
||||
```
|
||||
|
||||
### <a id="a_se">7. Clone and copy the secp256k1 library (offline install only)</a>
|
||||
|
|
@ -316,7 +312,7 @@ Enter the repo directory, build and install:
|
|||
|
||||
```text
|
||||
$ cd mmgen-wallet
|
||||
$ python3 -m build --no-isolation
|
||||
$ python3 -m build --no-isolation --wheel
|
||||
$ python3 -m pip install dist/*.whl
|
||||
```
|
||||
|
||||
|
|
@ -437,7 +433,7 @@ Offline upgrade:
|
|||
[ib]: Install-Bitcoind
|
||||
[gs]: Getting-Started-with-MMGen-Wallet
|
||||
[pl]: Altcoin-and-Forkcoin-Support#a_ed
|
||||
[ax]: command-help-autosign
|
||||
[ax]: Autosigning
|
||||
[mc]: Altcoin-and-Forkcoin-Support#a_xmr
|
||||
[ts]: Test-Suite
|
||||
[vv]: https://docs.python.org/3/library/venv.html
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
#### <a id="a_i">Introduction</a>
|
||||
|
||||
If you’re considering using MMGen Wallet and are a Bitcoiner with a normal,
|
||||
If you’re considering using MMGen Wallet and are a crypto user with a normal,
|
||||
healthy degree of paranoia, then the following question will probably come to
|
||||
mind: “What if I have funds in MMGen Wallet and I lose the software? How do
|
||||
I recover my coins?”
|
||||
|
|
|
|||
|
|
@ -51,18 +51,16 @@ $ python3 -m pip download pycoin # online
|
|||
$ python3 -m pip install --no-build-isolation pycoin-*.tar.gz # offline
|
||||
```
|
||||
|
||||
CD to the MMGen Wallet repository root and build the secp256k1 extension module
|
||||
in place:
|
||||
CD to the MMGen Wallet repository root:
|
||||
|
||||
```text
|
||||
$ cd path/to/mmgen/repo
|
||||
$ python3 setup.py build_ext --inplace
|
||||
```
|
||||
|
||||
Run the following if upgrading from a previous version of MMGen:
|
||||
|
||||
```text
|
||||
$ test/cmdtest.py clean
|
||||
$ test/clean.py
|
||||
```
|
||||
|
||||
Run the test suite in fast mode, skipping altcoin tests (fast mode skips
|
||||
|
|
@ -94,7 +92,8 @@ requires the SSH daemon to be set up and running. On MSYS2 systems, SSHD
|
|||
is not configured by default, but it may be easily set up with the following
|
||||
steps:
|
||||
|
||||
Open PowerShell as administrator, and at the DOS prompt, execute:
|
||||
Open PowerShell as administrator (right mouse click, “Run as Administrator”).
|
||||
At the DOS prompt, execute:
|
||||
|
||||
```text
|
||||
system32> net user administrator /active:yes
|
||||
|
|
@ -120,7 +119,7 @@ may also be started and stopped manually at the DOS or MSYS2 prompt as follows
|
|||
#### Install Monero-Python
|
||||
|
||||
```text
|
||||
$ python3 -m pip install pycryptodome ipaddress varint
|
||||
$ python3 -m pip install ipaddress varint
|
||||
$ python3 -m pip install --no-deps monero
|
||||
```
|
||||
|
||||
|
|
@ -138,12 +137,6 @@ $ python3 -m pip install eth-keys
|
|||
Install this on MSYS2 or if ‘eth-keys’ is unavailable on your platform. Do not
|
||||
confuse this with the Reth ‘ethkey’ utility, which is entirely different.
|
||||
|
||||
On Arch Linux and ArchLinuxArm systems, ‘ethkey’ is installed as follows:
|
||||
|
||||
```text
|
||||
$ pacman -S openethereum
|
||||
```
|
||||
|
||||
For 64-bit Windows (MSYS2), Linux and macOS systems, ‘ethkey’ can be found in
|
||||
the zip archives distributed with [this release][oz].
|
||||
|
||||
|
|
@ -155,7 +148,8 @@ $ cd vanitygen-plusplus
|
|||
$ git checkout -b vanitygen-plus e7858035d092 # rewind to fork commit
|
||||
```
|
||||
|
||||
Edit the Makefile, changing `-lpcre` to `-lpcre2-posix` on the second line.
|
||||
Optional: On some systems, you may need to edit the Makefile, changing `-lpcre`
|
||||
to `-lpcre2-posix` on the second line.
|
||||
|
||||
```text
|
||||
$ make keyconv # ‘mingw32-make.exe keyconv’ for MSYS2
|
||||
|
|
@ -166,8 +160,12 @@ $ cd ..
|
|||
|
||||
#### Install Zcash-Mini
|
||||
|
||||
Skip the go installation step if go is already installed (check by invoking
|
||||
`go version`)
|
||||
|
||||
```text
|
||||
$ sudo apt-get install golang # skip this if Go is already installed
|
||||
$ sudo apt-get install golang # Debian, Ubuntu
|
||||
$ sudo pacman -S go # Arch Linux
|
||||
$ git clone https://github.com/FiloSottile/zcash-mini
|
||||
$ cd zcash-mini
|
||||
$ sed -e "s@github.com/FiloSottile/@@" -i main.go
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
```text
|
||||
MMGEN-ADDRGEN: Generate a range or list of addresses from an MMGen wallet,
|
||||
mnemonic, seed or brainwallet
|
||||
USAGE: mmgen-addrgen [opts] [seed source] <index list or range(s)>
|
||||
|
||||
USAGE: mmgen-addrgen [opts] [seed source] <index list or range(s)>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -78,12 +80,14 @@
|
|||
subwallets from a single parent. This leaves each user with a total of two
|
||||
million subwallets, which should be enough for most practical purposes.
|
||||
|
||||
|
||||
PASSPHRASE NOTE:
|
||||
|
||||
For passphrases all combinations of whitespace are equal, and leading and
|
||||
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||
data from a multi-line file with free spacing and indentation.
|
||||
|
||||
|
||||
BRAINWALLET NOTE:
|
||||
|
||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||
|
|
@ -121,5 +125,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-ADDRGEN(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-ADDRGEN(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,11 +1,17 @@
|
|||
### [BTC](#a_btc) | [ETH](#a_eth) | [XMR](#a_xmr)
|
||||
|
||||
### <a id="a_btc">mmgen-addrimport --coin=btc --help</a>
|
||||
|
||||
```text
|
||||
MMGEN-ADDRIMPORT: Import addresses into an MMGen tracking wallet
|
||||
USAGE: mmgen-addrimport [opts] [MMGen address file]
|
||||
|
||||
USAGE: mmgen-addrimport [opts] [MMGen address file]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
-a, --address a Import the single coin address 'a'
|
||||
-b, --batch Import all addresses in one RPC call
|
||||
-A, --address ADDR Import the single coin address ADDR
|
||||
-b, --batch Import all addresses in one RPC call (where applicable)
|
||||
-l, --addrlist Address source is a flat list of non-MMGen coin addresses
|
||||
-k, --keyaddr-file Address source is a key-address file
|
||||
-q, --quiet Suppress warnings
|
||||
|
|
@ -13,23 +19,85 @@
|
|||
blockchain for unspent outputs that include the imported
|
||||
address(es). Required if any of the imported addresses
|
||||
are already in the blockchain and have a balance.
|
||||
-t, --token-addr A Import addresses for ERC20 token with address 'A'
|
||||
|
||||
|
||||
This command can also be used to update the comment fields or balances of
|
||||
addresses already in the tracking wallet.
|
||||
|
||||
Rescanning now uses the ‘scantxoutset’ RPC call and a selective scan of
|
||||
blocks containing the relevant UTXOs for much faster performance than the
|
||||
previous implementation. The rescan operation typically takes around two
|
||||
minutes total, independent of the number of addresses imported.
|
||||
|
||||
It’s recommended to use ‘--rpc-backend=aio’ with ‘--rescan’.
|
||||
|
||||
Bear in mind that the UTXO scan will not find historical transactions: to add
|
||||
them to the tracking wallet, you must perform a full or partial rescan of the
|
||||
blockchain with the ‘mmgen-tool rescan_blockchain’ utility. A full rescan of
|
||||
the blockchain may take up to several hours.
|
||||
|
||||
It’s recommended to use ‘--rpc-backend=aio’ with ‘--rescan’.
|
||||
A full rescan is required if you plan to use ‘mmgen-tool txhist’ or the
|
||||
automatic change address functionality of ‘mmgen-txcreate’, or wish to see
|
||||
which addresses in your tracking wallet are used. Without it, all addresses
|
||||
without balances will be displayed as new.
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-ADDRIMPORT(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-ADDRIMPORT(1)
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### <a id="a_eth">mmgen-addrimport --coin=eth --help</a>
|
||||
|
||||
```text
|
||||
MMGEN-ADDRIMPORT: Import addresses into an MMGen tracking wallet
|
||||
|
||||
USAGE: mmgen-addrimport --coin=eth [opts] [MMGen address file]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
-A, --address ADDR Import the single coin address ADDR
|
||||
-b, --batch Import all addresses in one RPC call (where applicable)
|
||||
-l, --addrlist Address source is a flat list of non-MMGen coin addresses
|
||||
-k, --keyaddr-file Address source is a key-address file
|
||||
-q, --quiet Suppress warnings
|
||||
-t, --token-addr ADDR Import addresses for ERC20 token with address ADDR
|
||||
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-ADDRIMPORT(1)
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### <a id="a_xmr">mmgen-addrimport --coin=xmr --help</a>
|
||||
|
||||
```text
|
||||
MMGEN-ADDRIMPORT: Import addresses into an MMGen tracking wallet
|
||||
|
||||
USAGE: mmgen-addrimport --coin=xmr [opts]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
-a, --autosign Import addresses from pre-created key-address file on the
|
||||
removable device. The removable device is mounted and
|
||||
unmounted automatically. See notes below.
|
||||
-q, --quiet Suppress warnings
|
||||
|
||||
|
||||
For Monero, --autosign is required, and a key-address file on the removable
|
||||
device is used instead of a user-specified address file as with other coins.
|
||||
|
||||
When ‘mmgen-autosign setup’ (or ‘xmr_setup’) is run with the --xmrwallets
|
||||
option, an ephemeral Monero wallet is created for each wallet number listed,
|
||||
to be used for transaction signing. In addition, a key-address file is created
|
||||
on the removable device, with an address and viewkey matching the base address
|
||||
of each signing wallet.
|
||||
|
||||
This script uses that file to create an online view-only Monero wallet to
|
||||
match each offline signing wallet. The set of view-only wallets currently
|
||||
configured via --xmrwallets comprises the user’s tracking wallet.
|
||||
|
||||
If a view-only wallet for a given index already exists, it’s left untouched
|
||||
and no action is performed. To add view-only wallets to your tracking wallet,
|
||||
just specify additional wallet indexes via --xmrwallets during the offline
|
||||
setup process.
|
||||
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-ADDRIMPORT(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-AUTOSIGN: Auto-sign MMGen transactions, message files and XMR wallet output files
|
||||
USAGE: mmgen-autosign [opts] [operation]
|
||||
|
||||
USAGE: mmgen-autosign [opts] [operation]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -12,7 +14,8 @@
|
|||
the file in volatile memory for use during the signing
|
||||
session, thus permitting the deletion of the original
|
||||
file for increased security.
|
||||
-l, --seed-len N Specify wallet seed length of ‘N’ bits (for setup only)
|
||||
-l, --seed-len N Specify wallet seed length of ‘N’ bits (for setup with
|
||||
mnemonic seed phrase only)
|
||||
-L, --led Use status LED to signal standby, busy and error
|
||||
-m, --mountpoint M Specify an alternate mountpoint 'M'
|
||||
(default: '/mnt/mmgen_autosign')
|
||||
|
|
@ -35,10 +38,11 @@
|
|||
(default: '/dev/shm/autosign')
|
||||
-W, --allow-non-wallet-swap Allow signing of swap transactions that send funds
|
||||
to non-wallet addresses
|
||||
-x, --xmrwallets L Range or list of wallets to be used for XMR autosigning
|
||||
-x, --xmrwallets L Range or list of wallet numbers to be used for XMR
|
||||
autosigning (see XMR SIGNING SESSION SETUP below)
|
||||
|
||||
|
||||
OPERATIONS
|
||||
OPERATIONS
|
||||
|
||||
clean - clean the removable device of unneeded files, removing only non-
|
||||
essential data
|
||||
|
|
@ -63,42 +67,107 @@
|
|||
signing transactions or stealing the user’s seed impossible.
|
||||
The operation is intended as a ‘kill switch’ and thus performed
|
||||
without prompting
|
||||
list_led - list boards with tested LED signaling support
|
||||
test_led - test the current board for LED signaling support
|
||||
|
||||
|
||||
USAGE NOTES
|
||||
DESCRIPTION
|
||||
|
||||
If no operation is specified, this program mounts a removable device
|
||||
(typically a USB flash drive) containing unsigned MMGen transactions, message
|
||||
files, and/or XMR wallet output files, signs them, unmounts the removable
|
||||
device and exits.
|
||||
This program is intended to be run on an offline signing computer, preferably
|
||||
air-gapped and with no or disabled RF devices (e.g. wi-fi and bluetooth).
|
||||
Memory, storage and CPU requirements for signing operations are modest, so an
|
||||
old laptop is suitable for the job, or better yet, a Raspberry Pi or Pi clone
|
||||
from among the list of supported devices (see LED SIGNALING SUPPORT below).
|
||||
OS support is currently limited to Linux and macOS.
|
||||
|
||||
If invoked with ‘wait’, the program waits in a loop, mounting the removable
|
||||
device, performing signing operations and unmounting the device every time it
|
||||
is inserted.
|
||||
Before using the program, a removable device (typically a USB flash drive)
|
||||
must first be prepared and the current signing session set up, both as
|
||||
described below.
|
||||
|
||||
On supported platforms (currently Orange Pi, Rock Pi and Raspberry Pi boards),
|
||||
the status LED indicates whether the program is busy or in standby mode, i.e.
|
||||
ready for device insertion or removal.
|
||||
If run with no arguments, the program mounts the removable device, signs any
|
||||
unsigned MMGen signables (transactions, message files, and/or XMR wallet
|
||||
output files) on the device, unmounts the device and exits.
|
||||
|
||||
The removable device must have a partition with a filesystem labeled MMGEN_TX
|
||||
and a user-writable root directory. For interoperability between OS-es, it’s
|
||||
recommended to use the exFAT file system.
|
||||
If invoked with ‘wait’, the program waits in a loop: mounting, signing and
|
||||
unmounting every time the removable device is inserted. Wait mode permits
|
||||
“hands-free” operation, i.e. repeated signing of signables with no keyboard
|
||||
input, by simply inserting the removable device and then removing it when the
|
||||
program indicates that signing is complete (see LED SIGNALING SUPPORT below).
|
||||
|
||||
On both the signing and online machines the mountpoint ‘/mnt/mmgen_autosign’
|
||||
(as currently configured) must exist. Linux (not macOS) machines must have
|
||||
an ‘/etc/fstab’ with the following entry:
|
||||
Signing is performed with a temporary session wallet written in volatile
|
||||
memory in the directory ‘/dev/shm/autosign’ (as currently configured). The
|
||||
wallet is encrypted with a random password saved in the file ‘autosign.key’
|
||||
on the removable device.
|
||||
|
||||
By default, the session wallet is created from the user’s default MMGen
|
||||
wallet, if it exists. However, the user may optionally generate the session
|
||||
wallet by interactively entering a seed phrase during session setup. Thus it
|
||||
is possible to perform signing and other wallet operations with no seed data
|
||||
ever written to disk, even in encrypted form (“wallet-less” operation).
|
||||
|
||||
Depending on the coin, signing is performed either internally by MMGen Wallet
|
||||
or using an external backend, according to the table below. Thus you must
|
||||
install the corresponding backend executable, if any, for each coin you wish
|
||||
to transact and start it with the listed command, if any, at the beginning of
|
||||
each signing session. It’s recommended to install the executables into
|
||||
‘/usr/local/bin’.
|
||||
|
||||
Coin Backend Executable Command
|
||||
---- ------- ---------- -------
|
||||
BTC Bitcoin Core bitcoind bitcoind --listen=0 --daemon
|
||||
LTC Litecoin Core litecoind litecoind --listen=0 --daemon
|
||||
BCH Bitcoin Cash Node bitcoind-bchn* bitcoind-bchn --daemon --listen=0 --rpcport=8432 --datadir=$HOME/.bitcoin-bchn
|
||||
XMR Monero CLI Wallet monero-wallet-rpc -
|
||||
ETH,ETC,ERC20 none - -
|
||||
RUNE none - -
|
||||
|
||||
* Executable must be renamed from the default ‘bitcoind’
|
||||
|
||||
|
||||
LED SIGNALING SUPPORT
|
||||
|
||||
On supported platforms (selected Orange Pi, Rock Pi, Banana Pi, Nano Pi and
|
||||
Raspberry Pi boards), a flashing LED indicates whether signing is in progress
|
||||
or the program is in standby mode, i.e. ready for device insertion or removal.
|
||||
In the absence of LED support, the user must observe the signing progress
|
||||
on-screen and wait for the “safe to extract” message to appear.
|
||||
|
||||
The operation ‘test_led’ tests the current installation for LED support, while
|
||||
‘list_led’ displays a list of supported board/OS combinations. Note that this
|
||||
list is not exhaustive: signaling may work with other boards, especially those
|
||||
produced by the listed manufacturers. If ‘test_led’ reports that your board is
|
||||
not supported, please submit an issue to the mmgen-wallet repository on Github
|
||||
or via e-mail, including the board model, OS version and output of the
|
||||
following shell command:
|
||||
|
||||
ls -RH /sys/class/leds/{*status*,*led*}
|
||||
|
||||
|
||||
PREPARING THE REMOVABLE DEVICE
|
||||
|
||||
Create a partition on the removable device with a filesystem labeled ‘MMGEN_TX’
|
||||
and a user-writable root directory. For interoperability between different
|
||||
operating systems, it’s recommended to use the exFAT filesystem.
|
||||
|
||||
On both the offline and online machines, create the mountpoint ‘/mnt/mmgen_autosign’
|
||||
(as currently configured) and, for Linux, the following entry in ‘/etc/fstab’:
|
||||
|
||||
LABEL=MMGEN_TX /mnt/mmgen_autosign auto noauto,user 0 0
|
||||
|
||||
Signing is performed with a temporary wallet created in volatile memory in
|
||||
the directory ‘/dev/shm/autosign’ (as currently configured). The wallet is
|
||||
encrypted with a 32-byte password saved in the file ‘autosign.key’ in the
|
||||
root of the removable device’s filesystem.
|
||||
If your Linux distribution mounts volumes automatically, it’s advisable to
|
||||
disable that functionality.
|
||||
|
||||
The password and temporary wallet may be created in one operation by invoking
|
||||
‘mmgen-autosign setup’ with the removable device inserted. In this case, the
|
||||
temporary wallet is created from the user’s default wallet, if it exists and
|
||||
the user so desires. If not, the user is prompted to enter a seed phrase.
|
||||
|
||||
SETTING UP A SIGNING SESSION
|
||||
|
||||
Invoke ‘mmgen-autosign setup’ with the removable device inserted. This will
|
||||
create the temporary session wallet from the user’s default MMGen wallet (if
|
||||
it exists) or, optionally, a seed phrase. In addition, the session wallet
|
||||
password is created and written to the removable device. Additional options
|
||||
may be required. See OPTIONS above and EXAMPLES below.
|
||||
|
||||
|
||||
ALTERNATIVE (MANUAL) SESSION SETUP
|
||||
|
||||
Alternatively, the password and temporary wallet may be created separately by
|
||||
first invoking ‘mmgen-autosign gen_key’ and then creating and encrypting the
|
||||
|
|
@ -108,30 +177,97 @@
|
|||
|
||||
Note that the hash preset must be ‘1’. To use a wallet file as the source
|
||||
instead of an MMGen seed phrase, omit the ‘-i’ option and add the wallet
|
||||
file path to the end of the command line. Multiple temporary wallets may
|
||||
be created in this way and used for signing (note, however, that for XMR
|
||||
operations only one wallet is supported).
|
||||
file path to the end of the command line. Multiple session wallets may
|
||||
be created in this way (note, however, that for XMR operations only one
|
||||
session wallet is supported).
|
||||
|
||||
Autosigning is currently supported on Linux and macOS only.
|
||||
|
||||
XMR SIGNING SESSION SETUP
|
||||
|
||||
To set up an XMR signing session, run ‘setup’ with the --xmrwallets option,
|
||||
supplying an integer, range, or comma-separated list of integers as the
|
||||
option’s parameter. Each integer in the list or range represents a wallet
|
||||
number. For each wallet number, the program generates a Monero address and
|
||||
creates a temporary session Monero signing wallet in volatile memory under
|
||||
‘/dev/shm/autosign’ with this number and base address. In addition, data is
|
||||
written to the removable device which will allow the online installation to
|
||||
create a watch-only wallet matching the session signing wallet when the user
|
||||
runs ‘mmgen-addrimport --coin=xmr’ on the online machine with the removable
|
||||
device inserted (type ‘mmgen-addrimport --coin=xmr --help’ for details).
|
||||
|
||||
The use of multiple Monero wallets can help protect against certain known
|
||||
deanonymization attacks such as the Janus attack. However, since wallet
|
||||
creation and online syncing of multiple wallets, as well as switching among
|
||||
them during the signing process, are all time-consuming, it’s recommended to
|
||||
limit the number of wallets created. First-time users are thus advised to
|
||||
begin with ‘--xmrwallets=1’. More wallets may be added in later signing
|
||||
sessions if necessary. See EXAMPLES below.
|
||||
|
||||
|
||||
SECURITY NOTE
|
||||
|
||||
By placing wallet and password on separate devices, this program creates
|
||||
a two-factor authentication setup whereby an attacker must gain physical
|
||||
control of both the removable device and signing machine in order to sign
|
||||
transactions. It’s therefore recommended to always keep the removable device
|
||||
secure, separated from the signing machine and hidden (in your pocket, for
|
||||
example) when not transacting. In addition, since login access on the
|
||||
signing machine is required to steal the user’s seed, it’s good practice
|
||||
to lock the signing machine’s screen once the setup process is complete.
|
||||
By placing the session wallet and password on separate devices, this program
|
||||
creates a two-factor authentication setup whereby an attacker must gain
|
||||
physical control of both the removable device and signing machine in order to
|
||||
sign transactions or steal the user’s seed. It’s therefore recommended to
|
||||
always keep the removable device secure, separated from the signing machine
|
||||
and hidden (in your pocket, for example) when not transacting. In addition,
|
||||
it’s good practice to lock the signing machine’s screen when unattended.
|
||||
|
||||
For Monero, passwords for the watch-only wallets are also stored on the
|
||||
removable device, meaning that a local attacker must gain access to the latter
|
||||
not only to sign transactions but also to observe the user’s XMR balances and
|
||||
transaction history (a remote attacker could possibly observe these, but
|
||||
extracting the removable device when it’s not in use makes such an attack
|
||||
less feasible).
|
||||
|
||||
As a last resort, cutting power to the signing machine will destroy the
|
||||
volatile memory where the temporary wallet resides and foil any attack,
|
||||
even if you’ve lost control of the removable device.
|
||||
volatile memory where the session wallets reside and prevent a signing or
|
||||
seed-stealing attack, even if the attacker has gained control of the removable
|
||||
device.
|
||||
|
||||
Always remember to power off the signing machine when your signing session
|
||||
is over.
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-AUTOSIGN(1)
|
||||
After each signing operation, this program displays a summary showing each
|
||||
transaction’s non-wallet destination address(es) and amount(s). As an extra
|
||||
security measure, it’s a good idea to compare these with the address(es) and
|
||||
amount(s) displayed by your online installation. A discrepancy would indicate
|
||||
that your online setup has been compromised.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
|
||||
Set up a signing session:
|
||||
$ mmgen-autosign setup
|
||||
|
||||
Start the Bitcoin Core daemon:
|
||||
$ bitcoind --daemon --listen=0
|
||||
|
||||
Start the signing loop (BTC-only signing):
|
||||
$ mmgen-autosign wait # exit loop with Ctrl-C
|
||||
|
||||
Set up a signing session with one XMR wallet:
|
||||
$ mmgen-autosign --xmrwallets=1 setup
|
||||
|
||||
In a later signing session, add two more XMR wallets:
|
||||
$ mmgen-autosign --xmrwallets=1-3 setup
|
||||
|
||||
Start the Litecoin Core daemon:
|
||||
$ litecoind --daemon --listen=0
|
||||
|
||||
Start the signing loop (BTC, LTC and XMR signing):
|
||||
$ mmgen-autosign --coins=btc,ltc,xmr wait
|
||||
|
||||
Set up a signing session with 3 XMR wallets, prompting for a 12-word BIP39 seed phrase:
|
||||
$ mmgen-autosign --xmrwallets=2,5,8 --mnemonic-fmt=bip39 --seed-len=128 setup
|
||||
|
||||
Start the signing loop in stealth LED mode with full TX summary (LTC, RUNE and XMR signing):
|
||||
$ mmgen-autosign --coins=ltc,rune,xmr --stealth-led --full-summary wait
|
||||
|
||||
Generate a list of 10 LTC Bech32 addresses using your session wallet:
|
||||
$ mount /mnt/mmgen_autosign
|
||||
$ mmgen-addrgen -P /mnt/mmgen_autosign/autosign.key --coin=ltc --type=B /dev/shm/autosign/*.mmdat 1-10
|
||||
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-AUTOSIGN(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-CLI: Communicate with a coin daemon via its JSON-RPC interface
|
||||
USAGE: mmgen-cli [opts] <command> <command args>
|
||||
|
||||
USAGE: mmgen-cli [opts] <command> <command args>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -31,5 +33,5 @@
|
|||
'[{"txid":"832f5aa9af55dc453314e26869c8f96db1f2a9acac9f23ae18d396903971e0c6","vout":0}]' \
|
||||
'[{"1111111111111111111114oLvT2":0.001}]'
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-CLI(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-CLI(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
```text
|
||||
MMGEN-KEYGEN: Generate a range or list of secret keys from an MMGen wallet,
|
||||
mnemonic, seed or brainwallet
|
||||
USAGE: mmgen-keygen [opts] [seed source] <index list or range(s)>
|
||||
|
||||
USAGE: mmgen-keygen [opts] [seed source] <index list or range(s)>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -83,12 +85,14 @@
|
|||
subwallets from a single parent. This leaves each user with a total of two
|
||||
million subwallets, which should be enough for most practical purposes.
|
||||
|
||||
|
||||
PASSPHRASE NOTE:
|
||||
|
||||
For passphrases all combinations of whitespace are equal, and leading and
|
||||
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||
data from a multi-line file with free spacing and indentation.
|
||||
|
||||
|
||||
BRAINWALLET NOTE:
|
||||
|
||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||
|
|
@ -126,5 +130,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-KEYGEN(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-KEYGEN(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
```text
|
||||
MMGEN-MSG: Perform message signing operations for MMGen addresses
|
||||
USAGE: mmgen-msg [opts] create MESSAGE_TEXT ADDRESS_SPEC [...]
|
||||
mmgen-msg [opts] sign MESSAGE_FILE [WALLET_FILE ...]
|
||||
mmgen-msg [opts] verify MESSAGE_FILE [MMGen ID]
|
||||
mmgen-msg [opts] verify <exported JSON dump file> [address]
|
||||
mmgen-msg [opts] export MESSAGE_FILE [MMGen ID]
|
||||
|
||||
USAGE:
|
||||
mmgen-msg [opts] create MESSAGE_TEXT ADDRESS_SPEC [...]
|
||||
mmgen-msg [opts] sign MESSAGE_FILE [WALLET_FILE ...]
|
||||
mmgen-msg [opts] verify MESSAGE_FILE [MMGen ID]
|
||||
mmgen-msg [opts] verify <exported JSON dump file> [address]
|
||||
mmgen-msg [opts] export MESSAGE_FILE [MMGen ID]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -107,5 +110,5 @@
|
|||
Verify and display the exported JSON signature data:
|
||||
$ mmgen-msg verify signatures.json
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-MSG(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-MSG(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-PASSCHG: Change the passphrase, hash preset or label of the default or specified MMGen wallet
|
||||
USAGE: mmgen-passchg [opts] [infile]
|
||||
|
||||
USAGE: mmgen-passchg [opts] [infile]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -53,5 +55,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-PASSCHG(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-PASSCHG(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
```text
|
||||
MMGEN-PASSGEN: Generate a range or list of passwords from an MMGen wallet,
|
||||
mnemonic, seed or brainwallet for the given ID string
|
||||
USAGE: mmgen-passgen [opts] [seed source] <ID string> <index list or range(s)>
|
||||
|
||||
USAGE: mmgen-passgen [opts] [seed source] <ID string> <index list or range(s)>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -41,6 +43,7 @@
|
|||
Changing either the password format (base32,base58) or length alters the seed
|
||||
and thus generates a completely new set of passwords.
|
||||
|
||||
|
||||
PASSWORD FORMATS:
|
||||
|
||||
Code Description Min Len Max Len Default Len
|
||||
|
|
@ -50,6 +53,7 @@
|
|||
xmrseed - Monero new-style mnemonic 25 25 25
|
||||
hex - hexadecimal password 32 64 64
|
||||
|
||||
|
||||
EXAMPLES:
|
||||
|
||||
Generate ten base58 passwords of length 20 for Alice's email account:
|
||||
|
|
@ -78,6 +82,7 @@
|
|||
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||
data from a multi-line file with free spacing and indentation.
|
||||
|
||||
|
||||
BRAINWALLET NOTE:
|
||||
|
||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||
|
|
@ -101,5 +106,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-PASSGEN(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-PASSGEN(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-REGTEST: Coin daemon regression test mode setup and operations for the MMGen suite
|
||||
USAGE: mmgen-regtest [opts] <command>
|
||||
|
||||
USAGE: mmgen-regtest [opts] <command>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -25,5 +27,5 @@
|
|||
wallet_cli - execute a wallet RPC call with supplied arguments (wallet
|
||||
is first argument)
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-REGTEST(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-REGTEST(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
```text
|
||||
MMGEN-SEEDJOIN: Regenerate an MMGen deterministic wallet from seed shares
|
||||
created by 'mmgen-seedsplit'
|
||||
USAGE: mmgen-seedjoin [options] share1 share2 [...shareN]
|
||||
|
||||
USAGE: mmgen-seedjoin [options] share1 share2 [...shareN]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -39,6 +41,7 @@
|
|||
|
||||
For usage examples, see the help screen for the 'mmgen-seedsplit' command.
|
||||
|
||||
|
||||
PASSPHRASE NOTE:
|
||||
|
||||
For passphrases all combinations of whitespace are equal, and leading and
|
||||
|
|
@ -62,5 +65,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-SEEDJOIN(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-SEEDJOIN(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-SEEDSPLIT: Generate a seed share from the default or specified MMGen wallet
|
||||
USAGE: mmgen-seedsplit [opts] [infile] [<Split ID String>:]<index>:<share count>
|
||||
|
||||
USAGE: mmgen-seedsplit [opts] [infile] [<Split ID String>:]<index>:<share count>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -115,12 +117,14 @@
|
|||
$ mmgen-seedsplit -M4 -o bip39 2:2 # Step N (share B)
|
||||
$ mmgen-seedjoin -M4 -H my.hincog,1325 <output_of_step_N>
|
||||
|
||||
|
||||
PASSPHRASE NOTE:
|
||||
|
||||
For passphrases all combinations of whitespace are equal, and leading and
|
||||
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||
data from a multi-line file with free spacing and indentation.
|
||||
|
||||
|
||||
BRAINWALLET NOTE:
|
||||
|
||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||
|
|
@ -144,5 +148,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-SEEDSPLIT(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-SEEDSPLIT(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-SUBWALLETGEN: Generate a subwallet from the default or specified MMGen wallet
|
||||
USAGE: mmgen-subwalletgen [opts] [infile] <Subseed Index>
|
||||
|
||||
USAGE: mmgen-subwalletgen [opts] [infile] <Subseed Index>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -68,12 +70,14 @@
|
|||
subwallets from a single parent. This leaves each user with a total of two
|
||||
million subwallets, which should be enough for most practical purposes.
|
||||
|
||||
|
||||
PASSPHRASE NOTE:
|
||||
|
||||
For passphrases all combinations of whitespace are equal, and leading and
|
||||
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||
data from a multi-line file with free spacing and indentation.
|
||||
|
||||
|
||||
BRAINWALLET NOTE:
|
||||
|
||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||
|
|
@ -97,5 +101,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-SUBWALLETGEN(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-SUBWALLETGEN(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-SWAPTXCREATE: Create a DEX swap transaction from one MMGen tracking wallet to another
|
||||
USAGE: mmgen-swaptxcreate [opts] COIN1 [AMT CHG_ADDR] COIN2 [ADDR] [addr file ...]
|
||||
|
||||
USAGE: mmgen-swaptxcreate [opts] COIN1 [AMT CHG_ADDR] COIN2 [ADDR]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -254,5 +256,5 @@
|
|||
|
||||
$ https_proxy=http://gw1:4444 mmgen-swaptxcreate --proxy=env RUNE 1000 BTC
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-SWAPTXCREATE(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-SWAPTXCREATE(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-SWAPTXDO: Create, sign and send a DEX swap transaction from one MMGen tracking wallet to another
|
||||
USAGE: mmgen-swaptxdo [opts] COIN1 [AMT CHG_ADDR] COIN2 [ADDR] [addr file ...] [seed source ...]
|
||||
|
||||
USAGE: mmgen-swaptxdo [opts] COIN1 [AMT CHG_ADDR] COIN2 [ADDR] [addr file ...] [seed source ...]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -215,7 +217,6 @@
|
|||
Seed source files must have the canonical extensions listed in the 'FileExt'
|
||||
column below:
|
||||
|
||||
|
||||
FMT CODES:
|
||||
|
||||
Format FileExt Valid codes
|
||||
|
|
@ -316,5 +317,5 @@
|
|||
|
||||
$ https_proxy=http://gw1:4444 mmgen-swaptxdo --proxy=env RUNE 1000 BTC
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-SWAPTXDO(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-SWAPTXDO(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1083,7 +1083,7 @@ Optional KEYWORD ARGS (type and default value shown in square brackets):
|
|||
mmgen_addrs [str=''] Hyphenated range or comma-separated list of addresses
|
||||
showcoinaddrs [bool=True] Display coin addresses in addition to MMGen IDs
|
||||
showempty [bool=True] Show addresses with no balances
|
||||
showused [int=1] Show used addresses (tristate: 0=no, 1=yes, 2=all)
|
||||
showused [int=1] Show used addresses (tristate: 0=no, 1=yes, 2=only)
|
||||
all_labels [bool=False] Show all addresses with labels
|
||||
```
|
||||
|
||||
|
|
@ -1252,5 +1252,5 @@ Optional KEYWORD ARGS (type and default value shown in square brackets):
|
|||
```
|
||||
|
||||
```text
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-TOOL(DETAIL)(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TOOL(DETAIL)(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -188,5 +188,5 @@ EXAMPLES:
|
|||
Same as above, but supply input via STDIN:
|
||||
$ echo "deadbeefcafe" | mmgen-tool hexreverse -
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-TOOL(USAGE)(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TOOL(USAGE)(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
```text
|
||||
MMGEN-TOOL: Perform various MMGen- and cryptocoin-related operations
|
||||
USAGE: mmgen-tool [opts] <command> <command args>
|
||||
|
||||
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 (global) options
|
||||
-a, --autosign Operate on an autosigned transaction
|
||||
-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
|
||||
|
|
@ -16,6 +19,8 @@
|
|||
-q, --quiet Produce quieter output
|
||||
-r, --usr-randchars n Get 'n' characters of additional randomness from
|
||||
user (min=10, max=80)
|
||||
-s, --scroll Use the curses-like scrolling interface for tracking
|
||||
wallet views
|
||||
-t, --type t Specify address type (valid choices: 'legacy',
|
||||
'compressed', 'segwit', 'bech32', 'zcash_z')
|
||||
-v, --verbose Produce more verbose output
|
||||
|
|
@ -202,5 +207,5 @@
|
|||
|
||||
Type ‘mmgen-tool help <command>’ for help on a particular command
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-TOOL(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TOOL(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,8 +1,13 @@
|
|||
```text
|
||||
MMGEN-TXBUMP: Create, and optionally send and sign, a replacement transaction
|
||||
on supporting networks
|
||||
USAGE: mmgen-txbump [opts] [MMGen TX file] [seed source] ...
|
||||
mmgen-txbump [opts] [ADDR,AMT ... | DATA_SPEC] ADDR [MMGen TX file] [seed source] ...
|
||||
on supported networks
|
||||
|
||||
USAGE:
|
||||
mmgen-txbump [opts] [MMGen TX file] [seed source] ...
|
||||
mmgen-txbump [opts] [ADDR,AMT ... | DATA_SPEC] ADDR [addr file ...] [MMGen TX file] [seed source] ...
|
||||
mmgen-txbump --autosign [opts] [index]
|
||||
mmgen-txbump --autosign [opts] [index] [ADDR,AMT ... | DATA_SPEC] ADDR [addr file ...]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -56,8 +61,12 @@
|
|||
-z, --show-hash-presets Show information on available hash presets
|
||||
|
||||
|
||||
With --autosign, the TX file argument is omitted, and the last submitted TX
|
||||
file on the removable device will be used.
|
||||
With --autosign, the TX file argument is omitted, and the last submitted
|
||||
transaction on the removable device will be used. Or, if the first non-option
|
||||
argument is a non-negative integer, it specifies an index into the list of
|
||||
submitted transactions, in reverse chronological order, and that transaction
|
||||
will be bumped. ‘0’ (the default) signifies the last sent transaction, ‘1’
|
||||
the next-to-last, and so on.
|
||||
|
||||
If no outputs are specified, the original outputs will be used for the
|
||||
replacement transaction, otherwise a new transaction will be created with the
|
||||
|
|
@ -103,7 +112,6 @@
|
|||
Seed source files must have the canonical extensions listed in the 'FileExt'
|
||||
column below:
|
||||
|
||||
|
||||
FMT CODES:
|
||||
|
||||
Format FileExt Valid codes
|
||||
|
|
@ -120,5 +128,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXBUMP(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TXBUMP(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
### [BTC](#a_btc) | [ETH](#a_eth) | [XMR](#a_xmr)
|
||||
|
||||
### <a id="a_btc">mmgen-txcreate --coin=btc --help</a>
|
||||
|
||||
```text
|
||||
MMGEN-TXCREATE: Create a transaction with outputs to specified coin or MMGen addresses
|
||||
USAGE: mmgen-txcreate [opts] [ADDR,AMT ... | DATA_SPEC] ADDR [addr file ...]
|
||||
|
||||
USAGE: mmgen-txcreate [opts] [ADDR,AMT ... | DATA_SPEC] ADDR [addr file ...]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -62,7 +68,7 @@
|
|||
or "hexdata":DATA. In the first form, DATA is a string in your system’s native
|
||||
encoding, typically UTF-8. In the second, DATA is a hexadecimal string (with
|
||||
the leading ‘0x’ omitted) encoding the binary data to be embedded. In both
|
||||
cases, the resulting byte string must not exceed 80 bytes in length.
|
||||
cases, the resulting byte string must not exceed 4096 bytes in length.
|
||||
|
||||
If the transaction fee is not specified on the command line (see FEE
|
||||
SPECIFICATION below), it will be calculated dynamically using network fee
|
||||
|
|
@ -124,5 +130,142 @@
|
|||
|
||||
$ mmgen-txcreate B
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXCREATE(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TXCREATE(1)
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### <a id="a_eth">mmgen-txcreate --coin=eth --help</a>
|
||||
|
||||
```text
|
||||
MMGEN-TXCREATE: Create a transaction with outputs to specified coin or MMGen addresses
|
||||
|
||||
USAGE: mmgen-txcreate --coin=eth [opts] ADDR,AMT [addr file ...]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
-a, --autosign Create a transaction for offline autosigning (see
|
||||
‘mmgen-autosign’). The removable device is mounted and
|
||||
unmounted automatically
|
||||
-A, --fee-adjust f Adjust transaction fee by factor ‘f’ (see below)
|
||||
-B, --no-blank Don't blank screen before displaying account info
|
||||
-c, --comment-file f Source the transaction's comment from file 'f'
|
||||
-d, --outdir d Specify an alternate directory 'd' for output
|
||||
-D, --contract-data D Path to file containing hex-encoded contract data
|
||||
-f, --fee f Transaction fee, as a decimal ETH amount or as
|
||||
gas price (an integer followed by ‘w’,‘K’,‘M’,‘G’,‘s’ or ‘f’).
|
||||
See FEE SPECIFICATION below. If omitted, fee will be
|
||||
calculated using network fee estimation.
|
||||
-g, --gas N Set the gas limit (see GAS LIMIT below)
|
||||
-i, --info Display account info and exit
|
||||
-I, --inputs i Specify transaction inputs (comma-separated list of
|
||||
MMGen IDs or coin addresses). Note that ALL unspent
|
||||
outputs associated with each address will be included.
|
||||
-m, --minconf n Minimum number of confirmations required to spend
|
||||
outputs (default: 1)
|
||||
-q, --quiet Suppress warnings; overwrite files without prompting
|
||||
-v, --verbose Produce more verbose output
|
||||
-y, --yes Answer 'yes' to prompts, suppress non-essential output
|
||||
-X, --cached-balances Use cached balances
|
||||
|
||||
|
||||
The transaction’s outputs are listed on the command line, while its inputs
|
||||
are chosen from a list of the wallet’s unspent outputs via an interactive
|
||||
menu. Alternatively, inputs may be specified using the --inputs option.
|
||||
|
||||
Addresses on the command line can be either native coin addresses or MMGen
|
||||
IDs in the form SEED_ID:ADDRTYPE_CODE:INDEX.
|
||||
|
||||
The transaction output is specified in the form ADDRESS,AMOUNT.
|
||||
|
||||
If the transaction fee is not specified on the command line (see FEE
|
||||
SPECIFICATION below), it will be calculated dynamically using network fee
|
||||
estimation for the default (or user-specified) number of confirmations.
|
||||
If network fee estimation fails, the user will be prompted for a fee.
|
||||
|
||||
Network-estimated fees will be multiplied by the value of --fee-adjust, if
|
||||
specified.
|
||||
|
||||
|
||||
GAS LIMIT
|
||||
|
||||
This option specifies the maximum gas allowance for an Ethereum transaction.
|
||||
It’s generally of interest only for token transactions or swap transactions
|
||||
from token assets.
|
||||
|
||||
Parameter must be an integer or one of the special values ‘fallback’ (for a
|
||||
locally computed sane default) or ‘auto’ (for gas estimate via an RPC call,
|
||||
in the case of a token transaction, or locally computed default, in the case
|
||||
of a standard transaction). The default is ‘auto’.
|
||||
|
||||
|
||||
FEE SPECIFICATION
|
||||
|
||||
Transaction fees, both on the command line and at the interactive prompt, may
|
||||
be specified as either absolute coin amounts, using a plain decimal number, or
|
||||
as gas price, using an integer followed by ‘w’,‘K’,‘M’,‘G’,‘s’ or ‘f’, for
|
||||
wei, Kwei, Mwei, Gwei, szabo and finney, respectively.
|
||||
|
||||
|
||||
EXAMPLES:
|
||||
|
||||
Send 0.123 ETH to an external Ethereum address:
|
||||
|
||||
$ mmgen-txcreate --coin=eth 22610767a64ed579ed9382e8df2d92c68d3ab0e6,0.123
|
||||
|
||||
Send 0.123 ETH to another account in wallet 01ABCDEF:
|
||||
|
||||
$ mmgen-txcreate --coin=eth 01ABCDEF:E:7,0.123
|
||||
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TXCREATE(1)
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### <a id="a_xmr">mmgen-txcreate --coin=xmr --help</a>
|
||||
|
||||
```text
|
||||
MMGEN-TXCREATE: Create a transaction with outputs to specified coin or MMGen addresses
|
||||
|
||||
USAGE: mmgen-txcreate --coin=xmr [opts] [ADDR,AMT]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
-a, --autosign Create a transaction for offline autosigning (see
|
||||
‘mmgen-autosign’). The removable device is mounted and
|
||||
unmounted automatically
|
||||
-B, --no-blank Don't blank screen before displaying account info
|
||||
-c, --comment-file f Source the transaction's comment from file 'f'
|
||||
-d, --outdir d Specify an alternate directory 'd' for output
|
||||
-i, --info Display account info and exit
|
||||
-m, --minconf n Minimum number of confirmations required to spend
|
||||
outputs (default: 1)
|
||||
-p, --priority N Specify an integer priority ‘N’ for inclusion of trans-
|
||||
action in blockchain (higher number means higher fee).
|
||||
Valid parameters: 1=low 2=normal 3=high 4=highest.
|
||||
If option is omitted, the default priority will be used
|
||||
-q, --quiet Suppress warnings; overwrite files without prompting
|
||||
-v, --verbose Produce more verbose output
|
||||
-y, --yes Answer 'yes' to prompts, suppress non-essential output
|
||||
|
||||
|
||||
The transaction’s output is listed on the command line, while its input
|
||||
is chosen via an interactive menu.
|
||||
|
||||
The transaction output is specified in the form ADDRESS,AMOUNT.
|
||||
|
||||
|
||||
EXAMPLES:
|
||||
|
||||
Send 0.123 XMR to an external Monero address:
|
||||
|
||||
$ mmgen-txcreate --coin=xmr 42ZNVTWwDcyXkKDQgvatxJZvTYvHCJGLh5NQCbrCrFSHVYaCANXYznaaKgL4qZEPKMP6WRxaB5TGAXCQnNTVzKSp4w4BQcx,0.123
|
||||
|
||||
Create a sweep transaction:
|
||||
|
||||
$ mmgen-txcreate --coin=xmr
|
||||
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TXCREATE(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-TXDO: Create, sign and send an MMGen transaction
|
||||
USAGE: mmgen-txdo [opts] [ADDR,AMT ... | DATA_SPEC] ADDR [addr file ...] [seed source ...]
|
||||
|
||||
USAGE: mmgen-txdo [opts] [ADDR,AMT ... | DATA_SPEC] ADDR [addr file ...] [addr file ...] [seed source ...]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -85,7 +87,7 @@
|
|||
or "hexdata":DATA. In the first form, DATA is a string in your system’s native
|
||||
encoding, typically UTF-8. In the second, DATA is a hexadecimal string (with
|
||||
the leading ‘0x’ omitted) encoding the binary data to be embedded. In both
|
||||
cases, the resulting byte string must not exceed 80 bytes in length.
|
||||
cases, the resulting byte string must not exceed 4096 bytes in length.
|
||||
|
||||
If the transaction fee is not specified on the command line (see FEE
|
||||
SPECIFICATION below), it will be calculated dynamically using network fee
|
||||
|
|
@ -142,7 +144,6 @@
|
|||
Seed source files must have the canonical extensions listed in the 'FileExt'
|
||||
column below:
|
||||
|
||||
|
||||
FMT CODES:
|
||||
|
||||
Format FileExt Valid codes
|
||||
|
|
@ -190,5 +191,5 @@
|
|||
|
||||
$ mmgen-txdo B
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXDO(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TXDO(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
```text
|
||||
MMGEN-TXSEND: Send a signed MMGen cryptocoin transaction
|
||||
USAGE: mmgen-txsend [opts] [signed transaction file]
|
||||
|
||||
USAGE:
|
||||
mmgen-txsend [opts] <signed transaction file>
|
||||
mmgen-txsend [opts] --autosign
|
||||
mmgen-txsend [opts] --autosign (--status | --receipt) [index or range]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -34,5 +39,14 @@
|
|||
instead.
|
||||
-y, --yes Answer 'yes' to prompts, suppress non-essential output
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXSEND(1)
|
||||
|
||||
With --autosign, combined with --status or --receipt, the optional index or
|
||||
range arg represents an index or range into the list of sent transaction files
|
||||
on the removable device, in reverse chronological order. ‘0’ (the default)
|
||||
specifies the last sent transaction, ‘1’ the next-to-last, and so on. Hyphen-
|
||||
separated ranges are also supported. For example, specifying a range ‘0-3’
|
||||
would output data for the last four sent transactions, beginning with the most
|
||||
recent.
|
||||
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TXSEND(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-TXSIGN: Sign cryptocoin transactions generated by mmgen-txcreate
|
||||
USAGE: mmgen-txsign [opts] <transaction file>... [seed source]...
|
||||
|
||||
USAGE: mmgen-txsign [opts] <transaction file>... [seed source]...
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -67,7 +69,6 @@
|
|||
Seed source files must have the canonical extensions listed in the 'FileExt'
|
||||
column below:
|
||||
|
||||
|
||||
FMT CODES:
|
||||
|
||||
Format FileExt Valid codes
|
||||
|
|
@ -84,5 +85,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXSIGN(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-TXSIGN(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-WALLETCHK: Check validity of the default or specified MMGen wallet
|
||||
USAGE: mmgen-walletchk [opts] [infile]
|
||||
|
||||
USAGE: mmgen-walletchk [opts] [infile]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -28,6 +30,7 @@
|
|||
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||
data from a multi-line file with free spacing and indentation.
|
||||
|
||||
|
||||
BRAINWALLET NOTE:
|
||||
|
||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||
|
|
@ -51,5 +54,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-WALLETCHK(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-WALLETCHK(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-WALLETCONV: Convert the default or specified MMGen wallet from one format to another
|
||||
USAGE: mmgen-walletconv [opts] [infile]
|
||||
|
||||
USAGE: mmgen-walletconv [opts] [infile]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -39,6 +41,7 @@
|
|||
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||
data from a multi-line file with free spacing and indentation.
|
||||
|
||||
|
||||
BRAINWALLET NOTE:
|
||||
|
||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||
|
|
@ -62,5 +65,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-WALLETCONV(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-WALLETCONV(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
```text
|
||||
MMGEN-WALLETGEN: Generate an MMGen wallet from a random seed
|
||||
USAGE: mmgen-walletgen [opts]
|
||||
|
||||
USAGE: mmgen-walletgen [opts]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -31,6 +33,7 @@
|
|||
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||
data from a multi-line file with free spacing and indentation.
|
||||
|
||||
|
||||
BRAINWALLET NOTE:
|
||||
|
||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||
|
|
@ -54,5 +57,5 @@
|
|||
MMGenWallet .mmdat wallet,w
|
||||
PlainHexSeedFile .hex hex,rawhex,plainhex
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-WALLETGEN(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-WALLETGEN(1)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,16 +1,19 @@
|
|||
```text
|
||||
MMGEN-XMRWALLET: Perform various Monero wallet and transacting operations for
|
||||
addresses in an MMGen XMR key-address file
|
||||
USAGE: mmgen-xmrwallet [opts] create | sync | list | view | listview | dump | restore [xmr_keyaddrfile] [wallets]
|
||||
mmgen-xmrwallet [opts] label [xmr_keyaddrfile] LABEL_SPEC
|
||||
mmgen-xmrwallet [opts] new [xmr_keyaddrfile] NEW_ADDRESS_SPEC
|
||||
mmgen-xmrwallet [opts] transfer [xmr_keyaddrfile] TRANSFER_SPEC
|
||||
mmgen-xmrwallet [opts] sweep | sweep_all [xmr_keyaddrfile] SWEEP_SPEC
|
||||
mmgen-xmrwallet [opts] submit [TX_file]
|
||||
mmgen-xmrwallet [opts] relay <TX_file>
|
||||
mmgen-xmrwallet [opts] resubmit | abort (for use with --autosign only)
|
||||
mmgen-xmrwallet [opts] txview | txlist [TX_file] ...
|
||||
mmgen-xmrwallet [opts] export-outputs | export-outputs-sign | import-key-images [wallets]
|
||||
|
||||
USAGE:
|
||||
mmgen-xmrwallet --coin=xmr [opts] create | sync | list | view | listview | dump-json | dump | restore [xmr_keyaddrfile] [wallets]
|
||||
mmgen-xmrwallet --coin=xmr [opts] label [xmr_keyaddrfile] LABEL_SPEC
|
||||
mmgen-xmrwallet --coin=xmr [opts] new [xmr_keyaddrfile] NEW_ADDRESS_SPEC
|
||||
mmgen-xmrwallet --coin=xmr [opts] transfer [xmr_keyaddrfile] TRANSFER_SPEC
|
||||
mmgen-xmrwallet --coin=xmr [opts] sweep | sweep_all [xmr_keyaddrfile] SWEEP_SPEC
|
||||
mmgen-xmrwallet --coin=xmr [opts] submit [TX_file]
|
||||
mmgen-xmrwallet --coin=xmr [opts] relay <TX_file>
|
||||
mmgen-xmrwallet --coin=xmr [opts] resubmit | abort (for use with --autosign only)
|
||||
mmgen-xmrwallet --coin=xmr [opts] txview | txlist [TX_file] ...
|
||||
mmgen-xmrwallet --coin=xmr [opts] export-outputs | export-outputs-sign | import-key-images [wallets]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print this help message
|
||||
--longhelp Print help message for long (global) options
|
||||
|
|
@ -19,6 +22,10 @@
|
|||
When this option is in effect, filename argu-
|
||||
ments must be omitted, as files are located
|
||||
automatically.
|
||||
-c, --compat Adjust configuration for compatibility with
|
||||
the mmgen-tx{create,sign,send} family of
|
||||
commands. Currently equivalent to
|
||||
‘-w /home/vbr/.mmgen/altcoins/xmr/tracking-wallets’
|
||||
-f, --priority N Specify an integer priority ‘N’ for inclusion
|
||||
of a transaction in the blockchain (higher
|
||||
number means higher fee). Valid parameters:
|
||||
|
|
@ -88,7 +95,7 @@
|
|||
specified address
|
||||
sweep - sweep funds in specified wallet:account to new address in same
|
||||
account, or new or specified account in another wallet
|
||||
sweep_all - same as above, but sweep balances of all addresses in the account
|
||||
sweep-all - same as above, but sweep balances of all addresses in the account
|
||||
relay - relay a transaction from a transaction file created using ‘sweep’
|
||||
or ‘transfer’ with the --no-relay option
|
||||
submit - submit an autosigned transaction to a wallet and the network
|
||||
|
|
@ -98,8 +105,11 @@
|
|||
transaction may be signed or unsigned
|
||||
txview - display detailed information about a transaction file or files
|
||||
txlist - same as above, but display terse information in tabular format
|
||||
dump - produce JSON dumps of wallet metadata (accounts, addresses and
|
||||
labels) for a list or range of wallets
|
||||
dump-json - dump wallet metadata (accounts, addresses, labels), plus address
|
||||
balances, for a list or range of wallets, to standard output in
|
||||
JSON format
|
||||
dump - same as above, but dump metadata only and save the dumps to
|
||||
separate files for each wallet
|
||||
restore - same as ‘create’, but additionally restore wallet metadata from
|
||||
the corresponding JSON dump files created with ‘dump’
|
||||
export-outputs - export outputs of watch-only wallets for import into
|
||||
|
|
@ -499,5 +509,5 @@
|
|||
to delete your old hot wallets, make sure to do so securely using ‘shred’,
|
||||
‘wipe’ or some other secure deletion utility.
|
||||
|
||||
MMGEN-WALLET 16.0.0 September 2025 MMGEN-XMRWALLET(1)
|
||||
MMGEN-WALLET 16.1.0 May 2026 MMGEN-XMRWALLET(1)
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue