Skip to main content

Upgrading from v1.4.4 to v1.4.5

This page covers upgrading from Mintlayer v1.4.4 to v1.4.5. There are no consensus forks, no storage version changes, and no resync required. The main change to be aware of is the wallet-cli command grammar rework.

Wallet CLI: nested command grammar​

Wallet-cli commands were reorganized into a nested grammar. A group word comes first, followed by the action:

Legacy flat spellingNew nested spelling
wallet-createwallet create
wallet-recoverwallet recover
wallet-openwallet open
address-newaddress new
address-showaddress list
address-qrcodeaddress qr
address-sendsend
address-sweep-spendableaddress sweep
address-deposit-datadata deposit
account-extended-public-key-as-hexaccount show-xpub
account-sign-raw-transactiontransaction sign
standalone-add-watch-only-addressaddress standalone add
standalone-add-private-key-from-hexaddress standalone add-private-key
standalone-add-multisigaddress standalone add-multisig
standalone-address-showaddress standalone list
standalone-address-detailsaddress standalone details
standalone-address-label-renameaddress standalone rename-label
standalone-multisig-utxosaddress standalone utxos
address-reveal-public-key-as-hexaddress reveal-public-key --format hex
address-reveal-public-key-as-addressaddress reveal-public-key
staking-create-poolstaking create-pool
staking-decommission-poolstaking decommission-pool
staking-decommission-pool-requeststaking decommission-pool-request
staking-list-created-block-idsstaking list-created-blocks
staking-new-vrf-public-keystaking new-vrf-public-key
staking-show-vrf-public-keysstaking show-vrf-public-keys
staking-show-legacy-vrf-keystaking show-legacy-vrf-key
staking-pool-balancestaking pool-balance
staking-sweep-delegationdelegation sweep
token-issue-newtoken issue
token-nft-issue-newtoken nft issue
htlc-create-transactionhtlc create
wallet-encrypt-private-keyswallet encrypt
wallet-disable-private-keys-encryptionwallet decrypt
wallet-unlock-private-keyswallet unlock
wallet-lock-private-keyswallet lock
challenge-sign-plainchallenge sign
challenge-verify-plainchallenge verify
node-enable-p2p-networkingnode p2p
node-connect-to-peerpeer connect
node-disconnect-peerpeer disconnect
node-peer-countpeer count
node-list-connected-peerspeer list
node-list-banned-peerspeer banned
node-list-discouraged-peerspeer discouraged
node-ban-peer-addresspeer ban
node-unban-peer-addresspeer unban
node-undiscourage-peer-addresspeer undiscourage
node-add-reserved-peerpeer reserved add
node-remove-reserved-peerpeer reserved remove
node-list-reserved-peerspeer reserved list
node-best-block-idnode best-block --id
node-best-block-heightnode best-block --height
node-best-block-timestampnode best-block --timestamp
node-get-blocknode block
history-printhistory print
history-clearhistory clear
config-broadcastconfig broadcast
screen-clearclear

The complete mapping is also available inside the wallet with the legacy command, which lists every flat name and its nested equivalent.

Backward compatibility. Every legacy flat name keeps working, so existing scripts and --commands-file batches do not break. The flat names are no longer shown in help output or tab completion, so new documentation, examples, and helper scripts should use the nested spellings. Flat names without a nested equivalent also keep working: wallet-rescan, wallet-sync, utxo-spend, node-generate-blocks, rpc-shutdown-and-exit, plus the built-ins version, exit, and help.

Interactive wizards​

Complex commands can be built interactively with the new wizard command (interactive terminals only):

  • wizard token-issue: builds a token issue command line
  • wizard nft-issue: builds a token nft issue command line
  • wizard pool-create: builds a staking create-pool command line
  • wizard order-create: builds an order create command line
  • wizard htlc-create: builds an htlc create command line

The wizard asks for each argument, shows a summary, and prints the resulting command line; in non-interactive runs it is rejected with an error.

Confirmation gates​

State-changing commands now ask for confirmation before running (for example, send recaps the amount, destination, and spent UTXOs; node generate-block asks before generating). In non-interactive runs (--exec, --commands-file), a gated command aborts unless the new --yes flag is passed. Read-only commands are unaffected.

One-shot execution and machine-readable output​

A new --exec "<command>" option runs a single wallet command and exits (exit status 0 on success, 1 on failure). The new --output option selects the format for --exec runs: text (default, human-readable) or json (a single JSON object on stdout; startup reports go to stderr, so stdout stays machine-parseable). Command results now carry a machine-readable payload alongside the human-readable text, and the JSON output reflects that payload. A new completions --shell <shell> verb emits shell completion scripts. See One-shot Commands, Wizards, and Completions.

Seed phrase storage is now a flag​

For wallet create software and wallet recover software, the choice between storing the seed phrase and only displaying it is now the optional flag --store-seed-phrase=true|false (default: true). The old positional spelling (store-seed-phrase / do-not-store-seed-phrase before the mnemonic) still works; when passing the mnemonic positionally, that legacy slot must still precede it, or use the new --mnemonic flag instead.

Wallet: read-only MCP server​

A new wallet-mcp-server binary exposes a read-only Model Context Protocol (stdio) interface to a running wallet-rpc-daemon, letting MCP clients (AI assistants) inspect wallets without being able to move funds. See MCP. This does not affect existing setups; the server is opt-in and must be started explicitly.

Node: per-peer fork download budget​

After the initial sync, each peer is limited in how many header lists it can make the node download per refill interval (defaults: 2000 downloads per 600 seconds), which bounds the cost of adversarial fork announcements. This is transparent for honest peers; no configuration is needed.

Security notes​

Wallet password file handling was hardened: the file size cap is enforced before reads, the size race between stat and read is closed, and unverifiable password sources fail closed instead of falling back silently.

Changelogs​