diff --git a/Altcoin-and-Forkcoin-Support.md b/Altcoin-and-Forkcoin-Support.md
index b91cc8d..49fc98f 100644
--- a/Altcoin-and-Forkcoin-Support.md
+++ b/Altcoin-and-Forkcoin-Support.md
@@ -4,7 +4,7 @@
#### [Ethereum (ETH), Ethereum Classic (ETC) and ERC20 Tokens](#a_eth)
* [Install the Ethereum dependencies](#a_ed)
-* [Install and run Geth or Parity](#a_geth)
+* [Install and run Reth, Geth or Parity](#a_geth)
* [Transacting and other basic operations](#a_tx)
* [Creating and deploying ERC20 tokens](#a_dt)
@@ -12,6 +12,10 @@
#### [Monero (XMR)](#a_xmr)
+#### [THORChain (RUNE)](#a_rune)
+
+#### [Asset swaps via THORChain](#a_tcswap)
+
#### [Key/address generation for Zcash (ZEC)](#a_zec)
#### [Key/address generation for 144 Bitcoin-derived altcoins](#a_kg)
@@ -35,20 +39,31 @@ From the MMGen Wallet repository root, type:
```text
$ python3 -m pip install -r alt-requirements.txt # skip this for MSYS2
-$ python3 -m pip install --no-deps -r eth-requirements.txt
```
-#### Install and run Geth or Parity
+#### Install and run Reth, Geth or Parity
-MMGen Wallet uses Go-Ethereum (Geth) to communicate with the Ethereum network.
-For information on installing Geth on your system, visit the the Geth [Github
-repo][ge]. On Arch Linux systems, Go-Ethereum is a package and may be installed
-with `pacman`.
+MMGen Wallet uses Rust Ethereum (Reth) or Go-Ethereum (Geth) to communicate with
+the Ethereum network, with Reth now being preferred by the MMGen Project.
+
+Installation and usage instructions for Reth can be found [here][RE] and
+prebuilt binaries [here][rb].
+
+Information for Geth can be found at its [homepage][gh] or [Github repo][ge].
+On Arch Linux systems, Geth is a package and may be installed with `pacman`. On
+RISC-V platforms, for which no prebuilt binaries are available, Geth must be
+built from source, preferably using the most recent version of [Go][gd].
Note that the Ethereum daemon is not used for transaction signing, so you
needn’t install it on your offline machine.
-For Geth, the following command-line options are required:
+For Reth, the following command-line options are required, among others:
+
+```text
+--http --http.api=eth,rpc,web3,txpool
+```
+
+For Geth, the following command-line options are required, among others:
```text
--http --http.api=eth,web3,txpool --http.port=8745
@@ -71,8 +86,8 @@ Parity’s light client mode, which queries other nodes on the network for
blockchain data, is supported. Add the `--light` option to the Parity command
line and read the applicable note in the [Transacting](#a_tx) section below.
-You may require other options as well. Invoke your daemon with the `--help`
-option for more complete information.
+Other command-line options will certainly be required. Invoke your daemon with
+the `--help` option for more complete information.
#### Transacting and other basic operations
@@ -80,7 +95,7 @@ Basic operations with ETH, ETC and ERC20 tokens work as described in the
[**Getting Started**][bo] guide, with some differences. Please note the
following:
-* Don’t forget to invoke all commands with `--coin=eth` or `--coin=etc`.
+* Don’t forget to invoke relevant commands with `--coin=eth` or `--coin=etc`.
* Use the `--token` option with the token symbol as parameter for all token
operations. When importing addresses for a new token into your tracking
wallet, use the `--token-addr` option with the token address instead.
@@ -93,6 +108,14 @@ following:
your account balances have changed, they may be refreshed interactively within
the TRACKED ACCOUNTS menu. Cached balances are stored persistently in your
tracking wallet.
+* Note that sending transactions with your Ethereum node can easily deanonymize
+ you by linking the transaction with your IP address (running a Reth node
+ over Tor or Tor+VPN is theoretically possible, but problematic in practice).
+ As a solution to this problem, MMGen Wallet supports broadcasting transactions
+ via the etherscan.io website with the `--tx-proxy` option. Sending is done
+ using the site’s public web form, so no registration or API key is required.
+ For anonymity, the connection can be routed via Tor or I2P using the `--proxy`
+ option. See `mmgen-txsend --help` for details.
##### Transacting example:
@@ -205,11 +228,14 @@ To transact BCH or Litecoin, first make sure the Bitcoin Cash Node or Litecoin
daemons are properly installed ([source][si])([binaries][bi]), [running][p8] and
synced.
+On RISC-V platforms, Bitcoin Cash Node must be compiled from source, as no
+precompiled binaries are available.
+
MMGen Wallet requires that the bitcoin-bchn daemon be listening on non-standard
[RPC port 8432][p8]. If your daemon version is >= 0.16.2, you must use the
`--usecashaddr=0` option.
-Then just add the `--coin=bch` or `--coin=ltc` option to all your MMGen Wallet
+Then just add the `--coin=bch` or `--coin=ltc` option to applicable MMGen Wallet
commands. It’s that simple!
### Monero (XMR)
@@ -274,6 +300,30 @@ have multiple wallets requiring long sync times.
To learn how to transact using your wallets, continue on to the
[`mmgen-xmrwallet`][mx] help screen.
+### THORChain (RUNE)
+
+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
+the `--coins` parameter.
+
+Note that MMGen Wallet’s RUNE support requires no locally running node; instead,
+balances are fetched and transactions sent via a public node at ninerealms.com.
+As this can compromise your privacy, it’s recommended to proxy all
+communications via Tor or I2P: refer to the helpscreens of `mmgen-txcreate`,
+`mmgen-swaptxcreate` and `mmgen-txsend` for more information.
+
+### Asset swaps via THORChain
+
+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
+coin daemons for both the send and receive assets must be running and synced
+before carrying out a swap. Depending on your setup, communication with two
+daemons simultaneously may require the use of *coin-specific options* (see
+`mmgen-swaptxcreate --longhelp`). For usage information, examples, and a list
+of supported assets, invoke `mmgen-swaptxcreate --help`.
+
### Key/address generation for Zcash (ZEC)
MMGen Wallet supports generation of Zcash **z-addresses.**
@@ -353,7 +403,11 @@ the MMGen Project.
[si]: Install-Bitcoind-from-Source-on-Linux
[bi]: Install-Bitcoind#a_d
[p8]: Install-Bitcoind#a_r
+[gh]: https://geth.ethereum.org
[ge]: https://github.com/ethereum/go-ethereum
[mx]: command-help-xmrwallet
[sb]: https://github.com/ethereum/solidity/releases
[sd]: https://docs.soliditylang.org
+[RE]: https://reth.rs/overview
+[rb]: https://github.com/paradigmxyz/reth/releases
+[gd]: https://go.dev
diff --git a/Getting-Started-with-MMGen-Wallet.md b/Getting-Started-with-MMGen-Wallet.md
index 4798116..cd90ba6 100644
--- a/Getting-Started-with-MMGen-Wallet.md
+++ b/Getting-Started-with-MMGen-Wallet.md
@@ -48,8 +48,8 @@ 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 and XMR as of this
-writing). See [Altcoin-and-Forkcoin-Support][09] for more details.
+Wallet supports transaction operations (BCH, LTC, ETH, ETC, RUNE and XMR as of
+this writing). See [Altcoin-and-Forkcoin-Support][09] for more details.
#### Invocation
@@ -170,8 +170,8 @@ overestimated.
### Transacting
-*The following transacting information is applicable to BTC, BCH, LTC, ETH and
-ETC. For transacting with Monero, consult [Altcoin-and-Forkcoin-Support][ax]
+*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.*
#### Generate addresses (offline computer)
@@ -326,7 +326,7 @@ the Bitcoin network. If you send 0.1, 0.2, 0.3 and 0.4 BTC respectively, your
address listing will look like this after the transactions have confirmed:
```text
-$ mmgen-tool listaddresses showempty=0
+$ mmgen-tool listaddresses
MMGenID Address Comment Balance
89ABCDEF:S:1 36bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE Donations 0.1
89ABCDEF:S:2 3AmkUxrfy5dMrfmeYwTxLxfIswUCcpeysc Storage 1 0.2
@@ -453,7 +453,7 @@ Once the transaction is broadcast to the network and confirmed, your address
listing should look something like this:
```text
-$ mmgen-tool listaddresses showempty=0
+$ mmgen-tool listaddresses
MMGenID Address Comment Balance
89ABCDEF:S:1 36bNmyYISiptuvJG3X7MPwiiS4HYvD7ksE Donations 0.1
89ABCDEF:S:3 3HgYCsfqYzIg7LVVfDTp7gYJocJEiDAy6N Storage 2 0.3
@@ -1127,7 +1127,7 @@ $ python3 -m pip install user --upgrade dist/*.whl
[07]: command-help-autosign
[08]: Install-Bitcoind
[09]: Altcoin-and-Forkcoin-Support
-[ax]: Altcoin-and-Forkcoin-Support#a_xmr
+[x]: Altcoin-and-Forkcoin-Support#a_xmr
[cp]: ../commits/master
[mx]: command-help-xmrwallet
[li]: Install-MMGen-Wallet-on-Linux-or-macOS
diff --git a/Home.md b/Home.md
index 8b2176c..46d8fff 100644
--- a/Home.md
+++ b/Home.md
@@ -16,6 +16,8 @@ within the pager are performed via the `/` key.
> #### [Install on Linux or macOS](wiki/Install-MMGen-Wallet-on-Linux-or-macOS)
+> #### [Install on Nix/NixOS](wiki/Install-MMGen-Wallet-on-Nix)
+
### Using MMGen Wallet
diff --git a/Install-MMGen-Wallet-on-Linux-or-macOS.md b/Install-MMGen-Wallet-on-Linux-or-macOS.md
index 4fe6272..1e1b883 100644
--- a/Install-MMGen-Wallet-on-Linux-or-macOS.md
+++ b/Install-MMGen-Wallet-on-Linux-or-macOS.md
@@ -26,6 +26,8 @@ $ sudo pacman -S curl git gcc libtool make autoconf automake autogen pcre python
$ brew install python bash autoconf coreutils gcc libmpc libtool readline secp256k1
```
+On RISC-V machines, you may additionally need to install the `libffi-dev` package and [Rust][rs]
+
You may wish to use a [virtual environment][vv] to keep your MMGen Wallet
installation isolated from the rest of your Python packages.
@@ -110,3 +112,4 @@ Congratulations, your installation is now complete! You can now proceed to
[af]: Altcoin-and-Forkcoin-Support
[ec]: https://github.com/bitcoin-core/secp256k1.git
[vv]: https://docs.python.org/3/library/venv.html
+[rs]: https://rustup.rs
diff --git a/Install-MMGen-Wallet-on-Microsoft-Windows.md b/Install-MMGen-Wallet-on-Microsoft-Windows.md
index 31093cb..a49b70d 100644
--- a/Install-MMGen-Wallet-on-Microsoft-Windows.md
+++ b/Install-MMGen-Wallet-on-Microsoft-Windows.md
@@ -11,15 +11,13 @@
* [Offline install](#a_md1)
* [4. Set up your shell environment](#a_ev)
* [5. Choose your Python environment](#a_pev)
-* [6. Install the Python ECDSA library (offline install only)](#a_ec)
-* [7. Install the standalone scrypt package (required for strong password hashing)](#a_sc)
-* [8. Clone and copy the secp256k1 library (offline install only)](#a_se)
-* [9. Install MMGen Wallet](#a_mm)
+* [6. Install required Python packages](#a_pp)
+* [7. Clone and copy the secp256k1 library (offline install only)](#a_se)
+* [8. Install MMGen Wallet](#a_mm)
* [Stable version](#a_mms)
* [Development version](#a_mmd)
-* [10. Install Python Ethereum dependencies (if applicable)](#a_pe)
-* [11. Install and launch your coin daemons](#a_cd)
-* [12. You’re done!](#a_do)
+* [9. Install and launch your coin daemons](#a_cd)
+* [10. You’re done!](#a_do)
#### [Keeping your installation up to date](#a_u)
* [Upgrading MSYS2](#a_us)
@@ -106,14 +104,12 @@ $ ls 'C:\\msys64\etc' # the path as seen by Windows
>
>>
>>
->>
->>
->>
->>
+>>
+>>
+>>
+>>
>>
>>
->>
->>
>>
>>
>>
@@ -195,7 +191,8 @@ pacman -S tar git vim autoconf automake-wrapper autogen libtool cygrunsrv \
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-pyreadline3
+ mingw-w64-ucrt-x86_64-python-pyreadline3 \
+ mingw-w64-ucrt-x86_64-python-lxml
```
### 4. Set up your shell environment
@@ -236,46 +233,25 @@ If you choose not to use a virtual environment, then you should add `--user` to
the command line every time you run `pip install` as directed below. This will
prevent pip from installing packages in the system directory.
-### 6. Install the Python ECDSA library (offline install only)
+### 6. Install required Python packages
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
+
```
-Copy the downloaded file to your offline machine and install:
+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*
```
-### 7. Install the standalone scrypt package (required for strong password hashing)
-
-Due to a faulty implementation of the `scrypt` function included in Python’s
-`hashlib`, the standalone `scrypt` module is required for stronger-than-default
-password hashing (i.e. hash presets greater than `3`). Installing the package is
-therefore highly advisable.
-
-On your online machine, clone the Py-Scrypt repository from Github:
-
-```text
-$ git clone https://github.com/holgern/py-scrypt.git
-```
-
-Offline install:
-
-> Copy the cloned repo to your offline machine.
-
-Build and install:
-
-```text
-$ cd py-scrypt
-$ python3 -m build --no-isolation
-$ python3 -m pip install dist/*.whl
-```
-
-### 8. Clone and copy the secp256k1 library (offline install only)
+### 7. Clone and copy the secp256k1 library (offline install only)
On your online machine, clone the secp256k1 repository from Github:
@@ -292,7 +268,7 @@ $ cp -a /path/to/secp256k1/repo/secp256k1 ~/.cache/mmgen
$ ls ~/.cache/mmgen/secp256k1/autogen.sh # check that files were correctly copied
```
-### 9. Install MMGen Wallet
+### 8. Install MMGen Wallet
Now you’re ready to install MMGen Wallet itself.
@@ -350,31 +326,7 @@ occasion.
Note that MMGen Wallet has a test suite. Refer to the [Test Suite][ts] wiki
page for details.
-### 10. Install Python Ethereum dependencies (if applicable)
-
-If you’ll be using MMGen Wallet with Ethereum, then you must install a few
-dependencies. From the MMGen repository root, type the following:
-
-Online install:
-
-> ```text
-> $ python3 -m pip install --no-deps -r eth-requirements.txt
-> ```
-
-Offline install:
-
-> ```text
-> $ python3 -m pip download --no-deps -r eth-requirements.txt
-> ```
->
-> Transfer the downloaded files to your offline machine, `cd` to the directory
-> containing the files and install them:
->
-> ```text
-> $ python3 -m pip install --no-deps *.whl
-> ```
-
-### 11. Install and launch your coin daemons
+### 9. Install and launch your coin daemons
At this point your installation will be able to generate wallets, along with
keys and addresses for all supported coins. However, if you intend to do any
@@ -399,7 +351,7 @@ Please note that Ethereum daemons perform rather poorly under Windows due to
threading limitations. Unless you have very fast hardware, transacting and
syncing the blockchain will be painfully slow.
-### 12. You’re done!
+### 10. You’re done!
Congratulations, your installation is now complete, and you can proceed to
[**Getting Started with MMGen Wallet**][gs]. Note that all features supported
diff --git a/Install-MMGen-Wallet-on-Nix.md b/Install-MMGen-Wallet-on-Nix.md
new file mode 100644
index 0000000..2771e09
--- /dev/null
+++ b/Install-MMGen-Wallet-on-Nix.md
@@ -0,0 +1,24 @@
+Perform the following steps:
+
+```text
+$ git clone https://github.com/mmgen/mmgen-wallet.git
+$ cd mmgen-wallet
+$ mkdir -p ~/.mmgen
+$ cp nix/user-packages.nix ~/.mmgen
+```
+
+For altcoin support, edit `~/.mmgen/user-packages.nix` to taste, uncommenting
+the relevant lines for whatever support you require. For a BTC-only setup,
+you can leave the file untouched.
+
+Build required derivations and enter the custom Nix shell environment:
+
+```text
+$ nix-shell nix # for full isolation, add the ‘--pure’ option
+```
+
+Within nix-shell you may now test and use MMGen Wallet as with any normal
+installation.
+
+Refer to `nix/README` in the MMGen Wallet repo for more information, including
+a speedup tip and instructions for installation on NixOS.
diff --git a/MMGen-Wallet-command-help.md b/MMGen-Wallet-command-help.md
index 72a092a..2236e2d 100644
--- a/MMGen-Wallet-command-help.md
+++ b/MMGen-Wallet-command-help.md
@@ -1,6 +1,7 @@
* [mmgen-addrgen](command-help-addrgen)
* [mmgen-addrimport](command-help-addrimport)
* [mmgen-autosign](command-help-autosign)
+* [mmgen-cli](command-help-cli)
* [mmgen-keygen](command-help-keygen)
* [mmgen-msg](command-help-msg)
* [mmgen-passchg](command-help-passchg)
@@ -9,6 +10,8 @@
* [mmgen-seedjoin](command-help-seedjoin)
* [mmgen-seedsplit](command-help-seedsplit)
* [mmgen-subwalletgen](command-help-subwalletgen)
+* [mmgen-swaptxcreate](command-help-swaptxcreate)
+* [mmgen-swaptxdo](command-help-swaptxdo)
* [mmgen-tool](command-help-tool)
* [mmgen-tool (usage)][u]
* [mmgen-tool (detailed usage)][d]
diff --git a/Test-Suite.md b/Test-Suite.md
index c4b9ea3..4e2d1bf 100644
--- a/Test-Suite.md
+++ b/Test-Suite.md
@@ -38,20 +38,8 @@ Every time the container is started, you may need to create the files afresh:
### BTC-only testing
-Clone the Bitcoin Core repo somewhere on your system:
-
-```text
-$ git clone https://github.com/bitcoin/bitcoin
-```
-
Install the Bitcoin Core daemon [(source)][sd] [(binaries)][bd].
-Point the test suite to your copy of the Bitcoin Core repo:
-
-```text
-$ export CORE_REPO_ROOT=/path/to/bitcoin/core/repo
-```
-
Install Pycoin:
```text
@@ -63,13 +51,8 @@ $ python3 -m pip download pycoin # online
$ python3 -m pip install --no-build-isolation pycoin-*.tar.gz # offline
```
-Install Pylint:
-
-```text
-$ python3 -m pip install pylint
-```
-
-CD to the MMGen Wallet repository root and build without installing:
+CD to the MMGen Wallet repository root and build the secp256k1 extension module
+in place:
```text
$ cd path/to/mmgen/repo
@@ -82,7 +65,8 @@ Run the following if upgrading from a previous version of MMGen:
$ test/cmdtest.py clean
```
-Run the test suite in fast mode, skipping altcoin tests:
+Run the test suite in fast mode, skipping altcoin tests (fast mode skips
+non-essential tests and uses fewer rounds for repeated tests):
```text
$ test/test-release.sh -FA
@@ -95,9 +79,10 @@ Complete the BTC-only installation steps above, without running the test.
Make sure the [Bitcoin Cash Node][cnd], [Litecoin][ld] and [Monero][md]
daemons are installed on your system.
-Install [Parity, Geth and the ETH Python requirements][oe], optionally the
+Install [Reth, Geth, Parity and the ETH Python requirements][rg], optionally the
[Solidity compiler][sc], and [the XMR Python requirements][xr] as described on
-the Altcoin-and-Forkcoin-Support page.
+the Altcoin-and-Forkcoin-Support page. For Ethereum testing in fast mode, Reth
+may be omitted.
In addition, you must install the following helper programs and libraries (MSYS2
users can omit Zcash-Mini and leave out `sudo` in commands):
@@ -132,26 +117,54 @@ may also be started and stopped manually at the DOS or MSYS2 prompt as follows
# net stop msys2_sshd
```
-#### Monero-Python
+#### Install Monero-Python
```text
-$ python3 -m pip install pycryptodomex ipaddress varint
+$ python3 -m pip install pycryptodome ipaddress varint
$ python3 -m pip install --no-deps monero
```
-#### Vanitygen PlusPlus (forked from Vanitygen Plus)
+#### Install Eth-Keys (non-MSYS2 systems)
+
+This pulls in a lot of dependencies. If you prefer, you may install the
+openethereum ‘ethkey’ utility instead, if it’s available on your platform.
+
+```text
+$ python3 -m pip install eth-keys
+```
+
+#### Install OpenEthereum Ethkey (alternative to 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].
+
+#### Install Vanitygen PlusPlus (a fork of Vanitygen Plus)
```text
$ git clone https://github.com/10gic/vanitygen-plusplus
$ 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.
+
+```text
$ make keyconv # ‘mingw32-make.exe keyconv’ for MSYS2
$ sudo install --strip keyconv /usr/local/bin # Linux, macOS
$ install --strip keyconv.exe /usr/local/bin # MSYS2
$ cd ..
```
-#### Zcash-Mini
+#### Install Zcash-Mini
```text
$ sudo apt-get install golang # skip this if Go is already installed
@@ -169,20 +182,6 @@ $ sudo install --strip ./zcash-mini /usr/local/bin
$ cd ..
```
-#### Ethkey
-
-On Arch Linux and ArchLinuxArm systems, the ‘ethkey’ utility is included in the
-OpenEthereum package:
-
-```text
-$ pacman -S openethereum
-```
-
-For 64-bit Windows, Linux and macOS systems, ‘ethkey’ can be found in the zip
-archives distributed with [this release][oz].
-
-For other systems (i.e. Debian/Ubuntu ARM), tests involving ‘ethkey’ are skipped.
-
#### Monero note
The Monero test (`test/test-release.sh xmr`) creates a private network and
@@ -191,7 +190,7 @@ If you experience such a failure, just restart the test.
### Run the tests
-Now you can run the test suite for all coins:
+Now you may run the test suite in fast mode for all coins:
```text
$ test/test-release.sh -F
@@ -233,7 +232,7 @@ display the commands’ output on the screen as they’re being run.
[ad]: https://download.bitcoinabc.org/
[cnd]: https://bitcoincashnode.org/
[ld]: https://download.litecoin.org/litecoin-0.17.1/
-[oe]: Altcoin-and-Forkcoin-Support#a_ed
+[rg]: Altcoin-and-Forkcoin-Support#a_geth
[sc]: Altcoin-and-Forkcoin-Support#a_dt
[xr]: Altcoin-and-Forkcoin-Support#a_xmr_req
[oz]: https://github.com/openethereum/openethereum/releases/tag/v3.1.0
diff --git a/_Footer.md b/_Footer.md
index f8321c3..49a80de 100644
--- a/_Footer.md
+++ b/_Footer.md
@@ -2,19 +2,26 @@ Homepage:
[Clearnet](https://mmgen-wallet.cc) |
[I2P](http://mmgen-wallet.i2p) |
[Onion](http://mmgen55rtcahqfp2hn3v7syqv2wqanks5oeezqg3ykwfkebmouzjxlad.onion)
-Code repository:
+Code Repository:
[Clearnet](https://mmgen.org/project/mmgen/mmgen-wallet) |
[I2P](http://mmgen-wallet.i2p/project/mmgen/mmgen-wallet) |
[Onion](http://mmgen55rtcahqfp2hn3v7syqv2wqanks5oeezqg3ykwfkebmouzjxlad.onion/project/mmgen/mmgen-wallet)
-Code repository mirrors:
+Code Repository Mirrors:
[Github](https://github.com/mmgen/mmgen-wallet) |
[Gitlab](https://gitlab.com/mmgen/mmgen-wallet) |
[Codeberg](https://codeberg.org/mmgen/mmgen-wallet)
-[Keybase](https://keybase.io/mmgen) |
+IRC:
+**#mmgen-wallet** ([OFTC](https://oftc.net) | postman.i2p) |
+E-Mail:
+[Tuta](mailto:mmgen@tuta.io) |
+[Proton](mailto:mmgen-wallet@proton.me)
+Accounts:
[Twitter](https://twitter.com/TheMMGenProject) |
+[Bitcointalk](https://bitcointalk.org/index.php?topic=567069.new#new) |
+[Dread](http://dreadytofatroptsdj6io7l3xptbet6onoyno2yv7jicoxknyazubrad.onion/u/MMGen) |
[Reddit](https://www.reddit.com/user/mmgen-py) |
-[Bitcointalk](https://bitcointalk.org/index.php?topic=567069.new#new)
-[PGP Signing Key](MMGen-Signing-Keys): 5C84 CB45 AEE2 250F 31A6 A570 3F8B 1861 E32B 7DA2
+[Keybase](https://keybase.io/mmgen)
+PGP Signing Key: [5C84 CB45 AEE2 250F 31A6 A570 3F8B 1861 E32B 7DA2][5]
Donate:
⊙ BTC: *bc1qxmymxf8p5ckvlxkmkwgw8ap5t2xuaffmrpexap*
⊙ BCH: *15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w*
diff --git a/_Sidebar.md b/_Sidebar.md
index 3bf553e..9dabb9a 100644
--- a/_Sidebar.md
+++ b/_Sidebar.md
@@ -4,6 +4,7 @@
* [Install on Microsoft Windows][1]
* [Install on Linux or macOS][2]
+* [Install on Nix/NixOS][n]
#### Using MMGen Wallet
@@ -19,6 +20,7 @@
[1]: Install-MMGen-Wallet-on-Microsoft-Windows
[2]: Install-MMGen-Wallet-on-Linux-or-macOS
+[n]: Install-MMGen-Wallet-on-Nix
[3]: Getting-Started-with-MMGen-Wallet
[4]: MMGen-Wallet-Quick-Start-with-Regtest-Mode
[5]: MMGen-Wallet-command-help
diff --git a/command-help-addrgen.md b/command-help-addrgen.md
index 105427c..2a0bc33 100644
--- a/command-help-addrgen.md
+++ b/command-help-addrgen.md
@@ -4,7 +4,7 @@
USAGE: mmgen-addrgen [opts] [seed source]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-c, --print-checksum Print address list checksum and exit
-d, --outdir d Output files to directory 'd' instead of working dir
-e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry
@@ -40,15 +40,6 @@
If available, the libsecp256k1 library will be used for address generation.
- ADDRESS TYPES:
- 'L','legacy' - Legacy uncompressed address
- 'C','compressed' - Compressed P2PKH address
- 'S','segwit' - Segwit P2SH-P2WPKH address
- 'B','bech32' - Native Segwit (Bech32) address
- 'E','ethereum' - Ethereum address
- 'Z','zcash_z' - Zcash z-address
- 'M','monero' - Monero address
-
NOTES FOR ALL GENERATOR COMMANDS
@@ -99,6 +90,21 @@
with brainwallets. For a brainwallet passphrase to generate the correct
seed, the same seed length and hash preset parameters must always be used.
+
+ ADDRESS TYPES:
+
+ Code Type Description
+ ---- ---- -----------
+ ‘L’ legacy - Legacy uncompressed address
+ ‘C’ compressed - Compressed P2PKH address
+ ‘S’ segwit - Segwit P2SH-P2WPKH address
+ ‘B’ bech32 - Native Segwit (Bech32) address
+ ‘X’ bech32x - Cross-chain Bech32 address
+ ‘E’ ethereum - Ethereum address
+ ‘Z’ zcash_z - Zcash z-address
+ ‘M’ monero - Monero address
+
+
FMT CODES:
Format FileExt Valid codes
@@ -115,5 +121,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-ADDRGEN(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-ADDRGEN(1)
```
diff --git a/command-help-addrimport.md b/command-help-addrimport.md
index cfb4882..14efebd 100644
--- a/command-help-addrimport.md
+++ b/command-help-addrimport.md
@@ -3,7 +3,7 @@
USAGE: mmgen-addrimport [opts] [MMGen address file]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --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
-l, --addrlist Address source is a flat list of non-MMGen coin addresses
@@ -31,5 +31,5 @@
It’s recommended to use ‘--rpc-backend=aio’ with ‘--rescan’.
- MMGEN v15.0.0 September 2024 MMGEN-ADDRIMPORT(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-ADDRIMPORT(1)
```
diff --git a/command-help-autosign.md b/command-help-autosign.md
index 71d95bb..12c7f77 100644
--- a/command-help-autosign.md
+++ b/command-help-autosign.md
@@ -3,9 +3,15 @@
USAGE: mmgen-autosign [opts] [operation]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-c, --coins c Coins to sign for (comma-separated list)
-I, --no-insert-check Don’t check for device insertion
+ -k, --keys-from-file F Use wif keys listed in file ‘F’ for signing non-MMGen
+ inputs. The file may be MMGen encrypted if desired. The
+ ‘setup’ operation creates a temporary encrypted copy of
+ 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, --led Use status LED to signal standby, busy and error
-m, --mountpoint M Specify an alternate mountpoint 'M'
@@ -27,6 +33,8 @@
-v, --verbose Produce more verbose output
-w, --wallet-dir D Specify an alternate wallet dir
(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
@@ -125,5 +133,5 @@
Always remember to power off the signing machine when your signing session
is over.
- MMGEN v15.0.0 September 2024 MMGEN-AUTOSIGN(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-AUTOSIGN(1)
```
diff --git a/command-help-cli.md b/command-help-cli.md
new file mode 100644
index 0000000..de76019
--- /dev/null
+++ b/command-help-cli.md
@@ -0,0 +1,35 @@
+```text
+ MMGEN-CLI: Communicate with a coin daemon via its JSON-RPC interface
+ USAGE: mmgen-cli [opts]
+ OPTIONS:
+ -h, --help Print this help message
+ --longhelp Print help message for long (global) options
+ -a, --ascii-output Ensure that output is ASCII encoded
+ -w, --wallet NAME Use tracking wallet with name NAME
+
+
+ The utility accepts all MMGen global configuration options and sources the user
+ config file, allowing users to preconfigure hosts, ports, passwords, datadirs,
+ tracking wallets and so forth, thus saving a great deal of typing at the
+ command line. This behavior may be overridden with the --skip-cfg-file option.
+
+ Arguments are given in JSON format, with lowercase ‘true’, ‘false’ and ‘null’
+ for booleans and None, and double-quoted strings in dicts and lists.
+
+
+ EXAMPLES
+
+ $ mmgen-cli --wallet=wallet2 listreceivedbyaddress 0 true
+
+ $ mmgen-cli --coin=ltc --rpc-host=orion getblockcount
+
+ $ mmgen-cli --regtest=1 --wallet=bob getbalance
+
+ $ mmgen-cli --coin=eth eth_getBalance 0x00000000219ab540356cBB839Cbe05303d7705Fa latest
+
+ $ mmgen-cli createrawtransaction \
+ '[{"txid":"832f5aa9af55dc453314e26869c8f96db1f2a9acac9f23ae18d396903971e0c6","vout":0}]' \
+ '[{"1111111111111111111114oLvT2":0.001}]'
+
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-CLI(1)
+```
diff --git a/command-help-keygen.md b/command-help-keygen.md
index b2b5450..eb3781e 100644
--- a/command-help-keygen.md
+++ b/command-help-keygen.md
@@ -4,7 +4,7 @@
USAGE: mmgen-keygen [opts] [seed source]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-A, --no-addresses Print only secret keys, no addresses
-c, --print-checksum Print address list checksum and exit
-d, --outdir d Output files to directory 'd' instead of working dir
@@ -45,15 +45,6 @@
If available, the libsecp256k1 library will be used for address generation.
- ADDRESS TYPES:
- 'L','legacy' - Legacy uncompressed address
- 'C','compressed' - Compressed P2PKH address
- 'S','segwit' - Segwit P2SH-P2WPKH address
- 'B','bech32' - Native Segwit (Bech32) address
- 'E','ethereum' - Ethereum address
- 'Z','zcash_z' - Zcash z-address
- 'M','monero' - Monero address
-
NOTES FOR ALL GENERATOR COMMANDS
@@ -104,6 +95,21 @@
with brainwallets. For a brainwallet passphrase to generate the correct
seed, the same seed length and hash preset parameters must always be used.
+
+ ADDRESS TYPES:
+
+ Code Type Description
+ ---- ---- -----------
+ ‘L’ legacy - Legacy uncompressed address
+ ‘C’ compressed - Compressed P2PKH address
+ ‘S’ segwit - Segwit P2SH-P2WPKH address
+ ‘B’ bech32 - Native Segwit (Bech32) address
+ ‘X’ bech32x - Cross-chain Bech32 address
+ ‘E’ ethereum - Ethereum address
+ ‘Z’ zcash_z - Zcash z-address
+ ‘M’ monero - Monero address
+
+
FMT CODES:
Format FileExt Valid codes
@@ -120,5 +126,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-KEYGEN(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-KEYGEN(1)
```
diff --git a/command-help-msg.md b/command-help-msg.md
index a1cd0dd..6c61305 100644
--- a/command-help-msg.md
+++ b/command-help-msg.md
@@ -7,7 +7,7 @@
mmgen-msg [opts] export MESSAGE_FILE [MMGen ID]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-d, --outdir d Output file to directory 'd' instead of working dir
-t, --msghash-type T Specify the message hash type. Supported values:
'eth_sign' (ETH default), 'raw' (non-ETH default)
@@ -30,22 +30,25 @@
The `create` operation takes one or more ADDRESS_SPEC arguments with the
following format:
- SEED_ID:ADDR_TYPE:ADDR_IDX_SPEC
+ SEED_ID:ADDRTYPE_CODE:ADDR_IDX_SPEC
- where ADDR_TYPE is an address type letter from the list below, and
- ADDR_IDX_SPEC is a comma-separated list of address indexes or hyphen-
- separated address index ranges.
+ where ADDRTYPE_CODE is a one-letter address type code from the list below, and
+ ADDR_IDX_SPEC is a comma-separated list of address indexes or hyphen-separated
+ address index ranges.
- ADDRESS TYPES
+ ADDRESS TYPES:
- 'L','legacy' - Legacy uncompressed address
- 'C','compressed' - Compressed P2PKH address
- 'S','segwit' - Segwit P2SH-P2WPKH address
- 'B','bech32' - Native Segwit (Bech32) address
- 'E','ethereum' - Ethereum address
- 'Z','zcash_z' - Zcash z-address
- 'M','monero' - Monero address
+ Code Type Description
+ ---- ---- -----------
+ ‘L’ legacy - Legacy uncompressed address
+ ‘C’ compressed - Compressed P2PKH address
+ ‘S’ segwit - Segwit P2SH-P2WPKH address
+ ‘B’ bech32 - Native Segwit (Bech32) address
+ ‘X’ bech32x - Cross-chain Bech32 address
+ ‘E’ ethereum - Ethereum address
+ ‘Z’ zcash_z - Zcash z-address
+ ‘M’ monero - Monero address
NOTES
@@ -104,5 +107,5 @@
Verify and display the exported JSON signature data:
$ mmgen-msg verify signatures.json
- MMGEN v15.0.0 September 2024 MMGEN-MSG(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-MSG(1)
```
diff --git a/command-help-passchg.md b/command-help-passchg.md
index 2491c06..c0641a9 100644
--- a/command-help-passchg.md
+++ b/command-help-passchg.md
@@ -3,7 +3,7 @@
USAGE: mmgen-passchg [opts] [infile]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-d, --outdir d Output files to directory 'd' instead of working dir
-e, --echo-passphrase Echo passphrases and other user input to screen
-f, --force-update Force update of wallet even if nothing has changed
@@ -36,6 +36,7 @@
trailing space are ignored. This permits reading passphrase or brainwallet
data from a multi-line file with free spacing and indentation.
+
FMT CODES:
Format FileExt Valid codes
@@ -52,5 +53,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-PASSCHG(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-PASSCHG(1)
```
diff --git a/command-help-passgen.md b/command-help-passgen.md
index b24e737..f86358c 100644
--- a/command-help-passgen.md
+++ b/command-help-passgen.md
@@ -4,7 +4,7 @@
USAGE: mmgen-passgen [opts] [seed source]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-d, --outdir d Output files to directory 'd' instead of working dir
-e, --echo-passphrase Echo passphrase or mnemonic to screen upon entry
-f, --passwd-fmt f Generate passwords of format 'f'. Default: b58.
@@ -33,7 +33,7 @@
NOTES FOR THIS COMMAND
ID string must be a valid UTF-8 string not longer than 256 characters and
- not containing the symbols ' ', ':', '/', '\'.
+ not containing the symbols ' ", ":", "/", "\'.
Password indexes are given as a comma-separated list and/or hyphen-separated
range(s).
@@ -84,6 +84,7 @@
with brainwallets. For a brainwallet passphrase to generate the correct
seed, the same seed length and hash preset parameters must always be used.
+
FMT CODES:
Format FileExt Valid codes
@@ -100,5 +101,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-PASSGEN(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-PASSGEN(1)
```
diff --git a/command-help-regtest.md b/command-help-regtest.md
index 3b4bb8b..c2ea777 100644
--- a/command-help-regtest.md
+++ b/command-help-regtest.md
@@ -3,7 +3,7 @@
USAGE: mmgen-regtest [opts]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-b, --bdb-wallet Create and use a legacy Berkeley DB coin daemon wallet
-e, --empty Don't fund Bob and Alice's wallets on setup
-n, --setup-no-stop-daemon Don't stop daemon after setup is finished
@@ -25,5 +25,5 @@
wallet_cli - execute a wallet RPC call with supplied arguments (wallet
is first argument)
- MMGEN v15.0.0 September 2024 MMGEN-REGTEST(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-REGTEST(1)
```
diff --git a/command-help-seedjoin.md b/command-help-seedjoin.md
index 76d9298..df438a0 100644
--- a/command-help-seedjoin.md
+++ b/command-help-seedjoin.md
@@ -4,7 +4,7 @@
USAGE: mmgen-seedjoin [options] share1 share2 [...shareN]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-d, --outdir d Output file to directory 'd' instead of working dir
-e, --echo-passphrase Echo passphrases and other user input to screen
-i, --id-str s ID String of split (required for master share join only)
@@ -45,6 +45,7 @@
trailing space are ignored. This permits reading passphrase or brainwallet
data from a multi-line file with free spacing and indentation.
+
FMT CODES:
Format FileExt Valid codes
@@ -61,5 +62,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-SEEDJOIN(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-SEEDJOIN(1)
```
diff --git a/command-help-seedsplit.md b/command-help-seedsplit.md
index 5546ca7..ac17a80 100644
--- a/command-help-seedsplit.md
+++ b/command-help-seedsplit.md
@@ -3,7 +3,7 @@
USAGE: mmgen-seedsplit [opts] [infile] [:]:
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-d, --outdir d Output files to directory 'd' instead of working dir
-e, --echo-passphrase Echo passphrases and other user input to screen
-i, --in-fmt f Input from wallet format 'f' (see FMT CODES below)
@@ -127,6 +127,7 @@
with brainwallets. For a brainwallet passphrase to generate the correct
seed, the same seed length and hash preset parameters must always be used.
+
FMT CODES:
Format FileExt Valid codes
@@ -143,5 +144,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-SEEDSPLIT(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-SEEDSPLIT(1)
```
diff --git a/command-help-subwalletgen.md b/command-help-subwalletgen.md
index d01d063..91cff5b 100644
--- a/command-help-subwalletgen.md
+++ b/command-help-subwalletgen.md
@@ -3,7 +3,7 @@
USAGE: mmgen-subwalletgen [opts] [infile]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-d, --outdir d Output files to directory 'd' instead of working dir
-e, --echo-passphrase Echo passphrases and other user input to screen
-i, --in-fmt f Input from wallet format 'f' (see FMT CODES below)
@@ -80,6 +80,7 @@
with brainwallets. For a brainwallet passphrase to generate the correct
seed, the same seed length and hash preset parameters must always be used.
+
FMT CODES:
Format FileExt Valid codes
@@ -96,5 +97,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-SUBWALLETGEN(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-SUBWALLETGEN(1)
```
diff --git a/command-help-swaptxcreate.md b/command-help-swaptxcreate.md
new file mode 100644
index 0000000..6f89ea1
--- /dev/null
+++ b/command-help-swaptxcreate.md
@@ -0,0 +1,258 @@
+```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 ...]
+ 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 unspent outputs
+ -c, --comment-file f Source the transaction's comment from file 'f'
+ -C, --fee-estimate-confs c Desired number of confirmations for fee estimation
+ (default: 3)
+ -d, --outdir d Specify an alternate directory 'd' for output
+ -E, --fee-estimate-mode M Specify the network fee estimate mode. Choices:
+ 'conservative','economical'. Default: 'conservative'
+ -f, --fee f Transaction fee, as a decimal BTC amount or as
+ satoshis per byte (an integer followed by ‘s’).
+ See FEE SPECIFICATION below. If omitted, fee will be
+ calculated using network fee estimation.
+ -g, --gas N Set the gas limit for Ethereum (see GAS LIMIT below)
+ -G, --router-gas N Set the gas limit for the Ethereum router contract
+ (integer). When unset, a hardcoded default will be
+ used. Applicable only for swaps from token assets.
+ -i, --info Display unspent outputs 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.
+ -l, --trade-limit L Minimum swap amount, as either percentage or absolute
+ coin amount (see TRADE LIMIT below)
+ -L, --autochg-ignore-labels Ignore labels when autoselecting change addresses
+ -m, --minconf n Minimum number of confirmations required to spend
+ outputs (default: 1)
+ -q, --quiet Suppress warnings; overwrite files without prompting
+ -r, --stream-interval N Set block interval for streaming swap (default: 3)
+ -s, --swap-proto Swap protocol to use (Default: thorchain,
+ Choices: 'thorchain')
+ -S, --list-assets List available swap assets
+ -v, --verbose Produce more verbose output
+ -V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f'
+ -x, --proxy P Fetch the swap quote via SOCKS5h proxy ‘P’ (host:port).
+ Use special value ‘env’ to honor *_PROXY environment
+ vars instead.
+ -y, --yes Answer 'yes' to prompts, suppress non-essential output
+
+
+ This script is similar in operation to ‘mmgen-txcreate’, only with additional
+ steps. Users are advised to first familiarize themselves with the use of that
+ script before attempting to perform a swap with this one.
+
+ The tracking wallets of both the send and receive coins must be available when
+ the script is invoked. If the two coin daemons are running on different hosts
+ than the script, or with non-standard ports, coin-specific RPC options may be
+ required (see EXAMPLES below).
+
+ The swap protocol’s quote server on the Internet must be reachable either
+ directly or via the SOCKS5 proxy specified with the --proxy option. To improve
+ privacy, it’s recommended to proxy requests to the quote server via Tor or
+ some other anonymity network.
+
+ The resulting transaction file is saved, signed, sent, and optionally bumped,
+ exactly the same way as one created with ‘mmgen-txcreate’. Autosign with
+ automount is likewise supported via the --autosign option.
+
+ The command line must contain at minimum a send coin (COIN1) and receive coin
+ (COIN2) symbol. Currently supported coins are BTC, LTC, BCH and ETH. All
+ other arguments are optional. If AMT is specified, the specified value of
+ send coin will be swapped and the rest returned to a change address in the
+ originating tracking wallet. Otherwise, the entire value of the interactively
+ selected inputs will be swapped.
+
+ By default, the change (if applicable) and destination addresses are chosen
+ automatically by finding the lowest-indexed unused addresses of the preferred
+ address types in the send and receive tracking wallets. For Bitcoin and
+ forks, types ‘B’, ‘S’ and ‘C’ (see ADDRESS TYPES below) are searched in that
+ order for unused addresses. Note that sending to an unused address may be
+ undesirable for Ethereum, where address (i.e. account) reuse is the norm. In
+ that case, the user should specify a destination address on the command line.
+
+ If the wallet contains eligible unused addresses with multiple Seed IDs, the
+ user will be presented with a list of the lowest-indexed addresses of
+ preferred type for each Seed ID and prompted to choose from among them.
+
+ Change and destination addresses may also be specified manually with the
+ CHG_ADDR and ADDR arguments. These may be given as full MMGen IDs or in the
+ form ADDRTYPE_CODE or SEED_ID:ADDRTYPE_CODE (see EXAMPLES below and the
+ ‘mmgen-txcreate’ help screen for details). For Ethereum, the CHG_ADDR
+ argument is not supported.
+
+ While discouraged, sending change or swapping to non-wallet addresses is also
+ supported, in which case the signing script (‘mmgen-txsign’ or ‘mmgen-
+ autosign’, as applicable) must be invoked with the --allow-non-wallet-swap
+ option.
+
+ Rather than specifying a transaction fee on the command line, it’s advisable
+ to start with the fee suggested by the swap protocol quote server (the script
+ does this automatically) and then adjust the fee interactively if desired.
+
+ When choosing a fee, bear in mind that the longer the transaction remains
+ unconfirmed, the greater the risk that the vault address will expire, leading
+ to loss of funds. It’s therefore recommended to learn how to create, sign and
+ send replacement transactions with ‘mmgen-txbump’ before performing a swap
+ with this script. When bumping a stuck swap transaction, the safest option
+ is to create a replacement transaction with one output that returns funds back
+ to the originating tracking wallet, thus aborting the swap, rather than one
+ that merely increases the fee (see EXAMPLES below).
+
+ Before broadcasting the transaction, it’s a good idea to double-check the
+ vault address on a block explorer such as thorchain.net or runescan.io.
+
+ The MMGen Node Tools suite contains two useful tools to help with fine-tuning
+ transaction fees, ‘mmnode-feeview’ and ‘mmnode-blocks-info’, in addition to
+ ‘mmnode-ticker’, which can be used to calculate the current cross-rate between
+ the asset pair of a swap, as well as the total receive value in terms of send
+ value.
+
+
+ TRADE LIMIT
+
+ A target value for the swap may be set, known as the “trade limit”. If
+ this target cannot be met, the network will refund the user’s coins, minus
+ transaction fees (note that the refund goes to the address associated with the
+ transaction’s first input, leading to coin reuse). Since under certain
+ circumstances large amounts of slippage can occur, resulting in significant
+ losses, setting a trade limit is highly recommended.
+
+ The target may be given as either an absolute coin amount or percentage value.
+ In the latter case, it’s interpreted as the percentage below the “expected
+ amount out” returned by the swap quote server. Zero or negative percentage
+ values are also accepted, but are likely to result in your coins being
+ refunded.
+
+ The trade limit is rounded to four digits of precision in order to reduce
+ transaction size.
+
+
+ ADDRESS TYPES:
+
+ Code Type Description
+ ---- ---- -----------
+ ‘L’ legacy - Legacy uncompressed address
+ ‘C’ compressed - Compressed P2PKH address
+ ‘S’ segwit - Segwit P2SH-P2WPKH address
+ ‘B’ bech32 - Native Segwit (Bech32) address
+ ‘X’ bech32x - Cross-chain Bech32 address
+ ‘E’ ethereum - Ethereum address
+ ‘Z’ zcash_z - Zcash z-address
+ ‘M’ monero - Monero address
+
+
+ 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 satoshis per byte, using an integer followed by ‘s’, for satoshi (for
+ Bitcoin, Litecoin and Bitcoin Cash), or gas price, using an integer followed
+ by ‘w’,‘K’,‘M’,‘G’,‘s’ or ‘f’, for wei, Kwei, Mwei, Gwei, szabo and finney,
+ respectively (for Ethereum)
+
+
+ EXAMPLES:
+
+ Display available swap assets:
+
+ $ mmgen-swaptxcreate -S
+
+ Create a BTC-to-LTC swap transaction, prompting the user for transaction
+ inputs. The full value of the inputs, minus miner fees, will be swapped
+ and sent to an unused address in the user’s LTC tracking wallet:
+
+ $ mmgen-swaptxcreate BTC LTC
+
+ Same as above, but swap 0.123 BTC, minus miner fees, and send the change to
+ an unused address in the BTC tracking wallet:
+
+ $ mmgen-swaptxcreate BTC 0.123 LTC
+
+ Same as above, but specify that the change address be a Segwit P2SH (‘S’)
+ address:
+
+ $ mmgen-swaptxcreate BTC 0.123 S LTC
+
+ Same as above, but additionally specify that the destination LTC address be
+ a compressed P2PKH (‘C’) address:
+
+ $ mmgen-swaptxcreate BTC 0.123 S LTC C
+
+ Same as above, but specify the BTC change address explicitly and the
+ destination LTC address by Seed ID and address type:
+
+ $ mmgen-swaptxcreate BTC 0.123 BEADCAFE:S:6 LTC BEADCAFE:C
+
+ Abort the above swap by creating a replacement transaction that returns the
+ funds to the originating tracking wallet (omit the transaction filename if
+ using --autosign):
+
+ $ mmgen-txbump BEADCAFE:S:6 [raw transaction file]
+
+ Swap 0.123 BTC to a non-wallet address (not recommended):
+
+ $ mmgen-swaptxcreate BTC 0.123 LTC ltc1qaq8t3pakcftpk095tnqfv5cmmczysls0xx9388
+
+ Create an LTC-to-BCH swap transaction, with the Litecoin daemon running on
+ host ‘orion’ and Bitcoin Cash Node daemon on host ‘gemini’ with non-standard
+ RPC port 8332. Communicate with the swap quote server via Tor.
+
+ $ mmgen-swaptxcreate --ltc-rpc-host=orion --bch-rpc-host=gemini --bch-rpc-port=8332 --proxy=localhost:9050 LTC BCH
+
+ After sending, check the status of the above swap’s LTC deposit transaction
+ (omit the transaction filename if using --autosign):
+
+ $ mmgen-txsend --ltc-rpc-host=orion --status [transaction file]
+
+ Check whether the funds have arrived in the BCH destination wallet:
+
+ $ mmgen-tool --coin=bch --bch-rpc-host=gemini twview minconf=0
+
+ Create a Tether-to-LTC swap transaction for autosigning, connecting to the
+ swap quote server via Tor:
+
+ $ mmgen-swaptxcreate --autosign --proxy=localhost:9050 ETH.USDT 1000 LTC
+
+ After signing, send the transaction via public Etherscan proxy over Tor:
+
+ $ mmgen-txsend --autosign --quiet --tx-proxy=etherscan --proxy=localhost:9050
+
+ After sending, check the transaction status:
+
+ $ mmgen-txsend --autosign --verbose --status
+
+ Create a Tether-to-DAI swap transaction, with explicit destination account:
+
+ $ mmgen-swaptxcreate ETH.USDT 1000 ETH.DAI E:01234ABC:3
+
+ Create a RUNE-to-BTC swap transaction, proxying requests to the remote
+ Thornode server via Tor:
+
+ $ mmgen-swaptxcreate --proxy=localhost:9050 RUNE 1000 BTC
+
+ Same as above, but proxy requests via the I2P router running on host gw1:
+
+ $ https_proxy=http://gw1:4444 mmgen-swaptxcreate --proxy=env RUNE 1000 BTC
+
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-SWAPTXCREATE(1)
+```
diff --git a/command-help-swaptxdo.md b/command-help-swaptxdo.md
new file mode 100644
index 0000000..daa79b6
--- /dev/null
+++ b/command-help-swaptxdo.md
@@ -0,0 +1,320 @@
+```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 ...]
+ OPTIONS:
+ -h, --help Print this help message
+ --longhelp Print help message for long (global) options
+ -A, --fee-adjust f Adjust transaction fee by factor ‘f’ (see below)
+ -b, --brain-params l,p Use seed length 'l' and hash preset 'p' for
+ brainwallet input
+ -B, --no-blank Don't blank screen before displaying unspent outputs
+ -c, --comment-file f Source the transaction's comment from file 'f'
+ -C, --fee-estimate-confs c Desired number of confirmations for fee estimation
+ (default: 3)
+ -d, --outdir d Specify an alternate directory 'd' for output
+ -e, --echo-passphrase Print passphrase to screen when typing it
+ -E, --fee-estimate-mode M Specify the network fee estimate mode. Choices:
+ 'conservative','economical'. Default: 'conservative'
+ -f, --fee f Transaction fee, as a decimal BTC amount or as
+ satoshis per byte (an integer followed by ‘s’).
+ See FEE SPECIFICATION below. If omitted, fee will be
+ calculated using network fee estimation.
+ -g, --gas N Set the gas limit for Ethereum (see GAS LIMIT below)
+ -G, --router-gas N Set the gas limit for the Ethereum router contract
+ (integer). When unset, a hardcoded default will be
+ used. Applicable only for swaps from token assets.
+ -H, --hidden-incog-input-params f,o Read hidden incognito data from file
+ 'f' at offset 'o' (comma-separated)
+ -i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below)
+ -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.
+ -l, --seed-len l Specify wallet seed length of 'l' bits. This option
+ is required only for brainwallet and incognito inputs
+ with non-standard (< 256-bit) seed lengths.
+ -k, --keys-from-file f Provide additional keys for non-MMGen addresses
+ -K, --keygen-backend n Use backend 'n' for public key generation. Options
+ for BTC: 1:libsecp256k1 [default] 2:python-ecdsa
+ -l, --trade-limit L Minimum swap amount, as either percentage or absolute
+ coin amount (see TRADE LIMIT below)
+ -L, --autochg-ignore-labels Ignore labels when autoselecting change addresses
+ -m, --minconf n Minimum number of confirmations required to spend
+ outputs (default: 1)
+ -M, --mmgen-keys-from-file f Provide keys for MMGen addresses in a key-
+ address file (output of 'mmgen-keygen'). Permits
+ online signing without an MMGen seed source. The
+ key-address file is also used to verify MMGen-to-BTC
+ mappings, so the user should record its checksum.
+ -O, --old-incog-fmt Specify old-format incognito input
+ -p, --hash-preset p Use the scrypt hash parameters defined by preset 'p'
+ for password hashing (default: '3')
+ -P, --passwd-file f Get MMGen wallet passphrase from file 'f'
+ -q, --quiet Suppress warnings; overwrite files without prompting
+ -r, --stream-interval N Set block interval for streaming swap (default: 3)
+ -s, --swap-proto Swap protocol to use (Default: thorchain,
+ Choices: 'thorchain')
+ -T, --txhex-idx N Send only part ‘N’ of a multi-part transaction.
+ Indexing begins with one.
+ -u, --subseeds n The number of subseed pairs to scan for (default: 100,
+ maximum: 1000000). Only the default or first supplied
+ wallet is scanned for subseeds.
+ -v, --verbose Produce more verbose output
+ -V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f'
+ -x, --proxy P Fetch the swap quote via SOCKS5h proxy ‘P’ (host:port).
+ Use special value ‘env’ to honor *_PROXY environment
+ vars instead.
+ -y, --yes Answer 'yes' to prompts, suppress non-essential output
+ -z, --show-hash-presets Show information on available hash presets
+
+
+ This script is similar in operation to ‘mmgen-txcreate’, only with additional
+ steps. Users are advised to first familiarize themselves with the use of that
+ script before attempting to perform a swap with this one.
+
+ The tracking wallets of both the send and receive coins must be available when
+ the script is invoked. If the two coin daemons are running on different hosts
+ than the script, or with non-standard ports, coin-specific RPC options may be
+ required (see EXAMPLES below).
+
+ The swap protocol’s quote server on the Internet must be reachable either
+ directly or via the SOCKS5 proxy specified with the --proxy option. To improve
+ privacy, it’s recommended to proxy requests to the quote server via Tor or
+ some other anonymity network.
+
+ The resulting transaction file is saved, signed, sent, and optionally bumped,
+ exactly the same way as one created with ‘mmgen-txcreate’. Autosign with
+ automount is likewise supported via the --autosign option.
+
+ The command line must contain at minimum a send coin (COIN1) and receive coin
+ (COIN2) symbol. Currently supported coins are BTC, LTC, BCH and ETH. All
+ other arguments are optional. If AMT is specified, the specified value of
+ send coin will be swapped and the rest returned to a change address in the
+ originating tracking wallet. Otherwise, the entire value of the interactively
+ selected inputs will be swapped.
+
+ By default, the change (if applicable) and destination addresses are chosen
+ automatically by finding the lowest-indexed unused addresses of the preferred
+ address types in the send and receive tracking wallets. For Bitcoin and
+ forks, types ‘B’, ‘S’ and ‘C’ (see ADDRESS TYPES below) are searched in that
+ order for unused addresses. Note that sending to an unused address may be
+ undesirable for Ethereum, where address (i.e. account) reuse is the norm. In
+ that case, the user should specify a destination address on the command line.
+
+ If the wallet contains eligible unused addresses with multiple Seed IDs, the
+ user will be presented with a list of the lowest-indexed addresses of
+ preferred type for each Seed ID and prompted to choose from among them.
+
+ Change and destination addresses may also be specified manually with the
+ CHG_ADDR and ADDR arguments. These may be given as full MMGen IDs or in the
+ form ADDRTYPE_CODE or SEED_ID:ADDRTYPE_CODE (see EXAMPLES below and the
+ ‘mmgen-txcreate’ help screen for details). For Ethereum, the CHG_ADDR
+ argument is not supported.
+
+ While discouraged, sending change or swapping to non-wallet addresses is also
+ supported, in which case the signing script (‘mmgen-txsign’ or ‘mmgen-
+ autosign’, as applicable) must be invoked with the --allow-non-wallet-swap
+ option.
+
+ Rather than specifying a transaction fee on the command line, it’s advisable
+ to start with the fee suggested by the swap protocol quote server (the script
+ does this automatically) and then adjust the fee interactively if desired.
+
+ When choosing a fee, bear in mind that the longer the transaction remains
+ unconfirmed, the greater the risk that the vault address will expire, leading
+ to loss of funds. It’s therefore recommended to learn how to create, sign and
+ send replacement transactions with ‘mmgen-txbump’ before performing a swap
+ with this script. When bumping a stuck swap transaction, the safest option
+ is to create a replacement transaction with one output that returns funds back
+ to the originating tracking wallet, thus aborting the swap, rather than one
+ that merely increases the fee (see EXAMPLES below).
+
+ Before broadcasting the transaction, it’s a good idea to double-check the
+ vault address on a block explorer such as thorchain.net or runescan.io.
+
+ The MMGen Node Tools suite contains two useful tools to help with fine-tuning
+ transaction fees, ‘mmnode-feeview’ and ‘mmnode-blocks-info’, in addition to
+ ‘mmnode-ticker’, which can be used to calculate the current cross-rate between
+ the asset pair of a swap, as well as the total receive value in terms of send
+ value.
+
+
+ TRADE LIMIT
+
+ A target value for the swap may be set, known as the “trade limit”. If
+ this target cannot be met, the network will refund the user’s coins, minus
+ transaction fees (note that the refund goes to the address associated with the
+ transaction’s first input, leading to coin reuse). Since under certain
+ circumstances large amounts of slippage can occur, resulting in significant
+ losses, setting a trade limit is highly recommended.
+
+ The target may be given as either an absolute coin amount or percentage value.
+ In the latter case, it’s interpreted as the percentage below the “expected
+ amount out” returned by the swap quote server. Zero or negative percentage
+ values are also accepted, but are likely to result in your coins being
+ refunded.
+
+ The trade limit is rounded to four digits of precision in order to reduce
+ transaction size.
+
+
+ ADDRESS TYPES:
+
+ Code Type Description
+ ---- ---- -----------
+ ‘L’ legacy - Legacy uncompressed address
+ ‘C’ compressed - Compressed P2PKH address
+ ‘S’ segwit - Segwit P2SH-P2WPKH address
+ ‘B’ bech32 - Native Segwit (Bech32) address
+ ‘X’ bech32x - Cross-chain Bech32 address
+ ‘E’ ethereum - Ethereum address
+ ‘Z’ zcash_z - Zcash z-address
+ ‘M’ monero - Monero address
+
+
+ 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 satoshis per byte, using an integer followed by ‘s’, for satoshi.
+
+
+ SIGNING NOTES
+
+ Transactions may contain both MMGen or non-MMGen input addresses.
+
+ To sign non-MMGen inputs, a coin daemon wallet dump or flat key list is used
+ as the key source (--keys-from-file option).
+
+ To sign MMGen inputs, key data is generated from a seed as with the
+ mmgen-addrgen and mmgen-keygen commands. Alternatively, a key-address file
+ may be used (--mmgen-keys-from-file option).
+
+ Multiple wallets or other seed files can be listed on the command line in
+ any order. If the seeds required to sign the transaction’s inputs are not
+ found in these files (or in the default wallet), the user will be prompted
+ for seed data interactively.
+
+ To prevent an attacker from crafting transactions with bogus MMGen-to-Bitcoin
+ address mappings, all outputs to MMGen addresses are verified with a seed
+ source. Therefore, seed files or a key-address file for all MMGen outputs
+ must also be supplied on the command line if the data can’t be found in the
+ default wallet.
+
+ Seed source files must have the canonical extensions listed in the 'FileExt'
+ column below:
+
+
+ FMT CODES:
+
+ Format FileExt Valid codes
+ ------ ------- -----------
+ BIP39Mnemonic .bip39 bip39
+ Brainwallet .mmbrain mmbrain,brainwallet,brain,bw
+ DieRollWallet .b6d b6d,die,dieroll
+ IncogWallet .mmincog mmincog,incog,icg,i
+ IncogWalletHex .mmincox mmincox,incox,incog_hex,ix,xi
+ IncogWalletHidden None incog_hidden,hincog,ih,hi
+ MMGenHexSeedFile .mmhex seedhex,hexseed,mmhex
+ MMGenMnemonic .mmwords mmwords,words,mnemonic,mn,m
+ MMGenSeedFile .mmseed mmseed,seed,s
+ MMGenWallet .mmdat wallet,w
+ PlainHexSeedFile .hex hex,rawhex,plainhex
+
+
+ EXAMPLES:
+
+ Display available swap assets:
+
+ $ mmgen-swaptxdo -S
+
+ Create a BTC-to-LTC swap transaction, prompting the user for transaction
+ inputs. The full value of the inputs, minus miner fees, will be swapped
+ and sent to an unused address in the user’s LTC tracking wallet:
+
+ $ mmgen-swaptxdo BTC LTC
+
+ Same as above, but swap 0.123 BTC, minus miner fees, and send the change to
+ an unused address in the BTC tracking wallet:
+
+ $ mmgen-swaptxdo BTC 0.123 LTC
+
+ Same as above, but specify that the change address be a Segwit P2SH (‘S’)
+ address:
+
+ $ mmgen-swaptxdo BTC 0.123 S LTC
+
+ Same as above, but additionally specify that the destination LTC address be
+ a compressed P2PKH (‘C’) address:
+
+ $ mmgen-swaptxdo BTC 0.123 S LTC C
+
+ Same as above, but specify the BTC change address explicitly and the
+ destination LTC address by Seed ID and address type:
+
+ $ mmgen-swaptxdo BTC 0.123 BEADCAFE:S:6 LTC BEADCAFE:C
+
+ Abort the above swap by creating a replacement transaction that returns the
+ funds to the originating tracking wallet (omit the transaction filename if
+ using --autosign):
+
+ $ mmgen-txbump BEADCAFE:S:6 [raw transaction file]
+
+ Swap 0.123 BTC to a non-wallet address (not recommended):
+
+ $ mmgen-swaptxdo BTC 0.123 LTC ltc1qaq8t3pakcftpk095tnqfv5cmmczysls0xx9388
+
+ Create an LTC-to-BCH swap transaction, with the Litecoin daemon running on
+ host ‘orion’ and Bitcoin Cash Node daemon on host ‘gemini’ with non-standard
+ RPC port 8332. Communicate with the swap quote server via Tor.
+
+ $ mmgen-swaptxdo --ltc-rpc-host=orion --bch-rpc-host=gemini --bch-rpc-port=8332 --proxy=localhost:9050 LTC BCH
+
+ After sending, check the status of the above swap’s LTC deposit transaction
+ (omit the transaction filename if using --autosign):
+
+ $ mmgen-txsend --ltc-rpc-host=orion --status [transaction file]
+
+ Check whether the funds have arrived in the BCH destination wallet:
+
+ $ mmgen-tool --coin=bch --bch-rpc-host=gemini twview minconf=0
+
+ Create a Tether-to-LTC swap transaction for autosigning, connecting to the
+ swap quote server via Tor:
+
+ $ mmgen-swaptxdo --autosign --proxy=localhost:9050 ETH.USDT 1000 LTC
+
+ After signing, send the transaction via public Etherscan proxy over Tor:
+
+ $ mmgen-txsend --autosign --quiet --tx-proxy=etherscan --proxy=localhost:9050
+
+ After sending, check the transaction status:
+
+ $ mmgen-txsend --autosign --verbose --status
+
+ Create a Tether-to-DAI swap transaction, with explicit destination account:
+
+ $ mmgen-swaptxdo ETH.USDT 1000 ETH.DAI E:01234ABC:3
+
+ Create a RUNE-to-BTC swap transaction, proxying requests to the remote
+ Thornode server via Tor:
+
+ $ mmgen-swaptxdo --proxy=localhost:9050 RUNE 1000 BTC
+
+ Same as above, but proxy requests via the I2P router running on host gw1:
+
+ $ https_proxy=http://gw1:4444 mmgen-swaptxdo --proxy=env RUNE 1000 BTC
+
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-SWAPTXDO(1)
+```
diff --git a/command-help-tool(detail).md b/command-help-tool(detail).md
index d34ab59..fcfa9e0 100644
--- a/command-help-tool(detail).md
+++ b/command-help-tool(detail).md
@@ -499,10 +499,22 @@ Required ARG (type shown in square brackets):
pubkeyhex [str] (use '-' to read from STDIN)
```
+### `mmgen-tool privhex2pair`
+
+```text
+Generate a wifkey/address pair from the provided hexadecimal key
+
+USAGE: mmgen-tool [OPTS] privhex2pair ARG
+
+Required ARG (type shown in square brackets):
+
+ privhex [str] (use '-' to read from STDIN)
+```
+
### `mmgen-tool randpair`
```text
-Generate a random private key/address pair
+Generate a random wifkey/address pair
USAGE: mmgen-tool [OPTS] randpair
```
@@ -1240,5 +1252,5 @@ Optional KEYWORD ARGS (type and default value shown in square brackets):
```
```text
-MMGEN v15.0.0 September 2024 MMGEN-TOOL(DETAIL)(1)
+MMGEN-WALLET 16.0.0 September 2025 MMGEN-TOOL(DETAIL)(1)
```
diff --git a/command-help-tool(usage).md b/command-help-tool(usage).md
index b93e389..2bfc363 100644
--- a/command-help-tool(usage).md
+++ b/command-help-tool(usage).md
@@ -61,6 +61,7 @@ GENERAL USAGE INFORMATION FOR MMGEN-TOOL COMMANDS
pubhash2addr pubhashhex [str or STDIN]
pubhex2addr pubkeyhex [str or STDIN]
pubhex2redeem_script pubkeyhex [str or STDIN]
+ privhex2pair privhex [str or STDIN]
randpair
randwif
redeem_script2addr redeem_script_hex [str or STDIN]
@@ -187,5 +188,5 @@ EXAMPLES:
Same as above, but supply input via STDIN:
$ echo "deadbeefcafe" | mmgen-tool hexreverse -
- MMGEN v15.0.0 September 2024 MMGEN-TOOL(USAGE)(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-TOOL(USAGE)(1)
```
diff --git a/command-help-tool.md b/command-help-tool.md
index 83aa66d..ab4b4a7 100644
--- a/command-help-tool.md
+++ b/command-help-tool.md
@@ -4,7 +4,7 @@
OPTIONS:
-d, --outdir d Specify an alternate directory 'd' for output
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-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
@@ -19,7 +19,9 @@
-t, --type t Specify address type (valid choices: 'legacy',
'compressed', 'segwit', 'bech32', 'zcash_z')
-v, --verbose Produce more verbose output
- -X, --cached-balances Use cached balances (Ethereum only)
+ -x, --proxy P Proxy HTTP connections via SOCKS5h proxy ‘P’ (host:port).
+ Use special value ‘env’ to honor *_PROXY environment
+ vars instead.
-y, --yes Answer 'yes' to prompts, suppress non-essential output
@@ -84,7 +86,9 @@
pubhex2addr - convert a hexadecimal pubkey to an address
pubhex2redeem_script - convert a hexadecimal pubkey to a Segwit
P2SH-P2WPKH redeem script
- randpair - generate a random private key/address pair
+ privhex2pair - generate a wifkey/address pair from the provided
+ hexadecimal key
+ randpair - generate a random wifkey/address pair
randwif - generate a random private key in WIF format
redeem_script2addr - convert a Segwit P2SH-P2WPKH redeem script to an
address
@@ -198,5 +202,5 @@
Type ‘mmgen-tool help ’ for help on a particular command
- MMGEN v15.0.0 September 2024 MMGEN-TOOL(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-TOOL(1)
```
diff --git a/command-help-txbump.md b/command-help-txbump.md
index 521f4f0..11d4354 100644
--- a/command-help-txbump.md
+++ b/command-help-txbump.md
@@ -1,11 +1,11 @@
```text
- MMGEN-TXBUMP: Increase the fee on a replaceable (RBF) MMGen transaction,
- creating a new transaction, and optionally sign and send the
- new transaction
+ 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] ...
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-a, --autosign Bump the most recent transaction created and sent with
the --autosign option. The removable device is mounted
and unmounted automatically. The transaction file
@@ -19,7 +19,7 @@
-d, --outdir d Specify an alternate directory 'd' for output
-e, --echo-passphrase Print passphrase to screen when typing it
-f, --fee f Transaction fee, as a decimal BTC amount or as
- satoshis per byte (an integer followed by 's').
+ satoshis per byte (an integer followed by ‘s’).
See FEE SPECIFICATION below.
-H, --hidden-incog-input-params f,o Read hidden incognito data from file
'f' at offset 'o' (comma-separated)
@@ -44,20 +44,45 @@
-q, --quiet Suppress warnings; overwrite files without prompting
-s, --send Sign and send the transaction (the default if seed
data is provided)
+ -T, --txhex-idx N Send only part ‘N’ of a multi-part transaction.
+ Indexing begins with one.
-v, --verbose Produce more verbose output
- -y, --yes Answer 'yes' to prompts, suppress non-essential output
+ -W, --allow-non-wallet-swap Allow signing of swap transactions that send funds
+ to non-wallet addresses
+ -x, --proxy P Fetch the swap quote via SOCKS5h proxy ‘P’ (host:port).
+ Use special value ‘env’ to honor *_PROXY environment
+ vars instead.
+ -y, --yes Answer 'yes' to prompts, suppress non-essential output
-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.
+
+ If no outputs are specified, the original outputs will be used for the
+ replacement transaction, otherwise a new transaction will be created with the
+ outputs listed on the command line. The syntax for the output arguments is
+ identical to that of ‘mmgen-txcreate’.
+
+ The user should take care to select a fee sufficient to ensure the original
+ transaction is replaced in the mempool.
+
+ When bumping a swap transaction, the swap protocol’s quote server on the
+ Internet must be reachable either directly or via the SOCKS5 proxy specified
+ with the --proxy option. To improve privacy, it’s recommended to proxy
+ requests to the quote server via Tor or some other anonymity network.
+
+
FEE SPECIFICATION
Transaction fees, both on the command line and at the interactive prompt, may
- be specified as either absolute BTC amounts, using a plain decimal number, or
- as satoshis per byte, using an integer followed by 's', for satoshi.
+ be specified as either absolute coin amounts, using a plain decimal number, or
+ as satoshis per byte, using an integer followed by ‘s’, for satoshi.
+
Transactions may contain both MMGen or non-MMGen input addresses.
- To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used
+ To sign non-MMGen inputs, a coin daemon wallet dump or flat key list is used
as the key source (--keys-from-file option).
To sign MMGen inputs, key data is generated from a seed as with the
@@ -78,6 +103,7 @@
Seed source files must have the canonical extensions listed in the 'FileExt'
column below:
+
FMT CODES:
Format FileExt Valid codes
@@ -94,5 +120,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-TXBUMP(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXBUMP(1)
```
diff --git a/command-help-txcreate.md b/command-help-txcreate.md
index f3d7d75..8eeeff1 100644
--- a/command-help-txcreate.md
+++ b/command-help-txcreate.md
@@ -1,26 +1,24 @@
```text
MMGEN-TXCREATE: Create a transaction with outputs to specified coin or MMGen addresses
- USAGE: mmgen-txcreate [opts] [ ...] [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 options (common options)
+ --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)
+ -A, --fee-adjust f Adjust transaction fee by factor ‘f’ (see below)
-B, --no-blank Don't blank screen before displaying unspent outputs
-c, --comment-file f Source the transaction's comment from file 'f'
-C, --fee-estimate-confs c Desired number of confirmations for fee estimation
(default: 3)
-d, --outdir d Specify an alternate directory 'd' for output
- -D, --contract-data D Path to hex-encoded contract data (ETH only)
-E, --fee-estimate-mode M Specify the network fee estimate mode. Choices:
'conservative','economical'. Default: 'conservative'
-f, --fee f Transaction fee, as a decimal BTC amount or as
- satoshis per byte (an integer followed by 's').
+ satoshis per byte (an integer followed by ‘s’).
See FEE SPECIFICATION below. If omitted, fee will be
calculated using network fee estimation.
- -g, --gas g Specify start gas amount in Wei (ETH only)
-i, --info Display unspent outputs and exit
-I, --inputs i Specify transaction inputs (comma-separated list of
MMGen IDs or coin addresses). Note that ALL unspent
@@ -35,21 +33,36 @@
-v, --verbose Produce more verbose output
-V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f'
-y, --yes Answer 'yes' to prompts, suppress non-essential output
- -X, --cached-balances Use cached balances (Ethereum only)
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.
- All addresses on the command line can be either Bitcoin addresses or MMGen
- IDs in the form ::.
+ Addresses on the command line can be either native coin addresses or MMGen
+ IDs in the form SEED_ID:ADDRTYPE_CODE:INDEX.
- Outputs are specified in the form ,, with the change output
- specified by address only. Alternatively, the change output may be an
- addrlist ID in the form :, in which case the
- first unused address in the tracking wallet matching the requested ID will
- be automatically selected as the change output.
+ Outputs are specified in the form ADDRESS,AMOUNT or ADDRESS. The first form
+ creates an output sending the given amount to the given address. The bare
+ address form designates the given address as either the change output or the
+ sole output of the transaction (excluding any data output). Exactly one bare
+ address argument is required.
+
+ For convenience, the bare address argument may be given as ADDRTYPE_CODE or
+ SEED_ID:ADDRTYPE_CODE (see ADDRESS TYPES below). In the first form, the first
+ unused address of type ADDRTYPE_CODE for each Seed ID in the tracking wallet
+ will be displayed in a menu, with the user prompted to select one. In the
+ second form, the user specifies the Seed ID as well, allowing the script to
+ select the transaction’s change output or single output without prompting.
+ See EXAMPLES below.
+
+ A single DATA_SPEC argument may also be given on the command line to create
+ an OP_RETURN data output with a zero spend amount. This is the preferred way
+ to embed data in the blockchain. DATA_SPEC may be of the form "data":DATA
+ 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.
If the transaction fee is not specified on the command line (see FEE
SPECIFICATION below), it will be calculated dynamically using network fee
@@ -59,17 +72,26 @@
Network-estimated fees will be multiplied by the value of --fee-adjust, if
specified.
- To send the value of all inputs (minus TX fee) to a single output, specify
- a single address with no amount on the command line. Alternatively, an
- addrlist ID may be specified, and the address will be chosen automatically
- as described above for the change output.
+
+ ADDRESS TYPES:
+
+ Code Type Description
+ ---- ---- -----------
+ ‘L’ legacy - Legacy uncompressed address
+ ‘C’ compressed - Compressed P2PKH address
+ ‘S’ segwit - Segwit P2SH-P2WPKH address
+ ‘B’ bech32 - Native Segwit (Bech32) address
+ ‘X’ bech32x - Cross-chain Bech32 address
+ ‘E’ ethereum - Ethereum address
+ ‘Z’ zcash_z - Zcash z-address
+ ‘M’ monero - Monero address
FEE SPECIFICATION
Transaction fees, both on the command line and at the interactive prompt, may
- be specified as either absolute BTC amounts, using a plain decimal number, or
- as satoshis per byte, using an integer followed by 's', for satoshi.
+ be specified as either absolute coin amounts, using a plain decimal number, or
+ as satoshis per byte, using an integer followed by ‘s’, for satoshi.
EXAMPLES:
@@ -77,30 +99,30 @@
Send 0.123 BTC to an external Bitcoin address, returning the change to a
specific MMGen address in the tracking wallet:
- $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S:7
+ $ mmgen-txcreate bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t,0.123 01ABCDEF:B:7
Same as above, but select the change address automatically:
- $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S
+ $ mmgen-txcreate bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t,0.123 01ABCDEF:B
Same as above, but select the change address automatically by address type:
- $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S
+ $ mmgen-txcreate bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t,0.123 B
Same as above, but reduce verbosity and specify fee of 20 satoshis
per byte:
- $ mmgen-txcreate -q -f 20s 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S
+ $ mmgen-txcreate -q -f 20s bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t,0.123 B
Send entire balance of selected inputs minus fee to an external Bitcoin
address:
- $ mmgen-txcreate 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB
+ $ mmgen-txcreate bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t
Send entire balance of selected inputs minus fee to first unused wallet
address of specified type:
- $ mmgen-txcreate S
+ $ mmgen-txcreate B
- MMGEN v15.0.0 September 2024 MMGEN-TXCREATE(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXCREATE(1)
```
diff --git a/command-help-txdo.md b/command-help-txdo.md
index 6860fb2..5902287 100644
--- a/command-help-txdo.md
+++ b/command-help-txdo.md
@@ -1,10 +1,10 @@
```text
MMGEN-TXDO: Create, sign and send an MMGen transaction
- USAGE: mmgen-txdo [opts] [ ...] [addr file ...] [seed source ...]
+ USAGE: mmgen-txdo [opts] [ADDR,AMT ... | DATA_SPEC] ADDR [addr file ...] [seed source ...]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
- -A, --fee-adjust f Adjust transaction fee by factor 'f' (see below)
+ --longhelp Print help message for long (global) options
+ -A, --fee-adjust f Adjust transaction fee by factor ‘f’ (see below)
-b, --brain-params l,p Use seed length 'l' and hash preset 'p' for
brainwallet input
-B, --no-blank Don't blank screen before displaying unspent outputs
@@ -12,15 +12,13 @@
-C, --fee-estimate-confs c Desired number of confirmations for fee estimation
(default: 3)
-d, --outdir d Specify an alternate directory 'd' for output
- -D, --contract-data D Path to hex-encoded contract data (ETH only)
-e, --echo-passphrase Print passphrase to screen when typing it
-E, --fee-estimate-mode M Specify the network fee estimate mode. Choices:
'conservative','economical'. Default: 'conservative'
-f, --fee f Transaction fee, as a decimal BTC amount or as
- satoshis per byte (an integer followed by 's').
+ satoshis per byte (an integer followed by ‘s’).
See FEE SPECIFICATION below. If omitted, fee will be
calculated using network fee estimation.
- -g, --gas g Specify start gas amount in Wei (ETH only)
-H, --hidden-incog-input-params f,o Read hidden incognito data from file
'f' at offset 'o' (comma-separated)
-i, --in-fmt f Input is from wallet format 'f' (see FMT CODES below)
@@ -46,15 +44,16 @@
-p, --hash-preset p Use the scrypt hash parameters defined by preset 'p'
for password hashing (default: '3')
-P, --passwd-file f Get MMGen wallet passphrase from file 'f'
+ -q, --quiet Suppress warnings; overwrite files without prompting
-R, --no-rbf Make transaction non-replaceable (non-replace-by-fee
according to BIP 125)
- -q, --quiet Suppress warnings; overwrite files without prompting
+ -T, --txhex-idx N Send only part ‘N’ of a multi-part transaction.
+ Indexing begins with one.
-u, --subseeds n The number of subseed pairs to scan for (default: 100,
maximum: 1000000). Only the default or first supplied
wallet is scanned for subseeds.
-v, --verbose Produce more verbose output
-V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f'
- -X, --cached-balances Use cached balances (Ethereum only)
-y, --yes Answer 'yes' to prompts, suppress non-essential output
-z, --show-hash-presets Show information on available hash presets
@@ -63,14 +62,30 @@
are chosen from a list of the wallet’s unspent outputs via an interactive
menu. Alternatively, inputs may be specified using the --inputs option.
- All addresses on the command line can be either Bitcoin addresses or MMGen
- IDs in the form ::.
+ Addresses on the command line can be either native coin addresses or MMGen
+ IDs in the form SEED_ID:ADDRTYPE_CODE:INDEX.
- Outputs are specified in the form ,, with the change output
- specified by address only. Alternatively, the change output may be an
- addrlist ID in the form :, in which case the
- first unused address in the tracking wallet matching the requested ID will
- be automatically selected as the change output.
+ Outputs are specified in the form ADDRESS,AMOUNT or ADDRESS. The first form
+ creates an output sending the given amount to the given address. The bare
+ address form designates the given address as either the change output or the
+ sole output of the transaction (excluding any data output). Exactly one bare
+ address argument is required.
+
+ For convenience, the bare address argument may be given as ADDRTYPE_CODE or
+ SEED_ID:ADDRTYPE_CODE (see ADDRESS TYPES below). In the first form, the first
+ unused address of type ADDRTYPE_CODE for each Seed ID in the tracking wallet
+ will be displayed in a menu, with the user prompted to select one. In the
+ second form, the user specifies the Seed ID as well, allowing the script to
+ select the transaction’s change output or single output without prompting.
+ See EXAMPLES below.
+
+ A single DATA_SPEC argument may also be given on the command line to create
+ an OP_RETURN data output with a zero spend amount. This is the preferred way
+ to embed data in the blockchain. DATA_SPEC may be of the form "data":DATA
+ 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.
If the transaction fee is not specified on the command line (see FEE
SPECIFICATION below), it will be calculated dynamically using network fee
@@ -80,24 +95,33 @@
Network-estimated fees will be multiplied by the value of --fee-adjust, if
specified.
- To send the value of all inputs (minus TX fee) to a single output, specify
- a single address with no amount on the command line. Alternatively, an
- addrlist ID may be specified, and the address will be chosen automatically
- as described above for the change output.
+
+ ADDRESS TYPES:
+
+ Code Type Description
+ ---- ---- -----------
+ ‘L’ legacy - Legacy uncompressed address
+ ‘C’ compressed - Compressed P2PKH address
+ ‘S’ segwit - Segwit P2SH-P2WPKH address
+ ‘B’ bech32 - Native Segwit (Bech32) address
+ ‘X’ bech32x - Cross-chain Bech32 address
+ ‘E’ ethereum - Ethereum address
+ ‘Z’ zcash_z - Zcash z-address
+ ‘M’ monero - Monero address
FEE SPECIFICATION
Transaction fees, both on the command line and at the interactive prompt, may
- be specified as either absolute BTC amounts, using a plain decimal number, or
- as satoshis per byte, using an integer followed by 's', for satoshi.
+ be specified as either absolute coin amounts, using a plain decimal number, or
+ as satoshis per byte, using an integer followed by ‘s’, for satoshi.
SIGNING NOTES
Transactions may contain both MMGen or non-MMGen input addresses.
- To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used
+ To sign non-MMGen inputs, a coin daemon wallet dump or flat key list is used
as the key source (--keys-from-file option).
To sign MMGen inputs, key data is generated from a seed as with the
@@ -118,6 +142,7 @@
Seed source files must have the canonical extensions listed in the 'FileExt'
column below:
+
FMT CODES:
Format FileExt Valid codes
@@ -140,30 +165,30 @@
Send 0.123 BTC to an external Bitcoin address, returning the change to a
specific MMGen address in the tracking wallet:
- $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S:7
+ $ mmgen-txdo bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t,0.123 01ABCDEF:B:7
Same as above, but select the change address automatically:
- $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 01ABCDEF:S
+ $ mmgen-txdo bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t,0.123 01ABCDEF:B
Same as above, but select the change address automatically by address type:
- $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S
+ $ mmgen-txdo bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t,0.123 B
Same as above, but reduce verbosity and specify fee of 20 satoshis
per byte:
- $ mmgen-txdo -q -f 20s 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB,0.123 S
+ $ mmgen-txdo -q -f 20s bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t,0.123 B
Send entire balance of selected inputs minus fee to an external Bitcoin
address:
- $ mmgen-txdo 35N9FntsNwy98TmjFHyCpsBVDVUs5wDPfB
+ $ mmgen-txdo bc1qj87nveegsvwmz8yj759xgua2vx2tzsywlny44t
Send entire balance of selected inputs minus fee to first unused wallet
address of specified type:
- $ mmgen-txdo S
+ $ mmgen-txdo B
- MMGEN v15.0.0 September 2024 MMGEN-TXDO(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXDO(1)
```
diff --git a/command-help-txsend.md b/command-help-txsend.md
index dc738b8..94fcd3d 100644
--- a/command-help-txsend.md
+++ b/command-help-txsend.md
@@ -2,21 +2,37 @@
MMGEN-TXSEND: Send a signed MMGen cryptocoin transaction
USAGE: mmgen-txsend [opts] [signed transaction file]
OPTIONS:
- -h, --help Print this help message
- --longhelp Print help message for long options (common options)
- -a, --autosign Send an autosigned transaction created by ‘mmgen-txcreate
- --autosign’. The removable device is mounted and unmounted
- automatically. The transaction file argument must be omitted
- when using this option
- -A, --abort Abort an unsent transaction created by ‘mmgen-txcreate
- --autosign’ and delete it from the removable device. The
- transaction may be signed or unsigned.
- -d, --outdir d Specify an alternate directory 'd' for output
- -q, --quiet Suppress warnings; overwrite files without prompting
- -s, --status Get status of a sent transaction (or the current transaction,
- whether sent or unsent, when used with --autosign)
- -v, --verbose Be more verbose
- -y, --yes Answer 'yes' to prompts, suppress non-essential output
+ -h, --help Print this help message
+ --longhelp Print help message for long (global) options
+ -a, --autosign Send an autosigned transaction created by ‘mmgen-txcreate
+ --autosign’. The removable device is mounted and unmounted
+ automatically. The transaction file argument must be omitted
+ when using this option
+ -A, --abort Abort an unsent transaction created by ‘mmgen-txcreate
+ --autosign’ and delete it from the removable device. The
+ transaction may be signed or unsigned.
+ -d, --outdir d Specify an alternate directory 'd' for output
+ -H, --dump-hex F Instead of sending to the network, dump the transaction hex
+ to file ‘F’. Use filename ‘-’ to dump to standard output.
+ -m, --mark-sent Mark the transaction as sent by adding it to the removable
+ device. Used in combination with --autosign when a trans-
+ action has been successfully sent out-of-band.
+ -n, --tx-proxy P Send transaction via public TX proxy ‘P’ (supported proxies:
+ ‘etherscan’). This is done via a publicly accessible web
+ page, so no API key or registration is required.
+ -q, --quiet Suppress warnings; overwrite files without prompting
+ -r, --receipt Print the receipt of the sent transaction (Ethereum only)
+ -s, --status Get status of a sent transaction (or current transaction,
+ whether sent or unsent, when used with --autosign)
+ -t, --test Test whether the transaction can be sent without sending it
+ -T, --txhex-idx N Send only part ‘N’ of a multi-part transaction. Indexing
+ begins with one.
+ -v, --verbose Be more verbose
+ -w, --wait Wait for transaction confirmation (Ethereum only)
+ -x, --proxy P Connect to TX proxy via SOCKS5h proxy ‘P’ (host:port).
+ Use special value ‘env’ to honor *_PROXY environment vars
+ instead.
+ -y, --yes Answer 'yes' to prompts, suppress non-essential output
- MMGEN v15.0.0 September 2024 MMGEN-TXSEND(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXSEND(1)
```
diff --git a/command-help-txsign.md b/command-help-txsign.md
index d1b12b0..b6eb428 100644
--- a/command-help-txsign.md
+++ b/command-help-txsign.md
@@ -3,7 +3,9 @@
USAGE: mmgen-txsign [opts] ... [seed source]...
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
+ -a, --autosign Sign a transaction created for offline autosigning (see
+ ‘mmgen-autosign’)
-b, --brain-params l,p Use seed length 'l' and hash preset 'p' for
brainwallet input
-d, --outdir d Specify an alternate directory 'd' for output
@@ -37,12 +39,14 @@
wallet is scanned for subseeds.
-v, --verbose Produce more verbose output
-V, --vsize-adj f Adjust transaction's estimated vsize by factor 'f'
+ -W, --allow-non-wallet-swap Allow signing of swap transactions that send funds
+ to non-wallet addresses
-y, --yes Answer 'yes' to prompts, suppress non-essential output
Transactions may contain both MMGen or non-MMGen input addresses.
- To sign non-MMGen inputs, a bitcoind wallet dump or flat key list is used
+ To sign non-MMGen inputs, a coin daemon wallet dump or flat key list is used
as the key source (--keys-from-file option).
To sign MMGen inputs, key data is generated from a seed as with the
@@ -63,6 +67,7 @@
Seed source files must have the canonical extensions listed in the 'FileExt'
column below:
+
FMT CODES:
Format FileExt Valid codes
@@ -79,5 +84,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-TXSIGN(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-TXSIGN(1)
```
diff --git a/command-help-walletchk.md b/command-help-walletchk.md
index 7640098..db08bd6 100644
--- a/command-help-walletchk.md
+++ b/command-help-walletchk.md
@@ -3,7 +3,7 @@
USAGE: mmgen-walletchk [opts] [infile]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-e, --echo-passphrase Echo passphrases and other user input to screen
-i, --in-fmt f Input from wallet format 'f' (see FMT CODES below)
-H, --hidden-incog-input-params f,o Read hidden incognito data from file
@@ -34,6 +34,7 @@
with brainwallets. For a brainwallet passphrase to generate the correct
seed, the same seed length and hash preset parameters must always be used.
+
FMT CODES:
Format FileExt Valid codes
@@ -50,5 +51,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-WALLETCHK(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-WALLETCHK(1)
```
diff --git a/command-help-walletconv.md b/command-help-walletconv.md
index a49b703..086a36d 100644
--- a/command-help-walletconv.md
+++ b/command-help-walletconv.md
@@ -3,7 +3,7 @@
USAGE: mmgen-walletconv [opts] [infile]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-d, --outdir d Output files to directory 'd' instead of working dir
-e, --echo-passphrase Echo passphrases and other user input to screen
-i, --in-fmt f Convert from wallet format 'f' (see FMT CODES below)
@@ -45,6 +45,7 @@
with brainwallets. For a brainwallet passphrase to generate the correct
seed, the same seed length and hash preset parameters must always be used.
+
FMT CODES:
Format FileExt Valid codes
@@ -61,5 +62,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-WALLETCONV(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-WALLETCONV(1)
```
diff --git a/command-help-walletgen.md b/command-help-walletgen.md
index 94b4027..2004121 100644
--- a/command-help-walletgen.md
+++ b/command-help-walletgen.md
@@ -3,7 +3,7 @@
USAGE: mmgen-walletgen [opts]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common options)
+ --longhelp Print help message for long (global) options
-d, --outdir d Output files to directory 'd' instead of working dir
-e, --echo-passphrase Echo passphrases and other user input to screen
-o, --out-fmt f Output to wallet format 'f' (see FMT CODES below)
@@ -37,6 +37,7 @@
with brainwallets. For a brainwallet passphrase to generate the correct
seed, the same seed length and hash preset parameters must always be used.
+
FMT CODES:
Format FileExt Valid codes
@@ -53,5 +54,5 @@
MMGenWallet .mmdat wallet,w
PlainHexSeedFile .hex hex,rawhex,plainhex
- MMGEN v15.0.0 September 2024 MMGEN-WALLETGEN(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-WALLETGEN(1)
```
diff --git a/command-help-xmrwallet.md b/command-help-xmrwallet.md
index ec23ca5..0f767c3 100644
--- a/command-help-xmrwallet.md
+++ b/command-help-xmrwallet.md
@@ -13,8 +13,7 @@
mmgen-xmrwallet [opts] export-outputs | export-outputs-sign | import-key-images [wallets]
OPTIONS:
-h, --help Print this help message
- --longhelp Print help message for long options (common
- options)
+ --longhelp Print help message for long (global) options
-a, --autosign Use appropriate outdir and other params for
autosigning operations (implies --watch-only).
When this option is in effect, filename argu-
@@ -500,5 +499,5 @@
to delete your old hot wallets, make sure to do so securely using ‘shred’,
‘wipe’ or some other secure deletion utility.
- MMGEN v15.0.0 September 2024 MMGEN-XMRWALLET(1)
+ MMGEN-WALLET 16.0.0 September 2025 MMGEN-XMRWALLET(1)
```