From 0970d151d75002024a3928b5f666f552699c37e7 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 3 Mar 2022 18:53:47 +0100
Subject: [PATCH 001/187] build: Bump version to 23.0rc1

Tree-SHA512: f60e9a8379e299fb54ceb4ba2604913532fa69f882d4cb88577102e259c09318e7edec856bfa8959df5c16584f2d78ed29e0c54a80ad82e60846fac6d432620a
---
 configure.ac | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 1e6ac93e78d..36094e7b321 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,9 +1,9 @@
 AC_PREREQ([2.69])
-define(_CLIENT_VERSION_MAJOR, 22)
-define(_CLIENT_VERSION_MINOR, 99)
+define(_CLIENT_VERSION_MAJOR, 23)
+define(_CLIENT_VERSION_MINOR, 0)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 0)
-define(_CLIENT_VERSION_IS_RELEASE, false)
+define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])
 define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])

From 5d2b11c7c9b6b075feb649dee0e982efcbc9ec97 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 3 Mar 2022 19:31:02 +0100
Subject: [PATCH 002/187] doc: Generate manual pages for 23.0rc1

Tree-SHA512: f0d7b08a621194176f49faad17fcdb144ca4c2d67ea9c2b51855c3adc506461020b091acd710acdfbcfe4b515d01929538a1ae64dc40a6edb6f069ef29a6d90d
---
 doc/man/bitcoin-cli.1    | 182 ++++++++-
 doc/man/bitcoin-qt.1     | 811 ++++++++++++++++++++++++++++++++++++++-
 doc/man/bitcoin-tx.1     | 146 ++++++-
 doc/man/bitcoin-util.1   |  66 +++-
 doc/man/bitcoin-wallet.1 | 122 +++++-
 doc/man/bitcoind.1       | 789 ++++++++++++++++++++++++++++++++++++-
 6 files changed, 2098 insertions(+), 18 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index 6bcad7006b0..5e4c3567689 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,5 +1,181 @@
-.TH BITCOIN-CLI "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
+.TH BITCOIN-CLI "1" "March 2022" "bitcoin-cli v23.0.0rc1" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli
+bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc1
+.SH SYNOPSIS
+.B bitcoin-cli
+[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
+.br
+.B bitcoin-cli
+[\fI\,options\/\fR] \fI\,-named <command> \/\fR[\fI\,name=value\/\fR]...  \fI\,Send command to Bitcoin Core (with named arguments)\/\fR
+.br
+.B bitcoin-cli
+[\fI\,options\/\fR] \fI\,help                List commands\/\fR
+.br
+.B bitcoin-cli
+[\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
+.SH DESCRIPTION
+Bitcoin Core RPC client version v23.0.0rc1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-addrinfo\fR
+.IP
+Get the number of addresses known to the node, per network and total,
+after filtering for quality and recency. The total number of
+addresses known to the node may be higher.
+.HP
+\fB\-color=\fR<when>
+.IP
+Color setting for CLI output (default: auto). Valid values: always, auto
+(add color codes when standard output is connected to a terminal
+and OS is not WIN32), never.
+.HP
+\fB\-conf=\fR<file>
+.IP
+Specify configuration file. Relative paths will be prefixed by datadir
+location. (default: bitcoin.conf)
+.HP
+\fB\-datadir=\fR<dir>
+.IP
+Specify data directory
+.HP
+\fB\-generate\fR
+.IP
+Generate blocks, equivalent to RPC getnewaddress followed by RPC
+generatetoaddress. Optional positional integer arguments are
+number of blocks to generate (default: 1) and maximum iterations
+to try (default: 1000000), equivalent to RPC generatetoaddress
+nblocks and maxtries arguments. Example: bitcoin\-cli \fB\-generate\fR 4
+1000
+.HP
+\fB\-getinfo\fR
+.IP
+Get general information from the remote server. Note that unlike
+server\-side RPC calls, the results of \fB\-getinfo\fR is the result of
+multiple non\-atomic requests. Some entries in the result may
+represent results from different states (e.g. wallet balance may
+be as of a different block from the chain state reported)
+.HP
+\fB\-named\fR
+.IP
+Pass named instead of positional arguments (default: false)
+.HP
+\fB\-netinfo\fR
+.IP
+Get network peer connection information from the remote server. An
+optional integer argument from 0 to 4 can be passed for different
+peers listings (default: 0). Pass "help" for detailed help
+documentation.
+.HP
+\fB\-rpcclienttimeout=\fR<n>
+.IP
+Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
+900)
+.HP
+\fB\-rpcconnect=\fR<ip>
+.IP
+Send commands to node running on <ip> (default: 127.0.0.1)
+.HP
+\fB\-rpccookiefile=\fR<loc>
+.IP
+Location of the auth cookie. Relative paths will be prefixed by a
+net\-specific datadir location. (default: data dir)
+.HP
+\fB\-rpcpassword=\fR<pw>
+.IP
+Password for JSON\-RPC connections
+.HP
+\fB\-rpcport=\fR<port>
+.IP
+Connect to JSON\-RPC on <port> (default: 8332, testnet: 18332, signet:
+38332, regtest: 18443)
+.HP
+\fB\-rpcuser=\fR<user>
+.IP
+Username for JSON\-RPC connections
+.HP
+\fB\-rpcwait\fR
+.IP
+Wait for RPC server to start
+.HP
+\fB\-rpcwaittimeout=\fR<n>
+.IP
+Timeout in seconds to wait for the RPC server to start, or 0 for no
+timeout. (default: 0)
+.HP
+\fB\-rpcwallet=\fR<walletname>
+.IP
+Send RPC for non\-default wallet on RPC server (needs to exactly match
+corresponding \fB\-wallet\fR option passed to bitcoind). This changes
+the RPC endpoint used, e.g.
+http://127.0.0.1:8332/wallet/<walletname>
+.HP
+\fB\-stdin\fR
+.IP
+Read extra arguments from standard input, one per line until EOF/Ctrl\-D
+(recommended for sensitive information such as passphrases). When
+combined with \fB\-stdinrpcpass\fR, the first line from standard input
+is used for the RPC password.
+.HP
+\fB\-stdinrpcpass\fR
+.IP
+Read RPC password from standard input as a single line. When combined
+with \fB\-stdin\fR, the first line from standard input is used for the
+RPC password. When combined with \fB\-stdinwalletpassphrase\fR,
+\fB\-stdinrpcpass\fR consumes the first line, and \fB\-stdinwalletpassphrase\fR
+consumes the second.
+.HP
+\fB\-stdinwalletpassphrase\fR
+.IP
+Read wallet passphrase from standard input as a single line. When
+combined with \fB\-stdin\fR, the first line from standard input is used
+for the wallet passphrase.
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Debugging/Testing options:
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: main). Allowed values: main, test,
+signet, regtest
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.SH COPYRIGHT
+Copyright (C) 2009-2022 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Bitcoin Core useful. Visit
+<https://bitcoincore.org/> for further information about the software.
+The source code is available from <https://github.com/bitcoin/bitcoin>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index ff4d1d2c7ac..1455688b802 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,5 +1,810 @@
-.TH BITCOIN-QT "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
+.TH BITCOIN-QT "1" "March 2022" "bitcoin-qt v23.0.0rc1" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt
+bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc1
+.SH SYNOPSIS
+.B bitcoin-qt
+[\fI\,command-line options\/\fR]
+.SH DESCRIPTION
+Bitcoin Core version v23.0.0rc1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-alertnotify=\fR<cmd>
+.IP
+Execute command when an alert is raised (%s in cmd is replaced by
+message)
+.HP
+\fB\-assumevalid=\fR<hex>
+.IP
+If this block is in the chain assume that it and its ancestors are valid
+and potentially skip their script verification (0 to verify all,
+default:
+000000000000000000052d314a259755ca65944e68df6b12a067ea8f1f5a7091,
+testnet:
+00000000000163cfb1f97c4e4098a3692c8053ad9cab5ad9c86b338b5c00b8b7,
+signet:
+00000112852484b5fe3451572368f93cfd2723279af3464e478aee35115256ef)
+.HP
+\fB\-blockfilterindex=\fR<type>
+.IP
+Maintain an index of compact filters by block (default: 0, values:
+basic). If <type> is not supplied or if <type> = 1, indexes for
+all known types are enabled.
+.HP
+\fB\-blocknotify=\fR<cmd>
+.IP
+Execute command when the best block changes (%s in cmd is replaced by
+block hash)
+.HP
+\fB\-blockreconstructionextratxn=\fR<n>
+.IP
+Extra transactions to keep in memory for compact block reconstructions
+(default: 100)
+.HP
+\fB\-blocksdir=\fR<dir>
+.IP
+Specify directory to hold blocks subdirectory for *.dat files (default:
+<datadir>)
+.HP
+\fB\-blocksonly\fR
+.IP
+Whether to reject transactions from network peers. Automatic broadcast
+and rebroadcast of any transactions from inbound peers is
+disabled, unless the peer has the 'forcerelay' permission. RPC
+transactions are not affected. (default: 0)
+.HP
+\fB\-coinstatsindex\fR
+.IP
+Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
+.HP
+\fB\-conf=\fR<file>
+.IP
+Specify path to read\-only configuration file. Relative paths will be
+prefixed by datadir location. (default: bitcoin.conf)
+.HP
+\fB\-daemon\fR
+.IP
+Run in the background as a daemon and accept commands (default: 0)
+.HP
+\fB\-daemonwait\fR
+.IP
+Wait for initialization to be finished before exiting. This implies
+\fB\-daemon\fR (default: 0)
+.HP
+\fB\-datadir=\fR<dir>
+.IP
+Specify data directory
+.HP
+\fB\-dbcache=\fR<n>
+.IP
+Maximum database cache size <n> MiB (4 to 16384, default: 450). In
+addition, unused mempool memory is shared for this cache (see
+\fB\-maxmempool\fR).
+.HP
+\fB\-debuglogfile=\fR<file>
+.IP
+Specify location of debug log file. Relative paths will be prefixed by a
+net\-specific datadir location. (\fB\-nodebuglogfile\fR to disable;
+default: debug.log)
+.HP
+\fB\-includeconf=\fR<file>
+.IP
+Specify additional configuration file, relative to the \fB\-datadir\fR path
+(only useable from configuration file, not command line)
+.HP
+\fB\-loadblock=\fR<file>
+.IP
+Imports blocks from external file on startup
+.HP
+\fB\-maxmempool=\fR<n>
+.IP
+Keep the transaction memory pool below <n> megabytes (default: 300)
+.HP
+\fB\-maxorphantx=\fR<n>
+.IP
+Keep at most <n> unconnectable transactions in memory (default: 100)
+.HP
+\fB\-mempoolexpiry=\fR<n>
+.IP
+Do not keep transactions in the mempool longer than <n> hours (default:
+336)
+.HP
+\fB\-par=\fR<n>
+.IP
+Set the number of script verification threads (\fB\-6\fR to 15, 0 = auto, <0 =
+leave that many cores free, default: 0)
+.HP
+\fB\-persistmempool\fR
+.IP
+Whether to save the mempool on shutdown and load on restart (default: 1)
+.HP
+\fB\-pid=\fR<file>
+.IP
+Specify pid file. Relative paths will be prefixed by a net\-specific
+datadir location. (default: bitcoind.pid)
+.HP
+\fB\-prune=\fR<n>
+.IP
+Reduce storage requirements by enabling pruning (deleting) of old
+blocks. This allows the pruneblockchain RPC to be called to
+delete specific blocks, and enables automatic pruning of old
+blocks if a target size in MiB is provided. This mode is
+incompatible with \fB\-txindex\fR and \fB\-coinstatsindex\fR. Warning:
+Reverting this setting requires re\-downloading the entire
+blockchain. (default: 0 = disable pruning blocks, 1 = allow
+manual pruning via RPC, >=550 = automatically prune block files
+to stay under the specified target size in MiB)
+.HP
+\fB\-reindex\fR
+.IP
+Rebuild chain state and block index from the blk*.dat files on disk
+.HP
+\fB\-reindex\-chainstate\fR
+.IP
+Rebuild chain state from the currently indexed blocks. When in pruning
+mode or if blocks on disk might be corrupted, use full \fB\-reindex\fR
+instead.
+.HP
+\fB\-sandbox=\fR<mode>
+.IP
+Use the experimental syscall sandbox in the specified mode
+(\fB\-sandbox\fR=\fI\,log\-and\-abort\/\fR or \fB\-sandbox\fR=\fI\,abort\/\fR). Allow only expected
+syscalls to be used by bitcoind. Note that this is an
+experimental new feature that may cause bitcoind to exit or crash
+unexpectedly: use with caution. In the "log\-and\-abort" mode the
+invocation of an unexpected syscall results in a debug handler
+being invoked which will log the incident and terminate the
+program (without executing the unexpected syscall). In the
+"abort" mode the invocation of an unexpected syscall results in
+the entire process being killed immediately by the kernel without
+executing the unexpected syscall.
+.HP
+\fB\-settings=\fR<file>
+.IP
+Specify path to dynamic settings data file. Can be disabled with
+\fB\-nosettings\fR. File is written at runtime and not meant to be
+edited by users (use bitcoin.conf instead for custom settings).
+Relative paths will be prefixed by datadir location. (default:
+settings.json)
+.HP
+\fB\-startupnotify=\fR<cmd>
+.IP
+Execute command on startup.
+.HP
+\fB\-sysperms\fR
+.IP
+Create new files with system default permissions, instead of umask 077
+(only effective with disabled wallet functionality)
+.HP
+\fB\-txindex\fR
+.IP
+Maintain a full transaction index, used by the getrawtransaction rpc
+call (default: 0)
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Connection options:
+.HP
+\fB\-addnode=\fR<ip>
+.IP
+Add a node to connect to and attempt to keep the connection open (see
+the addnode RPC help for more info). This option can be specified
+multiple times to add multiple nodes; connections are limited to
+8 at a time and are counted separately from the \fB\-maxconnections\fR
+limit.
+.HP
+\fB\-asmap=\fR<file>
+.IP
+Specify asn mapping used for bucketing of the peers (default:
+ip_asn.map). Relative paths will be prefixed by the net\-specific
+datadir location.
+.HP
+\fB\-bantime=\fR<n>
+.IP
+Default duration (in seconds) of manually configured bans (default:
+86400)
+.HP
+\fB\-bind=\fR<addr>[:<port>][=onion]
+.IP
+Bind to given address and always listen on it (default: 0.0.0.0). Use
+[host]:port notation for IPv6. Append =onion to tag any incoming
+connections to that address and port as incoming Tor connections
+(default: 127.0.0.1:8334=onion, testnet: 127.0.0.1:18334=onion,
+signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
+.HP
+\fB\-cjdnsreachable\fR
+.IP
+If set then this host is configured for CJDNS (connecting to fc00::/8
+addresses would lead us to the CJDNS network) (default: 0)
+.HP
+\fB\-connect=\fR<ip>
+.IP
+Connect only to the specified node; \fB\-noconnect\fR disables automatic
+connections (the rules for this peer are the same as for
+\fB\-addnode\fR). This option can be specified multiple times to connect
+to multiple nodes.
+.HP
+\fB\-discover\fR
+.IP
+Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
+or \fB\-proxy\fR)
+.HP
+\fB\-dns\fR
+.IP
+Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
+.HP
+\fB\-dnsseed\fR
+.IP
+Query for peer addresses via DNS lookup, if low on addresses (default: 1
+unless \fB\-connect\fR used)
+.HP
+\fB\-externalip=\fR<ip>
+.IP
+Specify your own public address
+.HP
+\fB\-fixedseeds\fR
+.IP
+Allow fixed seeds if DNS seeds don't provide peers (default: 1)
+.HP
+\fB\-forcednsseed\fR
+.IP
+Always query for peer addresses via DNS lookup (default: 0)
+.HP
+\fB\-i2pacceptincoming\fR
+.IP
+If set and \fB\-i2psam\fR is also set then incoming I2P connections are
+accepted via the SAM proxy. If this is not set but \fB\-i2psam\fR is set
+then only outgoing connections will be made to the I2P network.
+Ignored if \fB\-i2psam\fR is not set. Listening for incoming I2P
+connections is done through the SAM proxy, not by binding to a
+local address and port (default: 1)
+.HP
+\fB\-i2psam=\fR<ip:port>
+.IP
+I2P SAM proxy to reach I2P peers and accept I2P connections (default:
+none)
+.HP
+\fB\-listen\fR
+.IP
+Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
+.HP
+\fB\-listenonion\fR
+.IP
+Automatically create Tor onion service (default: 1)
+.HP
+\fB\-maxconnections=\fR<n>
+.IP
+Maintain at most <n> connections to peers (default: 125). This limit
+does not apply to connections manually added via \fB\-addnode\fR or the
+addnode RPC, which have a separate limit of 8.
+.HP
+\fB\-maxreceivebuffer=\fR<n>
+.IP
+Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
+.HP
+\fB\-maxsendbuffer=\fR<n>
+.IP
+Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
+.HP
+\fB\-maxtimeadjustment\fR
+.IP
+Maximum allowed median peer time offset adjustment. Local perspective of
+time may be influenced by peers forward or backward by this
+amount. (default: 4200 seconds)
+.HP
+\fB\-maxuploadtarget=\fR<n>
+.IP
+Tries to keep outbound traffic under the given target per 24h. Limit
+does not apply to peers with 'download' permission or blocks
+created within past week. 0 = no limit (default: 0M). Optional
+suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
+base while uppercase is 1024 base
+.HP
+\fB\-natpmp\fR
+.IP
+Use NAT\-PMP to map the listening port (default: 0)
+.HP
+\fB\-networkactive\fR
+.IP
+Enable all P2P network activity (default: 1). Can be changed by the
+setnetworkactive RPC command
+.HP
+\fB\-onion=\fR<ip:port>
+.IP
+Use separate SOCKS5 proxy to reach peers via Tor onion services, set
+\fB\-noonion\fR to disable (default: \fB\-proxy\fR)
+.HP
+\fB\-onlynet=\fR<net>
+.IP
+Make automatic outgoing connections only through network <net> (ipv4,
+ipv6, onion, i2p, cjdns). Incoming connections are not affected
+by this option. This option can be specified multiple times to
+allow multiple networks.
+.HP
+\fB\-peerblockfilters\fR
+.IP
+Serve compact block filters to peers per BIP 157 (default: 0)
+.HP
+\fB\-peerbloomfilters\fR
+.IP
+Support filtering of blocks and transaction with bloom filters (default:
+0)
+.HP
+\fB\-permitbaremultisig\fR
+.IP
+Relay non\-P2SH multisig (default: 1)
+.HP
+\fB\-port=\fR<port>
+.IP
+Listen for connections on <port>. Nodes not using the default ports
+(default: 8333, testnet: 18333, signet: 38333, regtest: 18444)
+are unlikely to get incoming connections. Not relevant for I2P
+(see doc/i2p.md).
+.HP
+\fB\-proxy=\fR<ip:port>
+.IP
+Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
+disabled)
+.HP
+\fB\-proxyrandomize\fR
+.IP
+Randomize credentials for every proxy connection. This enables Tor
+stream isolation (default: 1)
+.HP
+\fB\-seednode=\fR<ip>
+.IP
+Connect to a node to retrieve peer addresses, and disconnect. This
+option can be specified multiple times to connect to multiple
+nodes.
+.HP
+\fB\-timeout=\fR<n>
+.IP
+Specify socket connection timeout in milliseconds. If an initial attempt
+to connect is unsuccessful after this amount of time, drop it
+(minimum: 1, default: 5000)
+.HP
+\fB\-torcontrol=\fR<ip>:<port>
+.IP
+Tor control port to use if onion listening enabled (default:
+127.0.0.1:9051)
+.HP
+\fB\-torpassword=\fR<pass>
+.IP
+Tor control port password (default: empty)
+.HP
+\fB\-upnp\fR
+.IP
+Use UPnP to map the listening port (default: 0)
+.HP
+\fB\-whitebind=\fR<[permissions@]addr>
+.IP
+Bind to the given address and add permission flags to the peers
+connecting to it. Use [host]:port notation for IPv6. Allowed
+permissions: bloomfilter (allow requesting BIP37 filtered blocks
+and transactions), noban (do not ban for misbehavior; implies
+download), forcerelay (relay transactions that are already in the
+mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
+and unlimited transaction announcements), mempool (allow
+requesting BIP35 mempool contents), download (allow getheaders
+during IBD, no disconnect after maxuploadtarget limit), addr
+(responses to GETADDR avoid hitting the cache and contain random
+records with the most up\-to\-date info). Specify multiple
+permissions separated by commas (default:
+download,noban,mempool,relay). Can be specified multiple times.
+.HP
+\fB\-whitelist=\fR<[permissions@]IP address or network>
+.IP
+Add permission flags to the peers connecting from the given IP address
+(e.g. 1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses
+the same permissions as \fB\-whitebind\fR. Can be specified multiple
+times.
+.PP
+Wallet options:
+.HP
+\fB\-addresstype\fR
+.IP
+What type of addresses to use ("legacy", "p2sh\-segwit", "bech32", or
+"bech32m", default: "bech32")
+.HP
+\fB\-avoidpartialspends\fR
+.IP
+Group outputs by address, selecting many (possibly all) or none, instead
+of selecting on a per\-output basis. Privacy is improved as
+addresses are mostly swept with fewer transactions and outputs
+are aggregated in clean change addresses. It may result in higher
+fees due to less optimal coin selection caused by this added
+limitation and possibly a larger\-than\-necessary number of inputs
+being used. Always enabled for wallets with "avoid_reuse"
+enabled, otherwise default: 0.
+.HP
+\fB\-changetype\fR
+.IP
+What type of change to use ("legacy", "p2sh\-segwit", "bech32", or
+"bech32m"). Default is "legacy" when \fB\-addresstype\fR=\fI\,legacy\/\fR, else it
+is an implementation detail.
+.HP
+\fB\-consolidatefeerate=\fR<amt>
+.IP
+The maximum feerate (in BTC/kvB) at which transaction building may use
+more inputs than strictly necessary so that the wallet's UTXO
+pool can be reduced (default: 0.0001).
+.HP
+\fB\-disablewallet\fR
+.IP
+Do not load the wallet and disable wallet RPC calls
+.HP
+\fB\-discardfee=\fR<amt>
+.IP
+The fee rate (in BTC/kvB) that indicates your tolerance for discarding
+change by adding it to the fee (default: 0.0001). Note: An output
+is discarded if it is dust at this rate, but we will always
+discard up to the dust relay fee and a discard fee above that is
+limited by the fee estimate for the longest target
+.HP
+\fB\-fallbackfee=\fR<amt>
+.IP
+A fee rate (in BTC/kvB) that will be used when fee estimation has
+insufficient data. 0 to entirely disable the fallbackfee feature.
+(default: 0.00)
+.HP
+\fB\-keypool=\fR<n>
+.IP
+Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
+increase the risk of losing funds when restoring from an old
+backup, if none of the addresses in the original keypool have
+been used.
+.HP
+\fB\-maxapsfee=\fR<n>
+.IP
+Spend up to this amount in additional (absolute) fees (in BTC) if it
+allows the use of partial spend avoidance (default: 0.00)
+.HP
+\fB\-mintxfee=\fR<amt>
+.IP
+Fee rates (in BTC/kvB) smaller than this are considered zero fee for
+transaction creation (default: 0.00001)
+.HP
+\fB\-paytxfee=\fR<amt>
+.IP
+Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
+.HP
+\fB\-signer=\fR<cmd>
+.IP
+External signing tool, see doc/external\-signer.md
+.HP
+\fB\-spendzeroconfchange\fR
+.IP
+Spend unconfirmed change when sending transactions (default: 1)
+.HP
+\fB\-txconfirmtarget=\fR<n>
+.IP
+If paytxfee is not set, include enough fee so transactions begin
+confirmation on average within n blocks (default: 6)
+.HP
+\fB\-wallet=\fR<path>
+.IP
+Specify wallet path to load at startup. Can be used multiple times to
+load multiple wallets. Path is to a directory containing wallet
+data and log files. If the path is not absolute, it is
+interpreted relative to <walletdir>. This only loads existing
+wallets and does not create new ones. For backwards compatibility
+this also accepts names of existing top\-level data files in
+<walletdir>.
+.HP
+\fB\-walletbroadcast\fR
+.IP
+Make the wallet broadcast transactions (default: 1)
+.HP
+\fB\-walletdir=\fR<dir>
+.IP
+Specify directory to hold wallets (default: <datadir>/wallets if it
+exists, otherwise <datadir>)
+.HP
+\fB\-walletnotify=\fR<cmd>
+.IP
+Execute command when a wallet transaction changes. %s in cmd is replaced
+by TxID, %w is replaced by wallet name, %b is replaced by the
+hash of the block including the transaction (set to 'unconfirmed'
+if the transaction is not included) and %h is replaced by the
+block height (\fB\-1\fR if not included). %w is not currently
+implemented on windows. On systems where %w is supported, it
+should NOT be quoted because this would break shell escaping used
+to invoke the command.
+.HP
+\fB\-walletrbf\fR
+.IP
+Send transactions with full\-RBF opt\-in enabled (RPC only, default: 0)
+.PP
+ZeroMQ notification options:
+.HP
+\fB\-zmqpubhashblock=\fR<address>
+.IP
+Enable publish hash block in <address>
+.HP
+\fB\-zmqpubhashblockhwm=\fR<n>
+.IP
+Set publish hash block outbound message high water mark (default: 1000)
+.HP
+\fB\-zmqpubhashtx=\fR<address>
+.IP
+Enable publish hash transaction in <address>
+.HP
+\fB\-zmqpubhashtxhwm=\fR<n>
+.IP
+Set publish hash transaction outbound message high water mark (default:
+1000)
+.HP
+\fB\-zmqpubrawblock=\fR<address>
+.IP
+Enable publish raw block in <address>
+.HP
+\fB\-zmqpubrawblockhwm=\fR<n>
+.IP
+Set publish raw block outbound message high water mark (default: 1000)
+.HP
+\fB\-zmqpubrawtx=\fR<address>
+.IP
+Enable publish raw transaction in <address>
+.HP
+\fB\-zmqpubrawtxhwm=\fR<n>
+.IP
+Set publish raw transaction outbound message high water mark (default:
+1000)
+.HP
+\fB\-zmqpubsequence=\fR<address>
+.IP
+Enable publish hash block and tx sequence in <address>
+.HP
+\fB\-zmqpubsequencehwm=\fR<n>
+.IP
+Set publish hash sequence message high water mark (default: 1000)
+.PP
+Debugging/Testing options:
+.HP
+\fB\-debug=\fR<category>
+.IP
+Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
+optional). If <category> is not supplied or if <category> = 1,
+output all debugging information. <category> can be: addrman,
+bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
+ipc, leveldb, libevent, lock, mempool, mempoolrej, net, proxy,
+prune, qt, rand, reindex, rpc, selectcoins, tor, util,
+validation, walletdb, zmq. This option can be specified multiple
+times to output multiple categories.
+.HP
+\fB\-debugexclude=\fR<category>
+.IP
+Exclude debugging information for a category. Can be used in conjunction
+with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except the
+specified category. This option can be specified multiple times
+to exclude multiple categories.
+.HP
+\fB\-help\-debug\fR
+.IP
+Print help message with debugging options and exit
+.HP
+\fB\-logips\fR
+.IP
+Include IP addresses in debug output (default: 0)
+.HP
+\fB\-logsourcelocations\fR
+.IP
+Prepend debug output with name of the originating source location
+(source file, line number and function name) (default: 0)
+.HP
+\fB\-logthreadnames\fR
+.IP
+Prepend debug output with name of the originating thread (only available
+on platforms supporting thread_local) (default: 0)
+.HP
+\fB\-logtimestamps\fR
+.IP
+Prepend debug output with timestamp (default: 1)
+.HP
+\fB\-maxtxfee=\fR<amt>
+.IP
+Maximum total fees (in BTC) to use in a single wallet transaction;
+setting this too low may abort large transactions (default: 0.10)
+.HP
+\fB\-printtoconsole\fR
+.IP
+Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
+logging to file, set \fB\-nodebuglogfile\fR)
+.HP
+\fB\-shrinkdebugfile\fR
+.IP
+Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
+.HP
+\fB\-uacomment=\fR<cmt>
+.IP
+Append comment to the user agent string
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: main). Allowed values: main, test,
+signet, regtest
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Node relay options:
+.HP
+\fB\-bytespersigop\fR
+.IP
+Equivalent bytes per sigop in transactions for relay and mining
+(default: 20)
+.HP
+\fB\-datacarrier\fR
+.IP
+Relay and mine data carrier transactions (default: 1)
+.HP
+\fB\-datacarriersize\fR
+.IP
+Maximum size of data in data carrier transactions we relay and mine
+(default: 83)
+.HP
+\fB\-minrelaytxfee=\fR<amt>
+.IP
+Fees (in BTC/kvB) smaller than this are considered zero fee for
+relaying, mining and transaction creation (default: 0.00001)
+.HP
+\fB\-whitelistforcerelay\fR
+.IP
+Add 'forcerelay' permission to whitelisted inbound peers with default
+permissions. This will relay transactions even if the
+transactions were already in the mempool. (default: 0)
+.HP
+\fB\-whitelistrelay\fR
+.IP
+Add 'relay' permission to whitelisted inbound peers with default
+permissions. This will accept relayed transactions even when not
+relaying transactions (default: 1)
+.PP
+Block creation options:
+.HP
+\fB\-blockmaxweight=\fR<n>
+.IP
+Set maximum BIP141 block weight (default: 3996000)
+.HP
+\fB\-blockmintxfee=\fR<amt>
+.IP
+Set lowest fee rate (in BTC/kvB) for transactions to be included in
+block creation. (default: 0.00001)
+.PP
+RPC server options:
+.HP
+\fB\-rest\fR
+.IP
+Accept public REST requests (default: 0)
+.HP
+\fB\-rpcallowip=\fR<ip>
+.IP
+Allow JSON\-RPC connections from specified source. Valid for <ip> are a
+single IP (e.g. 1.2.3.4), a network/netmask (e.g.
+1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
+option can be specified multiple times
+.HP
+\fB\-rpcauth=\fR<userpw>
+.IP
+Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
+field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
+canonical python script is included in share/rpcauth. The client
+then connects normally using the
+rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
+option can be specified multiple times
+.HP
+\fB\-rpcbind=\fR<addr>[:port]
+.IP
+Bind to given address to listen for JSON\-RPC connections. Do not expose
+the RPC server to untrusted networks such as the public internet!
+This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
+optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
+IPv6. This option can be specified multiple times (default:
+127.0.0.1 and ::1 i.e., localhost)
+.HP
+\fB\-rpccookiefile=\fR<loc>
+.IP
+Location of the auth cookie. Relative paths will be prefixed by a
+net\-specific datadir location. (default: data dir)
+.HP
+\fB\-rpcpassword=\fR<pw>
+.IP
+Password for JSON\-RPC connections
+.HP
+\fB\-rpcport=\fR<port>
+.IP
+Listen for JSON\-RPC connections on <port> (default: 8332, testnet:
+18332, signet: 38332, regtest: 18443)
+.HP
+\fB\-rpcserialversion\fR
+.IP
+Sets the serialization of raw transaction or block hex returned in
+non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
+.HP
+\fB\-rpcthreads=\fR<n>
+.IP
+Set the number of threads to service RPC calls (default: 4)
+.HP
+\fB\-rpcuser=\fR<user>
+.IP
+Username for JSON\-RPC connections
+.HP
+\fB\-rpcwhitelist=\fR<whitelist>
+.IP
+Set a whitelist to filter incoming RPC calls for a specific user. The
+field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
+2>,...,<rpc n>. If multiple whitelists are set for a given user,
+they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
+for information on default whitelist behavior.
+.HP
+\fB\-rpcwhitelistdefault\fR
+.IP
+Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
+is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
+if all rpc users are subject to empty\-unless\-otherwise\-specified
+whitelists. If rpcwhitelistdefault is set to 1 and no
+\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
+subject to empty whitelists.
+.HP
+\fB\-server\fR
+.IP
+Accept command line and JSON\-RPC commands
+.PP
+UI Options:
+.HP
+\fB\-choosedatadir\fR
+.IP
+Choose data directory on startup (default: 0)
+.HP
+\fB\-lang=\fR<lang>
+.IP
+Set language, for example "de_DE" (default: system locale)
+.HP
+\fB\-min\fR
+.IP
+Start minimized
+.HP
+\fB\-resetguisettings\fR
+.IP
+Reset all settings changed in the GUI
+.HP
+\fB\-splash\fR
+.IP
+Show splash screen on startup (default: 1)
+.SH COPYRIGHT
+Copyright (C) 2009-2022 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Bitcoin Core useful. Visit
+<https://bitcoincore.org/> for further information about the software.
+The source code is available from <https://github.com/bitcoin/bitcoin>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index 776bb462342..6c17b64a9e7 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,5 +1,145 @@
-.TH BITCOIN-TX "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
+.TH BITCOIN-TX "1" "March 2022" "bitcoin-tx v23.0.0rc1" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx
+bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc1
+.SH SYNOPSIS
+.B bitcoin-tx
+[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
+.br
+.B bitcoin-tx
+[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
+.SH DESCRIPTION
+Bitcoin Core bitcoin\-tx utility version v23.0.0rc1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-create\fR
+.IP
+Create new, empty TX.
+.HP
+\fB\-json\fR
+.IP
+Select JSON output
+.HP
+\fB\-txid\fR
+.IP
+Output only the hex\-encoded transaction id of the resultant transaction.
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Debugging/Testing options:
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: main). Allowed values: main, test,
+signet, regtest
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Commands:
+.IP
+delin=N
+.IP
+Delete input N from TX
+.IP
+delout=N
+.IP
+Delete output N from TX
+.IP
+in=TXID:VOUT(:SEQUENCE_NUMBER)
+.IP
+Add input to TX
+.IP
+locktime=N
+.IP
+Set TX lock time to N
+.IP
+nversion=N
+.IP
+Set TX version to N
+.IP
+outaddr=VALUE:ADDRESS
+.IP
+Add address\-based output to TX
+.IP
+outdata=[VALUE:]DATA
+.IP
+Add data\-based output to TX
+.IP
+outmultisig=VALUE:REQUIRED:PUBKEYS:PUBKEY1:PUBKEY2:....[:FLAGS]
+.IP
+Add Pay To n\-of\-m Multi\-sig output to TX. n = REQUIRED, m = PUBKEYS.
+Optionally add the "W" flag to produce a
+pay\-to\-witness\-script\-hash output. Optionally add the "S" flag to
+wrap the output in a pay\-to\-script\-hash.
+.IP
+outpubkey=VALUE:PUBKEY[:FLAGS]
+.IP
+Add pay\-to\-pubkey output to TX. Optionally add the "W" flag to produce a
+pay\-to\-witness\-pubkey\-hash output. Optionally add the "S" flag to
+wrap the output in a pay\-to\-script\-hash.
+.IP
+outscript=VALUE:SCRIPT[:FLAGS]
+.IP
+Add raw script output to TX. Optionally add the "W" flag to produce a
+pay\-to\-witness\-script\-hash output. Optionally add the "S" flag to
+wrap the output in a pay\-to\-script\-hash.
+.IP
+replaceable(=N)
+.IP
+Set RBF opt\-in sequence number for input N (if not provided, opt\-in all
+available inputs)
+.IP
+sign=SIGHASH\-FLAGS
+.IP
+Add zero or more signatures to transaction. This command requires JSON
+registers:prevtxs=JSON object, privatekeys=JSON object. See
+signrawtransactionwithkey docs for format of sighash flags, JSON
+objects.
+.PP
+Register Commands:
+.IP
+load=NAME:FILENAME
+.IP
+Load JSON file FILENAME into register NAME
+.IP
+set=NAME:JSON\-STRING
+.IP
+Set register NAME to given JSON\-STRING
+.SH COPYRIGHT
+Copyright (C) 2009-2022 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Bitcoin Core useful. Visit
+<https://bitcoincore.org/> for further information about the software.
+The source code is available from <https://github.com/bitcoin/bitcoin>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index 5c733c6e21d..6b78b045a3c 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,5 +1,65 @@
-.TH BITCOIN-UTIL "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
+.TH BITCOIN-UTIL "1" "March 2022" "bitcoin-util v23.0.0rc1" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util
+bitcoin-util \- manual page for bitcoin-util v23.0.0rc1
+.SH SYNOPSIS
+.B bitcoin-util
+[\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
+.SH DESCRIPTION
+Bitcoin Core bitcoin\-util utility version v23.0.0rc1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Debugging/Testing options:
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: main). Allowed values: main, test,
+signet, regtest
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Commands:
+.IP
+grind
+.IP
+Perform proof of work on hex header string
+.SH COPYRIGHT
+Copyright (C) 2009-2022 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Bitcoin Core useful. Visit
+<https://bitcoincore.org/> for further information about the software.
+The source code is available from <https://github.com/bitcoin/bitcoin>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 2da43dec663..4009890aefb 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,5 +1,121 @@
-.TH BITCOIN-WALLET "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
+.TH BITCOIN-WALLET "1" "March 2022" "bitcoin-wallet v23.0.0rc1" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet
+bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc1
+.SH DESCRIPTION
+Bitcoin Core bitcoin\-wallet version v23.0.0rc1
+.PP
+bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
+By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
+To change the target wallet, use the \fB\-datadir\fR, \fB\-wallet\fR and \fB\-regtest\fR/\-signet/\-testnet arguments.
+.SS "Usage:"
+.IP
+bitcoin\-wallet [options] <command>
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-datadir=\fR<dir>
+.IP
+Specify data directory
+.HP
+\fB\-descriptors\fR
+.IP
+Create descriptors wallet. Only for 'create'
+.HP
+\fB\-dumpfile=\fR<file name>
+.IP
+When used with 'dump', writes out the records to this file. When used
+with 'createfromdump', loads the records into a new wallet.
+.HP
+\fB\-format=\fR<format>
+.IP
+The format of the wallet file to create. Either "bdb" or "sqlite". Only
+used with 'createfromdump'
+.HP
+\fB\-legacy\fR
+.IP
+Create legacy wallet. Only for 'create'
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.HP
+\fB\-wallet=\fR<wallet\-name>
+.IP
+Specify wallet name
+.PP
+Debugging/Testing options:
+.HP
+\fB\-debug=\fR<category>
+.IP
+Output debugging information (default: 0).
+.HP
+\fB\-printtoconsole\fR
+.IP
+Send trace/debug info to console (default: 1 when no \fB\-debug\fR is true, 0
+otherwise).
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: main). Allowed values: main, test,
+signet, regtest
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Commands:
+.IP
+create
+.IP
+Create new wallet file
+.IP
+createfromdump
+.IP
+Create new wallet file from dumped records
+.IP
+dump
+.IP
+Print out all of the wallet key\-value records
+.IP
+info
+.IP
+Get wallet info
+.IP
+salvage
+.IP
+Attempt to recover private keys from a corrupt wallet. Warning:
+\&'salvage' is experimental.
+.SH COPYRIGHT
+Copyright (C) 2009-2022 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Bitcoin Core useful. Visit
+<https://bitcoincore.org/> for further information about the software.
+The source code is available from <https://github.com/bitcoin/bitcoin>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index 2c88f745205..18c4a65c6a2 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,5 +1,788 @@
-.TH BITCOIND "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
+.TH BITCOIND "1" "March 2022" "bitcoind v23.0.0rc1" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind
+bitcoind \- manual page for bitcoind v23.0.0rc1
+.SH SYNOPSIS
+.B bitcoind
+[\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
+.SH DESCRIPTION
+Bitcoin Core version v23.0.0rc1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-alertnotify=\fR<cmd>
+.IP
+Execute command when an alert is raised (%s in cmd is replaced by
+message)
+.HP
+\fB\-assumevalid=\fR<hex>
+.IP
+If this block is in the chain assume that it and its ancestors are valid
+and potentially skip their script verification (0 to verify all,
+default:
+000000000000000000052d314a259755ca65944e68df6b12a067ea8f1f5a7091,
+testnet:
+00000000000163cfb1f97c4e4098a3692c8053ad9cab5ad9c86b338b5c00b8b7,
+signet:
+00000112852484b5fe3451572368f93cfd2723279af3464e478aee35115256ef)
+.HP
+\fB\-blockfilterindex=\fR<type>
+.IP
+Maintain an index of compact filters by block (default: 0, values:
+basic). If <type> is not supplied or if <type> = 1, indexes for
+all known types are enabled.
+.HP
+\fB\-blocknotify=\fR<cmd>
+.IP
+Execute command when the best block changes (%s in cmd is replaced by
+block hash)
+.HP
+\fB\-blockreconstructionextratxn=\fR<n>
+.IP
+Extra transactions to keep in memory for compact block reconstructions
+(default: 100)
+.HP
+\fB\-blocksdir=\fR<dir>
+.IP
+Specify directory to hold blocks subdirectory for *.dat files (default:
+<datadir>)
+.HP
+\fB\-blocksonly\fR
+.IP
+Whether to reject transactions from network peers. Automatic broadcast
+and rebroadcast of any transactions from inbound peers is
+disabled, unless the peer has the 'forcerelay' permission. RPC
+transactions are not affected. (default: 0)
+.HP
+\fB\-coinstatsindex\fR
+.IP
+Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
+.HP
+\fB\-conf=\fR<file>
+.IP
+Specify path to read\-only configuration file. Relative paths will be
+prefixed by datadir location. (default: bitcoin.conf)
+.HP
+\fB\-daemon\fR
+.IP
+Run in the background as a daemon and accept commands (default: 0)
+.HP
+\fB\-daemonwait\fR
+.IP
+Wait for initialization to be finished before exiting. This implies
+\fB\-daemon\fR (default: 0)
+.HP
+\fB\-datadir=\fR<dir>
+.IP
+Specify data directory
+.HP
+\fB\-dbcache=\fR<n>
+.IP
+Maximum database cache size <n> MiB (4 to 16384, default: 450). In
+addition, unused mempool memory is shared for this cache (see
+\fB\-maxmempool\fR).
+.HP
+\fB\-debuglogfile=\fR<file>
+.IP
+Specify location of debug log file. Relative paths will be prefixed by a
+net\-specific datadir location. (\fB\-nodebuglogfile\fR to disable;
+default: debug.log)
+.HP
+\fB\-includeconf=\fR<file>
+.IP
+Specify additional configuration file, relative to the \fB\-datadir\fR path
+(only useable from configuration file, not command line)
+.HP
+\fB\-loadblock=\fR<file>
+.IP
+Imports blocks from external file on startup
+.HP
+\fB\-maxmempool=\fR<n>
+.IP
+Keep the transaction memory pool below <n> megabytes (default: 300)
+.HP
+\fB\-maxorphantx=\fR<n>
+.IP
+Keep at most <n> unconnectable transactions in memory (default: 100)
+.HP
+\fB\-mempoolexpiry=\fR<n>
+.IP
+Do not keep transactions in the mempool longer than <n> hours (default:
+336)
+.HP
+\fB\-par=\fR<n>
+.IP
+Set the number of script verification threads (\fB\-6\fR to 15, 0 = auto, <0 =
+leave that many cores free, default: 0)
+.HP
+\fB\-persistmempool\fR
+.IP
+Whether to save the mempool on shutdown and load on restart (default: 1)
+.HP
+\fB\-pid=\fR<file>
+.IP
+Specify pid file. Relative paths will be prefixed by a net\-specific
+datadir location. (default: bitcoind.pid)
+.HP
+\fB\-prune=\fR<n>
+.IP
+Reduce storage requirements by enabling pruning (deleting) of old
+blocks. This allows the pruneblockchain RPC to be called to
+delete specific blocks, and enables automatic pruning of old
+blocks if a target size in MiB is provided. This mode is
+incompatible with \fB\-txindex\fR and \fB\-coinstatsindex\fR. Warning:
+Reverting this setting requires re\-downloading the entire
+blockchain. (default: 0 = disable pruning blocks, 1 = allow
+manual pruning via RPC, >=550 = automatically prune block files
+to stay under the specified target size in MiB)
+.HP
+\fB\-reindex\fR
+.IP
+Rebuild chain state and block index from the blk*.dat files on disk
+.HP
+\fB\-reindex\-chainstate\fR
+.IP
+Rebuild chain state from the currently indexed blocks. When in pruning
+mode or if blocks on disk might be corrupted, use full \fB\-reindex\fR
+instead.
+.HP
+\fB\-sandbox=\fR<mode>
+.IP
+Use the experimental syscall sandbox in the specified mode
+(\fB\-sandbox\fR=\fI\,log\-and\-abort\/\fR or \fB\-sandbox\fR=\fI\,abort\/\fR). Allow only expected
+syscalls to be used by bitcoind. Note that this is an
+experimental new feature that may cause bitcoind to exit or crash
+unexpectedly: use with caution. In the "log\-and\-abort" mode the
+invocation of an unexpected syscall results in a debug handler
+being invoked which will log the incident and terminate the
+program (without executing the unexpected syscall). In the
+"abort" mode the invocation of an unexpected syscall results in
+the entire process being killed immediately by the kernel without
+executing the unexpected syscall.
+.HP
+\fB\-settings=\fR<file>
+.IP
+Specify path to dynamic settings data file. Can be disabled with
+\fB\-nosettings\fR. File is written at runtime and not meant to be
+edited by users (use bitcoin.conf instead for custom settings).
+Relative paths will be prefixed by datadir location. (default:
+settings.json)
+.HP
+\fB\-startupnotify=\fR<cmd>
+.IP
+Execute command on startup.
+.HP
+\fB\-sysperms\fR
+.IP
+Create new files with system default permissions, instead of umask 077
+(only effective with disabled wallet functionality)
+.HP
+\fB\-txindex\fR
+.IP
+Maintain a full transaction index, used by the getrawtransaction rpc
+call (default: 0)
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Connection options:
+.HP
+\fB\-addnode=\fR<ip>
+.IP
+Add a node to connect to and attempt to keep the connection open (see
+the addnode RPC help for more info). This option can be specified
+multiple times to add multiple nodes; connections are limited to
+8 at a time and are counted separately from the \fB\-maxconnections\fR
+limit.
+.HP
+\fB\-asmap=\fR<file>
+.IP
+Specify asn mapping used for bucketing of the peers (default:
+ip_asn.map). Relative paths will be prefixed by the net\-specific
+datadir location.
+.HP
+\fB\-bantime=\fR<n>
+.IP
+Default duration (in seconds) of manually configured bans (default:
+86400)
+.HP
+\fB\-bind=\fR<addr>[:<port>][=onion]
+.IP
+Bind to given address and always listen on it (default: 0.0.0.0). Use
+[host]:port notation for IPv6. Append =onion to tag any incoming
+connections to that address and port as incoming Tor connections
+(default: 127.0.0.1:8334=onion, testnet: 127.0.0.1:18334=onion,
+signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
+.HP
+\fB\-cjdnsreachable\fR
+.IP
+If set then this host is configured for CJDNS (connecting to fc00::/8
+addresses would lead us to the CJDNS network) (default: 0)
+.HP
+\fB\-connect=\fR<ip>
+.IP
+Connect only to the specified node; \fB\-noconnect\fR disables automatic
+connections (the rules for this peer are the same as for
+\fB\-addnode\fR). This option can be specified multiple times to connect
+to multiple nodes.
+.HP
+\fB\-discover\fR
+.IP
+Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
+or \fB\-proxy\fR)
+.HP
+\fB\-dns\fR
+.IP
+Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
+.HP
+\fB\-dnsseed\fR
+.IP
+Query for peer addresses via DNS lookup, if low on addresses (default: 1
+unless \fB\-connect\fR used)
+.HP
+\fB\-externalip=\fR<ip>
+.IP
+Specify your own public address
+.HP
+\fB\-fixedseeds\fR
+.IP
+Allow fixed seeds if DNS seeds don't provide peers (default: 1)
+.HP
+\fB\-forcednsseed\fR
+.IP
+Always query for peer addresses via DNS lookup (default: 0)
+.HP
+\fB\-i2pacceptincoming\fR
+.IP
+If set and \fB\-i2psam\fR is also set then incoming I2P connections are
+accepted via the SAM proxy. If this is not set but \fB\-i2psam\fR is set
+then only outgoing connections will be made to the I2P network.
+Ignored if \fB\-i2psam\fR is not set. Listening for incoming I2P
+connections is done through the SAM proxy, not by binding to a
+local address and port (default: 1)
+.HP
+\fB\-i2psam=\fR<ip:port>
+.IP
+I2P SAM proxy to reach I2P peers and accept I2P connections (default:
+none)
+.HP
+\fB\-listen\fR
+.IP
+Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
+.HP
+\fB\-listenonion\fR
+.IP
+Automatically create Tor onion service (default: 1)
+.HP
+\fB\-maxconnections=\fR<n>
+.IP
+Maintain at most <n> connections to peers (default: 125). This limit
+does not apply to connections manually added via \fB\-addnode\fR or the
+addnode RPC, which have a separate limit of 8.
+.HP
+\fB\-maxreceivebuffer=\fR<n>
+.IP
+Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
+.HP
+\fB\-maxsendbuffer=\fR<n>
+.IP
+Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
+.HP
+\fB\-maxtimeadjustment\fR
+.IP
+Maximum allowed median peer time offset adjustment. Local perspective of
+time may be influenced by peers forward or backward by this
+amount. (default: 4200 seconds)
+.HP
+\fB\-maxuploadtarget=\fR<n>
+.IP
+Tries to keep outbound traffic under the given target per 24h. Limit
+does not apply to peers with 'download' permission or blocks
+created within past week. 0 = no limit (default: 0M). Optional
+suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
+base while uppercase is 1024 base
+.HP
+\fB\-natpmp\fR
+.IP
+Use NAT\-PMP to map the listening port (default: 0)
+.HP
+\fB\-networkactive\fR
+.IP
+Enable all P2P network activity (default: 1). Can be changed by the
+setnetworkactive RPC command
+.HP
+\fB\-onion=\fR<ip:port>
+.IP
+Use separate SOCKS5 proxy to reach peers via Tor onion services, set
+\fB\-noonion\fR to disable (default: \fB\-proxy\fR)
+.HP
+\fB\-onlynet=\fR<net>
+.IP
+Make automatic outgoing connections only through network <net> (ipv4,
+ipv6, onion, i2p, cjdns). Incoming connections are not affected
+by this option. This option can be specified multiple times to
+allow multiple networks.
+.HP
+\fB\-peerblockfilters\fR
+.IP
+Serve compact block filters to peers per BIP 157 (default: 0)
+.HP
+\fB\-peerbloomfilters\fR
+.IP
+Support filtering of blocks and transaction with bloom filters (default:
+0)
+.HP
+\fB\-permitbaremultisig\fR
+.IP
+Relay non\-P2SH multisig (default: 1)
+.HP
+\fB\-port=\fR<port>
+.IP
+Listen for connections on <port>. Nodes not using the default ports
+(default: 8333, testnet: 18333, signet: 38333, regtest: 18444)
+are unlikely to get incoming connections. Not relevant for I2P
+(see doc/i2p.md).
+.HP
+\fB\-proxy=\fR<ip:port>
+.IP
+Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
+disabled)
+.HP
+\fB\-proxyrandomize\fR
+.IP
+Randomize credentials for every proxy connection. This enables Tor
+stream isolation (default: 1)
+.HP
+\fB\-seednode=\fR<ip>
+.IP
+Connect to a node to retrieve peer addresses, and disconnect. This
+option can be specified multiple times to connect to multiple
+nodes.
+.HP
+\fB\-timeout=\fR<n>
+.IP
+Specify socket connection timeout in milliseconds. If an initial attempt
+to connect is unsuccessful after this amount of time, drop it
+(minimum: 1, default: 5000)
+.HP
+\fB\-torcontrol=\fR<ip>:<port>
+.IP
+Tor control port to use if onion listening enabled (default:
+127.0.0.1:9051)
+.HP
+\fB\-torpassword=\fR<pass>
+.IP
+Tor control port password (default: empty)
+.HP
+\fB\-upnp\fR
+.IP
+Use UPnP to map the listening port (default: 0)
+.HP
+\fB\-whitebind=\fR<[permissions@]addr>
+.IP
+Bind to the given address and add permission flags to the peers
+connecting to it. Use [host]:port notation for IPv6. Allowed
+permissions: bloomfilter (allow requesting BIP37 filtered blocks
+and transactions), noban (do not ban for misbehavior; implies
+download), forcerelay (relay transactions that are already in the
+mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
+and unlimited transaction announcements), mempool (allow
+requesting BIP35 mempool contents), download (allow getheaders
+during IBD, no disconnect after maxuploadtarget limit), addr
+(responses to GETADDR avoid hitting the cache and contain random
+records with the most up\-to\-date info). Specify multiple
+permissions separated by commas (default:
+download,noban,mempool,relay). Can be specified multiple times.
+.HP
+\fB\-whitelist=\fR<[permissions@]IP address or network>
+.IP
+Add permission flags to the peers connecting from the given IP address
+(e.g. 1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses
+the same permissions as \fB\-whitebind\fR. Can be specified multiple
+times.
+.PP
+Wallet options:
+.HP
+\fB\-addresstype\fR
+.IP
+What type of addresses to use ("legacy", "p2sh\-segwit", "bech32", or
+"bech32m", default: "bech32")
+.HP
+\fB\-avoidpartialspends\fR
+.IP
+Group outputs by address, selecting many (possibly all) or none, instead
+of selecting on a per\-output basis. Privacy is improved as
+addresses are mostly swept with fewer transactions and outputs
+are aggregated in clean change addresses. It may result in higher
+fees due to less optimal coin selection caused by this added
+limitation and possibly a larger\-than\-necessary number of inputs
+being used. Always enabled for wallets with "avoid_reuse"
+enabled, otherwise default: 0.
+.HP
+\fB\-changetype\fR
+.IP
+What type of change to use ("legacy", "p2sh\-segwit", "bech32", or
+"bech32m"). Default is "legacy" when \fB\-addresstype\fR=\fI\,legacy\/\fR, else it
+is an implementation detail.
+.HP
+\fB\-consolidatefeerate=\fR<amt>
+.IP
+The maximum feerate (in BTC/kvB) at which transaction building may use
+more inputs than strictly necessary so that the wallet's UTXO
+pool can be reduced (default: 0.0001).
+.HP
+\fB\-disablewallet\fR
+.IP
+Do not load the wallet and disable wallet RPC calls
+.HP
+\fB\-discardfee=\fR<amt>
+.IP
+The fee rate (in BTC/kvB) that indicates your tolerance for discarding
+change by adding it to the fee (default: 0.0001). Note: An output
+is discarded if it is dust at this rate, but we will always
+discard up to the dust relay fee and a discard fee above that is
+limited by the fee estimate for the longest target
+.HP
+\fB\-fallbackfee=\fR<amt>
+.IP
+A fee rate (in BTC/kvB) that will be used when fee estimation has
+insufficient data. 0 to entirely disable the fallbackfee feature.
+(default: 0.00)
+.HP
+\fB\-keypool=\fR<n>
+.IP
+Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
+increase the risk of losing funds when restoring from an old
+backup, if none of the addresses in the original keypool have
+been used.
+.HP
+\fB\-maxapsfee=\fR<n>
+.IP
+Spend up to this amount in additional (absolute) fees (in BTC) if it
+allows the use of partial spend avoidance (default: 0.00)
+.HP
+\fB\-mintxfee=\fR<amt>
+.IP
+Fee rates (in BTC/kvB) smaller than this are considered zero fee for
+transaction creation (default: 0.00001)
+.HP
+\fB\-paytxfee=\fR<amt>
+.IP
+Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
+.HP
+\fB\-signer=\fR<cmd>
+.IP
+External signing tool, see doc/external\-signer.md
+.HP
+\fB\-spendzeroconfchange\fR
+.IP
+Spend unconfirmed change when sending transactions (default: 1)
+.HP
+\fB\-txconfirmtarget=\fR<n>
+.IP
+If paytxfee is not set, include enough fee so transactions begin
+confirmation on average within n blocks (default: 6)
+.HP
+\fB\-wallet=\fR<path>
+.IP
+Specify wallet path to load at startup. Can be used multiple times to
+load multiple wallets. Path is to a directory containing wallet
+data and log files. If the path is not absolute, it is
+interpreted relative to <walletdir>. This only loads existing
+wallets and does not create new ones. For backwards compatibility
+this also accepts names of existing top\-level data files in
+<walletdir>.
+.HP
+\fB\-walletbroadcast\fR
+.IP
+Make the wallet broadcast transactions (default: 1)
+.HP
+\fB\-walletdir=\fR<dir>
+.IP
+Specify directory to hold wallets (default: <datadir>/wallets if it
+exists, otherwise <datadir>)
+.HP
+\fB\-walletnotify=\fR<cmd>
+.IP
+Execute command when a wallet transaction changes. %s in cmd is replaced
+by TxID, %w is replaced by wallet name, %b is replaced by the
+hash of the block including the transaction (set to 'unconfirmed'
+if the transaction is not included) and %h is replaced by the
+block height (\fB\-1\fR if not included). %w is not currently
+implemented on windows. On systems where %w is supported, it
+should NOT be quoted because this would break shell escaping used
+to invoke the command.
+.HP
+\fB\-walletrbf\fR
+.IP
+Send transactions with full\-RBF opt\-in enabled (RPC only, default: 0)
+.PP
+ZeroMQ notification options:
+.HP
+\fB\-zmqpubhashblock=\fR<address>
+.IP
+Enable publish hash block in <address>
+.HP
+\fB\-zmqpubhashblockhwm=\fR<n>
+.IP
+Set publish hash block outbound message high water mark (default: 1000)
+.HP
+\fB\-zmqpubhashtx=\fR<address>
+.IP
+Enable publish hash transaction in <address>
+.HP
+\fB\-zmqpubhashtxhwm=\fR<n>
+.IP
+Set publish hash transaction outbound message high water mark (default:
+1000)
+.HP
+\fB\-zmqpubrawblock=\fR<address>
+.IP
+Enable publish raw block in <address>
+.HP
+\fB\-zmqpubrawblockhwm=\fR<n>
+.IP
+Set publish raw block outbound message high water mark (default: 1000)
+.HP
+\fB\-zmqpubrawtx=\fR<address>
+.IP
+Enable publish raw transaction in <address>
+.HP
+\fB\-zmqpubrawtxhwm=\fR<n>
+.IP
+Set publish raw transaction outbound message high water mark (default:
+1000)
+.HP
+\fB\-zmqpubsequence=\fR<address>
+.IP
+Enable publish hash block and tx sequence in <address>
+.HP
+\fB\-zmqpubsequencehwm=\fR<n>
+.IP
+Set publish hash sequence message high water mark (default: 1000)
+.PP
+Debugging/Testing options:
+.HP
+\fB\-debug=\fR<category>
+.IP
+Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
+optional). If <category> is not supplied or if <category> = 1,
+output all debugging information. <category> can be: addrman,
+bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
+ipc, leveldb, libevent, lock, mempool, mempoolrej, net, proxy,
+prune, qt, rand, reindex, rpc, selectcoins, tor, util,
+validation, walletdb, zmq. This option can be specified multiple
+times to output multiple categories.
+.HP
+\fB\-debugexclude=\fR<category>
+.IP
+Exclude debugging information for a category. Can be used in conjunction
+with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except the
+specified category. This option can be specified multiple times
+to exclude multiple categories.
+.HP
+\fB\-help\-debug\fR
+.IP
+Print help message with debugging options and exit
+.HP
+\fB\-logips\fR
+.IP
+Include IP addresses in debug output (default: 0)
+.HP
+\fB\-logsourcelocations\fR
+.IP
+Prepend debug output with name of the originating source location
+(source file, line number and function name) (default: 0)
+.HP
+\fB\-logthreadnames\fR
+.IP
+Prepend debug output with name of the originating thread (only available
+on platforms supporting thread_local) (default: 0)
+.HP
+\fB\-logtimestamps\fR
+.IP
+Prepend debug output with timestamp (default: 1)
+.HP
+\fB\-maxtxfee=\fR<amt>
+.IP
+Maximum total fees (in BTC) to use in a single wallet transaction;
+setting this too low may abort large transactions (default: 0.10)
+.HP
+\fB\-printtoconsole\fR
+.IP
+Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
+logging to file, set \fB\-nodebuglogfile\fR)
+.HP
+\fB\-shrinkdebugfile\fR
+.IP
+Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
+.HP
+\fB\-uacomment=\fR<cmt>
+.IP
+Append comment to the user agent string
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: main). Allowed values: main, test,
+signet, regtest
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Node relay options:
+.HP
+\fB\-bytespersigop\fR
+.IP
+Equivalent bytes per sigop in transactions for relay and mining
+(default: 20)
+.HP
+\fB\-datacarrier\fR
+.IP
+Relay and mine data carrier transactions (default: 1)
+.HP
+\fB\-datacarriersize\fR
+.IP
+Maximum size of data in data carrier transactions we relay and mine
+(default: 83)
+.HP
+\fB\-minrelaytxfee=\fR<amt>
+.IP
+Fees (in BTC/kvB) smaller than this are considered zero fee for
+relaying, mining and transaction creation (default: 0.00001)
+.HP
+\fB\-whitelistforcerelay\fR
+.IP
+Add 'forcerelay' permission to whitelisted inbound peers with default
+permissions. This will relay transactions even if the
+transactions were already in the mempool. (default: 0)
+.HP
+\fB\-whitelistrelay\fR
+.IP
+Add 'relay' permission to whitelisted inbound peers with default
+permissions. This will accept relayed transactions even when not
+relaying transactions (default: 1)
+.PP
+Block creation options:
+.HP
+\fB\-blockmaxweight=\fR<n>
+.IP
+Set maximum BIP141 block weight (default: 3996000)
+.HP
+\fB\-blockmintxfee=\fR<amt>
+.IP
+Set lowest fee rate (in BTC/kvB) for transactions to be included in
+block creation. (default: 0.00001)
+.PP
+RPC server options:
+.HP
+\fB\-rest\fR
+.IP
+Accept public REST requests (default: 0)
+.HP
+\fB\-rpcallowip=\fR<ip>
+.IP
+Allow JSON\-RPC connections from specified source. Valid for <ip> are a
+single IP (e.g. 1.2.3.4), a network/netmask (e.g.
+1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
+option can be specified multiple times
+.HP
+\fB\-rpcauth=\fR<userpw>
+.IP
+Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
+field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
+canonical python script is included in share/rpcauth. The client
+then connects normally using the
+rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
+option can be specified multiple times
+.HP
+\fB\-rpcbind=\fR<addr>[:port]
+.IP
+Bind to given address to listen for JSON\-RPC connections. Do not expose
+the RPC server to untrusted networks such as the public internet!
+This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
+optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
+IPv6. This option can be specified multiple times (default:
+127.0.0.1 and ::1 i.e., localhost)
+.HP
+\fB\-rpccookiefile=\fR<loc>
+.IP
+Location of the auth cookie. Relative paths will be prefixed by a
+net\-specific datadir location. (default: data dir)
+.HP
+\fB\-rpcpassword=\fR<pw>
+.IP
+Password for JSON\-RPC connections
+.HP
+\fB\-rpcport=\fR<port>
+.IP
+Listen for JSON\-RPC connections on <port> (default: 8332, testnet:
+18332, signet: 38332, regtest: 18443)
+.HP
+\fB\-rpcserialversion\fR
+.IP
+Sets the serialization of raw transaction or block hex returned in
+non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
+.HP
+\fB\-rpcthreads=\fR<n>
+.IP
+Set the number of threads to service RPC calls (default: 4)
+.HP
+\fB\-rpcuser=\fR<user>
+.IP
+Username for JSON\-RPC connections
+.HP
+\fB\-rpcwhitelist=\fR<whitelist>
+.IP
+Set a whitelist to filter incoming RPC calls for a specific user. The
+field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
+2>,...,<rpc n>. If multiple whitelists are set for a given user,
+they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
+for information on default whitelist behavior.
+.HP
+\fB\-rpcwhitelistdefault\fR
+.IP
+Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
+is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
+if all rpc users are subject to empty\-unless\-otherwise\-specified
+whitelists. If rpcwhitelistdefault is set to 1 and no
+\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
+subject to empty whitelists.
+.HP
+\fB\-server\fR
+.IP
+Accept command line and JSON\-RPC commands
+.SH COPYRIGHT
+Copyright (C) 2009-2022 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Bitcoin Core useful. Visit
+<https://bitcoincore.org/> for further information about the software.
+The source code is available from <https://github.com/bitcoin/bitcoin>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file

From 440fbe6dbadadb2664481af2a4facf813a5dd441 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 3 Mar 2022 19:38:06 +0100
Subject: [PATCH 003/187] qt: Pull translations for 0.23rc1

Tree-SHA512: 8366ebbb3603f3f021285f62df75996883458273b24db4e84ff56a3cb56b54cef474f640ea1f48ebc29dbde0593bd78256b9830555a288ba7e4a0a88e07f729e
---
 src/Makefile.qt_locale.include |   1 +
 src/qt/bitcoin_locale.qrc      |   1 +
 src/qt/locale/bitcoin_da.ts    | 837 +++++++++++++++++++++++++++++++--
 src/qt/locale/bitcoin_hu.ts    |  60 ++-
 src/qt/locale/bitcoin_tk.ts    | 484 +++++++++++++++++++
 5 files changed, 1339 insertions(+), 44 deletions(-)
 create mode 100644 src/qt/locale/bitcoin_tk.ts

diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include
index 8638bd024cd..4cf28fb566a 100644
--- a/src/Makefile.qt_locale.include
+++ b/src/Makefile.qt_locale.include
@@ -78,6 +78,7 @@ QT_TS = \
   qt/locale/bitcoin_ta.ts \
   qt/locale/bitcoin_te.ts \
   qt/locale/bitcoin_th.ts \
+  qt/locale/bitcoin_tk.ts \
   qt/locale/bitcoin_tr.ts \
   qt/locale/bitcoin_ug.ts \
   qt/locale/bitcoin_uk.ts \
diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/bitcoin_locale.qrc
index b6dca18be38..9a2f0a42d6c 100644
--- a/src/qt/bitcoin_locale.qrc
+++ b/src/qt/bitcoin_locale.qrc
@@ -79,6 +79,7 @@
         <file alias="ta">locale/bitcoin_ta.qm</file>
         <file alias="te">locale/bitcoin_te.qm</file>
         <file alias="th">locale/bitcoin_th.qm</file>
+        <file alias="tk">locale/bitcoin_tk.qm</file>
         <file alias="tr">locale/bitcoin_tr.qm</file>
         <file alias="ug">locale/bitcoin_ug.qm</file>
         <file alias="uk">locale/bitcoin_uk.qm</file>
diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts
index 53a7eae7d24..b854332792a 100644
--- a/src/qt/locale/bitcoin_da.ts
+++ b/src/qt/locale/bitcoin_da.ts
@@ -244,6 +244,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">Runaway undtagelse</translation>
+    </message>
     <message>
         <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
         <translation type="unfinished">Der skete en fatal fejl. %1 kan ikke længere fortsætte sikkert og vil afslutte.</translation>
@@ -252,9 +256,23 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Internal error</source>
         <translation type="unfinished">Intern fejl</translation>
     </message>
-    </context>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">Der skete en intern fejl. %1 vil prøve at forsætte på sikker vis. Dette er en uventet fejl som kan reporteres som beskrevet under. </translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Vil du nulstille indstillinger til standardværdier eller afbryde uden at foretage ændringer?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Der opstod en fatal fejl. Tjek at indstillingsfilen er skrivbar, eller prøv at anvend -nosettings.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Fejl: Angivet datamappe “%1” eksisterer ikke.</translation>
@@ -267,6 +285,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: %1</source>
         <translation type="unfinished">Fejl: %1</translation>
     </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 har endnu ikke afsluttet på sikker vis…</translation>
+    </message>
     <message>
         <source>unknown</source>
         <translation type="unfinished">ukendt</translation>
@@ -279,6 +301,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Enter a Bitcoin address (e.g. %1)</source>
         <translation type="unfinished">Indtast en Bitcoin-adresse (fx %1)</translation>
     </message>
+    <message>
+        <source>Unroutable</source>
+        <translation type="unfinished">Urutebar</translation>
+    </message>
     <message>
         <source>Internal</source>
         <translation type="unfinished">Intern</translation>
@@ -293,11 +319,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>An outbound connection to a peer. An outbound connection is a connection initiated by us.</extracomment>
         <translation type="unfinished">Udgående</translation>
     </message>
+    <message>
+        <source>Full Relay</source>
+        <extracomment>Peer connection type that relays all network information.</extracomment>
+        <translation type="unfinished">Fuld Videresende</translation>
+    </message>
+    <message>
+        <source>Block Relay</source>
+        <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">Blok Vidersend</translation>
+    </message>
     <message>
         <source>Manual</source>
         <extracomment>Peer connection type established manually through one of several methods.</extracomment>
         <translation type="unfinished">Brugervejledning</translation>
     </message>
+    <message>
+        <source>Feeler</source>
+        <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Føler</translation>
+    </message>
     <message>
         <source>Address Fetch</source>
         <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
@@ -314,36 +355,36 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n sekund(er)</numerusform>
+            <numerusform>%n sekund(er)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minut(er)</numerusform>
+            <numerusform>%n minut(er)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n time(r)</numerusform>
+            <numerusform>%n time(r)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n dag(e)</numerusform>
+            <numerusform>%n dag(e)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n uge(r)</numerusform>
+            <numerusform>%n uge(r)</numerusform>
         </translation>
     </message>
     <message>
@@ -353,13 +394,21 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n år</numerusform>
+            <numerusform>%n år</numerusform>
         </translation>
     </message>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Indstillingsfilen kunne ikke læses</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Indstillingsfilen kunne ikke skrives</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">Udviklerne af %s</translation>
@@ -372,10 +421,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
         <translation type="unfinished">-maxtxfee er sat meget højt! Gebyrer så store risikeres betalt på en enkelt transaktion.</translation>
     </message>
+    <message>
+        <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
+        <translation type="unfinished">Kan ikke nedgradere tegnebogen fra version %i til version %i. Wallet-versionen uændret.</translation>
+    </message>
     <message>
         <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
         <translation type="unfinished">Kan ikke opnå en lås på datamappe %s. %s kører sansynligvis allerede.</translation>
     </message>
+    <message>
+        <source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
+        <translation type="unfinished">Kan ikke opgradere en ikke-HD split wallet fra version %i til version %i uden at opgradere til at understøtte pre-split keypool. Brug venligst version %i eller ingen version angivet.</translation>
+    </message>
     <message>
         <source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
         <translation type="unfinished">Distribueret under MIT-softwarelicensen; se den vedlagte fil %s eller %s</translation>
@@ -384,6 +441,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Fejl under læsning af %s! Alle nøgler blev læst korrekt, men transaktionsdata eller indgange i adressebogen kan mangle eller være ukorrekte.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Fejl ved læsning %s! Transaktionsdata kan mangle eller være forkerte. Genscanner tegnebogen.</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
+        <translation type="unfinished">Fejl: Dumpfilformatposten er forkert. Fik "%s", forventet "format".</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s".</source>
+        <translation type="unfinished">Fejl: Dumpfilformat posten er forkert. Fik "%s", forventet "%s".</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
+        <translation type="unfinished">Fejl: Dumpfil-versionen understøttes ikke. Denne version af bitcoin-tegnebog understøtter kun version 1 dumpfiler. Fik dumpfil med version %s$</translation>
+    </message>
+    <message>
+        <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
+        <translation type="unfinished">Fejl: Ældre tegnebøger understøtter kun adressetyperne "legacy", "p2sh-segwit" og "bech32"</translation>
+    </message>
     <message>
         <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
         <translation type="unfinished">Fejl: Lytning efter indkommende forbindelser mislykkedes (lytning resultarede i fejl %s)</translation>
@@ -392,14 +469,34 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
         <translation type="unfinished">Estimering af gebyr mislykkedes. Tilbagefaldsgebyr er deaktiveret. Vent et par blokke eller aktiver -fallbackfee.</translation>
     </message>
+    <message>
+        <source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
+        <translation type="unfinished">Fil %s eksisterer allerede. Hvis du er sikker på, at det er det, du vil have, så flyt det af vejen først.</translation>
+    </message>
     <message>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">Ugyldigt beløb for -maxtxfee=&lt;beløb&gt;: “%s” (skal være på mindst minrelay-gebyret på %s for at undgå hængende transaktioner)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">Ugyldige eller korrupte peers.dat (%s). Hvis du mener, at dette er en fejl, bedes du rapportere det til %s. Som en løsning kan du flytte filen (%s) ud af vejen (omdøbe, flytte eller slette) for at få oprettet en ny ved næste start.</translation>
+    </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
         <translation type="unfinished">Mere end én onion-bindingsadresse er opgivet. Bruger %s til den automatiske oprettelse af Tor-onion-tjeneste.</translation>
     </message>
+    <message>
+        <source>No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">Der er ikke angivet nogen dumpfil. For at bruge createfromdump skal -dumpfile= &lt;filename&gt; angives.</translation>
+    </message>
+    <message>
+        <source>No dump file provided. To use dump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">Der er ikke angivet nogen dumpfil. For at bruge dump skal -dumpfile= &lt;filename&gt; angives.</translation>
+    </message>
+    <message>
+        <source>No wallet file format provided. To use createfromdump, -format=&lt;format&gt; must be provided.</source>
+        <translation type="unfinished">Der er ikke angivet noget tegnebogs-filformat. For at bruge createfromdump skal -format=&lt;format&gt; angives.</translation>
+    </message>
     <message>
         <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
         <translation type="unfinished">Undersøg venligst at din computers dato og klokkeslet er korrekt indstillet! Hvis der er fejl i disse, vil %s ikke fungere korrekt.</translation>
@@ -424,6 +521,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">Blokdatabasen indeholder en blok, som ser ud til at være fra fremtiden. Dette kan skyldes, at din computers dato og tid ikke er sat korrekt. Genopbyg kun blokdatabasen, hvis du er sikker på, at din computers dato og tid er korrekt</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">Blokindekset db indeholder et ældre 'txindex'. For at rydde den optagede diskplads skal du køre en fuld -reindex, ellers ignorere denne fejl. Denne fejlmeddelelse vil ikke blive vist igen.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">Transaktionsbeløbet er for lille til at sende, når gebyret er trukket fra</translation>
@@ -456,6 +557,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
         <translation type="unfinished">Kan ikke genafspille blokke. Du er nødt til at genopbytte databasen ved hjælp af -reindex-chainstate.</translation>
     </message>
+    <message>
+        <source>Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite".</source>
+        <translation type="unfinished">Ukendt tegnebogsfilformat "%s" angivet. Angiv en af "bdb" eller "sqlite".</translation>
+    </message>
+    <message>
+        <source>Warning: Dumpfile wallet format "%s" does not match command line specified format "%s".</source>
+        <translation type="unfinished">Advarsel: Dumpfile tegnebogsformatet "%s" matcher ikke kommandolinjens specificerede format "%s".</translation>
+    </message>
     <message>
         <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source>
         <translation type="unfinished">Advarsel: Private nøgler opdaget i tegnebog {%s} med deaktiverede private nøgler</translation>
@@ -464,6 +573,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source>
         <translation type="unfinished">Advarsel: Vi ser ikke ud til at være fuldt ud enige med andre knuder! Du kan være nødt til at opgradere, eller andre knuder kan være nødt til at opgradere.</translation>
     </message>
+    <message>
+        <source>Witness data for blocks after height %d requires validation. Please restart with -reindex.</source>
+        <translation type="unfinished">Vidnedata for blokke efter højde %d kræver validering. Genstart venligst med -reindex.</translation>
+    </message>
     <message>
         <source>You need to rebuild the database using -reindex to go back to unpruned mode.  This will redownload the entire blockchain</source>
         <translation type="unfinished">Du er nødt til at genopbygge databasen ved hjælp af -reindex for at gå tilbage til ikke-beskåret tilstand. Dette vil downloade hele blokkæden igen</translation>
@@ -484,6 +597,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">Kan ikke finde -%s-adressen: “%s”</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">Kan ikke indstille -forcednsseed til true, når -dnsseed indstilles til false.</translation>
+    </message>
     <message>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">Kan ikke indstille -peerblockfilters uden -blockfilterindex.</translation>
@@ -492,6 +609,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Kan ikke skrive til datamappe '%s'; tjek tilladelser.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">Opgraderingen af -txindex som er startet af en tidligere version kan ikke fuldføres. Genstart med den tidligere version eller kør en fuld -reindex.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Kan ikke levere specifikke forbindelser og få adrman til at finde udgående forbindelser på samme tid.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Fejlindlæsning %s: Ekstern underskriver-tegnebog indlæses uden ekstern underskriverunderstøttelse kompileret</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Opsætningen af %s bliver kun udført på %s-netværk under [%s]-sektionen.</translation>
@@ -524,6 +653,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Done loading</source>
         <translation type="unfinished">Indlæsning gennemført</translation>
     </message>
+    <message>
+        <source>Dump file %s does not exist.</source>
+        <translation type="unfinished">Dumpfil %s findes ikke.</translation>
+    </message>
+    <message>
+        <source>Error creating %s</source>
+        <translation type="unfinished">Fejl skaber %s</translation>
+    </message>
     <message>
         <source>Error initializing block database</source>
         <translation type="unfinished">Klargøring af blokdatabase mislykkedes</translation>
@@ -560,18 +697,54 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error reading from database, shutting down.</source>
         <translation type="unfinished">Fejl under læsning fra database; lukker ned.</translation>
     </message>
+    <message>
+        <source>Error reading next record from wallet database</source>
+        <translation type="unfinished">Fejl ved læsning af næste post fra tegnebogsdatabase</translation>
+    </message>
     <message>
         <source>Error upgrading chainstate database</source>
         <translation type="unfinished">Fejl under opgradering af kædetilstandsdatabase</translation>
     </message>
+    <message>
+        <source>Error: Couldn't create cursor into database</source>
+        <translation type="unfinished">Fejl: Kunne ikke oprette markøren i databasen</translation>
+    </message>
     <message>
         <source>Error: Disk space is low for %s</source>
         <translation type="unfinished">Fejl: Disk plads er lavt for %s</translation>
     </message>
+    <message>
+        <source>Error: Dumpfile checksum does not match. Computed %s, expected %s</source>
+        <translation type="unfinished">Fejl: Dumpfil kontrolsum stemmer ikke overens. Beregnet %s, forventet %s</translation>
+    </message>
+    <message>
+        <source>Error: Got key that was not hex: %s</source>
+        <translation type="unfinished">Fejl: Fik nøgle, der ikke var hex: %s</translation>
+    </message>
+    <message>
+        <source>Error: Got value that was not hex: %s</source>
+        <translation type="unfinished">Fejl: Fik værdi, der ikke var hex: %s</translation>
+    </message>
     <message>
         <source>Error: Keypool ran out, please call keypoolrefill first</source>
         <translation type="unfinished">Fejl: Nøglepøl løb tør, tilkald venligst keypoolrefill først</translation>
     </message>
+    <message>
+        <source>Error: Missing checksum</source>
+        <translation type="unfinished">Fejl: Manglende kontrolsum</translation>
+    </message>
+    <message>
+        <source>Error: No %s addresses available.</source>
+        <translation type="unfinished">Fejl: Ingen tilgængelige %s adresser.</translation>
+    </message>
+    <message>
+        <source>Error: Unable to parse version %u as a uint32_t</source>
+        <translation type="unfinished">Fejl: Kan ikke parse version %u som en uint32_t</translation>
+    </message>
+    <message>
+        <source>Error: Unable to write record to new wallet</source>
+        <translation type="unfinished">Fejl: Kan ikke skrive post til ny tegnebog</translation>
+    </message>
     <message>
         <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
         <translation type="unfinished">Lytning på enhver port mislykkedes. Brug -listen=0, hvis du ønsker dette.</translation>
@@ -604,10 +777,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">Sundhedstjek under initialisering mislykkedes. %s lukker ned.</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Input ikke fundet eller allerede brugt</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Manglende dækning</translation>
     </message>
+    <message>
+        <source>Invalid -i2psam address or hostname: '%s'</source>
+        <translation type="unfinished">Ugyldig -i2psam-adresse eller værtsnavn: '%s'</translation>
+    </message>
     <message>
         <source>Invalid -onion address or hostname: '%s'</source>
         <translation type="unfinished">Ugyldig -onion-adresse eller værtsnavn: “%s”</translation>
@@ -656,10 +837,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Loading wallet…</source>
         <translation type="unfinished">Indlæser tegnebog...</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Manglende beløb</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">Manglende løsningsdata til estimering af transaktionsstørrelse</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Nødt til at angive en port med -whitebinde: “%s”</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Ingen adresser tilgængelige</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Ingen proxyserver specificeret. Brug -proxy=&lt;ip&gt; eller -proxy=&lt;ip:port&gt;.</translation>
@@ -672,6 +865,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Prune cannot be configured with a negative value.</source>
         <translation type="unfinished">Beskæring kan ikke opsættes med en negativ værdi.</translation>
     </message>
+    <message>
+        <source>Prune mode is incompatible with -coinstatsindex.</source>
+        <translation type="unfinished">Beskæringstilstand er inkompatibel med -coinstatsindex.</translation>
+    </message>
     <message>
         <source>Prune mode is incompatible with -txindex.</source>
         <translation type="unfinished">Beskæringstilstand er ikke kompatibel med -txindex.</translation>
@@ -684,6 +881,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
         <translation type="unfinished">Reducerer -maxconnections fra %d til %d på grund af systembegrænsninger.</translation>
     </message>
+    <message>
+        <source>Replaying blocks…</source>
+        <translation type="unfinished">Genafspiller blokke...</translation>
+    </message>
     <message>
         <source>Rescanning…</source>
         <translation type="unfinished">Genindlæser…</translation>
@@ -728,10 +929,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Specified blocks directory "%s" does not exist.</source>
         <translation type="unfinished">Angivet blokmappe “%s” eksisterer ikke.</translation>
     </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">Starter netværkstråde...</translation>
+    </message>
     <message>
         <source>The source code is available from %s.</source>
         <translation type="unfinished">Kildekoden er tilgængelig fra %s.</translation>
     </message>
+    <message>
+        <source>The specified config file %s does not exist</source>
+        <translation type="unfinished">Den angivne konfigurationsfil %s findes ikke</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to pay the fee</source>
         <translation type="unfinished">Transaktionsbeløbet er for lille til at betale gebyret</translation>
@@ -760,6 +969,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Transaktionsbeløb må ikke være negative</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Transaktions byttepenge outputindeks uden for intervallet</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">Transaktionen har en for lang hukommelsespuljekæde</translation>
@@ -768,6 +981,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">Transaktionen skal have mindst én modtager</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Transaktionen behøver en byttepenge adresse, men vi kan ikke generere den.</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">Transaktionen er for stor</translation>
@@ -792,6 +1009,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to generate keys</source>
         <translation type="unfinished">U-istand til at generere nøgler</translation>
     </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">Kan ikke åbne %s til skrivning</translation>
+    </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">Kan ikke parse -maxuploadtarget: '%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Kunne ikke starte HTTP-server. Se fejlretningslog for detaljer.</translation>
@@ -812,6 +1037,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unknown network specified in -onlynet: '%s'</source>
         <translation type="unfinished">Ukendt netværk anført i -onlynet: “%s”</translation>
     </message>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished">Ukendte nye regler aktiveret (versionsbit %i)</translation>
+    </message>
     <message>
         <source>Unsupported logging category %s=%s.</source>
         <translation type="unfinished">Ikke understøttet logningskategori %s=%s.</translation>
@@ -824,6 +1053,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>User Agent comment (%s) contains unsafe characters.</source>
         <translation type="unfinished">Brugeragent-kommentar (%s) indeholder usikre tegn.</translation>
     </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">Verificerer blokke…</translation>
+    </message>
     <message>
         <source>Verifying wallet(s)…</source>
         <translation type="unfinished">Bekræfter tegnebog (/bøger)...</translation>
@@ -883,6 +1116,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create a new wallet</source>
         <translation type="unfinished">Opret en ny tegnebog</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Minimér</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Tegnebog:</translation>
@@ -928,6 +1165,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Backup Wallet…</source>
         <translation type="unfinished">&amp;Sikkerhedskopiér Tegnebog</translation>
     </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;Skift adgangskode</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">Signér &amp;besked</translation>
+    </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
         <translation type="unfinished">Signér beskeder med dine Bitcoin-adresser for at bevise, at de tilhører dig</translation>
@@ -940,6 +1185,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">Verificér beskeder for at sikre, at de er signeret med de angivne Bitcoin-adresser</translation>
     </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">&amp;Indlæs PSBT fra fil...</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">Åben &amp;URI...</translation>
+    </message>
     <message>
         <source>Close Wallet…</source>
         <translation type="unfinished">Luk Tegnebog...</translation>
@@ -968,10 +1221,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Tabs toolbar</source>
         <translation type="unfinished">Faneværktøjslinje</translation>
     </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">Synkroniserer hoveder (%1%)…</translation>
+    </message>
     <message>
         <source>Synchronizing with network…</source>
         <translation type="unfinished">Synkroniserer med netværk …</translation>
     </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Indekserer blokke på disken…</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Bearbejder blokke på disken…</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Genindekserer blokke på disken…</translation>
+    </message>
     <message>
         <source>Connecting to peers…</source>
         <translation type="unfinished">Forbinder til knuder...</translation>
@@ -995,8 +1264,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Behandlede %n blok(e) af transaktionshistorik.</numerusform>
+            <numerusform>Behandlede %n blok(e) af transaktionshistorik.</numerusform>
         </translation>
     </message>
     <message>
@@ -1031,6 +1300,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Indlæs Partvist Signeret Bitcoin-Transaktion</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Indlæs PSBT fra &amp;clipboard</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Indlæs Partvist Signeret Bitcoin-Transaktion fra udklipsholder</translation>
@@ -1103,14 +1376,27 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1-klient</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Skjul</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">&amp;Vis</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n aktiv(e) forbindelse(r) til Bitcoin-netværket.</numerusform>
+            <numerusform>%n aktiv(e) forbindelse(r) til Bitcoin-netværket.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Click for flere aktioner.</translation>
+    </message>
     <message>
         <source>Show Peers tab</source>
         <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
@@ -1278,6 +1564,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy amount</source>
         <translation type="unfinished">Kopiér beløb</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopiér adresse</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiér &amp;mærkat</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiér &amp;beløb</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Kopiér transaktion &amp;ID og outputindeks</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">&amp;Fastlås ubrugte</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">&amp;Lås ubrugte op</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Kopiér mængde</translation>
@@ -1355,7 +1665,24 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create wallet warning</source>
         <translation type="unfinished">Advarsel for oprettelse af tegnebog</translation>
     </message>
-    </context>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Kan ikke liste underskrivere</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Indlæs Tegnebøger</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Indlæser tegnebøger...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1375,7 +1702,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
         <translation type="unfinished">Åben Tegnebog</translation>
     </message>
-    </context>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">Åbner Tegnebog &lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+</context>
 <context>
     <name>WalletController</name>
     <message>
@@ -1449,6 +1781,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Descriptor Wallet</source>
         <translation type="unfinished">Beskriver-Pung</translation>
     </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Brug en ekstern signeringsenhed som en hardwaretegnebog. Konfigurer den eksterne underskriver skript i tegnebogspræferencerne først.</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Ekstern underskriver</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">Opret</translation>
@@ -1457,7 +1797,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Compiled without sqlite support (required for descriptor wallets)</source>
         <translation type="unfinished">Kompileret uden sqlite-understøttelse (krævet til beskriver-punge)</translation>
     </message>
-    </context>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Kompileret uden ekstern underskriver understøttelse (nødvendig for ekstern underskriver)</translation>
+    </message>
+</context>
 <context>
     <name>EditAddressDialog</name>
     <message>
@@ -1538,6 +1883,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB af fri plads tilgængelig</translation>
+    </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(ud af %1 GB behøvet)</translation>
+    </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(%1 GB nødvendig for komplet kæde)</translation>
+    </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Mindst %1 GB data vil blive gemt i denne mappe, og det vil vokse over tid.</translation>
@@ -1550,8 +1907,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(tilstrækkelig for at gendanne backups %n dag(e) gammel)</numerusform>
+            <numerusform>(tilstrækkelig for at gendanne backups %n dag(e) gammel)</numerusform>
         </translation>
     </message>
     <message>
@@ -1586,10 +1943,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
         <translation type="unfinished">Når du klikker OK, vil %1 begynde at downloade og bearbejde den fulde %4-blokkæde (%2 GB), startende med de tidligste transaktioner i %3, da %4 først startede.</translation>
     </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">Begræns blokkæde opbevaring til</translation>
+    </message>
     <message>
         <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
         <translation type="unfinished">Ændring af denne indstilling senere kræver gendownload af hele blokkæden. Det er hurtigere at downloade den komplette kæde først og beskære den senere. Slår nogle avancerede funktioner fra.</translation>
     </message>
+    <message>
+        <source> GB</source>
+        <translation type="unfinished">GB</translation>
+    </message>
     <message>
         <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
         <translation type="unfinished">Denne indledningsvise synkronisering er meget krævende, og den kan potentielt afsløre hardwareproblemer med din computer, som du ellers ikke har lagt mærke til. Hver gang, du kører %1, vil den fortsætte med at downloade, hvor den sidst slap.</translation>
@@ -1620,6 +1985,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1 lukker ned…</translation>
+    </message>
     <message>
         <source>Do not shut down the computer until this window disappears.</source>
         <translation type="unfinished">Luk ikke computeren ned, før dette vindue forsvinder.</translation>
@@ -1675,7 +2044,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 is currently syncing.  It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source>
         <translation type="unfinished">%1 synkroniserer lige nu. Hoveder og blokke bliver downloadet og valideret fra andre knuder. Processen fortsætter indtil den seneste blok nås.</translation>
     </message>
-    </context>
+    <message>
+        <source>Unknown. Syncing Headers (%1, %2%)…</source>
+        <translation type="unfinished">Ukendt. Synkroniserer Hoveder (%1, %2%)...</translation>
+    </message>
+</context>
 <context>
     <name>OpenURIDialog</name>
     <message>
@@ -1706,6 +2079,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Start %1 on system login</source>
         <translation type="unfinished">&amp;Start %1 ved systemlogin</translation>
     </message>
+    <message>
+        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">Aktivering af beskæring reducerer betydeligt den diskplads, der kræves til at gemme transaktioner. Alle blokke er stadig fuldt validerede. Gendannelse af denne indstilling kræver gendownload af hele blokkæden.</translation>
+    </message>
     <message>
         <source>Size of &amp;database cache</source>
         <translation type="unfinished">Størrelsen på &amp;databasens cache</translation>
@@ -1754,14 +2131,44 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Ændring af denne indstilling senere kræver download af hele blokkæden igen.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Maksimal størrelse på databasecache. En større cache kan bidrage til hurtigere synkronisering, hvorefter fordelen er mindre synlig i de fleste tilfælde. Sænkning af cachestørrelsen vil reducere hukommelsesforbruget. Ubrugt mempool-hukommelse deles for denne cache.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Indstil antallet af scriptbekræftelsestråde. Negative værdier svarer til antallet af kerner, du ønsker at lade være frie til systemet.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = auto, &lt;0 = efterlad så mange kerner fri)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Dette giver dig eller et tredjepartsværktøj mulighed for at kommunikere med knuden gennem kommandolinje- og JSON-RPC-kommandoer.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Aktiver &amp;RPC-server</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">&amp;Tegnebog</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Hvorvidt der skal trækkes gebyr fra beløb som standard eller ej.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Træk &amp;gebyr fra beløbet som standard</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Ekspert</translation>
@@ -1778,6 +2185,28 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Brug ubekræftede byttepenge</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Aktiver &amp;PSBT styring</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Om PSBT styring skal vises.</translation>
+    </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">Ekstern underskriver (e.g. hardwaretegnebog)</translation>
+    </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">&amp;Ekstern underskrivers scriptsti</translation>
+    </message>
+    <message>
+        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
+        <translation type="unfinished">Fuld sti til et Bitcoin Core-kompatibelt script (f.eks. C:\Downloads\hwi.exe eller /Users/you/Downloads/hwi.py). Pas på: malware kan stjæle dine mønter!</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Åbn automatisk Bitcoin-klientens port på routeren. Dette virker kun, når din router understøtter UPnP, og UPnP er aktiveret.</translation>
@@ -1786,6 +2215,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">Konfigurér port vha. &amp;UPnP</translation>
     </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
+        <translation type="unfinished">Åbn automatisk Bitcoin-klientporten på routeren. Dette virker kun, når din router understøtter NAT-PMP, og den er aktiveret. Den eksterne port kan være tilfældig.</translation>
+    </message>
+    <message>
+        <source>Map port using NA&amp;T-PMP</source>
+        <translation type="unfinished">Kortport ved hjælp af NA&amp;T-PMP</translation>
+    </message>
     <message>
         <source>Accept connections from outside.</source>
         <translation type="unfinished">Acceptér forbindelser udefra.</translation>
@@ -1818,6 +2255,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Window</source>
         <translation type="unfinished">&amp;Vindue</translation>
     </message>
+    <message>
+        <source>Show the icon in the system tray.</source>
+        <translation type="unfinished">Vis ikonet i proceslinjen.</translation>
+    </message>
+    <message>
+        <source>&amp;Show tray icon</source>
+        <translation type="unfinished">&amp;Vis bakkeikon</translation>
+    </message>
     <message>
         <source>Show only a tray icon after minimizing the window.</source>
         <translation type="unfinished">Vis kun et statusikon efter minimering af vinduet.</translation>
@@ -1850,6 +2295,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Vælg standard for underopdeling af enhed, som skal vises i brugergrænsefladen og ved afsendelse af bitcoins.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">Tredjeparts-URL'er (f.eks. en blokudforsker), der vises på fanen Transaktioner som genvejsmenupunkter. %s i URL'en erstattes af transaktions-hash. Flere URL'er er adskilt af lodret streg |.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;Tredjeparts transaktions-URL'er</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Hvorvidt egenskaber for coin-styring skal vises eller ej.</translation>
@@ -1862,6 +2315,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Use separate SOCKS&amp;5 proxy to reach peers via Tor onion services:</source>
         <translation type="unfinished">Brug separate SOCKS&amp;5 proxy, for at nå fælle via Tor-onion-tjenester:</translation>
     </message>
+    <message>
+        <source>Monospaced font in the Overview tab:</source>
+        <translation type="unfinished">Monospaced skrifttype på fanen Oversigt:</translation>
+    </message>
+    <message>
+        <source>embedded "%1"</source>
+        <translation type="unfinished">indlejret "%1"</translation>
+    </message>
+    <message>
+        <source>closest matching "%1"</source>
+        <translation type="unfinished">tættest matchende "%1"</translation>
+    </message>
     <message>
         <source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
         <translation type="unfinished">Valgmuligheder sat i denne dialog er overskrevet af kommandolinjen eller i konfigurationsfilen:</translation>
@@ -1874,6 +2339,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Cancel</source>
         <translation type="unfinished">&amp;Annullér</translation>
     </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Kompileret uden ekstern underskriver understøttelse (nødvendig for ekstern underskriver)</translation>
+    </message>
     <message>
         <source>default</source>
         <translation type="unfinished">standard</translation>
@@ -1904,6 +2374,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">Konfigurationsfilen bruges til at opsætte avancerede brugerindstillinger, som tilsidesætter indstillingerne i den grafiske brugerflade. Derudover vil eventuelle kommandolinjetilvalg tilsidesætte denne konfigurationsfil.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Forsæt</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Fortryd</translation>
@@ -2030,6 +2504,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Kunne ikke signere transaktion: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Kan ikke signere inputs, mens tegnebogen er låst.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Kunne ikke signere flere input.</translation>
@@ -2062,6 +2540,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Save Transaction Data</source>
         <translation type="unfinished">Gem Transaktionsdata</translation>
     </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">Delvist underskrevet transaktion (Binær)</translation>
+    </message>
     <message>
         <source>PSBT saved to disk.</source>
         <translation type="unfinished">PSBT gemt på disk.</translation>
@@ -2098,6 +2581,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Transaktion mangler stadig signatur(er).</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Men ingen tegnebog er indlæst.)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Men denne tegnebog kan ikke signere transaktioner.)</translation>
@@ -2133,6 +2620,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
         <translation type="unfinished">'bitcoin://' er ikke et gyldigt URI. Brug 'bitcoin:' istedet.</translation>
     </message>
+    <message>
+        <source>Cannot process payment request because BIP70 is not supported.
+Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
+If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source>
+        <translation type="unfinished">Kan ikke behandle betalingsanmodning, fordi BIP70 ikke understøttes.
+På grund af udbredte sikkerhedsfejl i BIP70 anbefales det på det kraftigste, at enhver købmands instruktioner om at skifte tegnebog ignoreres.
+Hvis du modtager denne fejl, skal du anmode forhandleren om en BIP21-kompatibel URI.</translation>
+    </message>
     <message>
         <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
         <translation type="unfinished">URI kan ikke tolkes! Dette kan skyldes en ugyldig Bitcoin-adresse eller forkert udformede URL-parametre.</translation>
@@ -2324,6 +2819,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Synced Blocks</source>
         <translation type="unfinished">Synkroniserede blokke</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Sidste transaktion</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">Afbildning fra Autonome Systemer (et Internet-Protocol-rutefindingsprefiks) til IP-adresser som bruges til at diversificere knudeforbindelser. Den engelske betegnelse er "asmap".</translation>
@@ -2332,6 +2831,33 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Mapped AS</source>
         <translation type="unfinished">Autonomt-System-afbildning</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Om vi videresender adresser til denne peer.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Adresserelæ</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Samlet antal behandlede adresser, ekskl. adresser, der er droppet på grund af hastighedsbegrænsning.</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Adresser Behandlet</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Samlet antal adresser droppet på grund af hastighedsbegrænsning.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Adresser Hastighedsbegrænset</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Brugeragent</translation>
@@ -2360,18 +2886,51 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Permissions</source>
         <translation type="unfinished">Tilladelser</translation>
     </message>
+    <message>
+        <source>The direction and type of peer connection: %1</source>
+        <translation type="unfinished">Retningen og typen af peer-forbindelse: %1</translation>
+    </message>
+    <message>
+        <source>Direction/Type</source>
+        <translation type="unfinished">Retning/Type</translation>
+    </message>
+    <message>
+        <source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
+        <translation type="unfinished">Netværksprotokollen, som denne peer er forbundet via: IPv4, IPv6, Onion, I2P eller CJDNS.</translation>
+    </message>
     <message>
         <source>Services</source>
         <translation type="unfinished">Tjenester</translation>
     </message>
+    <message>
+        <source>Whether the peer requested us to relay transactions.</source>
+        <translation type="unfinished">Om peeren anmodede os om at videresende transaktioner.</translation>
+    </message>
+    <message>
+        <source>Wants Tx Relay</source>
+        <translation type="unfinished">Vil have transaktion videresend</translation>
+    </message>
+    <message>
+        <source>High Bandwidth</source>
+        <translation type="unfinished">Højt Bredbånd</translation>
+    </message>
     <message>
         <source>Connection Time</source>
         <translation type="unfinished">Forbindelsestid</translation>
     </message>
+    <message>
+        <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
+        <translation type="unfinished">Forløbet tid siden en ny blok, der bestod indledende gyldighedstjek, blev modtaget fra denne peer.</translation>
+    </message>
     <message>
         <source>Last Block</source>
         <translation type="unfinished">Sidste Blok</translation>
     </message>
+    <message>
+        <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
+        <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
+        <translation type="unfinished">Forløbet tid siden en ny transaktion, der blev accepteret i vores mempool, blev modtaget fra denne peer.</translation>
+    </message>
     <message>
         <source>Last Send</source>
         <translation type="unfinished">Seneste afsendelse</translation>
@@ -2436,6 +2995,53 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Out:</source>
         <translation type="unfinished">Udgående:</translation>
     </message>
+    <message>
+        <source>Inbound: initiated by peer</source>
+        <extracomment>Explanatory text for an inbound peer connection.</extracomment>
+        <translation type="unfinished">Indgående: initieret af peer</translation>
+    </message>
+    <message>
+        <source>Outbound Full Relay: default</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
+        <translation type="unfinished">Udgående fuld relæ: standard</translation>
+    </message>
+    <message>
+        <source>Outbound Block Relay: does not relay transactions or addresses</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">Udgående blokrelæ: videresender ikke transaktioner eller adresser</translation>
+    </message>
+    <message>
+        <source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
+        <extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
+        <translation type="unfinished">Udgående manual: tilføjet ved hjælp af RPC %1 eller %2/%3 konfigurationsmuligheder</translation>
+    </message>
+    <message>
+        <source>Outbound Feeler: short-lived, for testing addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Udgående fejl: kortvarig, til test af adresser</translation>
+    </message>
+    <message>
+        <source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
+        <translation type="unfinished">Udgående adressehentning: kortvarig, til at anmode om adresser</translation>
+    </message>
+    <message>
+        <source>we selected the peer for high bandwidth relay</source>
+        <translation type="unfinished">vi valgte denne peer for høj bredbånd relæ</translation>
+    </message>
+    <message>
+        <source>the peer selected us for high bandwidth relay</source>
+        <translation type="unfinished">peeren valgte os til høj bredbånd relæ</translation>
+    </message>
+    <message>
+        <source>no high bandwidth relay selected</source>
+        <translation type="unfinished">ingen høj bredbånd relæ valgt</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;Kopiér adresse</translation>
+    </message>
     <message>
         <source>&amp;Disconnect</source>
         <translation type="unfinished">&amp;Afbryd forbindelse</translation>
@@ -2444,6 +3050,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>1 &amp;hour</source>
         <translation type="unfinished">1 &amp;time</translation>
     </message>
+    <message>
+        <source>1 d&amp;ay</source>
+        <translation type="unfinished">1 &amp;dag</translation>
+    </message>
     <message>
         <source>1 &amp;week</source>
         <translation type="unfinished">1 &amp;uge</translation>
@@ -2452,6 +3062,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;år</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Kopiér IP/Netmask</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Fjern bandlysning</translation>
@@ -2468,6 +3083,28 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Executing command using "%1" wallet</source>
         <translation type="unfinished">Eksekverer kommando ved brug af "%1" tegnebog</translation>
     </message>
+    <message>
+        <source>Welcome to the %1 RPC console.
+Use up and down arrows to navigate history, and %2 to clear screen.
+Use %3 and %4 to increase or decrease the font size.
+Type %5 for an overview of available commands.
+For more information on using this console, type %6.
+
+%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8</source>
+        <extracomment>RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally.</extracomment>
+        <translation type="unfinished">Velkommen til %1 RPC-konsollen.
+Brug op- og nedpilene til at navigere i historikken og %2 til at rydde skærmen.
+Brug %3 og %4 til at øge eller formindske skriftstørrelsen.
+Skriv %5 for at få en oversigt over tilgængelige kommandoer.
+For mere information om brug af denne konsol, skriv %6.
+
+%7 ADVARSEL: Svindlere har været aktive og bedt brugerne om at skrive kommandoer her og stjæle deres tegnebogsindhold. Brug ikke denne konsol uden fuldt ud at forstå konsekvenserne af en kommando.%8</translation>
+    </message>
+    <message>
+        <source>Executing…</source>
+        <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
+        <translation type="unfinished">Udfører...</translation>
+    </message>
     <message>
         <source>Yes</source>
         <translation type="unfinished">Ja</translation>
@@ -2571,6 +3208,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;URI</source>
         <translation type="unfinished">Kopiér &amp;URI</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopiér adresse</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiér &amp;mærkat</translation>
+    </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">Kopiér &amp;besked</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiér &amp;beløb</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">Kunne ikke låse tegnebog op.</translation>
@@ -2614,6 +3267,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;Address</source>
         <translation type="unfinished">Kopiér &amp;adresse</translation>
     </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">&amp;Verificér</translation>
+    </message>
+    <message>
+        <source>Verify this address on e.g. a hardware wallet screen</source>
+        <translation type="unfinished">Bekræft denne adresse på f.eks. en hardwaretegnebogs skærm</translation>
+    </message>
     <message>
         <source>&amp;Save Image…</source>
         <translation type="unfinished">&amp;Gem billede...</translation>
@@ -2764,6 +3425,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Hide transaction fee settings</source>
         <translation type="unfinished">Skjul indstillinger for transaktionsgebyr</translation>
     </message>
+    <message>
+        <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size.
+
+Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satoshis per kvB" for a transaction size of 500 virtual bytes (half of 1 kvB) would ultimately yield a fee of only 50 satoshis.</source>
+        <translation type="unfinished">Angiv et brugerdefineret gebyr pr. kB (1.000 bytes) af transaktionens virtuelle størrelse.
+
+Bemærk: Da gebyret beregnes på per-byte-basis, ville en gebyrsats på "100 satoshis pr. kvB" for en transaktionsstørrelse på 500 virtuelle bytes (halvdelen af 1 kvB) i sidste ende kun give et gebyr på 50 satoshis.</translation>
+    </message>
     <message>
         <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
         <translation type="unfinished">På tidspunkter, hvor der er færre transaktioner, end der er plads til i nye blokke, kan minere og videresendende knuder gennemtvinge et minimumsgebyr. Du kan vælge kun at betale dette minimumsgebyr, men vær opmærksom på, at det kan resultere i en transaktion, der aldrig bliver bekræftet, hvis mængden af nye bitcoin-transaktioner stiger til mere, end hvad netværket kan behandle ad gangen.</translation>
@@ -2772,6 +3441,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
         <translation type="unfinished">Et for lavt gebyr kan resultere i en transaktion, der aldrig bekræftes (læs værktøjstippet)</translation>
     </message>
+    <message>
+        <source>(Smart fee not initialized yet. This usually takes a few blocks…)</source>
+        <translation type="unfinished">(Smart gebyr er ikke initialiseret endnu. Dette tager normalt et par blokke...)</translation>
+    </message>
     <message>
         <source>Confirmation time target:</source>
         <translation type="unfinished">Mål for bekræftelsestid:</translation>
@@ -2832,6 +3505,20 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 (%2 blocks)</source>
         <translation type="unfinished">%1 (%2 blokke)</translation>
     </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">Underskriv på enhed</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">Tilslut din hardwaretegnebog først.</translation>
+    </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Indstil ekstern underskriver scriptsti i Indstillinger -&gt; Tegnebog</translation>
+    </message>
     <message>
         <source>Cr&amp;eate Unsigned</source>
         <translation type="unfinished">L&amp;av usigneret</translation>
@@ -2848,14 +3535,41 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 to %2</source>
         <translation type="unfinished">%1 til %2</translation>
     </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">For at vurdere modtager listen tryk "Vis Detaljer..."</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">Underskrivningen fejlede</translation>
+    </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Ekstern underskriver ikke fundet</translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Ekstern underskriver fejl</translation>
+    </message>
     <message>
         <source>Save Transaction Data</source>
         <translation type="unfinished">Gem Transaktionsdata</translation>
     </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">Delvist underskrevet transaktion (Binær)</translation>
+    </message>
     <message>
         <source>PSBT saved</source>
         <translation type="unfinished">PSBT gemt</translation>
     </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">Ekstern balance:</translation>
+    </message>
     <message>
         <source>or</source>
         <translation type="unfinished">eller</translation>
@@ -2869,6 +3583,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">Gennemse venligst dit transaktionsforslag. Dette vil producere en Partvist Signeret Bitcoin Transaktion (PSBT), som du kan gemme eller kopiere, og så signere med f.eks. en offline %1 pung, eller en PSBT-kompatibel maskinelpung.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Vil du oprette denne transaktion?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Gennemgå venligst din transaktion. Du kan oprette og sende denne transaktion eller oprette en delvist underskrevet Bitcoin-transaktion (PSBT), som du kan gemme eller kopiere og derefter underskrive med, f.eks. en offline %1 tegnebog eller en PSBT-kompatibel hardwaretegnebog.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -2929,8 +3653,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Anslået at begynde bekræftelse inden for %n blok(e).</numerusform>
+            <numerusform>Anslået at begynde bekræftelse inden for %n blok(e).</numerusform>
         </translation>
     </message>
     <message>
@@ -3185,7 +3909,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(press q to shutdown and continue later)</source>
         <translation type="unfinished">(tast q for at lukke ned og fortsætte senere)</translation>
     </message>
-    </context>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">tryk på q for at lukke</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -3259,8 +3987,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>modnes i yderligere %n blok(e)</numerusform>
+            <numerusform>modnes i yderligere %n blok(e)</numerusform>
         </translation>
     </message>
     <message>
@@ -3508,6 +4236,51 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Range…</source>
         <translation type="unfinished">Interval...</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopiér adresse</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiér &amp;mærkat</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiér &amp;beløb</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">Kopiér transaktion &amp;ID</translation>
+    </message>
+    <message>
+        <source>Copy &amp;raw transaction</source>
+        <translation type="unfinished">Kopiér &amp;rå transaktion</translation>
+    </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">Kopiér alle transaktion &amp;oplysninger </translation>
+    </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">&amp;Vis transaktionsoplysninger</translation>
+    </message>
+    <message>
+        <source>Increase transaction &amp;fee</source>
+        <translation type="unfinished">Hæv transaktions &amp;gebyr</translation>
+    </message>
+    <message>
+        <source>A&amp;bandon transaction</source>
+        <translation type="unfinished">&amp;Opgiv transaction</translation>
+    </message>
+    <message>
+        <source>&amp;Edit address label</source>
+        <translation type="unfinished">&amp;Rediger adresseetiket</translation>
+    </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Vis på %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Eksportér transaktionshistorik</translation>
@@ -3632,6 +4405,10 @@ Gå til Fil &gt; Åbn Pung for, at indlæse en pung.
         <source>New fee:</source>
         <translation type="unfinished">Nyt gebyr:</translation>
     </message>
+    <message>
+        <source>Warning: This may pay the additional fee by reducing change outputs or adding inputs, when necessary. It may add a new change output if one does not already exist. These changes may potentially leak privacy.</source>
+        <translation type="unfinished">Advarsel: Dette kan betale det ekstra gebyr ved at reducere byttepengesoutputs eller tilføje inputs, når det er nødvendigt. Det kan tilføje et nyt byttepengesoutput, hvis et ikke allerede eksisterer. Disse ændringer kan potentielt lække privatlivets fred.</translation>
+    </message>
     <message>
         <source>Confirm fee bump</source>
         <translation type="unfinished">Bekræft gebyrforøgelse</translation>
@@ -3652,6 +4429,10 @@ Gå til Fil &gt; Åbn Pung for, at indlæse en pung.
         <source>Could not commit transaction</source>
         <translation type="unfinished">Kunne ikke gennemføre transaktionen</translation>
     </message>
+    <message>
+        <source>Can't display address</source>
+        <translation type="unfinished">Adressen kan ikke vises</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">Standard tegnebog</translation>
diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts
index 2bcaac05525..0d099f227ac 100644
--- a/src/qt/locale/bitcoin_hu.ts
+++ b/src/qt/locale/bitcoin_hu.ts
@@ -367,31 +367,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n másodperc</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n perc</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n óra</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n nap</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n hét</numerusform>
         </translation>
     </message>
     <message>
@@ -401,7 +401,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n év</numerusform>
         </translation>
     </message>
     </context>
@@ -615,6 +615,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Nem lehet írni a '%s' könyvtárba; ellenőrizze a jogosultságokat.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">A -txindex frissítése nem fejezhető be mivel egy korábbi verzió kezdte el. Indítsa újra az előző verziót vagy futtassa a teljes -reindex parancsot.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Nem lehetséges a megadott kapcsolatok és az addrman által felderített kapcsolatok egyidejű használata.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Hiba %s betöltése közben: Külső aláíró tárca betöltése külső aláírók támogatása nélkül</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">A konfigurációs beálltás %s kizárólag az %s hálózatra vonatkozik amikor a [%s] szekcióban van.</translation>
@@ -657,11 +669,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Error initializing block database</source>
-        <translation type="unfinished">A blokkadatbázis inicializálása nem sikerült</translation>
+        <translation type="unfinished">A blokkadatbázis előkészítése nem sikerült</translation>
     </message>
     <message>
         <source>Error initializing wallet database environment %s!</source>
-        <translation type="unfinished">A tárca-adatbázis inicializálása nem sikerült: %s!</translation>
+        <translation type="unfinished">A tárca-adatbázis előkészítése nem sikerült: %s!</translation>
     </message>
     <message>
         <source>Error loading %s</source>
@@ -963,6 +975,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Tranzakció összege nem lehet negatív</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Tartományon kivüli tranzakció visszajáró index</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">A tranzakcóihoz tartozó mempool elődlánc túl hosszú</translation>
@@ -1258,7 +1274,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>A tranzakció történetből %n blokk feldolgozva.</numerusform>
         </translation>
     </message>
     <message>
@@ -1377,11 +1393,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 kliens</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Elrejt</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">&amp;Mutat</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n aktív kapcsolat a Bitcoin hálózathoz.</numerusform>
         </translation>
     </message>
     <message>
@@ -1881,6 +1905,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB szabad hely áll rendelkezésre</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(a szükséges %1 GB-ból)</translation>
@@ -1901,7 +1929,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>(elegendő %n nappal ezelőtti biztonsági mentések visszaállításához)</numerusform>
         </translation>
     </message>
     <message>
@@ -2262,7 +2290,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Show only a tray icon after minimizing the window.</source>
-        <translation type="unfinished">Kicsinyítés után csak eszköztár-ikont mutass</translation>
+        <translation type="unfinished">Kicsinyítés után csak az eszköztár-ikont mutassa.</translation>
     </message>
     <message>
         <source>&amp;Minimize to the tray instead of the taskbar</source>
@@ -2270,7 +2298,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>M&amp;inimize on close</source>
-        <translation type="unfinished">K&amp;icsinyítés záráskor</translation>
+        <translation type="unfinished">K&amp;icsinyítés bezáráskor</translation>
     </message>
     <message>
         <source>&amp;Display</source>
@@ -3668,7 +3696,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>A megerősítésnek becsült kezdete %n blokkon belül várható.</numerusform>
         </translation>
     </message>
     <message>
@@ -4009,7 +4037,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>Beérik %n blokk múlva</numerusform>
         </translation>
     </message>
     <message>
@@ -4369,7 +4397,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     </message>
     <message>
         <source>to</source>
-        <translation type="unfinished">meddig</translation>
+        <translation type="unfinished">-</translation>
     </message>
 </context>
 <context>
diff --git a/src/qt/locale/bitcoin_tk.ts b/src/qt/locale/bitcoin_tk.ts
new file mode 100644
index 00000000000..c081f3687c3
--- /dev/null
+++ b/src/qt/locale/bitcoin_tk.ts
@@ -0,0 +1,484 @@
+<TS version="2.1" language="tk">
+<context>
+    <name>AddressBookPage</name>
+    <message>
+        <source>Right-click to edit address or label</source>
+        <translation type="unfinished">Salgyny ýa-da belligi rejelemek üçin syçanjygyň sag düwmesine basyň</translation>
+    </message>
+    <message>
+        <source>Create a new address</source>
+        <translation type="unfinished">Täze salgy döret</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation type="unfinished">&amp;Täze</translation>
+    </message>
+    <message>
+        <source>Copy the currently selected address to the system clipboard</source>
+        <translation type="unfinished">Häzir saýlanan salgyny ulgamyň alyş-çalyş paneline göçür</translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">&amp;Göçür</translation>
+    </message>
+    <message>
+        <source>C&amp;lose</source>
+        <translation type="unfinished">Ý&amp;ap</translation>
+    </message>
+    <message>
+        <source>Delete the currently selected address from the list</source>
+        <translation type="unfinished">Häzir saýlanan salgyny bu sanawdan poz</translation>
+    </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">Gözlemek üçin salgy ýa-da belligi ýaz</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Häzirki bellikdäki maglumaty faýla geçir</translation>
+    </message>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;Geçir</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation type="unfinished">&amp;Poz</translation>
+    </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">Teňňeleriň haýsy salga iberiljekdigini saýla</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">Teňňeleriň haýsy salgydan alynjakdygyny saýla</translation>
+    </message>
+    <message>
+        <source>C&amp;hoose</source>
+        <translation type="unfinished">S&amp;aýla</translation>
+    </message>
+    <message>
+        <source>Sending addresses</source>
+        <translation type="unfinished">Iberýän salgylar</translation>
+    </message>
+    <message>
+        <source>Receiving addresses</source>
+        <translation type="unfinished">Kabul edýän salgylar</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">Tölegleri ibermek üçin siziň Bitkoin salgylaryňyz şulardyr. Teňňeleri ibermezden ozal hemişe möçberi we kabul edýän salgyny barlaň.</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Tölegleri kabul etmek üçin siziň Bitkoin salgylaryňyz şulardyr. Täze salgylary döretmek üçin kabul etmek bölüminde "Täze kabul ediji salgyny döret" düwmesini ulan.
+Diňe "miras" görnüşli salgylar bilen gol çekmek mümkin.</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Address</source>
+        <translation type="unfinished">Salgyny göçür</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Label</source>
+        <translation type="unfinished">&amp;Belligi göçür</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation type="unfinished">&amp;Rejele</translation>
+    </message>
+    <message>
+        <source>Export Address List</source>
+        <translation type="unfinished">Salgylar sanawyny geçir</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Otur bilen aýrylan faýl</translation>
+    </message>
+    <message>
+        <source>There was an error trying to save the address list to %1. Please try again.</source>
+        <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
+        <translation type="unfinished">Salgylar sanawyny %1 içine bellemäge çalşylanda ýalňyşlyk ýüze çykdy. Täzeden synap görüň.</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">Geçirip bolmady</translation>
+    </message>
+</context>
+<context>
+    <name>AddressTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Bellik</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">Salgy</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+</context>
+<context>
+    <name>AskPassphraseDialog</name>
+    <message>
+        <source>Passphrase Dialog</source>
+        <translation type="unfinished">Parol sözlemi gepleşigi</translation>
+    </message>
+    <message>
+        <source>Enter passphrase</source>
+        <translation type="unfinished">Parol sözlemini ýaz</translation>
+    </message>
+    <message>
+        <source>New passphrase</source>
+        <translation type="unfinished">Täze parol sözlemi</translation>
+    </message>
+    <message>
+        <source>Repeat new passphrase</source>
+        <translation type="unfinished">Täze parol sözlemini gaýtala</translation>
+    </message>
+    <message>
+        <source>Show passphrase</source>
+        <translation type="unfinished">Parol sözlemini görkez</translation>
+    </message>
+    <message>
+        <source>Encrypt wallet</source>
+        <translation type="unfinished">Gapjygy şifrle</translation>
+    </message>
+    <message>
+        <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+        <translation type="unfinished">Bu amal üçin gapjygyň parol sözlemi bilen gapjygyňyzyň gulpuny açmagyňyz gerek.</translation>
+    </message>
+    <message>
+        <source>Unlock wallet</source>
+        <translation type="unfinished">Gapjygyň gulpuny aç</translation>
+    </message>
+    <message>
+        <source>Change passphrase</source>
+        <translation type="unfinished">Parol sözlemini çalyş</translation>
+    </message>
+    <message>
+        <source>Confirm wallet encryption</source>
+        <translation type="unfinished">Gapjygyň şifrlenmegini tassykla</translation>
+    </message>
+    <message>
+        <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
+        <translation type="unfinished">Duýduryş: Eger gapjygyňy şifrleseň we parol sözlemiňi ýitirseň, sen &lt;b&gt;ÄHLI BITKOINLERIŇI ÝITIRERSIŇ&lt;/b&gt;!</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to encrypt your wallet?</source>
+        <translation type="unfinished">Gapjygyňy şifrlemek isleýäniň çynmy?</translation>
+    </message>
+    <message>
+        <source>Wallet encrypted</source>
+        <translation type="unfinished">Gapjyk şifrlenen</translation>
+    </message>
+    <message>
+        <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+        <translation type="unfinished">Gapjyk üçin täze parol sözlemini ýaz.&lt;br/&gt;&lt;b&gt;On ýa-da has köp tötänleýin nyşandan&lt;/b&gt; ýa-da &lt;b&gt;sekiz ýa-da has köp sözden&lt;/b&gt; ybarat parol sözlemini ulanyň.</translation>
+    </message>
+    <message>
+        <source>Enter the old passphrase and new passphrase for the wallet.</source>
+        <translation type="unfinished">Gapjyk üçin öňki we täze parol sözlemiňi ýaz.</translation>
+    </message>
+    <message>
+        <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+        <translation type="unfinished">Gapjygyňy şifrlemek kompýuteriňe zyýanly programma ýokuşmak arkaly bitkoinleriň ogurlanmagyndan doly gorap bilmejekdigini ýatdan çykarma.</translation>
+    </message>
+    <message>
+        <source>Wallet to be encrypted</source>
+        <translation type="unfinished">Şifrlenmeli gapjyk</translation>
+    </message>
+    <message>
+        <source>Your wallet is about to be encrypted. </source>
+        <translation type="unfinished">Gapjygyň şifrlener.</translation>
+    </message>
+    <message>
+        <source>Your wallet is now encrypted. </source>
+        <translation type="unfinished">Gapjygyň häzir şifrlenen.</translation>
+    </message>
+    <message>
+        <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+        <translation type="unfinished">WAJYP: Gapjyk faýlyň islendik ozalky ätiýaçlyk nusgalary täze emele gelen, şifrlenen gapjyk faýly bilen çalşyrylmaly. Howpsuzlyk maksady bilen, şifrlenen gapjyk faýlynyň ozalky ätiýaçlyk nusgalary täze şifrlenen gapjygy ulanyp başlan badyňyza peýdasyz bolup galar.</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed</source>
+        <translation type="unfinished">Gapjygy şifrläp bolmady</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+        <translation type="unfinished">Içki ýalňyşlyk sebäpli gapjygy şifrläp bolmady. Gapjygyň şifrlenmedi.</translation>
+    </message>
+    <message>
+        <source>The supplied passphrases do not match.</source>
+        <translation type="unfinished">Üpjün edilen parol sözlemleri gabat gelenok.</translation>
+    </message>
+    <message>
+        <source>Wallet unlock failed</source>
+        <translation type="unfinished">Gapjygyň gulpuny açyp bolmady</translation>
+    </message>
+    <message>
+        <source>The passphrase entered for the wallet decryption was incorrect.</source>
+        <translation type="unfinished">Gapjygyň şifrini açmak üçin ýazylan parol sözlemi nädogry.</translation>
+    </message>
+    <message>
+        <source>Wallet passphrase was successfully changed.</source>
+        <translation type="unfinished">Gapjygyň parol sözlemi üstünlikli çalşyldy.</translation>
+    </message>
+    <message>
+        <source>Warning: The Caps Lock key is on!</source>
+        <translation type="unfinished">Duýduryş: Caps Lock düwmesi açyk!</translation>
+    </message>
+</context>
+<context>
+    <name>BanTableModel</name>
+    <message>
+        <source>Banned Until</source>
+        <translation type="unfinished">Gadagan edilen möhleti</translation>
+    </message>
+</context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">Dolandyryp bolmaýan ýagdaý</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">Ýowuz ýalňyşlyk ýüze çykdy. %1 indi ygtybarly dowam edip bilenok we çykar.</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">Içki ýalňyşlyk</translation>
+    </message>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">Içki ýalňyşlyk ýüze çykdy. %1 ygtybarly dowam etmäge çalyşar. Bu garaşylmadyk näsazlyk we ol barada aşakda beýan edilişi ýaly hasabat berip bolar.</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Sazlamalary deslapky ýagdaýyna getirmek isleýäňmi ýa-da hiçhili üýtgeşme girizmezden ýatyrmak?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Ýowuz ýalňyşlyk ýüze çykdy. Sazlamalar faýlyna ýazmak mümkinçiliginiň bardygyny ýa-da ýokdugyny barla, bolmasa -nosettings bilen işletmäge çalyş.</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" does not exist.</source>
+        <translation type="unfinished">Ýalňyşlyk: Görkezilen maglumatlar katalogy "%1" ýok.</translation>
+    </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">Ýalňyşlyk: %1 konfigurasiýa faýlyny derňäp bolanok.</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">Ýalňyşlyk: %1</translation>
+    </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 entek ygtybarly çykmady...</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n second(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n minute(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n hour(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n day(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n week(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n year(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Sazlamalar faýlyny okap bolanok</translation>
+    </message>
+    </context>
+<context>
+    <name>BitcoinGUI</name>
+    <message numerus="yes">
+        <source>Processed %n block(s) of transaction history.</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished">Duýduryş</translation>
+    </message>
+    <message>
+        <source>Information</source>
+        <translation type="unfinished">Maglumat</translation>
+    </message>
+    <message>
+        <source>Up to date</source>
+        <translation type="unfinished">Döwrebap</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">Bölekleýýin gol çekilen bitkoin amalyny (BGÇBA) ýükle</translation>
+    </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">&amp;alyş-çalyş panelinden BGÇBA ýükle…</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">Ýalňyşlyk: %1</translation>
+    </message>
+    </context>
+<context>
+    <name>CoinControlDialog</name>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+    </context>
+<context>
+    <name>Intro</name>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>PeerTableModel</name>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">Salgy</translation>
+    </message>
+    </context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Bellik</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDesc</name>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Bellik</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Otur bilen aýrylan faýl</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Bellik</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">Salgy</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">Geçirip bolmady</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletView</name>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;Geçir</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Häzirki bellikdäki maglumaty faýla geçir</translation>
+    </message>
+    </context>
+</TS>
\ No newline at end of file

From 0dcbd2ee9334e9f722796cd5255928ac8fdc4da6 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Sun, 6 Mar 2022 10:16:58 +0000
Subject: [PATCH 004/187] guix: use same commit for codesigning time-machine

The time machines should be updated in lockstep.

Github-Pull: #24484
Rebased-From: 29862bdd402112a98d5da08cb9909bd427b955ad
---
 contrib/guix/guix-codesign | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/guix/guix-codesign b/contrib/guix/guix-codesign
index 2dd30bfa645..8be927bd064 100755
--- a/contrib/guix/guix-codesign
+++ b/contrib/guix/guix-codesign
@@ -227,7 +227,7 @@ SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(git -c log.showSignature=false log --f
 time-machine() {
     # shellcheck disable=SC2086
     guix time-machine --url=https://git.savannah.gnu.org/git/guix.git \
-                      --commit=aa34d4d28dfe25ba47d5800d05000fb7221788c0 \
+                      --commit=ae03f401381e956c4c41b4cf495cbde964fa43d0 \
                       --cores="$JOBS" \
                       --keep-failed \
                       --fallback \

From 4607f700d07cd813db4e8ef516b68a759674e1db Mon Sep 17 00:00:00 2001
From: Ryan Ofsky <ryan@ofsky.org>
Date: Mon, 7 Mar 2022 13:29:46 -0500
Subject: [PATCH 005/187] test: Add tests for GetArg methods / settings.json
 type coercion

Just add tests. No changes to application behavior. Tests will be
updated in the next commit changing & improving current behavior.

Include a Qt test for GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 caused by GetArg
behavior that happens if settings.json contains an integer value for any
of the configuration options which GUI settings can currently clash with
(-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen,
-server, -proxy, -proxy, -onion, -onion, -lang, and -prune).

Github-Pull: bitcoin/bitcoin#24498
Rebased-From: 84b0973e35dae63cd1b60199b481e24d54e58c97
---
 .../test_bitcoin-qt/test_bitcoin-qt.vcxproj   |   3 +
 src/Makefile.qttest.include                   |   3 +
 src/qt/test/optiontests.cpp                   |  31 +++++
 src/qt/test/optiontests.h                     |  25 ++++
 src/qt/test/test_main.cpp                     |   5 +
 src/test/getarg_tests.cpp                     | 112 ++++++++++++++++++
 6 files changed, 179 insertions(+)
 create mode 100644 src/qt/test/optiontests.cpp
 create mode 100644 src/qt/test/optiontests.h

diff --git a/build_msvc/test_bitcoin-qt/test_bitcoin-qt.vcxproj b/build_msvc/test_bitcoin-qt/test_bitcoin-qt.vcxproj
index d3be693e994..ec572b4f2ed 100644
--- a/build_msvc/test_bitcoin-qt/test_bitcoin-qt.vcxproj
+++ b/build_msvc/test_bitcoin-qt/test_bitcoin-qt.vcxproj
@@ -12,6 +12,7 @@
     <ClCompile Include="..\..\src\test\util\setup_common.cpp" />
     <ClCompile Include="..\..\src\qt\test\addressbooktests.cpp" />
     <ClCompile Include="..\..\src\qt\test\apptests.cpp" />
+    <ClCompile Include="..\..\src\qt\test\optiontests.cpp" />
     <ClCompile Include="..\..\src\qt\test\rpcnestedtests.cpp" />
     <ClCompile Include="..\..\src\qt\test\test_main.cpp" />
     <ClCompile Include="..\..\src\qt\test\uritests.cpp" />
@@ -20,6 +21,7 @@
     <ClCompile Include="..\..\src\wallet\test\wallet_test_fixture.cpp" />
     <ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_addressbooktests.cpp" />
     <ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_apptests.cpp" />
+    <ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_optiontests.cpp" />
     <ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_rpcnestedtests.cpp" />
     <ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_uritests.cpp" />
     <ClCompile Include="$(GeneratedFilesOutDir)\moc\moc_wallettests.cpp" />
@@ -88,6 +90,7 @@
   <ItemGroup>
     <MocTestFiles Include="..\..\src\qt\test\addressbooktests.h" />
     <MocTestFiles Include="..\..\src\qt\test\apptests.h" />
+    <MocTestFiles Include="..\..\src\qt\test\optiontests.h" />
     <MocTestFiles Include="..\..\src\qt\test\rpcnestedtests.h" />
     <MocTestFiles Include="..\..\src\qt\test\uritests.h" />
     <MocTestFiles Include="..\..\src\qt\test\wallettests.h" />
diff --git a/src/Makefile.qttest.include b/src/Makefile.qttest.include
index 8e6fa2eb0d7..29c322fbc2e 100644
--- a/src/Makefile.qttest.include
+++ b/src/Makefile.qttest.include
@@ -7,6 +7,7 @@ TESTS += qt/test/test_bitcoin-qt
 
 TEST_QT_MOC_CPP = \
   qt/test/moc_apptests.cpp \
+  qt/test/moc_optiontests.cpp \
   qt/test/moc_rpcnestedtests.cpp \
   qt/test/moc_uritests.cpp
 
@@ -19,6 +20,7 @@ endif # ENABLE_WALLET
 TEST_QT_H = \
   qt/test/addressbooktests.h \
   qt/test/apptests.h \
+  qt/test/optiontests.h \
   qt/test/rpcnestedtests.h \
   qt/test/uritests.h \
   qt/test/util.h \
@@ -30,6 +32,7 @@ qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_
 qt_test_test_bitcoin_qt_SOURCES = \
   init/bitcoin-qt.cpp \
   qt/test/apptests.cpp \
+  qt/test/optiontests.cpp \
   qt/test/rpcnestedtests.cpp \
   qt/test/test_main.cpp \
   qt/test/uritests.cpp \
diff --git a/src/qt/test/optiontests.cpp b/src/qt/test/optiontests.cpp
new file mode 100644
index 00000000000..80d8d77984f
--- /dev/null
+++ b/src/qt/test/optiontests.cpp
@@ -0,0 +1,31 @@
+// Copyright (c) 2018 The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#include <qt/bitcoin.h>
+#include <qt/test/optiontests.h>
+#include <test/util/setup_common.h>
+#include <util/system.h>
+
+#include <QSettings>
+#include <QTest>
+
+#include <univalue.h>
+
+//! Entry point for BitcoinApplication tests.
+void OptionTests::optionTests()
+{
+    // Test regression https://github.com/bitcoin/bitcoin/issues/24457. Check
+    // if setting an integer prune value causes an exception to be thrown in
+    // the OptionsModel constructor.
+    gArgs.LockSettings([&](util::Settings& settings) {
+        settings.forced_settings.erase("prune");
+        settings.rw_settings["prune"] = 3814;
+    });
+    gArgs.WriteSettingsFile();
+    QVERIFY_EXCEPTION_THROWN(OptionsModel{}, std::runtime_error);
+    gArgs.LockSettings([&](util::Settings& settings) {
+        settings.rw_settings.erase("prune");
+    });
+    gArgs.WriteSettingsFile();
+}
diff --git a/src/qt/test/optiontests.h b/src/qt/test/optiontests.h
new file mode 100644
index 00000000000..779d4cc209a
--- /dev/null
+++ b/src/qt/test/optiontests.h
@@ -0,0 +1,25 @@
+// Copyright (c) 2019 The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef BITCOIN_QT_TEST_OPTIONTESTS_H
+#define BITCOIN_QT_TEST_OPTIONTESTS_H
+
+#include <qt/optionsmodel.h>
+
+#include <QObject>
+
+class OptionTests : public QObject
+{
+    Q_OBJECT
+public:
+    explicit OptionTests(interfaces::Node& node) : m_node(node) {}
+
+private Q_SLOTS:
+    void optionTests();
+
+private:
+    interfaces::Node& m_node;
+};
+
+#endif // BITCOIN_QT_TEST_OPTIONTESTS_H
diff --git a/src/qt/test/test_main.cpp b/src/qt/test/test_main.cpp
index 10b7e2ffe78..07d256f05ae 100644
--- a/src/qt/test/test_main.cpp
+++ b/src/qt/test/test_main.cpp
@@ -10,6 +10,7 @@
 #include <interfaces/node.h>
 #include <qt/bitcoin.h>
 #include <qt/test/apptests.h>
+#include <qt/test/optiontests.h>
 #include <qt/test/rpcnestedtests.h>
 #include <qt/test/uritests.h>
 #include <test/util/setup_common.h>
@@ -89,6 +90,10 @@ int main(int argc, char* argv[])
     if (QTest::qExec(&app_tests) != 0) {
         fInvalid = true;
     }
+    OptionTests options_tests(app.node());
+    if (QTest::qExec(&options_tests) != 0) {
+        fInvalid = true;
+    }
     URITests test1;
     if (QTest::qExec(&test1) != 0) {
         fInvalid = true;
diff --git a/src/test/getarg_tests.cpp b/src/test/getarg_tests.cpp
index ef9d72dcde5..56eca24cd49 100644
--- a/src/test/getarg_tests.cpp
+++ b/src/test/getarg_tests.cpp
@@ -3,6 +3,8 @@
 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
 
 #include <test/util/setup_common.h>
+#include <univalue.h>
+#include <util/settings.h>
 #include <util/strencodings.h>
 #include <util/system.h>
 
@@ -41,6 +43,116 @@ void SetupArgs(ArgsManager& local_args, const std::vector<std::pair<std::string,
     }
 }
 
+// Test behavior of GetArg functions when string, integer, and boolean types
+// are specified in the settings.json file. GetArg functions are convenience
+// functions. The GetSetting method can always be used instead of GetArg
+// methods to retrieve original values, and there's not always an objective
+// answer to what GetArg behavior is best in every case. This test makes sure
+// there's test coverage for whatever the current behavior is, so it's not
+// broken or changed unintentionally.
+BOOST_AUTO_TEST_CASE(setting_args)
+{
+    ArgsManager args;
+    SetupArgs(args, {{"-foo", ArgsManager::ALLOW_ANY}});
+
+    auto set_foo = [&](const util::SettingsValue& value) {
+      args.LockSettings([&](util::Settings& settings) {
+        settings.rw_settings["foo"] = value;
+      });
+    };
+
+    set_foo("str");
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"str\"");
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "str");
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
+
+    set_foo("99");
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"99\"");
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "99");
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 99);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
+
+    set_foo("3.25");
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"3.25\"");
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "3.25");
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 3);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
+
+    set_foo("0");
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"0\"");
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "0");
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
+
+    set_foo("");
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"\"");
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "");
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
+
+    set_foo(99);
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "99");
+    BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 99);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
+
+    set_foo(3.25);
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "3.25");
+    BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
+
+    set_foo(0);
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "0");
+    BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
+
+    set_foo(true);
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "true");
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "1");
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 1);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
+
+    set_foo(false);
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "false");
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "0");
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
+
+    set_foo(UniValue::VOBJ);
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "{}");
+    BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
+
+    set_foo(UniValue::VARR);
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "[]");
+    BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
+    BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
+
+    set_foo(UniValue::VNULL);
+    BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "null");
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "default");
+    BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 100);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
+    BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
+}
+
 BOOST_AUTO_TEST_CASE(boolarg)
 {
     ArgsManager local_args;

From 7e1b968f61a1309dfd0fc4f7cd5a2d964bfc4f30 Mon Sep 17 00:00:00 2001
From: Ryan Ofsky <ryan@ofsky.org>
Date: Mon, 7 Mar 2022 13:29:46 -0500
Subject: [PATCH 006/187] qt: Avoid crash on startup if int specified in
 settings.json

Fix GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 that happens if
settings.json contains an integer value for any of the configuration
options which GUI settings can currently clash with (-dbcache, -par,
-spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy,
-proxy, -onion, -onion, -lang, and -prune).

Fix is a one-line change in ArgsManager::GetArg.

Github-Pull: bitcoin/bitcoin#24498
Rebased-From: 5b1aae12ca4a99c6b09349981a4902717a6a5d3e
---
 src/qt/test/optiontests.cpp | 8 ++++----
 src/test/getarg_tests.cpp   | 6 +++---
 src/util/system.cpp         | 2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/qt/test/optiontests.cpp b/src/qt/test/optiontests.cpp
index 80d8d77984f..51894e1915f 100644
--- a/src/qt/test/optiontests.cpp
+++ b/src/qt/test/optiontests.cpp
@@ -15,15 +15,15 @@
 //! Entry point for BitcoinApplication tests.
 void OptionTests::optionTests()
 {
-    // Test regression https://github.com/bitcoin/bitcoin/issues/24457. Check
-    // if setting an integer prune value causes an exception to be thrown in
-    // the OptionsModel constructor.
+    // Test regression https://github.com/bitcoin/bitcoin/issues/24457. Ensure
+    // that setting integer prune value doesn't cause an exception to be thrown
+    // in the OptionsModel constructor
     gArgs.LockSettings([&](util::Settings& settings) {
         settings.forced_settings.erase("prune");
         settings.rw_settings["prune"] = 3814;
     });
     gArgs.WriteSettingsFile();
-    QVERIFY_EXCEPTION_THROWN(OptionsModel{}, std::runtime_error);
+    OptionsModel{};
     gArgs.LockSettings([&](util::Settings& settings) {
         settings.rw_settings.erase("prune");
     });
diff --git a/src/test/getarg_tests.cpp b/src/test/getarg_tests.cpp
index 56eca24cd49..32edeb47f33 100644
--- a/src/test/getarg_tests.cpp
+++ b/src/test/getarg_tests.cpp
@@ -98,21 +98,21 @@ BOOST_AUTO_TEST_CASE(setting_args)
 
     set_foo(99);
     BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "99");
-    BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "99");
     BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 99);
     BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
     BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
 
     set_foo(3.25);
     BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "3.25");
-    BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "3.25");
     BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
     BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
     BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
 
     set_foo(0);
     BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "0");
-    BOOST_CHECK_THROW(args.GetArg("foo", "default"), std::runtime_error);
+    BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "0");
     BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
     BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
     BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
diff --git a/src/util/system.cpp b/src/util/system.cpp
index aa9122106bd..b5915335c5b 100644
--- a/src/util/system.cpp
+++ b/src/util/system.cpp
@@ -588,7 +588,7 @@ bool ArgsManager::IsArgNegated(const std::string& strArg) const
 std::string ArgsManager::GetArg(const std::string& strArg, const std::string& strDefault) const
 {
     const util::SettingsValue value = GetSetting(strArg);
-    return value.isNull() ? strDefault : value.isFalse() ? "0" : value.isTrue() ? "1" : value.get_str();
+    return value.isNull() ? strDefault : value.isFalse() ? "0" : value.isTrue() ? "1" : value.isNum() ? value.getValStr() : value.get_str();
 }
 
 int64_t ArgsManager::GetIntArg(const std::string& strArg, int64_t nDefault) const

From eba46583eda59df1dde72b331f45e340818fa34c Mon Sep 17 00:00:00 2001
From: Andrew Chow <achow101-github@achow101.com>
Date: Wed, 9 Mar 2022 09:50:53 -0500
Subject: [PATCH 007/187] guix: use latest signapple

Github-Pull: #24506
Rebased-From: 6e9308c6d4ed9fbf909c7234ae31245747183be3
---
 contrib/guix/manifest.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index d296eb9543c..ebb736f972e 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -490,7 +490,7 @@ and endian independent.")
     (license license:expat)))
 
 (define-public python-signapple
-  (let ((commit "b084cbbf44d5330448ffce0c7d118f75781b64bd"))
+  (let ((commit "0777ce58e61b0e6be753a5f524149d6d47905186"))
     (package
       (name "python-signapple")
       (version (git-version "0.1" "1" commit))
@@ -503,7 +503,7 @@ and endian independent.")
          (file-name (git-file-name name commit))
          (sha256
           (base32
-           "0k7inccl2mzac3wq4asbr0kl8s4cghm8982z54kfascqg45shv01"))))
+           "19axspyyfqbrfw2r53c17mi9bvm8zsb39mz8v9h7c173qkm3x5ym"))))
       (build-system python-build-system)
       (propagated-inputs
        `(("python-asn1crypto" ,python-asn1crypto)

From 1fd91da45438a803e5dc968bb976fb0fc79f4a72 Mon Sep 17 00:00:00 2001
From: Andrew Chow <achow101-github@achow101.com>
Date: Wed, 9 Mar 2022 09:09:40 -0500
Subject: [PATCH 008/187] build, mac: Include arch in codesignature tarball

Github-Pull: #24506
Rebased-From: 0189df1d3171082caf743ef3b0968f43c71303f5
---
 contrib/macdeploy/detached-sig-create.sh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/contrib/macdeploy/detached-sig-create.sh b/contrib/macdeploy/detached-sig-create.sh
index 0d61ceb9df0..f393331084e 100755
--- a/contrib/macdeploy/detached-sig-create.sh
+++ b/contrib/macdeploy/detached-sig-create.sh
@@ -8,9 +8,11 @@ set -e
 
 ROOTDIR=dist
 BUNDLE="${ROOTDIR}/Bitcoin-Qt.app"
+BINARY="${BUNDLE}/Contents/MacOS/Bitcoin-Qt"
 SIGNAPPLE=signapple
 TEMPDIR=sign.temp
-OUT=signature-osx.tar.gz
+ARCH=$(${SIGNAPPLE} info ${BINARY} | head -n 1 | cut -d " " -f 1)
+OUT="signature-osx-${ARCH}.tar.gz"
 OUTROOT=osx/dist
 
 if [ -z "$1" ]; then

From 60ca24a50686dfc7058293cd63ceb349cc621c03 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 10 Mar 2022 11:25:19 +0100
Subject: [PATCH 009/187] build: Bump to 23.0rc2

Tree-SHA512: 6432a93c0f7cca96e548b1a12958b5812621b74c05de581b94fe6a2b2f5958c42bdbc6c1bbe0ab34829d3942784fc811d270fb95b6f64b8228d4b3ec4ccc163f
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 36094e7b321..a83341ee806 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 0)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 71866d856679faa501c2cecad3c1820e31f13a9b Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 10 Mar 2022 11:49:56 +0100
Subject: [PATCH 010/187] doc: Update manual pages for rc2

Tree-SHA512: c0ded71cf1dc0b0727f7b87ad353b149fd0c53fdcccf6c058bbcaf3d4bdbf70290b3296f3a93af6f442cbcb1a007f4f8784941fdfd930e389dc5a229c6ee632a
---
 doc/man/bitcoin-cli.1    | 6 +++---
 doc/man/bitcoin-qt.1     | 6 +++---
 doc/man/bitcoin-tx.1     | 6 +++---
 doc/man/bitcoin-util.1   | 6 +++---
 doc/man/bitcoin-wallet.1 | 6 +++---
 doc/man/bitcoind.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index 5e4c3567689..2557a13f981 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-CLI "1" "March 2022" "bitcoin-cli v23.0.0rc1" "User Commands"
+.TH BITCOIN-CLI "1" "March 2022" "bitcoin-cli v23.0.0rc2" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc1
+bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc2
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc1
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.0.0rc1
+Bitcoin Core RPC client version v23.0.0rc2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index 1455688b802..b5000e900bb 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-QT "1" "March 2022" "bitcoin-qt v23.0.0rc1" "User Commands"
+.TH BITCOIN-QT "1" "March 2022" "bitcoin-qt v23.0.0rc2" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc1
+bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc2
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc1
+Bitcoin Core version v23.0.0rc2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index 6c17b64a9e7..918e88a20be 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-TX "1" "March 2022" "bitcoin-tx v23.0.0rc1" "User Commands"
+.TH BITCOIN-TX "1" "March 2022" "bitcoin-tx v23.0.0rc2" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc1
+bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc2
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc1
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.0.0rc1
+Bitcoin Core bitcoin\-tx utility version v23.0.0rc2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index 6b78b045a3c..a314047542c 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-UTIL "1" "March 2022" "bitcoin-util v23.0.0rc1" "User Commands"
+.TH BITCOIN-UTIL "1" "March 2022" "bitcoin-util v23.0.0rc2" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.0.0rc1
+bitcoin-util \- manual page for bitcoin-util v23.0.0rc2
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.0.0rc1
+Bitcoin Core bitcoin\-util utility version v23.0.0rc2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 4009890aefb..7f4a92d606a 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-WALLET "1" "March 2022" "bitcoin-wallet v23.0.0rc1" "User Commands"
+.TH BITCOIN-WALLET "1" "March 2022" "bitcoin-wallet v23.0.0rc2" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc1
+bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc2
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.0.0rc1
+Bitcoin Core bitcoin\-wallet version v23.0.0rc2
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index 18c4a65c6a2..d3e1e3e79f5 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIND "1" "March 2022" "bitcoind v23.0.0rc1" "User Commands"
+.TH BITCOIND "1" "March 2022" "bitcoind v23.0.0rc2" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.0.0rc1
+bitcoind \- manual page for bitcoind v23.0.0rc2
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc1
+Bitcoin Core version v23.0.0rc2
 .SH OPTIONS
 .HP
 \-?

From 2a6fcf9c136f7a0c6ba12010ff1769acd07804cf Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Tue, 1 Mar 2022 21:13:22 +0100
Subject: [PATCH 011/187] init, doc: improve -onlynet help and tor/i2p
 documentation

and harmonize them as follows

- s/outgoing/automatic outbound/
- s/Incoming/Inbound and manual/ (are not affected by this option.)
- s/only through network/only to network/
- s/this option. This option/this option. It/
- s/network types/networks/

and also pick up a few nits in doc/p2p-bad-ports.md

Github-Pull: bitcoin#24468
Rebased-From: a1db99a
---
 doc/i2p.md           | 6 +++---
 doc/p2p-bad-ports.md | 6 +++---
 doc/tor.md           | 8 ++++----
 src/init.cpp         | 2 +-
 4 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/doc/i2p.md b/doc/i2p.md
index ee650f39998..e45b5efb9b8 100644
--- a/doc/i2p.md
+++ b/doc/i2p.md
@@ -65,9 +65,9 @@ logging` for more information.
 -onlynet=i2p
 ```
 
-Make outgoing connections only to I2P addresses. Incoming connections are not
-affected by this option. It can be specified multiple times to allow multiple
-network types, e.g. onlynet=onion, onlynet=i2p.
+Make automatic outbound connections only to I2P addresses. Inbound and manual
+connections are not affected by this option. It can be specified multiple times
+to allow multiple networks, e.g. onlynet=onion, onlynet=i2p.
 
 I2P support was added to Bitcoin Core in version 22.0 and there may be fewer I2P
 peers than Tor or IP ones. Therefore, using I2P alone without other networks may
diff --git a/doc/p2p-bad-ports.md b/doc/p2p-bad-ports.md
index 0dd7d36cf46..4f717f97a29 100644
--- a/doc/p2p-bad-ports.md
+++ b/doc/p2p-bad-ports.md
@@ -1,6 +1,6 @@
-When Bitcoin Core automatically opens outgoing P2P connections it chooses
+When Bitcoin Core automatically opens outgoing P2P connections, it chooses
 a peer (address and port) from its list of potential peers. This list is
-populated with unchecked data, gossiped over the P2P network by other peers.
+populated with unchecked data gossiped over the P2P network by other peers.
 
 A malicious actor may gossip an address:port where no Bitcoin node is listening,
 or one where a service is listening that is not related to the Bitcoin network.
@@ -17,7 +17,7 @@ authentication are unlikely to be considered a malicious action,
 e.g. port 80 (http).
 
 Below is a list of "bad" ports which Bitcoin Core avoids when choosing a peer to
-connect to. If a node is listening on such a port, it will likely receive less
+connect to. If a node is listening on such a port, it will likely receive fewer
 incoming connections.
 
     1:     tcpmux
diff --git a/doc/tor.md b/doc/tor.md
index 086e6747bfd..b7c4f7d4259 100644
--- a/doc/tor.md
+++ b/doc/tor.md
@@ -55,10 +55,10 @@ outgoing connections, but more is possible.
     -seednode=X     SOCKS5. In Tor mode, such addresses can also be exchanged with
                     other P2P nodes.
 
-    -onlynet=onion  Make outgoing connections only to .onion addresses. Incoming
-                    connections are not affected by this option. This option can be
-                    specified multiple times to allow multiple network types, e.g.
-                    onlynet=onion, onlynet=i2p.
+    -onlynet=onion  Make automatic outbound connections only to .onion addresses.
+                    Inbound and manual connections are not affected by this option.
+                    It can be specified multiple times to allow multiple networks,
+                    e.g. onlynet=onion, onlynet=i2p.
 
 In a typical situation, this suffices to run behind a Tor proxy:
 
diff --git a/src/init.cpp b/src/init.cpp
index a3d53c3fae9..1c173302043 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -462,7 +462,7 @@ void SetupServerArgs(ArgsManager& argsman)
     argsman.AddArg("-onion=<ip:port>", "Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-i2psam=<ip:port>", "I2P SAM proxy to reach I2P peers and accept I2P connections (default: none)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-i2pacceptincoming", "If set and -i2psam is also set then incoming I2P connections are accepted via the SAM proxy. If this is not set but -i2psam is set then only outgoing connections will be made to the I2P network. Ignored if -i2psam is not set. Listening for incoming I2P connections is done through the SAM proxy, not by binding to a local address and port (default: 1)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
-    argsman.AddArg("-onlynet=<net>", "Make automatic outgoing connections only through network <net> (" + Join(GetNetworkNames(), ", ") + "). Incoming connections are not affected by this option. This option can be specified multiple times to allow multiple networks.", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
+    argsman.AddArg("-onlynet=<net>", "Make automatic outbound connections only to network <net> (" + Join(GetNetworkNames(), ", ") + "). Inbound and manual connections are not affected by this option. It can be specified multiple times to allow multiple networks.", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-peerbloomfilters", strprintf("Support filtering of blocks and transaction with bloom filters (default: %u)", DEFAULT_PEERBLOOMFILTERS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-peerblockfilters", strprintf("Serve compact block filters to peers per BIP 157 (default: %u)", DEFAULT_PEERBLOCKFILTERS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-permitbaremultisig", strprintf("Relay non-P2SH multisig (default: %u)", DEFAULT_PERMIT_BAREMULTISIG), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);

From ef6a37b7c4b942f2db95809a299700e410b94460 Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Fri, 11 Mar 2022 10:21:48 +0100
Subject: [PATCH 012/187] rpc: rename getdeploymentinfo status-next to
 status_next

Github-Pull: bitcoin#24528
Rebased-From: 5d7c69b
---
 src/rpc/blockchain.cpp            | 4 ++--
 test/functional/rpc_blockchain.py | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp
index 9817c80cbd9..ef572cf8f84 100644
--- a/src/rpc/blockchain.cpp
+++ b/src/rpc/blockchain.cpp
@@ -1481,7 +1481,7 @@ static void SoftForkDescPushBack(const CBlockIndex* blockindex, UniValue& softfo
     // BIP9 status
     bip9.pushKV("status", get_state_name(current_state));
     bip9.pushKV("since", g_versionbitscache.StateSinceHeight(blockindex->pprev, consensusParams, id));
-    bip9.pushKV("status-next", get_state_name(next_state));
+    bip9.pushKV("status_next", get_state_name(next_state));
 
     // BIP9 signalling status, if applicable
     if (has_signal) {
@@ -1623,7 +1623,7 @@ const std::vector<RPCResult> RPCHelpForDeployment{
         {RPCResult::Type::NUM, "min_activation_height", "minimum height of blocks for which the rules may be enforced"},
         {RPCResult::Type::STR, "status", "status of deployment at specified block (one of \"defined\", \"started\", \"locked_in\", \"active\", \"failed\")"},
         {RPCResult::Type::NUM, "since", "height of the first block to which the status applies"},
-        {RPCResult::Type::STR, "status-next", "status of deployment at the next block"},
+        {RPCResult::Type::STR, "status_next", "status of deployment at the next block"},
         {RPCResult::Type::OBJ, "statistics", /*optional=*/true, "numeric statistics about signalling for a softfork (only for \"started\" and \"locked_in\" status)",
         {
             {RPCResult::Type::NUM, "period", "the length in blocks of the signalling period"},
diff --git a/test/functional/rpc_blockchain.py b/test/functional/rpc_blockchain.py
index b264f23fb5e..193bd3f1cd8 100755
--- a/test/functional/rpc_blockchain.py
+++ b/test/functional/rpc_blockchain.py
@@ -200,7 +200,7 @@ def check_signalling_deploymentinfo_result(self, gdi_result, height, blockhash,
                     'timeout': 0x7fffffffffffffff,  # testdummy does not have a timeout so is set to the max int64 value
                     'min_activation_height': 0,
                     'status': 'started',
-                    'status-next': status_next,
+                    'status_next': status_next,
                     'since': 144,
                     'statistics': {
                         'period': 144,
@@ -220,7 +220,7 @@ def check_signalling_deploymentinfo_result(self, gdi_result, height, blockhash,
                     'timeout': 9223372036854775807,
                     'min_activation_height': 0,
                     'status': 'active',
-                    'status-next': 'active',
+                    'status_next': 'active',
                     'since': 0,
                 },
                 'height': 0,

From b1646f1bb573031ca587081276d9fe7c4873b8c9 Mon Sep 17 00:00:00 2001
From: Martin Zumsande <mzumsande@gmail.com>
Date: Thu, 10 Mar 2022 20:24:11 +0100
Subject: [PATCH 013/187] test: set segwit height back to 0 on regtest

This was changed in #22818 from 0 to 1. Since it changes
BLOCK_OPT_WIT of the genesis block, older versions of bitcoin
core would not read regtest directories created with newer versions
without a reindex.

Github-Pull: bitcoin#24527
Rebased-From: 5ce3057
---
 src/chainparams.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/chainparams.cpp b/src/chainparams.cpp
index d3ae6f4cb25..93510e925f3 100644
--- a/src/chainparams.cpp
+++ b/src/chainparams.cpp
@@ -397,7 +397,7 @@ class CRegTestParams : public CChainParams {
         consensus.BIP65Height = 1;  // Always active unless overridden
         consensus.BIP66Height = 1;  // Always active unless overridden
         consensus.CSVHeight = 1;    // Always active unless overridden
-        consensus.SegwitHeight = 1; // Always active unless overridden
+        consensus.SegwitHeight = 0; // Always active unless overridden
         consensus.MinBIP9WarningHeight = 0;
         consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
         consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks

From de528793b6912dd657c7197b1a01c2da708f0a1f Mon Sep 17 00:00:00 2001
From: Andrew Chow <achow101-github@achow101.com>
Date: Tue, 15 Mar 2022 14:02:27 -0400
Subject: [PATCH 014/187] Update signapple for platform identifier fix

Github-Pull: #24573
Rebased-From: 3c74f775ac956de4da4fc076b2360b687531cd63
---
 contrib/guix/manifest.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index ebb736f972e..052c1066e2b 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -490,7 +490,7 @@ and endian independent.")
     (license license:expat)))
 
 (define-public python-signapple
-  (let ((commit "0777ce58e61b0e6be753a5f524149d6d47905186"))
+  (let ((commit "8a945a2e7583be2665cf3a6a89d665b70ecd1ab6"))
     (package
       (name "python-signapple")
       (version (git-version "0.1" "1" commit))
@@ -503,7 +503,7 @@ and endian independent.")
          (file-name (git-file-name name commit))
          (sha256
           (base32
-           "19axspyyfqbrfw2r53c17mi9bvm8zsb39mz8v9h7c173qkm3x5ym"))))
+           "0fr1hangvfyiwflca6jg5g8zvg3jc9qr7vd2c12ff89pznf38dlg"))))
       (build-system python-build-system)
       (propagated-inputs
        `(("python-asn1crypto" ,python-asn1crypto)

From 7f6420c833fe63e51ec094c1484969d29aac415b Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Sun, 13 Mar 2022 09:59:41 +0100
Subject: [PATCH 015/187] guix: Use $HOST instead of generic osx{64} for macOS
 artifacts

Github-Pull: #24549
Rebased-From: 933a43018f0f1c0b72acbfa9de5e0f84bf49d0a2
---
 contrib/guix/guix-codesign       |  2 +-
 contrib/guix/libexec/build.sh    | 10 +++++-----
 contrib/guix/libexec/codesign.sh |  2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/contrib/guix/guix-codesign b/contrib/guix/guix-codesign
index 8be927bd064..5268da35b1d 100755
--- a/contrib/guix/guix-codesign
+++ b/contrib/guix/guix-codesign
@@ -155,7 +155,7 @@ unsigned_tarball_for_host() {
             echo "$(outdir_for_host "$1")/${DISTNAME}-win-unsigned.tar.gz"
             ;;
         *darwin*)
-            echo "$(outdir_for_host "$1")/${DISTNAME}-osx-unsigned.tar.gz"
+            echo "$(outdir_for_host "$1")/${DISTNAME}-${1}-unsigned.tar.gz"
             ;;
         *)
             exit 1
diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh
index e06a4693387..af52a1ad8c9 100755
--- a/contrib/guix/libexec/build.sh
+++ b/contrib/guix/libexec/build.sh
@@ -348,10 +348,10 @@ mkdir -p "$DISTSRC"
                 find . -print0 \
                     | sort --zero-terminated \
                     | tar --create --no-recursion --mode='u+rw,go+r-w,a+X' --null --files-from=- \
-                    | gzip -9n > "${OUTDIR}/${DISTNAME}-osx-unsigned.tar.gz" \
-                    || ( rm -f "${OUTDIR}/${DISTNAME}-osx-unsigned.tar.gz" && exit 1 )
+                    | gzip -9n > "${OUTDIR}/${DISTNAME}-${HOST}-unsigned.tar.gz" \
+                    || ( rm -f "${OUTDIR}/${DISTNAME}-${HOST}-unsigned.tar.gz" && exit 1 )
             )
-            make deploy ${V:+V=1} OSX_DMG="${OUTDIR}/${DISTNAME}-osx-unsigned.dmg"
+            make deploy ${V:+V=1} OSX_DMG="${OUTDIR}/${DISTNAME}-${HOST}-unsigned.dmg"
             ;;
     esac
     (
@@ -423,8 +423,8 @@ mkdir -p "$DISTSRC"
                 find "${DISTNAME}" -print0 \
                     | sort --zero-terminated \
                     | tar --create --no-recursion --mode='u+rw,go+r-w,a+X' --null --files-from=- \
-                    | gzip -9n > "${OUTDIR}/${DISTNAME}-${HOST//x86_64-apple-darwin/osx64}.tar.gz" \
-                    || ( rm -f "${OUTDIR}/${DISTNAME}-${HOST//x86_64-apple-darwin/osx64}.tar.gz" && exit 1 )
+                    | gzip -9n > "${OUTDIR}/${DISTNAME}-${HOST}.tar.gz" \
+                    || ( rm -f "${OUTDIR}/${DISTNAME}-${HOST}.tar.gz" && exit 1 )
                 ;;
         esac
     )  # $DISTSRC/installed
diff --git a/contrib/guix/libexec/codesign.sh b/contrib/guix/libexec/codesign.sh
index a8867ca351b..9e1bc90c3fa 100755
--- a/contrib/guix/libexec/codesign.sh
+++ b/contrib/guix/libexec/codesign.sh
@@ -91,7 +91,7 @@ mkdir -p "$DISTSRC"
                       -- -volume_date all_file_dates ="$SOURCE_DATE_EPOCH"
 
             # Compress uncompressed.dmg and output to OUTDIR
-            ./dmg dmg uncompressed.dmg "${OUTDIR}/${DISTNAME}-osx-signed.dmg"
+            ./dmg dmg uncompressed.dmg "${OUTDIR}/${DISTNAME}-${HOST}-signed.dmg"
             ;;
         *)
             exit 1

From 2e7cde8f6851be73477766bac00c4c922d79370f Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Wed, 16 Mar 2022 07:37:35 +0100
Subject: [PATCH 016/187] guix: Drop "-signed" suffix for signed macOS .dmg
 files

This change makes naming of the signed artifacts consistent across
different OSes, including Windows.

Github-Pull: #24549
Rebased-From: 4b4b04a66d8f088f6aa9ec6398db49d40481910f
---
 contrib/guix/libexec/codesign.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/guix/libexec/codesign.sh b/contrib/guix/libexec/codesign.sh
index 9e1bc90c3fa..6ede95f42b9 100755
--- a/contrib/guix/libexec/codesign.sh
+++ b/contrib/guix/libexec/codesign.sh
@@ -91,7 +91,7 @@ mkdir -p "$DISTSRC"
                       -- -volume_date all_file_dates ="$SOURCE_DATE_EPOCH"
 
             # Compress uncompressed.dmg and output to OUTDIR
-            ./dmg dmg uncompressed.dmg "${OUTDIR}/${DISTNAME}-${HOST}-signed.dmg"
+            ./dmg dmg uncompressed.dmg "${OUTDIR}/${DISTNAME}-${HOST}.dmg"
             ;;
         *)
             exit 1

From dd2c7f71fd0f759d0d724ff182b508fc2db59131 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Wed, 16 Mar 2022 12:03:22 +0100
Subject: [PATCH 017/187] guix: Use "win64" for Windows artifacts consistently

Github-Pull: #24549
Rebased-From: 53dd6165b8994301d638298906b006032e0bbe48
---
 contrib/guix/libexec/build.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh
index af52a1ad8c9..7340b0625fa 100755
--- a/contrib/guix/libexec/build.sh
+++ b/contrib/guix/libexec/build.sh
@@ -439,8 +439,8 @@ mkdir -p "$DISTSRC"
                 find . -print0 \
                     | sort --zero-terminated \
                     | tar --create --no-recursion --mode='u+rw,go+r-w,a+X' --null --files-from=- \
-                    | gzip -9n > "${OUTDIR}/${DISTNAME}-win-unsigned.tar.gz" \
-                    || ( rm -f "${OUTDIR}/${DISTNAME}-win-unsigned.tar.gz" && exit 1 )
+                    | gzip -9n > "${OUTDIR}/${DISTNAME}-win64-unsigned.tar.gz" \
+                    || ( rm -f "${OUTDIR}/${DISTNAME}-win64-unsigned.tar.gz" && exit 1 )
             )
             ;;
     esac

From f541a252f676dcdab15654e8b2b83b2dbcee46b3 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Wed, 16 Mar 2022 18:09:06 +0100
Subject: [PATCH 018/187] doc: Drop a note about Intel-based Macs

Github-Pull: #24588
Rebased-From: e359ba6b35edebf02b968fe60cae48473ed88826
---
 doc/build-osx.md | 2 --
 1 file changed, 2 deletions(-)

diff --git a/doc/build-osx.md b/doc/build-osx.md
index 16dc224aedb..685b0c36292 100644
--- a/doc/build-osx.md
+++ b/doc/build-osx.md
@@ -4,8 +4,6 @@
 
 This guide describes how to build bitcoind, command-line utilities, and GUI on macOS
 
-**Note:** The following is for Intel Macs only!
-
 ## Dependencies
 
 The following dependencies are **required**:

From fc421d4c8c8cdd94a5377a8004209506a089357b Mon Sep 17 00:00:00 2001
From: Sjors Provoost <sjors@sprovoost.nl>
Date: Mon, 21 Feb 2022 12:46:30 +0100
Subject: [PATCH 019/187] move-only: helper function to present PSBT

This commit does not change behavior.

Review hint:
git show --color-moved --color-moved-ws=allow-indentation-change

Github-Pull: bitcoin-core/gui#555
Rebased-From: 026b5b4523317fdefc69cf5cec55f76f18ad0c0a
---
 src/qt/sendcoinsdialog.cpp | 89 ++++++++++++++++++++------------------
 src/qt/sendcoinsdialog.h   |  2 +
 2 files changed, 49 insertions(+), 42 deletions(-)

diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index 579ef0c3fd5..b77fbb7b3b5 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -401,6 +401,52 @@ bool SendCoinsDialog::PrepareSendText(QString& question_string, QString& informa
     return true;
 }
 
+void SendCoinsDialog::presentPSBT(PartiallySignedTransaction& psbtx)
+{
+    // Serialize the PSBT
+    CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION);
+    ssTx << psbtx;
+    GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str());
+    QMessageBox msgBox;
+    msgBox.setText("Unsigned Transaction");
+    msgBox.setInformativeText("The PSBT has been copied to the clipboard. You can also save it.");
+    msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard);
+    msgBox.setDefaultButton(QMessageBox::Discard);
+    switch (msgBox.exec()) {
+    case QMessageBox::Save: {
+        QString selectedFilter;
+        QString fileNameSuggestion = "";
+        bool first = true;
+        for (const SendCoinsRecipient &rcp : m_current_transaction->getRecipients()) {
+            if (!first) {
+                fileNameSuggestion.append(" - ");
+            }
+            QString labelOrAddress = rcp.label.isEmpty() ? rcp.address : rcp.label;
+            QString amount = BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), rcp.amount);
+            fileNameSuggestion.append(labelOrAddress + "-" + amount);
+            first = false;
+        }
+        fileNameSuggestion.append(".psbt");
+        QString filename = GUIUtil::getSaveFileName(this,
+            tr("Save Transaction Data"), fileNameSuggestion,
+            //: Expanded name of the binary PSBT file format. See: BIP 174.
+            tr("Partially Signed Transaction (Binary)") + QLatin1String(" (*.psbt)"), &selectedFilter);
+        if (filename.isEmpty()) {
+            return;
+        }
+        std::ofstream out{filename.toLocal8Bit().data(), std::ofstream::out | std::ofstream::binary};
+        out << ssTx.str();
+        out.close();
+        Q_EMIT message(tr("PSBT saved"), "PSBT saved to disk", CClientUIInterface::MSG_INFORMATION);
+        break;
+    }
+    case QMessageBox::Discard:
+        break;
+    default:
+        assert(false);
+    } // msgBox.exec()
+}
+
 void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
 {
     if(!model || !model->getOptionsModel())
@@ -481,48 +527,7 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
 
         // Copy PSBT to clipboard and offer to save
         assert(!complete);
-        // Serialize the PSBT
-        CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION);
-        ssTx << psbtx;
-        GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str());
-        QMessageBox msgBox;
-        msgBox.setText("Unsigned Transaction");
-        msgBox.setInformativeText("The PSBT has been copied to the clipboard. You can also save it.");
-        msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard);
-        msgBox.setDefaultButton(QMessageBox::Discard);
-        switch (msgBox.exec()) {
-        case QMessageBox::Save: {
-            QString selectedFilter;
-            QString fileNameSuggestion = "";
-            bool first = true;
-            for (const SendCoinsRecipient &rcp : m_current_transaction->getRecipients()) {
-                if (!first) {
-                    fileNameSuggestion.append(" - ");
-                }
-                QString labelOrAddress = rcp.label.isEmpty() ? rcp.address : rcp.label;
-                QString amount = BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), rcp.amount);
-                fileNameSuggestion.append(labelOrAddress + "-" + amount);
-                first = false;
-            }
-            fileNameSuggestion.append(".psbt");
-            QString filename = GUIUtil::getSaveFileName(this,
-                tr("Save Transaction Data"), fileNameSuggestion,
-                //: Expanded name of the binary PSBT file format. See: BIP 174.
-                tr("Partially Signed Transaction (Binary)") + QLatin1String(" (*.psbt)"), &selectedFilter);
-            if (filename.isEmpty()) {
-                return;
-            }
-            std::ofstream out{filename.toLocal8Bit().data(), std::ofstream::out | std::ofstream::binary};
-            out << ssTx.str();
-            out.close();
-            Q_EMIT message(tr("PSBT saved"), "PSBT saved to disk", CClientUIInterface::MSG_INFORMATION);
-            break;
-        }
-        case QMessageBox::Discard:
-            break;
-        default:
-            assert(false);
-        } // msgBox.exec()
+        presentPSBT(psbtx);
     } else {
         assert(!model->wallet().privateKeysDisabled());
         // now send the prepared transaction
diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h
index 4a167027560..1e3284fb085 100644
--- a/src/qt/sendcoinsdialog.h
+++ b/src/qt/sendcoinsdialog.h
@@ -70,6 +70,8 @@ public Q_SLOTS:
     bool fFeeMinimized;
     const PlatformStyle *platformStyle;
 
+    // Copy PSBT to clipboard and offer to save it.
+    void presentPSBT(PartiallySignedTransaction& psbt);
     // Process WalletModel::SendCoinsReturn and generate a pair consisting
     // of a message and message flags for use in Q_EMIT message().
     // Additional parameter msgArg can be used via .arg(msgArg).

From 940694664de2a10b9d6d81ddff9be05495e6a3da Mon Sep 17 00:00:00 2001
From: Sjors Provoost <sjors@sprovoost.nl>
Date: Mon, 21 Feb 2022 13:16:05 +0100
Subject: [PATCH 020/187] refactor: helper function signWithExternalSigner()

Does not change behavior.

Review hint:
git show --color-moved --color-moved-ws=allow-indentation-change

Github-Pull: bitcoin-core/gui#555
Rebased-From: 4b5a6cd14967b8ec3cb525e4cb18628de6c15091
---
 src/qt/sendcoinsdialog.cpp | 56 ++++++++++++++++++++------------------
 src/qt/sendcoinsdialog.h   |  9 ++++++
 2 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index b77fbb7b3b5..b73032cb37c 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -447,6 +447,34 @@ void SendCoinsDialog::presentPSBT(PartiallySignedTransaction& psbtx)
     } // msgBox.exec()
 }
 
+bool SendCoinsDialog::signWithExternalSigner(PartiallySignedTransaction& psbtx, CMutableTransaction& mtx, bool& complete) {
+    TransactionError err;
+    try {
+        err = model->wallet().fillPSBT(SIGHASH_ALL, /*sign=*/true, /*bip32derivs=*/true, /*n_signed=*/nullptr, psbtx, complete);
+    } catch (const std::runtime_error& e) {
+        QMessageBox::critical(nullptr, tr("Sign failed"), e.what());
+        return false;
+    }
+    if (err == TransactionError::EXTERNAL_SIGNER_NOT_FOUND) {
+        //: "External signer" means using devices such as hardware wallets.
+        QMessageBox::critical(nullptr, tr("External signer not found"), "External signer not found");
+        return false;
+    }
+    if (err == TransactionError::EXTERNAL_SIGNER_FAILED) {
+        //: "External signer" means using devices such as hardware wallets.
+        QMessageBox::critical(nullptr, tr("External signer failure"), "External signer failure");
+        return false;
+    }
+    if (err != TransactionError::OK) {
+        tfm::format(std::cerr, "Failed to sign PSBT");
+        processSendCoinsReturn(WalletModel::TransactionCreationFailed);
+        return false;
+    }
+    // fillPSBT does not always properly finalize
+    complete = FinalizeAndExtractPSBT(psbtx, mtx);
+    return true;
+}
+
 void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
 {
     if(!model || !model->getOptionsModel())
@@ -479,33 +507,7 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
         assert(!complete);
         assert(err == TransactionError::OK);
         if (model->wallet().hasExternalSigner()) {
-            try {
-                err = model->wallet().fillPSBT(SIGHASH_ALL, true /* sign */, true /* bip32derivs */, nullptr, psbtx, complete);
-            } catch (const std::runtime_error& e) {
-                QMessageBox::critical(nullptr, tr("Sign failed"), e.what());
-                send_failure = true;
-                return;
-            }
-            if (err == TransactionError::EXTERNAL_SIGNER_NOT_FOUND) {
-                //: "External signer" means using devices such as hardware wallets.
-                QMessageBox::critical(nullptr, tr("External signer not found"), "External signer not found");
-                send_failure = true;
-                return;
-            }
-            if (err == TransactionError::EXTERNAL_SIGNER_FAILED) {
-                //: "External signer" means using devices such as hardware wallets.
-                QMessageBox::critical(nullptr, tr("External signer failure"), "External signer failure");
-                send_failure = true;
-                return;
-            }
-            if (err != TransactionError::OK) {
-                tfm::format(std::cerr, "Failed to sign PSBT");
-                processSendCoinsReturn(WalletModel::TransactionCreationFailed);
-                send_failure = true;
-                return;
-            }
-            // fillPSBT does not always properly finalize
-            complete = FinalizeAndExtractPSBT(psbtx, mtx);
+            send_failure = !signWithExternalSigner(psbtx, mtx, complete);
         }
 
         // Broadcast transaction if complete (even with an external signer this
diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h
index 1e3284fb085..87f3fbc14ca 100644
--- a/src/qt/sendcoinsdialog.h
+++ b/src/qt/sendcoinsdialog.h
@@ -79,6 +79,15 @@ public Q_SLOTS:
     void minimizeFeeSection(bool fMinimize);
     // Format confirmation message
     bool PrepareSendText(QString& question_string, QString& informative_text, QString& detailed_text);
+    /* Sign PSBT using external signer.
+     *
+     * @param[in,out] psbtx the PSBT to sign
+     * @param[in,out] mtx needed to attempt to finalize
+     * @param[in,out] complete whether the PSBT is complete (a successfully signed multisig transaction may not be complete)
+     *
+     * @returns false if any failure occurred, which may include the user rejection of a transaction on the device.
+     */
+    bool signWithExternalSigner(PartiallySignedTransaction& psbt, CMutableTransaction& mtx, bool& complete);
     void updateFeeMinimizedLabel();
     void updateCoinControlState();
 

From 642f2726deaa1dad21912d4319fac0deb6dbb564 Mon Sep 17 00:00:00 2001
From: Sjors Provoost <sjors@sprovoost.nl>
Date: Mon, 21 Feb 2022 13:32:21 +0100
Subject: [PATCH 021/187] gui: restore Send for external signer

Before this change the send confirmation dialog would keep the Send option disabled. The Create Unsigned choice would actually send. This is potentially confusing.

With this change the Create Unsigned button will not attempt to sign and always produce a PSBT. The Send button will attempt to sign, and only return a PSBT if more signatures are needed.

When using an external signer, the Create Unsigned option only appears when PSBT controls are enabled in the wallet settings.

This commit maintains the pre-existing behavior of filling the PSBT (without signing) even when not using an external signer.

Closes #551

Co-authored-by: Jon Atack <jon@atack.com>

Github-Pull: bitcoin-core/gui#555
Rebased-From: 2efdfb88aab6496dcf2b98e0de30635bc6bade85
---
 src/qt/sendcoinsdialog.cpp | 64 ++++++++++++++++++++++----------------
 src/qt/sendcoinsdialog.h   |  2 ++
 2 files changed, 40 insertions(+), 26 deletions(-)

diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index b73032cb37c..c9247897967 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -485,7 +485,9 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
     assert(m_current_transaction);
 
     const QString confirmation = tr("Confirm send coins");
-    auto confirmationDialog = new SendConfirmationDialog(confirmation, question_string, informative_text, detailed_text, SEND_CONFIRM_DELAY, !model->wallet().privateKeysDisabled(), model->getOptionsModel()->getEnablePSBTControls(), this);
+    const bool enable_send{!model->wallet().privateKeysDisabled() || model->wallet().hasExternalSigner()};
+    const bool always_show_unsigned{model->getOptionsModel()->getEnablePSBTControls()};
+    auto confirmationDialog = new SendConfirmationDialog(confirmation, question_string, informative_text, detailed_text, SEND_CONFIRM_DELAY, enable_send, always_show_unsigned, this);
     confirmationDialog->setAttribute(Qt::WA_DeleteOnClose);
     // TODO: Replace QDialog::exec() with safer QDialog::show().
     const auto retval = static_cast<QMessageBox::StandardButton>(confirmationDialog->exec());
@@ -498,23 +500,50 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
 
     bool send_failure = false;
     if (retval == QMessageBox::Save) {
+        // "Create Unsigned" clicked
         CMutableTransaction mtx = CMutableTransaction{*(m_current_transaction->getWtx())};
         PartiallySignedTransaction psbtx(mtx);
         bool complete = false;
-        // Always fill without signing first. This prevents an external signer
-        // from being called prematurely and is not expensive.
-        TransactionError err = model->wallet().fillPSBT(SIGHASH_ALL, false /* sign */, true /* bip32derivs */, nullptr, psbtx, complete);
+        // Fill without signing
+        TransactionError err = model->wallet().fillPSBT(SIGHASH_ALL, /*sign=*/false, /*bip32derivs=*/true, /*n_signed=*/nullptr, psbtx, complete);
         assert(!complete);
         assert(err == TransactionError::OK);
+
+        // Copy PSBT to clipboard and offer to save
+        presentPSBT(psbtx);
+    } else {
+        // "Send" clicked
+        assert(!model->wallet().privateKeysDisabled() || model->wallet().hasExternalSigner());
+        bool broadcast = true;
         if (model->wallet().hasExternalSigner()) {
+            CMutableTransaction mtx = CMutableTransaction{*(m_current_transaction->getWtx())};
+            PartiallySignedTransaction psbtx(mtx);
+            bool complete = false;
+            // Always fill without signing first. This prevents an external signer
+            // from being called prematurely and is not expensive.
+            TransactionError err = model->wallet().fillPSBT(SIGHASH_ALL, /*sign=*/false, /*bip32derivs=*/true, /*n_signed=*/nullptr, psbtx, complete);
+            assert(!complete);
+            assert(err == TransactionError::OK);
             send_failure = !signWithExternalSigner(psbtx, mtx, complete);
+            // Don't broadcast when user rejects it on the device or there's a failure:
+            broadcast = complete && !send_failure;
+            if (!send_failure) {
+                // A transaction signed with an external signer is not always complete,
+                // e.g. in a multisig wallet.
+                if (complete) {
+                    // Prepare transaction for broadcast transaction if complete
+                    const CTransactionRef tx = MakeTransactionRef(mtx);
+                    m_current_transaction->setWtx(tx);
+                } else {
+                    presentPSBT(psbtx);
+                }
+            }
         }
 
-        // Broadcast transaction if complete (even with an external signer this
-        // is not always the case, e.g. in a multisig wallet).
-        if (complete) {
-            const CTransactionRef tx = MakeTransactionRef(mtx);
-            m_current_transaction->setWtx(tx);
+        // Broadcast the transaction, unless an external signer was used and it
+        // failed, or more signatures are needed.
+        if (broadcast) {
+            // now send the prepared transaction
             WalletModel::SendCoinsReturn sendStatus = model->sendCoins(*m_current_transaction);
             // process sendStatus and on error generate message shown to user
             processSendCoinsReturn(sendStatus);
@@ -524,23 +553,6 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked)
             } else {
                 send_failure = true;
             }
-            return;
-        }
-
-        // Copy PSBT to clipboard and offer to save
-        assert(!complete);
-        presentPSBT(psbtx);
-    } else {
-        assert(!model->wallet().privateKeysDisabled());
-        // now send the prepared transaction
-        WalletModel::SendCoinsReturn sendStatus = model->sendCoins(*m_current_transaction);
-        // process sendStatus and on error generate message shown to user
-        processSendCoinsReturn(sendStatus);
-
-        if (sendStatus.status == WalletModel::OK) {
-            Q_EMIT coinsSent(m_current_transaction->getWtx()->GetHash());
-        } else {
-            send_failure = true;
         }
     }
     if (!send_failure) {
diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h
index 87f3fbc14ca..400503d0c0c 100644
--- a/src/qt/sendcoinsdialog.h
+++ b/src/qt/sendcoinsdialog.h
@@ -128,6 +128,8 @@ class SendConfirmationDialog : public QMessageBox
 
 public:
     SendConfirmationDialog(const QString& title, const QString& text, const QString& informative_text = "", const QString& detailed_text = "", int secDelay = SEND_CONFIRM_DELAY, bool enable_send = true, bool always_show_unsigned = true, QWidget* parent = nullptr);
+    /* Returns QMessageBox::Cancel, QMessageBox::Yes when "Send" is
+       clicked and QMessageBox::Save when "Create Unsigned" is clicked. */
     int exec() override;
 
 private Q_SLOTS:

From 61c021605f8733891cb8d92509c84ac814d3712a Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Thu, 17 Mar 2022 08:55:07 +0100
Subject: [PATCH 022/187] doc, guix: Include arm64-apple-darwin into codesigned
 archs

Github-Pull: #24597
Rebased-From: 1f4801b6b197657b81daba52ef62c146fc6bd584
---
 contrib/guix/README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/guix/README.md b/contrib/guix/README.md
index 90289f9d40e..af5607c710d 100644
--- a/contrib/guix/README.md
+++ b/contrib/guix/README.md
@@ -75,7 +75,7 @@ crucial differences:
 
 1. Since only Windows and macOS build outputs require codesigning, the `HOSTS`
    environment variable will have a sane default value of `x86_64-w64-mingw32
-   x86_64-apple-darwin` instead of all the platforms.
+   x86_64-apple-darwin arm64-apple-darwin` instead of all the platforms.
 2. The `guix-codesign` command ***requires*** a `DETACHED_SIGS_REPO` flag.
     * _**DETACHED_SIGS_REPO**_
 

From 70f2c579b9de41f987e170f15c0ce767d9ad7931 Mon Sep 17 00:00:00 2001
From: Vasil Dimov <vd@FreeBSD.org>
Date: Wed, 23 Mar 2022 11:25:19 +0100
Subject: [PATCH 023/187] options: flip listenonion to false if not listening

If the user has unchecked "Allow incoming connections" in
`Settings->Options...->Network` then `fListen=false` is saved in
`~/.config/Bitcoin/Bitcoin-Qt.conf`. This flips `-listen` to `false`
during startup, but leaves `-listenonion` to `true`.

This flipping of `-listen` is done in `OptionsModel::Init()` after
`InitParameterInteraction()` has been executed which would have flipped
`-listenonion`, should it have seen `-listen` being `false`
(this is a difference between `bitcoind` and `bitcoin-qt`).

Fixes: https://github.com/bitcoin-core/gui/issues/567

Github-Pull: bitcoin-core/gui#568
Rebased-From: 7f90dc26c8938f348938929b6d8bf1ea6f149209
---
 src/qt/optionsmodel.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp
index 5d9ed5bf239..057767eb26a 100644
--- a/src/qt/optionsmodel.cpp
+++ b/src/qt/optionsmodel.cpp
@@ -151,8 +151,11 @@ void OptionsModel::Init(bool resetSettings)
 
     if (!settings.contains("fListen"))
         settings.setValue("fListen", DEFAULT_LISTEN);
-    if (!gArgs.SoftSetBoolArg("-listen", settings.value("fListen").toBool()))
+    if (!gArgs.SoftSetBoolArg("-listen", settings.value("fListen").toBool())) {
         addOverriddenOption("-listen");
+    } else if (!settings.value("fListen").toBool()) {
+        gArgs.SoftSetBoolArg("-listenonion", false);
+    }
 
     if (!settings.contains("server")) {
         settings.setValue("server", false);

From 5d24f612d1f7f5f1258216e3b7c569399c657abb Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Fri, 18 Mar 2022 01:18:14 +0100
Subject: [PATCH 024/187] Clarify in -maxtimeadjustment that only outbound
 peers influence time data

Github-Pull: bitcoin#24609
Rebased-From: 1bba72d
---
 src/init.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/init.cpp b/src/init.cpp
index 1c173302043..c1e161306fe 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -457,7 +457,7 @@ void SetupServerArgs(ArgsManager& argsman)
     argsman.AddArg("-maxconnections=<n>", strprintf("Maintain at most <n> connections to peers (default: %u). This limit does not apply to connections manually added via -addnode or the addnode RPC, which have a separate limit of %u.", DEFAULT_MAX_PEER_CONNECTIONS, MAX_ADDNODE_CONNECTIONS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-maxreceivebuffer=<n>", strprintf("Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXRECEIVEBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-maxsendbuffer=<n>", strprintf("Maximum per-connection send buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXSENDBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
-    argsman.AddArg("-maxtimeadjustment", strprintf("Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by peers forward or backward by this amount. (default: %u seconds)", DEFAULT_MAX_TIME_ADJUSTMENT), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
+    argsman.AddArg("-maxtimeadjustment", strprintf("Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by outbound peers forward or backward by this amount (default: %u seconds).", DEFAULT_MAX_TIME_ADJUSTMENT), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-maxuploadtarget=<n>", strprintf("Tries to keep outbound traffic under the given target per 24h. Limit does not apply to peers with 'download' permission or blocks created within past week. 0 = no limit (default: %s). Optional suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 base while uppercase is 1024 base", DEFAULT_MAX_UPLOAD_TARGET), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-onion=<ip:port>", "Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-i2psam=<ip:port>", "I2P SAM proxy to reach I2P peers and accept I2P connections (default: none)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);

From 4690e8af1300daba276c7b426030d4c69d27d73b Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Wed, 2 Mar 2022 22:36:41 +0100
Subject: [PATCH 025/187] doc: create initial doc/cjdns.md for cjdns how-to
 documentation

Adapted in part from the CJDNS description in #23077 by Vasil Dimov
and from CJDNS documentation and feedback by Caleb James DeLisle.

Co-authored-by: Vasil Dimov <vd@FreeBSD.org>

Github-Pull: bitcoin#24555
Rebased-From: ed15848
---
 doc/cjdns.md | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)
 create mode 100644 doc/cjdns.md

diff --git a/doc/cjdns.md b/doc/cjdns.md
new file mode 100644
index 00000000000..5b2bcaf874a
--- /dev/null
+++ b/doc/cjdns.md
@@ -0,0 +1,95 @@
+# CJDNS support in Bitcoin Core
+
+It is possible to run Bitcoin Core over CJDNS, an encrypted IPv6 network that
+uses public-key cryptography for address allocation and a distributed hash table
+for routing.
+
+## What is CJDNS?
+
+CJDNS is like a distributed, shared VPN with multiple entry points where every
+participant can reach any other participant. All participants use addresses from
+the `fc00::/8` network (reserved IPv6 range). Installation and configuration is
+done outside of Bitcoin Core, similarly to a VPN (either in the host/OS or on
+the network router).
+
+Compared to IPv4/IPv6, CJDNS provides end-to-end encryption and protects nodes
+from traffic analysis and filtering.
+
+Used with Tor and I2P, CJDNS is a complementary option that can enhance network
+redundancy and robustness for both the Bitcoin network and individual nodes.
+
+Each network has different characteristics. For instance, Tor is widely used but
+somewhat centralized. I2P connections have a source address and I2P is slow.
+CJDNS is fast but does not hide the sender and the recipient from intermediate
+routers.
+
+## Installing CJDNS and connecting to the network
+
+To install and set up CJDNS, follow the instructions at
+https://github.com/cjdelisle/cjdns#cjdns.
+
+Don't skip steps
+["2. Find a friend"](https://github.com/cjdelisle/cjdns#2-find-a-friend) and
+["3. Connect your node to your friend's
+node"](https://github.com/cjdelisle/cjdns#3-connect-your-node-to-your-friends-node).
+You need to be connected to the CJDNS network before it will work with your
+Bitcoin Core node.
+
+Typically, CJDNS might be launched from its directory with
+`sudo ./cjdroute < cjdroute.conf` and it sheds permissions after setting up the
+[TUN](https://en.wikipedia.org/wiki/TUN/TAP) interface. You may also [launch it as an
+unprivileged user](https://github.com/cjdelisle/cjdns/blob/master/doc/non-root-user.md)
+with some additional setup.
+
+The network connection can be checked by running `./tools/peerStats` from the
+CJDNS directory.
+
+## Run Bitcoin Core with CJDNS
+
+Once you are connected to the CJDNS network, the following Bitcoin Core
+configuration option makes CJDNS peers automatically reachable:
+
+```
+-cjdnsreachable
+```
+
+When enabled, this option tells Bitcoin Core that it is running in an
+environment where a connection to an `fc00::/8` address will be to the CJDNS
+network instead of to an [RFC4193](https://datatracker.ietf.org/doc/html/rfc4193)
+IPv6 local network. This helps Bitcoin Core perform better address management:
+  - Your node can consider incoming `fc00::/8` connections to be from the CJDNS
+    network rather than from an IPv6 private one.
+  - If one of your node's local addresses is `fc00::/8`, then it can choose to
+    gossip that address to peers.
+
+## Additional configuration options related to CJDNS
+
+```
+-onlynet=cjdns
+```
+
+Make automatic outbound connections only to CJDNS addresses. Inbound and manual
+connections are not affected by this option. It can be specified multiple times
+to allow multiple networks, e.g. onlynet=cjdns, onlynet=i2p, onlynet=onion.
+
+CJDNS support was added to Bitcoin Core in version 23.0 and there may be fewer
+CJDNS peers than Tor or IP ones. You can use `bitcoin-cli -addrinfo` to see the
+number of CJDNS addresses known to your node.
+
+In general, a node can be run with both an onion service and CJDNS (or any/all
+of IPv4/IPv6/onion/I2P/CJDNS), which can provide a potential fallback if one of
+the networks has issues. There are a number of ways to configure this; see
+[doc/tor.md](https://github.com/bitcoin/bitcoin/blob/master/doc/tor.md) for
+details.
+
+## CJDNS-related information in Bitcoin Core
+
+There are several ways to see your CJDNS address in Bitcoin Core:
+- in the "Local addresses" output of CLI `-netinfo`
+- in the "localaddresses" output of RPC `getnetworkinfo`
+
+To see which CJDNS peers your node is connected to, use `bitcoin-cli -netinfo 4`
+or the `getpeerinfo` RPC (i.e. `bitcoin-cli getpeerinfo`).
+
+To see which CJDNS addresses your node knows, use the `getnodeaddresses 0 cjdns`
+RPC.

From 4148396229db008419f895161b6c7310a44d563b Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Mon, 14 Mar 2022 10:40:40 +0100
Subject: [PATCH 026/187] doc: update tor.md with cjdns and getnodeaddresses,
 fix tor grep,

and improve local addresses section

Github-Pull: bitcoin#24555
Rebased-From: 3bf6f0c
---
 doc/tor.md | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/doc/tor.md b/doc/tor.md
index b7c4f7d4259..08d031d0844 100644
--- a/doc/tor.md
+++ b/doc/tor.md
@@ -16,9 +16,9 @@ configure Tor.
 ## How to see information about your Tor configuration via Bitcoin Core
 
 There are several ways to see your local onion address in Bitcoin Core:
-- in the debug log (grep for "tor:" or "AddLocal")
-- in the output of RPC `getnetworkinfo` in the "localaddresses" section
-- in the output of the CLI `-netinfo` peer connections dashboard
+- in the "Local addresses" output of CLI `-netinfo`
+- in the "localaddresses" output of RPC `getnetworkinfo`
+- in the debug log (grep for "AddLocal"; the Tor address ends in `.onion`)
 
 You may set the `-debug=tor` config logging option to have additional
 information in the debug log about your Tor configuration.
@@ -27,6 +27,9 @@ CLI `-addrinfo` returns the number of addresses known to your node per
 network. This can be useful to see how many onion peers your node knows,
 e.g. for `-onlynet=onion`.
 
+To fetch a number of onion addresses that your node knows, for example seven
+addresses, use the `getnodeaddresses 7 onion` RPC.
+
 ## 1. Run Bitcoin Core behind a Tor proxy
 
 The first step is running Bitcoin Core behind a Tor proxy. This will already anonymize all
@@ -58,7 +61,7 @@ outgoing connections, but more is possible.
     -onlynet=onion  Make automatic outbound connections only to .onion addresses.
                     Inbound and manual connections are not affected by this option.
                     It can be specified multiple times to allow multiple networks,
-                    e.g. onlynet=onion, onlynet=i2p.
+                    e.g. onlynet=onion, onlynet=i2p, onlynet=cjdns.
 
 In a typical situation, this suffices to run behind a Tor proxy:
 

From 7a553d4e657d52e2d15b53a4b54b4ca5ecde2f04 Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Mon, 14 Mar 2022 10:44:54 +0100
Subject: [PATCH 027/187] doc: update i2p.md with cjdns, improve local
 addresses section

Github-Pull: bitcoin#24555
Rebased-From: f44efc3
---
 doc/i2p.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/doc/i2p.md b/doc/i2p.md
index e45b5efb9b8..39f65c4e5fb 100644
--- a/doc/i2p.md
+++ b/doc/i2p.md
@@ -80,15 +80,15 @@ phase when syncing up a new node can be very slow. This phase can be sped up by
 using other networks, for instance `onlynet=onion`, at the same time.
 
 In general, a node can be run with both onion and I2P hidden services (or
-any/all of IPv4/IPv6/onion/I2P), which can provide a potential fallback if one
-of the networks has issues.
+any/all of IPv4/IPv6/onion/I2P/CJDNS), which can provide a potential fallback if
+one of the networks has issues.
 
 ## I2P-related information in Bitcoin Core
 
 There are several ways to see your I2P address in Bitcoin Core:
-- in the debug log (grep for `AddLocal`, the I2P address ends in `.b32.i2p`)
-- in the output of the `getnetworkinfo` RPC in the "localaddresses" section
-- in the output of `bitcoin-cli -netinfo` peer connections dashboard
+- in the "Local addresses" output of CLI `-netinfo`
+- in the "localaddresses" output of RPC `getnetworkinfo`
+- in the debug log (grep for `AddLocal`; the I2P address ends in `.b32.i2p`)
 
 To see which I2P peers your node is connected to, use `bitcoin-cli -netinfo 4`
 or the `getpeerinfo` RPC (e.g. `bitcoin-cli getpeerinfo`).

From 65b966743c62914df7fd9b7f028f1f5bb3683eda Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Thu, 24 Mar 2022 20:12:32 +0100
Subject: [PATCH 028/187] doc, init: add links to doc/cjdns.md

Github-Pull: bitcoin#24663
Rebased-From: daae288
---
 doc/README.md | 1 +
 src/init.cpp  | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/doc/README.md b/doc/README.md
index c200ac37537..33f71f4807e 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -73,6 +73,7 @@ The Bitcoin repo's [root README](/README.md) contains relevant information on th
 - [Assets Attribution](assets-attribution.md)
 - [Assumeutxo design](assumeutxo.md)
 - [bitcoin.conf Configuration File](bitcoin-conf.md)
+- [CJDNS Support](cjdns.md)
 - [Files](files.md)
 - [Fuzz-testing](fuzzing.md)
 - [I2P Support](i2p.md)
diff --git a/src/init.cpp b/src/init.cpp
index c1e161306fe..af39e8078b9 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -444,7 +444,7 @@ void SetupServerArgs(ArgsManager& argsman)
     argsman.AddArg("-asmap=<file>", strprintf("Specify asn mapping used for bucketing of the peers (default: %s). Relative paths will be prefixed by the net-specific datadir location.", DEFAULT_ASMAP_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-bantime=<n>", strprintf("Default duration (in seconds) of manually configured bans (default: %u)", DEFAULT_MISBEHAVING_BANTIME), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-bind=<addr>[:<port>][=onion]", strprintf("Bind to given address and always listen on it (default: 0.0.0.0). Use [host]:port notation for IPv6. Append =onion to tag any incoming connections to that address and port as incoming Tor connections (default: 127.0.0.1:%u=onion, testnet: 127.0.0.1:%u=onion, signet: 127.0.0.1:%u=onion, regtest: 127.0.0.1:%u=onion)", defaultBaseParams->OnionServiceTargetPort(), testnetBaseParams->OnionServiceTargetPort(), signetBaseParams->OnionServiceTargetPort(), regtestBaseParams->OnionServiceTargetPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION);
-    argsman.AddArg("-cjdnsreachable", "If set then this host is configured for CJDNS (connecting to fc00::/8 addresses would lead us to the CJDNS network) (default: 0)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
+    argsman.AddArg("-cjdnsreachable", "If set, then this host is configured for CJDNS (connecting to fc00::/8 addresses would lead us to the CJDNS network, see doc/cjdns.md) (default: 0)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-connect=<ip>", "Connect only to the specified node; -noconnect disables automatic connections (the rules for this peer are the same as for -addnode). This option can be specified multiple times to connect to multiple nodes.", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION);
     argsman.AddArg("-discover", "Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
     argsman.AddArg("-dns", strprintf("Allow DNS lookups for -addnode, -seednode and -connect (default: %u)", DEFAULT_NAME_LOOKUP), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);

From b05a59b69fd51dd6a7ebc79dc0d11dc2af47a006 Mon Sep 17 00:00:00 2001
From: MarcoFalke <falke.marco@gmail.com>
Date: Tue, 15 Mar 2022 18:49:00 +0100
Subject: [PATCH 029/187] ci: Temporarily use clang-13 to work around clang-14
 TSan bug

Github-Pull: bitcoin#24572
Rebased-From: fa43933
---
 ci/test/00_setup_env_native_tsan.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ci/test/00_setup_env_native_tsan.sh b/ci/test/00_setup_env_native_tsan.sh
index 0036255caf9..ae942d892b3 100755
--- a/ci/test/00_setup_env_native_tsan.sh
+++ b/ci/test/00_setup_env_native_tsan.sh
@@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8
 
 export CONTAINER_NAME=ci_native_tsan
 export DOCKER_NAME_TAG=ubuntu:22.04
-export PACKAGES="clang llvm libc++abi-dev libc++-dev python3-zmq"
-export DEP_OPTS="CC=clang CXX='clang++ -stdlib=libc++'"
+export PACKAGES="clang-13 llvm-13 libc++abi-13-dev libc++-13-dev python3-zmq"
+export DEP_OPTS="CC=clang-13 CXX='clang++-13 -stdlib=libc++'"
 export GOAL="install"
-export BITCOIN_CONFIG="--enable-zmq CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' CXXFLAGS='-g' --with-sanitizers=thread CC=clang CXX='clang++ -stdlib=libc++'"
+export BITCOIN_CONFIG="--enable-zmq CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' CXXFLAGS='-g' --with-sanitizers=thread CC=clang-13 CXX='clang++-13 -stdlib=libc++'"

From 235b04259414fd708c31bbe0cab28ba09bcd25f1 Mon Sep 17 00:00:00 2001
From: MarcoFalke <falke.marco@gmail.com>
Date: Tue, 22 Mar 2022 11:49:58 +0100
Subject: [PATCH 030/187] rpc: Exclude descriptor when address is excluded

Github-Pull: bitcoin#24636
Rebased-From: faf37c2
---
 src/core_write.cpp         | 4 +++-
 src/rpc/rawtransaction.cpp | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/core_write.cpp b/src/core_write.cpp
index c4b6b8d27e5..8ec75880fef 100644
--- a/src/core_write.cpp
+++ b/src/core_write.cpp
@@ -153,7 +153,9 @@ void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool include
     CTxDestination address;
 
     out.pushKV("asm", ScriptToAsmStr(scriptPubKey));
-    out.pushKV("desc", InferDescriptor(scriptPubKey, DUMMY_SIGNING_PROVIDER)->ToString());
+    if (include_address) {
+        out.pushKV("desc", InferDescriptor(scriptPubKey, DUMMY_SIGNING_PROVIDER)->ToString());
+    }
     if (include_hex) out.pushKV("hex", HexStr(scriptPubKey));
 
     std::vector<std::vector<unsigned char>> solns;
diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp
index 6272a7c8cf0..d2f817d56e9 100644
--- a/src/rpc/rawtransaction.cpp
+++ b/src/rpc/rawtransaction.cpp
@@ -1121,6 +1121,7 @@ static RPCHelpMan decodepsbt()
                                     {RPCResult::Type::OBJ, "scriptPubKey", "",
                                     {
                                         {RPCResult::Type::STR, "asm", "The asm"},
+                                        {RPCResult::Type::STR, "desc", "Inferred descriptor for the output"},
                                         {RPCResult::Type::STR_HEX, "hex", "The hex"},
                                         {RPCResult::Type::STR, "type", "The type, eg 'pubkeyhash'"},
                                         {RPCResult::Type::STR, "address", /*optional=*/true, "The Bitcoin address (only if a well-defined address exists)"},

From eaa04194b979635a3d8590a8409084159d1e6576 Mon Sep 17 00:00:00 2001
From: Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
Date: Sun, 13 Mar 2022 21:44:28 +0100
Subject: [PATCH 031/187] contrib: fix signet miner (sighash mismatch)

PSBT signing was changed to use SIGHASH_DEFAULT by default in #22514.
The signet miner script sets the sighash type of the created PSBT to
SIGHASH_ALL, hence this leads to a sighash mismatch when the
`walletprocesspsbt` RPC is called. Fix this by explicitly passing the
correct sighash type.

Note that the same change was needed in one of our functional tests,
see commit d3992669df826899a3de78a77a366dab46028026.

Reported by gruve-p.

Github-Pull: bitcoin#24553
Rebased-From: 12cc020
---
 contrib/signet/miner | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/contrib/signet/miner b/contrib/signet/miner
index 012bd6cc314..b366b98e2d8 100755
--- a/contrib/signet/miner
+++ b/contrib/signet/miner
@@ -8,7 +8,7 @@ import base64
 import json
 import logging
 import math
-import os.path
+import os
 import re
 import struct
 import sys
@@ -493,10 +493,11 @@ def do_generate(args):
         logging.debug("Mining block delta=%s start=%s mine=%s", seconds_to_hms(mine_time-bestheader["time"]), mine_time, is_mine)
         mined_blocks += 1
         psbt = generate_psbt(tmpl, reward_spk, blocktime=mine_time)
-        psbt_signed = json.loads(args.bcli("-stdin", "walletprocesspsbt", input=psbt.encode('utf8')))
+        input_stream = os.linesep.join([psbt, "true", "ALL"]).encode('utf8')
+        psbt_signed = json.loads(args.bcli("-stdin", "walletprocesspsbt", input=input_stream))
         if not psbt_signed.get("complete",False):
             logging.debug("Generated PSBT: %s" % (psbt,))
-            sys.stderr.write("PSBT signing failed")
+            sys.stderr.write("PSBT signing failed\n")
             return 1
         block, signet_solution = do_decode_psbt(psbt_signed["psbt"])
         block = finish_block(block, signet_solution, args.grind_cmd)

From 85f85c7e5fce1ac1682bf62808d37f3da23614f7 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Thu, 24 Mar 2022 11:48:36 +0000
Subject: [PATCH 032/187] util: add linkat to syscall sandbox (AllowFileSystem)

Github-Pull: bitcoin#24659
Rebased-From: 9809db3
---
 src/util/syscall_sandbox.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/util/syscall_sandbox.cpp b/src/util/syscall_sandbox.cpp
index f2a9cf664de..efc58914b67 100644
--- a/src/util/syscall_sandbox.cpp
+++ b/src/util/syscall_sandbox.cpp
@@ -592,6 +592,7 @@ class SeccompPolicyBuilder
         allowed_syscalls.insert(__NR_getcwd);          // get current working directory
         allowed_syscalls.insert(__NR_getdents);        // get directory entries
         allowed_syscalls.insert(__NR_getdents64);      // get directory entries
+        allowed_syscalls.insert(__NR_linkat);          // create relative to a directory file descriptor
         allowed_syscalls.insert(__NR_lstat);           // get file status
         allowed_syscalls.insert(__NR_mkdir);           // create a directory
         allowed_syscalls.insert(__NR_newfstatat);      // get file status

From 26c2f23f36228e334d17c43a0cb61f76cc545c3d Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Thu, 10 Mar 2022 12:35:39 +0100
Subject: [PATCH 033/187] build: Fix Boost.Process detection on macOS arm64

Could be tested as follows:
```
% brew install boost@1.76
% ./autogen.sh
% ./configure --with-boost='/opt/homebrew/opt/boost@1.76'
```

Github-Pull: bitcoin#24521
Rebased-From: 1d4157a
---
 configure.ac | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/configure.ac b/configure.ac
index 36094e7b321..8debf983793 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1438,6 +1438,8 @@ if test "$use_external_signer" != "no"; then
     ;;
     *)
       AC_MSG_CHECKING([whether Boost.Process can be used])
+      TEMP_CPPFLAGS="$CPPFLAGS"
+      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
       TEMP_LDFLAGS="$LDFLAGS"
       dnl Boost 1.73 and older require the following workaround.
       LDFLAGS="$LDFLAGS $PTHREAD_CFLAGS"
@@ -1445,6 +1447,7 @@ if test "$use_external_signer" != "no"; then
         [have_boost_process="yes"],
         [have_boost_process="no"])
       LDFLAGS="$TEMP_LDFLAGS"
+      CPPFLAGS="$TEMP_CPPFLAGS"
       AC_MSG_RESULT([$have_boost_process])
       if test "$have_boost_process" = "yes"; then
         use_external_signer="yes"

From ded10fe3eae2ad8058d0cc8f1cee1ad1d34bb507 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 22 Feb 2022 12:20:48 +0200
Subject: [PATCH 034/187] build: Fix Boost.Process test for Boost 1.78

Github-Pull: bitcoin#24523
Rebased-From: 532c64a
---
 configure.ac              | 5 +++++
 src/test/system_tests.cpp | 9 +++++++++
 src/util/system.cpp       | 9 +++++++++
 3 files changed, 23 insertions(+)

diff --git a/configure.ac b/configure.ac
index 8debf983793..c0a982e542d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1438,6 +1438,10 @@ if test "$use_external_signer" != "no"; then
     ;;
     *)
       AC_MSG_CHECKING([whether Boost.Process can be used])
+      TEMP_CXXFLAGS="$CXXFLAGS"
+      dnl Boost 1.78 requires the following workaround.
+      dnl See: https://github.com/boostorg/process/issues/235
+      CXXFLAGS="$CXXFLAGS -Wno-error=narrowing"
       TEMP_CPPFLAGS="$CPPFLAGS"
       CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
       TEMP_LDFLAGS="$LDFLAGS"
@@ -1448,6 +1452,7 @@ if test "$use_external_signer" != "no"; then
         [have_boost_process="no"])
       LDFLAGS="$TEMP_LDFLAGS"
       CPPFLAGS="$TEMP_CPPFLAGS"
+      CXXFLAGS="$TEMP_CXXFLAGS"
       AC_MSG_RESULT([$have_boost_process])
       if test "$have_boost_process" = "yes"; then
         use_external_signer="yes"
diff --git a/src/test/system_tests.cpp b/src/test/system_tests.cpp
index 9c6950f11f9..3f5353b5a2b 100644
--- a/src/test/system_tests.cpp
+++ b/src/test/system_tests.cpp
@@ -12,7 +12,16 @@
 // For details see https://github.com/bitcoin/bitcoin/pull/22348.
 #define __kernel_entry
 #endif
+#if defined(__GNUC__)
+// Boost 1.78 requires the following workaround.
+// See: https://github.com/boostorg/process/issues/235
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnarrowing"
+#endif
 #include <boost/process.hpp>
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 #endif // ENABLE_EXTERNAL_SIGNER
 
 #include <boost/test/unit_test.hpp>
diff --git a/src/util/system.cpp b/src/util/system.cpp
index aa9122106bd..c0f4e8fe4fd 100644
--- a/src/util/system.cpp
+++ b/src/util/system.cpp
@@ -6,7 +6,16 @@
 #include <util/system.h>
 
 #ifdef ENABLE_EXTERNAL_SIGNER
+#if defined(__GNUC__)
+// Boost 1.78 requires the following workaround.
+// See: https://github.com/boostorg/process/issues/235
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnarrowing"
+#endif
 #include <boost/process.hpp>
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 #endif // ENABLE_EXTERNAL_SIGNER
 
 #include <chainparamsbase.h>

From 174af33d5d78cfe341b688f5393d9acc8c4aaf6b Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Mon, 28 Mar 2022 09:14:29 +0200
Subject: [PATCH 035/187] util: Add inotify_rm_watch to syscall sandbox
 (AllowFileSystem)

Github-Pull: bitcoin#24690
Rebased-From: f05a4cd
---
 src/util/syscall_sandbox.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/util/syscall_sandbox.cpp b/src/util/syscall_sandbox.cpp
index efc58914b67..a05efac602f 100644
--- a/src/util/syscall_sandbox.cpp
+++ b/src/util/syscall_sandbox.cpp
@@ -592,6 +592,7 @@ class SeccompPolicyBuilder
         allowed_syscalls.insert(__NR_getcwd);          // get current working directory
         allowed_syscalls.insert(__NR_getdents);        // get directory entries
         allowed_syscalls.insert(__NR_getdents64);      // get directory entries
+        allowed_syscalls.insert(__NR_inotify_rm_watch);// remove an existing watch from an inotify instance
         allowed_syscalls.insert(__NR_linkat);          // create relative to a directory file descriptor
         allowed_syscalls.insert(__NR_lstat);           // get file status
         allowed_syscalls.insert(__NR_mkdir);           // create a directory

From 2a1d3a48c4f87474cbb120f560e9059dece00d74 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 31 Mar 2022 16:04:31 +0200
Subject: [PATCH 036/187] build: Bump rc to 23.0rc3

Tree-SHA512: 558379b8b0e9e12a84b563d673377712950b425fd5862f68dddcecde14090e9566917e30720a82ddf8cb1132f02e21bab1ab93594f507e9ca34d039408ca15b4
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 72be69662ba..adbf3fe525c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 0)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 2)
+define(_CLIENT_VERSION_RC, 3)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 752c9d82a637645df5f0b0178eb76f4d7c5c42f8 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 31 Mar 2022 16:00:49 +0200
Subject: [PATCH 037/187] qt: 23.0rc3 translations update

Tree-SHA512: 110fab39faae351f10a9bb3a8a852d29f1e8e4bae27b790a52198fc39c5e1a2261c0fe8f0289f4c626e3d39f237c9410ae80f311bdcf446f778c680bc0fdc367
---
 src/Makefile.qt_locale.include   |    2 +-
 src/qt/bitcoin_locale.qrc        |    2 +-
 src/qt/bitcoinstrings.cpp        |   11 +
 src/qt/locale/bitcoin_ar.ts      |  134 +-
 src/qt/locale/bitcoin_de.ts      |   63 +-
 src/qt/locale/bitcoin_en.ts      |   47 +-
 src/qt/locale/bitcoin_en.xlf     |  612 ++++----
 src/qt/locale/bitcoin_es.ts      |    8 +-
 src/qt/locale/bitcoin_es_MX.ts   | 2478 ------------------------------
 src/qt/locale/bitcoin_eu.ts      |    4 +
 src/qt/locale/bitcoin_fr.ts      |   58 +-
 src/qt/locale/bitcoin_hi.ts      |  178 +++
 src/qt/locale/bitcoin_hu.ts      |   62 +-
 src/qt/locale/bitcoin_id.ts      |  150 +-
 src/qt/locale/bitcoin_it.ts      |    8 +
 src/qt/locale/bitcoin_ja.ts      |    4 +
 src/qt/locale/bitcoin_pt_BR.ts   |   33 +
 src/qt/locale/bitcoin_ru.ts      |  185 ++-
 src/qt/locale/bitcoin_th.ts      |  795 +++++++++-
 src/qt/locale/bitcoin_tk.ts      | 1213 ++++++++++++++-
 src/qt/locale/bitcoin_tr.ts      |    4 +
 src/qt/locale/bitcoin_uk.ts      |   16 +-
 src/qt/locale/bitcoin_uz@Cyrl.ts |   32 +
 src/qt/locale/bitcoin_vi.ts      |    4 -
 src/qt/locale/bitcoin_zh_CN.ts   |  254 ++-
 src/qt/locale/bitcoin_zh_TW.ts   |   94 ++
 26 files changed, 3348 insertions(+), 3103 deletions(-)
 delete mode 100644 src/qt/locale/bitcoin_es_MX.ts
 create mode 100644 src/qt/locale/bitcoin_hi.ts

diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include
index 4cf28fb566a..e55c983a472 100644
--- a/src/Makefile.qt_locale.include
+++ b/src/Makefile.qt_locale.include
@@ -18,7 +18,6 @@ QT_TS = \
   qt/locale/bitcoin_es_CL.ts \
   qt/locale/bitcoin_es_CO.ts \
   qt/locale/bitcoin_es_DO.ts \
-  qt/locale/bitcoin_es_MX.ts \
   qt/locale/bitcoin_es_VE.ts \
   qt/locale/bitcoin_et.ts \
   qt/locale/bitcoin_eu.ts \
@@ -32,6 +31,7 @@ QT_TS = \
   qt/locale/bitcoin_gl_ES.ts \
   qt/locale/bitcoin_gu.ts \
   qt/locale/bitcoin_he.ts \
+  qt/locale/bitcoin_hi.ts \
   qt/locale/bitcoin_hr.ts \
   qt/locale/bitcoin_hu.ts \
   qt/locale/bitcoin_id.ts \
diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/bitcoin_locale.qrc
index 9a2f0a42d6c..f70a241b723 100644
--- a/src/qt/bitcoin_locale.qrc
+++ b/src/qt/bitcoin_locale.qrc
@@ -19,7 +19,6 @@
         <file alias="es_CL">locale/bitcoin_es_CL.qm</file>
         <file alias="es_CO">locale/bitcoin_es_CO.qm</file>
         <file alias="es_DO">locale/bitcoin_es_DO.qm</file>
-        <file alias="es_MX">locale/bitcoin_es_MX.qm</file>
         <file alias="es_VE">locale/bitcoin_es_VE.qm</file>
         <file alias="et">locale/bitcoin_et.qm</file>
         <file alias="eu">locale/bitcoin_eu.qm</file>
@@ -33,6 +32,7 @@
         <file alias="gl_ES">locale/bitcoin_gl_ES.qm</file>
         <file alias="gu">locale/bitcoin_gu.qm</file>
         <file alias="he">locale/bitcoin_he.qm</file>
+        <file alias="hi">locale/bitcoin_hi.qm</file>
         <file alias="hr">locale/bitcoin_hr.qm</file>
         <file alias="hu">locale/bitcoin_hu.qm</file>
         <file alias="id">locale/bitcoin_id.qm</file>
diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp
index ba804d69552..096c5e12c8e 100644
--- a/src/qt/bitcoinstrings.cpp
+++ b/src/qt/bitcoinstrings.cpp
@@ -14,6 +14,10 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
 "%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring "
 "a backup."),
 QT_TRANSLATE_NOOP("bitcoin-core", ""
+"%s request to listen on port %u. This port is considered \"bad\" and thus it "
+"is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports."
+"md for details and a full list."),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
 "-maxtxfee is set very high! Fees this large could be paid on a single "
 "transaction."),
 QT_TRANSLATE_NOOP("bitcoin-core", ""
@@ -53,6 +57,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
 QT_TRANSLATE_NOOP("bitcoin-core", ""
 "Error: Listening for incoming connections failed (listen returned error %s)"),
 QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Failed to rename invalid peers.dat file. Please move or delete it and try "
+"again."),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
 "Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -"
 "fallbackfee."),
 QT_TRANSLATE_NOOP("bitcoin-core", ""
@@ -77,6 +84,10 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
 "No wallet file format provided. To use createfromdump, -format=<format> must "
 "be provided."),
 QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Outbound connections restricted to Tor (-onlynet=onion) but the proxy for "
+"reaching the Tor network is not provided (no -proxy= and no -onion= given) "
+"or it is explicitly forbidden (-onion=0)"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
 "Please check that your computer's date and time are correct! If your clock "
 "is wrong, %s will not work properly."),
 QT_TRANSLATE_NOOP("bitcoin-core", ""
diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts
index 1b4b0886476..3b438e6fa15 100644
--- a/src/qt/locale/bitcoin_ar.ts
+++ b/src/qt/locale/bitcoin_ar.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">أنقر بزر الماوس الأيمن لتحرير العنوان أو التصنيف</translation>
+        <translation type="unfinished">عنوانعنوانأنقر بزر الماوس الأيمن لتحرير العنوان أو التصنيف</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -353,56 +353,56 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n second(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minute(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n hour(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n day(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n week(s)</numerusform>
         </translation>
     </message>
     <message>
@@ -412,12 +412,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n year(s)</numerusform>
         </translation>
     </message>
     <message>
@@ -1024,12 +1024,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
         </translation>
     </message>
     <message>
@@ -1148,12 +1148,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
         </translation>
     </message>
     <message>
@@ -1657,12 +1657,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
         </translation>
     </message>
     <message>
@@ -3295,12 +3295,12 @@ If you are receiving this error you should request the merchant provide a BIP21
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
         </translation>
     </message>
     <message>
@@ -3633,12 +3633,12 @@ If you are receiving this error you should request the merchant provide a BIP21
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts
index cdfb8d77dc1..1f11482969c 100644
--- a/src/qt/locale/bitcoin_de.ts
+++ b/src/qt/locale/bitcoin_de.ts
@@ -264,6 +264,16 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Möchten Sie die Einstellungen auf die Standardwerte zurücksetzen oder den Vorgang abbrechen, ohne Änderungen vorzunehmen?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Ein schwerwiegender Fehler ist aufgetreten. Prüfen Sie, ob die Einstellungsdatei beschreibbar ist, oder versuchen Sie, das Programm mit "-nosettings" auszuführen.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Fehler: Angegebenes Datenverzeichnis "%1" existiert nicht.</translation>
@@ -585,6 +595,10 @@ Bitte nutzen Sie entweder "bdb" oder "sqlite".</translation>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">Kann Adresse in -%s nicht auflösen: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">Kann -forcednsseed nicht auf true setzen, wenn -dnsseed auf false gesetzt ist.</translation>
+    </message>
     <message>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">Kann -peerblockfilters nicht ohne -blockfilterindex setzen.</translation>
@@ -593,6 +607,14 @@ Bitte nutzen Sie entweder "bdb" oder "sqlite".</translation>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Es konnte nicht in das Datenverzeichnis '%s' geschrieben werden; Überprüfen Sie die Berechtigungen.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">Das von einer früheren Version gestartete -txindex-Upgrade kann nicht abgeschlossen werden. Starten Sie mit der vorherigen Version neu oder führen Sie ein vollständiges -reindex aus.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Es ist nicht möglich, bestimmte Verbindungen anzubieten und gleichzeitig addrman ausgehende Verbindungen finden zu lassen.</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Konfigurationseinstellungen für %s sind nur auf %s network gültig, wenn in Sektion [%s]</translation>
@@ -811,6 +833,10 @@ Berechnet: %s, erwartet: %s</translation>
         <source>Missing amount</source>
         <translation type="unfinished">Fehlender Betrag</translation>
     </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">Fehlende Auflösungsdaten zur Schätzung der Transaktionsgröße</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Angabe eines Ports benötigt für -whitebind: '%s'</translation>
@@ -936,6 +962,10 @@ Verifikations-Error: %s</translation>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Transaktionsbeträge dürfen nicht negativ sein.</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Ausgangsindex der Transaktionsänderung außerhalb des Bereichs</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">Die Speicherpoolkette der Transaktion ist zu lang.</translation>
@@ -944,6 +974,10 @@ Verifikations-Error: %s</translation>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">Die Transaktion muss mindestens einen Empfänger enthalten.</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Für die Transaktion wird eine neue Adresse benötigt, aber wir können sie nicht generieren.</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">Transaktion zu groß</translation>
@@ -1537,6 +1571,10 @@ Verifikations-Error: %s</translation>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">Betrag kopieren</translation>
     </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Transaktion &amp;ID und Ausgabeindex kopieren</translation>
+    </message>
     <message>
         <source>L&amp;ock unspent</source>
         <translation type="unfinished">Nicht ausgegebenen Betrag sperren</translation>
@@ -2088,10 +2126,25 @@ Verifikations-Error: %s</translation>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Wenn diese Einstellung rückgängig gemacht wird, muss die komplette Blockchain erneut heruntergeladen werden.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Maximale Größe des Datenbank-Caches. Ein größerer Cache kann zu einer schnelleren Synchronisierung beitragen, danach ist der Vorteil für die meisten Anwendungsfälle weniger ausgeprägt. Eine Verringerung der Cache-Größe reduziert den Speicherverbrauch. Ungenutzter Mempool-Speicher wird für diesen Cache gemeinsam genutzt.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Legen Sie die Anzahl der Skriptüberprüfungs-Threads fest. Negative Werte entsprechen der Anzahl der Kerne, die Sie für das System frei lassen möchten.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = automatisch, &lt;0 = so viele Kerne frei lassen)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Dies ermöglicht Ihnen oder einem Drittanbieter-Tool die Kommunikation mit dem Knoten über Befehlszeilen- und JSON-RPC-Befehle.</translation>
+    </message>
     <message>
         <source>Enable R&amp;PC server</source>
         <extracomment>An Options window setting to enable the RPC server.</extracomment>
@@ -2418,6 +2471,10 @@ Verifikations-Error: %s</translation>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Signieren der Transaktion fehlgeschlagen: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Eingaben können nicht unterzeichnet werden, wenn die Brieftasche gesperrt ist.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Konnte keinerlei weitere Eingaben signieren.</translation>
@@ -3817,7 +3874,11 @@ Hinweis: Da die Gebühr auf Basis der Bytes berechnet wird, führt eine Gebühre
         <source>(press q to shutdown and continue later)</source>
         <translation type="unfinished">(drücke q, um herunterzufahren und später fortzuführen)</translation>
     </message>
-    </context>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">q zum Herunterfahren drücken</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts
index 35d8201877f..0dd6a6dafc6 100644
--- a/src/qt/locale/bitcoin_en.ts
+++ b/src/qt/locale/bitcoin_en.ts
@@ -3470,7 +3470,7 @@ For more information on using this console, type %6.
     <name>SendCoinsDialog</name>
     <message>
         <location filename="../forms/sendcoinsdialog.ui" line="+14"/>
-        <location filename="../sendcoinsdialog.cpp" line="+752"/>
+        <location filename="../sendcoinsdialog.cpp" line="+771"/>
         <source>Send Coins</source>
         <translation>Send Coins</translation>
     </message>
@@ -3657,7 +3657,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
         <translation>S&amp;end</translation>
     </message>
     <message>
-        <location filename="../sendcoinsdialog.cpp" line="-653"/>
+        <location filename="../sendcoinsdialog.cpp" line="-672"/>
         <source>Copy quantity</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3744,24 +3744,24 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+60"/>
         <source>Sign failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>External signer not found</source>
         <extracomment>&quot;External signer&quot; means using devices such as hardware wallets.</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>External signer failure</source>
         <extracomment>&quot;External signer&quot; means using devices such as hardware wallets.</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+58"/>
+        <location line="-34"/>
         <source>Save Transaction Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3777,12 +3777,12 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+176"/>
+        <location line="+273"/>
         <source>External balance:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-303"/>
+        <location line="-322"/>
         <source>or</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3831,12 +3831,12 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+25"/>
+        <location line="+99"/>
         <source>Confirm send coins</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+284"/>
+        <location line="+229"/>
         <source>Watch-only balance:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4027,7 +4027,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
 <context>
     <name>SendConfirmationDialog</name>
     <message>
-        <location filename="../sendcoinsdialog.h" line="+131"/>
+        <location filename="../sendcoinsdialog.h" line="+144"/>
         <source>Send</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5060,7 +5060,7 @@ Go to File &gt; Open Wallet to load a wallet.
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+7"/>
         <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5120,7 +5120,7 @@ Go to File &gt; Open Wallet to load a wallet.
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+5"/>
         <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5160,7 +5160,7 @@ Go to File &gt; Open Wallet to load a wallet.
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+7"/>
         <source>Please check that your computer&apos;s date and time are correct! If your clock is wrong, %s will not work properly.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5305,7 +5305,12 @@ Go to File &gt; Open Wallet to load a wallet.
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-69"/>
+        <location line="-88"/>
+        <source>%s request to listen on port %u. This port is considered &quot;bad&quot; and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5315,7 +5320,17 @@ Go to File &gt; Open Wallet to load a wallet.
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+118"/>
+        <location line="+21"/>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+77"/>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/src/qt/locale/bitcoin_en.xlf b/src/qt/locale/bitcoin_en.xlf
index 30ee5e4de68..994884c6764 100644
--- a/src/qt/locale/bitcoin_en.xlf
+++ b/src/qt/locale/bitcoin_en.xlf
@@ -2986,7 +2986,7 @@ For more information on using this console, type %6.
       <trans-unit id="_msg651">
         <source xml:space="preserve">Send Coins</source>
         <context-group purpose="location"><context context-type="linenumber">14</context></context-group>
-        <context-group purpose="location"><context context-type="sourcefile">../sendcoinsdialog.cpp</context><context context-type="linenumber">752</context></context-group>
+        <context-group purpose="location"><context context-type="sourcefile">../sendcoinsdialog.cpp</context><context context-type="linenumber">771</context></context-group>
       </trans-unit>
       <trans-unit id="_msg652">
         <source xml:space="preserve">Coin Control Features</source>
@@ -3210,34 +3210,34 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
       </trans-unit>
       <trans-unit id="_msg705">
         <source xml:space="preserve">Sign failed</source>
-        <context-group purpose="location"><context context-type="linenumber">439</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">455</context></context-group>
       </trans-unit>
       <trans-unit id="_msg706">
         <source xml:space="preserve">External signer not found</source>
-        <context-group purpose="location"><context context-type="linenumber">445</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">460</context></context-group>
         <note annotates="source" from="developer">&quot;External signer&quot; means using devices such as hardware wallets.</note>
       </trans-unit>
       <trans-unit id="_msg707">
         <source xml:space="preserve">External signer failure</source>
-        <context-group purpose="location"><context context-type="linenumber">451</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">465</context></context-group>
         <note annotates="source" from="developer">&quot;External signer&quot; means using devices such as hardware wallets.</note>
       </trans-unit>
       <trans-unit id="_msg708">
         <source xml:space="preserve">Save Transaction Data</source>
-        <context-group purpose="location"><context context-type="linenumber">509</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">431</context></context-group>
       </trans-unit>
       <trans-unit id="_msg709">
         <source xml:space="preserve">Partially Signed Transaction (Binary)</source>
-        <context-group purpose="location"><context context-type="linenumber">511</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">433</context></context-group>
         <note annotates="source" from="developer">Expanded name of the binary PSBT file format. See: BIP 174.</note>
       </trans-unit>
       <trans-unit id="_msg710">
         <source xml:space="preserve">PSBT saved</source>
-        <context-group purpose="location"><context context-type="linenumber">518</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">440</context></context-group>
       </trans-unit>
       <trans-unit id="_msg711">
         <source xml:space="preserve">External balance:</source>
-        <context-group purpose="location"><context context-type="linenumber">694</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">713</context></context-group>
       </trans-unit>
       <trans-unit id="_msg712">
         <source xml:space="preserve">or</source>
@@ -3281,46 +3281,46 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
       </trans-unit>
       <trans-unit id="_msg721">
         <source xml:space="preserve">Confirm send coins</source>
-        <context-group purpose="location"><context context-type="linenumber">413</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">487</context></context-group>
       </trans-unit>
       <trans-unit id="_msg722">
         <source xml:space="preserve">Watch-only balance:</source>
-        <context-group purpose="location"><context context-type="linenumber">697</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">716</context></context-group>
       </trans-unit>
       <trans-unit id="_msg723">
         <source xml:space="preserve">The recipient address is not valid. Please recheck.</source>
-        <context-group purpose="location"><context context-type="linenumber">721</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">740</context></context-group>
       </trans-unit>
       <trans-unit id="_msg724">
         <source xml:space="preserve">The amount to pay must be larger than 0.</source>
-        <context-group purpose="location"><context context-type="linenumber">724</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">743</context></context-group>
       </trans-unit>
       <trans-unit id="_msg725">
         <source xml:space="preserve">The amount exceeds your balance.</source>
-        <context-group purpose="location"><context context-type="linenumber">727</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">746</context></context-group>
       </trans-unit>
       <trans-unit id="_msg726">
         <source xml:space="preserve">The total exceeds your balance when the %1 transaction fee is included.</source>
-        <context-group purpose="location"><context context-type="linenumber">730</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">749</context></context-group>
       </trans-unit>
       <trans-unit id="_msg727">
         <source xml:space="preserve">Duplicate address found: addresses should only be used once each.</source>
-        <context-group purpose="location"><context context-type="linenumber">733</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">752</context></context-group>
       </trans-unit>
       <trans-unit id="_msg728">
         <source xml:space="preserve">Transaction creation failed!</source>
-        <context-group purpose="location"><context context-type="linenumber">736</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">755</context></context-group>
       </trans-unit>
       <trans-unit id="_msg729">
         <source xml:space="preserve">A fee higher than %1 is considered an absurdly high fee.</source>
-        <context-group purpose="location"><context context-type="linenumber">740</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">759</context></context-group>
       </trans-unit>
       <trans-unit id="_msg730">
         <source xml:space="preserve">Payment request expired.</source>
-        <context-group purpose="location"><context context-type="linenumber">743</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">762</context></context-group>
       </trans-unit>
       <group restype="x-gettext-plurals">
-        <context-group purpose="location"><context context-type="linenumber">867</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">886</context></context-group>
         <trans-unit id="_msg731[0]">
           <source xml:space="preserve">Estimated to begin confirmation within %n block(s).</source>
         </trans-unit>
@@ -3330,23 +3330,23 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
       </group>
       <trans-unit id="_msg732">
         <source xml:space="preserve">Warning: Invalid Bitcoin address</source>
-        <context-group purpose="location"><context context-type="linenumber">968</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">987</context></context-group>
       </trans-unit>
       <trans-unit id="_msg733">
         <source xml:space="preserve">Warning: Unknown change address</source>
-        <context-group purpose="location"><context context-type="linenumber">973</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">992</context></context-group>
       </trans-unit>
       <trans-unit id="_msg734">
         <source xml:space="preserve">Confirm custom change address</source>
-        <context-group purpose="location"><context context-type="linenumber">976</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">995</context></context-group>
       </trans-unit>
       <trans-unit id="_msg735">
         <source xml:space="preserve">The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source>
-        <context-group purpose="location"><context context-type="linenumber">976</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">995</context></context-group>
       </trans-unit>
       <trans-unit id="_msg736">
         <source xml:space="preserve">(no label)</source>
-        <context-group purpose="location"><context context-type="linenumber">997</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">1016</context></context-group>
       </trans-unit>
     </group>
   </body></file>
@@ -3445,11 +3445,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
     <group restype="x-trolltech-linguist-context" resname="SendConfirmationDialog">
       <trans-unit id="_msg757">
         <source xml:space="preserve">Send</source>
-        <context-group purpose="location"><context context-type="linenumber">131</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">144</context></context-group>
       </trans-unit>
       <trans-unit id="_msg758">
         <source xml:space="preserve">Create Unsigned</source>
-        <context-group purpose="location"><context context-type="linenumber">133</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">146</context></context-group>
       </trans-unit>
     </group>
   </body></file>
@@ -4268,651 +4268,663 @@ Go to File &gt; Open Wallet to load a wallet.
       </trans-unit>
       <trans-unit id="_msg939">
         <source xml:space="preserve">-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
-        <context-group purpose="location"><context context-type="linenumber">16</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">20</context></context-group>
       </trans-unit>
       <trans-unit id="_msg940">
         <source xml:space="preserve">Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
-        <context-group purpose="location"><context context-type="linenumber">19</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">23</context></context-group>
       </trans-unit>
       <trans-unit id="_msg941">
         <source xml:space="preserve">Cannot obtain a lock on data directory %s. %s is probably already running.</source>
-        <context-group purpose="location"><context context-type="linenumber">22</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">26</context></context-group>
       </trans-unit>
       <trans-unit id="_msg942">
         <source xml:space="preserve">Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
-        <context-group purpose="location"><context context-type="linenumber">27</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">31</context></context-group>
       </trans-unit>
       <trans-unit id="_msg943">
         <source xml:space="preserve">Distributed under the MIT software license, see the accompanying file %s or %s</source>
-        <context-group purpose="location"><context context-type="linenumber">31</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">35</context></context-group>
       </trans-unit>
       <trans-unit id="_msg944">
         <source xml:space="preserve">Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
-        <context-group purpose="location"><context context-type="linenumber">37</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">41</context></context-group>
       </trans-unit>
       <trans-unit id="_msg945">
         <source xml:space="preserve">Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
-        <context-group purpose="location"><context context-type="linenumber">40</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">44</context></context-group>
       </trans-unit>
       <trans-unit id="_msg946">
         <source xml:space="preserve">Error: Dumpfile format record is incorrect. Got &quot;%s&quot;, expected &quot;format&quot;.</source>
-        <context-group purpose="location"><context context-type="linenumber">43</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">47</context></context-group>
       </trans-unit>
       <trans-unit id="_msg947">
         <source xml:space="preserve">Error: Dumpfile identifier record is incorrect. Got &quot;%s&quot;, expected &quot;%s&quot;.</source>
-        <context-group purpose="location"><context context-type="linenumber">45</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">49</context></context-group>
       </trans-unit>
       <trans-unit id="_msg948">
         <source xml:space="preserve">Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
-        <context-group purpose="location"><context context-type="linenumber">47</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">51</context></context-group>
       </trans-unit>
       <trans-unit id="_msg949">
         <source xml:space="preserve">Error: Legacy wallets only support the &quot;legacy&quot;, &quot;p2sh-segwit&quot;, and &quot;bech32&quot; address types</source>
-        <context-group purpose="location"><context context-type="linenumber">50</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">54</context></context-group>
       </trans-unit>
       <trans-unit id="_msg950">
         <source xml:space="preserve">Error: Listening for incoming connections failed (listen returned error %s)</source>
-        <context-group purpose="location"><context context-type="linenumber">53</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">57</context></context-group>
       </trans-unit>
       <trans-unit id="_msg951">
         <source xml:space="preserve">Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
-        <context-group purpose="location"><context context-type="linenumber">55</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">62</context></context-group>
       </trans-unit>
       <trans-unit id="_msg952">
         <source xml:space="preserve">File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
-        <context-group purpose="location"><context context-type="linenumber">58</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">65</context></context-group>
       </trans-unit>
       <trans-unit id="_msg953">
         <source xml:space="preserve">Invalid amount for -maxtxfee=&lt;amount&gt;: &apos;%s&apos; (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
-        <context-group purpose="location"><context context-type="linenumber">61</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">68</context></context-group>
       </trans-unit>
       <trans-unit id="_msg954">
         <source xml:space="preserve">Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
-        <context-group purpose="location"><context context-type="linenumber">64</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">71</context></context-group>
       </trans-unit>
       <trans-unit id="_msg955">
         <source xml:space="preserve">More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
-        <context-group purpose="location"><context context-type="linenumber">68</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">75</context></context-group>
       </trans-unit>
       <trans-unit id="_msg956">
         <source xml:space="preserve">No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
-        <context-group purpose="location"><context context-type="linenumber">71</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">78</context></context-group>
       </trans-unit>
       <trans-unit id="_msg957">
         <source xml:space="preserve">No dump file provided. To use dump, -dumpfile=&lt;filename&gt; must be provided.</source>
-        <context-group purpose="location"><context context-type="linenumber">74</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">81</context></context-group>
       </trans-unit>
       <trans-unit id="_msg958">
         <source xml:space="preserve">No wallet file format provided. To use createfromdump, -format=&lt;format&gt; must be provided.</source>
-        <context-group purpose="location"><context context-type="linenumber">76</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">83</context></context-group>
       </trans-unit>
       <trans-unit id="_msg959">
         <source xml:space="preserve">Please check that your computer&apos;s date and time are correct! If your clock is wrong, %s will not work properly.</source>
-        <context-group purpose="location"><context context-type="linenumber">79</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">90</context></context-group>
       </trans-unit>
       <trans-unit id="_msg960">
         <source xml:space="preserve">Please contribute if you find %s useful. Visit %s for further information about the software.</source>
-        <context-group purpose="location"><context context-type="linenumber">82</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">93</context></context-group>
       </trans-unit>
       <trans-unit id="_msg961">
         <source xml:space="preserve">Prune configured below the minimum of %d MiB.  Please use a higher number.</source>
-        <context-group purpose="location"><context context-type="linenumber">85</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">96</context></context-group>
       </trans-unit>
       <trans-unit id="_msg962">
         <source xml:space="preserve">Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source>
-        <context-group purpose="location"><context context-type="linenumber">87</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">98</context></context-group>
       </trans-unit>
       <trans-unit id="_msg963">
         <source xml:space="preserve">SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported</source>
-        <context-group purpose="location"><context context-type="linenumber">90</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">101</context></context-group>
       </trans-unit>
       <trans-unit id="_msg964">
         <source xml:space="preserve">The block database contains a block which appears to be from the future. This may be due to your computer&apos;s date and time being set incorrectly. Only rebuild the block database if you are sure that your computer&apos;s date and time are correct</source>
-        <context-group purpose="location"><context context-type="linenumber">96</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">107</context></context-group>
       </trans-unit>
       <trans-unit id="_msg965">
         <source xml:space="preserve">The block index db contains a legacy &apos;txindex&apos;. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
-        <context-group purpose="location"><context context-type="linenumber">101</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">112</context></context-group>
       </trans-unit>
       <trans-unit id="_msg966">
         <source xml:space="preserve">The transaction amount is too small to send after the fee has been deducted</source>
-        <context-group purpose="location"><context context-type="linenumber">105</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">116</context></context-group>
       </trans-unit>
       <trans-unit id="_msg967">
         <source xml:space="preserve">This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet</source>
-        <context-group purpose="location"><context context-type="linenumber">107</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">118</context></context-group>
       </trans-unit>
       <trans-unit id="_msg968">
         <source xml:space="preserve">This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
-        <context-group purpose="location"><context context-type="linenumber">111</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">122</context></context-group>
       </trans-unit>
       <trans-unit id="_msg969">
         <source xml:space="preserve">This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
-        <context-group purpose="location"><context context-type="linenumber">114</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">125</context></context-group>
       </trans-unit>
       <trans-unit id="_msg970">
         <source xml:space="preserve">This is the transaction fee you may discard if change is smaller than dust at this level</source>
-        <context-group purpose="location"><context context-type="linenumber">117</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">128</context></context-group>
       </trans-unit>
       <trans-unit id="_msg971">
         <source xml:space="preserve">This is the transaction fee you may pay when fee estimates are not available.</source>
-        <context-group purpose="location"><context context-type="linenumber">120</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">131</context></context-group>
       </trans-unit>
       <trans-unit id="_msg972">
         <source xml:space="preserve">Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source>
-        <context-group purpose="location"><context context-type="linenumber">122</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">133</context></context-group>
       </trans-unit>
       <trans-unit id="_msg973">
         <source xml:space="preserve">Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
-        <context-group purpose="location"><context context-type="linenumber">125</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">136</context></context-group>
       </trans-unit>
       <trans-unit id="_msg974">
         <source xml:space="preserve">Unknown wallet file format &quot;%s&quot; provided. Please provide one of &quot;bdb&quot; or &quot;sqlite&quot;.</source>
-        <context-group purpose="location"><context context-type="linenumber">128</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">139</context></context-group>
       </trans-unit>
       <trans-unit id="_msg975">
         <source xml:space="preserve">Warning: Dumpfile wallet format &quot;%s&quot; does not match command line specified format &quot;%s&quot;.</source>
-        <context-group purpose="location"><context context-type="linenumber">131</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">142</context></context-group>
       </trans-unit>
       <trans-unit id="_msg976">
         <source xml:space="preserve">Warning: Private keys detected in wallet {%s} with disabled private keys</source>
-        <context-group purpose="location"><context context-type="linenumber">134</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">145</context></context-group>
       </trans-unit>
       <trans-unit id="_msg977">
         <source xml:space="preserve">Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source>
-        <context-group purpose="location"><context context-type="linenumber">136</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">147</context></context-group>
       </trans-unit>
       <trans-unit id="_msg978">
         <source xml:space="preserve">Witness data for blocks after height %d requires validation. Please restart with -reindex.</source>
-        <context-group purpose="location"><context context-type="linenumber">139</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">150</context></context-group>
       </trans-unit>
       <trans-unit id="_msg979">
         <source xml:space="preserve">You need to rebuild the database using -reindex to go back to unpruned mode.  This will redownload the entire blockchain</source>
-        <context-group purpose="location"><context context-type="linenumber">142</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">153</context></context-group>
       </trans-unit>
       <trans-unit id="_msg980">
         <source xml:space="preserve">%s is set very high!</source>
-        <context-group purpose="location"><context context-type="linenumber">145</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">156</context></context-group>
       </trans-unit>
       <trans-unit id="_msg981">
         <source xml:space="preserve">-maxmempool must be at least %d MB</source>
-        <context-group purpose="location"><context context-type="linenumber">146</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">157</context></context-group>
       </trans-unit>
       <trans-unit id="_msg982">
         <source xml:space="preserve">A fatal internal error occurred, see debug.log for details</source>
-        <context-group purpose="location"><context context-type="linenumber">147</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">158</context></context-group>
       </trans-unit>
       <trans-unit id="_msg983">
         <source xml:space="preserve">Cannot resolve -%s address: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">148</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">159</context></context-group>
       </trans-unit>
       <trans-unit id="_msg984">
         <source xml:space="preserve">Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
-        <context-group purpose="location"><context context-type="linenumber">149</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">160</context></context-group>
       </trans-unit>
       <trans-unit id="_msg985">
         <source xml:space="preserve">Cannot set -peerblockfilters without -blockfilterindex.</source>
-        <context-group purpose="location"><context context-type="linenumber">150</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">161</context></context-group>
       </trans-unit>
       <trans-unit id="_msg986">
         <source xml:space="preserve">Cannot write to data directory &apos;%s&apos;; check permissions.</source>
-        <context-group purpose="location"><context context-type="linenumber">151</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">162</context></context-group>
       </trans-unit>
       <trans-unit id="_msg987">
         <source xml:space="preserve">The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
-        <context-group purpose="location"><context context-type="linenumber">93</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">104</context></context-group>
       </trans-unit>
       <trans-unit id="_msg988">
-        <source xml:space="preserve">Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
-        <context-group purpose="location"><context context-type="linenumber">24</context></context-group>
+        <source xml:space="preserve">%s request to listen on port %u. This port is considered &quot;bad&quot; and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <context-group purpose="location"><context context-type="linenumber">16</context></context-group>
       </trans-unit>
       <trans-unit id="_msg989">
-        <source xml:space="preserve">Error loading %s: External signer wallet being loaded without external signer support compiled</source>
-        <context-group purpose="location"><context context-type="linenumber">34</context></context-group>
+        <source xml:space="preserve">Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <context-group purpose="location"><context context-type="linenumber">28</context></context-group>
       </trans-unit>
       <trans-unit id="_msg990">
-        <source xml:space="preserve">Config setting for %s only applied on %s network when in [%s] section.</source>
-        <context-group purpose="location"><context context-type="linenumber">152</context></context-group>
+        <source xml:space="preserve">Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <context-group purpose="location"><context context-type="linenumber">38</context></context-group>
       </trans-unit>
       <trans-unit id="_msg991">
-        <source xml:space="preserve">Copyright (C) %i-%i</source>
-        <context-group purpose="location"><context context-type="linenumber">153</context></context-group>
+        <source xml:space="preserve">Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <context-group purpose="location"><context context-type="linenumber">59</context></context-group>
       </trans-unit>
       <trans-unit id="_msg992">
-        <source xml:space="preserve">Corrupted block database detected</source>
-        <context-group purpose="location"><context context-type="linenumber">154</context></context-group>
+        <source xml:space="preserve">Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <context-group purpose="location"><context context-type="linenumber">86</context></context-group>
       </trans-unit>
       <trans-unit id="_msg993">
-        <source xml:space="preserve">Could not find asmap file %s</source>
-        <context-group purpose="location"><context context-type="linenumber">155</context></context-group>
+        <source xml:space="preserve">Config setting for %s only applied on %s network when in [%s] section.</source>
+        <context-group purpose="location"><context context-type="linenumber">163</context></context-group>
       </trans-unit>
       <trans-unit id="_msg994">
-        <source xml:space="preserve">Could not parse asmap file %s</source>
-        <context-group purpose="location"><context context-type="linenumber">156</context></context-group>
+        <source xml:space="preserve">Copyright (C) %i-%i</source>
+        <context-group purpose="location"><context context-type="linenumber">164</context></context-group>
       </trans-unit>
       <trans-unit id="_msg995">
-        <source xml:space="preserve">Disk space is too low!</source>
-        <context-group purpose="location"><context context-type="linenumber">157</context></context-group>
+        <source xml:space="preserve">Corrupted block database detected</source>
+        <context-group purpose="location"><context context-type="linenumber">165</context></context-group>
       </trans-unit>
       <trans-unit id="_msg996">
-        <source xml:space="preserve">Do you want to rebuild the block database now?</source>
-        <context-group purpose="location"><context context-type="linenumber">158</context></context-group>
+        <source xml:space="preserve">Could not find asmap file %s</source>
+        <context-group purpose="location"><context context-type="linenumber">166</context></context-group>
       </trans-unit>
       <trans-unit id="_msg997">
-        <source xml:space="preserve">Done loading</source>
-        <context-group purpose="location"><context context-type="linenumber">159</context></context-group>
+        <source xml:space="preserve">Could not parse asmap file %s</source>
+        <context-group purpose="location"><context context-type="linenumber">167</context></context-group>
       </trans-unit>
       <trans-unit id="_msg998">
-        <source xml:space="preserve">Dump file %s does not exist.</source>
-        <context-group purpose="location"><context context-type="linenumber">160</context></context-group>
+        <source xml:space="preserve">Disk space is too low!</source>
+        <context-group purpose="location"><context context-type="linenumber">168</context></context-group>
       </trans-unit>
       <trans-unit id="_msg999">
-        <source xml:space="preserve">Error creating %s</source>
-        <context-group purpose="location"><context context-type="linenumber">161</context></context-group>
+        <source xml:space="preserve">Do you want to rebuild the block database now?</source>
+        <context-group purpose="location"><context context-type="linenumber">169</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1000">
-        <source xml:space="preserve">Error initializing block database</source>
-        <context-group purpose="location"><context context-type="linenumber">162</context></context-group>
+        <source xml:space="preserve">Done loading</source>
+        <context-group purpose="location"><context context-type="linenumber">170</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1001">
-        <source xml:space="preserve">Error initializing wallet database environment %s!</source>
-        <context-group purpose="location"><context context-type="linenumber">163</context></context-group>
+        <source xml:space="preserve">Dump file %s does not exist.</source>
+        <context-group purpose="location"><context context-type="linenumber">171</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1002">
-        <source xml:space="preserve">Error loading %s</source>
-        <context-group purpose="location"><context context-type="linenumber">164</context></context-group>
+        <source xml:space="preserve">Error creating %s</source>
+        <context-group purpose="location"><context context-type="linenumber">172</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1003">
-        <source xml:space="preserve">Error loading %s: Private keys can only be disabled during creation</source>
-        <context-group purpose="location"><context context-type="linenumber">165</context></context-group>
+        <source xml:space="preserve">Error initializing block database</source>
+        <context-group purpose="location"><context context-type="linenumber">173</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1004">
-        <source xml:space="preserve">Error loading %s: Wallet corrupted</source>
-        <context-group purpose="location"><context context-type="linenumber">166</context></context-group>
+        <source xml:space="preserve">Error initializing wallet database environment %s!</source>
+        <context-group purpose="location"><context context-type="linenumber">174</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1005">
-        <source xml:space="preserve">Error loading %s: Wallet requires newer version of %s</source>
-        <context-group purpose="location"><context context-type="linenumber">167</context></context-group>
+        <source xml:space="preserve">Error loading %s</source>
+        <context-group purpose="location"><context context-type="linenumber">175</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1006">
-        <source xml:space="preserve">Error loading block database</source>
-        <context-group purpose="location"><context context-type="linenumber">168</context></context-group>
+        <source xml:space="preserve">Error loading %s: Private keys can only be disabled during creation</source>
+        <context-group purpose="location"><context context-type="linenumber">176</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1007">
-        <source xml:space="preserve">Error opening block database</source>
-        <context-group purpose="location"><context context-type="linenumber">169</context></context-group>
+        <source xml:space="preserve">Error loading %s: Wallet corrupted</source>
+        <context-group purpose="location"><context context-type="linenumber">177</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1008">
-        <source xml:space="preserve">Error reading from database, shutting down.</source>
-        <context-group purpose="location"><context context-type="linenumber">170</context></context-group>
+        <source xml:space="preserve">Error loading %s: Wallet requires newer version of %s</source>
+        <context-group purpose="location"><context context-type="linenumber">178</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1009">
-        <source xml:space="preserve">Error reading next record from wallet database</source>
-        <context-group purpose="location"><context context-type="linenumber">171</context></context-group>
+        <source xml:space="preserve">Error loading block database</source>
+        <context-group purpose="location"><context context-type="linenumber">179</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1010">
-        <source xml:space="preserve">Error upgrading chainstate database</source>
-        <context-group purpose="location"><context context-type="linenumber">172</context></context-group>
+        <source xml:space="preserve">Error opening block database</source>
+        <context-group purpose="location"><context context-type="linenumber">180</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1011">
-        <source xml:space="preserve">Error: Couldn&apos;t create cursor into database</source>
-        <context-group purpose="location"><context context-type="linenumber">173</context></context-group>
+        <source xml:space="preserve">Error reading from database, shutting down.</source>
+        <context-group purpose="location"><context context-type="linenumber">181</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1012">
-        <source xml:space="preserve">Error: Disk space is low for %s</source>
-        <context-group purpose="location"><context context-type="linenumber">174</context></context-group>
+        <source xml:space="preserve">Error reading next record from wallet database</source>
+        <context-group purpose="location"><context context-type="linenumber">182</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1013">
-        <source xml:space="preserve">Error: Dumpfile checksum does not match. Computed %s, expected %s</source>
-        <context-group purpose="location"><context context-type="linenumber">175</context></context-group>
+        <source xml:space="preserve">Error upgrading chainstate database</source>
+        <context-group purpose="location"><context context-type="linenumber">183</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1014">
-        <source xml:space="preserve">Error: Got key that was not hex: %s</source>
-        <context-group purpose="location"><context context-type="linenumber">176</context></context-group>
+        <source xml:space="preserve">Error: Couldn&apos;t create cursor into database</source>
+        <context-group purpose="location"><context context-type="linenumber">184</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1015">
-        <source xml:space="preserve">Error: Got value that was not hex: %s</source>
-        <context-group purpose="location"><context context-type="linenumber">177</context></context-group>
+        <source xml:space="preserve">Error: Disk space is low for %s</source>
+        <context-group purpose="location"><context context-type="linenumber">185</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1016">
-        <source xml:space="preserve">Error: Keypool ran out, please call keypoolrefill first</source>
-        <context-group purpose="location"><context context-type="linenumber">178</context></context-group>
+        <source xml:space="preserve">Error: Dumpfile checksum does not match. Computed %s, expected %s</source>
+        <context-group purpose="location"><context context-type="linenumber">186</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1017">
-        <source xml:space="preserve">Error: Missing checksum</source>
-        <context-group purpose="location"><context context-type="linenumber">179</context></context-group>
+        <source xml:space="preserve">Error: Got key that was not hex: %s</source>
+        <context-group purpose="location"><context context-type="linenumber">187</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1018">
-        <source xml:space="preserve">Error: No %s addresses available.</source>
-        <context-group purpose="location"><context context-type="linenumber">180</context></context-group>
+        <source xml:space="preserve">Error: Got value that was not hex: %s</source>
+        <context-group purpose="location"><context context-type="linenumber">188</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1019">
-        <source xml:space="preserve">Error: Unable to parse version %u as a uint32_t</source>
-        <context-group purpose="location"><context context-type="linenumber">181</context></context-group>
+        <source xml:space="preserve">Error: Keypool ran out, please call keypoolrefill first</source>
+        <context-group purpose="location"><context context-type="linenumber">189</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1020">
-        <source xml:space="preserve">Error: Unable to write record to new wallet</source>
-        <context-group purpose="location"><context context-type="linenumber">182</context></context-group>
+        <source xml:space="preserve">Error: Missing checksum</source>
+        <context-group purpose="location"><context context-type="linenumber">190</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1021">
-        <source xml:space="preserve">Failed to listen on any port. Use -listen=0 if you want this.</source>
-        <context-group purpose="location"><context context-type="linenumber">183</context></context-group>
+        <source xml:space="preserve">Error: No %s addresses available.</source>
+        <context-group purpose="location"><context context-type="linenumber">191</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1022">
-        <source xml:space="preserve">Failed to rescan the wallet during initialization</source>
-        <context-group purpose="location"><context context-type="linenumber">184</context></context-group>
+        <source xml:space="preserve">Error: Unable to parse version %u as a uint32_t</source>
+        <context-group purpose="location"><context context-type="linenumber">192</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1023">
-        <source xml:space="preserve">Failed to verify database</source>
-        <context-group purpose="location"><context context-type="linenumber">185</context></context-group>
+        <source xml:space="preserve">Error: Unable to write record to new wallet</source>
+        <context-group purpose="location"><context context-type="linenumber">193</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1024">
-        <source xml:space="preserve">Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
-        <context-group purpose="location"><context context-type="linenumber">186</context></context-group>
+        <source xml:space="preserve">Failed to listen on any port. Use -listen=0 if you want this.</source>
+        <context-group purpose="location"><context context-type="linenumber">194</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1025">
-        <source xml:space="preserve">Ignoring duplicate -wallet %s.</source>
-        <context-group purpose="location"><context context-type="linenumber">187</context></context-group>
+        <source xml:space="preserve">Failed to rescan the wallet during initialization</source>
+        <context-group purpose="location"><context context-type="linenumber">195</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1026">
-        <source xml:space="preserve">Importing…</source>
-        <context-group purpose="location"><context context-type="linenumber">188</context></context-group>
+        <source xml:space="preserve">Failed to verify database</source>
+        <context-group purpose="location"><context context-type="linenumber">196</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1027">
-        <source xml:space="preserve">Incorrect or no genesis block found. Wrong datadir for network?</source>
-        <context-group purpose="location"><context context-type="linenumber">189</context></context-group>
+        <source xml:space="preserve">Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
+        <context-group purpose="location"><context context-type="linenumber">197</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1028">
-        <source xml:space="preserve">Initialization sanity check failed. %s is shutting down.</source>
-        <context-group purpose="location"><context context-type="linenumber">190</context></context-group>
+        <source xml:space="preserve">Ignoring duplicate -wallet %s.</source>
+        <context-group purpose="location"><context context-type="linenumber">198</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1029">
-        <source xml:space="preserve">Input not found or already spent</source>
-        <context-group purpose="location"><context context-type="linenumber">191</context></context-group>
+        <source xml:space="preserve">Importing…</source>
+        <context-group purpose="location"><context context-type="linenumber">199</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1030">
-        <source xml:space="preserve">Insufficient funds</source>
-        <context-group purpose="location"><context context-type="linenumber">192</context></context-group>
+        <source xml:space="preserve">Incorrect or no genesis block found. Wrong datadir for network?</source>
+        <context-group purpose="location"><context context-type="linenumber">200</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1031">
-        <source xml:space="preserve">Invalid -i2psam address or hostname: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">193</context></context-group>
+        <source xml:space="preserve">Initialization sanity check failed. %s is shutting down.</source>
+        <context-group purpose="location"><context context-type="linenumber">201</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1032">
-        <source xml:space="preserve">Invalid -onion address or hostname: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">194</context></context-group>
+        <source xml:space="preserve">Input not found or already spent</source>
+        <context-group purpose="location"><context context-type="linenumber">202</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1033">
-        <source xml:space="preserve">Invalid -proxy address or hostname: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">195</context></context-group>
+        <source xml:space="preserve">Insufficient funds</source>
+        <context-group purpose="location"><context context-type="linenumber">203</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1034">
-        <source xml:space="preserve">Invalid P2P permission: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">196</context></context-group>
+        <source xml:space="preserve">Invalid -i2psam address or hostname: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">204</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1035">
-        <source xml:space="preserve">Invalid amount for -%s=&lt;amount&gt;: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">197</context></context-group>
+        <source xml:space="preserve">Invalid -onion address or hostname: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">205</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1036">
-        <source xml:space="preserve">Invalid amount for -discardfee=&lt;amount&gt;: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">198</context></context-group>
+        <source xml:space="preserve">Invalid -proxy address or hostname: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">206</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1037">
-        <source xml:space="preserve">Invalid amount for -fallbackfee=&lt;amount&gt;: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">199</context></context-group>
+        <source xml:space="preserve">Invalid P2P permission: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">207</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1038">
-        <source xml:space="preserve">Invalid amount for -paytxfee=&lt;amount&gt;: &apos;%s&apos; (must be at least %s)</source>
-        <context-group purpose="location"><context context-type="linenumber">200</context></context-group>
+        <source xml:space="preserve">Invalid amount for -%s=&lt;amount&gt;: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">208</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1039">
-        <source xml:space="preserve">Invalid netmask specified in -whitelist: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">201</context></context-group>
+        <source xml:space="preserve">Invalid amount for -discardfee=&lt;amount&gt;: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">209</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1040">
-        <source xml:space="preserve">Loading P2P addresses…</source>
-        <context-group purpose="location"><context context-type="linenumber">202</context></context-group>
+        <source xml:space="preserve">Invalid amount for -fallbackfee=&lt;amount&gt;: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">210</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1041">
-        <source xml:space="preserve">Loading banlist…</source>
-        <context-group purpose="location"><context context-type="linenumber">203</context></context-group>
+        <source xml:space="preserve">Invalid amount for -paytxfee=&lt;amount&gt;: &apos;%s&apos; (must be at least %s)</source>
+        <context-group purpose="location"><context context-type="linenumber">211</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1042">
-        <source xml:space="preserve">Loading block index…</source>
-        <context-group purpose="location"><context context-type="linenumber">204</context></context-group>
+        <source xml:space="preserve">Invalid netmask specified in -whitelist: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">212</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1043">
-        <source xml:space="preserve">Loading wallet…</source>
-        <context-group purpose="location"><context context-type="linenumber">205</context></context-group>
+        <source xml:space="preserve">Loading P2P addresses…</source>
+        <context-group purpose="location"><context context-type="linenumber">213</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1044">
-        <source xml:space="preserve">Missing amount</source>
-        <context-group purpose="location"><context context-type="linenumber">206</context></context-group>
+        <source xml:space="preserve">Loading banlist…</source>
+        <context-group purpose="location"><context context-type="linenumber">214</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1045">
-        <source xml:space="preserve">Missing solving data for estimating transaction size</source>
-        <context-group purpose="location"><context context-type="linenumber">207</context></context-group>
+        <source xml:space="preserve">Loading block index…</source>
+        <context-group purpose="location"><context context-type="linenumber">215</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1046">
-        <source xml:space="preserve">Need to specify a port with -whitebind: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">208</context></context-group>
+        <source xml:space="preserve">Loading wallet…</source>
+        <context-group purpose="location"><context context-type="linenumber">216</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1047">
-        <source xml:space="preserve">No addresses available</source>
-        <context-group purpose="location"><context context-type="linenumber">209</context></context-group>
+        <source xml:space="preserve">Missing amount</source>
+        <context-group purpose="location"><context context-type="linenumber">217</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1048">
-        <source xml:space="preserve">No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
-        <context-group purpose="location"><context context-type="linenumber">210</context></context-group>
+        <source xml:space="preserve">Missing solving data for estimating transaction size</source>
+        <context-group purpose="location"><context context-type="linenumber">218</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1049">
-        <source xml:space="preserve">Not enough file descriptors available.</source>
-        <context-group purpose="location"><context context-type="linenumber">211</context></context-group>
+        <source xml:space="preserve">Need to specify a port with -whitebind: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">219</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1050">
-        <source xml:space="preserve">Prune cannot be configured with a negative value.</source>
-        <context-group purpose="location"><context context-type="linenumber">212</context></context-group>
+        <source xml:space="preserve">No addresses available</source>
+        <context-group purpose="location"><context context-type="linenumber">220</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1051">
-        <source xml:space="preserve">Prune mode is incompatible with -coinstatsindex.</source>
-        <context-group purpose="location"><context context-type="linenumber">213</context></context-group>
+        <source xml:space="preserve">No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
+        <context-group purpose="location"><context context-type="linenumber">221</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1052">
-        <source xml:space="preserve">Prune mode is incompatible with -txindex.</source>
-        <context-group purpose="location"><context context-type="linenumber">214</context></context-group>
+        <source xml:space="preserve">Not enough file descriptors available.</source>
+        <context-group purpose="location"><context context-type="linenumber">222</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1053">
-        <source xml:space="preserve">Pruning blockstore…</source>
-        <context-group purpose="location"><context context-type="linenumber">215</context></context-group>
+        <source xml:space="preserve">Prune cannot be configured with a negative value.</source>
+        <context-group purpose="location"><context context-type="linenumber">223</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1054">
-        <source xml:space="preserve">Reducing -maxconnections from %d to %d, because of system limitations.</source>
-        <context-group purpose="location"><context context-type="linenumber">216</context></context-group>
+        <source xml:space="preserve">Prune mode is incompatible with -coinstatsindex.</source>
+        <context-group purpose="location"><context context-type="linenumber">224</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1055">
-        <source xml:space="preserve">Replaying blocks…</source>
-        <context-group purpose="location"><context context-type="linenumber">217</context></context-group>
+        <source xml:space="preserve">Prune mode is incompatible with -txindex.</source>
+        <context-group purpose="location"><context context-type="linenumber">225</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1056">
-        <source xml:space="preserve">Rescanning…</source>
-        <context-group purpose="location"><context context-type="linenumber">218</context></context-group>
+        <source xml:space="preserve">Pruning blockstore…</source>
+        <context-group purpose="location"><context context-type="linenumber">226</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1057">
-        <source xml:space="preserve">SQLiteDatabase: Failed to execute statement to verify database: %s</source>
-        <context-group purpose="location"><context context-type="linenumber">219</context></context-group>
+        <source xml:space="preserve">Reducing -maxconnections from %d to %d, because of system limitations.</source>
+        <context-group purpose="location"><context context-type="linenumber">227</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1058">
-        <source xml:space="preserve">SQLiteDatabase: Failed to prepare statement to verify database: %s</source>
-        <context-group purpose="location"><context context-type="linenumber">220</context></context-group>
+        <source xml:space="preserve">Replaying blocks…</source>
+        <context-group purpose="location"><context context-type="linenumber">228</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1059">
-        <source xml:space="preserve">SQLiteDatabase: Failed to read database verification error: %s</source>
-        <context-group purpose="location"><context context-type="linenumber">221</context></context-group>
+        <source xml:space="preserve">Rescanning…</source>
+        <context-group purpose="location"><context context-type="linenumber">229</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1060">
-        <source xml:space="preserve">SQLiteDatabase: Unexpected application id. Expected %u, got %u</source>
-        <context-group purpose="location"><context context-type="linenumber">222</context></context-group>
+        <source xml:space="preserve">SQLiteDatabase: Failed to execute statement to verify database: %s</source>
+        <context-group purpose="location"><context context-type="linenumber">230</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1061">
-        <source xml:space="preserve">Section [%s] is not recognized.</source>
-        <context-group purpose="location"><context context-type="linenumber">223</context></context-group>
+        <source xml:space="preserve">SQLiteDatabase: Failed to prepare statement to verify database: %s</source>
+        <context-group purpose="location"><context context-type="linenumber">231</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1062">
-        <source xml:space="preserve">Signing transaction failed</source>
-        <context-group purpose="location"><context context-type="linenumber">224</context></context-group>
+        <source xml:space="preserve">SQLiteDatabase: Failed to read database verification error: %s</source>
+        <context-group purpose="location"><context context-type="linenumber">232</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1063">
-        <source xml:space="preserve">Specified -walletdir &quot;%s&quot; does not exist</source>
-        <context-group purpose="location"><context context-type="linenumber">225</context></context-group>
+        <source xml:space="preserve">SQLiteDatabase: Unexpected application id. Expected %u, got %u</source>
+        <context-group purpose="location"><context context-type="linenumber">233</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1064">
-        <source xml:space="preserve">Specified -walletdir &quot;%s&quot; is a relative path</source>
-        <context-group purpose="location"><context context-type="linenumber">226</context></context-group>
+        <source xml:space="preserve">Section [%s] is not recognized.</source>
+        <context-group purpose="location"><context context-type="linenumber">234</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1065">
-        <source xml:space="preserve">Specified -walletdir &quot;%s&quot; is not a directory</source>
-        <context-group purpose="location"><context context-type="linenumber">227</context></context-group>
+        <source xml:space="preserve">Signing transaction failed</source>
+        <context-group purpose="location"><context context-type="linenumber">235</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1066">
-        <source xml:space="preserve">Specified blocks directory &quot;%s&quot; does not exist.</source>
-        <context-group purpose="location"><context context-type="linenumber">228</context></context-group>
+        <source xml:space="preserve">Specified -walletdir &quot;%s&quot; does not exist</source>
+        <context-group purpose="location"><context context-type="linenumber">236</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1067">
-        <source xml:space="preserve">Starting network threads…</source>
-        <context-group purpose="location"><context context-type="linenumber">229</context></context-group>
+        <source xml:space="preserve">Specified -walletdir &quot;%s&quot; is a relative path</source>
+        <context-group purpose="location"><context context-type="linenumber">237</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1068">
-        <source xml:space="preserve">The source code is available from %s.</source>
-        <context-group purpose="location"><context context-type="linenumber">230</context></context-group>
+        <source xml:space="preserve">Specified -walletdir &quot;%s&quot; is not a directory</source>
+        <context-group purpose="location"><context context-type="linenumber">238</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1069">
-        <source xml:space="preserve">The specified config file %s does not exist</source>
-        <context-group purpose="location"><context context-type="linenumber">231</context></context-group>
+        <source xml:space="preserve">Specified blocks directory &quot;%s&quot; does not exist.</source>
+        <context-group purpose="location"><context context-type="linenumber">239</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1070">
-        <source xml:space="preserve">The transaction amount is too small to pay the fee</source>
-        <context-group purpose="location"><context context-type="linenumber">232</context></context-group>
+        <source xml:space="preserve">Starting network threads…</source>
+        <context-group purpose="location"><context context-type="linenumber">240</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1071">
-        <source xml:space="preserve">The wallet will avoid paying less than the minimum relay fee.</source>
-        <context-group purpose="location"><context context-type="linenumber">233</context></context-group>
+        <source xml:space="preserve">The source code is available from %s.</source>
+        <context-group purpose="location"><context context-type="linenumber">241</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1072">
-        <source xml:space="preserve">This is experimental software.</source>
-        <context-group purpose="location"><context context-type="linenumber">234</context></context-group>
+        <source xml:space="preserve">The specified config file %s does not exist</source>
+        <context-group purpose="location"><context context-type="linenumber">242</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1073">
-        <source xml:space="preserve">This is the minimum transaction fee you pay on every transaction.</source>
-        <context-group purpose="location"><context context-type="linenumber">235</context></context-group>
+        <source xml:space="preserve">The transaction amount is too small to pay the fee</source>
+        <context-group purpose="location"><context context-type="linenumber">243</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1074">
-        <source xml:space="preserve">This is the transaction fee you will pay if you send a transaction.</source>
-        <context-group purpose="location"><context context-type="linenumber">236</context></context-group>
+        <source xml:space="preserve">The wallet will avoid paying less than the minimum relay fee.</source>
+        <context-group purpose="location"><context context-type="linenumber">244</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1075">
-        <source xml:space="preserve">Transaction amount too small</source>
-        <context-group purpose="location"><context context-type="linenumber">237</context></context-group>
+        <source xml:space="preserve">This is experimental software.</source>
+        <context-group purpose="location"><context context-type="linenumber">245</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1076">
-        <source xml:space="preserve">Transaction amounts must not be negative</source>
-        <context-group purpose="location"><context context-type="linenumber">238</context></context-group>
+        <source xml:space="preserve">This is the minimum transaction fee you pay on every transaction.</source>
+        <context-group purpose="location"><context context-type="linenumber">246</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1077">
-        <source xml:space="preserve">Transaction change output index out of range</source>
-        <context-group purpose="location"><context context-type="linenumber">239</context></context-group>
+        <source xml:space="preserve">This is the transaction fee you will pay if you send a transaction.</source>
+        <context-group purpose="location"><context context-type="linenumber">247</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1078">
-        <source xml:space="preserve">Transaction has too long of a mempool chain</source>
-        <context-group purpose="location"><context context-type="linenumber">240</context></context-group>
+        <source xml:space="preserve">Transaction amount too small</source>
+        <context-group purpose="location"><context context-type="linenumber">248</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1079">
-        <source xml:space="preserve">Transaction must have at least one recipient</source>
-        <context-group purpose="location"><context context-type="linenumber">241</context></context-group>
+        <source xml:space="preserve">Transaction amounts must not be negative</source>
+        <context-group purpose="location"><context context-type="linenumber">249</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1080">
-        <source xml:space="preserve">Transaction needs a change address, but we can&apos;t generate it.</source>
-        <context-group purpose="location"><context context-type="linenumber">242</context></context-group>
+        <source xml:space="preserve">Transaction change output index out of range</source>
+        <context-group purpose="location"><context context-type="linenumber">250</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1081">
-        <source xml:space="preserve">Transaction too large</source>
-        <context-group purpose="location"><context context-type="linenumber">243</context></context-group>
+        <source xml:space="preserve">Transaction has too long of a mempool chain</source>
+        <context-group purpose="location"><context context-type="linenumber">251</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1082">
-        <source xml:space="preserve">Unable to bind to %s on this computer (bind returned error %s)</source>
-        <context-group purpose="location"><context context-type="linenumber">244</context></context-group>
+        <source xml:space="preserve">Transaction must have at least one recipient</source>
+        <context-group purpose="location"><context context-type="linenumber">252</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1083">
-        <source xml:space="preserve">Unable to bind to %s on this computer. %s is probably already running.</source>
-        <context-group purpose="location"><context context-type="linenumber">245</context></context-group>
+        <source xml:space="preserve">Transaction needs a change address, but we can&apos;t generate it.</source>
+        <context-group purpose="location"><context context-type="linenumber">253</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1084">
-        <source xml:space="preserve">Unable to create the PID file &apos;%s&apos;: %s</source>
-        <context-group purpose="location"><context context-type="linenumber">246</context></context-group>
+        <source xml:space="preserve">Transaction too large</source>
+        <context-group purpose="location"><context context-type="linenumber">254</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1085">
-        <source xml:space="preserve">Unable to generate initial keys</source>
-        <context-group purpose="location"><context context-type="linenumber">247</context></context-group>
+        <source xml:space="preserve">Unable to bind to %s on this computer (bind returned error %s)</source>
+        <context-group purpose="location"><context context-type="linenumber">255</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1086">
-        <source xml:space="preserve">Unable to generate keys</source>
-        <context-group purpose="location"><context context-type="linenumber">248</context></context-group>
+        <source xml:space="preserve">Unable to bind to %s on this computer. %s is probably already running.</source>
+        <context-group purpose="location"><context context-type="linenumber">256</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1087">
-        <source xml:space="preserve">Unable to open %s for writing</source>
-        <context-group purpose="location"><context context-type="linenumber">249</context></context-group>
+        <source xml:space="preserve">Unable to create the PID file &apos;%s&apos;: %s</source>
+        <context-group purpose="location"><context context-type="linenumber">257</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1088">
-        <source xml:space="preserve">Unable to parse -maxuploadtarget: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">250</context></context-group>
+        <source xml:space="preserve">Unable to generate initial keys</source>
+        <context-group purpose="location"><context context-type="linenumber">258</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1089">
-        <source xml:space="preserve">Unable to start HTTP server. See debug log for details.</source>
-        <context-group purpose="location"><context context-type="linenumber">251</context></context-group>
+        <source xml:space="preserve">Unable to generate keys</source>
+        <context-group purpose="location"><context context-type="linenumber">259</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1090">
-        <source xml:space="preserve">Unknown -blockfilterindex value %s.</source>
-        <context-group purpose="location"><context context-type="linenumber">252</context></context-group>
+        <source xml:space="preserve">Unable to open %s for writing</source>
+        <context-group purpose="location"><context context-type="linenumber">260</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1091">
-        <source xml:space="preserve">Unknown address type &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">253</context></context-group>
+        <source xml:space="preserve">Unable to parse -maxuploadtarget: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">261</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1092">
-        <source xml:space="preserve">Unknown change type &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">254</context></context-group>
+        <source xml:space="preserve">Unable to start HTTP server. See debug log for details.</source>
+        <context-group purpose="location"><context context-type="linenumber">262</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1093">
-        <source xml:space="preserve">Unknown network specified in -onlynet: &apos;%s&apos;</source>
-        <context-group purpose="location"><context context-type="linenumber">255</context></context-group>
+        <source xml:space="preserve">Unknown -blockfilterindex value %s.</source>
+        <context-group purpose="location"><context context-type="linenumber">263</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1094">
-        <source xml:space="preserve">Unknown new rules activated (versionbit %i)</source>
-        <context-group purpose="location"><context context-type="linenumber">256</context></context-group>
+        <source xml:space="preserve">Unknown address type &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">264</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1095">
-        <source xml:space="preserve">Unsupported logging category %s=%s.</source>
-        <context-group purpose="location"><context context-type="linenumber">257</context></context-group>
+        <source xml:space="preserve">Unknown change type &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">265</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1096">
-        <source xml:space="preserve">Upgrading UTXO database</source>
-        <context-group purpose="location"><context context-type="linenumber">258</context></context-group>
+        <source xml:space="preserve">Unknown network specified in -onlynet: &apos;%s&apos;</source>
+        <context-group purpose="location"><context context-type="linenumber">266</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1097">
-        <source xml:space="preserve">User Agent comment (%s) contains unsafe characters.</source>
-        <context-group purpose="location"><context context-type="linenumber">259</context></context-group>
+        <source xml:space="preserve">Unknown new rules activated (versionbit %i)</source>
+        <context-group purpose="location"><context context-type="linenumber">267</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1098">
-        <source xml:space="preserve">Verifying blocks…</source>
-        <context-group purpose="location"><context context-type="linenumber">260</context></context-group>
+        <source xml:space="preserve">Unsupported logging category %s=%s.</source>
+        <context-group purpose="location"><context context-type="linenumber">268</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1099">
-        <source xml:space="preserve">Verifying wallet(s)…</source>
-        <context-group purpose="location"><context context-type="linenumber">261</context></context-group>
+        <source xml:space="preserve">Upgrading UTXO database</source>
+        <context-group purpose="location"><context context-type="linenumber">269</context></context-group>
       </trans-unit>
       <trans-unit id="_msg1100">
+        <source xml:space="preserve">User Agent comment (%s) contains unsafe characters.</source>
+        <context-group purpose="location"><context context-type="linenumber">270</context></context-group>
+      </trans-unit>
+      <trans-unit id="_msg1101">
+        <source xml:space="preserve">Verifying blocks…</source>
+        <context-group purpose="location"><context context-type="linenumber">271</context></context-group>
+      </trans-unit>
+      <trans-unit id="_msg1102">
+        <source xml:space="preserve">Verifying wallet(s)…</source>
+        <context-group purpose="location"><context context-type="linenumber">272</context></context-group>
+      </trans-unit>
+      <trans-unit id="_msg1103">
         <source xml:space="preserve">Wallet needed to be rewritten: restart %s to complete</source>
-        <context-group purpose="location"><context context-type="linenumber">262</context></context-group>
+        <context-group purpose="location"><context context-type="linenumber">273</context></context-group>
       </trans-unit>
     </group>
   </body></file>
diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts
index 7ccc2c24d9a..d7a98de59e7 100644
--- a/src/qt/locale/bitcoin_es.ts
+++ b/src/qt/locale/bitcoin_es.ts
@@ -328,8 +328,8 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n segundo(s)</numerusform>
+            <numerusform>%n segundo(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
@@ -806,8 +806,8 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Procesado(s) %n bloque(s) del historial de transacciones.</numerusform>
+            <numerusform>Procesado(s) %n bloque(s) del historial de transacciones.</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts
deleted file mode 100644
index a8c50616a60..00000000000
--- a/src/qt/locale/bitcoin_es_MX.ts
+++ /dev/null
@@ -1,2478 +0,0 @@
-<TS version="2.1" language="es_MX">
-<context>
-    <name>AddressBookPage</name>
-    <message>
-        <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Haga clic derecho para editar la dirección o la etiqueta</translation>
-    </message>
-    <message>
-        <source>Create a new address</source>
-        <translation type="unfinished">Crear una nueva dirección</translation>
-    </message>
-    <message>
-        <source>&amp;New</source>
-        <translation type="unfinished">&amp;Nuevo</translation>
-    </message>
-    <message>
-        <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">Copiar la dirección seleccionada al portapapeles del sistema</translation>
-    </message>
-    <message>
-        <source>&amp;Copy</source>
-        <translation type="unfinished">&amp;Copiar</translation>
-    </message>
-    <message>
-        <source>C&amp;lose</source>
-        <translation type="unfinished">Cerrar</translation>
-    </message>
-    <message>
-        <source>Delete the currently selected address from the list</source>
-        <translation type="unfinished">Eliminar la dirección actualmente seleccionada de la lista</translation>
-    </message>
-    <message>
-        <source>Enter address or label to search</source>
-        <translation type="unfinished">Ingrese dirección o capa a buscar </translation>
-    </message>
-    <message>
-        <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">Exportar la información en la pestaña actual a un archivo</translation>
-    </message>
-    <message>
-        <source>&amp;Export</source>
-        <translation type="unfinished">&amp;Exportar</translation>
-    </message>
-    <message>
-        <source>&amp;Delete</source>
-        <translation type="unfinished">&amp;Borrar</translation>
-    </message>
-    <message>
-        <source>Choose the address to send coins to</source>
-        <translation type="unfinished">Elija la direccion a donde se enviaran las monedas</translation>
-    </message>
-    <message>
-        <source>Choose the address to receive coins with</source>
-        <translation type="unfinished">Elija la dirección para recibir monedas.</translation>
-    </message>
-    <message>
-        <source>C&amp;hoose</source>
-        <translation type="unfinished">Elija</translation>
-    </message>
-    <message>
-        <source>Sending addresses</source>
-        <translation type="unfinished">Direcciones de Envio</translation>
-    </message>
-    <message>
-        <source>Receiving addresses</source>
-        <translation type="unfinished">Direcciones de recibo</translation>
-    </message>
-    <message>
-        <source>&amp;Copy Address</source>
-        <translation type="unfinished">&amp;Copiar dirección</translation>
-    </message>
-    <message>
-        <source>Copy &amp;Label</source>
-        <translation type="unfinished">copiar y etiquetar</translation>
-    </message>
-    <message>
-        <source>&amp;Edit</source>
-        <translation type="unfinished">Editar</translation>
-    </message>
-    <message>
-        <source>Export Address List</source>
-        <translation type="unfinished">Exportar lista de direcciones </translation>
-    </message>
-    <message>
-        <source>Comma separated file</source>
-        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
-        <translation type="unfinished">Archivo separado por comas</translation>
-    </message>
-    <message>
-        <source>There was an error trying to save the address list to %1. Please try again.</source>
-        <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
-        <translation type="unfinished">Hubo un error al tratar de guardar la lista de direcciones a %1. Por favor intente de nuevo.</translation>
-    </message>
-    <message>
-        <source>Exporting Failed</source>
-        <translation type="unfinished">Exportación Fallida</translation>
-    </message>
-</context>
-<context>
-    <name>AddressTableModel</name>
-    <message>
-        <source>Label</source>
-        <translation type="unfinished">Etiqueta</translation>
-    </message>
-    <message>
-        <source>Address</source>
-        <translation type="unfinished">Dirección</translation>
-    </message>
-    <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(sin etiqueta)</translation>
-    </message>
-</context>
-<context>
-    <name>AskPassphraseDialog</name>
-    <message>
-        <source>Passphrase Dialog</source>
-        <translation type="unfinished">Dialogo de contraseña</translation>
-    </message>
-    <message>
-        <source>Enter passphrase</source>
-        <translation type="unfinished">Ingrese la contraseña</translation>
-    </message>
-    <message>
-        <source>New passphrase</source>
-        <translation type="unfinished">Nueva contraseña</translation>
-    </message>
-    <message>
-        <source>Repeat new passphrase</source>
-        <translation type="unfinished">Repita la nueva contraseña</translation>
-    </message>
-    <message>
-        <source>Show passphrase</source>
-        <translation type="unfinished">Mostrar contraseña</translation>
-    </message>
-    <message>
-        <source>Encrypt wallet</source>
-        <translation type="unfinished">Encriptar cartera</translation>
-    </message>
-    <message>
-        <source>This operation needs your wallet passphrase to unlock the wallet.</source>
-        <translation type="unfinished">Esta operación necesita la contraseña de su cartera para desbloquear su cartera.</translation>
-    </message>
-    <message>
-        <source>Unlock wallet</source>
-        <translation type="unfinished">Desbloquear cartera</translation>
-    </message>
-    <message>
-        <source>Change passphrase</source>
-        <translation type="unfinished">Cambiar contraseña</translation>
-    </message>
-    <message>
-        <source>Confirm wallet encryption</source>
-        <translation type="unfinished">Confirmar la encriptación de cartera</translation>
-    </message>
-    <message>
-        <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
-        <translation type="unfinished">Advertencia: Si encripta su cartera y pierde su contraseña, &lt;b&gt;PERDERÁ TODOS SUS BITCOINS&lt;/b&gt;!</translation>
-    </message>
-    <message>
-        <source>Are you sure you wish to encrypt your wallet?</source>
-        <translation type="unfinished">¿Está seguro que desea encriptar su cartera?</translation>
-    </message>
-    <message>
-        <source>Wallet encrypted</source>
-        <translation type="unfinished">Cartera encriptada</translation>
-    </message>
-    <message>
-        <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
-        <translation type="unfinished">Ingresa la nueva frase contraseña para la billetera &lt;br/&gt;Por favor usa una frase contraseña de &lt;b&gt;diez o mas caracteres aleatorios &lt;/b&gt;, o &lt;b&gt;ocho o mas palabras&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <source>Enter the old passphrase and new passphrase for the wallet.</source>
-        <translation type="unfinished">Ingresa la antigua frase de contraseña y la nueva frase de contraseña para la billetera.</translation>
-    </message>
-    <message>
-        <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
-        <translation type="unfinished">Recuerda que encriptar tu billetera no protege completamente tus bitcoins contra robo por malware que haya infectado tu computadora.</translation>
-    </message>
-    <message>
-        <source>Wallet to be encrypted</source>
-        <translation type="unfinished">Billetera para ser encriptada</translation>
-    </message>
-    <message>
-        <source>Your wallet is about to be encrypted. </source>
-        <translation type="unfinished">Tu billetera está por ser encriptada</translation>
-    </message>
-    <message>
-        <source>Your wallet is now encrypted. </source>
-        <translation type="unfinished">Tu billetera ha sido encriptada</translation>
-    </message>
-    <message>
-        <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
-        <translation type="unfinished">IMPORTANTE: Cualquier copia de seguridad anterior que haya hecho de su archivo de cartera debe ser reemplazada por el archivo de cartera recién generado y encriptado. Por razones de seguridad, las copias de seguridad anteriores del archivo de cartera sin cifrar serán inútiles tan pronto como empieces a usar la nueva billetera encriptada.</translation>
-    </message>
-    <message>
-        <source>Wallet encryption failed</source>
-        <translation type="unfinished">Encriptación de la cartera fallida</translation>
-    </message>
-    <message>
-        <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
-        <translation type="unfinished">La encriptación de la cartera falló debido a un error interno. Su cartera no fue encriptada.</translation>
-    </message>
-    <message>
-        <source>The supplied passphrases do not match.</source>
-        <translation type="unfinished">Las contraseñas dadas no coinciden.</translation>
-    </message>
-    <message>
-        <source>Wallet unlock failed</source>
-        <translation type="unfinished">El desbloqueo de la cartera falló.</translation>
-    </message>
-    <message>
-        <source>The passphrase entered for the wallet decryption was incorrect.</source>
-        <translation type="unfinished">La contraseña ingresada para la desencriptación de la cartera es incorrecta.</translation>
-    </message>
-    <message>
-        <source>Wallet passphrase was successfully changed.</source>
-        <translation type="unfinished">La contraseña del monedero se cambió correctamente.</translation>
-    </message>
-    <message>
-        <source>Warning: The Caps Lock key is on!</source>
-        <translation type="unfinished">Advertencia: ¡La tecla Bloq Mayus está activada!</translation>
-    </message>
-</context>
-<context>
-    <name>BanTableModel</name>
-    <message>
-        <source>IP/Netmask</source>
-        <translation type="unfinished">IP/Máscara de red</translation>
-    </message>
-    <message>
-        <source>Banned Until</source>
-        <translation type="unfinished">Prohibido Hasta</translation>
-    </message>
-</context>
-<context>
-    <name>BitcoinApplication</name>
-    <message>
-        <source>Runaway exception</source>
-        <translation type="unfinished">Excepción fuera de control</translation>
-    </message>
-    <message>
-        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
-        <translation type="unfinished">Ha ocurrido un error grave. %1 no puede continuar de forma segura y se cerrará.</translation>
-    </message>
-    <message>
-        <source>Internal error</source>
-        <translation type="unfinished">Error interno</translation>
-    </message>
-    <message>
-        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
-        <translation type="unfinished">Un error interno ocurrió. %1 intentará continuar. Este es un error inesperado que puede ser reportado de las formas que se muestran debajo.</translation>
-    </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>%1 didn't yet exit safely…</source>
-        <translation type="unfinished">%1 todavía no ha terminado de forma segura...</translation>
-    </message>
-    <message>
-        <source>unknown</source>
-        <translation type="unfinished">desconocido</translation>
-    </message>
-    <message>
-        <source>Amount</source>
-        <translation type="unfinished">Monto</translation>
-    </message>
-    <message>
-        <source>Unroutable</source>
-        <translation type="unfinished">No se puede enrutar</translation>
-    </message>
-    <message>
-        <source>Internal</source>
-        <translation type="unfinished">Interno</translation>
-    </message>
-    <message>
-        <source>Inbound</source>
-        <extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
-        <translation type="unfinished">Entrada</translation>
-    </message>
-    <message>
-        <source>Outbound</source>
-        <extracomment>An outbound connection to a peer. An outbound connection is a connection initiated by us.</extracomment>
-        <translation type="unfinished">Salida</translation>
-    </message>
-    <message>
-        <source>Full Relay</source>
-        <extracomment>Peer connection type that relays all network information.</extracomment>
-        <translation type="unfinished">Transmisión completa</translation>
-    </message>
-    <message>
-        <source>Block Relay</source>
-        <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
-        <translation type="unfinished">Relé de bloque</translation>
-    </message>
-    <message>
-        <source>Feeler</source>
-        <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
-        <translation type="unfinished">Sensor</translation>
-    </message>
-    <message>
-        <source>Address Fetch</source>
-        <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
-        <translation type="unfinished">Búsqueda de dirección</translation>
-    </message>
-    <message numerus="yes">
-        <source>%n second(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>%n minute(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>%n hour(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>%n day(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>%n week(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>%n year(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    </context>
-<context>
-    <name>bitcoin-core</name>
-    <message>
-        <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
-        <translation type="unfinished">No se pudo cambiar la versión %i a la versión anterior %i.  Versión del monedero sin cambios.</translation>
-    </message>
-    <message>
-        <source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
-        <translation type="unfinished">No es posible actualizar un monedero no HD de la versión%i a la versión %isin actualizar para admitir el keypool pre divido. Por favor use la versión %i o no una versión no especificada.</translation>
-    </message>
-    <message>
-        <source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
-        <translation type="unfinished">El archivo %s ya existe. Si estás seguro de que esto es lo que quieres, muévelo primero.</translation>
-    </message>
-    <message>
-        <source>No wallet file format provided. To use createfromdump, -format=&lt;format&gt; must be provided.</source>
-        <translation type="unfinished">Ningún archivo de billetera proveído. Para usar createfromdump, -format=&lt;format&gt;debe ser proveído.</translation>
-    </message>
-    <message>
-        <source>The transaction amount is too small to send after the fee has been deducted</source>
-        <translation type="unfinished">La cantidad de la transacción es demasiado pequeña para enviarla después de que se haya deducido la tarifa</translation>
-    </message>
-    <message>
-        <source>This is the transaction fee you may pay when fee estimates are not available.</source>
-        <translation type="unfinished">Esta es la tarifa de transacción que puede pagar cuando no se dispone de estimaciones de tarifas.</translation>
-    </message>
-    <message>
-        <source>Done loading</source>
-        <translation type="unfinished">Carga completa</translation>
-    </message>
-    <message>
-        <source>Error creating %s</source>
-        <translation type="unfinished">Error creando %s</translation>
-    </message>
-    <message>
-        <source>Error reading from database, shutting down.</source>
-        <translation type="unfinished">Error de lectura de la base de datos, apagando.</translation>
-    </message>
-    <message>
-        <source>Error reading next record from wallet database</source>
-        <translation type="unfinished">Error leyendo el siguiente registro de la base de datos de la billetera</translation>
-    </message>
-    <message>
-        <source>Error: Couldn't create cursor into database</source>
-        <translation type="unfinished">Error: No se pudo crear el cursor en la base de datos</translation>
-    </message>
-    <message>
-        <source>Error: Got key that was not hex: %s</source>
-        <translation type="unfinished">Error: Se recibió una llave que no es hex: %s</translation>
-    </message>
-    <message>
-        <source>Error: Got value that was not hex: %s</source>
-        <translation type="unfinished">Error: Se recibió un valor que no es hex: %s</translation>
-    </message>
-    <message>
-        <source>Error: Missing checksum</source>
-        <translation type="unfinished">Error: No se ha encontrado 'checksum'</translation>
-    </message>
-    <message>
-        <source>Error: No %s addresses available.</source>
-        <translation type="unfinished">Error: No hay %sdirecciones disponibles,</translation>
-    </message>
-    <message>
-        <source>Error: Unable to write record to new wallet</source>
-        <translation type="unfinished">Error: No se pudo escribir el registro en la nueva billetera</translation>
-    </message>
-    <message>
-        <source>Failed to rescan the wallet during initialization</source>
-        <translation type="unfinished">Falló al volver a escanear la cartera durante la inicialización</translation>
-    </message>
-    <message>
-        <source>Failed to verify database</source>
-        <translation type="unfinished">No se pudo verificar la base de datos</translation>
-    </message>
-    <message>
-        <source>Importing…</source>
-        <translation type="unfinished">Importando...</translation>
-    </message>
-    <message>
-        <source>Insufficient funds</source>
-        <translation type="unfinished">Fondos insuficientes</translation>
-    </message>
-    <message>
-        <source>Invalid -i2psam address or hostname: '%s'</source>
-        <translation type="unfinished">Dirección de -i2psam o dominio ' %s' inválido</translation>
-    </message>
-    <message>
-        <source>Loading P2P addresses…</source>
-        <translation type="unfinished">Cargando direcciones P2P...</translation>
-    </message>
-    <message>
-        <source>Loading banlist…</source>
-        <translation type="unfinished">Cargando banlist...</translation>
-    </message>
-    <message>
-        <source>Loading block index…</source>
-        <translation type="unfinished">Cargando el índice de bloques...</translation>
-    </message>
-    <message>
-        <source>Loading wallet…</source>
-        <translation type="unfinished">Cargando monedero...</translation>
-    </message>
-    <message>
-        <source>Not enough file descriptors available.</source>
-        <translation type="unfinished">No hay suficientes descriptores de archivos disponibles.</translation>
-    </message>
-    <message>
-        <source>Prune mode is incompatible with -coinstatsindex.</source>
-        <translation type="unfinished">El modo recorte es incompatible con -coinstatsindex.</translation>
-    </message>
-    <message>
-        <source>Pruning blockstore…</source>
-        <translation type="unfinished">Podando blockstore...</translation>
-    </message>
-    <message>
-        <source>Replaying blocks…</source>
-        <translation type="unfinished">Reproduciendo bloques...</translation>
-    </message>
-    <message>
-        <source>Rescanning…</source>
-        <translation type="unfinished">Volviendo a escanear...</translation>
-    </message>
-    <message>
-        <source>Signing transaction failed</source>
-        <translation type="unfinished">La transacción de firma falló</translation>
-    </message>
-    <message>
-        <source>Starting network threads…</source>
-        <translation type="unfinished">Iniciando procesos de red...</translation>
-    </message>
-    <message>
-        <source>The specified config file %s does not exist</source>
-        <translation type="unfinished">El archivo de configuración especificado %s no existe </translation>
-    </message>
-    <message>
-        <source>The transaction amount is too small to pay the fee</source>
-        <translation type="unfinished">El monto de la transacción es demasiado pequeño para pagar la tarifa</translation>
-    </message>
-    <message>
-        <source>This is experimental software.</source>
-        <translation type="unfinished">Este es un software experimental.</translation>
-    </message>
-    <message>
-        <source>This is the minimum transaction fee you pay on every transaction.</source>
-        <translation type="unfinished">Esta es la tarifa de transacción mínima que se paga en cada transacción.</translation>
-    </message>
-    <message>
-        <source>This is the transaction fee you will pay if you send a transaction.</source>
-        <translation type="unfinished">Esta es la tarifa de transacción que pagará si envía una transacción.</translation>
-    </message>
-    <message>
-        <source>Transaction amount too small</source>
-        <translation type="unfinished">El monto de la transacción es demasiado pequeño</translation>
-    </message>
-    <message>
-        <source>Transaction amounts must not be negative</source>
-        <translation type="unfinished">Los montos de las transacciones no deben ser negativos</translation>
-    </message>
-    <message>
-        <source>Transaction must have at least one recipient</source>
-        <translation type="unfinished">La transacción debe tener al menos un destinatario</translation>
-    </message>
-    <message>
-        <source>Transaction too large</source>
-        <translation type="unfinished">La transacción es demasiado grande</translation>
-    </message>
-    <message>
-        <source>Unable to generate initial keys</source>
-        <translation type="unfinished">Incapaz de generar claves iniciales</translation>
-    </message>
-    <message>
-        <source>Unable to generate keys</source>
-        <translation type="unfinished">Incapaz de generar claves</translation>
-    </message>
-    <message>
-        <source>Unable to open %s for writing</source>
-        <translation type="unfinished">No se ha podido abrir %s para escribir</translation>
-    </message>
-    <message>
-        <source>Unknown new rules activated (versionbit %i)</source>
-        <translation type="unfinished">Nuevas reglas desconocidas activadas (versionbit %i)</translation>
-    </message>
-    <message>
-        <source>Verifying blocks…</source>
-        <translation type="unfinished">Verificando bloques...</translation>
-    </message>
-    <message>
-        <source>Verifying wallet(s)…</source>
-        <translation type="unfinished">Verificando wallet(s)...</translation>
-    </message>
-    </context>
-<context>
-    <name>BitcoinGUI</name>
-    <message>
-        <source>&amp;Overview</source>
-        <translation type="unfinished">&amp;Vista previa</translation>
-    </message>
-    <message>
-        <source>Show general overview of wallet</source>
-        <translation type="unfinished">Mostrar la vista previa general de la cartera</translation>
-    </message>
-    <message>
-        <source>&amp;Transactions</source>
-        <translation type="unfinished">&amp;Transacciones</translation>
-    </message>
-    <message>
-        <source>Browse transaction history</source>
-        <translation type="unfinished">Explorar el historial de transacciones</translation>
-    </message>
-    <message>
-        <source>E&amp;xit</source>
-        <translation type="unfinished">S&amp;alir</translation>
-    </message>
-    <message>
-        <source>Quit application</source>
-        <translation type="unfinished">Salir de la aplicación</translation>
-    </message>
-    <message>
-        <source>&amp;About %1</source>
-        <translation type="unfinished">&amp;Acerca de %1</translation>
-    </message>
-    <message>
-        <source>Show information about %1</source>
-        <translation type="unfinished">Mostrar información acerca de %1</translation>
-    </message>
-    <message>
-        <source>About &amp;Qt</source>
-        <translation type="unfinished">Acerca de &amp;Qt</translation>
-    </message>
-    <message>
-        <source>Show information about Qt</source>
-        <translation type="unfinished">Mostrar información acerca de Qt</translation>
-    </message>
-    <message>
-        <source>Modify configuration options for %1</source>
-        <translation type="unfinished">Modificar las opciones de configuración para %1</translation>
-    </message>
-    <message>
-        <source>Create a new wallet</source>
-        <translation type="unfinished">Crear una nueva cartera</translation>
-    </message>
-    <message>
-        <source>Wallet:</source>
-        <translation type="unfinished">Cartera:</translation>
-    </message>
-    <message>
-        <source>Network activity disabled.</source>
-        <extracomment>A substring of the tooltip.</extracomment>
-        <translation type="unfinished">Actividad de red deshabilitada.</translation>
-    </message>
-    <message>
-        <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
-        <translation type="unfinished">El proxy está &lt;b&gt;habilitado&lt;/b&gt;: %1</translation>
-    </message>
-    <message>
-        <source>Send coins to a Bitcoin address</source>
-        <translation type="unfinished">Enviar monedas a una dirección Bitcoin</translation>
-    </message>
-    <message>
-        <source>Backup wallet to another location</source>
-        <translation type="unfinished">Respaldar cartera en otra ubicación</translation>
-    </message>
-    <message>
-        <source>Change the passphrase used for wallet encryption</source>
-        <translation type="unfinished">Cambiar la contraseña usada para la encriptación de la cartera</translation>
-    </message>
-    <message>
-        <source>&amp;Send</source>
-        <translation type="unfinished">&amp;Enviar</translation>
-    </message>
-    <message>
-        <source>&amp;Receive</source>
-        <translation type="unfinished">&amp;Recibir</translation>
-    </message>
-    <message>
-        <source>&amp;Options…</source>
-        <translation type="unfinished">&amp;Opciones…</translation>
-    </message>
-    <message>
-        <source>&amp;Encrypt Wallet…</source>
-        <translation type="unfinished">&amp;Encriptar billetera…</translation>
-    </message>
-    <message>
-        <source>Encrypt the private keys that belong to your wallet</source>
-        <translation type="unfinished">Cifre las claves privadas que pertenecen a su billetera</translation>
-    </message>
-    <message>
-        <source>&amp;Backup Wallet…</source>
-        <translation type="unfinished">&amp;Realizar copia de seguridad de la billetera</translation>
-    </message>
-    <message>
-        <source>&amp;Change Passphrase…</source>
-        <translation type="unfinished">&amp;Cambiar contraseña...</translation>
-    </message>
-    <message>
-        <source>Sign &amp;message…</source>
-        <translation type="unfinished">Firmar &amp;mensaje...</translation>
-    </message>
-    <message>
-        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
-        <translation type="unfinished">Firme mensajes con sus direcciones de Bitcoin para demostrar que los posee</translation>
-    </message>
-    <message>
-        <source>&amp;Verify message…</source>
-        <translation type="unfinished">&amp;Verificar mensaje...</translation>
-    </message>
-    <message>
-        <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
-        <translation type="unfinished">Verifique los mensajes para asegurarse de que se firmaron con direcciones de Bitcoin especificadas.</translation>
-    </message>
-    <message>
-        <source>&amp;Load PSBT from file…</source>
-        <translation type="unfinished">&amp;Cargar PSBT desde el archivo...</translation>
-    </message>
-    <message>
-        <source>Open &amp;URI…</source>
-        <translation type="unfinished">Abrir &amp;URI…</translation>
-    </message>
-    <message>
-        <source>Close Wallet…</source>
-        <translation type="unfinished">Cerrar Billetera</translation>
-    </message>
-    <message>
-        <source>Create Wallet…</source>
-        <translation type="unfinished">Crear Billetera</translation>
-    </message>
-    <message>
-        <source>Close All Wallets…</source>
-        <translation type="unfinished">Cerrar todas las carteras</translation>
-    </message>
-    <message>
-        <source>&amp;File</source>
-        <translation type="unfinished">&amp;Archivo</translation>
-    </message>
-    <message>
-        <source>&amp;Settings</source>
-        <translation type="unfinished">&amp;Configuraciones</translation>
-    </message>
-    <message>
-        <source>&amp;Help</source>
-        <translation type="unfinished">&amp;Ayuda</translation>
-    </message>
-    <message>
-        <source>Tabs toolbar</source>
-        <translation type="unfinished">Pestañas</translation>
-    </message>
-    <message>
-        <source>Syncing Headers (%1%)…</source>
-        <translation type="unfinished">Sincronizando cabeceras (%1%) ...</translation>
-    </message>
-    <message>
-        <source>Synchronizing with network…</source>
-        <translation type="unfinished">Sincronizando con la red...</translation>
-    </message>
-    <message>
-        <source>Indexing blocks on disk…</source>
-        <translation type="unfinished">Indexando bloques en disco...</translation>
-    </message>
-    <message>
-        <source>Processing blocks on disk…</source>
-        <translation type="unfinished">Procesando bloques en disco...</translation>
-    </message>
-    <message>
-        <source>Reindexing blocks on disk…</source>
-        <translation type="unfinished">Reindexando bloques en disco...</translation>
-    </message>
-    <message>
-        <source>Connecting to peers…</source>
-        <translation type="unfinished">Conectando a pares...</translation>
-    </message>
-    <message>
-        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
-        <translation type="unfinished"> 
-Solicitar pagos (genera códigos QR y bitcoin: URI)
- </translation>
-    </message>
-    <message>
-        <source>Show the list of used sending addresses and labels</source>
-        <translation type="unfinished">Mostrar la lista de direcciones y etiquetas de envío usadas</translation>
-    </message>
-    <message>
-        <source>Show the list of used receiving addresses and labels</source>
-        <translation type="unfinished">Mostrar la lista de direcciones y etiquetas de recepción usadas</translation>
-    </message>
-    <message>
-        <source>&amp;Command-line options</source>
-        <translation type="unfinished">opciones de la &amp;Linea de comandos</translation>
-    </message>
-    <message numerus="yes">
-        <source>Processed %n block(s) of transaction history.</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message>
-        <source>Catching up…</source>
-        <translation type="unfinished">Poniéndose al día...</translation>
-    </message>
-    <message>
-        <source>Transactions after this will not yet be visible.</source>
-        <translation type="unfinished">Las transacciones después de esto todavía no serán visibles.</translation>
-    </message>
-    <message>
-        <source>Warning</source>
-        <translation type="unfinished">Aviso</translation>
-    </message>
-    <message>
-        <source>Information</source>
-        <translation type="unfinished">Información </translation>
-    </message>
-    <message>
-        <source>Up to date</source>
-        <translation type="unfinished">Actualizado al dia </translation>
-    </message>
-    <message>
-        <source>Open Wallet</source>
-        <translation type="unfinished">Abrir Cartera</translation>
-    </message>
-    <message>
-        <source>Open a wallet</source>
-        <translation type="unfinished">Abrir una cartera</translation>
-    </message>
-    <message>
-        <source>Close wallet</source>
-        <translation type="unfinished">Cerrar cartera</translation>
-    </message>
-    <message>
-        <source>default wallet</source>
-        <translation type="unfinished">cartera predeterminada</translation>
-    </message>
-    <message>
-        <source>No wallets available</source>
-        <translation type="unfinished">No hay carteras disponibles</translation>
-    </message>
-    <message>
-        <source>&amp;Window</source>
-        <translation type="unfinished">&amp;Ventana</translation>
-    </message>
-    <message>
-        <source>Main Window</source>
-        <translation type="unfinished">Ventana Principal</translation>
-    </message>
-    <message numerus="yes">
-        <source>%n active connection(s) to Bitcoin network.</source>
-        <extracomment>A substring of the tooltip.</extracomment>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message>
-        <source>Click for more actions.</source>
-        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
-        <translation type="unfinished">Haz click para ver más acciones.</translation>
-    </message>
-    <message>
-        <source>Show Peers tab</source>
-        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
-        <translation type="unfinished">Mostrar pestaña Pares</translation>
-    </message>
-    <message>
-        <source>Disable network activity</source>
-        <extracomment>A context menu item.</extracomment>
-        <translation type="unfinished">Desactivar actividad de la red</translation>
-    </message>
-    <message>
-        <source>Enable network activity</source>
-        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
-        <translation type="unfinished">Activar actividad de la red</translation>
-    </message>
-    <message>
-        <source>Warning: %1</source>
-        <translation type="unfinished">Alerta: %1</translation>
-    </message>
-    <message>
-        <source>Date: %1
-</source>
-        <translation type="unfinished">Fecha: %1
-</translation>
-    </message>
-    <message>
-        <source>Amount: %1
-</source>
-        <translation type="unfinished">Monto: %1
-</translation>
-    </message>
-    <message>
-        <source>Wallet: %1
-</source>
-        <translation type="unfinished">Cartera: %1
-</translation>
-    </message>
-    <message>
-        <source>Type: %1
-</source>
-        <translation type="unfinished">Tipo: %1
-</translation>
-    </message>
-    <message>
-        <source>Label: %1
-</source>
-        <translation type="unfinished">Etiqueta: %1
-</translation>
-    </message>
-    <message>
-        <source>Address: %1
-</source>
-        <translation type="unfinished">Dirección: %1
-</translation>
-    </message>
-    <message>
-        <source>Sent transaction</source>
-        <translation type="unfinished">Enviar Transacción</translation>
-    </message>
-    <message>
-        <source>Incoming transaction</source>
-        <translation type="unfinished">Transacción entrante</translation>
-    </message>
-    <message>
-        <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">Clave privada &lt;b&gt;desactivada&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
-        <translation type="unfinished">La cartera esta &lt;b&gt;encriptada&lt;/b&gt; y &lt;b&gt;desbloqueada&lt;/b&gt; actualmente </translation>
-    </message>
-    <message>
-        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
-        <translation type="unfinished">La cartera esta &lt;b&gt;encriptada&lt;/b&gt; y &lt;b&gt;bloqueada&lt;/b&gt; actualmente </translation>
-    </message>
-    </context>
-<context>
-    <name>CoinControlDialog</name>
-    <message>
-        <source>Coin Selection</source>
-        <translation type="unfinished">Selección de moneda</translation>
-    </message>
-    <message>
-        <source>Quantity:</source>
-        <translation type="unfinished">Cantidad</translation>
-    </message>
-    <message>
-        <source>Amount:</source>
-        <translation type="unfinished">Monto:</translation>
-    </message>
-    <message>
-        <source>Fee:</source>
-        <translation type="unfinished">Cuota:</translation>
-    </message>
-    <message>
-        <source>Dust:</source>
-        <translation type="unfinished">Remanente monetario:</translation>
-    </message>
-    <message>
-        <source>After Fee:</source>
-        <translation type="unfinished">Después de los cargos por comisión. </translation>
-    </message>
-    <message>
-        <source>Change:</source>
-        <translation type="unfinished">Cambio</translation>
-    </message>
-    <message>
-        <source>(un)select all</source>
-        <translation type="unfinished">(De)seleccionar todo</translation>
-    </message>
-    <message>
-        <source>Tree mode</source>
-        <translation type="unfinished">Modo árbol </translation>
-    </message>
-    <message>
-        <source>List mode</source>
-        <translation type="unfinished">Modo lista </translation>
-    </message>
-    <message>
-        <source>Amount</source>
-        <translation type="unfinished">Monto</translation>
-    </message>
-    <message>
-        <source>Received with label</source>
-        <translation type="unfinished">Recibido con etiqueta</translation>
-    </message>
-    <message>
-        <source>Received with address</source>
-        <translation type="unfinished">recibido con dirección</translation>
-    </message>
-    <message>
-        <source>Date</source>
-        <translation type="unfinished">Fecha</translation>
-    </message>
-    <message>
-        <source>Confirmations</source>
-        <translation type="unfinished">Confirmaciones</translation>
-    </message>
-    <message>
-        <source>Confirmed</source>
-        <translation type="unfinished">Confirmado </translation>
-    </message>
-    <message>
-        <source>Copy amount</source>
-        <translation type="unfinished">copiar monto</translation>
-    </message>
-    <message>
-        <source>&amp;Copy address</source>
-        <translation type="unfinished">&amp;Copiar dirección</translation>
-    </message>
-    <message>
-        <source>Copy &amp;label</source>
-        <translation type="unfinished">Copiar &amp;label</translation>
-    </message>
-    <message>
-        <source>Copy &amp;amount</source>
-        <translation type="unfinished">Copiar &amp;amount</translation>
-    </message>
-    <message>
-        <source>L&amp;ock unspent</source>
-        <translation type="unfinished">Bloquear no gastado</translation>
-    </message>
-    <message>
-        <source>&amp;Unlock unspent</source>
-        <translation type="unfinished">&amp;Desbloquear lo no gastado</translation>
-    </message>
-    <message>
-        <source>Copy quantity</source>
-        <translation type="unfinished">Copiar cantidad</translation>
-    </message>
-    <message>
-        <source>Copy fee</source>
-        <translation type="unfinished">Copiar cuota</translation>
-    </message>
-    <message>
-        <source>Copy after fee</source>
-        <translation type="unfinished">Copiar después de cuota</translation>
-    </message>
-    <message>
-        <source>Copy bytes</source>
-        <translation type="unfinished">Copiar bytes</translation>
-    </message>
-    <message>
-        <source>Copy change</source>
-        <translation type="unfinished">Copiar cambio</translation>
-    </message>
-    <message>
-        <source>yes</source>
-        <translation type="unfinished">si</translation>
-    </message>
-    <message>
-        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
-        <translation type="unfinished">Esta capa se vuelve roja si algún destinatario recibe un monto menor al actual limite del remanente monetario </translation>
-    </message>
-    <message>
-        <source>Can vary +/- %1 satoshi(s) per input.</source>
-        <translation type="unfinished">Puede variar +/- %1 satoshi(s) por entrada.</translation>
-    </message>
-    <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(sin etiqueta)</translation>
-    </message>
-    <message>
-        <source>(change)</source>
-        <translation type="unfinished">(cambio)</translation>
-    </message>
-</context>
-<context>
-    <name>CreateWalletActivity</name>
-    <message>
-        <source>Create Wallet</source>
-        <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
-        <translation type="unfinished">Crear una cartera </translation>
-    </message>
-    <message>
-        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
-        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
-        <translation type="unfinished">Creando Monedero &lt;b&gt;%1&lt;/b&gt;…</translation>
-    </message>
-    <message>
-        <source>Create wallet failed</source>
-        <translation type="unfinished">La creación de la cartera falló</translation>
-    </message>
-    <message>
-        <source>Create wallet warning</source>
-        <translation type="unfinished">Crear advertencia de cartera</translation>
-    </message>
-    <message>
-        <source>Can't list signers</source>
-        <translation type="unfinished">No se pueden listar los firmantes</translation>
-    </message>
-</context>
-<context>
-    <name>OpenWalletActivity</name>
-    <message>
-        <source>Open wallet failed</source>
-        <translation type="unfinished">Abrir la cartera falló</translation>
-    </message>
-    <message>
-        <source>default wallet</source>
-        <translation type="unfinished">cartera predeterminada</translation>
-    </message>
-    <message>
-        <source>Open Wallet</source>
-        <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
-        <translation type="unfinished">Abrir Cartera</translation>
-    </message>
-    <message>
-        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
-        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
-        <translation type="unfinished">Abriendo billetera &lt;b&gt;%1&lt;/b&gt;...</translation>
-    </message>
-</context>
-<context>
-    <name>WalletController</name>
-    <message>
-        <source>Close wallet</source>
-        <translation type="unfinished">Cerrar cartera</translation>
-    </message>
-    <message>
-        <source>Close all wallets</source>
-        <translation type="unfinished">Cerrar todas las carteras</translation>
-    </message>
-    <message>
-        <source>Are you sure you wish to close all wallets?</source>
-        <translation type="unfinished">¿Está seguro de cerrar todas las carteras?</translation>
-    </message>
-</context>
-<context>
-    <name>CreateWalletDialog</name>
-    <message>
-        <source>Create Wallet</source>
-        <translation type="unfinished">Crear una cartera </translation>
-    </message>
-    <message>
-        <source>Wallet Name</source>
-        <translation type="unfinished">Nombre de la cartera </translation>
-    </message>
-    <message>
-        <source>Wallet</source>
-        <translation type="unfinished">Cartera</translation>
-    </message>
-    <message>
-        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
-        <translation type="unfinished">Encriptar la cartera. La cartera será encriptada con una frase de contraseña de tu elección.</translation>
-    </message>
-    <message>
-        <source>Encrypt Wallet</source>
-        <translation type="unfinished">Encripta la cartera</translation>
-    </message>
-    <message>
-        <source>Advanced Options</source>
-        <translation type="unfinished">Opciones avanzadas</translation>
-    </message>
-    <message>
-        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
-        <translation type="unfinished">Desactivar las llaves privadas de esta cartera. Las carteras con las llaves privadas desactivadas no tendrán llaves privadas y no podrán tener una semilla HD o llaves privadas importadas. Esto es ideal para las carteras "watch-only".</translation>
-    </message>
-    <message>
-        <source>Disable Private Keys</source>
-        <translation type="unfinished">Desactivar las claves privadas</translation>
-    </message>
-    <message>
-        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
-        <translation type="unfinished">Utilice un dispositivo de firma externo, como un monedero de hardware. Configure primero el script del firmante externo en las preferencias del monedero.</translation>
-    </message>
-    <message>
-        <source>External signer</source>
-        <translation type="unfinished">firmante externo</translation>
-    </message>
-    <message>
-        <source>Create</source>
-        <translation type="unfinished">Crear</translation>
-    </message>
-    <message>
-        <source>Compiled without external signing support (required for external signing)</source>
-        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
-        <translation type="unfinished">Compilado sin soporte de firma externa (necesario para la firma externa)</translation>
-    </message>
-</context>
-<context>
-    <name>EditAddressDialog</name>
-    <message>
-        <source>Edit Address</source>
-        <translation type="unfinished">Editar dirección</translation>
-    </message>
-    <message>
-        <source>&amp;Label</source>
-        <translation type="unfinished">&amp;Etiqueta</translation>
-    </message>
-    <message>
-        <source>The label associated with this address list entry</source>
-        <translation type="unfinished">La etiqueta asociada a esta entrada de la lista de direcciones</translation>
-    </message>
-    <message>
-        <source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
-        <translation type="unfinished">La dirección asociada a esta entrada de la lista de direcciones. Esto sólo puede ser modificado para las direcciones de envío.</translation>
-    </message>
-    <message>
-        <source>&amp;Address</source>
-        <translation type="unfinished">&amp;Dirección</translation>
-    </message>
-    <message>
-        <source>New sending address</source>
-        <translation type="unfinished">Nueva dirección de envío</translation>
-    </message>
-    <message>
-        <source>Edit receiving address</source>
-        <translation type="unfinished">Editar dirección de recepción</translation>
-    </message>
-    <message>
-        <source>Edit sending address</source>
-        <translation type="unfinished">Editar dirección de envío</translation>
-    </message>
-    <message>
-        <source>Could not unlock wallet.</source>
-        <translation type="unfinished">No se puede desbloquear la cartera</translation>
-    </message>
-    <message>
-        <source>New key generation failed.</source>
-        <translation type="unfinished">La generación de la nueva clave fallo</translation>
-    </message>
-</context>
-<context>
-    <name>FreespaceChecker</name>
-    <message>
-        <source>A new data directory will be created.</source>
-        <translation type="unfinished">Un nuevo directorio de datos será creado.</translation>
-    </message>
-    <message>
-        <source>name</source>
-        <translation type="unfinished">nombre</translation>
-    </message>
-    <message>
-        <source>Path already exists, and is not a directory.</source>
-        <translation type="unfinished">El camino ya existe, y no es un directorio.</translation>
-    </message>
-    <message>
-        <source>Cannot create data directory here.</source>
-        <translation type="unfinished">No se puede crear un directorio de datos aquí.</translation>
-    </message>
-</context>
-<context>
-    <name>Intro</name>
-    <message>
-        <source>(of %1 GB needed)</source>
-        <translation type="unfinished">(de los %1 GB necesarios)</translation>
-    </message>
-    <message>
-        <source>(%1 GB needed for full chain)</source>
-        <translation type="unfinished">(%1 GB necesarios para la cadena completa)</translation>
-    </message>
-    <message numerus="yes">
-        <source>(sufficient to restore backups %n day(s) old)</source>
-        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message>
-        <source>The wallet will also be stored in this directory.</source>
-        <translation type="unfinished">La cartera también se almacenará en este directorio.</translation>
-    </message>
-    <message>
-        <source>Welcome</source>
-        <translation type="unfinished">Bienvenido</translation>
-    </message>
-    <message>
-        <source>Limit block chain storage to</source>
-        <translation type="unfinished">Limitar el almacenamiento de cadena de bloque a</translation>
-    </message>
-    <message>
-        <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
-        <translation type="unfinished">Revertir esta configuración requiere descargar nuevamente la cadena de bloques en su totalidad. es mas eficaz descargar la cadena de bloques completa y después reducirla. Desabilitará algunas funciones avanzadas.</translation>
-    </message>
-    <message>
-        <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
-        <translation type="unfinished">La sincronización inicial es muy demandante, por lo que algunos problemas en su equipo de computo que no hayan sido detectados pueden verse reflejados. Cada vez que corra al %1, continuará descargando donde se le dejó.</translation>
-    </message>
-    <message>
-        <source>Use the default data directory</source>
-        <translation type="unfinished">Usar el directorio de datos predeterminado</translation>
-    </message>
-    <message>
-        <source>Use a custom data directory:</source>
-        <translation type="unfinished">Usar un directorio de datos customizado:</translation>
-    </message>
-</context>
-<context>
-    <name>HelpMessageDialog</name>
-    <message>
-        <source>version</source>
-        <translation type="unfinished">versión</translation>
-    </message>
-    <message>
-        <source>Command-line options</source>
-        <translation type="unfinished">opciones de la Linea de comandos</translation>
-    </message>
-</context>
-<context>
-    <name>ShutdownWindow</name>
-    <message>
-        <source>%1 is shutting down…</source>
-        <translation type="unfinished">%1 se está cerrando...</translation>
-    </message>
-    <message>
-        <source>Do not shut down the computer until this window disappears.</source>
-        <translation type="unfinished">No apague su computadora hasta que esta ventana desaparesca.</translation>
-    </message>
-</context>
-<context>
-    <name>ModalOverlay</name>
-    <message>
-        <source>Form</source>
-        <translation type="unfinished">Formulario</translation>
-    </message>
-    <message>
-        <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
-        <translation type="unfinished">Las transacciones recientes pueden no ser visibles todavía, y por lo tanto el saldo de su cartera podría ser incorrecto. Esta información será correcta una vez que su cartera haya terminado de sincronizarse con la red de bitcoin, como se detalla abajo.</translation>
-    </message>
-    <message>
-        <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source>
-        <translation type="unfinished">Los intentos de gastar bitcoins que se vean afectados por transacciones aún no mostradas no serán aceptados por la red.</translation>
-    </message>
-    <message>
-        <source>Number of blocks left</source>
-        <translation type="unfinished">Número de bloques restantes</translation>
-    </message>
-    <message>
-        <source>Unknown…</source>
-        <translation type="unfinished">Desconocido...</translation>
-    </message>
-    <message>
-        <source>calculating…</source>
-        <translation type="unfinished">calculando...</translation>
-    </message>
-    <message>
-        <source>Progress</source>
-        <translation type="unfinished">Progreso </translation>
-    </message>
-    <message>
-        <source>Progress increase per hour</source>
-        <translation type="unfinished">Aumento del progreso por hora</translation>
-    </message>
-    <message>
-        <source>Estimated time left until synced</source>
-        <translation type="unfinished">Tiempo estimado restante hasta la sincronización</translation>
-    </message>
-    <message>
-        <source>Hide</source>
-        <translation type="unfinished">Ocultar </translation>
-    </message>
-    <message>
-        <source>Unknown. Syncing Headers (%1, %2%)…</source>
-        <translation type="unfinished">Desconocido. Sincronizando Cabeceras (%1, %2%)…</translation>
-    </message>
-</context>
-<context>
-    <name>OpenURIDialog</name>
-    <message>
-        <source>Open bitcoin URI</source>
-        <translation type="unfinished">Abrir la URI de bitcoin</translation>
-    </message>
-    <message>
-        <source>Paste address from clipboard</source>
-        <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
-        <translation type="unfinished">Pegar dirección  del portapapeles</translation>
-    </message>
-</context>
-<context>
-    <name>OptionsDialog</name>
-    <message>
-        <source>Options</source>
-        <translation type="unfinished">Opciones</translation>
-    </message>
-    <message>
-        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
-        <translation type="unfinished">Activar el pruning reduce significativamente el espacio de disco necesario para guardar las transacciones. Todos los bloques son completamente validados de cualquier manera. Revertir esta opción requiere que descarques de nuevo toda la cadena de bloques.</translation>
-    </message>
-    <message>
-        <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source>
-        <translation type="unfinished">Minimizar en lugar de salir de la aplicación cuando la ventana se cierra. Cuando esta opción está activada, la aplicación se cerrará sólo después de seleccionar Salir en el menú.</translation>
-    </message>
-    <message>
-        <source>Open Configuration File</source>
-        <translation type="unfinished">Abrir Configuración de Archivo</translation>
-    </message>
-    <message>
-        <source>W&amp;allet</source>
-        <translation type="unfinished">Cartera</translation>
-    </message>
-    <message>
-        <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source>
-        <translation type="unfinished">Si usted desactiva el gasto de cambio no confirmado, el cambio de una transacción no puede ser utilizado hasta que esa transacción tenga al menos una confirmación. Esto también afecta la manera en que se calcula su saldo.</translation>
-    </message>
-    <message>
-        <source>&amp;Spend unconfirmed change</source>
-        <translation type="unfinished">&amp;Gastar el cambio no confirmado</translation>
-    </message>
-    <message>
-        <source>External Signer (e.g. hardware wallet)</source>
-        <translation type="unfinished">Dispositivo Externo de Firma (ej. billetera de hardware)</translation>
-    </message>
-    <message>
-        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
-        <translation type="unfinished">Ruta completa al script compatible con Bitcoin Core (ej. C:\Descargas\hwi.exe o /Usuarios/SuUsuario/Descargas/hwi.py). Cuidado: código malicioso podría robarle sus monedas!</translation>
-    </message>
-    <message>
-        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
-        <translation type="unfinished">Abre el puerto del cliente de Bitcoin en el router automáticamente. Esto solo funciona cuando el router soporta NAT-PMP y está habilitado. El puerto externo podría ser elegido al azar.</translation>
-    </message>
-    <message>
-        <source>Map port using NA&amp;T-PMP</source>
-        <translation type="unfinished">Mapear el puerto usando NA&amp;T-PMP</translation>
-    </message>
-    <message>
-        <source>Accept connections from outside.</source>
-        <translation type="unfinished">Aceptar las conexiones del exterior.</translation>
-    </message>
-    <message>
-        <source>&amp;Window</source>
-        <translation type="unfinished">&amp;Ventana</translation>
-    </message>
-    <message>
-        <source>Show the icon in the system tray.</source>
-        <translation type="unfinished">Mostrar el ícono en la bandeja del sistema.</translation>
-    </message>
-    <message>
-        <source>&amp;Show tray icon</source>
-        <translation type="unfinished">Mostrar la bandeja del sistema.</translation>
-    </message>
-    <message>
-        <source>User Interface &amp;language:</source>
-        <translation type="unfinished">Idioma de la interfaz de usuario:</translation>
-    </message>
-    <message>
-        <source>Monospaced font in the Overview tab:</source>
-        <translation type="unfinished">letra Monospace en la pestaña Resumen: </translation>
-    </message>
-    <message>
-        <source>embedded "%1"</source>
-        <translation type="unfinished">incrustado "%1"</translation>
-    </message>
-    <message>
-        <source>closest matching "%1"</source>
-        <translation type="unfinished">coincidencia más aproximada "%1"</translation>
-    </message>
-    <message>
-        <source>Compiled without external signing support (required for external signing)</source>
-        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
-        <translation type="unfinished">Compilado sin soporte de firma externa (necesario para la firma externa)</translation>
-    </message>
-    <message>
-        <source>none</source>
-        <translation type="unfinished">Ninguno </translation>
-    </message>
-    <message>
-        <source>This change would require a client restart.</source>
-        <translation type="unfinished">Este cambio requeriría un reinicio del cliente.</translation>
-    </message>
-    </context>
-<context>
-    <name>OverviewPage</name>
-    <message>
-        <source>Form</source>
-        <translation type="unfinished">Formulario</translation>
-    </message>
-    <message>
-        <source>Recent transactions</source>
-        <translation type="unfinished">&lt;b&gt;Transacciones recientes&lt;/b&gt;</translation>
-    </message>
-    </context>
-<context>
-    <name>PSBTOperationsDialog</name>
-    <message>
-        <source>Save…</source>
-        <translation type="unfinished">Guardar...</translation>
-    </message>
-    <message>
-        <source>Partially Signed Transaction (Binary)</source>
-        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
-        <translation type="unfinished">Transacción parcialmente firmada (binario) </translation>
-    </message>
-    <message>
-        <source>Total Amount</source>
-        <translation type="unfinished">Cantidad total</translation>
-    </message>
-    <message>
-        <source>or</source>
-        <translation type="unfinished">o</translation>
-    </message>
-    </context>
-<context>
-    <name>PaymentServer</name>
-    <message>
-        <source>Cannot process payment request because BIP70 is not supported.
-Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
-If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source>
-        <translation type="unfinished">No se pudo procesar la solicitud de pago porque BIP70 no es compatible.
-Debido a fallos de seguridad en  BIP70, se recomienda ignorar cualquier instrucción sobre cambiar  carteras
-Si recibe este error,  debe solicitar al vendedor un URI compatible con BIP21.</translation>
-    </message>
-    </context>
-<context>
-    <name>PeerTableModel</name>
-    <message>
-        <source>Peer</source>
-        <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
-        <translation type="unfinished">Par</translation>
-    </message>
-    <message>
-        <source>Sent</source>
-        <extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
-        <translation type="unfinished">Enviado</translation>
-    </message>
-    <message>
-        <source>Received</source>
-        <extracomment>Title of Peers Table column which indicates the total amount of network information we have received from the peer.</extracomment>
-        <translation type="unfinished">Recibido</translation>
-    </message>
-    <message>
-        <source>Address</source>
-        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
-        <translation type="unfinished">Dirección</translation>
-    </message>
-    <message>
-        <source>Type</source>
-        <extracomment>Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists.</extracomment>
-        <translation type="unfinished">Tipo</translation>
-    </message>
-    <message>
-        <source>Network</source>
-        <extracomment>Title of Peers Table column which states the network the peer connected through.</extracomment>
-        <translation type="unfinished">Red</translation>
-    </message>
-    <message>
-        <source>Inbound</source>
-        <extracomment>An Inbound Connection from a Peer.</extracomment>
-        <translation type="unfinished">Entrada</translation>
-    </message>
-    <message>
-        <source>Outbound</source>
-        <extracomment>An Outbound Connection to a Peer.</extracomment>
-        <translation type="unfinished">Salida</translation>
-    </message>
-</context>
-<context>
-    <name>QRImageWidget</name>
-    <message>
-        <source>&amp;Save Image…</source>
-        <translation type="unfinished">&amp;Guardar imagen</translation>
-    </message>
-    <message>
-        <source>&amp;Copy Image</source>
-        <translation type="unfinished">&amp;Copiar Imagen</translation>
-    </message>
-    <message>
-        <source>Error encoding URI into QR Code.</source>
-        <translation type="unfinished">Error codificando la URI en el Código QR.</translation>
-    </message>
-    <message>
-        <source>QR code support not available.</source>
-        <translation type="unfinished">El soporte del código QR no está disponible.</translation>
-    </message>
-    <message>
-        <source>Save QR Code</source>
-        <translation type="unfinished">Guardar Código QR</translation>
-    </message>
-    <message>
-        <source>PNG Image</source>
-        <extracomment>Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics.</extracomment>
-        <translation type="unfinished">Imagen PNG</translation>
-    </message>
-</context>
-<context>
-    <name>RPCConsole</name>
-    <message>
-        <source>Client version</source>
-        <translation type="unfinished">Versión cliente </translation>
-    </message>
-    <message>
-        <source>&amp;Information</source>
-        <translation type="unfinished">&amp;Información</translation>
-    </message>
-    <message>
-        <source>Network</source>
-        <translation type="unfinished">Red</translation>
-    </message>
-    <message>
-        <source>Name</source>
-        <translation type="unfinished">Nombre</translation>
-    </message>
-    <message>
-        <source>Wallet: </source>
-        <translation type="unfinished">Cartera:</translation>
-    </message>
-    <message>
-        <source>(none)</source>
-        <translation type="unfinished">(ninguno)</translation>
-    </message>
-    <message>
-        <source>Received</source>
-        <translation type="unfinished">Recibido</translation>
-    </message>
-    <message>
-        <source>Sent</source>
-        <translation type="unfinished">Enviado</translation>
-    </message>
-    <message>
-        <source>Decrease font size</source>
-        <translation type="unfinished">Reducir el tamaño de la letra</translation>
-    </message>
-    <message>
-        <source>Increase font size</source>
-        <translation type="unfinished">Aumentar el tamaño de la letra</translation>
-    </message>
-    <message>
-        <source>The direction and type of peer connection: %1</source>
-        <translation type="unfinished">Dirección y tipo de conexión entre pares: %1</translation>
-    </message>
-    <message>
-        <source>Direction/Type</source>
-        <translation type="unfinished">Dirección/Tipo</translation>
-    </message>
-    <message>
-        <source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
-        <translation type="unfinished">Este par está conectado mediante alguno de los siguientes protocolos de red : IPv4, IPv6, Onion, I2P, or CJDNS.</translation>
-    </message>
-    <message>
-        <source>Services</source>
-        <translation type="unfinished">Servicios</translation>
-    </message>
-    <message>
-        <source>Whether the peer requested us to relay transactions.</source>
-        <translation type="unfinished">Si el peer nos solicitó que transmitiéramos las transacciones.</translation>
-    </message>
-    <message>
-        <source>Wants Tx Relay</source>
-        <translation type="unfinished">Desea una transmisión de transacción</translation>
-    </message>
-    <message>
-        <source>High bandwidth BIP152 compact block relay: %1</source>
-        <translation type="unfinished">Transmisión de bloque compacto BIP152 banbda ancha: %1</translation>
-    </message>
-    <message>
-        <source>High Bandwidth</source>
-        <translation type="unfinished">banda ancha</translation>
-    </message>
-    <message>
-        <source>Connection Time</source>
-        <translation type="unfinished">Tiempo de conexión</translation>
-    </message>
-    <message>
-        <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
-        <translation type="unfinished">Tiempo transcurrido desde que se recibió de este par un nuevo bloque que superó las comprobaciones de validez iniciales.</translation>
-    </message>
-    <message>
-        <source>Last Block</source>
-        <translation type="unfinished">Último Bloque</translation>
-    </message>
-    <message>
-        <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
-        <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
-        <translation type="unfinished">Tiempo transcurrido desde que se recibió de este par una nueva transacción aceptada en nuestro mempool.</translation>
-    </message>
-    <message>
-        <source>Last Send</source>
-        <translation type="unfinished">Último envío</translation>
-    </message>
-    <message>
-        <source>Last Receive</source>
-        <translation type="unfinished">Última recepción</translation>
-    </message>
-    <message>
-        <source>Inbound: initiated by peer</source>
-        <extracomment>Explanatory text for an inbound peer connection.</extracomment>
-        <translation type="unfinished">Entrante: iniciado por el par</translation>
-    </message>
-    <message>
-        <source>Outbound Full Relay: default</source>
-        <extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
-        <translation type="unfinished">Relé Completo de Salida: predeterminado</translation>
-    </message>
-    <message>
-        <source>Outbound Block Relay: does not relay transactions or addresses</source>
-        <extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
-        <translation type="unfinished">Retransmisión de bloque saliente: no retransmite transacciones o direcciones</translation>
-    </message>
-    <message>
-        <source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
-        <extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
-        <translation type="unfinished">Manual de Salida: agregado usando las opciones de configuración RPC %1 o %2/%3</translation>
-    </message>
-    <message>
-        <source>Outbound Feeler: short-lived, for testing addresses</source>
-        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
-        <translation type="unfinished">Sensor de Salida: de corta duración, para probar direcciones</translation>
-    </message>
-    <message>
-        <source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
-        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
-        <translation type="unfinished">Recuperación de Dirección Saliente: de corta duración, para solicitar direcciones</translation>
-    </message>
-    <message>
-        <source>we selected the peer for high bandwidth relay</source>
-        <translation type="unfinished">hemos seleccionado el par para la retransmisión de banda ancha</translation>
-    </message>
-    <message>
-        <source>the peer selected us for high bandwidth relay</source>
-        <translation type="unfinished">El par nos ha seleccionado para transmisión de banda ancha</translation>
-    </message>
-    <message>
-        <source>no high bandwidth relay selected</source>
-        <translation type="unfinished">Ninguna transmisión de banda ancha seleccionada</translation>
-    </message>
-    <message>
-        <source>&amp;Copy address</source>
-        <extracomment>Context menu action to copy the address of a peer.</extracomment>
-        <translation type="unfinished">&amp;Copiar dirección</translation>
-    </message>
-    <message>
-        <source>1 d&amp;ay</source>
-        <translation type="unfinished">1 día</translation>
-    </message>
-    <message>
-        <source>Network activity disabled</source>
-        <translation type="unfinished">Actividad de la red desactivada</translation>
-    </message>
-    <message>
-        <source>Executing command without any wallet</source>
-        <translation type="unfinished">Ejecutando el comando sin ninguna cartera</translation>
-    </message>
-    <message>
-        <source>Welcome to the %1 RPC console.
-Use up and down arrows to navigate history, and %2 to clear screen.
-Use %3 and %4 to increase or decrease the font size.
-Type %5 for an overview of available commands.
-For more information on using this console, type %6.
-
-%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8</source>
-        <extracomment>RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally.</extracomment>
-        <translation type="unfinished">Bienvenido a la %1 consola RPC. 
-Utilice la flecha arriba y abajo para navegar el historial y %2 para limpiar la consola.
-Utilice%3  y  %4 para aumentar o reducir el tamaño de fuente.
-Escriba %5 para una visión general de los comandos disponibles.
-Para obtener más información, escriba %6.
-
-%7ADVERTENCIA: Los estafadores, de forma activa, han estado indicando a los usuarios que escriban comandos aquí y de esta manera  roban el contenido de sus monederos. No utilice esta consola si no comprende perfectamente las ramificaciones de un comando.%8</translation>
-    </message>
-    <message>
-        <source>Executing…</source>
-        <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
-        <translation type="unfinished">Ejecutando...</translation>
-    </message>
-    <message>
-        <source>(peer: %1)</source>
-        <translation type="unfinished">(par: %1)</translation>
-    </message>
-    <message>
-        <source>Yes</source>
-        <translation type="unfinished">Sí</translation>
-    </message>
-    <message>
-        <source>To</source>
-        <translation type="unfinished">Para</translation>
-    </message>
-    <message>
-        <source>From</source>
-        <translation type="unfinished">De</translation>
-    </message>
-    <message>
-        <source>Never</source>
-        <translation type="unfinished">Nunca</translation>
-    </message>
-    <message>
-        <source>Unknown</source>
-        <translation type="unfinished">Desconocido</translation>
-    </message>
-</context>
-<context>
-    <name>ReceiveCoinsDialog</name>
-    <message>
-        <source>&amp;Amount:</source>
-        <translation type="unfinished">Monto:</translation>
-    </message>
-    <message>
-        <source>&amp;Label:</source>
-        <translation type="unfinished">&amp;Etiqueta</translation>
-    </message>
-    <message>
-        <source>&amp;Message:</source>
-        <translation type="unfinished">Mensaje:</translation>
-    </message>
-    <message>
-        <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source>
-        <translation type="unfinished">Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud este abierta. Nota: El mensaje no se manda con el pago a travéz de la red de Bitcoin.</translation>
-    </message>
-    <message>
-        <source>An optional label to associate with the new receiving address.</source>
-        <translation type="unfinished">Una etiqueta opcional para asociar a la nueva dirección de recepción.</translation>
-    </message>
-    <message>
-        <source>Use this form to request payments. All fields are &lt;b&gt;optional&lt;/b&gt;.</source>
-        <translation type="unfinished">Use este formulario para la solicitud de pagos. Todos los campos son &lt;b&gt;opcionales&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source>
-        <translation type="unfinished">Monto opcional a solicitar. Dejarlo vacion o en cero no solicita un monto especifico.</translation>
-    </message>
-    <message>
-        <source>An optional label to associate with the new receiving address (used by you to identify an invoice).  It is also attached to the payment request.</source>
-        <translation type="unfinished">Una etiqueta opcional para asociar a la nueva dirección de recepción (utilizada por usted para identificar una factura). También se adjunta a la solicitud de pago.</translation>
-    </message>
-    <message>
-        <source>An optional message that is attached to the payment request and may be displayed to the sender.</source>
-        <translation type="unfinished">Un mensaje opcional que se adjunta a la solicitud de pago y que puede mostrarse al remitente.</translation>
-    </message>
-    <message>
-        <source>&amp;Create new receiving address</source>
-        <translation type="unfinished">&amp;Crear una nueva dirección de recepción</translation>
-    </message>
-    <message>
-        <source>Clear all fields of the form.</source>
-        <translation type="unfinished">Borrar todos los campos del formulario.</translation>
-    </message>
-    <message>
-        <source>Clear</source>
-        <translation type="unfinished">Borrar </translation>
-    </message>
-    <message>
-        <source>Requested payments history</source>
-        <translation type="unfinished">Historial de pagos solicitados</translation>
-    </message>
-    <message>
-        <source>Show the selected request (does the same as double clicking an entry)</source>
-        <translation type="unfinished">Mostrar la solicitud seleccionada (hace lo mismo que hacer doble clic en una entrada)</translation>
-    </message>
-    <message>
-        <source>Show</source>
-        <translation type="unfinished">Mostrar</translation>
-    </message>
-    <message>
-        <source>Remove the selected entries from the list</source>
-        <translation type="unfinished">Eliminar las entradas seleccionadas de la lista</translation>
-    </message>
-    <message>
-        <source>Remove</source>
-        <translation type="unfinished">Eliminar </translation>
-    </message>
-    <message>
-        <source>&amp;Copy address</source>
-        <translation type="unfinished">&amp;Copiar dirección</translation>
-    </message>
-    <message>
-        <source>Copy &amp;label</source>
-        <translation type="unfinished">Copiar &amp;label</translation>
-    </message>
-    <message>
-        <source>Copy &amp;message</source>
-        <translation type="unfinished">Copiar &amp;mensaje</translation>
-    </message>
-    <message>
-        <source>Copy &amp;amount</source>
-        <translation type="unfinished">Copiar &amp;amount</translation>
-    </message>
-    <message>
-        <source>Could not unlock wallet.</source>
-        <translation type="unfinished">No se puede desbloquear la cartera</translation>
-    </message>
-    </context>
-<context>
-    <name>ReceiveRequestDialog</name>
-    <message>
-        <source>Request payment to …</source>
-        <translation type="unfinished">Solicitar pago a...</translation>
-    </message>
-    <message>
-        <source>Amount:</source>
-        <translation type="unfinished">Monto:</translation>
-    </message>
-    <message>
-        <source>Message:</source>
-        <translation type="unfinished">Mensaje:</translation>
-    </message>
-    <message>
-        <source>Wallet:</source>
-        <translation type="unfinished">Cartera:</translation>
-    </message>
-    <message>
-        <source>Copy &amp;Address</source>
-        <translation type="unfinished">&amp;Copiar dirección</translation>
-    </message>
-    <message>
-        <source>&amp;Verify</source>
-        <translation type="unfinished">&amp;Verificar</translation>
-    </message>
-    <message>
-        <source>Verify this address on e.g. a hardware wallet screen</source>
-        <translation type="unfinished">Verifique esta dirección en la pantalla de su billetera fría u otro dispositivo</translation>
-    </message>
-    <message>
-        <source>&amp;Save Image…</source>
-        <translation type="unfinished">&amp;Guardar imagen</translation>
-    </message>
-    </context>
-<context>
-    <name>RecentRequestsTableModel</name>
-    <message>
-        <source>Date</source>
-        <translation type="unfinished">Fecha</translation>
-    </message>
-    <message>
-        <source>Label</source>
-        <translation type="unfinished">Etiqueta</translation>
-    </message>
-    <message>
-        <source>Message</source>
-        <translation type="unfinished">Mensaje</translation>
-    </message>
-    <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(sin etiqueta)</translation>
-    </message>
-    </context>
-<context>
-    <name>SendCoinsDialog</name>
-    <message>
-        <source>Send Coins</source>
-        <translation type="unfinished">Enviar monedas</translation>
-    </message>
-    <message>
-        <source>Quantity:</source>
-        <translation type="unfinished">Cantidad</translation>
-    </message>
-    <message>
-        <source>Amount:</source>
-        <translation type="unfinished">Monto:</translation>
-    </message>
-    <message>
-        <source>Fee:</source>
-        <translation type="unfinished">Cuota:</translation>
-    </message>
-    <message>
-        <source>After Fee:</source>
-        <translation type="unfinished">Después de los cargos por comisión. </translation>
-    </message>
-    <message>
-        <source>Change:</source>
-        <translation type="unfinished">Cambio</translation>
-    </message>
-    <message>
-        <source>Hide</source>
-        <translation type="unfinished">Ocultar </translation>
-    </message>
-    <message>
-        <source>Send to multiple recipients at once</source>
-        <translation type="unfinished">Enviar a múltiples receptores a la vez</translation>
-    </message>
-    <message>
-        <source>Clear all fields of the form.</source>
-        <translation type="unfinished">Borrar todos los campos del formulario.</translation>
-    </message>
-    <message>
-        <source>Inputs…</source>
-        <translation type="unfinished">Entradas...</translation>
-    </message>
-    <message>
-        <source>Dust:</source>
-        <translation type="unfinished">Remanente monetario:</translation>
-    </message>
-    <message>
-        <source>Choose…</source>
-        <translation type="unfinished">Elegir...</translation>
-    </message>
-    <message>
-        <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size.
-
-Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satoshis per kvB" for a transaction size of 500 virtual bytes (half of 1 kvB) would ultimately yield a fee of only 50 satoshis.</source>
-        <translation type="unfinished">Especifique una tarifa personalizada por kB (1.000 bytes) del tamaño virtual de la transacción.
-
-Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por kvB" para una transacción de 500 bytes virtuales (la mitad de 1 kvB) supondría finalmente una tasa de sólo 50 satoshis.</translation>
-    </message>
-    <message>
-        <source>(Smart fee not initialized yet. This usually takes a few blocks…)</source>
-        <translation type="unfinished">(Comisión inteligente no inicializada todavía. Usualmente esto tarda algunos bloques…)</translation>
-    </message>
-    <message>
-        <source>Balance:</source>
-        <translation type="unfinished">Saldo:</translation>
-    </message>
-    <message>
-        <source>Confirm the send action</source>
-        <translation type="unfinished">Confirme la acción de enviar</translation>
-    </message>
-    <message>
-        <source>Copy quantity</source>
-        <translation type="unfinished">Copiar cantidad</translation>
-    </message>
-    <message>
-        <source>Copy amount</source>
-        <translation type="unfinished">copiar monto</translation>
-    </message>
-    <message>
-        <source>Copy fee</source>
-        <translation type="unfinished">Copiar cuota</translation>
-    </message>
-    <message>
-        <source>Copy after fee</source>
-        <translation type="unfinished">Copiar después de cuota</translation>
-    </message>
-    <message>
-        <source>Copy bytes</source>
-        <translation type="unfinished">Copiar bytes</translation>
-    </message>
-    <message>
-        <source>Copy change</source>
-        <translation type="unfinished">Copiar cambio</translation>
-    </message>
-    <message>
-        <source>Sign on device</source>
-        <extracomment>"device" usually means a hardware wallet.</extracomment>
-        <translation type="unfinished">Iniciar sesión en el dispositivo</translation>
-    </message>
-    <message>
-        <source>Connect your hardware wallet first.</source>
-        <translation type="unfinished">Conecte su wallet externo primero.</translation>
-    </message>
-    <message>
-        <source>Set external signer script path in Options -&gt; Wallet</source>
-        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
-        <translation type="unfinished">Configure una ruta externa al script en Opciones -&gt; Wallet</translation>
-    </message>
-    <message>
-        <source>To review recipient list click "Show Details…"</source>
-        <translation type="unfinished">Para revisar la lista de recipientes clique en "Mostrar Detalles..."</translation>
-    </message>
-    <message>
-        <source>Sign failed</source>
-        <translation type="unfinished">Falló Firma</translation>
-    </message>
-    <message>
-        <source>External signer not found</source>
-        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
-        <translation type="unfinished">Dispositivo externo de firma no encontrado</translation>
-    </message>
-    <message>
-        <source>External signer failure</source>
-        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
-        <translation type="unfinished">Fallo en cartera hardware externa </translation>
-    </message>
-    <message>
-        <source>Partially Signed Transaction (Binary)</source>
-        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
-        <translation type="unfinished">Transacción parcialmente firmada (binario) </translation>
-    </message>
-    <message>
-        <source>External balance:</source>
-        <translation type="unfinished">Saldo externo:</translation>
-    </message>
-    <message>
-        <source>or</source>
-        <translation type="unfinished">o</translation>
-    </message>
-    <message>
-        <source>Please, review your transaction.</source>
-        <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
-        <translation type="unfinished">Por favor, revise su transacción.</translation>
-    </message>
-    <message>
-        <source>Transaction fee</source>
-        <translation type="unfinished">Cuota de transacción</translation>
-    </message>
-    <message>
-        <source>Total Amount</source>
-        <translation type="unfinished">Cantidad total</translation>
-    </message>
-    <message>
-        <source>Confirm send coins</source>
-        <translation type="unfinished">Confirme para enviar monedas</translation>
-    </message>
-    <message>
-        <source>The recipient address is not valid. Please recheck.</source>
-        <translation type="unfinished">La dirección del destinatario no es válida. Por favor, vuelva a verificarla.</translation>
-    </message>
-    <message>
-        <source>The amount to pay must be larger than 0.</source>
-        <translation type="unfinished">El monto a pagar debe ser mayor a 0</translation>
-    </message>
-    <message>
-        <source>The amount exceeds your balance.</source>
-        <translation type="unfinished">La cantidad excede su saldo.</translation>
-    </message>
-    <message>
-        <source>Duplicate address found: addresses should only be used once each.</source>
-        <translation type="unfinished">Duplicado de la dirección encontrada: las direcciones sólo deben ser utilizadas una vez cada una.</translation>
-    </message>
-    <message>
-        <source>Transaction creation failed!</source>
-        <translation type="unfinished">¡La creación de la transación falló!</translation>
-    </message>
-    <message>
-        <source>Payment request expired.</source>
-        <translation type="unfinished">La solicitud de pago expiró.</translation>
-    </message>
-    <message numerus="yes">
-        <source>Estimated to begin confirmation within %n block(s).</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message>
-        <source>Warning: Invalid Bitcoin address</source>
-        <translation type="unfinished">Advertencia: Dirección de Bitcoin invalida</translation>
-    </message>
-    <message>
-        <source>Warning: Unknown change address</source>
-        <translation type="unfinished">Advertencia: Cambio de dirección desconocido</translation>
-    </message>
-    <message>
-        <source>Confirm custom change address</source>
-        <translation type="unfinished">Confirmar la dirección de cambio personalizada</translation>
-    </message>
-    <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(sin etiqueta)</translation>
-    </message>
-</context>
-<context>
-    <name>SendCoinsEntry</name>
-    <message>
-        <source>A&amp;mount:</source>
-        <translation type="unfinished">M&amp;onto</translation>
-    </message>
-    <message>
-        <source>Pay &amp;To:</source>
-        <translation type="unfinished">Pagar &amp;a:</translation>
-    </message>
-    <message>
-        <source>&amp;Label:</source>
-        <translation type="unfinished">&amp;Etiqueta</translation>
-    </message>
-    <message>
-        <source>Choose previously used address</source>
-        <translation type="unfinished">Elegir la dirección utilizada anteriormente</translation>
-    </message>
-    <message>
-        <source>The Bitcoin address to send the payment to</source>
-        <translation type="unfinished">La dirección de Bitcoin para enviar el pago a</translation>
-    </message>
-    <message>
-        <source>Paste address from clipboard</source>
-        <translation type="unfinished">Pegar dirección  del portapapeles</translation>
-    </message>
-    <message>
-        <source>Remove this entry</source>
-        <translation type="unfinished">Quitar esta entrada</translation>
-    </message>
-    <message>
-        <source>Use available balance</source>
-        <translation type="unfinished">Usar el saldo disponible</translation>
-    </message>
-    <message>
-        <source>Message:</source>
-        <translation type="unfinished">Mensaje:</translation>
-    </message>
-    <message>
-        <source>This is an unauthenticated payment request.</source>
-        <translation type="unfinished">Esta es una solicitud de pago no autentificada.</translation>
-    </message>
-    <message>
-        <source>This is an authenticated payment request.</source>
-        <translation type="unfinished">Esta es una solicitud de pago autentificada.</translation>
-    </message>
-    <message>
-        <source>Enter a label for this address to add it to the list of used addresses</source>
-        <translation type="unfinished">Introducir una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas</translation>
-    </message>
-    <message>
-        <source>Pay To:</source>
-        <translation type="unfinished">Pago para:</translation>
-    </message>
-    </context>
-<context>
-    <name>SendConfirmationDialog</name>
-    <message>
-        <source>Send</source>
-        <translation type="unfinished">Enviar</translation>
-    </message>
-    </context>
-<context>
-    <name>SignVerifyMessageDialog</name>
-    <message>
-        <source>Choose previously used address</source>
-        <translation type="unfinished">Elegir la dirección utilizada anteriormente</translation>
-    </message>
-    <message>
-        <source>Paste address from clipboard</source>
-        <translation type="unfinished">Pegar dirección  del portapapeles</translation>
-    </message>
-    <message>
-        <source>Signature</source>
-        <translation type="unfinished">Firma</translation>
-    </message>
-    <message>
-        <source>Message verified.</source>
-        <translation type="unfinished">Mensaje verificado.</translation>
-    </message>
-</context>
-<context>
-    <name>TransactionDesc</name>
-    <message>
-        <source>%1/unconfirmed</source>
-        <translation type="unfinished">%1/No confirmado</translation>
-    </message>
-    <message>
-        <source>%1 confirmations</source>
-        <translation type="unfinished">%1 confirmaciones</translation>
-    </message>
-    <message>
-        <source>Status</source>
-        <translation type="unfinished">Estado</translation>
-    </message>
-    <message>
-        <source>Date</source>
-        <translation type="unfinished">Fecha</translation>
-    </message>
-    <message>
-        <source>From</source>
-        <translation type="unfinished">De</translation>
-    </message>
-    <message>
-        <source>unknown</source>
-        <translation type="unfinished">desconocido</translation>
-    </message>
-    <message>
-        <source>To</source>
-        <translation type="unfinished">Para</translation>
-    </message>
-    <message>
-        <source>label</source>
-        <translation type="unfinished">etiqueta</translation>
-    </message>
-    <message numerus="yes">
-        <source>matures in %n more block(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
-    </message>
-    <message>
-        <source>Transaction fee</source>
-        <translation type="unfinished">Cuota de transacción</translation>
-    </message>
-    <message>
-        <source>Message</source>
-        <translation type="unfinished">Mensaje</translation>
-    </message>
-    <message>
-        <source>Comment</source>
-        <translation type="unfinished">Comentario</translation>
-    </message>
-    <message>
-        <source>Transaction ID</source>
-        <translation type="unfinished">ID</translation>
-    </message>
-    <message>
-        <source>Transaction</source>
-        <translation type="unfinished">Transacción</translation>
-    </message>
-    <message>
-        <source>Amount</source>
-        <translation type="unfinished">Monto</translation>
-    </message>
-    </context>
-<context>
-    <name>TransactionDescDialog</name>
-    <message>
-        <source>This pane shows a detailed description of the transaction</source>
-        <translation type="unfinished">Este panel muestras una descripción detallada de la transacción</translation>
-    </message>
-    </context>
-<context>
-    <name>TransactionTableModel</name>
-    <message>
-        <source>Date</source>
-        <translation type="unfinished">Fecha</translation>
-    </message>
-    <message>
-        <source>Type</source>
-        <translation type="unfinished">Tipo</translation>
-    </message>
-    <message>
-        <source>Label</source>
-        <translation type="unfinished">Etiqueta</translation>
-    </message>
-    <message>
-        <source>Confirmed (%1 confirmations)</source>
-        <translation type="unfinished">Confimado (%1 confirmaciones)</translation>
-    </message>
-    <message>
-        <source>Generated but not accepted</source>
-        <translation type="unfinished">Generado pero no aprovado</translation>
-    </message>
-    <message>
-        <source>Received with</source>
-        <translation type="unfinished">Recibido con</translation>
-    </message>
-    <message>
-        <source>Sent to</source>
-        <translation type="unfinished">Enviar a</translation>
-    </message>
-    <message>
-        <source>Payment to yourself</source>
-        <translation type="unfinished">Pagar a si mismo</translation>
-    </message>
-    <message>
-        <source>Mined</source>
-        <translation type="unfinished">Minado </translation>
-    </message>
-    <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(sin etiqueta)</translation>
-    </message>
-    <message>
-        <source>Date and time that the transaction was received.</source>
-        <translation type="unfinished">Fecha y hora en que la transacción fue recibida </translation>
-    </message>
-    <message>
-        <source>Type of transaction.</source>
-        <translation type="unfinished">Escriba una transacción</translation>
-    </message>
-    <message>
-        <source>Amount removed from or added to balance.</source>
-        <translation type="unfinished">Cantidad removida del saldo o agregada </translation>
-    </message>
-</context>
-<context>
-    <name>TransactionView</name>
-    <message>
-        <source>All</source>
-        <translation type="unfinished">Todo</translation>
-    </message>
-    <message>
-        <source>Today</source>
-        <translation type="unfinished">Hoy</translation>
-    </message>
-    <message>
-        <source>This week</source>
-        <translation type="unfinished">Esta semana </translation>
-    </message>
-    <message>
-        <source>This month</source>
-        <translation type="unfinished">Este mes </translation>
-    </message>
-    <message>
-        <source>Last month</source>
-        <translation type="unfinished">El mes pasado </translation>
-    </message>
-    <message>
-        <source>This year</source>
-        <translation type="unfinished">Este año</translation>
-    </message>
-    <message>
-        <source>Received with</source>
-        <translation type="unfinished">Recibido con</translation>
-    </message>
-    <message>
-        <source>Sent to</source>
-        <translation type="unfinished">Enviar a</translation>
-    </message>
-    <message>
-        <source>To yourself</source>
-        <translation type="unfinished">Para ti mismo</translation>
-    </message>
-    <message>
-        <source>Mined</source>
-        <translation type="unfinished">Minado </translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation type="unfinished">Otro</translation>
-    </message>
-    <message>
-        <source>Min amount</source>
-        <translation type="unfinished">Monto minimo </translation>
-    </message>
-    <message>
-        <source>Range…</source>
-        <translation type="unfinished">Rango...</translation>
-    </message>
-    <message>
-        <source>&amp;Copy address</source>
-        <translation type="unfinished">&amp;Copiar dirección</translation>
-    </message>
-    <message>
-        <source>Copy &amp;label</source>
-        <translation type="unfinished">Copiar &amp;label</translation>
-    </message>
-    <message>
-        <source>Copy &amp;amount</source>
-        <translation type="unfinished">Copiar &amp;amount</translation>
-    </message>
-    <message>
-        <source>Copy transaction &amp;ID</source>
-        <translation type="unfinished">Copiar &amp;ID de la transacción</translation>
-    </message>
-    <message>
-        <source>Copy &amp;raw transaction</source>
-        <translation type="unfinished">Copiar transacción bruta</translation>
-    </message>
-    <message>
-        <source>Copy full transaction &amp;details</source>
-        <translation type="unfinished">Copiar la transacción entera &amp;detalles</translation>
-    </message>
-    <message>
-        <source>&amp;Show transaction details</source>
-        <translation type="unfinished">Mostrar detalles de la transacción</translation>
-    </message>
-    <message>
-        <source>Increase transaction &amp;fee</source>
-        <translation type="unfinished">Incrementar cuota de transacción</translation>
-    </message>
-    <message>
-        <source>A&amp;bandon transaction</source>
-        <translation type="unfinished">Abandonar transacción</translation>
-    </message>
-    <message>
-        <source>&amp;Edit address label</source>
-        <translation type="unfinished">Editar etiqueta de dirección</translation>
-    </message>
-    <message>
-        <source>Export Transaction History</source>
-        <translation type="unfinished">Exportar el historial de transacción</translation>
-    </message>
-    <message>
-        <source>Comma separated file</source>
-        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
-        <translation type="unfinished">Archivo separado por comas</translation>
-    </message>
-    <message>
-        <source>Confirmed</source>
-        <translation type="unfinished">Confirmado </translation>
-    </message>
-    <message>
-        <source>Date</source>
-        <translation type="unfinished">Fecha</translation>
-    </message>
-    <message>
-        <source>Type</source>
-        <translation type="unfinished">Tipo</translation>
-    </message>
-    <message>
-        <source>Label</source>
-        <translation type="unfinished">Etiqueta</translation>
-    </message>
-    <message>
-        <source>Address</source>
-        <translation type="unfinished">Dirección</translation>
-    </message>
-    <message>
-        <source>Exporting Failed</source>
-        <translation type="unfinished">Exportación Fallida</translation>
-    </message>
-    <message>
-        <source>There was an error trying to save the transaction history to %1.</source>
-        <translation type="unfinished">Ocurrio un error intentando guardar el historial de transaciones a %1</translation>
-    </message>
-    <message>
-        <source>Exporting Successful</source>
-        <translation type="unfinished">Exportacion satisfactoria</translation>
-    </message>
-    <message>
-        <source>The transaction history was successfully saved to %1.</source>
-        <translation type="unfinished">el historial de transaciones ha sido guardado exitosamente en %1</translation>
-    </message>
-    <message>
-        <source>to</source>
-        <translation type="unfinished">Para</translation>
-    </message>
-</context>
-<context>
-    <name>WalletFrame</name>
-    <message>
-        <source>Create a new wallet</source>
-        <translation type="unfinished">Crear una nueva cartera</translation>
-    </message>
-    </context>
-<context>
-    <name>WalletModel</name>
-    <message>
-        <source>Send Coins</source>
-        <translation type="unfinished">Enviar monedas</translation>
-    </message>
-    <message>
-        <source>Warning: This may pay the additional fee by reducing change outputs or adding inputs, when necessary. It may add a new change output if one does not already exist. These changes may potentially leak privacy.</source>
-        <translation type="unfinished">Advertencia:  Puede pagar la tasa adicional reduciendo las salidas de cambio o añadiendo entradas, cuando sea necesario. Puede añadir una nueva salida de cambio si no existe ya una. Estos cambios pueden filtrar potencialmente la privacidad.</translation>
-    </message>
-    <message>
-        <source>Can't display address</source>
-        <translation type="unfinished">No se puede mostrar la dirección</translation>
-    </message>
-    <message>
-        <source>default wallet</source>
-        <translation type="unfinished">cartera predeterminada</translation>
-    </message>
-</context>
-<context>
-    <name>WalletView</name>
-    <message>
-        <source>&amp;Export</source>
-        <translation type="unfinished">&amp;Exportar</translation>
-    </message>
-    <message>
-        <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">Exportar la información en la pestaña actual a un archivo</translation>
-    </message>
-    <message>
-        <source>Wallet Data</source>
-        <extracomment>Name of the wallet data file format.</extracomment>
-        <translation type="unfinished">Datos de la billetera </translation>
-    </message>
-    <message>
-        <source>There was an error trying to save the wallet data to %1.</source>
-        <translation type="unfinished">Ocurrio un error tratando de guardar la información de la cartera %1</translation>
-    </message>
-    <message>
-        <source>The wallet data was successfully saved to %1.</source>
-        <translation type="unfinished">La información de la cartera fué guardada exitosamente a %1</translation>
-    </message>
-    </context>
-</TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_eu.ts b/src/qt/locale/bitcoin_eu.ts
index b9bd7cd38a0..c16f90c1d50 100644
--- a/src/qt/locale/bitcoin_eu.ts
+++ b/src/qt/locale/bitcoin_eu.ts
@@ -391,6 +391,10 @@
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">Egiaztatu mesua Bitcoin helbide espezifikoarekin erregistratu direla ziurtatzeko</translation>
     </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">Diru-zorro guztiak itxi...</translation>
+    </message>
     <message>
         <source>&amp;File</source>
         <translation type="unfinished">&amp;Artxiboa</translation>
diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts
index cedecd674eb..69728b11921 100644
--- a/src/qt/locale/bitcoin_fr.ts
+++ b/src/qt/locale/bitcoin_fr.ts
@@ -456,7 +456,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
-        <translation type="unfinished">Impossible de mettre à niveau un porte-monnaie divisé non-HD de la version %i vers la version %i sans mettre à niveau pour prendre en charge la réserve de clés antérieure à la division. Veuillez utiliser la version %i ou ne pas indiquer de version.</translation>
+        <translation type="unfinished">Impossible de mettre à niveau un porte-monnaie divisé non-HD de la version %i vers la version %i sans mise à niveau pour prendre en charge la réserve de clés antérieure à la division. Veuillez utiliser la version %i ou ne pas indiquer de version.</translation>
     </message>
     <message>
         <source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
@@ -468,12 +468,16 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
-        <translation type="unfinished">Erreur de lecture de %s : soit les données de la transaction manquent soit elles sont incorrectes. Réanalysez le porte-monnaie.</translation>
+        <translation type="unfinished">Erreur de lecture de %s : soit les données de la transaction manquent soit elles sont incorrectes. Réanalyse du porte-monnaie.</translation>
     </message>
     <message>
         <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
         <translation type="unfinished">Erreur : L’enregistrement du format du fichier de vidage est incorrect. Est « %s », mais « format » est attendu. </translation>
     </message>
+    <message>
+        <source>Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s".</source>
+        <translation type="unfinished">Erreur : L’enregistrement de l’identificateur du fichier de vidage est incorrect. Est « %s », mais « %s » est attendu. </translation>
+    </message>
     <message>
         <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
         <translation type="unfinished">Erreur : La version du fichier de vidage n’est pas prise en charge. Cette version de bitcoin-wallet ne prend en charge que les fichiers de vidage version 1. Le fichier de vidage obtenu est de la version %s.</translation>
@@ -532,7 +536,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source>
-        <translation type="unfinished">Élagage : la dernière synchronisation de porte-monnaie va par-delà les données élaguées.  Vous devez -reindex (réindexer, télécharger de nouveau toute la chaîne de blocs en cas de nœud élagué)</translation>
+        <translation type="unfinished">Élagage : la dernière synchronisation de porte-monnaie va par-delà les données élaguées. Vous devez -reindex (réindexer, télécharger de nouveau toute la chaîne de blocs en cas de nœud élagué)</translation>
     </message>
     <message>
         <source>SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported</source>
@@ -544,19 +548,19 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
-        <translation type="unfinished">La base de données d’indexation des blocs comprend un « txindex » hérité. Pour libérer l’espace disque occupé, exécuter un -reindex complet ou ignorez cette erreur. Ce message d’erreur ne sera pas affiché de nouveau.</translation>
+        <translation type="unfinished">La base de données d’indexation des blocs comprend un « txindex » hérité. Pour libérer l’espace disque occupé, exécutez un -reindex complet ou ignorez cette erreur. Ce message d’erreur ne sera pas affiché de nouveau.</translation>
     </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
-        <translation type="unfinished">Le montant transactionnel est trop bas pour être envoyé une fois que les frais ont été déduits</translation>
+        <translation type="unfinished">Le montant de la transaction est trop bas pour être envoyé une fois que les frais ont été déduits</translation>
     </message>
     <message>
         <source>This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet</source>
-        <translation type="unfinished">Cette erreur pourrait survenir si ce porte-monnaie n’avait pas été fermé proprement et s’il avait été chargé en dernier avec une nouvelle version de Berkeley DB. Si c’est le cas, veuillez utiliser le logiciel qui a chargé ce porte-monnaie en dernier.</translation>
+        <translation type="unfinished">Cette erreur pourrait survenir si ce porte-monnaie n’a pas été fermé proprement et s’il a été chargé en dernier avec une nouvelle version de Berkeley DB. Si c’est le cas, veuillez utiliser le logiciel qui a chargé ce porte-monnaie en dernier.</translation>
     </message>
     <message>
         <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
-        <translation type="unfinished">Ceci est une préversion de test - son utilisation est entièrement à vos risques - ne pas l’utiliser pour miner ou pour des applications marchandes</translation>
+        <translation type="unfinished">Ceci est une préversion de test — son utilisation est entièrement à vos risques — ne l’utilisez pour miner ou pour des applications marchandes</translation>
     </message>
     <message>
         <source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
@@ -578,13 +582,17 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
         <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
         <translation type="unfinished">Impossible de relire les blocs. Vous devrez reconstruire la base de données avec -reindex-chainstate.</translation>
     </message>
+    <message>
+        <source>Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite".</source>
+        <translation type="unfinished">Le format de fichier porte-monnaie « %s » indiqué est inconnu. Veuillez soit indiquer « bdb » soit « sqlite ».</translation>
+    </message>
     <message>
         <source>Warning: Dumpfile wallet format "%s" does not match command line specified format "%s".</source>
         <translation type="unfinished">Avertissement : Le format du fichier de vidage de porte-monnaie « %s » ne correspond pas au format « %s » indiqué dans la ligne de commande.</translation>
     </message>
     <message>
         <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source>
-        <translation type="unfinished">Avertissement : Des clés privées ont été détectées dans le porte-monnaie {%s}, dont les clés privées sont désactivées</translation>
+        <translation type="unfinished">Avertissement : Des clés privées ont été détectées dans le porte-monnaie {%s} avec des clés privées désactivées</translation>
     </message>
     <message>
         <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source>
@@ -644,7 +652,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Copyright (C) %i-%i</source>
-        <translation type="unfinished">Tous droits réservés (C) %i-%i</translation>
+        <translation type="unfinished">Tous droits réservés (C) %i à %i</translation>
     </message>
     <message>
         <source>Corrupted block database detected</source>
@@ -790,6 +798,10 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
         <source>Incorrect or no genesis block found. Wrong datadir for network?</source>
         <translation type="unfinished">Bloc de genèse incorrect ou introuvable. Mauvais datadir pour le réseau ?</translation>
     </message>
+    <message>
+        <source>Initialization sanity check failed. %s is shutting down.</source>
+        <translation type="unfinished">L’initialisation du test de cohérence a échoué. %s est en cours de fermeture.</translation>
+    </message>
     <message>
         <source>Input not found or already spent</source>
         <translation type="unfinished">L’entrée est introuvable ou a déjà été dépensée</translation>
@@ -800,7 +812,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Invalid -i2psam address or hostname: '%s'</source>
-        <translation type="unfinished">L’adresse ou le nom d’hôte -i2psam est invalide :« %s »</translation>
+        <translation type="unfinished">L’adresse ou le nom d’hôte -i2psam est invalide : « %s »</translation>
     </message>
     <message>
         <source>Invalid -onion address or hostname: '%s'</source>
@@ -1004,7 +1016,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Unable to bind to %s on this computer (bind returned error %s)</source>
-        <translation type="unfinished">Impossible de se lier à %s sur cet ordinateur (bind a retourné l’erreur %s)</translation>
+        <translation type="unfinished">Impossible de se lier à %s sur cet ordinateur (la liaison a retourné l’erreur %s)</translation>
     </message>
     <message>
         <source>Unable to bind to %s on this computer. %s is probably already running.</source>
@@ -1076,7 +1088,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Wallet needed to be rewritten: restart %s to complete</source>
-        <translation type="unfinished">Le porte-monnaie devait être réécrit : redémarrer %s pour terminer l’opération.</translation>
+        <translation type="unfinished">Le porte-monnaie devait être réécrit : redémarrez %s pour terminer l’opération.</translation>
     </message>
 </context>
 <context>
@@ -1172,7 +1184,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>&amp;Backup Wallet…</source>
-        <translation type="unfinished">&amp;auvegarder le porte-monnaie…</translation>
+        <translation type="unfinished">&amp;Sauvegarder le porte-monnaie…</translation>
     </message>
     <message>
         <source>&amp;Change Passphrase…</source>
@@ -1184,7 +1196,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
-        <translation type="unfinished">Signer les messages avec vos adresses Bitcoin pour prouver que vous les détenez</translation>
+        <translation type="unfinished">Signer les messages avec vos adresses Bitcoin pour prouver que vous les détenez</translation>
     </message>
     <message>
         <source>&amp;Verify message…</source>
@@ -1204,15 +1216,15 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Close Wallet…</source>
-        <translation type="unfinished">Fermer le portefeuille...</translation>
+        <translation type="unfinished">Fermer le porte-monnaie...</translation>
     </message>
     <message>
         <source>Create Wallet…</source>
-        <translation type="unfinished">Créer le portefeuille...</translation>
+        <translation type="unfinished">Créer un porte-monnaie...</translation>
     </message>
     <message>
         <source>Close All Wallets…</source>
-        <translation type="unfinished">Fermer tous les portefeuilles...</translation>
+        <translation type="unfinished">Fermer tous les porte-monnaie...</translation>
     </message>
     <message>
         <source>&amp;File</source>
@@ -1232,7 +1244,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Syncing Headers (%1%)…</source>
-        <translation type="unfinished">Synchronisation des en-têtes (%1)…</translation>
+        <translation type="unfinished">Synchronisation des en-têtes (%1%)…</translation>
     </message>
     <message>
         <source>Synchronizing with network…</source>
@@ -1283,7 +1295,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Catching up…</source>
-        <translation type="unfinished">Rattrapage en cours…</translation>
+        <translation type="unfinished">Rattrapage…</translation>
     </message>
     <message>
         <source>Last received block was generated %1 ago.</source>
@@ -1327,7 +1339,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Open node debugging and diagnostic console</source>
-        <translation type="unfinished">Ouvrir une console de débogage de nœuds et de diagnostic</translation>
+        <translation type="unfinished">Ouvrir une console de débogage des nœuds et de diagnostic</translation>
     </message>
     <message>
         <source>&amp;Sending addresses</source>
@@ -1343,7 +1355,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Open Wallet</source>
-        <translation type="unfinished">Ouvrir le porte-monnaie</translation>
+        <translation type="unfinished">Ouvrir un porte-monnaie</translation>
     </message>
     <message>
         <source>Open a wallet</source>
@@ -1359,7 +1371,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
-        <translation type="unfinished">Afficher le message d’aide de %1 pour obtenir la liste des options possibles de ligne de commande Bitcoin</translation>
+        <translation type="unfinished">Afficher le message d’aide de %1 pour obtenir la liste des options possibles en ligne de commande Bitcoin</translation>
     </message>
     <message>
         <source>&amp;Mask values</source>
@@ -2932,7 +2944,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>Wants Tx Relay</source>
-        <translation type="unfinished">Veut Tx relai</translation>
+        <translation type="unfinished">Veut Relais Tx {Souhaite relayer la transaction}</translation>
     </message>
     <message>
         <source>High bandwidth BIP152 compact block relay: %1</source>
diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/bitcoin_hi.ts
new file mode 100644
index 00000000000..fe3fa9aa0b2
--- /dev/null
+++ b/src/qt/locale/bitcoin_hi.ts
@@ -0,0 +1,178 @@
+<TS version="2.1" language="hi">
+<context>
+    <name>AddressBookPage</name>
+    <message>
+        <source>Right-click to edit address or label</source>
+        <translation type="unfinished">पता या लेबल संपादित करने के लिए राइट-क्लिक करें
+ </translation>
+    </message>
+    <message>
+        <source>Create a new address</source>
+        <translation type="unfinished">नया पता बनाएं</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation type="unfinished">और नया</translation>
+    </message>
+    <message>
+        <source>Copy the currently selected address to the system clipboard</source>
+        <translation type="unfinished">अभी चुने गए पते को सिस्टम क्लिपबोर्ड पर कॉपी करें</translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">और संचय </translation>
+    </message>
+    <message>
+        <source>Delete the currently selected address from the list</source>
+        <translation type="unfinished">अभी चुने गए पते को सूची से हटाएं</translation>
+    </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">खोजने के लिए पता या लेबल दर्ज करें</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">वर्तमान टैब में डेटा को फ़ाइल में निर्यात करें</translation>
+    </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">को सिक्के भेजने के लिए पता चुनें</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">के साथ सिक्के प्राप्त करने के लिए पता चुनें</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">भुगतान भेजने के लिए ये आपके बिटकॉइन पते हैं। सिक्के भेजने से पहले हमेशा राशि और प्राप्त करने वाले पते की जांच करें।</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">भुगतान प्राप्त करने के लिए ये आपके बिटकॉइन पते हैं। नए पते बनाने के लिए प्राप्त टैब में 'नया प्राप्तकर्ता पता बनाएं' बटन का उपयोग करें। हस्ताक्षर केवल 'विरासत' प्रकार के पते के साथ ही संभव है।</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Label</source>
+        <translation type="unfinished"> 
+कॉपी और लेबल</translation>
+    </message>
+    </context>
+<context>
+    <name>AskPassphraseDialog</name>
+    <message>
+        <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+        <translation type="unfinished">महत्वपूर्ण: आपके द्वारा अपनी वॉलेट फ़ाइल के किसी भी पिछले बैकअप को नई जेनरेट की गई, एन्क्रिप्टेड वॉलेट फ़ाइल से बदल दिया जाना चाहिए। सुरक्षा कारणों से, जैसे ही आप नए, एन्क्रिप्टेड वॉलेट का उपयोग करना शुरू करते हैं, अनएन्क्रिप्टेड वॉलेट फ़ाइल का पिछला बैकअप बेकार हो जाएगा।</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+        <translation type="unfinished"> 
+आंतरिक त्रुटि के कारण वॉलेट एन्क्रिप्शन विफल रहा। आपका वॉलेट एन्क्रिप्ट नहीं किया गया था।</translation>
+    </message>
+    </context>
+<context>
+    <name>QObject</name>
+    <message numerus="yes">
+        <source>%n second(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n minute(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n hour(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n day(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n week(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n year(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>BitcoinGUI</name>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">बटुआ बंद करें...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">वॉलेट बनाएं...</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">सारे बटुएँ बंद करें...</translation>
+    </message>
+    <message numerus="yes">
+        <source>Processed %n block(s) of transaction history.</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>Intro</name>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionDesc</name>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+</TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts
index 0d099f227ac..89be4f3a3a9 100644
--- a/src/qt/locale/bitcoin_hu.ts
+++ b/src/qt/locale/bitcoin_hu.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">A cím vagy címke szerkeszteséhez kattintson a jobb gombbal</translation>
+        <translation type="unfinished">A cím vagy címke szerkesztéséhez kattintson a jobb gombbal</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -47,11 +47,11 @@
     </message>
     <message>
         <source>Choose the address to send coins to</source>
-        <translation type="unfinished">Kedvezményezett címének kiválasztása</translation>
+        <translation type="unfinished">Válassza ki a küldési címet kimenő utalásokhoz</translation>
     </message>
     <message>
         <source>Choose the address to receive coins with</source>
-        <translation type="unfinished">Jóváírási cím kiválasztása</translation>
+        <translation type="unfinished">Válassza ki a fogadó címet beérkező utalásokhoz</translation>
     </message>
     <message>
         <source>C&amp;hoose</source>
@@ -76,11 +76,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>&amp;Copy Address</source>
-        <translation type="unfinished">&amp;Cím másolása</translation>
+        <translation type="unfinished">Cím &amp;másolása</translation>
     </message>
     <message>
         <source>Copy &amp;Label</source>
-        <translation type="unfinished">Másolás és Címkézés</translation>
+        <translation type="unfinished">Másolás és &amp;címkézés</translation>
     </message>
     <message>
         <source>&amp;Edit</source>
@@ -98,7 +98,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
-        <translation type="unfinished">Hiba történt a címlista %1 mentésekor.  Kérem próbálja újra.</translation>
+        <translation type="unfinished">Hiba történt a címlista %1 mentésekor. Kérem próbálja újra.</translation>
     </message>
     <message>
         <source>Exporting Failed</source>
@@ -176,7 +176,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
-        <translation type="unfinished">Írja be a tárca új jelszavát. &lt;br/&gt;A jelszó összetétele a következő: &lt;b&gt;tíz vagy annál több véletlenszerű karakter&lt;/b&gt;, vagy &lt;b&gt;nyolc vagy annál több szó&lt;/b&gt;. </translation>
+        <translation type="unfinished">Írja be a tárca új jelszavát. &lt;br/&gt;Használjon &lt;b&gt;legalább tíz véletlenszerű karakterből&lt;/b&gt;, vagy &lt;b&gt;legalább nyolc szóból&lt;/b&gt; álló jelszót.</translation>
     </message>
     <message>
         <source>Enter the old passphrase and new passphrase for the wallet.</source>
@@ -733,7 +733,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Error: Keypool ran out, please call keypoolrefill first</source>
-        <translation type="unfinished">A címraktár kiürült, kérjük előbb adja ki a keypoolrefill parancsot.</translation>
+        <translation type="unfinished">A címraktár kiürült, előbb adja ki a keypoolrefill parancsot.</translation>
     </message>
     <message>
         <source>Error: Missing checksum</source>
@@ -769,7 +769,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Ignoring duplicate -wallet %s.</source>
-        <translation type="unfinished">A duplikált -wallet %s figyelmen kívül hagyva.</translation>
+        <translation type="unfinished">Az ismétlődő -wallet %s figyelmen kívül hagyva.</translation>
     </message>
     <message>
         <source>Importing…</source>
@@ -1116,7 +1116,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Modify configuration options for %1</source>
-        <translation type="unfinished">%1 beállítások módosítása</translation>
+        <translation type="unfinished">%1 beállításainak módosítása</translation>
     </message>
     <message>
         <source>Create a new wallet</source>
@@ -1161,7 +1161,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>&amp;Options…</source>
-        <translation type="unfinished">&amp;Opciók…</translation>
+        <translation type="unfinished">&amp;Beállítások…</translation>
     </message>
     <message>
         <source>&amp;Encrypt Wallet…</source>
@@ -1185,7 +1185,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
-        <translation type="unfinished">Üzenetek aláírása a Bitcoin-címeivel, amivel bizonyíthatja hogy a cím az Öné</translation>
+        <translation type="unfinished">Üzenetek aláírása a Bitcoin-címeivel, amivel bizonyíthatja, hogy az Öné</translation>
     </message>
     <message>
         <source>&amp;Verify message…</source>
@@ -1486,15 +1486,15 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">HD kulcs generálás &lt;b&gt;tiltva&lt;/b&gt;</translation>
+        <translation type="unfinished">HD kulcs generálás &lt;b&gt;letiltva&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">Privát kulcs &lt;b&gt;inaktív&lt;/b&gt;</translation>
+        <translation type="unfinished">Privát kulcs &lt;b&gt;letiltva&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
-        <translation type="unfinished">A tárca &lt;b&gt;titkosítva&lt;/b&gt; és jelenleg &lt;b&gt;nyitva&lt;/b&gt;.</translation>
+        <translation type="unfinished">A tárca &lt;b&gt;titkosítva&lt;/b&gt; és jelenleg &lt;b&gt;feloldva&lt;/b&gt;.</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
@@ -1509,7 +1509,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <name>UnitDisplayStatusBarControl</name>
     <message>
         <source>Unit to show amounts in. Click to select another unit.</source>
-        <translation type="unfinished">Egység, amelyben az összegek meg lesznek jelenítve. Kattintson ide, ha másik egységet szeretne kiválasztani.</translation>
+        <translation type="unfinished">Egység, amelyben az összegek lesznek megjelenítve. Kattintson ide másik egység kiválasztásához.</translation>
     </message>
 </context>
 <context>
@@ -1789,7 +1789,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
-        <translation type="unfinished">Üres tárca készítése. Az üres tárcák kezdetben nem tartalmaznak privát kulcsokat vagy szkripteket. Később lehetséges a privát kulcsok vagy címek importálása avagy egy HD mag beállítása.</translation>
+        <translation type="unfinished">Üres tárca készítése. Az üres tárcák kezdetben nem tartalmaznak privát kulcsokat vagy szkripteket. Később lehetséges a privát kulcsok vagy címek importálása illetve egy HD mag beállítása.</translation>
     </message>
     <message>
         <source>Make Blank Wallet</source>
@@ -1873,7 +1873,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Could not unlock wallet.</source>
-        <translation type="unfinished">Nem sikerült a tárca felnyitása</translation>
+        <translation type="unfinished">Nem sikerült a tárca feloldása</translation>
     </message>
     <message>
         <source>New key generation failed.</source>
@@ -1888,7 +1888,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>name</source>
-        <translation type="unfinished">Név</translation>
+        <translation type="unfinished">név</translation>
     </message>
     <message>
         <source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
@@ -1938,7 +1938,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>The wallet will also be stored in this directory.</source>
-        <translation type="unfinished">A tárcát is ebben a könyvtárban tároljuk.</translation>
+        <translation type="unfinished">A tárca is ebben a könyvtárban tárolódik.</translation>
     </message>
     <message>
         <source>Error: Specified data directory "%1" cannot be created.</source>
@@ -2940,7 +2940,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
-        <translation type="unfinished">A hálózati protokoll amin keresztül ez a csomópont kapcsolódik: IPv4, IPv6, Onion, I2P vagy CJDNS.</translation>
+        <translation type="unfinished">A hálózati protokoll amin keresztül ez a partner kapcsolódik: IPv4, IPv6, Onion, I2P vagy CJDNS.</translation>
     </message>
     <message>
         <source>Services</source>
@@ -2968,7 +2968,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
-        <translation type="unfinished">A csomóponttól érkező új blokkokra vonatkozó érvényességet igazoló ellenőrzések óta eltelt idő.</translation>
+        <translation type="unfinished">A partnertől érkező új blokkokra vonatkozó érvényességet igazoló ellenőrzések óta eltelt idő.</translation>
     </message>
     <message>
         <source>Last Block</source>
@@ -2977,7 +2977,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     <message>
         <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
         <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
-        <translation type="unfinished">Az eltelt idő, amióta egy új, a mempoolunkba elfogadott tranzakció érkezett ettől a társtulajdonostól.</translation>
+        <translation type="unfinished">Az eltelt idő, amióta egy új, a saját memóriahalomba elfogadott tranzakció érkezett ettől a partnertől.</translation>
     </message>
     <message>
         <source>Last Send</source>
@@ -3814,7 +3814,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     </message>
     <message>
         <source>&amp;Sign Message</source>
-        <translation type="unfinished">Üzenet aláírása...</translation>
+        <translation type="unfinished">Üzenet &amp;Aláírása</translation>
     </message>
     <message>
         <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
@@ -3846,11 +3846,11 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     </message>
     <message>
         <source>Sign the message to prove you own this Bitcoin address</source>
-        <translation type="unfinished">Üzenet</translation>
+        <translation type="unfinished">Üzenet aláírása, ezzel bizonyítva, hogy Öné ez a Bitcoin cím</translation>
     </message>
     <message>
         <source>Sign &amp;Message</source>
-        <translation type="unfinished">Üzenet &amp;aláírása</translation>
+        <translation type="unfinished">Üzenet &amp;Aláírása</translation>
     </message>
     <message>
         <source>Reset all sign message fields</source>
@@ -3874,7 +3874,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     </message>
     <message>
         <source>The signed message to verify</source>
-        <translation type="unfinished">Az aláírt üzenet ellenőrzésre</translation>
+        <translation type="unfinished">Az ellenőrizni kívánt aláírt üzenet</translation>
     </message>
     <message>
         <source>The signature given when the message was signed</source>
@@ -3886,7 +3886,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     </message>
     <message>
         <source>Verify &amp;Message</source>
-        <translation type="unfinished">Üzenet ellenőrzése</translation>
+        <translation type="unfinished">Üzenet &amp;Ellenőrzése</translation>
     </message>
     <message>
         <source>Reset all verify message fields</source>
@@ -3902,7 +3902,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     </message>
     <message>
         <source>Please check the address and try again.</source>
-        <translation type="unfinished">Kérem ellenőrizze a címet és próbálja meg újra.</translation>
+        <translation type="unfinished">Ellenőrizze a címet és próbálja meg újra.</translation>
     </message>
     <message>
         <source>The entered address does not refer to a key.</source>
@@ -3934,7 +3934,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     </message>
     <message>
         <source>Please check the signature and try again.</source>
-        <translation type="unfinished">Kérem ellenőrizze az aláírást és próbálja újra.</translation>
+        <translation type="unfinished">Ellenőrizze az aláírást és próbálja újra.</translation>
     </message>
     <message>
         <source>The signature did not match the message digest.</source>
@@ -4168,7 +4168,7 @@ Megjegyzés: Mivel a díj bájtonként van kiszámítva, egy "100 satoshi kvB-nk
     </message>
     <message>
         <source>Conflicted</source>
-        <translation type="unfinished">Konfliktusos</translation>
+        <translation type="unfinished">Ellentmondásos</translation>
     </message>
     <message>
         <source>Immature (%1 confirmations, will be available after %2)</source>
diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/bitcoin_id.ts
index fe5cfebb543..5fd47a887a4 100644
--- a/src/qt/locale/bitcoin_id.ts
+++ b/src/qt/locale/bitcoin_id.ts
@@ -347,31 +347,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%ndetik</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n menit</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%njam</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n hari</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%nminggu</numerusform>
         </translation>
     </message>
     <message>
@@ -381,7 +381,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n tahun</numerusform>
         </translation>
     </message>
     </context>
@@ -423,6 +423,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Kesalahan membaca %s! Semua kunci dibaca dengan benar, tetapi data transaksi atau entri buku alamat mungkin hilang atau salah.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Kesalahan membaca %s! Data transaksi mungkin hilang atau salah. Memindai ulang dompet.</translation>
+    </message>
     <message>
         <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
         <translation type="unfinished">Kesalahan: Rekaman pengenal dumpfile salah. Mendapat "%s", diharapkan "format". </translation>
@@ -779,6 +783,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Perlu menentukan port dengan -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Tidak ada alamat tersedia</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Tidak ada server proxy yang ditentukan. Gunakan -proxy=&lt;ip&gt; atau -proxy=&lt;ip:port&gt;.</translation>
@@ -1178,7 +1186,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n blok riwayat transaksi diproses.</numerusform>
         </translation>
     </message>
     <message>
@@ -1293,11 +1301,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 klien</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">Sembunyi</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">Tampilkan</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n koneksi yang aktif ke jaringan Bitcoin</numerusform>
         </translation>
     </message>
     <message>
@@ -1769,6 +1785,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB ruang tersedia</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(dari %1 GB yang dibutuhkan)</translation>
@@ -1789,7 +1809,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>(cukup untuk memulihkan cadangan %n hari)</numerusform>
         </translation>
     </message>
     <message>
@@ -2026,10 +2046,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
         <translation type="unfinished">Set nomor thread script verifikasi. Nilai negatif sesuai dengan core yang tidak ingin digunakan di dalam system.</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Ini memungkinkan Anda atau alat pihak ketiga untuk berkomunikasi dengan node melalui perintah baris perintah dan JSON-RPC.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Aktifkan server R&amp;PC</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">D&amp;ompet</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Apakah akan menetapkan biaya pengurangan dari jumlah sebagai default atau tidak.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Kurangi biaya dari jumlah secara default</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Ahli</translation>
@@ -2046,6 +2086,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Perubahan saldo untuk transaksi yang belum dikonfirmasi</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Aktifkan kontrol &amp;PSBT</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Apakah akan menampilkan kontrol PSBT.</translation>
+    </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
         <translation type="unfinished">Penandatangan eksternal (seperti dompet perangkat keras)</translation>
@@ -2146,6 +2196,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Pilihan standar unit yang ingin ditampilkan pada layar aplikasi dan saat mengirim koin.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">URL pihak ketika (misalnya sebuah block explorer) yang mumcul dalam tab transaksi sebagai konteks menu. %s dalam URL diganti dengan kode transaksi. URL dipisahkan dengan tanda vertikal |.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;URL transaksi Pihak Ketiga</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Ingin menunjukkan cara pengaturan koin atau tidak.</translation>
@@ -2209,6 +2267,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">File konfigurasi digunakan untuk menspesifikkan pilihan khusus pengguna yang akan menimpa pengaturan GUI. Sebagai tambahan, pengaturan command-line apapun akan menimpa file konfigurasi itu.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Lanjutkan</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Batal</translation>
@@ -2335,6 +2397,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Gagal untuk menandatangani transaksi: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Tidak dapat menandatangani input saat dompet terkunci.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Tidak bisa menandatangani lagi input apapun.</translation>
@@ -2404,6 +2470,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Transaksi masih membutuhkan tanda tangan(s).</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Tapi tidak ada dompet yang dimuat.)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Tetapi dompet ini tidak dapat menandatangani transaksi.)</translation>
@@ -2648,6 +2718,33 @@ Jika Anda menerima kesalahan ini, Anda harus meminta pedagang untuk memberikan U
         <source>Mapped AS</source>
         <translation type="unfinished">AS yang Dipetakan</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Apakah kita menyampaikan alamat ke rekan ini.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Alamat Relay</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Jumlah total alamat yang diproses, tidak termasuk yang dibatalkan karena pembatasan tarif.</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Alamat Diproses</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Jumlah total alamat turun karena pembatasan tarif.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Tarif Alamat Terbatas</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Agen Pengguna
@@ -2854,6 +2951,11 @@ Jika Anda menerima kesalahan ini, Anda harus meminta pedagang untuk memberikan U
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;tahun</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Salin IP/Netmask</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Lepas ban</translation>
@@ -3337,6 +3439,16 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
         <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source>
         <translation type="unfinished">Anda dapat menambah biaya kemudian (sinyal Replace-By-Fee, BIP-125).</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Apakah Anda ingin membuat transaksi ini?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Harap untuk analisi proposal transaksi anda kembali. Anda dapat membuat dan mengirim transaksi ini atau membuat transaksi bitcoin yang ditandai tangani sebagaian (PSBT) yang bisa anda simpan atau salin dan tanda tangan dengan contoh dompet offline %1, atau dompet yang kompatibel dengan PSBT</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3393,7 +3505,7 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>Diperkirakan akan memulai konfirmasi dalam %n blok.</numerusform>
         </translation>
     </message>
     <message>
@@ -3650,6 +3762,17 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
         <translation type="unfinished">Pesan diverifikasi.</translation>
     </message>
 </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>(press q to shutdown and continue later)</source>
+        <translation type="unfinished">(tekan q untuk mematikan dan melanjutkan nanti)</translation>
+    </message>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">tekan q untuk mematikan</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -3719,7 +3842,7 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>matang dalam %n blok lagi</numerusform>
         </translation>
     </message>
     <message>
@@ -3991,6 +4114,11 @@ Catatan: Karena biaya dihitung berdasarkan per byte, tarif biaya "100 satoshi pe
         <source>&amp;Edit address label</source>
         <translation type="unfinished">&amp;Ubah label alamat</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Menunjukkan %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Ekspor Riwayat Transaksi</translation>
diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts
index e5734250003..99efe48be77 100644
--- a/src/qt/locale/bitcoin_it.ts
+++ b/src/qt/locale/bitcoin_it.ts
@@ -1348,6 +1348,10 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
         <source>Main Window</source>
         <translation type="unfinished">Finestra principale</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Nascondi</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -1849,6 +1853,10 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB di spazio libero disponibile</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(di %1 GB necessari)</translation>
diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts
index 3e3e7d43298..5258c9299fb 100644
--- a/src/qt/locale/bitcoin_ja.ts
+++ b/src/qt/locale/bitcoin_ja.ts
@@ -629,6 +629,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
         <translation type="unfinished">以前のバージョンで開始された -txindex アップグレードを完了できません。 以前のバージョンで再起動するか、 -reindex を実行してください。</translation>
     </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">%s のロード中にエラーが発生しました：外​​部署名者ウォレットがロードされています</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">%s の設定は、 [%s] セクションに書かれた場合のみ %s ネットワークへ適用されます。</translation>
diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts
index c531a992a27..e32f4fbfd02 100644
--- a/src/qt/locale/bitcoin_pt_BR.ts
+++ b/src/qt/locale/bitcoin_pt_BR.ts
@@ -665,6 +665,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Necessário informar uma porta com -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Nenhum endereço disponível</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Nenhum servidor proxy especificado. Use -proxy=&lt;ip&gt; ou proxy=&lt;ip:port&gt;.</translation>
@@ -785,6 +789,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">A transação deve ter ao menos um destinatário</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Transação necessita de um endereço de troco, mas não conseguimos gera-lo. </translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">Transação muito grande</translation>
@@ -1896,10 +1904,25 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Reverter esta configuração requer baixar de novo a blockchain inteira.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Tamanho máximo do cache do banco de dados. Um cache maior pode contribuir para uma sincronização mais rápida, após a qual o benefício é menos pronunciado para a maioria dos casos de uso. Reduzir o tamanho do cache reduzirá o uso de memória. A memória do mempool não utilizada é compartilhada para este cache.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Define o número de threads para script de verificação. Valores negativos correspondem ao número de núcleos que você quer deixar livre para o sistema.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = automático, &lt;0 = número de núcleos deixados livres)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Isso permite que você ou ferramentas de terceiros comunique-se  com o node através de linha de comando e comandos JSON-RPC.</translation>
+    </message>
     <message>
         <source>Enable R&amp;PC server</source>
         <extracomment>An Options window setting to enable the RPC server.</extracomment>
@@ -1909,6 +1932,11 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>W&amp;allet</source>
         <translation type="unfinished">C&amp;arteira</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Se deve definir subtrair a taxa do montante como padrão ou não.</translation>
+    </message>
     <message>
         <source>Subtract &amp;fee from amount by default</source>
         <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
@@ -1935,6 +1963,11 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <extracomment>An options window setting to enable PSBT controls.</extracomment>
         <translation type="unfinished">Ative controles &amp;PSBT</translation>
     </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Se os controles PSBT devem ser exibidos.</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Abrir automaticamente no roteador as portas do cliente Bitcoin. Isto só funcionará se seu roteador suportar UPnP e esta função estiver habilitada.</translation>
diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts
index dd9bfec0ddd..e709c5bc597 100644
--- a/src/qt/locale/bitcoin_ru.ts
+++ b/src/qt/locale/bitcoin_ru.ts
@@ -5,6 +5,10 @@
         <source>Right-click to edit address or label</source>
         <translation type="unfinished">Нажмите правой кнопкой мыши, чтобы изменить адрес или метку</translation>
     </message>
+    <message>
+        <source>Create a new address</source>
+        <translation type="unfinished">Создать новый адрес</translation>
+    </message>
     <message>
         <source>&amp;New</source>
         <translation type="unfinished">&amp;Новый</translation>
@@ -41,6 +45,10 @@
         <source>&amp;Delete</source>
         <translation type="unfinished">&amp;Удалить</translation>
     </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">Выберите адрес чтобы отправить монеты</translation>
+    </message>
     <message>
         <source>Choose the address to receive coins with</source>
         <translation type="unfinished">Выберите адрес для получения монет</translation>
@@ -252,6 +260,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Произошла фатальная ошибка. Проверьте, доступна ли запись в файл настроек, или повторите запуск с параметром -nosettings.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Ошибка: указанный каталог данных "%1" не существует.</translation>
@@ -354,25 +367,25 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%nсекунду</numerusform>
+            <numerusform>%nсекунд</numerusform>
+            <numerusform>%nсекунд</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%nминуту</numerusform>
+            <numerusform>%nминут</numerusform>
+            <numerusform>%nминут</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%nчас</numerusform>
+            <numerusform>%nчасов</numerusform>
+            <numerusform>%nчасов</numerusform>
         </translation>
     </message>
     <message numerus="yes">
@@ -422,6 +435,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Файл настроек не может быть прочитан</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Файл настроек не может быть записан</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">Разработчики %s</translation>
@@ -1057,6 +1078,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create a new wallet</source>
         <translation type="unfinished">Создать новый кошелёк</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Уменьшить</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Кошелёк:</translation>
@@ -1205,9 +1230,9 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Обработан %n блок истории транзакций.</numerusform>
+            <numerusform>Обработано %n блока истории транзакций.</numerusform>
+            <numerusform>Обработано %n блоков истории транзакций.</numerusform>
         </translation>
     </message>
     <message>
@@ -1246,6 +1271,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Загрузить частично подписанную биткоин-транзакцию (PSBT)</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Загрузить PSBT из &amp;буфера обмена...</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Загрузить частично подписанную биткоин-транзакцию из буфера обмена</translation>
@@ -1322,6 +1351,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 клиент</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Скрыть</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -1509,6 +1542,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy amount</source>
         <translation type="unfinished">Копировать сумму</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Копировать адрес</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копировать &amp;метку</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Копировать &amp;сумму</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Скопировать &amp;ID транзакции и индекс вывода</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">З&amp;аблокировать неизрасходованный остаток</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">&amp;Разблокировать неизрасходованный остаток</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Копировать количество</translation>
@@ -1586,7 +1643,24 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create wallet warning</source>
         <translation type="unfinished">Кошелёк создан</translation>
     </message>
-    </context>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Невозможно отобразить подписантов</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Загрузка кошельков</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Загрузка кошельков...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1685,6 +1759,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Descriptor Wallet</source>
         <translation type="unfinished">Дескрипторный кошелёк</translation>
     </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Используйте внешнее устройство для подписи, например аппаратный кошелек. Сначала настройте сценарий внешней подписи в настройках кошелька.</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Внешняя подписывающая сторона</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">Создать</translation>
@@ -1693,7 +1775,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Compiled without sqlite support (required for descriptor wallets)</source>
         <translation type="unfinished">Скомпилирован без поддержки sqlite (необходимо для дескрипторных кошельков)</translation>
     </message>
-    </context>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Скомпилировано без поддержки внешней подписи (требуется для внешней подписи)</translation>
+    </message>
+</context>
 <context>
     <name>EditAddressDialog</name>
     <message>
@@ -1778,6 +1865,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Bitcoin</source>
         <translation type="unfinished">биткоин</translation>
     </message>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">Доступно %1 Гб пространства</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(из необходимых %1 ГБ)</translation>
@@ -2035,6 +2126,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Возврат этой настройки в прежнее значение потребует повторного скачивания всей цепочки блоков.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Максимальный размер кэша базы данных. Больший размер кэша может способствовать более быстрой синхронизации, после чего это преимущество становится менее выраженным для большинства случаев использования. Уменьшение размера кэша уменьшит использование памяти. Неиспользуемая память mempool используется совместно для этого кэша.</translation>
+    </message>
     <message>
         <source>MiB</source>
         <translation type="unfinished">МиБ</translation>
@@ -2073,6 +2169,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Тратить неподтверждённую сдачу</translation>
     </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">Внешний подписант(например, аппаратный кошелёк)</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Автоматически открыть порт биткоин-клиента на маршрутизаторе. Работает, если ваш маршрутизатор поддерживает UPnP, и данная функция на нём включена.</translation>
@@ -2201,6 +2301,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Cancel</source>
         <translation type="unfinished">О&amp;тмена</translation>
     </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Скомпилировано без поддержки внешней подписи (требуется для внешней подписи)</translation>
+    </message>
     <message>
         <source>default</source>
         <translation type="unfinished">по умолчанию</translation>
@@ -2702,6 +2807,10 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>Synced Blocks</source>
         <translation type="unfinished">Синхронизировано блоков</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Последняя транзакция</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">Подключённая автономная система, используемая для диверсификации узлов, к которым производится подключение.</translation>
@@ -2893,6 +3002,11 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>no high bandwidth relay selected</source>
         <translation type="unfinished">широкополосный передатчик не выбран</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;Копировать адрес</translation>
+    </message>
     <message>
         <source>&amp;Disconnect</source>
         <translation type="unfinished">О&amp;тключиться</translation>
@@ -3058,6 +3172,18 @@ For more information on using this console, type %6.
         <source>Copy &amp;URI</source>
         <translation type="unfinished">Копировать &amp;URI</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Копировать адрес</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копировать &amp;метку</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Копировать &amp;сумму</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">Невозможно разблокировать кошелёк.</translation>
@@ -3331,6 +3457,10 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>%1 (%2 blocks)</source>
         <translation type="unfinished">%1 (%2 блоков)</translation>
     </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">Сначала подключите ваш аппаратный кошелёк.</translation>
+    </message>
     <message>
         <source>Cr&amp;eate Unsigned</source>
         <translation type="unfinished">Создать &amp;без подписи</translation>
@@ -3385,6 +3515,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">Пожалуйста, ещё раз просмотрите черновик вашей транзакции. Будет создана частично подписанная биткоин-транзакция (PSBT), которую можно сохранить или скопировать, после чего подписать, например, офлайновым кошельком %1 или PSBT-совместимым аппаратным кошельком.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Вы хотите создать эту транзакцию?</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3706,7 +3841,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>(press q to shutdown and continue later)</source>
         <translation type="unfinished">(нажмите q, чтобы завершить работу и продолжить позже)</translation>
     </message>
-    </context>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">нажмите q для выключения</translation>
+    </message>
+</context>
 <context>
     <name>TrafficGraphWidget</name>
     <message>
@@ -4049,6 +4188,22 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>Range…</source>
         <translation type="unfinished">Диапазон...</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Копировать адрес</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копировать &amp;метку</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Копировать &amp;сумму</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">Копировать транзакцию и &amp;ID</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Экспортировать историю транзакций</translation>
diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/bitcoin_th.ts
index 1d7c403a4cc..b553fd26aa3 100644
--- a/src/qt/locale/bitcoin_th.ts
+++ b/src/qt/locale/bitcoin_th.ts
@@ -130,11 +130,15 @@
     </message>
     <message>
         <source>Encrypt wallet</source>
-        <translation type="unfinished">เข้ารหัสกระเป๋าสตางค์</translation>
+        <translation type="unfinished">เข้ารหัสวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+        <translation type="unfinished">การดำเนินการนี้ต้องการวอลเลตพาสเฟสของคุณเพื่อปลดล็อควอลเล็ต</translation>
     </message>
     <message>
         <source>Unlock wallet</source>
-        <translation type="unfinished">ปลดล็อคกระเป๋าสตางค์</translation>
+        <translation type="unfinished">ปลดล็อควอลเล็ต</translation>
     </message>
     <message>
         <source>Change passphrase</source>
@@ -142,31 +146,67 @@
     </message>
     <message>
         <source>Confirm wallet encryption</source>
-        <translation type="unfinished">ยืนยันการเข้ารหัสกระเป๋าสตางค์</translation>
+        <translation type="unfinished">ยืนยันการเข้ารหัสวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
+        <translation type="unfinished">คำเตือน: หากคุณเข้ารหัสวอลเล็ตของคุณและทำพาสเฟสหาย, คุณจะสูญเสีย &lt;b&gt;BITCOINS ทั้งหมดของคุณ&lt;/b&gt;!</translation>
     </message>
     <message>
         <source>Are you sure you wish to encrypt your wallet?</source>
-        <translation type="unfinished">คุณแน่ใจหรือไม่ว่าต้องการเข้ารหัสกระเป๋าสตางค์ของคุณ?</translation>
+        <translation type="unfinished">คุณแน่ใจหรือไม่ว่าต้องการเข้ารหัสวอลเล็ตของคุณ?</translation>
     </message>
     <message>
         <source>Wallet encrypted</source>
-        <translation type="unfinished">เข้ารหัสบัญชีเรียบร้อย</translation>
+        <translation type="unfinished">เข้ารหัสวอลเล็ตเรียบร้อย</translation>
+    </message>
+    <message>
+        <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+        <translation type="unfinished">ป้อนพาสเฟสใหม่สำหรับวอลเล็ต&lt;br/&gt;กรุณาใช้พาสเฟสของ &lt;b&gt;สิบหรืออักขระสุ่มสิบตัวขึ้นไป&lt;/b&gt;, หรือ &lt;b&gt;แปดหรือแปดคำขึ้นไป&lt;/b&gt;.</translation>
+    </message>
+    <message>
+        <source>Enter the old passphrase and new passphrase for the wallet.</source>
+        <translation type="unfinished">ป้อนพาสเฟสเก่าและ พาสเฟสใหม่สำหรับวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+        <translation type="unfinished">โปรดจำไว้ว่าการเข้ารหัสวอลเล็ตของคุณไม่สามารถปกป้อง bitcoins ของคุณได้อย่างเต็มที่จากการถูกขโมยโดยมัลแวร์ที่ติดไวรัสบนคอมพิวเตอร์ของคุณ</translation>
+    </message>
+    <message>
+        <source>Wallet to be encrypted</source>
+        <translation type="unfinished">วอลเล็ตที่จะเข้ารหัส</translation>
     </message>
     <message>
         <source>Your wallet is about to be encrypted. </source>
-        <translation type="unfinished">บัญชีของคุณกำลังถูกเข้ารหัส</translation>
+        <translation type="unfinished">วอลเล็ตของคุณกำลังถูกเข้ารหัส</translation>
     </message>
     <message>
         <source>Your wallet is now encrypted. </source>
-        <translation type="unfinished">บัญชีของคุณถูกเข้ารหัสเรียบร้อยแล้ว</translation>
+        <translation type="unfinished">วอลเล็ตของคุณถูกเข้ารหัสเรียบร้อยแล้ว</translation>
+    </message>
+    <message>
+        <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+        <translation type="unfinished">สำคัญ: การสำรองข้อมูลใด ๆ ก่อนหน้านี้ที่คุณได้ทำขึ้นจากไฟล์วอลเล็ตของคุณควรถูกแทนที่ด้วยไฟล์วอลเล็ตที่เข้ารหัสที่สร้างขึ้นใหม่ ด้วยเหตุผลด้านความปลอดภัย การสำรองข้อมูลก่อนหน้าของไฟล์วอลเล็ตที่ไม่ได้เข้ารหัสจะไม่มีประโยชน์ทันทีที่คุณเริ่มใช้วอลเล็ตใหม่ที่เข้ารหัส</translation>
     </message>
     <message>
         <source>Wallet encryption failed</source>
-        <translation type="unfinished">การเข้ารหัสกระเป๋าสตางค์ล้มเหลว</translation>
+        <translation type="unfinished">การเข้ารหัสวอลเล็ตล้มเหลว</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+        <translation type="unfinished">การเข้ารหัสวอลเลตล้มเหลวเนื่องจากข้อผิดพลาดภายใน วอลเล็ตของคุณไม่ได้เข้ารหัส</translation>
     </message>
     <message>
         <source>Wallet unlock failed</source>
-        <translation type="unfinished">การปลดล็อคกระเป๋าสตางค์ล้มเหลว</translation>
+        <translation type="unfinished">การปลดล็อควอลเล็ตล้มเหลว</translation>
+    </message>
+    <message>
+        <source>The passphrase entered for the wallet decryption was incorrect.</source>
+        <translation type="unfinished">พาสเฟสที่ป้อนสำหรับการถอดรหัสวอลเล็ตไม่ถูกต้อง</translation>
+    </message>
+    <message>
+        <source>Wallet passphrase was successfully changed.</source>
+        <translation type="unfinished">เปลี่ยนพาสเฟสวอลเล็ตสำเร็จแล้ว</translation>
     </message>
     </context>
 <context>
@@ -199,6 +239,10 @@
         <source>Error: %1</source>
         <translation type="unfinished">ข้อผิดพลาด: %1</translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished">ไม่รู้จัก</translation>
+    </message>
     <message>
         <source>Amount</source>
         <translation type="unfinished">จำนวน</translation>
@@ -254,17 +298,225 @@
         <source>Settings file could not be written</source>
         <translation type="unfinished">ไม่สามารถเขียนข้อมูลลงบนไฟล์ตั้งค่าได้</translation>
     </message>
+    <message>
+        <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
+        <translation type="unfinished">ข้อผิดพลาด: ดัมพ์ไฟล์เวอร์ชัน ไม่รองรับเวอร์ชัน บิตคอยน์-วอลเล็ต รุ่นนี้รองรับไฟล์ดัมพ์เวอร์ชัน 1 เท่านั้น รับดัมพ์ไฟล์พร้อมเวอร์ชัน %s</translation>
+    </message>
+    <message>
+        <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
+        <translation type="unfinished">ข้อผิดพลาด: เลกาซีวอลเล็ต เพียงสนับสนุน "legacy", "p2sh-segwit", และ "bech32" ชนิดแอดเดรส</translation>
+    </message>
     <message>
         <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
         <translation type="unfinished">ไม่สามารถตั้ง -forcednsseed เป็น true ได้เมื่อการตั้งค่า -dnsseed เป็น false</translation>
     </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการโหลด %s: กำลังโหลดวอลเล็ตผู้ลงนามภายนอกโดยไม่มีการรวบรวมการสนับสนุนผู้ลงนามภายนอก</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Wallet corrupted</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการโหลด %s: วอลเล็ตเกิดความเสียหาย</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Wallet requires newer version of %s</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการโหลด %s: วอลเล็ตต้องการเวอร์ชันใหม่กว่า %s</translation>
+    </message>
+    <message>
+        <source>Error loading block database</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการโหลดฐานข้อมูลบล็อก</translation>
+    </message>
+    <message>
+        <source>Error opening block database</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการเปิดฐานข้อมูลบล็อก</translation>
+    </message>
+    <message>
+        <source>Error reading from database, shutting down.</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการอ่านจากฐานข้อมูล กำลังปิด</translation>
+    </message>
+    <message>
+        <source>Error reading next record from wallet database</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการอ่านบันทึกถัดไปจากฐานข้อมูลวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Error upgrading chainstate database</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการอัพเกรดฐานข้อมูล chainstate</translation>
+    </message>
+    <message>
+        <source>Error: Couldn't create cursor into database</source>
+        <translation type="unfinished">ข้อผิดพลาด: ไม่สามารถสร้างเคอร์เซอร์ในฐานข้อมูล</translation>
+    </message>
+    <message>
+        <source>Error: Disk space is low for %s</source>
+        <translation type="unfinished">ข้อผิดพลาด: พื้นที่ดิสก์เหลือน้อยสำหรับ %s</translation>
+    </message>
+    <message>
+        <source>Error: Missing checksum</source>
+        <translation type="unfinished">ข้อผิดพลาด: ไม่มีเช็คซัม</translation>
+    </message>
+    <message>
+        <source>Error: No %s addresses available.</source>
+        <translation type="unfinished">ข้อผิดพลาด: ไม่มี %s แอดเดรสพร้อมใช้งาน</translation>
+    </message>
+    <message>
+        <source>Error: Unable to write record to new wallet</source>
+        <translation type="unfinished">ข้อผิดพลาด: ไม่สามารถเขียนบันทึกไปยังวอลเล็ตใหม่</translation>
+    </message>
+    <message>
+        <source>Failed to rescan the wallet during initialization</source>
+        <translation type="unfinished">ไม่สามารถสแกนวอลเล็ตอีกครั้งในระหว่างการเริ่มต้น</translation>
+    </message>
+    <message>
+        <source>Failed to verify database</source>
+        <translation type="unfinished">ไม่สามารถตรวจสอบฐานข้อมูล</translation>
+    </message>
+    <message>
+        <source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
+        <translation type="unfinished">อัตราค่าธรรมเนียม (%s) ต่ำกว่าอัตราค่าธรรมเนียมขั้นต่ำที่ตั้งไว้  (%s)</translation>
+    </message>
+    <message>
+        <source>Ignoring duplicate -wallet %s.</source>
+        <translation type="unfinished">ละเว้นการทำซ้ำ -วอลเล็ต %s.</translation>
+    </message>
+    <message>
+        <source>Importing…</source>
+        <translation type="unfinished">กำลังนำเข้า…</translation>
+    </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">ไม่พบข้อมูลที่ป้อนหรือใช้ไปแล้ว</translation>
+    </message>
+    <message>
+        <source>Insufficient funds</source>
+        <translation type="unfinished">เงินทุนไม่เพียงพอ</translation>
+    </message>
+    <message>
+        <source>Loading wallet…</source>
+        <translation type="unfinished">กำลังโหลดวอลเล็ต...</translation>
+    </message>
     <message>
         <source>Missing amount</source>
         <translation type="unfinished">จำนวนที่หายไป</translation>
     </message>
     <message>
         <source>No addresses available</source>
-        <translation type="unfinished">ไม่มีที่อยู่ที่ใช้งานได้</translation>
+        <translation type="unfinished">ไม่มีแอดเดรสที่ใช้งานได้</translation>
+    </message>
+    <message>
+        <source>Rescanning…</source>
+        <translation type="unfinished">ทำการสแกนซ้ำ…</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" does not exist</source>
+        <translation type="unfinished">Specified -walletdir "%s" ไม่มีอยู่</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" is a relative path</source>
+        <translation type="unfinished">Specified -walletdir "%s" เป็นพาธสัมพัทธ์</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" is not a directory</source>
+        <translation type="unfinished">Specified -walletdir "%s" ไม่ใช่ไดเร็กทอรี</translation>
+    </message>
+    <message>
+        <source>Specified blocks directory "%s" does not exist.</source>
+        <translation type="unfinished">ไม่มีไดเร็กทอรีบล็อกที่ระบุ "%s" </translation>
+    </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">การเริ่มเธรดเครือข่าย…</translation>
+    </message>
+    <message>
+        <source>The source code is available from %s.</source>
+        <translation type="unfinished">ซอร์สโค๊ดสามารถใช้ได้จาก %s.</translation>
+    </message>
+    <message>
+        <source>The specified config file %s does not exist</source>
+        <translation type="unfinished">ไฟล์กำหนดค่าที่ระบุ %s ไม่มีอยู่</translation>
+    </message>
+    <message>
+        <source>The transaction amount is too small to pay the fee</source>
+        <translation type="unfinished">จำนวนธุรกรรมน้อยเกินไปที่จะชำระค่าธรรมเนียม</translation>
+    </message>
+    <message>
+        <source>The wallet will avoid paying less than the minimum relay fee.</source>
+        <translation type="unfinished">วอลเล็ตจะหลีกเลี่ยงการจ่ายน้อยกว่าค่าธรรมเนียมรีเลย์ขั้นต่ำ</translation>
+    </message>
+    <message>
+        <source>This is experimental software.</source>
+        <translation type="unfinished">นี่คือซอฟต์แวร์ทดลอง</translation>
+    </message>
+    <message>
+        <source>This is the minimum transaction fee you pay on every transaction.</source>
+        <translation type="unfinished">นี่คือค่าธรรมเนียมการทำธุรกรรมขั้นต่ำที่คุณจ่ายในทุกธุรกรรม</translation>
+    </message>
+    <message>
+        <source>This is the transaction fee you will pay if you send a transaction.</source>
+        <translation type="unfinished">นี่คือค่าธรรมเนียมการทำธุรกรรมที่คุณจะจ่ายหากคุณส่งธุรกรรม</translation>
+    </message>
+    <message>
+        <source>Transaction amount too small</source>
+        <translation type="unfinished">จำนวนธุรกรรมน้อยเกินไป</translation>
+    </message>
+    <message>
+        <source>Transaction amounts must not be negative</source>
+        <translation type="unfinished">จำนวนเงินที่ทำธุรกรรมต้องไม่เป็นค่าติดลบ</translation>
+    </message>
+    <message>
+        <source>Transaction has too long of a mempool chain</source>
+        <translation type="unfinished">ธุรกรรมมี เชนเมมพูล ยาวเกินไป</translation>
+    </message>
+    <message>
+        <source>Transaction must have at least one recipient</source>
+        <translation type="unfinished">ธุรกรรมต้องมีผู้รับอย่างน้อยหนึ่งราย</translation>
+    </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">การทำธุรกรรมต้องการการเปลี่ยนแปลงที่อยู่ แต่เราไม่สามารถสร้างมันขึ้นมาได้</translation>
+    </message>
+    <message>
+        <source>Transaction too large</source>
+        <translation type="unfinished">ธุรกรรมใหญ่เกินไป</translation>
+    </message>
+    <message>
+        <source>Unable to create the PID file '%s': %s</source>
+        <translation type="unfinished">ไม่สามารถสร้างไฟล์ PID '%s': %s</translation>
+    </message>
+    <message>
+        <source>Unable to generate initial keys</source>
+        <translation type="unfinished">ไม่สามารถสร้างคีย์เริ่มต้น</translation>
+    </message>
+    <message>
+        <source>Unable to generate keys</source>
+        <translation type="unfinished">ไม่สามารถสร้างคีย์</translation>
+    </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">ไม่สามารถเปิด %s สำหรับการเขียนข้อมูล</translation>
+    </message>
+    <message>
+        <source>Unknown address type '%s'</source>
+        <translation type="unfinished">ไม่รู้จักประเภทแอดเดรส '%s'</translation>
+    </message>
+    <message>
+        <source>Unknown change type '%s'</source>
+        <translation type="unfinished">ไม่รู้จักประเภทการเปลี่ยนแปลง '%s'</translation>
+    </message>
+    <message>
+        <source>Unknown network specified in -onlynet: '%s'</source>
+        <translation type="unfinished">ไม่รู้จักเครือข่ายที่ระบุใน -onlynet: '%s'</translation>
+    </message>
+    <message>
+        <source>Upgrading UTXO database</source>
+        <translation type="unfinished">กำลังอัพเกรดฐานข้อมูล UTXO</translation>
+    </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">กำลังตรวจสอบบล็อก…</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">กำลังตรวจสอบวอลเล็ต…</translation>
     </message>
     </context>
 <context>
@@ -275,11 +527,11 @@
     </message>
     <message>
         <source>Show general overview of wallet</source>
-        <translation type="unfinished">แสดงภาพรวมทั่วไปของกระเป๋าสตางค์</translation>
+        <translation type="unfinished">แสดงภาพรวมทั่วไปของวอลเล็ต</translation>
     </message>
     <message>
         <source>&amp;Transactions</source>
-        <translation type="unfinished">&amp;ธุรกรรม</translation>
+        <translation type="unfinished">&amp;การทำธุรกรรม</translation>
     </message>
     <message>
         <source>Browse transaction history</source>
@@ -315,7 +567,7 @@
     </message>
     <message>
         <source>Create a new wallet</source>
-        <translation type="unfinished">สร้างกระเป๋าสตางค์</translation>
+        <translation type="unfinished">สร้างวอลเล็ตใหม่</translation>
     </message>
     <message>
         <source>&amp;Minimize</source>
@@ -323,7 +575,16 @@
     </message>
     <message>
         <source>Wallet:</source>
-        <translation type="unfinished">กระเป๋าสตางค์:</translation>
+        <translation type="unfinished">วอลเล็ต:</translation>
+    </message>
+    <message>
+        <source>Network activity disabled.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">กิจกรรมเครือข่ายถูกปิดใช้งาน</translation>
+    </message>
+    <message>
+        <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
+        <translation type="unfinished">พร็อกซี่ ถูก &lt;b&gt;เปิดใช้งาน&lt;/b&gt;: %1</translation>
     </message>
     <message>
         <source>Send coins to a Bitcoin address</source>
@@ -331,11 +592,11 @@
     </message>
     <message>
         <source>Backup wallet to another location</source>
-        <translation type="unfinished">สำรองข้อมูลกระเป๋าสตางค์ไปยังตำแหน่งที่ตั้งอื่น</translation>
+        <translation type="unfinished">สำรองข้อมูลวอลเล็ตปยังตำแหน่งที่ตั้งอื่น</translation>
     </message>
     <message>
         <source>Change the passphrase used for wallet encryption</source>
-        <translation type="unfinished">เปลี่ยนรหัสผ่านที่ใช้สำหรับการเข้ารหัสกระเป๋าเงิน</translation>
+        <translation type="unfinished">เปลี่ยนพาสเฟสที่ใช้สำหรับการเข้ารหัสวอลเล็ต</translation>
     </message>
     <message>
         <source>&amp;Send</source>
@@ -351,11 +612,15 @@
     </message>
     <message>
         <source>&amp;Encrypt Wallet…</source>
-        <translation type="unfinished">&amp;เข้ารหัสกระเป๋าสตางค์...</translation>
+        <translation type="unfinished">&amp;เข้ารหัสวอลเล็ต...</translation>
+    </message>
+    <message>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">เข้ารหัสคีย์ส่วนตัวที่เป็นของวอลเล็ตของคุณ</translation>
     </message>
     <message>
         <source>&amp;Backup Wallet…</source>
-        <translation type="unfinished">&amp;สำรองข้อมูลกระเป๋าสตางค์...</translation>
+        <translation type="unfinished">&amp;สำรองข้อมูลวอลเล็ต...</translation>
     </message>
     <message>
         <source>&amp;Change Passphrase…</source>
@@ -365,21 +630,29 @@
         <source>Sign &amp;message…</source>
         <translation type="unfinished">&amp;เซ็นข้อความ...</translation>
     </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;ยืนยันข้อความ…</translation>
+    </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">&amp;โหลด PSBT จากไฟล์...</translation>
+    </message>
     <message>
         <source>Open &amp;URI…</source>
         <translation type="unfinished">&amp;เปิด URI...</translation>
     </message>
     <message>
         <source>Close Wallet…</source>
-        <translation type="unfinished">ปิดกระเป๋าสตางค์</translation>
+        <translation type="unfinished">ปิดวอลเล็ต…</translation>
     </message>
     <message>
         <source>Create Wallet…</source>
-        <translation type="unfinished">สร้างกระเป๋าสตางค์ใหม่</translation>
+        <translation type="unfinished">สร้างวอลเล็ต…</translation>
     </message>
     <message>
         <source>Close All Wallets…</source>
-        <translation type="unfinished">ปิดกระเป๋าสตางค์ทั้งหมด...</translation>
+        <translation type="unfinished">ปิดวอลเล็ตทั้งหมด...</translation>
     </message>
     <message>
         <source>&amp;File</source>
@@ -401,6 +674,10 @@
         <source>Synchronizing with network…</source>
         <translation type="unfinished">กำลังซิงค์ข้อมูลกับทางเครือข่าย ...</translation>
     </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">กำลังเชื่อมต่อไปยัง peers…</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">เรียกเก็บ การชำระเงิน (สร้าง QR codes และ bitcoin: URIs)</translation>
@@ -420,7 +697,7 @@
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n บล็อกในประวัติรายการ ได้รับการดำเนินการเรียบร้อยแล้ว</numerusform>
         </translation>
     </message>
     <message>
@@ -451,6 +728,38 @@
         <source>Up to date</source>
         <translation type="unfinished">ทันสมัย</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">โหลด PSBT จากคลิปบอร์ด...</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <translation type="unfinished">เปิดวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Open a wallet</source>
+        <translation type="unfinished">เปิดวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">ปิดวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">ปิดวอลเล็ตทั้งหมด</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">วอลเล็ตเริ่มต้น</translation>
+    </message>
+    <message>
+        <source>No wallets available</source>
+        <translation type="unfinished">ไม่มีวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;วินโดว์</translation>
+    </message>
     <message>
         <source>Zoom</source>
         <translation type="unfinished">ซูม</translation>
@@ -478,6 +787,21 @@
             <numerusform>%n การเชื่อมต่อที่ใช้งานได้ เพื่อเชื่อมกับเครือข่าย Bitcoin</numerusform>
         </translation>
     </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">แสดง Peers แท็ป</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">ปิดใช้งานกิจกรรมเครือข่าย</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">เปิดใช้งานกิจกรรมเครือข่าย</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">ข้อผิดพลาด: %1</translation>
@@ -501,7 +825,7 @@
     <message>
         <source>Wallet: %1
 </source>
-        <translation type="unfinished">กระเป๋าสตางค์: %1
+        <translation type="unfinished">วอลเล็ต: %1
 </translation>
     </message>
     <message>
@@ -519,7 +843,7 @@
     <message>
         <source>Address: %1
 </source>
-        <translation type="unfinished">ที่อยู่: %1
+        <translation type="unfinished">แอดเดรส: %1
 </translation>
     </message>
     <message>
@@ -530,13 +854,25 @@
         <source>Incoming transaction</source>
         <translation type="unfinished">การทำรายการขาเข้า</translation>
     </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD key generation ถูก &lt;b&gt;เปิดใช้งาน&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD key generation ถูก &lt;b&gt;ปิดใช้งาน&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">คีย์ส่วนตัว &lt;b&gt;ปิดใช้งาน&lt;/b&gt;</translation>
+    </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
-        <translation type="unfinished">ระเป๋าเงินถูก &lt;b&gt;เข้ารหัส&lt;/b&gt; และในขณะนี้ &lt;b&gt;ปลดล็อคแล้ว&lt;/b&gt;</translation>
+        <translation type="unfinished">วอลเล็ตถูก &lt;b&gt;เข้ารหัส&lt;/b&gt; และในขณะนี้ &lt;b&gt;ปลดล็อคแล้ว&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
-        <translation type="unfinished">กระเป๋าเงินถูก &lt;b&gt;เข้ารหัส&lt;/b&gt; และในปัจจุบัน &lt;b&gt;ล็อค &lt;/b&gt;</translation>
+        <translation type="unfinished">วอลเล็ตถูก &lt;b&gt;เข้ารหัส&lt;/b&gt; และในขณะนี้ &lt;b&gt;ล็อคแล้ว &lt;/b&gt;</translation>
     </message>
     <message>
         <source>Original message:</source>
@@ -599,7 +935,7 @@
     </message>
     <message>
         <source>Received with address</source>
-        <translation type="unfinished">รับด้วยที่อยู่</translation>
+        <translation type="unfinished">รับด้วยแอดเดรส</translation>
     </message>
     <message>
         <source>Date</source>
@@ -617,6 +953,54 @@
         <source>Copy amount</source>
         <translation type="unfinished">คัดลอกจำนวนเงิน</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;คัดลอกแอดเดรส</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">คัดลอก &amp;เลเบล</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">คัดลอก &amp;จำนวน</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">คัดล็อก &amp;ID ธุรกรรมและส่งออกเป็นดัชนี</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">คัดลอกปริมาณ</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">คัดลอกค่าธรรมเนียม</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">คัดลอกหลังหักค่าธรรมเนียม</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">คัดลอกไบต์</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">คัดลอกการเปลี่ยนแปลง</translation>
+    </message>
+    <message>
+        <source>(%1 locked)</source>
+        <translation type="unfinished">(%1 ล็อค)</translation>
+    </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">ใช่</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation type="unfinished">ไม่</translation>
+    </message>
     <message>
         <source>(no label)</source>
         <translation type="unfinished">(ไม่มีป้ายชื่อ)</translation>
@@ -635,7 +1019,20 @@
     <message>
         <source>Create Wallet</source>
         <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
-        <translation type="unfinished">สร้างกระเป๋าสตางค์</translation>
+        <translation type="unfinished">สร้างวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">กำลังสร้า่งวอลเล็ต &lt;b&gt;%1&lt;/b&gt;…</translation>
+    </message>
+    <message>
+        <source>Create wallet failed</source>
+        <translation type="unfinished">การสร้างวอลเล็ตล้มเหลว</translation>
+    </message>
+    <message>
+        <source>Create wallet warning</source>
+        <translation type="unfinished">คำเตือนการสร้างวอลเล็ต</translation>
     </message>
     </context>
 <context>
@@ -643,58 +1040,83 @@
     <message>
         <source>Load Wallets</source>
         <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
-        <translation type="unfinished">โหลดกระเป๋า</translation>
+        <translation type="unfinished">โหลดวอลเล็ต</translation>
     </message>
     <message>
         <source>Loading wallets…</source>
         <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
-        <translation type="unfinished">กำลังโหลดกระเป๋า...</translation>
+        <translation type="unfinished">กำลังโหลดวอลเล็ต...</translation>
     </message>
 </context>
 <context>
     <name>OpenWalletActivity</name>
+    <message>
+        <source>Open wallet failed</source>
+        <translation type="unfinished">เปิดวอลเล็ตล้มเหลว</translation>
+    </message>
+    <message>
+        <source>Open wallet warning</source>
+        <translation type="unfinished">คำเตือนการเปิดวอลเล็ต</translation>
+    </message>
     <message>
         <source>default wallet</source>
-        <translation type="unfinished">กระเป๋าสตางค์เริ่มต้น</translation>
+        <translation type="unfinished">วอลเล็ตเริ่มต้น</translation>
     </message>
     <message>
         <source>Open Wallet</source>
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
-        <translation type="unfinished">เปิดกระเป๋าสตางค์</translation>
+        <translation type="unfinished">เปิดวอลเล็ต</translation>
     </message>
-    </context>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">กำลังเปิดวอลเล็ต &lt;b&gt;%1&lt;/b&gt;…</translation>
+    </message>
+</context>
 <context>
     <name>WalletController</name>
     <message>
         <source>Close wallet</source>
-        <translation type="unfinished">ปิดกระเป๋าสตางค์</translation>
+        <translation type="unfinished">ปิดวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
+        <translation type="unfinished">คุณแน่ใจหรือไม่ว่าต้องการปิดวอลเล็ต &lt;i&gt;%1&lt;/i&gt;?</translation>
     </message>
     <message>
         <source>Close all wallets</source>
-        <translation type="unfinished">ปิดกระเป๋าสตางค์ทั้งหมด</translation>
+        <translation type="unfinished">ปิดวอลเล็ตทั้งหมด</translation>
     </message>
     <message>
         <source>Are you sure you wish to close all wallets?</source>
-        <translation type="unfinished">คุณแน่ใจหรือไม่ว่าต้องการปิดกระเป๋าสตางค์ทั้งหมด?</translation>
+        <translation type="unfinished">คุณแน่ใจหรือไม่ว่าต้องการปิดวอลเล็ตทั้งหมด?</translation>
     </message>
 </context>
 <context>
     <name>CreateWalletDialog</name>
     <message>
         <source>Create Wallet</source>
-        <translation type="unfinished">สร้างกระเป๋าสตางค์</translation>
+        <translation type="unfinished">สร้างวอลเล็ต</translation>
     </message>
     <message>
         <source>Wallet Name</source>
-        <translation type="unfinished">ชื่อกระเป๋าสตางค์</translation>
+        <translation type="unfinished">ชื่อวอลเล็ต</translation>
     </message>
     <message>
         <source>Wallet</source>
-        <translation type="unfinished">กระเป๋าเงิน</translation>
+        <translation type="unfinished">วอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
+        <translation type="unfinished">เข้ารหัสวอลเล็ต วอลเล็ตจะถูกเข้ารหัสด้วยพาสเฟสที่คุณเลือก </translation>
     </message>
     <message>
         <source>Encrypt Wallet</source>
-        <translation type="unfinished">เข้ารหัสกระเป๋าสตางค์</translation>
+        <translation type="unfinished">เข้ารหัสวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">ตัวเลือกขั้นสูง</translation>
     </message>
     <message>
         <source>Disable Private Keys</source>
@@ -702,7 +1124,11 @@
     </message>
     <message>
         <source>Make Blank Wallet</source>
-        <translation type="unfinished">สร้างกระเป๋าสตางค์เปล่า</translation>
+        <translation type="unfinished">ทำวอลเล็ตว่างเปล่า</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">ตัวอธิบายวอลเล็ต</translation>
     </message>
     <message>
         <source>Create</source>
@@ -713,7 +1139,7 @@
     <name>EditAddressDialog</name>
     <message>
         <source>Edit Address</source>
-        <translation type="unfinished">แก้ไขที่อยู่</translation>
+        <translation type="unfinished">แก้ไขแอดเดรส</translation>
     </message>
     <message>
         <source>&amp;Label</source>
@@ -729,25 +1155,33 @@
     </message>
     <message>
         <source>&amp;Address</source>
-        <translation type="unfinished">&amp;ที่อยู่</translation>
+        <translation type="unfinished">&amp;แอดเดรส</translation>
     </message>
     <message>
         <source>New sending address</source>
-        <translation type="unfinished">ที่อยู่การส่งใหม่</translation>
+        <translation type="unfinished">แอดเดรสการส่งใหม่</translation>
     </message>
     <message>
         <source>Edit receiving address</source>
-        <translation type="unfinished">แก้ไขที่อยู่การรับ</translation>
+        <translation type="unfinished">แก้ไขแอดเดรสการรับ</translation>
     </message>
     <message>
         <source>Edit sending address</source>
-        <translation type="unfinished">แก้ไขที่อยู่การส่ง</translation>
+        <translation type="unfinished">แก้ไขแอดเดรสการส่ง</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is not a valid Bitcoin address.</source>
+        <translation type="unfinished">แอดเดรสที่ป้อน "%1" เป็น Bitcoin แอดเดรสที่ไม่ถูกต้อง</translation>
     </message>
     <message>
         <source>Could not unlock wallet.</source>
-        <translation type="unfinished">ไม่สามารถปลดล็อคกระเป๋าสตางค์</translation>
+        <translation type="unfinished">ไม่สามารถปลดล็อควอลเล็ต</translation>
     </message>
-    </context>
+    <message>
+        <source>New key generation failed.</source>
+        <translation type="unfinished">การสร้างคีย์ใหม่ล้มเหลว</translation>
+    </message>
+</context>
 <context>
     <name>FreespaceChecker</name>
     <message>
@@ -785,12 +1219,12 @@
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>(เพียงพอที่จะกู้คืนสำรองข้อมูลเก่า %n วันที่แล้ว)</numerusform>
         </translation>
     </message>
     <message>
         <source>The wallet will also be stored in this directory.</source>
-        <translation type="unfinished">The wallet เก็บใว้ในไดเร็กทอรี่</translation>
+        <translation type="unfinished"> วอลเล็ตจะถูกเก็บใว้ในไดเร็กทอรีนี้เช่นกัน</translation>
     </message>
     <message>
         <source>Error: Specified data directory "%1" cannot be created.</source>
@@ -836,16 +1270,43 @@
         <translation type="unfinished">ตัวเลือกบรรทัดคำสั่ง</translation>
     </message>
 </context>
+<context>
+    <name>ShutdownWindow</name>
+    <message>
+        <source>Do not shut down the computer until this window disappears.</source>
+        <translation type="unfinished">อย่าปิดเครื่องคอมพิวเตอร์จนกว่าหน้าต่างนี้จะหายไป</translation>
+    </message>
+</context>
 <context>
     <name>ModalOverlay</name>
     <message>
         <source>Form</source>
         <translation type="unfinished">รูป</translation>
     </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">ไม่รู้จัก…</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">กำลังคำนวณ…</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">บล็อกเวลาล่าสุด</translation>
+    </message>
     <message>
         <source>Progress</source>
         <translation type="unfinished">ความคืบหน้า</translation>
     </message>
+    <message>
+        <source>Progress increase per hour</source>
+        <translation type="unfinished">ความคืบหน้าเพิ่มขึ้นต่อชั่วโมง</translation>
+    </message>
+    <message>
+        <source>Estimated time left until synced</source>
+        <translation type="unfinished">เวลาโดยประมาณที่เหลือจนกว่าจะซิงค์</translation>
+    </message>
     <message>
         <source>Hide</source>
         <translation type="unfinished">ซ่อน</translation>
@@ -853,6 +1314,10 @@
     </context>
 <context>
     <name>OpenURIDialog</name>
+    <message>
+        <source>Open bitcoin URI</source>
+        <translation type="unfinished">เปิด bitcoin: URI</translation>
+    </message>
     <message>
         <source>Paste address from clipboard</source>
         <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
@@ -909,10 +1374,25 @@
         <source>&amp;Network</source>
         <translation type="unfinished">&amp;เครือข่าย</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">ขนาดแคชฐานข้อมูลสูงสุด แคชที่ใหญ่ขึ้นสามารถนำไปสู่การซิงค์ได้เร็วยิ่งขึ้น หลังจากนั้นประโยชน์จะเด่นชัดน้อยลงสำหรับกรณีการใช้งานส่วนใหญ่ การลดขนาดแคชจะลดการใช้หน่วยความจำ มีการแชร์หน่วยความจำ mempool ที่ไม่ได้ใช้สำหรับแคชนี้</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">กำหนดจำนวนเธรดการตรวจสอบสคริปต์ ค่าลบสอดคล้องกับจำนวนคอร์ที่คุณต้องการปล่อยให้ระบบว่าง</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = อัตโนมัติ, &lt;0 = ปล่อย คอร์ อิสระ)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">สิ่งนี้ช่วยให้คุณหรือเครื่องมือของบุคคลที่สามสามารถสื่อสารกับโหนดผ่านคำสั่งบรรทัดคำสั่งและ JSON-RPC</translation>
+    </message>
     <message>
         <source>Enable R&amp;PC server</source>
         <extracomment>An Options window setting to enable the RPC server.</extracomment>
@@ -920,7 +1400,7 @@
     </message>
     <message>
         <source>W&amp;allet</source>
-        <translation type="unfinished">&amp;กระเป๋าสตางค์</translation>
+        <translation type="unfinished">ว&amp;อลเล็ต</translation>
     </message>
     <message>
         <source>Expert</source>
@@ -943,6 +1423,10 @@
         <extracomment>An options window setting to enable PSBT controls.</extracomment>
         <translation type="unfinished">เปิดใช้งานการควบคุม &amp;PSBT</translation>
     </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">ผู้ลงนามภายนอก (เช่น ฮาร์ดแวร์วอลเล็ต)</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">เปิด Bitcoin ไคล์เอ็นท์พอร์ต/client port บน router โดยอัตโนมัติ วิธีนี้ใช้ได้เมื่อ router สนับสนุน UPnP และสถานะเปิดใช้งาน</translation>
@@ -965,7 +1449,7 @@
     </message>
     <message>
         <source>&amp;Port:</source>
-        <translation type="unfinished">&amp;พอร์ต</translation>
+        <translation type="unfinished">&amp;พอร์ต:</translation>
     </message>
     <message>
         <source>Port of the proxy (e.g. 9050)</source>
@@ -977,7 +1461,7 @@
     </message>
     <message>
         <source>&amp;Window</source>
-        <translation type="unfinished">&amp;หน้าต่าง</translation>
+        <translation type="unfinished">&amp;วินโดว์</translation>
     </message>
     <message>
         <source>Show only a tray icon after minimizing the window.</source>
@@ -987,6 +1471,14 @@
         <source>User Interface &amp;language:</source>
         <translation type="unfinished">&amp;ภาษาส่วนติดต่อผู้ใช้:</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">URL ของบุคคลที่สาม (เช่น เครื่องมือสำรวจการบล็อก) ที่ปรากฏในแท็บธุรกรรมเป็นรายการเมนูบริบท %s ใน URL จะถูกแทนที่ด้วยแฮชธุรกรรม URL หลายรายการถูกคั่นด้วยแถบแนวตั้ง |</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;URL ธุรกรรมบุคคลที่สาม</translation>
+    </message>
     <message>
         <source>&amp;OK</source>
         <translation type="unfinished">&amp;ตกลง</translation>
@@ -995,6 +1487,10 @@
         <source>&amp;Cancel</source>
         <translation type="unfinished">&amp;ยกเลิก</translation>
     </message>
+    <message>
+        <source>none</source>
+        <translation type="unfinished">ไม่มี</translation>
+    </message>
     <message>
         <source>Configuration options</source>
         <extracomment>Window title text of pop-up box that allows opening up of configuration file.</extracomment>
@@ -1017,12 +1513,16 @@
     <name>OverviewPage</name>
     <message>
         <source>Form</source>
-        <translation type="unfinished">รูป</translation>
+        <translation type="unfinished">ฟอร์ม</translation>
     </message>
     <message>
         <source>Balances</source>
         <translation type="unfinished">ยอดดุล</translation>
     </message>
+    <message>
+        <source>Total:</source>
+        <translation type="unfinished">ทั้งหมด:</translation>
+    </message>
     </context>
 <context>
     <name>PSBTOperationsDialog</name>
@@ -1030,10 +1530,34 @@
         <source>Copy to Clipboard</source>
         <translation type="unfinished">คัดลอกไปยังคลิปบอร์ด</translation>
     </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">บันทึก…</translation>
+    </message>
     <message>
         <source>Close</source>
         <translation type="unfinished">ปิด</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">ไม่สามารถลงนามอินพุตในขณะที่วอลเล็ตถูกล็อค</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">จำนวนทั้งหมด</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">หรือ</translation>
+    </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(แต่ไม่มีการโหลดวอลเล็ต)</translation>
+    </message>
+    <message>
+        <source>(But this wallet cannot sign transactions.)</source>
+        <translation type="unfinished">(แต่วอลเล็ทนี้ไม่สามารถลงนามการทำธุรกรรมได้)</translation>
+    </message>
     </context>
 <context>
     <name>PeerTableModel</name>
@@ -1062,22 +1586,81 @@
     </context>
 <context>
     <name>RPCConsole</name>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">เครือข่าย</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">ชื่อ</translation>
+    </message>
+    <message>
+        <source>Block chain</source>
+        <translation type="unfinished">บล็อกเชน</translation>
+    </message>
     <message>
         <source>Wallet: </source>
-        <translation type="unfinished">กระเป๋าสตางค์: </translation>
+        <translation type="unfinished">วอลเล็ต: </translation>
+    </message>
+    <message>
+        <source>&amp;Reset</source>
+        <translation type="unfinished">&amp;รีเซ็ต</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <translation type="unfinished">ได้รับ</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <translation type="unfinished">ส่งแล้ว</translation>
+    </message>
+    <message>
+        <source>Version</source>
+        <translation type="unfinished">เวอร์ชัน</translation>
     </message>
     <message>
         <source>Last Transaction</source>
         <translation type="unfinished">ธุรกรรมก่อนหน้า</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">ไม่ว่าเราจะรีเลย์แอดเดรสปยังเพียร์นี้หรือไม่</translation>
+    </message>
     <message>
         <source>Address Relay</source>
-        <translation type="unfinished">รีเลย์ที่อยู่</translation>
+        <translation type="unfinished">รีเลย์แอดเดรส</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">จำนวนแอดเดรสทั้งหมดที่ประมวลผล ยกเว้นแอดเดรสที่ถูกลบเนื่องจากการจำกัดอัตรา</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">แอดเดรสที่ประมวลผลแล้ว</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">จำนวนแอดเดรสทั้งหมดลดลงเนื่องจากการจำกัดอัตรา</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">แอดเดรสจำกัดอัตรา</translation>
     </message>
     <message>
         <source>Node window</source>
         <translation type="unfinished">หน้าต่างโหนด</translation>
     </message>
+    <message>
+        <source>Decrease font size</source>
+        <translation type="unfinished">ลดขนาดตัวอักษร</translation>
+    </message>
+    <message>
+        <source>Increase font size</source>
+        <translation type="unfinished">เพิ่มขนาดตัวอักษร</translation>
+    </message>
     <message>
         <source>&amp;Open</source>
         <translation type="unfinished">&amp;เปิด</translation>
@@ -1091,6 +1674,26 @@
         <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
         <translation type="unfinished">&amp;คัดลอก IP/Netmask</translation>
     </message>
+    <message>
+        <source>Executing command without any wallet</source>
+        <translation type="unfinished">ดำเนินการคำสั่งโดยไม่มีวอลเล็ตใด ๆ</translation>
+    </message>
+    <message>
+        <source>Executing command using "%1" wallet</source>
+        <translation type="unfinished">ดำเนินการคำสั่งโดยใช้ "%1" วอลเล็ต</translation>
+    </message>
+    <message>
+        <source>via %1</source>
+        <translation type="unfinished">โดยผ่าน %1</translation>
+    </message>
+    <message>
+        <source>Yes</source>
+        <translation type="unfinished">ใช่</translation>
+    </message>
+    <message>
+        <source>No</source>
+        <translation type="unfinished">ไม่</translation>
+    </message>
     <message>
         <source>To</source>
         <translation type="unfinished">ถึง</translation>
@@ -1099,9 +1702,21 @@
         <source>From</source>
         <translation type="unfinished">จาก</translation>
     </message>
-    </context>
+    <message>
+        <source>Never</source>
+        <translation type="unfinished">ไม่เคย</translation>
+    </message>
+    <message>
+        <source>Unknown</source>
+        <translation type="unfinished">ไม่รู้จัก</translation>
+    </message>
+</context>
 <context>
     <name>ReceiveCoinsDialog</name>
+    <message>
+        <source>&amp;Amount:</source>
+        <translation type="unfinished">&amp;จำนวน:</translation>
+    </message>
     <message>
         <source>&amp;Label:</source>
         <translation type="unfinished">&amp;ป้ายชื่อ:</translation>
@@ -1128,7 +1743,7 @@
     </message>
     <message>
         <source>Could not unlock wallet.</source>
-        <translation type="unfinished">ไม่สามารถปลดล็อคกระเป๋าสตางค์</translation>
+        <translation type="unfinished">ไม่สามารถปลดล็อควอลเล็ต</translation>
     </message>
     </context>
 <context>
@@ -1151,7 +1766,7 @@
     </message>
     <message>
         <source>Wallet:</source>
-        <translation type="unfinished">กระเป๋าสตางค์:</translation>
+        <translation type="unfinished">วอลเล็ต:</translation>
     </message>
     <message>
         <source>Copy &amp;URI</source>
@@ -1161,6 +1776,10 @@
         <source>Copy &amp;Address</source>
         <translation type="unfinished">&amp;คัดลอกที่อยู่</translation>
     </message>
+    <message>
+        <source>Verify this address on e.g. a hardware wallet screen</source>
+        <translation type="unfinished">ยืนยันแอดเดรสนี้อยู่ใน เช่น ฮาร์ดแวร์วอลเล็ตสกรีน </translation>
+    </message>
     </context>
 <context>
     <name>RecentRequestsTableModel</name>
@@ -1227,19 +1846,40 @@
         <source>Dust:</source>
         <translation type="unfinished">เศษ:</translation>
     </message>
+    <message>
+        <source>Choose…</source>
+        <translation type="unfinished">เลือก…</translation>
+    </message>
     <message>
         <source>Copy amount</source>
         <translation type="unfinished">คัดลอกจำนวนเงิน</translation>
     </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">เชื่อมต่อฮาร์ดแวร์วอลเล็ตของคุณก่อน</translation>
+    </message>
     <message>
         <source> from wallet '%1'</source>
-        <translation type="unfinished">จากกระเป๋าสตางค์ '%1'</translation>
+        <translation type="unfinished">จากวอลเล็ต '%1'</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">หรือ</translation>
     </message>
     <message>
         <source>Do you want to create this transaction?</source>
         <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
         <translation type="unfinished">คุณต้องการสร้างธุรกรรมนี้หรือไม่?</translation>
     </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">โปรดตรวจสอบธุรกรรมของคุณ คุณสามารถสร้างและส่งธุรกรรมนี้หรือสร้างธุรกรรม Bitcoin ที่ลงชื่อบางส่วน (PSBT) ซึ่งคุณสามารถบันทึกหรือคัดลอกแล้วลงชื่อเข้าใช้ เช่น วอลเล็ต %1 ออฟไลน์, หรือ PSBT-compatible hardware wallet</translation>
+    </message>
+    <message>
+        <source>Transaction fee</source>
+        <translation type="unfinished">ค่าธรรมเนียมการทำธุรกรรม</translation>
+    </message>
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
@@ -1287,6 +1927,10 @@
         <source>Sign &amp;Message</source>
         <translation type="unfinished">&amp;เซ็นข้อความ</translation>
     </message>
+    <message>
+        <source>Wallet unlock was cancelled.</source>
+        <translation type="unfinished">ปลดล็อควอลเล็ตถูกยกเลิก</translation>
+    </message>
     <message>
         <source>No error</source>
         <translation type="unfinished">ไม่มีข้อผิดพลาด</translation>
@@ -1324,7 +1968,7 @@
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>เต็มตัวใน 1%n บล้อก</numerusform>
         </translation>
     </message>
     <message>
@@ -1385,10 +2029,28 @@
         <source>This year</source>
         <translation type="unfinished">ปีนี้</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">แสดงใน %1</translation>
+    </message>
+    <message>
+        <source>Export Transaction History</source>
+        <translation type="unfinished">ส่งออกประวัติการทำธุรกรรม</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">ไฟล์คั่นด้วยเครื่องหมายจุลภาค</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">ยืนยันแล้ว</translation>
     </message>
+    <message>
+        <source>Watch-only</source>
+        <translation type="unfinished">ดูอย่างเดียว</translation>
+    </message>
     <message>
         <source>Date</source>
         <translation type="unfinished">วันที่</translation>
@@ -1414,7 +2076,7 @@
     <name>WalletFrame</name>
     <message>
         <source>Create a new wallet</source>
-        <translation type="unfinished">สร้างกระเป๋าสตางค์</translation>
+        <translation type="unfinished">สร้างวอลเล็ตใหม่</translation>
     </message>
     <message>
         <source>Error</source>
@@ -1433,7 +2095,7 @@
     </message>
     <message>
         <source>default wallet</source>
-        <translation type="unfinished">กระเป๋าสตางค์เริ่มต้น</translation>
+        <translation type="unfinished">วอลเล็ตเริ่มต้น</translation>
     </message>
 </context>
 <context>
@@ -1448,7 +2110,12 @@
     </message>
     <message>
         <source>Backup Wallet</source>
-        <translation type="unfinished">สำรองข้อมูลกระเป๋าสตางค์</translation>
+        <translation type="unfinished">สำรองข้อมูลวอลเล็ต</translation>
+    </message>
+    <message>
+        <source>Wallet Data</source>
+        <extracomment>Name of the wallet data file format.</extracomment>
+        <translation type="unfinished">ข้อมูลวอลเล็ต</translation>
     </message>
     <message>
         <source>Backup Failed</source>
diff --git a/src/qt/locale/bitcoin_tk.ts b/src/qt/locale/bitcoin_tk.ts
index c081f3687c3..24cc2554a6a 100644
--- a/src/qt/locale/bitcoin_tk.ts
+++ b/src/qt/locale/bitcoin_tk.ts
@@ -286,6 +286,10 @@ Diňe "miras" görnüşli salgylar bilen gol çekmek mümkin.</translation>
         <source>%1 didn't yet exit safely…</source>
         <translation type="unfinished">%1 entek ygtybarly çykmady...</translation>
     </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Möçber</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
@@ -335,16 +339,237 @@ Diňe "miras" görnüşli salgylar bilen gol çekmek mümkin.</translation>
         <source>Settings file could not be read</source>
         <translation type="unfinished">Sazlamalar faýlyny okap bolanok</translation>
     </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Sazlamalar faýlyny ýazdyryp bolanok</translation>
+    </message>
     </context>
 <context>
     <name>BitcoinGUI</name>
+    <message>
+        <source>&amp;Overview</source>
+        <translation type="unfinished">&amp;Umumy syn</translation>
+    </message>
+    <message>
+        <source>Show general overview of wallet</source>
+        <translation type="unfinished">Gapjygyň umumy synyny görkez</translation>
+    </message>
+    <message>
+        <source>&amp;Transactions</source>
+        <translation type="unfinished">&amp;Amallar</translation>
+    </message>
+    <message>
+        <source>Browse transaction history</source>
+        <translation type="unfinished">Amallaryň geçmişine göz aýla</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation type="unfinished">Ç&amp;yk</translation>
+    </message>
+    <message>
+        <source>Quit application</source>
+        <translation type="unfinished">Programmadan çyk</translation>
+    </message>
+    <message>
+        <source>&amp;About %1</source>
+        <translation type="unfinished">%1 &amp;barada</translation>
+    </message>
+    <message>
+        <source>Show information about %1</source>
+        <translation type="unfinished">%1 barada maglumat görkez</translation>
+    </message>
+    <message>
+        <source>About &amp;Qt</source>
+        <translation type="unfinished">&amp;Qt barada</translation>
+    </message>
+    <message>
+        <source>Show information about Qt</source>
+        <translation type="unfinished">Qt barada maglumat görkez</translation>
+    </message>
+    <message>
+        <source>Modify configuration options for %1</source>
+        <translation type="unfinished">%1 üçin konfigurasiýa opsiýalaryny üýtget</translation>
+    </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Taze gapjyk döret</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Kiçelt</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">Gapjyk:</translation>
+    </message>
+    <message>
+        <source>Network activity disabled.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">Tor işleýşi ýapyk.</translation>
+    </message>
+    <message>
+        <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
+        <translation type="unfinished">Proksi &lt;b&gt;işleýär&lt;/b&gt;: %1</translation>
+    </message>
+    <message>
+        <source>Send coins to a Bitcoin address</source>
+        <translation type="unfinished">Bitkoin salgysyna teňňeleri iber</translation>
+    </message>
+    <message>
+        <source>Backup wallet to another location</source>
+        <translation type="unfinished">Gapjygyň ätiýaçlyk nusgasyny başga ýere goý</translation>
+    </message>
+    <message>
+        <source>Change the passphrase used for wallet encryption</source>
+        <translation type="unfinished">Gapjygy şifrlemek üçin ulanylan parol sözlemini üýtget</translation>
+    </message>
+    <message>
+        <source>&amp;Send</source>
+        <translation type="unfinished">&amp;Iber</translation>
+    </message>
+    <message>
+        <source>&amp;Receive</source>
+        <translation type="unfinished">&amp;Kabul edip al</translation>
+    </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;Opsiýalar…</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;Gapjygy şifrle…</translation>
+    </message>
+    <message>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">Gapjygyňa degişli hususy açarlary şifrle</translation>
+    </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;Gapjygyň ätiýaçlyk nusgasyny sakla…</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;Parol sözlemini çalyş...</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">&amp;Habara gol çek…</translation>
+    </message>
+    <message>
+        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
+        <translation type="unfinished">Bitkoin salgylarynyň eýesidigini subut etmek üçin habarlara öz Bitkoin salgylaryň bilen gol çek</translation>
+    </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;Habary tassykla…</translation>
+    </message>
+    <message>
+        <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
+        <translation type="unfinished">Habarlaryň görkezilen Bitkoin salgylary bilen gol çekilendigini kepillendirmek üçin habarlary tassykla</translation>
+    </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">Faýldan BGÇBA &amp;ýükle…</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">&amp;URI aç…</translation>
+    </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">Gapjygy ýap...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">Gapjyk döret...</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">Ähli gapjyklary ýap...</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation type="unfinished">&amp;Faýl</translation>
+    </message>
+    <message>
+        <source>&amp;Settings</source>
+        <translation type="unfinished">&amp;Sazlamalar</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation type="unfinished">&amp;Kömek</translation>
+    </message>
+    <message>
+        <source>Tabs toolbar</source>
+        <translation type="unfinished">Bölümler gurallar paneli</translation>
+    </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">Sözbaşylary sinhron ýagdaýa getirmek (%1%)...</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">Tor bilen sinhronlaşdyrmak...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Diskde bloklar indekslenýär...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Diskde bloklar işlenýär...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Diskde bloklar gaýtadan indekslenýär...</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Deňdeşlere baglanylýar...</translation>
+    </message>
+    <message>
+        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
+        <translation type="unfinished">Tölegleri sora (QR kodlary we bitkoin: URIleri döredýär)</translation>
+    </message>
+    <message>
+        <source>Show the list of used sending addresses and labels</source>
+        <translation type="unfinished">Ulanylan iberilýän salgylaryň we bellikleriň sanawyny görkez</translation>
+    </message>
+    <message>
+        <source>Show the list of used receiving addresses and labels</source>
+        <translation type="unfinished">Ulanylan kabul edip alýan salgylaryň we bellikleriň sanawyny görkez</translation>
+    </message>
+    <message>
+        <source>&amp;Command-line options</source>
+        <translation type="unfinished">&amp;Buýruk setiri opsiýalary</translation>
+    </message>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Amallar geçmişinden %n blok(lar) işlendi.</numerusform>
+            <numerusform>Amallar geçmişinden %n blok(lar) işlendi.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>%1 behind</source>
+        <translation type="unfinished">%1 galdy</translation>
+    </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Tutulýar...</translation>
+    </message>
+    <message>
+        <source>Last received block was generated %1 ago.</source>
+        <translation type="unfinished">Soňky kabul edilen blok %1 öň döredilipdi.</translation>
+    </message>
+    <message>
+        <source>Transactions after this will not yet be visible.</source>
+        <translation type="unfinished">Mundan soňky amallar entek görünmez.</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">Ýalňyşlyk</translation>
+    </message>
     <message>
         <source>Warning</source>
         <translation type="unfinished">Duýduryş</translation>
@@ -365,111 +590,961 @@ Diňe "miras" görnüşli salgylar bilen gol çekmek mümkin.</translation>
         <source>Load PSBT from &amp;clipboard…</source>
         <translation type="unfinished">&amp;alyş-çalyş panelinden BGÇBA ýükle…</translation>
     </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">Bölekleýin gol çekilen bitkoin amalyny alyş-çalyş panelinden ýükle</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">Düwün penjiresi</translation>
+    </message>
+    <message>
+        <source>Open node debugging and diagnostic console</source>
+        <translation type="unfinished">Düwüni zyýansyzlaşdyrma we anyklaýyş konsolyny aç</translation>
+    </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">&amp;Iberilýän salgylar</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">&amp;Kabul edýän salgylar</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">Bitkoin aç: URI</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <translation type="unfinished">Gapjygy aç</translation>
+    </message>
+    <message>
+        <source>Open a wallet</source>
+        <translation type="unfinished">Gapjyk aç</translation>
+    </message>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">Gapjygy ýap</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">Ähli gapjyklary ýap</translation>
+    </message>
+    <message>
+        <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
+        <translation type="unfinished">Mümkin bolan Bitkoin buýruk setiri opsiýalarynyň sanawyny görmek üçin %1 goldaw habaryny görkez</translation>
+    </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">&amp;Sanlaryň üstüni ört</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">Gözden geçir bölüminde sanlaryň üstüni ört</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">deslapky bellenen gapjyk</translation>
+    </message>
+    <message>
+        <source>No wallets available</source>
+        <translation type="unfinished">Elýeterli gapjyk ýok</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;Penjire</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation type="unfinished">Ulalt</translation>
+    </message>
+    <message>
+        <source>Main Window</source>
+        <translation type="unfinished">Esasy penjire</translation>
+    </message>
+    <message>
+        <source>%1 client</source>
+        <translation type="unfinished">%1 müşderi</translation>
+    </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Gizle</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">G&amp;örkez</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Bitkoin toruna %n işjeň arabaglanyşyk.</numerusform>
+            <numerusform>Bitkoin toruna %n işjeň arabaglanyşyk.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Başga hereketler üçin bas.</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">Deňdeşler bölümini görkez</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">Toruň işjeňligini öçür</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">Toruň işjeňligini aç</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">Ýalňyşlyk: %1</translation>
     </message>
-    </context>
-<context>
-    <name>CoinControlDialog</name>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(bellik ýok)</translation>
+        <source>Warning: %1</source>
+        <translation type="unfinished">Duýduryş: %1</translation>
     </message>
-    </context>
-<context>
-    <name>Intro</name>
-    <message numerus="yes">
-        <source>(sufficient to restore backups %n day(s) old)</source>
-        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished">Sene: %1
+</translation>
     </message>
-    </context>
-<context>
-    <name>PeerTableModel</name>
     <message>
-        <source>Address</source>
-        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
-        <translation type="unfinished">Salgy</translation>
+        <source>Amount: %1
+</source>
+        <translation type="unfinished">Möçber: %1
+</translation>
     </message>
-    </context>
-<context>
-    <name>RecentRequestsTableModel</name>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">Bellik</translation>
+        <source>Wallet: %1
+</source>
+        <translation type="unfinished">Gapjyk: %1
+</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(bellik ýok)</translation>
+        <source>Type: %1
+</source>
+        <translation type="unfinished">Görnüş: %1
+</translation>
     </message>
-    </context>
-<context>
-    <name>SendCoinsDialog</name>
-    <message numerus="yes">
-        <source>Estimated to begin confirmation within %n block(s).</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <message>
+        <source>Label: %1
+</source>
+        <translation type="unfinished">Bellik: %1
+</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(bellik ýok)</translation>
+        <source>Address: %1
+</source>
+        <translation type="unfinished">Salgy: %1
+</translation>
+    </message>
+    <message>
+        <source>Sent transaction</source>
+        <translation type="unfinished">Iberilen amal</translation>
+    </message>
+    <message>
+        <source>Incoming transaction</source>
+        <translation type="unfinished">Gelýän amal</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD açar döretmeklik &lt;b&gt;işjeň&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD açar döretmeklik &lt;b&gt;öçük&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">Hususy açar &lt;b&gt;öçük&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+        <translation type="unfinished">Gapjyk &lt;b&gt;şifrlenen&lt;/b&gt; we häzirki wagtda &lt;b&gt;gulpy açyk&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+        <translation type="unfinished">Gapjyk &lt;b&gt;şifrlenen&lt;/b&gt; we häzirki wagtda &lt;b&gt;gulply&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Original message:</source>
+        <translation type="unfinished">Başdaky habar:</translation>
     </message>
 </context>
 <context>
-    <name>TransactionDesc</name>
-    <message numerus="yes">
-        <source>matures in %n more block(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">Möçberleri görkezmek üçin ölçeg birligi. Başga ölçeg birligini saýlamak üçin bas.</translation>
     </message>
-    </context>
+</context>
 <context>
-    <name>TransactionTableModel</name>
+    <name>CoinControlDialog</name>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">Bellik</translation>
+        <source>Coin Selection</source>
+        <translation type="unfinished">Teňňe saýlamak</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(bellik ýok)</translation>
+        <source>Quantity:</source>
+        <translation type="unfinished">Sany:</translation>
     </message>
-    </context>
-<context>
-    <name>TransactionView</name>
     <message>
-        <source>Comma separated file</source>
-        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
-        <translation type="unfinished">Otur bilen aýrylan faýl</translation>
+        <source>Bytes:</source>
+        <translation type="unfinished">Baýtlar:</translation>
     </message>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">Bellik</translation>
+        <source>Amount:</source>
+        <translation type="unfinished">Möçber:</translation>
     </message>
     <message>
-        <source>Address</source>
-        <translation type="unfinished">Salgy</translation>
+        <source>Fee:</source>
+        <translation type="unfinished">Gatanç:</translation>
     </message>
     <message>
-        <source>Exporting Failed</source>
-        <translation type="unfinished">Geçirip bolmady</translation>
+        <source>Dust:</source>
+        <translation type="unfinished">Toz:</translation>
     </message>
-    </context>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">Soňundan gatanç:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">Çalyş:</translation>
+    </message>
+    <message>
+        <source>(un)select all</source>
+        <translation type="unfinished">hemmesini saýla(ma)</translation>
+    </message>
+    <message>
+        <source>Tree mode</source>
+        <translation type="unfinished">Agaç tertibi</translation>
+    </message>
+    <message>
+        <source>List mode</source>
+        <translation type="unfinished">Sanaw tertibi</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Möçber</translation>
+    </message>
+    <message>
+        <source>Received with label</source>
+        <translation type="unfinished">Bellik bilen kabul edildi</translation>
+    </message>
+    <message>
+        <source>Received with address</source>
+        <translation type="unfinished">Salgy bilen kabul edildi</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Sene</translation>
+    </message>
+    <message>
+        <source>Confirmations</source>
+        <translation type="unfinished">Tassyklamalar</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">Tassyklandy</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">Möçberi göçür</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Salgyny göçür</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Belligi göçür</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">&amp;Möçberi göçür</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Amal &amp;IDsini we çykyş indeksini göçür</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">Ulanylmadygyny g&amp;ulpla</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">Ulanylmadygynyň &amp;gulpuny aç</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">Sany göçür</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Gatanjy göçür</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Soňundan gatanjy göçür</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">Baýtlary göçür</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">Tozy göçür</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">Gaýtargyny göçür</translation>
+    </message>
+    <message>
+        <source>(%1 locked)</source>
+        <translation type="unfinished">(%1 gulply)</translation>
+    </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">hawa</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation type="unfinished">ýok</translation>
+    </message>
+    <message>
+        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
+        <translation type="unfinished">Islendik kabul ediji häzirki toz çäginden has kiçi möçberi kabul edip alsa, bu bellik gyzyla öwrülýär.</translation>
+    </message>
+    <message>
+        <source>Can vary +/- %1 satoshi(s) per input.</source>
+        <translation type="unfinished">Her giriş üçin +/- %1 satosi üýtgäp biler.</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+    <message>
+        <source>change from %1 (%2)</source>
+        <translation type="unfinished">%1-den gaýtargy (%2)</translation>
+    </message>
+    <message>
+        <source>(change)</source>
+        <translation type="unfinished">(gaýtargy)</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletActivity</name>
+    <message>
+        <source>Create Wallet</source>
+        <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
+        <translation type="unfinished">Gapjyk döret</translation>
+    </message>
+    <message>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">Gapjyk döredilýär &lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+    <message>
+        <source>Create wallet failed</source>
+        <translation type="unfinished">Gapjyk döredip bolmady</translation>
+    </message>
+    <message>
+        <source>Create wallet warning</source>
+        <translation type="unfinished">Gapjyk döretmek duýduryşy</translation>
+    </message>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Gol çekenleriň sanawyny görkezip bolanok</translation>
+    </message>
+</context>
+<context>
+    <name>OpenWalletActivity</name>
+    <message>
+        <source>Open wallet failed</source>
+        <translation type="unfinished">Gapjyk açyp bolmady</translation>
+    </message>
+    <message>
+        <source>Open wallet warning</source>
+        <translation type="unfinished">Gapjyk açmak duýduryşy</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">deslapky bellenen gapjyk</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
+        <translation type="unfinished">Gapjyk aç</translation>
+    </message>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">&lt;b&gt;%1&lt;/b&gt; gapjyk açylýar...</translation>
+    </message>
+</context>
+<context>
+    <name>WalletController</name>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">Gapjygy ýap</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
+        <translation type="unfinished">&lt;i&gt;%1&lt;/i&gt; gapjygy ýapmak isleýäniňiz çynmy?</translation>
+    </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">Kesip gysgaltmaklyk işjeň bolsa, aşa uzak wagtlap gapjygyň ýapylmagy tutuş zynjyryň gaýtadan utgaşmak zerurlygyna getirip biler.</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">Ähli gapjyklary ýap</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">Ähli gapjyklary ýapmak isleýäniňiz çynmy?</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletDialog</name>
+    <message>
+        <source>Create Wallet</source>
+        <translation type="unfinished">Gapjyk döret</translation>
+    </message>
+    <message>
+        <source>Wallet Name</source>
+        <translation type="unfinished">Gapjygyň ady</translation>
+    </message>
+    <message>
+        <source>Wallet</source>
+        <translation type="unfinished">Gapjyk</translation>
+    </message>
+    <message>
+        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
+        <translation type="unfinished">Gapjygy şifrle. Gapjyk siziň saýlan parol sözlemi bilen şifrlener.</translation>
+    </message>
+    <message>
+        <source>Encrypt Wallet</source>
+        <translation type="unfinished">Gapjygy şifrle</translation>
+    </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">Giňişleýin opsiýalar</translation>
+    </message>
+    <message>
+        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
+        <translation type="unfinished">Bu gapjyk üçin hususy açarlary öçür. Hususy açarlary öçük gapjyklaryň hiçhili hususy açary bolmaz we HD esasy açary ýa-da import edilen hususy açary bolmaz. Diňe gözden geçirip bolýan gapjyklar üçin iň göwnejaýydyr.</translation>
+    </message>
+    <message>
+        <source>Disable Private Keys</source>
+        <translation type="unfinished">Hususy açarlary öçür</translation>
+    </message>
+    <message>
+        <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
+        <translation type="unfinished">Boş gapjyk emele getir. Boş gapjyklaryň başda hususy açary ýa-da skripti bolmaýar. Soňra hususy açarlar ýa-da salgylar import edilip bilner ýa-da HD esasy açar bellenip bilner.</translation>
+    </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">Boş gapjyk emele getir</translation>
+    </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">scriptPubKey dolandyryşy üçin beýan edijileri ulan</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">Beýan ediji gapjyk</translation>
+    </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Enjam gapjygy ýaly daşyndan gol çekilýän enjamy ulan. Ilki bilen gapjygyň ileri tutmalarynda daşyndan gol çekiji skriptini sazla.</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Daşyndan gol çekiji</translation>
+    </message>
+    <message>
+        <source>Create</source>
+        <translation type="unfinished">Döret</translation>
+    </message>
+    <message>
+        <source>Compiled without sqlite support (required for descriptor wallets)</source>
+        <translation type="unfinished">Sqlite goldawsyz (beýan ediji gapjyklar üçin gerek) düzüldi</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Daşyndan gol çekmek üçin goldawsyz (daşyndan gol çekmek üçin gerek) düzüldi</translation>
+    </message>
+</context>
+<context>
+    <name>EditAddressDialog</name>
+    <message>
+        <source>Edit Address</source>
+        <translation type="unfinished">Salgyny rejele</translation>
+    </message>
+    <message>
+        <source>&amp;Label</source>
+        <translation type="unfinished">&amp;Bellik</translation>
+    </message>
+    <message>
+        <source>The label associated with this address list entry</source>
+        <translation type="unfinished">Bu salgy sanawyndaky ýazgy bilen baglanyşykly bellik</translation>
+    </message>
+    <message>
+        <source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
+        <translation type="unfinished">Bu salgy sanawyndaky ýazgy bilen baglanyşykly salgy. Bu diňe iberýän salgylar üçin üýtgedilip bilner.</translation>
+    </message>
+    <message>
+        <source>&amp;Address</source>
+        <translation type="unfinished">&amp;Salgy</translation>
+    </message>
+    <message>
+        <source>New sending address</source>
+        <translation type="unfinished">Täze iberýän salgy</translation>
+    </message>
+    <message>
+        <source>Edit receiving address</source>
+        <translation type="unfinished">Kabul edýän salgyny rejele</translation>
+    </message>
+    <message>
+        <source>Edit sending address</source>
+        <translation type="unfinished">Iberýän salgyny rejele</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is not a valid Bitcoin address.</source>
+        <translation type="unfinished">Ýazylan salgy %1 ýaly Bitkoin salgysy ýok.</translation>
+    </message>
+    <message>
+        <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source>
+        <translation type="unfinished">%1 salgysy %2 bellikli kabul edýän salgy hökmünde eýýäm bar we şonuň üçin ony iberýän salgy hökmünde goşup bolanok.</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is already in the address book with label "%2".</source>
+        <translation type="unfinished">Ýazylan %1 salgysy salgylar kitabynda %2 belligi astynda eýýäm bar.</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">Gapjygyň gulpuny açyp bolmady.</translation>
+    </message>
+    <message>
+        <source>New key generation failed.</source>
+        <translation type="unfinished">Täze açar döredip bolmady.</translation>
+    </message>
+</context>
+<context>
+    <name>FreespaceChecker</name>
+    <message>
+        <source>A new data directory will be created.</source>
+        <translation type="unfinished">Täze maglumat sanawy dörediler. </translation>
+    </message>
+    <message>
+        <source>name</source>
+        <translation type="unfinished">at</translation>
+    </message>
+    <message>
+        <source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
+        <translation type="unfinished">Sanaw eýýäm bar. Bu ýerde täze sanaw döretmekçi bolsaňyz, %1 goşuň.</translation>
+    </message>
+    <message>
+        <source>Path already exists, and is not a directory.</source>
+        <translation type="unfinished">Ýol eýýäm bar we ol sanaw däldir.</translation>
+    </message>
+    <message>
+        <source>Cannot create data directory here.</source>
+        <translation type="unfinished">Bu ýerde maglumat sanawyny döredip bolanok.</translation>
+    </message>
+</context>
+<context>
+    <name>Intro</name>
+    <message>
+        <source>Bitcoin</source>
+        <translation type="unfinished">Bitkoin</translation>
+    </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(Zerur bolan %1 GB-dan)</translation>
+    </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(Doly zynjyr üçin %1 GB zerur)</translation>
+    </message>
+    <message>
+        <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
+        <translation type="unfinished">Bu sanawda azyndan %1 GB maglumat saklanar we ol wagtyň geçmegi bilen köpeler.</translation>
+    </message>
+    <message>
+        <source>Approximately %1 GB of data will be stored in this directory.</source>
+        <translation type="unfinished">Bu sanawda takmynan %1 GB maglumat saklanar.</translation>
+    </message>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>%1 will download and store a copy of the Bitcoin block chain.</source>
+        <translation type="unfinished">%1 Bitkoin blok zynjyrynyň nusgasyny ýükläp alar we göçürer.</translation>
+    </message>
+    <message>
+        <source>The wallet will also be stored in this directory.</source>
+        <translation type="unfinished">Gapjyk hem bu sanawa saklanar.</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" cannot be created.</source>
+        <translation type="unfinished">Ýalňyşlyk: Görkezilen %1 maglumat sanawyny döredip bolanok.</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">Ýalňyşlyk</translation>
+    </message>
+    <message>
+        <source>Welcome</source>
+        <translation type="unfinished">Hoş geldiňiz</translation>
+    </message>
+    <message>
+        <source>Welcome to %1.</source>
+        <translation type="unfinished">%1-a hoş geldiňiz.</translation>
+    </message>
+    <message>
+        <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source>
+        <translation type="unfinished">Bu programma ilkinji gezek başlandygy sebäpli, %1-nyň öz maglumatlaryny nirä saklajakdygyny saýlap bilersiň.</translation>
+    </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">Blok zynjyrynyň saklanmagyny çäklendir</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
+        <translation type="unfinished">Bu sazlamany yzyna gaýtarmaklyk tutuş blok zynjyryny gaýtadan ýükläp almak zerur. Ilki bilen tutuş zynjyry ýükläp almak we soň ony kesmek has çalt bolar. Käbir giňişleýin aýratynlyklary öçürer.</translation>
+    </message>
+    <message>
+        <source> GB</source>
+        <translation type="unfinished">GB</translation>
+    </message>
+    <message>
+        <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
+        <translation type="unfinished">Bu başdaky utgaşdyrma örän çylşyrymlydyr we kompýuteriňiziň ozal üns berilmedik enjam näsazlyklaryny ýüze çykaryp biler. Her sapar %1 işledeniňizde ol säginen ýerinden ýükläp almaga dowam eder.</translation>
+    </message>
+    <message>
+        <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
+        <translation type="unfinished">Blok zynjyrynyň saklanyşyny çäklendirmegi (kesip aýyrmagy) saýlan bolsaňyz, geçmiş maglumatlary ýene-de ýüklenip alynmaly we işlenmelidir, emma diskiňiziň ulanylyşyny azaltmak üçin soňundan pozular. </translation>
+    </message>
+    <message>
+        <source>Use the default data directory</source>
+        <translation type="unfinished">Deslapky bellenen maglumat sanawyny ulan</translation>
+    </message>
+    <message>
+        <source>Use a custom data directory:</source>
+        <translation type="unfinished">Aýratyn maglumat sanawyny ulan:</translation>
+    </message>
+</context>
+<context>
+    <name>HelpMessageDialog</name>
+    <message>
+        <source>version</source>
+        <translation type="unfinished">wersiýa</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation type="unfinished">%1 barada</translation>
+    </message>
+    <message>
+        <source>Command-line options</source>
+        <translation type="unfinished">Buýruk setiri opsiýalary</translation>
+    </message>
+</context>
+<context>
+    <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1 ýapylýar...</translation>
+    </message>
+    <message>
+        <source>Do not shut down the computer until this window disappears.</source>
+        <translation type="unfinished">Bu penjire ýitýänçä kompýuteri ýapmaň.</translation>
+    </message>
+</context>
+<context>
+    <name>ModalOverlay</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">Forma</translation>
+    </message>
+    <message>
+        <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
+        <translation type="unfinished">Soňky geleşikler entek görünmän biler, şonuň üçin gapjygyňyzdaky galyndy nädogry bolup biler. Bu maglumat aşakda beýan edilişi ýaly gapjygyňyz bitkoin tory bilen utgaşmagy tamamlanda dogry bolar.</translation>
+    </message>
+    <message>
+        <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source>
+        <translation type="unfinished">Entek görkezilmedik geleşikleriň täsirine düşen bitkoinleri sarp etmek synanyşygy ulgam tarapyndan kabul edilmez.</translation>
+    </message>
+    </context>
+<context>
+    <name>OptionsDialog</name>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;Penjire</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Daşyndan gol çekmek üçin goldawsyz (daşyndan gol çekmek üçin gerek) düzüldi</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">Ýalňyşlyk</translation>
+    </message>
+    </context>
+<context>
+    <name>OverviewPage</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">Forma</translation>
+    </message>
+    </context>
+<context>
+    <name>PeerTableModel</name>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">Salgy</translation>
+    </message>
+    </context>
+<context>
+    <name>RPCConsole</name>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">Düwün penjiresi</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;Salgyny göçür</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveCoinsDialog</name>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Salgyny göçür</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Belligi göçür</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">&amp;Möçberi göçür</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">Gapjygyň gulpuny açyp bolmady.</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">Möçber:</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">Gapjyk:</translation>
+    </message>
+    </context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Sene</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Bellik</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">Mukdar:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">Baýtlar:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">Möçber:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">Töleg:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">Soňundan gatanç:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">Çalyş:</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">Toz:</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">Sany göçür</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">Möçberi göçür</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Gatanjy göçür</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Soňundan gatanjy göçür</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">Baýtlary göçür</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">Tozy göçür</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">Gaýtargyny göçür</translation>
+    </message>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDesc</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Sene</translation>
+    </message>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Möçber</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Sene</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Bellik</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(bellik ýok)</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Salgyny göçür</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Belligi göçür</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">&amp;Möçberi göçür</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">Amalyň &amp;ID-sini göçür</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Otur bilen aýrylan faýl</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">Tassyklandy</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Sene</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Bellik</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">Salgy</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">Geçirip bolmady</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletFrame</name>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Taze gapjyk döret</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">Ýalňyşlyk</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletModel</name>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">deslapky bellenen gapjyk</translation>
+    </message>
+</context>
 <context>
     <name>WalletView</name>
     <message>
diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts
index c4c7d290a6a..9ad308aa70c 100644
--- a/src/qt/locale/bitcoin_tr.ts
+++ b/src/qt/locale/bitcoin_tr.ts
@@ -1522,6 +1522,10 @@ Cüzdan kilidini aç.</translation>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB boş alan mevcut.</translation>
+    </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Bu dizinde en az %1 GB veri depolanacak ve zamanla büyüyecek.</translation>
diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts
index c1053370a20..f6335fd16c5 100644
--- a/src/qt/locale/bitcoin_uk.ts
+++ b/src/qt/locale/bitcoin_uk.ts
@@ -656,6 +656,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
         <translation type="unfinished">Оновлення -txindex, що було почате попередньою версією, не вдалося завершити. Перезапустить попередню версію або виконайте повний -reindex.</translation>
     </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Не вдалося встановити визначені з'єднання і одночасно використовувати addrman для встановлення вихідних з'єднань.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Помилка завантаження %s: Завантаження гаманця зі зовнішнім підписувачем, але скомпільовано без підтримки зовнішнього підписування</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Налаштування конфігурації %s застосовується лише для мережі %s у розділі [%s].</translation>
@@ -850,7 +858,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Invalid amount for -paytxfee=&lt;amount&gt;: '%s' (must be at least %s)</source>
-        <translation type="unfinished">Вказано некоректну суму для параметру -paytxfee: «%s» (повинно бути щонайменше %s)</translation>
+        <translation type="unfinished">Вказано некоректну суму для параметра -paytxfee=&lt;amount&gt;: '%s' (повинно бути щонайменше %s)</translation>
     </message>
     <message>
         <source>Invalid netmask specified in -whitelist: '%s'</source>
@@ -1842,12 +1850,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Compiled without sqlite support (required for descriptor wallets)</source>
-        <translation type="unfinished">Зкомпільовано без підтримки sqlite (потрібно для гаманців дескрипторів)</translation>
+        <translation type="unfinished">Скомпільовано без підтримки sqlite (потрібно для гаманців дескрипторів)</translation>
     </message>
     <message>
         <source>Compiled without external signing support (required for external signing)</source>
         <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
-        <translation type="unfinished">Скомпільовано без підтримки зовнішнього підписування</translation>
+        <translation type="unfinished">Скомпільовано без підтримки зовнішнього підписування (потрібно для зовнішнього підписування)</translation>
     </message>
 </context>
 <context>
@@ -2402,7 +2410,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message>
         <source>Compiled without external signing support (required for external signing)</source>
         <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
-        <translation type="unfinished">Скомпільовано без підтримки зовнішнього підписування</translation>
+        <translation type="unfinished">Скомпільовано без підтримки зовнішнього підписування (потрібно для зовнішнього підписування)</translation>
     </message>
     <message>
         <source>default</source>
diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts
index 0d9895fcee0..f6182230e30 100644
--- a/src/qt/locale/bitcoin_uz@Cyrl.ts
+++ b/src/qt/locale/bitcoin_uz@Cyrl.ts
@@ -69,6 +69,12 @@
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
         <translation type="unfinished">Улар тўловларни жўнатиш учун сизнинг Bitcoin манзилларингиз. Доимо тангаларни жўнатишдан олдин сумма ва қабул қилувчи манзилни текшириб кўринг. </translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Улар тўловларни қабул қилиш учун сизнинг Bitcoin манзилларингиз. Янги манзилларни яратиш учун қабул қилиш варағидаги "Янги қабул қилиш манзилини яратиш" устига босинг. 
+Фақат 'legacy' туридаги манзиллар билан ҳисобга кириш мумкин.</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">Манзилдан &amp;нусха олиш</translation>
@@ -85,6 +91,11 @@
         <source>Export Address List</source>
         <translation type="unfinished">Манзил рўйхатини экспорт қилиш</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Вергул билан ажратилган файл</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -128,6 +139,10 @@
         <source>Repeat new passphrase</source>
         <translation type="unfinished">Янги махфий сузни такрорланг</translation>
     </message>
+    <message>
+        <source>Show passphrase</source>
+        <translation type="unfinished">Махфий сўзни кўрсатиш</translation>
+    </message>
     <message>
         <source>Encrypt wallet</source>
         <translation type="unfinished">Ҳамённи қодлаш</translation>
@@ -160,6 +175,18 @@
         <source>Wallet encrypted</source>
         <translation type="unfinished">Ҳамёни кодланган</translation>
     </message>
+    <message>
+        <source>Wallet to be encrypted</source>
+        <translation type="unfinished">Шифрланадиган ҳамён</translation>
+    </message>
+    <message>
+        <source>Your wallet is about to be encrypted. </source>
+        <translation type="unfinished">Ҳамёнингиз шифрланиш арафасида.</translation>
+    </message>
+    <message>
+        <source>Your wallet is now encrypted. </source>
+        <translation type="unfinished">Ҳамёнингиз энди шифрланади.</translation>
+    </message>
     <message>
         <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
         <translation type="unfinished">МУҲИМ: Сиз қилган олдинги ҳамён файли заҳиралари янги яратилган, кодланган ҳамён файли билан алмаштирилиши керак. Хавфсизлик сабабларига кўра олдинги кодланган ҳамён файли заҳираси янги кодланган ҳамёндан фойдаланишингиз билан яроқсиз ҳолга келади.</translation>
@@ -1637,6 +1664,11 @@
         <source>Export Transaction History</source>
         <translation type="unfinished">Ўтказмалар тарихини экспорт қилиш</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Вергул билан ажратилган файл</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">Тасдиқланди</translation>
diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts
index 8dd11d884f0..6d9ac3e8959 100644
--- a/src/qt/locale/bitcoin_vi.ts
+++ b/src/qt/locale/bitcoin_vi.ts
@@ -150,10 +150,6 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Change passphrase</source>
         <translation type="unfinished">Đổi cụm mật khẩu</translation>
     </message>
-    <message>
-        <source>Confirm wallet encryption</source>
-        <translation type="unfinished">Xác nhận mã hóa ví</translation>
-    </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
         <translation type="unfinished">Cảnh báo: Nếu bạn mã hóa ví và mất cụm mật khẩu, bạn sẽ &lt;b&gt;MẤT TẤT CẢ BITCOIN&lt;/b&gt;!</translation>
diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts
index c4f84df3591..d9427cbfdf4 100644
--- a/src/qt/locale/bitcoin_zh_CN.ts
+++ b/src/qt/locale/bitcoin_zh_CN.ts
@@ -264,6 +264,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">要将设置重置为默认值，还是要放弃更改并中止？</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">出现致命错误。请检查设置文件是否可写，或者尝试带 -nosettings 参数运行。</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">错误:指定的数据目录“%1”不存在。</translation>
@@ -366,31 +376,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n秒</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n分钟</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n小时</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n天</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n周</numerusform>
         </translation>
     </message>
     <message>
@@ -400,7 +410,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n年</numerusform>
         </translation>
     </message>
     <message>
@@ -410,6 +420,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">无法读取设置文件</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">无法写入设置文件</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">%s 开发者</translation>
@@ -442,6 +460,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">读取 %s 时发生错误！所有的密钥都可以正确读取，但是交易记录或地址簿数据可能已经丢失或出错。</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">读取%s出错！交易数据可能丢失或有误。重新扫描钱包中。</translation>
+    </message>
     <message>
         <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
         <translation type="unfinished">错误: 转储文件格式不正确。得到是"%s"，而预期本应得到的是 "format"。</translation>
@@ -474,9 +496,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">参数 -maxtxfee=&lt;amount&gt;: '%s' 指定了非法的金额 (手续费必须至少达到最小转发费率(minrelay fee) %s 以避免交易卡着发不出去)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">无效或损坏的peers.dat (%s)。如果你确信这是一个bug，请反馈到%s。作为变通办法，你可以把现有文件 (%s) 移开(重命名、移动或删除)，这样就可以在下次启动时创建一个新文件了。</translation>
+    </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
-        <translation type="unfinished">提供多个洋葱路由绑定地址。对自动创建的洋葱服务用%s</translation>
+        <translation type="unfinished">提供了多个 onion (洋葱路由)绑定地址。将对自动创建的Tor onion服务使用%s。</translation>
     </message>
     <message>
         <source>No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
@@ -514,6 +540,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">区块数据库包含未来的交易，这可能是由本机错误的日期时间引起。若确认本机日期时间正确，请重新建立区块数据库。</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">区块索引数据库含有历史遗留的 'txindex' 。可以运行完整的 -reindex 来清理被占用的磁盘空间；也可以忽略这个错误。这个错误消息将不会再次显示。</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">这笔交易在扣除手续费后的金额太小，以至于无法送出</translation>
@@ -524,7 +554,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
-        <translation type="unfinished">这是测试用的预发布版本 - 请谨慎使用 - 不要用来挖矿，或者在正式商用环境下使用</translation>
+        <translation type="unfinished">这是测试用的预发布版本 - 请谨慎使用 - 不要在挖矿或正式商用环境下使用</translation>
     </message>
     <message>
         <source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
@@ -586,6 +616,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">无法解析 - %s 地址: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">在 -dnsseed 被设为 false 时无法将 -forcednsseed 设为 true 。</translation>
+    </message>
     <message>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">没有启用-blockfilterindex，就不能启用-peerblockfilters。</translation>
@@ -594,6 +628,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">不能写入到数据目录'%s'；请检查文件权限。</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">无法完成由之前版本启动的 -txindex 升级。请用之前的版本重新启动，或者进行一次完整的 -reindex 。</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">在使用地址管理器(addrman)寻找出站连接时，无法同时提供特定的连接。</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">加载%s时出错: 编译时未启用外部签名器支持，却仍然试图加载外部签名器钱包</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">对 %s 的配置设置只对 %s 网络生效，如果它位于配置的 [%s] 章节的话。</translation>
@@ -750,6 +796,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">初始化完整性检查失败。%s 即将关闭。</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">找不到交易输入项，可能已经被花掉了</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">金额不足</translation>
@@ -806,10 +856,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Loading wallet…</source>
         <translation type="unfinished">加载钱包...</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">找不到金额</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">找不到用于估计交易大小的解答数据</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">-whitebind: '%s' 需要指定一个端口</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">没有可用的地址</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">未指定代理服务器。请使用 -proxy=&lt;ip&gt; 或 -proxy=&lt;ip:port&gt; 。</translation>
@@ -926,6 +988,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">交易金额不不可为负数</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">交易找零输出项编号超出范围</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">此交易在内存池中的存在过长的链条</translation>
@@ -934,6 +1000,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">交易必须包含至少一个收款人</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">交易需要一个找零地址，但是我们无法生成它。</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">交易过大</translation>
@@ -962,6 +1032,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to open %s for writing</source>
         <translation type="unfinished">无法打开%s用于写入</translation>
     </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">无法解析 -maxuploadtarget: '%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">无法启动HTTP服务，查看日志获取更多信息</translation>
@@ -1061,6 +1135,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create a new wallet</source>
         <translation type="unfinished">创建一个新的钱包</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">最小化(&amp;M)</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">钱包:</translation>
@@ -1209,7 +1287,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>已处理%n个区块的交易历史。</numerusform>
         </translation>
     </message>
     <message>
@@ -1248,6 +1326,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">加载部分签名比特币交易（PSBT）</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">从剪贴板加载PSBT(&amp;C)...</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">从剪贴板中加载部分签名比特币交易（PSBT）</translation>
@@ -1324,11 +1406,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 客户端</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">隐藏(&amp;H)</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">显示(&amp;H)</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n 条到比特币网络的活动连接。</numerusform>
         </translation>
     </message>
     <message>
@@ -1521,6 +1611,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">复制金额(&amp;A)</translation>
     </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">复制交易&amp;ID和输出序号</translation>
+    </message>
     <message>
         <source>L&amp;ock unspent</source>
         <translation type="unfinished">锁定未花费(&amp;O)</translation>
@@ -1611,6 +1705,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">无法列出签名器</translation>
     </message>
 </context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">加载钱包</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">加载钱包...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1815,6 +1922,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Bitcoin</source>
         <translation type="unfinished">比特币</translation>
     </message>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">可用空间 %1 GB</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(需要 %1 GB)</translation>
@@ -1835,7 +1946,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>(足以恢复 %n 天之内的备份)</numerusform>
         </translation>
     </message>
     <message>
@@ -2058,14 +2169,44 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">警告:还原此设置需要重新下载整个区块链。</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">数据库缓存的最大大小。加大缓存有助于加快同步，但对于大多数使用场景来说，继续加大后收效会越来越不明显。降低缓存大小将会减小内存使用量。内存池中尚未被使用的那部分内存也会被共享用于这里的数据库缓存。</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">设置脚本验证线程的数量。负值则表示你想要保留给系统的核心数量。</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = 自动, &lt;0 = 保持指定数量的CPU核心空闲)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">这允许作为用户的你或第三方工具通过命令行和JSON-RPC命令行与节点通信。</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">启用R&amp;PC服务器</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">钱包(&amp;A)</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">是否要默认从金额中减去手续费。</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">默认从金额中减去交易手续费(&amp;F)</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">专家</translation>
@@ -2082,6 +2223,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">动用尚未确认的找零资金(&amp;S)</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">启用&amp;PSBT控件</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">是否要显示PSBT控件</translation>
+    </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
         <translation type="unfinished">外部签名器(例如硬件钱包)</translation>
@@ -2186,6 +2337,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">选择显示及发送比特币时使用的最小单位。</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">这个第三方网址（比如区块浏览器）会出现在交易选项卡的右键菜单中。 网址中的%s代表交易哈希。多个网址需要用竖线 | 相互分隔。</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">第三方交易网址(&amp;T)</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">是否显示手动选币功能。</translation>
@@ -2257,6 +2416,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">配置文件可以用来设置高级选项。配置文件会覆盖设置界面窗口中的选项。此外，命令行会覆盖配置文件指定的选项。</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">继续</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">取消</translation>
@@ -2391,6 +2554,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">签名交易失败: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">钱包已锁定，无法签名交易输入项。</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">没有交易输入项可供签名了。</translation>
@@ -2464,6 +2631,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">交易仍然需要签名。</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(但没有加载钱包。)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(但这个钱包不能签名交易)</translation>
@@ -2715,6 +2886,10 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>Synced Blocks</source>
         <translation type="unfinished">已同步区块</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">最近交易</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">映射到的自治系统，被用来多样化选择节点</translation>
@@ -2723,6 +2898,33 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>Mapped AS</source>
         <translation type="unfinished">映射到的AS</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">是否把地址转发给这个节点。</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">地址转发</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">除了因为受到频率限制而被丢弃的余下所有已处理地址总数。</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">已处理地址</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">因为受到频率限制而被丢弃的地址总数。</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">被频率限制丢弃的地址</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">用户代理</translation>
@@ -2931,6 +3133,11 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>1 &amp;year</source>
         <translation type="unfinished">1 年(&amp;Y)</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">复制IP/网络掩码(&amp;C)</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">解封(&amp;U)</translation>
@@ -3459,6 +3666,16 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">请务必仔细检查您的交易请求。这会产生一个部分签名比特币交易(PSBT)，可以把保存下来或复制出去，然后就可以对它进行签名，比如用离线%1钱包，或是用兼容PSBT的硬件钱包。</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">要创建这笔交易吗？</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">请务必仔细检查您的交易。你可以创建并发送这笔交易；也可以创建一个“部分签名比特币交易(PSBT)”，它可以被保存下来或被复制出去，然后就可以对它进行签名，比如用离线%1钱包，或是用兼容PSBT的硬件钱包。</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3519,7 +3736,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>预计可在%n个区块内开始确认。</numerusform>
         </translation>
     </message>
     <message>
@@ -3778,7 +3995,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>(press q to shutdown and continue later)</source>
         <translation type="unfinished">(按q退出并在以后继续)</translation>
     </message>
-    </context>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">按q键关闭并退出</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -3856,7 +4077,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>还差 %n 个区块才能成熟</numerusform>
         </translation>
     </message>
     <message>
@@ -4152,6 +4373,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>&amp;Edit address label</source>
         <translation type="unfinished">编辑地址标签(&amp;E)</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">在%1中显示</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">导出交易历史</translation>
diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts
index 229e1ce8ce1..3154b58d909 100644
--- a/src/qt/locale/bitcoin_zh_TW.ts
+++ b/src/qt/locale/bitcoin_zh_TW.ts
@@ -267,6 +267,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Enter a Bitcoin address (e.g. %1)</source>
         <translation type="unfinished">輸入 比特幣地址 (比如說 %1)</translation>
     </message>
+    <message>
+        <source>Unroutable</source>
+        <translation type="unfinished">不可路由</translation>
+    </message>
     <message>
         <source>Inbound</source>
         <extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
@@ -832,6 +836,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">將錢包中之密鑰加密</translation>
     </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;备用钱包...</translation>
+    </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
         <translation type="unfinished">用比特幣地址簽名訊息來證明位址是你的</translation>
@@ -840,6 +848,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">驗證訊息是用來確定訊息是用指定的比特幣地址簽名的</translation>
     </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">关钱包...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">创建钱包...</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">关所有钱包...</translation>
+    </message>
     <message>
         <source>&amp;File</source>
         <translation type="unfinished">&amp;檔案</translation>
@@ -856,6 +876,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Tabs toolbar</source>
         <translation type="unfinished">分頁工具列</translation>
     </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">连到同行...</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">要求付款(產生 QR Code 和 bitcoin 付款協議的資源識別碼: URI)</translation>
@@ -882,6 +906,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 behind</source>
         <translation type="unfinished">落後 %1</translation>
     </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">赶上...</translation>
+    </message>
     <message>
         <source>Last received block was generated %1 ago.</source>
         <translation type="unfinished">最近收到的區塊是在 %1 以前生出來的。</translation>
@@ -986,6 +1014,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 客戶端</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;躲</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -1151,6 +1183,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy amount</source>
         <translation type="unfinished">複製金額</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;复制地址</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">复制和标签</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">复制和数量</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">複製數目</translation>
@@ -1502,6 +1546,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Number of blocks left</source>
         <translation type="unfinished">剩餘區塊數</translation>
     </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">不明...</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">计算...</translation>
+    </message>
     <message>
         <source>Last block time</source>
         <translation type="unfinished">最近區塊時間</translation>
@@ -1763,6 +1815,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">設定檔可以用來指定進階的使用選項，並且會覆蓋掉圖形介面的設定。不過，命令列的選項也會覆蓋掉設定檔中的選項。</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">继续</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">取消</translation>
@@ -1881,6 +1937,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy to Clipboard</source>
         <translation type="unfinished">複製到剪貼簿</translation>
     </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">拯救...</translation>
+    </message>
     <message>
         <source>Close</source>
         <translation type="unfinished">關閉</translation>
@@ -1989,6 +2049,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Title of Peers Table column which indicates the current latency of the connection with the peer.</extracomment>
         <translation type="unfinished">Ping  時間</translation>
     </message>
+    <message>
+        <source>Peer</source>
+        <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
+        <translation type="unfinished">同行</translation>
+    </message>
     <message>
         <source>Direction</source>
         <extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
@@ -2275,6 +2340,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Out:</source>
         <translation type="unfinished">去:</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;复制地址</translation>
+    </message>
     <message>
         <source>&amp;Disconnect</source>
         <translation type="unfinished">斷線(&amp;D)</translation>
@@ -2410,6 +2480,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;URI</source>
         <translation type="unfinished">複製 &amp;URI</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;复制地址</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">复制和标签</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">复制和数量</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">沒辦法把錢包解鎖。</translation>
@@ -3336,6 +3418,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Min amount</source>
         <translation type="unfinished">最小金額</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;复制地址</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">复制和标签</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">复制和数量</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">匯出交易記錄</translation>

From e181e94e8663b47e0047fdf88f054b1816fc5189 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 31 Mar 2022 16:07:56 +0200
Subject: [PATCH 038/187] doc: Update manual pages for 23.0rc3

Tree-SHA512: 5350255e4260b85b7f294e980f9c47fb0aa8370965711411e37c16702cd3eee010ea83c2135b1e4fe6241402b9b1b478bc7f6a181f3e6da2c261a024b45aa8ae
---
 doc/man/bitcoin-cli.1    |  8 ++++----
 doc/man/bitcoin-qt.1     | 23 ++++++++++++-----------
 doc/man/bitcoin-tx.1     |  8 ++++----
 doc/man/bitcoin-util.1   |  8 ++++----
 doc/man/bitcoin-wallet.1 |  8 ++++----
 doc/man/bitcoind.1       | 23 ++++++++++++-----------
 6 files changed, 40 insertions(+), 38 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index 2557a13f981..2fde83de21f 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-CLI "1" "March 2022" "bitcoin-cli v23.0.0rc2" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
+.TH BITCOIN-CLI "1" "March 2022" "bitcoin-cli v23.0.0rc3" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc2
+bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc3
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc2
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.0.0rc2
+Bitcoin Core RPC client version v23.0.0rc3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index b5000e900bb..eccb19443ce 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-QT "1" "March 2022" "bitcoin-qt v23.0.0rc2" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
+.TH BITCOIN-QT "1" "March 2022" "bitcoin-qt v23.0.0rc3" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc2
+bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc3
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc2
+Bitcoin Core version v23.0.0rc3
 .SH OPTIONS
 .HP
 \-?
@@ -220,8 +220,9 @@ signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
 .HP
 \fB\-cjdnsreachable\fR
 .IP
-If set then this host is configured for CJDNS (connecting to fc00::/8
-addresses would lead us to the CJDNS network) (default: 0)
+If set, then this host is configured for CJDNS (connecting to fc00::/8
+addresses would lead us to the CJDNS network, see doc/cjdns.md)
+(default: 0)
 .HP
 \fB\-connect=\fR<ip>
 .IP
@@ -295,8 +296,8 @@ Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
 \fB\-maxtimeadjustment\fR
 .IP
 Maximum allowed median peer time offset adjustment. Local perspective of
-time may be influenced by peers forward or backward by this
-amount. (default: 4200 seconds)
+time may be influenced by outbound peers forward or backward by
+this amount (default: 4200 seconds).
 .HP
 \fB\-maxuploadtarget=\fR<n>
 .IP
@@ -322,9 +323,9 @@ Use separate SOCKS5 proxy to reach peers via Tor onion services, set
 .HP
 \fB\-onlynet=\fR<net>
 .IP
-Make automatic outgoing connections only through network <net> (ipv4,
-ipv6, onion, i2p, cjdns). Incoming connections are not affected
-by this option. This option can be specified multiple times to
+Make automatic outbound connections only to network <net> (ipv4, ipv6,
+onion, i2p, cjdns). Inbound and manual connections are not
+affected by this option. It can be specified multiple times to
 allow multiple networks.
 .HP
 \fB\-peerblockfilters\fR
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index 918e88a20be..d60afdd8ea1 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-TX "1" "March 2022" "bitcoin-tx v23.0.0rc2" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
+.TH BITCOIN-TX "1" "March 2022" "bitcoin-tx v23.0.0rc3" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc2
+bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc3
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc2
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.0.0rc2
+Bitcoin Core bitcoin\-tx utility version v23.0.0rc3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index a314047542c..97cc3c128ac 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-UTIL "1" "March 2022" "bitcoin-util v23.0.0rc2" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
+.TH BITCOIN-UTIL "1" "March 2022" "bitcoin-util v23.0.0rc3" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.0.0rc2
+bitcoin-util \- manual page for bitcoin-util v23.0.0rc3
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.0.0rc2
+Bitcoin Core bitcoin\-util utility version v23.0.0rc3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 7f4a92d606a..7333de7ad12 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIN-WALLET "1" "March 2022" "bitcoin-wallet v23.0.0rc2" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
+.TH BITCOIN-WALLET "1" "March 2022" "bitcoin-wallet v23.0.0rc3" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc2
+bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc3
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.0.0rc2
+Bitcoin Core bitcoin\-wallet version v23.0.0rc3
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index d3e1e3e79f5..c1baa907639 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.13.
-.TH BITCOIND "1" "March 2022" "bitcoind v23.0.0rc2" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
+.TH BITCOIND "1" "March 2022" "bitcoind v23.0.0rc3" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.0.0rc2
+bitcoind \- manual page for bitcoind v23.0.0rc3
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc2
+Bitcoin Core version v23.0.0rc3
 .SH OPTIONS
 .HP
 \-?
@@ -220,8 +220,9 @@ signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
 .HP
 \fB\-cjdnsreachable\fR
 .IP
-If set then this host is configured for CJDNS (connecting to fc00::/8
-addresses would lead us to the CJDNS network) (default: 0)
+If set, then this host is configured for CJDNS (connecting to fc00::/8
+addresses would lead us to the CJDNS network, see doc/cjdns.md)
+(default: 0)
 .HP
 \fB\-connect=\fR<ip>
 .IP
@@ -295,8 +296,8 @@ Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
 \fB\-maxtimeadjustment\fR
 .IP
 Maximum allowed median peer time offset adjustment. Local perspective of
-time may be influenced by peers forward or backward by this
-amount. (default: 4200 seconds)
+time may be influenced by outbound peers forward or backward by
+this amount (default: 4200 seconds).
 .HP
 \fB\-maxuploadtarget=\fR<n>
 .IP
@@ -322,9 +323,9 @@ Use separate SOCKS5 proxy to reach peers via Tor onion services, set
 .HP
 \fB\-onlynet=\fR<net>
 .IP
-Make automatic outgoing connections only through network <net> (ipv4,
-ipv6, onion, i2p, cjdns). Incoming connections are not affected
-by this option. This option can be specified multiple times to
+Make automatic outbound connections only to network <net> (ipv4, ipv6,
+onion, i2p, cjdns). Inbound and manual connections are not
+affected by this option. It can be specified multiple times to
 allow multiple networks.
 .HP
 \fB\-peerblockfilters\fR

From 4f3ba8517a7e8c8f823617149d12e72cb32c8d0d Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 29 Mar 2022 22:08:26 +0200
Subject: [PATCH 039/187] wallet, refactor: Add wallet::NotifyWalletLoaded()
 function

This change is a prerequisite for the following bugfix.

Github-Pull: bitcoin/bitcoin#24711
Rebased-From: aeee419c6aae085cacd75343c1ce23486b2b8916
---
 src/wallet/wallet.cpp | 15 +++++++++------
 src/wallet/wallet.h   |  1 +
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 6cf9f9ce745..2826217932c 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -167,6 +167,14 @@ std::unique_ptr<interfaces::Handler> HandleLoadWallet(WalletContext& context, Lo
     return interfaces::MakeHandler([&context, it] { LOCK(context.wallets_mutex); context.wallet_load_fns.erase(it); });
 }
 
+void NotifyWalletLoaded(WalletContext& context, const std::shared_ptr<CWallet>& wallet)
+{
+    LOCK(context.wallets_mutex);
+    for (auto& load_wallet : context.wallet_load_fns) {
+        load_wallet(interfaces::MakeWallet(context, wallet));
+    }
+}
+
 static Mutex g_loading_wallet_mutex;
 static Mutex g_wallet_release_mutex;
 static std::condition_variable g_wallet_release_cv;
@@ -2898,12 +2906,7 @@ std::shared_ptr<CWallet> CWallet::Create(WalletContext& context, const std::stri
         return nullptr;
     }
 
-    {
-        LOCK(context.wallets_mutex);
-        for (auto& load_wallet : context.wallet_load_fns) {
-            load_wallet(interfaces::MakeWallet(context, walletInstance));
-        }
-    }
+    NotifyWalletLoaded(context, walletInstance);
 
     {
         LOCK(walletInstance->cs_wallet);
diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h
index e2c5c69c91e..76d2371f7f2 100644
--- a/src/wallet/wallet.h
+++ b/src/wallet/wallet.h
@@ -68,6 +68,7 @@ std::shared_ptr<CWallet> LoadWallet(WalletContext& context, const std::string& n
 std::shared_ptr<CWallet> CreateWallet(WalletContext& context, const std::string& name, std::optional<bool> load_on_start, DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error, std::vector<bilingual_str>& warnings);
 std::shared_ptr<CWallet> RestoreWallet(WalletContext& context, const fs::path& backup_file, const std::string& wallet_name, std::optional<bool> load_on_start, DatabaseStatus& status, bilingual_str& error, std::vector<bilingual_str>& warnings);
 std::unique_ptr<interfaces::Handler> HandleLoadWallet(WalletContext& context, LoadWalletFn load_wallet);
+void NotifyWalletLoaded(WalletContext& context, const std::shared_ptr<CWallet>& wallet);
 std::unique_ptr<WalletDatabase> MakeWalletDatabase(const std::string& name, const DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error);
 
 //! -paytxfee default

From 1448c99380bbb83f2cf0410470e75049d0e0c627 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 29 Mar 2022 22:28:42 +0200
Subject: [PATCH 040/187] wallet: Postpone NotifyWalletLoaded() for encrypted
 wallets

Too early NotifyWalletLoaded() call in CWallet::Create() results the
notification goes before DescriptorScriptPubKeyMans were created and
added to an encrypted wallet.

Co-authored-by: Andrew Chow <achow101-github@achow101.com>

Github-Pull: bitcoin/bitcoin#24711
Rebased-From: 0c12f0116ca802f55f5ab43e6c4842ac403b9889
---
 src/wallet/load.cpp              | 2 ++
 src/wallet/test/wallet_tests.cpp | 1 +
 src/wallet/wallet.cpp            | 6 ++++--
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/wallet/load.cpp b/src/wallet/load.cpp
index 633d8c5450c..b62d8b57af5 100644
--- a/src/wallet/load.cpp
+++ b/src/wallet/load.cpp
@@ -127,6 +127,8 @@ bool LoadWallets(WalletContext& context)
                 chain.initError(error);
                 return false;
             }
+
+            NotifyWalletLoaded(context, pwallet);
             AddWallet(context, pwallet);
         }
         return true;
diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp
index 7693c9c0e80..c7227927e25 100644
--- a/src/wallet/test/wallet_tests.cpp
+++ b/src/wallet/test/wallet_tests.cpp
@@ -54,6 +54,7 @@ static const std::shared_ptr<CWallet> TestLoadWallet(WalletContext& context)
     std::vector<bilingual_str> warnings;
     auto database = MakeWalletDatabase("", options, status, error);
     auto wallet = CWallet::Create(context, "", std::move(database), options.create_flags, error, warnings);
+    NotifyWalletLoaded(context, wallet);
     if (context.chain) {
         wallet->postInitProcess();
     }
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 2826217932c..55ef103bbec 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -240,6 +240,8 @@ std::shared_ptr<CWallet> LoadWalletInternal(WalletContext& context, const std::s
             status = DatabaseStatus::FAILED_LOAD;
             return nullptr;
         }
+
+        NotifyWalletLoaded(context, wallet);
         AddWallet(context, wallet);
         wallet->postInitProcess();
 
@@ -356,6 +358,8 @@ std::shared_ptr<CWallet> CreateWallet(WalletContext& context, const std::string&
             wallet->Lock();
         }
     }
+
+    NotifyWalletLoaded(context, wallet);
     AddWallet(context, wallet);
     wallet->postInitProcess();
 
@@ -2906,8 +2910,6 @@ std::shared_ptr<CWallet> CWallet::Create(WalletContext& context, const std::stri
         return nullptr;
     }
 
-    NotifyWalletLoaded(context, walletInstance);
-
     {
         LOCK(walletInstance->cs_wallet);
         walletInstance->SetBroadcastTransactions(args.GetBoolArg("-walletbroadcast", DEFAULT_WALLETBROADCAST));

From db8a5d60944dd565e15f4aba776a475972b4a9c9 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Fri, 1 Apr 2022 10:43:32 +0100
Subject: [PATCH 041/187] guix: fix vmov alignment issues with gcc 10.3.0 &
 mingw-w64

This introduces a patch to our GCC (10.3.0) mingw-w64 compiler, in Guix, to make
it avoid using aligned vmov instructions. This works around a longstanding issue
in GCC, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412, which was recently
discovered to be causing issues, see #24726.

Note that distros like Debian are also patching around this issue, and that is
where this patch comes from. This would also explain why we haven't run into this
problem earlier, in development builds. See:
https://salsa.debian.org/mingw-w64-team/gcc-mingw-w64/-/blob/master/debian/patches/vmov-alignment.patch.

Fixes #24726.
Alternative to #24727.

See also:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=939559

Github-Pull: #24736
Rebased-From: d6fae988eff78e28756d9b6219ec0239c420f51b
---
 contrib/guix/manifest.scm                 |   6 +-
 contrib/guix/patches/vmov-alignment.patch | 267 ++++++++++++++++++++++
 2 files changed, 272 insertions(+), 1 deletion(-)
 create mode 100644 contrib/guix/patches/vmov-alignment.patch

diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index 052c1066e2b..5bf8949c372 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -166,13 +166,17 @@ desirable for building Bitcoin Core release binaries."
 (define (make-gcc-without-newlib gcc)
   (package-with-extra-configure-variable gcc "--with-newlib" "no"))
 
+(define (make-mingw-w64-cross-gcc-vmov-alignment cross-gcc)
+  (package-with-extra-patches cross-gcc
+    (search-our-patches "vmov-alignment.patch")))
+
 (define (make-mingw-pthreads-cross-toolchain target)
   "Create a cross-compilation toolchain package for TARGET"
   (let* ((xbinutils (cross-binutils target))
          (pthreads-xlibc mingw-w64-x86_64-winpthreads)
          (pthreads-xgcc (make-gcc-with-pthreads
                          (cross-gcc target
-                                    #:xgcc (make-gcc-without-newlib (make-ssp-fixed-gcc base-gcc))
+                                    #:xgcc (make-gcc-without-newlib (make-ssp-fixed-gcc (make-mingw-w64-cross-gcc-vmov-alignment base-gcc)))
                                     #:xbinutils xbinutils
                                     #:libc pthreads-xlibc))))
     ;; Define a meta-package that propagates the resulting XBINUTILS, XLIBC, and
diff --git a/contrib/guix/patches/vmov-alignment.patch b/contrib/guix/patches/vmov-alignment.patch
new file mode 100644
index 00000000000..072f76eafd3
--- /dev/null
+++ b/contrib/guix/patches/vmov-alignment.patch
@@ -0,0 +1,267 @@
+Description: Use unaligned VMOV instructions
+Author: Stephen Kitt <skitt@debian.org>
+Bug-Debian: https://bugs.debian.org/939559
+
+Based on a patch originally by Claude Heiland-Allen <claude@mathr.co.uk>
+
+--- a/gcc/config/i386/sse.md
++++ b/gcc/config/i386/sse.md
+@@ -1058,17 +1058,11 @@
+ {
+   if (FLOAT_MODE_P (GET_MODE_INNER (<MODE>mode)))
+     {
+-      if (misaligned_operand (operands[1], <MODE>mode))
+-	return "vmovu<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
+-      else
+-	return "vmova<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
++      return "vmovu<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
+     }
+   else
+     {
+-      if (misaligned_operand (operands[1], <MODE>mode))
+-	return "vmovdqu<ssescalarsize>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
+-      else
+-	return "vmovdqa<ssescalarsize>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
++      return "vmovdqu<ssescalarsize>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
+     }
+ }
+   [(set_attr "type" "ssemov")
+@@ -1184,17 +1178,11 @@
+ {
+   if (FLOAT_MODE_P (GET_MODE_INNER (<MODE>mode)))
+     {
+-      if (misaligned_operand (operands[0], <MODE>mode))
+-	return "vmovu<ssemodesuffix>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
+-      else
+-	return "vmova<ssemodesuffix>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
++      return "vmovu<ssemodesuffix>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
+     }
+   else
+     {
+-      if (misaligned_operand (operands[0], <MODE>mode))
+-	return "vmovdqu<ssescalarsize>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
+-      else
+-	return "vmovdqa<ssescalarsize>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
++      return "vmovdqu<ssescalarsize>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
+     }
+ }
+   [(set_attr "type" "ssemov")
+@@ -7806,7 +7794,7 @@
+   "TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
+   "@
+    %vmovlps\t{%1, %0|%q0, %1}
+-   %vmovaps\t{%1, %0|%0, %1}
++   %vmovups\t{%1, %0|%0, %1}
+    %vmovlps\t{%1, %d0|%d0, %q1}"
+   [(set_attr "type" "ssemov")
+    (set_attr "prefix" "maybe_vex")
+@@ -13997,29 +13985,15 @@
+   switch (<MODE>mode)
+     {
+     case E_V8DFmode:
+-      if (misaligned_operand (operands[2], <ssequartermode>mode))
+-	return "vmovupd\t{%2, %x0|%x0, %2}";
+-      else
+-	return "vmovapd\t{%2, %x0|%x0, %2}";
++      return "vmovupd\t{%2, %x0|%x0, %2}";
+     case E_V16SFmode:
+-      if (misaligned_operand (operands[2], <ssequartermode>mode))
+-	return "vmovups\t{%2, %x0|%x0, %2}";
+-      else
+-	return "vmovaps\t{%2, %x0|%x0, %2}";
++      return "vmovups\t{%2, %x0|%x0, %2}";
+     case E_V8DImode:
+-      if (misaligned_operand (operands[2], <ssequartermode>mode))
+-	return which_alternative == 2 ? "vmovdqu64\t{%2, %x0|%x0, %2}"
++      return which_alternative == 2 ? "vmovdqu64\t{%2, %x0|%x0, %2}"
+ 				      : "vmovdqu\t{%2, %x0|%x0, %2}";
+-      else
+-	return which_alternative == 2 ? "vmovdqa64\t{%2, %x0|%x0, %2}"
+-				      : "vmovdqa\t{%2, %x0|%x0, %2}";
+     case E_V16SImode:
+-      if (misaligned_operand (operands[2], <ssequartermode>mode))
+-	return which_alternative == 2 ? "vmovdqu32\t{%2, %x0|%x0, %2}"
++      return which_alternative == 2 ? "vmovdqu32\t{%2, %x0|%x0, %2}"
+ 				      : "vmovdqu\t{%2, %x0|%x0, %2}";
+-      else
+-	return which_alternative == 2 ? "vmovdqa32\t{%2, %x0|%x0, %2}"
+-				      : "vmovdqa\t{%2, %x0|%x0, %2}";
+     default:
+       gcc_unreachable ();
+     }
+@@ -21225,63 +21199,27 @@
+       switch (get_attr_mode (insn))
+ 	{
+ 	case MODE_V16SF:
+-	  if (misaligned_operand (operands[1], <ssehalfvecmode>mode))
+-	    return "vmovups\t{%1, %t0|%t0, %1}";
+-	  else
+-	    return "vmovaps\t{%1, %t0|%t0, %1}";
++	  return "vmovups\t{%1, %t0|%t0, %1}";
+ 	case MODE_V8DF:
+-	  if (misaligned_operand (operands[1], <ssehalfvecmode>mode))
+-	    return "vmovupd\t{%1, %t0|%t0, %1}";
+-	  else
+-	    return "vmovapd\t{%1, %t0|%t0, %1}";
++	  return "vmovupd\t{%1, %t0|%t0, %1}";
+ 	case MODE_V8SF:
+-	  if (misaligned_operand (operands[1], <ssehalfvecmode>mode))
+-	    return "vmovups\t{%1, %x0|%x0, %1}";
+-	  else
+-	    return "vmovaps\t{%1, %x0|%x0, %1}";
++	  return "vmovups\t{%1, %x0|%x0, %1}";
+ 	case MODE_V4DF:
+-	  if (misaligned_operand (operands[1], <ssehalfvecmode>mode))
+-	    return "vmovupd\t{%1, %x0|%x0, %1}";
+-	  else
+-	    return "vmovapd\t{%1, %x0|%x0, %1}";
++	  return "vmovupd\t{%1, %x0|%x0, %1}";
+ 	case MODE_XI:
+-	  if (misaligned_operand (operands[1], <ssehalfvecmode>mode))
+-	    {
+-	      if (which_alternative == 2)
+-		return "vmovdqu\t{%1, %t0|%t0, %1}";
+-	      else if (GET_MODE_SIZE (<ssescalarmode>mode) == 8)
+-		return "vmovdqu64\t{%1, %t0|%t0, %1}";
+-	      else
+-		return "vmovdqu32\t{%1, %t0|%t0, %1}";
+-	    }
++	  if (which_alternative == 2)
++	    return "vmovdqu\t{%1, %t0|%t0, %1}";
++	  else if (GET_MODE_SIZE (<ssescalarmode>mode) == 8)
++	    return "vmovdqu64\t{%1, %t0|%t0, %1}";
+ 	  else
+-	    {
+-	      if (which_alternative == 2)
+-		return "vmovdqa\t{%1, %t0|%t0, %1}";
+-	      else if (GET_MODE_SIZE (<ssescalarmode>mode) == 8)
+-		return "vmovdqa64\t{%1, %t0|%t0, %1}";
+-	      else
+-		return "vmovdqa32\t{%1, %t0|%t0, %1}";
+-	    }
++	    return "vmovdqu32\t{%1, %t0|%t0, %1}";
+ 	case MODE_OI:
+-	  if (misaligned_operand (operands[1], <ssehalfvecmode>mode))
+-	    {
+-	      if (which_alternative == 2)
+-		return "vmovdqu\t{%1, %x0|%x0, %1}";
+-	      else if (GET_MODE_SIZE (<ssescalarmode>mode) == 8)
+-		return "vmovdqu64\t{%1, %x0|%x0, %1}";
+-	      else
+-		return "vmovdqu32\t{%1, %x0|%x0, %1}";
+-	    }
++	  if (which_alternative == 2)
++	    return "vmovdqu\t{%1, %x0|%x0, %1}";
++	  else if (GET_MODE_SIZE (<ssescalarmode>mode) == 8)
++	    return "vmovdqu64\t{%1, %x0|%x0, %1}";
+ 	  else
+-	    {
+-	      if (which_alternative == 2)
+-		return "vmovdqa\t{%1, %x0|%x0, %1}";
+-	      else if (GET_MODE_SIZE (<ssescalarmode>mode) == 8)
+-		return "vmovdqa64\t{%1, %x0|%x0, %1}";
+-	      else
+-		return "vmovdqa32\t{%1, %x0|%x0, %1}";
+-	    }
++	    return "vmovdqu32\t{%1, %x0|%x0, %1}";
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+--- a/gcc/config/i386/i386.c
++++ b/gcc/config/i386/i386.c
+@@ -4981,13 +4981,13 @@
+       switch (type)
+ 	{
+ 	case opcode_int:
+-	  opcode = misaligned_p ? "vmovdqu32" : "vmovdqa32";
++	  opcode = "vmovdqu32";
+ 	  break;
+ 	case opcode_float:
+-	  opcode = misaligned_p ? "vmovups" : "vmovaps";
++	  opcode = "vmovups";
+ 	  break;
+ 	case opcode_double:
+-	  opcode = misaligned_p ? "vmovupd" : "vmovapd";
++	  opcode = "vmovupd";
+ 	  break;
+ 	}
+     }
+@@ -4996,16 +4996,16 @@
+       switch (scalar_mode)
+ 	{
+ 	case E_SFmode:
+-	  opcode = misaligned_p ? "%vmovups" : "%vmovaps";
++	  opcode = "%vmovups";
+ 	  break;
+ 	case E_DFmode:
+-	  opcode = misaligned_p ? "%vmovupd" : "%vmovapd";
++	  opcode = "%vmovupd";
+ 	  break;
+ 	case E_TFmode:
+ 	  if (evex_reg_p)
+-	    opcode = misaligned_p ? "vmovdqu64" : "vmovdqa64";
++	    opcode = "vmovdqu64";
+ 	  else
+-	    opcode = misaligned_p ? "%vmovdqu" : "%vmovdqa";
++	    opcode = "%vmovdqu";
+ 	  break;
+ 	default:
+ 	  gcc_unreachable ();
+@@ -5017,48 +5017,32 @@
+ 	{
+ 	case E_QImode:
+ 	  if (evex_reg_p)
+-	    opcode = (misaligned_p
+-		      ? (TARGET_AVX512BW
+-			 ? "vmovdqu8"
+-			 : "vmovdqu64")
+-		      : "vmovdqa64");
++	    opcode = TARGET_AVX512BW ? "vmovdqu8" : "vmovdqu64";
+ 	  else
+-	    opcode = (misaligned_p
+-		      ? (TARGET_AVX512BW
+-			 ? "vmovdqu8"
+-			 : "%vmovdqu")
+-		      : "%vmovdqa");
++	    opcode = TARGET_AVX512BW ? "vmovdqu8" : "%vmovdqu";
+ 	  break;
+ 	case E_HImode:
+ 	  if (evex_reg_p)
+-	    opcode = (misaligned_p
+-		      ? (TARGET_AVX512BW
+-			 ? "vmovdqu16"
+-			 : "vmovdqu64")
+-		      : "vmovdqa64");
++	    opcode = TARGET_AVX512BW ? "vmovdqu16" : "vmovdqu64";
+ 	  else
+-	    opcode = (misaligned_p
+-		      ? (TARGET_AVX512BW
+-			 ? "vmovdqu16"
+-			 : "%vmovdqu")
+-		      : "%vmovdqa");
++	    opcode = TARGET_AVX512BW ? "vmovdqu16" : "%vmovdqu";
+ 	  break;
+ 	case E_SImode:
+ 	  if (evex_reg_p)
+-	    opcode = misaligned_p ? "vmovdqu32" : "vmovdqa32";
++	    opcode = "vmovdqu32";
+ 	  else
+-	    opcode = misaligned_p ? "%vmovdqu" : "%vmovdqa";
++	    opcode = "%vmovdqu";
+ 	  break;
+ 	case E_DImode:
+ 	case E_TImode:
+ 	case E_OImode:
+ 	  if (evex_reg_p)
+-	    opcode = misaligned_p ? "vmovdqu64" : "vmovdqa64";
++	    opcode = "vmovdqu64";
+ 	  else
+-	    opcode = misaligned_p ? "%vmovdqu" : "%vmovdqa";
++	    opcode = "%vmovdqu";
+ 	  break;
+ 	case E_XImode:
+-	  opcode = misaligned_p ? "vmovdqu64" : "vmovdqa64";
++	  opcode = "vmovdqu64";
+ 	  break;
+ 	default:
+ 	  gcc_unreachable ();

From 39396ab593f2d6790b8dd0b2588cb0981d97ebb5 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Fri, 1 Apr 2022 10:28:10 +0200
Subject: [PATCH 042/187] build: Fix "ERR: Unsigned tarballs do not exist"

Github-Pull: #24733
Rebased-From: 7762c5683f91a066cf833a19e7c0153942395cb1
---
 contrib/guix/guix-codesign | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/guix/guix-codesign b/contrib/guix/guix-codesign
index 5268da35b1d..4b272f30847 100755
--- a/contrib/guix/guix-codesign
+++ b/contrib/guix/guix-codesign
@@ -152,7 +152,7 @@ outdir_for_host() {
 unsigned_tarball_for_host() {
     case "$1" in
         *mingw*)
-            echo "$(outdir_for_host "$1")/${DISTNAME}-win-unsigned.tar.gz"
+            echo "$(outdir_for_host "$1")/${DISTNAME}-win64-unsigned.tar.gz"
             ;;
         *darwin*)
             echo "$(outdir_for_host "$1")/${DISTNAME}-${1}-unsigned.tar.gz"

From 6374e24887e3957cfcf17841a8c48cac2ffbda4f Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Fri, 1 Apr 2022 12:23:01 +0200
Subject: [PATCH 043/187] Put lock logging behind DEBUG_LOCKCONTENTION
 preprocessor directive

Github-Pull: #24770
Rebased-From: 39a34b6877945908759f6a2322f60852e521e2ee
---
 src/logging.cpp               |  2 ++
 src/logging.h                 |  2 ++
 src/net.h                     |  2 ++
 src/sync.h                    |  5 +++++
 src/test/checkqueue_tests.cpp | 10 +++++++---
 test/functional/rpc_misc.py   |  3 ---
 6 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/logging.cpp b/src/logging.cpp
index 764941c8ea5..a5e5fdb4cd2 100644
--- a/src/logging.cpp
+++ b/src/logging.cpp
@@ -160,7 +160,9 @@ const CLogCategoryDesc LogCategories[] =
     {BCLog::VALIDATION, "validation"},
     {BCLog::I2P, "i2p"},
     {BCLog::IPC, "ipc"},
+#ifdef DEBUG_LOCKCONTENTION
     {BCLog::LOCK, "lock"},
+#endif
     {BCLog::UTIL, "util"},
     {BCLog::BLOCKSTORE, "blockstorage"},
     {BCLog::ALL, "1"},
diff --git a/src/logging.h b/src/logging.h
index 710e6c4c322..ae8cad906c9 100644
--- a/src/logging.h
+++ b/src/logging.h
@@ -60,7 +60,9 @@ namespace BCLog {
         VALIDATION  = (1 << 21),
         I2P         = (1 << 22),
         IPC         = (1 << 23),
+#ifdef DEBUG_LOCKCONTENTION
         LOCK        = (1 << 24),
+#endif
         UTIL        = (1 << 25),
         BLOCKSTORE  = (1 << 26),
         ALL         = ~(uint32_t)0,
diff --git a/src/net.h b/src/net.h
index a38310938b3..2e0a45b874a 100644
--- a/src/net.h
+++ b/src/net.h
@@ -13,6 +13,7 @@
 #include <crypto/siphash.h>
 #include <hash.h>
 #include <i2p.h>
+#include <logging.h>
 #include <net_permissions.h>
 #include <netaddress.h>
 #include <netbase.h>
@@ -32,6 +33,7 @@
 #include <cstdint>
 #include <deque>
 #include <functional>
+#include <list>
 #include <map>
 #include <memory>
 #include <optional>
diff --git a/src/sync.h b/src/sync.h
index 85000a9151b..af7595e6fab 100644
--- a/src/sync.h
+++ b/src/sync.h
@@ -6,8 +6,11 @@
 #ifndef BITCOIN_SYNC_H
 #define BITCOIN_SYNC_H
 
+#ifdef DEBUG_LOCKCONTENTION
 #include <logging.h>
 #include <logging/timer.h>
+#endif
+
 #include <threadsafety.h>
 #include <util/macros.h>
 
@@ -136,8 +139,10 @@ class SCOPED_LOCKABLE UniqueLock : public Base
     void Enter(const char* pszName, const char* pszFile, int nLine)
     {
         EnterCritical(pszName, pszFile, nLine, Base::mutex());
+#ifdef DEBUG_LOCKCONTENTION
         if (Base::try_lock()) return;
         LOG_TIME_MICROS_WITH_CATEGORY(strprintf("lock contention %s, %s:%d", pszName, pszFile, nLine), BCLog::LOCK);
+#endif
         Base::lock();
     }
 
diff --git a/src/test/checkqueue_tests.cpp b/src/test/checkqueue_tests.cpp
index 153ccd984b6..0d95bd76706 100644
--- a/src/test/checkqueue_tests.cpp
+++ b/src/test/checkqueue_tests.cpp
@@ -19,13 +19,17 @@
 #include <vector>
 
 /**
- * Identical to TestingSetup but excludes lock contention logging, as some of
- * these tests are designed to be heavily contested to trigger race conditions
- * or other issues.
+ * Identical to TestingSetup but excludes lock contention logging if
+ * `DEBUG_LOCKCONTENTION` is defined, as some of these tests are designed to be
+ * heavily contested to trigger race conditions or other issues.
  */
 struct NoLockLoggingTestingSetup : public TestingSetup {
     NoLockLoggingTestingSetup()
+#ifdef DEBUG_LOCKCONTENTION
         : TestingSetup{CBaseChainParams::MAIN, /*extra_args=*/{"-debugexclude=lock"}} {}
+#else
+        : TestingSetup{CBaseChainParams::MAIN} {}
+#endif
 };
 
 BOOST_FIXTURE_TEST_SUITE(checkqueue_tests, NoLockLoggingTestingSetup)
diff --git a/test/functional/rpc_misc.py b/test/functional/rpc_misc.py
index 2f1796d7cc0..f64aae72234 100755
--- a/test/functional/rpc_misc.py
+++ b/test/functional/rpc_misc.py
@@ -56,9 +56,6 @@ def run_test(self):
 
         self.log.info("test logging rpc and help")
 
-        # Test logging RPC returns the expected number of logging categories.
-        assert_equal(len(node.logging()), 27)
-
         # Test toggling a logging category on/off/on with the logging RPC.
         assert_equal(node.logging()['qt'], True)
         node.logging(exclude=['qt'])

From 69cc83df69e5a9306a0090df0dade38d5383af4d Mon Sep 17 00:00:00 2001
From: Jon Atack <jon@atack.com>
Date: Mon, 4 Apr 2022 11:42:27 +0200
Subject: [PATCH 044/187] Add DEBUG_LOCKCONTENTION documentation to the
 developer notes

Github-Pull: #24770
Rebassedd-From: 43947333315d07f59e1247bd76e0ba9d35a99e31
---
 doc/developer-notes.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/doc/developer-notes.md b/doc/developer-notes.md
index bfb64093e19..5bb927c44e3 100644
--- a/doc/developer-notes.md
+++ b/doc/developer-notes.md
@@ -17,6 +17,7 @@ Developer Notes
         - [`debug.log`](#debuglog)
         - [Signet, testnet, and regtest modes](#signet-testnet-and-regtest-modes)
         - [DEBUG_LOCKORDER](#debug_lockorder)
+        - [DEBUG_LOCKCONTENTION](#debug_lockcontention)
         - [Valgrind suppressions file](#valgrind-suppressions-file)
         - [Compiling for test coverage](#compiling-for-test-coverage)
         - [Performance profiling with perf](#performance-profiling-with-perf)
@@ -316,6 +317,19 @@ configure option adds `-DDEBUG_LOCKORDER` to the compiler flags. This inserts
 run-time checks to keep track of which locks are held and adds warnings to the
 `debug.log` file if inconsistencies are detected.
 
+### DEBUG_LOCKCONTENTION
+
+Defining `DEBUG_LOCKCONTENTION` adds a "lock" logging category to the logging
+RPC that, when enabled, logs the location and duration of each lock contention
+to the `debug.log` file.
+
+To enable it, run configure with `-DDEBUG_LOCKCONTENTION` added to your
+CPPFLAGS, e.g. `CPPFLAGS="-DDEBUG_LOCKCONTENTION"`, then build and run bitcoind.
+
+You can then use the `-debug=lock` configuration option at bitcoind startup or
+`bitcoin-cli logging '["lock"]'` at runtime to turn on lock contention logging.
+It can be toggled off again with `bitcoin-cli logging [] '["lock"]'`.
+
 ### Assertions and Checks
 
 The util file `src/util/check.h` offers helpers to protect against coding and

From e3e4be9cd513c85311634a8128e018dbf8748888 Mon Sep 17 00:00:00 2001
From: Luke Dashjr <luke-jr+git@utopios.org>
Date: Wed, 9 Feb 2022 01:10:39 +0000
Subject: [PATCH 045/187] RPC: Switch getblockfrompeer back to standard param
 name blockhash

This commit partially reverts 923312fbf6a89efde1739da0b7209694d4f892ba.

Github-Pull: #24806
Rebased-From: 88917f93cc01b5e881072b0e476b74d20b7673c4
---
 src/rpc/blockchain.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp
index ef572cf8f84..c066f6f569f 100644
--- a/src/rpc/blockchain.cpp
+++ b/src/rpc/blockchain.cpp
@@ -795,7 +795,7 @@ static RPCHelpMan getblockfrompeer()
         "Subsequent calls for the same block and a new peer will cause the response from the previous peer to be ignored.\n\n"
         "Returns an empty JSON object if the request was successfully scheduled.",
         {
-            {"block_hash", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "The block hash to try to fetch"},
+            {"blockhash", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "The block hash to try to fetch"},
             {"peer_id", RPCArg::Type::NUM, RPCArg::Optional::NO, "The peer to fetch it from (see getpeerinfo for peer IDs)"},
         },
         RPCResult{RPCResult::Type::OBJ, "", /*optional=*/false, "", {}},
@@ -809,7 +809,7 @@ static RPCHelpMan getblockfrompeer()
     ChainstateManager& chainman = EnsureChainman(node);
     PeerManager& peerman = EnsurePeerman(node);
 
-    const uint256& block_hash{ParseHashV(request.params[0], "block_hash")};
+    const uint256& block_hash{ParseHashV(request.params[0], "blockhash")};
     const NodeId peer_id{request.params[1].get_int64()};
 
     const CBlockIndex* const index = WITH_LOCK(cs_main, return chainman.m_blockman.LookupBlockIndex(block_hash););

From 5f8635541eba6c78b0cd384a6816c9ca0e1a69c5 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Fri, 8 Apr 2022 15:53:42 +0200
Subject: [PATCH 046/187] build: Bump rc to 23.0rc4

Tree-SHA512: 18e4560c9b04d1270449ed1938b4c3ce9a903b1b65257e92947884f12a2d45e64e4074f8e7738c7ccb7076f696f9e7fb2056a55f856335a98eed143e0c1167f3
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index adbf3fe525c..8ace86f155c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 0)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 3)
+define(_CLIENT_VERSION_RC, 4)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From d37081e483f2de7e9566dfb72b5d438153a221dc Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Fri, 8 Apr 2022 16:05:34 +0200
Subject: [PATCH 047/187] qt: 23.0rc4 translations update

Tree-SHA512: 1bf7ac70963fc6361b5cd117612355e6d4b1862721441003eb7b11f8366a706cb83d45a46533bfad421d7ea0dd12931b4e37881818eb0f0be845de19b823f98c
---
 src/qt/locale/bitcoin_es.ts | 345 +++++++++++++++++++++++++++++++++++-
 src/qt/locale/bitcoin_fa.ts |   6 +-
 src/qt/locale/bitcoin_fr.ts |  92 +++++-----
 src/qt/locale/bitcoin_hu.ts |  12 ++
 src/qt/locale/bitcoin_it.ts |   2 +-
 src/qt/locale/bitcoin_nl.ts |  92 +++++++---
 src/qt/locale/bitcoin_sl.ts |   8 +
 src/qt/locale/bitcoin_th.ts |  40 +++++
 src/qt/locale/bitcoin_uk.ts |  47 +++--
 9 files changed, 560 insertions(+), 84 deletions(-)

diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts
index d7a98de59e7..144b685f1bf 100644
--- a/src/qt/locale/bitcoin_es.ts
+++ b/src/qt/locale/bitcoin_es.ts
@@ -91,6 +91,11 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Export Address List</source>
         <translation type="unfinished">Exportar la Lista de Direcciones</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Archivos separados por comas</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -273,6 +278,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Error: El directorio de datos especificado "%1" no existe.</translation>
     </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">Error: No se puede analizar/parsear el archivo de configuración: %1.</translation>
+    </message>
     <message>
         <source>%1 didn't yet exit safely…</source>
         <translation type="unfinished">%1 todavía no ha terminado de forma segura...</translation>
@@ -402,6 +411,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s".</source>
         <translation type="unfinished">Error: el registro del identificador del archivo de volcado es incorrecto. Se obtuvo   "%s" se esperaba "%s".</translation>
     </message>
+    <message>
+        <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
+        <translation type="unfinished">Error: la versión del archivo volcado no es compatible. Esta versión de bitcoin-wallet solo admite archivos de volcado de la versión 1. Consiguió dumpfile con versión %s</translation>
+    </message>
     <message>
         <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
         <translation type="unfinished">Error: Los monederos heredados solo admiten los tipos de dirección "legacy", "p2sh-segwit" y "bech32"</translation>
@@ -731,6 +744,22 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Send coins to a Bitcoin address</source>
         <translation type="unfinished">Enviar monedas a una dirección Bitcoin</translation>
     </message>
+    <message>
+        <source>Backup wallet to another location</source>
+        <translation type="unfinished">Respaldar billetera en otra ubicación</translation>
+    </message>
+    <message>
+        <source>Change the passphrase used for wallet encryption</source>
+        <translation type="unfinished">Cambiar la contraseña utilizada para la encriptación de cartera</translation>
+    </message>
+    <message>
+        <source>&amp;Send</source>
+        <translation type="unfinished">&amp;Enviar</translation>
+    </message>
+    <message>
+        <source>&amp;Receive</source>
+        <translation type="unfinished">&amp;Recibido</translation>
+    </message>
     <message>
         <source>&amp;Options…</source>
         <translation type="unfinished">&amp;Opciones...</translation>
@@ -739,6 +768,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>&amp;Encrypt Wallet…</source>
         <translation type="unfinished">&amp;Cifrar monedero</translation>
     </message>
+    <message>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">Cifrar las claves privadas que pertenecen a tu billetera</translation>
+    </message>
     <message>
         <source>&amp;Backup Wallet…</source>
         <translation type="unfinished">&amp;Copia de seguridad del monedero</translation>
@@ -751,10 +784,18 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Sign &amp;message…</source>
         <translation type="unfinished">Firmar &amp;mensaje...</translation>
     </message>
+    <message>
+        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
+        <translation type="unfinished">Firmar mensajes con sus direcciones Bitcoin para probar la propiedad</translation>
+    </message>
     <message>
         <source>&amp;Verify message…</source>
         <translation type="unfinished">&amp;Verificar mensaje...</translation>
     </message>
+    <message>
+        <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
+        <translation type="unfinished">Verificar un mensaje para comprobar que fue firmado con la dirección Bitcoin indicada</translation>
+    </message>
     <message>
         <source>&amp;Load PSBT from file…</source>
         <translation type="unfinished">&amp;Cargar PSBT desde archivo...</translation>
@@ -775,10 +816,22 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Close All Wallets…</source>
         <translation type="unfinished">Cerrar todas las carteras...</translation>
     </message>
+    <message>
+        <source>&amp;File</source>
+        <translation type="unfinished">&amp;Archivo</translation>
+    </message>
+    <message>
+        <source>&amp;Settings</source>
+        <translation type="unfinished">&amp;Configuración</translation>
+    </message>
     <message>
         <source>&amp;Help</source>
         <translation type="unfinished">&amp;Ayuda</translation>
     </message>
+    <message>
+        <source>Tabs toolbar</source>
+        <translation type="unfinished">Barra de pestañas</translation>
+    </message>
     <message>
         <source>Syncing Headers (%1%)…</source>
         <translation type="unfinished">Sincronizando cabeceras (1%1%)</translation>
@@ -803,6 +856,22 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Connecting to peers…</source>
         <translation type="unfinished">Conectando con compañeros...</translation>
     </message>
+    <message>
+        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
+        <translation type="unfinished">Solicitar pagos (genera código QR y URL's de Bitcoin)</translation>
+    </message>
+    <message>
+        <source>Show the list of used sending addresses and labels</source>
+        <translation type="unfinished">Editar la lista de las direcciones y etiquetas almacenadas</translation>
+    </message>
+    <message>
+        <source>Show the list of used receiving addresses and labels</source>
+        <translation type="unfinished">Mostrar la lista de direcciones de envío y etiquetas</translation>
+    </message>
+    <message>
+        <source>&amp;Command-line options</source>
+        <translation type="unfinished">&amp;Opciones de línea de comandos</translation>
+    </message>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
@@ -810,10 +879,22 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
             <numerusform>Procesado(s) %n bloque(s) del historial de transacciones.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>%1 behind</source>
+        <translation type="unfinished">%1 detrás</translation>
+    </message>
     <message>
         <source>Catching up…</source>
         <translation type="unfinished">Poniéndose al día...</translation>
     </message>
+    <message>
+        <source>Last received block was generated %1 ago.</source>
+        <translation type="unfinished">El último bloque recibido fue generado hace %1 horas.</translation>
+    </message>
+    <message>
+        <source>Transactions after this will not yet be visible.</source>
+        <translation type="unfinished">Las transacciones posteriores aún no están visibles.</translation>
+    </message>
     <message>
         <source>Warning</source>
         <translation type="unfinished">Advertencia</translation>
@@ -822,6 +903,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Information</source>
         <translation type="unfinished">Información</translation>
     </message>
+    <message>
+        <source>Up to date</source>
+        <translation type="unfinished">Actualizado al dia </translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Cargar una transacción de Bitcoin parcialmente firmada</translation>
@@ -834,6 +919,26 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Cargar una transacción de Bitcoin parcialmente firmada desde el Portapapeles</translation>
     </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">Ventana de nodo</translation>
+    </message>
+    <message>
+        <source>Open node debugging and diagnostic console</source>
+        <translation type="unfinished">Abrir consola de depuración y diagnóstico de nodo</translation>
+    </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">&amp;Direcciones de envío</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">&amp;Direcciones de recepción</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">Abrir un bitcoin: URI</translation>
+    </message>
     <message>
         <source>Open Wallet</source>
         <translation type="unfinished">Abrir Monedero</translation>
@@ -850,6 +955,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Close all wallets</source>
         <translation type="unfinished">Cerrar todos los monederos</translation>
     </message>
+    <message>
+        <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
+        <translation type="unfinished">Muestra el mensaje de ayuda %1 para obtener una lista con posibles opciones de línea de comandos de Bitcoin.</translation>
+    </message>
     <message>
         <source>&amp;Mask values</source>
         <translation type="unfinished">&amp;Ocultar valores</translation>
@@ -870,12 +979,32 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>&amp;Window</source>
         <translation type="unfinished">&amp;Ventana</translation>
     </message>
+    <message>
+        <source>Zoom</source>
+        <translation type="unfinished">Acercar</translation>
+    </message>
+    <message>
+        <source>Main Window</source>
+        <translation type="unfinished">Ventana principal</translation>
+    </message>
+    <message>
+        <source>%1 client</source>
+        <translation type="unfinished">%1 cliente</translation>
+    </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Ocultar </translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">M&amp;uestra</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n conexión(es) activas con la red de Bitcoin</numerusform>
+            <numerusform>%n conexión(es) activas con la red de Bitcoin</numerusform>
         </translation>
     </message>
     <message>
@@ -940,15 +1069,38 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Incoming transaction</source>
         <translation type="unfinished">Transacción entrante</translation>
     </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
+        <translation type="unfinished">La generación de clave HD está &lt;b&gt;deshabilitada&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">La generación de clave HD está &lt;b&gt;habilitada&lt;/b&gt;</translation>
+    </message>
     <message>
         <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
         <translation type="unfinished">Llave privada &lt;b&gt;deshabilitada&lt;/b&gt;</translation>
     </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+        <translation type="unfinished">La billetera está &lt;b&gt;cifrada&lt;/b&gt; y &lt;b&gt;desbloqueada&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+        <translation type="unfinished">La billetera está &lt;b&gt;cifrada&lt;/b&gt; y &lt;b&gt;bloqueada&lt;/b&gt;</translation>
+    </message>
     <message>
         <source>Original message:</source>
         <translation type="unfinished">Mensaje original:</translation>
     </message>
 </context>
+<context>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">Unidad en la que se muestran las cantidades. Haga clic para seleccionar otra unidad.</translation>
+    </message>
+</context>
 <context>
     <name>CoinControlDialog</name>
     <message>
@@ -967,6 +1119,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Fee:</source>
         <translation type="unfinished">Comisión:</translation>
     </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">Basura:</translation>
+    </message>
     <message>
         <source>After Fee:</source>
         <translation type="unfinished">Después de la comisión:</translation>
@@ -991,6 +1147,14 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Amount</source>
         <translation type="unfinished">Cantidad</translation>
     </message>
+    <message>
+        <source>Received with label</source>
+        <translation type="unfinished">Recibido con dirección</translation>
+    </message>
+    <message>
+        <source>Received with address</source>
+        <translation type="unfinished">Recibido con etiqueta</translation>
+    </message>
     <message>
         <source>Date</source>
         <translation type="unfinished">Fecha</translation>
@@ -1027,6 +1191,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>&amp;Unlock unspent</source>
         <translation type="unfinished">&amp;Desbloquear lo no gastado</translation>
     </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">Copiar prioridad</translation>
+    </message>
     <message>
         <source>Copy fee</source>
         <translation type="unfinished">Copiar comisión</translation>
@@ -1035,14 +1203,34 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Copy after fee</source>
         <translation type="unfinished">Copiar después de la comisión</translation>
     </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">Copiar bytes</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">Copiar polvo</translation>
+    </message>
     <message>
         <source>Copy change</source>
         <translation type="unfinished">Copiar cambio</translation>
     </message>
+    <message>
+        <source>(%1 locked)</source>
+        <translation type="unfinished">(%1 bloqueado)</translation>
+    </message>
     <message>
         <source>yes</source>
         <translation type="unfinished">sí</translation>
     </message>
+    <message>
+        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
+        <translation type="unfinished">Esta etiqueta se vuelve roja si algún receptor recibe una cantidad inferior al umbral actual establecido para el polvo.</translation>
+    </message>
+    <message>
+        <source>Can vary +/- %1 satoshi(s) per input.</source>
+        <translation type="unfinished">Puede variar en +/- %1 satoshi(s) por entrada.</translation>
+    </message>
     <message>
         <source>(no label)</source>
         <translation type="unfinished">(sin etiqueta)</translation>
@@ -1129,6 +1317,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
         <translation type="unfinished">¿Estás seguro de que deseas cerrar el monedero &lt;i&gt;%1&lt;/i&gt;?</translation>
     </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">Cerrar el monedero durante demasiado tiempo puede causar la resincronización de toda la cadena si la poda es habilitada.</translation>
+    </message>
     <message>
         <source>Close all wallets</source>
         <translation type="unfinished">Cerrar todos los monederos</translation>
@@ -1164,10 +1356,22 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Advanced Options</source>
         <translation type="unfinished">Opciones Avanzadas</translation>
     </message>
+    <message>
+        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
+        <translation type="unfinished">Deshabilita las claves privadas para este monedero. Los monederos con claves privadas deshabilitadas no tendrán claves privadas y no podrán tener ni una semilla HD ni claves privadas importadas. Esto es ideal para monederos de solo lectura.</translation>
+    </message>
     <message>
         <source>Disable Private Keys</source>
         <translation type="unfinished">Deshabilita las Llaves Privadas</translation>
     </message>
+    <message>
+        <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
+        <translation type="unfinished">Crear un monedero vacío. Los monederos vacíos no tienen claves privadas ni scripts. Las claves privadas y direcciones pueden importarse después o también establecer una semilla HD.</translation>
+    </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">Crear monedero vacío</translation>
+    </message>
     <message>
         <source>Use descriptors for scriptPubKey management</source>
         <translation type="unfinished">Use descriptores para la gestión de scriptPubKey</translation>
@@ -1208,10 +1412,42 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>&amp;Label</source>
         <translation type="unfinished">&amp;Etiqueta</translation>
     </message>
+    <message>
+        <source>The label associated with this address list entry</source>
+        <translation type="unfinished">La etiqueta asociada con esta entrada en la libreta</translation>
+    </message>
+    <message>
+        <source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
+        <translation type="unfinished">La dirección asociada con esta entrada en la guía. Solo puede ser modificada para direcciones de envío.</translation>
+    </message>
     <message>
         <source>&amp;Address</source>
         <translation type="unfinished">&amp;Dirección</translation>
     </message>
+    <message>
+        <source>New sending address</source>
+        <translation type="unfinished">Nueva dirección de envío</translation>
+    </message>
+    <message>
+        <source>Edit receiving address</source>
+        <translation type="unfinished">Editar dirección de recivimiento</translation>
+    </message>
+    <message>
+        <source>Edit sending address</source>
+        <translation type="unfinished">Editar dirección de envio</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is not a valid Bitcoin address.</source>
+        <translation type="unfinished">La dirección introducida "%1" no es una dirección Bitcoin válida.</translation>
+    </message>
+    <message>
+        <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source>
+        <translation type="unfinished">La dirección "%1" ya existe como dirección de recepción con la etiqueta "%2" y, por lo tanto, no se puede agregar como dirección de envío.</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is already in the address book with label "%2".</source>
+        <translation type="unfinished">La dirección ingresada "%1" ya está en la libreta de direcciones con la etiqueta "%2".</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">No se pudo desbloquear el monedero.</translation>
@@ -1231,9 +1467,25 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>name</source>
         <translation type="unfinished">nombre</translation>
     </message>
-    </context>
+    <message>
+        <source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
+        <translation type="unfinished">El directorio ya existe. Agrega %1 si tiene la intención de crear un nuevo directorio aquí.</translation>
+    </message>
+    <message>
+        <source>Path already exists, and is not a directory.</source>
+        <translation type="unfinished">La ruta ya existe, y no es un directorio.</translation>
+    </message>
+    <message>
+        <source>Cannot create data directory here.</source>
+        <translation type="unfinished">No puede crear directorio de datos aquí.</translation>
+    </message>
+</context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB de espacio disponible</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(de %1 GB necesarios)</translation>
@@ -1242,14 +1494,22 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>(%1 GB needed for full chain)</source>
         <translation type="unfinished">(%1 GB necesarios para la cadena completa)</translation>
     </message>
+    <message>
+        <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
+        <translation type="unfinished">Al menos %1 GB de información será almacenada en este directorio, y seguirá creciendo a través del tiempo.</translation>
+    </message>
     <message numerus="yes">
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(suficiente para restaurar copias de seguridad de %n día(s) de antigüedad)</numerusform>
+            <numerusform>(suficiente para restaurar copias de seguridad de %n día(s) de antigüedad)</numerusform>
         </translation>
     </message>
+    <message>
+        <source>%1 will download and store a copy of the Bitcoin block chain.</source>
+        <translation type="unfinished">%1 descargará y almacenará una copia del blockchain de Bitcoin.</translation>
+    </message>
     <message>
         <source>Welcome</source>
         <translation type="unfinished">Bienvenido</translation>
@@ -1291,6 +1551,14 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
 </context>
 <context>
     <name>ModalOverlay</name>
+    <message>
+        <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
+        <translation type="unfinished">Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su monedero podría ser incorrecto. Esta información será correcta una vez que su monedero haya terminado de sincronizarse con la red bitcoin, como se detalla a continuación.</translation>
+    </message>
+    <message>
+        <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source>
+        <translation type="unfinished">La red no aceptará intentar gastar bitcoins que se vean afectados por transacciones aún no mostradas.</translation>
+    </message>
     <message>
         <source>Unknown…</source>
         <translation type="unfinished">Desconocido...</translation>
@@ -1316,6 +1584,13 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <translation type="unfinished">Desconocido. Sincronizando Cabeceras (%1, %2%)…</translation>
     </message>
 </context>
+<context>
+    <name>OpenURIDialog</name>
+    <message>
+        <source>Open bitcoin URI</source>
+        <translation type="unfinished">Abrir URI de bitcoin</translation>
+    </message>
+    </context>
 <context>
     <name>OptionsDialog</name>
     <message>
@@ -1398,6 +1673,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
         <translation type="unfinished">Ruta completa al script compatible con Bitcoin Core (ej. C:\Descargas\hwi.exe o /Usuarios/SuUsuario/Descargas/hwi.py). Cuidado: código malicioso podría robarle sus monedas!</translation>
     </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+        <translation type="unfinished">Abrir automáticamente el puerto del cliente Bitcoin en el router. Esta opción solo funciona cuando el router admite UPnP y está activado.</translation>
+    </message>
     <message>
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">Mapear el puerto usando &amp;UPnp</translation>
@@ -1418,6 +1697,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Allow incomin&amp;g connections</source>
         <translation type="unfinished">Permitir conexiones entrantes</translation>
     </message>
+    <message>
+        <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
+        <translation type="unfinished">Conectar a la red de Bitcoin a través de un proxy SOCKS5.</translation>
+    </message>
     <message>
         <source>&amp;Window</source>
         <translation type="unfinished">&amp;Ventana</translation>
@@ -1523,6 +1806,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Form</source>
         <translation type="unfinished">Formulario</translation>
     </message>
+    <message>
+        <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
+        <translation type="unfinished">La información mostrada puede estar desactualizada. Su billetera se sincroniza automáticamente con la red de Bitcoin después de establecer una conexión, pero este proceso aún no se ha completado.</translation>
+    </message>
     <message>
         <source>Watch-only:</source>
         <translation type="unfinished">Solo lectura:</translation>
@@ -1698,6 +1985,14 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
 </context>
 <context>
     <name>PaymentServer</name>
+    <message>
+        <source>Cannot start bitcoin: click-to-pay handler</source>
+        <translation type="unfinished">No se puede iniciar bitcoin: encargado click-para-pagar</translation>
+    </message>
+    <message>
+        <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
+        <translation type="unfinished">'bitcoin: //' no es un URI válido. Use 'bitcoin:' en su lugar.</translation>
+    </message>
     <message>
         <source>Cannot process payment request because BIP70 is not supported.
 Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
@@ -1706,6 +2001,10 @@ If you are receiving this error you should request the merchant provide a BIP21
 Debido a los fallos de seguridad generalizados en el BIP70, se recomienda encarecidamente ignorar las instrucciones del comerciante para cambiar de monedero.
 Si recibe este error, debe solicitar al comerciante que le proporcione un URI compatible con BIP21.</translation>
     </message>
+    <message>
+        <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
+        <translation type="unfinished">¡No se puede interpretar la URI! Esto puede deberse a una dirección Bitcoin inválida o a parámetros de URI mal formados.</translation>
+    </message>
     </context>
 <context>
     <name>PeerTableModel</name>
@@ -2062,6 +2361,10 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
         <source>&amp;Message:</source>
         <translation type="unfinished">&amp;Mensaje</translation>
     </message>
+    <message>
+        <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source>
+        <translation type="unfinished">Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud esté abierta. Nota: El mensaje no se enviará con el pago a través de la red de Bitcoin.</translation>
+    </message>
     <message>
         <source>Clear</source>
         <translation type="unfinished">Limpiar</translation>
@@ -2231,6 +2534,10 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
 
 Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por kvB" para una transacción de 500 bytes virtuales (la mitad de 1 kvB), supondría finalmente una tasa de sólo 50 satoshis.</translation>
     </message>
+    <message>
+        <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
+        <translation type="unfinished">Cuando hay menos volumen de transacciones que espacio en los bloques, los mineros y los nodos de retransmisión pueden imponer una comisión mínima. Pagar solo esta comisión mínima está bien, pero tenga en cuenta que esto puede resultar en una transacción nunca confirmada una vez que haya más demanda de transacciones de Bitcoin de la que la red puede procesar.</translation>
+    </message>
     <message>
         <source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
         <translation type="unfinished">Una comisión demasiado pequeña puede resultar en una transacción que nunca será confirmada (leer herramientas de información).</translation>
@@ -2253,6 +2560,10 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
         <translation type="unfinished">Configura una ruta externa al script en Opciones -&gt; Monedero</translation>
     </message>
+    <message>
+        <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <translation type="unfinished">Crea una Transacción de Bitcoin Parcialmente Firmada (TBPF) para uso con p.ej. un monedero fuera de linea %1, o un monedero de hardware compatible con TBPF</translation>
+    </message>
     <message>
         <source>To review recipient list click "Show Details…"</source>
         <translation type="unfinished">Para ver la lista de receptores haga clic en "Mostrar detalles"</translation>
@@ -2327,6 +2638,10 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>Warning: Invalid Bitcoin address</source>
+        <translation type="unfinished">Alerta: Dirección de Bitcoin inválida</translation>
+    </message>
     <message>
         <source>(no label)</source>
         <translation type="unfinished">(sin etiqueta)</translation>
@@ -2338,6 +2653,10 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>Choose previously used address</source>
         <translation type="unfinished">Escoger una dirección previamente usada</translation>
     </message>
+    <message>
+        <source>The Bitcoin address to send the payment to</source>
+        <translation type="unfinished">Dirección Bitcoin a la que se enviará el pago</translation>
+    </message>
     <message>
         <source>Remove this entry</source>
         <translation type="unfinished">Quitar esta entrada</translation>
@@ -2400,6 +2719,10 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
         <translation type="unfinished">Puedes firmar los mensajes con tus direcciones para demostrar que las posees. Ten cuidado de no firmar cualquier cosa vaga, ya que los ataques de phishing pueden tratar de engañarte firmando tu identidad a través de ellos. Firma solo declaraciones totalmente detalladas con las que estés de acuerdo.</translation>
     </message>
+    <message>
+        <source>The Bitcoin address to sign the message with</source>
+        <translation type="unfinished">La dirección Bitcoin con la que se firmó el mensaje</translation>
+    </message>
     <message>
         <source>Choose previously used address</source>
         <translation type="unfinished">Escoger dirección previamente usada</translation>
@@ -2412,6 +2735,18 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>Signature</source>
         <translation type="unfinished">Firma</translation>
     </message>
+    <message>
+        <source>Sign the message to prove you own this Bitcoin address</source>
+        <translation type="unfinished">Firmar un mensaje para demostrar que se posee una dirección Bitcoin</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address the message was signed with</source>
+        <translation type="unfinished">Dirección Bitcoin con la que firmar el mensaje</translation>
+    </message>
+    <message>
+        <source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
+        <translation type="unfinished">Verifique el mensaje para comprobar que fue firmado con la dirección Bitcoin indicada</translation>
+    </message>
     <message>
         <source>Message signed.</source>
         <translation type="unfinished">Mensaje firmado.</translation>
diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts
index 77f73f70d87..2b65ad22c1f 100644
--- a/src/qt/locale/bitcoin_fa.ts
+++ b/src/qt/locale/bitcoin_fa.ts
@@ -39,7 +39,7 @@
     </message>
     <message>
         <source>&amp;Export</source>
-        <translation type="unfinished">صدور</translation>
+        <translation type="unfinished">&amp;صدور</translation>
     </message>
     <message>
         <source>&amp;Delete</source>
@@ -1114,6 +1114,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">کلاینت: %1</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">مخفی کن</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts
index 69728b11921..6bb8a05dc4f 100644
--- a/src/qt/locale/bitcoin_fr.ts
+++ b/src/qt/locale/bitcoin_fr.ts
@@ -229,7 +229,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Warning: The Caps Lock key is on!</source>
-        <translation type="unfinished">Avertissement : La touche Verr. Maj. est activée !</translation>
+        <translation type="unfinished">Avertissement : La touche Verr. Maj. est activée</translation>
     </message>
 </context>
 <context>
@@ -247,7 +247,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     <name>BitcoinApplication</name>
     <message>
         <source>Runaway exception</source>
-        <translation type="unfinished">Exception fugitive</translation>
+        <translation type="unfinished">Exception excessive</translation>
     </message>
     <message>
         <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
@@ -444,7 +444,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
-        <translation type="unfinished">La valeur -maxtxfee est très élevée ! Des frais aussi élevés pourraient être payés en une seule transaction.</translation>
+        <translation type="unfinished">La valeur -maxtxfee est très élevée. Des frais aussi élevés pourraient être payés en une seule transaction.</translation>
     </message>
     <message>
         <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
@@ -484,7 +484,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
-        <translation type="unfinished">Erreur : les porte-monnaie hérités ne prennent en charge que les types d’adresse « legacy », « p2sh-segwit », et « bech32 ».</translation>
+        <translation type="unfinished">Erreur : les porte-monnaie hérités ne prennent en charge que les types d’adresse « legacy », « p2sh-segwit », et « bech32 »</translation>
     </message>
     <message>
         <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
@@ -608,7 +608,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>%s is set very high!</source>
-        <translation type="unfinished">La valeur %s est très élevée !</translation>
+        <translation type="unfinished">La valeur %s est très élevée</translation>
     </message>
     <message>
         <source>-maxmempool must be at least %d MB</source>
@@ -638,21 +638,33 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
         <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
         <translation type="unfinished">La mise à niveau -txindex lancée par une version précédente ne peut pas être achevée. Redémarrez la version précédente ou exécutez un -reindex complet.</translation>
     </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s a demandé d’écouter sur le port %u. Ce port est considéré comme « mauvais » et il est par conséquent improbable que des pairs Bitcoin Core y soient connectés. Consulter doc/p2p-bad-ports.md pour plus de précisions et une liste complète.</translation>
+    </message>
     <message>
         <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
-        <translation type="unfinished">Il est impossible de fournir des connexions particulières et en même temps demander à addrman de trouver les connexions sortantes.</translation>
+        <translation type="unfinished">Il est impossible d’indiquer des connexions précises et en même temps de demander à addrman de trouver les connexions sortantes.</translation>
     </message>
     <message>
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">Erreur de chargement de %s : le porte-monnaie signataire externe est chargé sans que la prise en charge de signataires externes soit compilée</translation>
     </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Échec de renommage du fichier peers.dat invalide. Veuillez le déplacer ou le supprimer, puis réessayer.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Les connexions sortantes sont limitées à Tor (-onlynet=onion), mais le relais pour accéder à Tor n’est pas indiqué (aucun -proxy= et aucun no -onion= n’est indiqué), ou il est explicitement interdit (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Paramètre de configuration pour %s qui n’est appliqué sur le réseau %s que s’il se trouve dans la section [%s].</translation>
     </message>
     <message>
         <source>Copyright (C) %i-%i</source>
-        <translation type="unfinished">Tous droits réservés (C) %i à %i</translation>
+        <translation type="unfinished">Tous droits réservés © %i à %i</translation>
     </message>
     <message>
         <source>Corrupted block database detected</source>
@@ -668,7 +680,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Disk space is too low!</source>
-        <translation type="unfinished">L’espace disque est trop faible !</translation>
+        <translation type="unfinished">L’espace disque est trop faible</translation>
     </message>
     <message>
         <source>Do you want to rebuild the block database now?</source>
@@ -680,7 +692,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Dump file %s does not exist.</source>
-        <translation type="unfinished">Le fichier de vidage %s n’existe pas</translation>
+        <translation type="unfinished">Le fichier de vidage %s n’existe pas.</translation>
     </message>
     <message>
         <source>Error creating %s</source>
@@ -692,7 +704,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Error initializing wallet database environment %s!</source>
-        <translation type="unfinished">Erreur d’initialisation de l’environnement de la base de données du porte-monnaie %s !</translation>
+        <translation type="unfinished">Erreur d’initialisation de l’environnement de la base de données du porte-monnaie %s </translation>
     </message>
     <message>
         <source>Error loading %s</source>
@@ -720,7 +732,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Error reading from database, shutting down.</source>
-        <translation type="unfinished">Erreur de lecture de la base de données, fermeture en cours.</translation>
+        <translation type="unfinished">Erreur de lecture de la base de données, fermeture en cours</translation>
     </message>
     <message>
         <source>Error reading next record from wallet database</source>
@@ -760,7 +772,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Error: No %s addresses available.</source>
-        <translation type="unfinished">Erreur : Aucune adresse %s n’est disponible</translation>
+        <translation type="unfinished">Erreur : Aucune adresse %s n’est disponible.</translation>
     </message>
     <message>
         <source>Error: Unable to parse version %u as a uint32_t</source>
@@ -772,7 +784,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
-        <translation type="unfinished">Échec d'écoute sur n’importe quel port. Utiliser -listen=0 si vous voulez le faire.</translation>
+        <translation type="unfinished">Échec d'écoute sur tous les ports. Si cela est voulu, utiliser -listen=0.</translation>
     </message>
     <message>
         <source>Failed to rescan the wallet during initialization</source>
@@ -800,7 +812,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Initialization sanity check failed. %s is shutting down.</source>
-        <translation type="unfinished">L’initialisation du test de cohérence a échoué. %s est en cours de fermeture.</translation>
+        <translation type="unfinished">Échec d’initialisation du test de cohérence. %s est en cours de fermeture.</translation>
     </message>
     <message>
         <source>Input not found or already spent</source>
@@ -840,7 +852,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Invalid amount for -paytxfee=&lt;amount&gt;: '%s' (must be at least %s)</source>
-        <translation type="unfinished">Le montant est invalide pour -paytxfee=&lt;montant&gt; : « %s » (doit être au moins %s)</translation>
+        <translation type="unfinished">Le montant est invalide pour -paytxfee=&lt;amount&gt; : « %s » (doit être au moins %s)</translation>
     </message>
     <message>
         <source>Invalid netmask specified in -whitelist: '%s'</source>
@@ -848,7 +860,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Loading P2P addresses…</source>
-        <translation type="unfinished">Chargement des adresses P2P…</translation>
+        <translation type="unfinished">Chargement des adresses P2P…</translation>
     </message>
     <message>
         <source>Loading banlist…</source>
@@ -872,7 +884,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
-        <translation type="unfinished">Un port doit être précisé avec -whitebind : « %s »</translation>
+        <translation type="unfinished">Un port doit être indiqué avec -whitebind : « %s »</translation>
     </message>
     <message>
         <source>No addresses available</source>
@@ -880,7 +892,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
-        <translation type="unfinished">Aucun serveur mandataire n’est indiqué. Utilisez -proxy=&lt;ip&gt; ou -proxy=&lt;ip:port&gt;</translation>
+        <translation type="unfinished">Aucun serveur mandataire n’est indiqué. Utiliser -proxy=&lt;ip&gt; ou -proxy=&lt;ip:port&gt;</translation>
     </message>
     <message>
         <source>Not enough file descriptors available.</source>
@@ -888,7 +900,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Prune cannot be configured with a negative value.</source>
-        <translation type="unfinished">L’élagage ne peut pas être configuré avec une valeur négative.</translation>
+        <translation type="unfinished">L’élagage ne peut pas être configuré avec une valeur négative</translation>
     </message>
     <message>
         <source>Prune mode is incompatible with -coinstatsindex.</source>
@@ -896,7 +908,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Prune mode is incompatible with -txindex.</source>
-        <translation type="unfinished">Le mode élagage n’est pas compatible avec -txindex.</translation>
+        <translation type="unfinished">Le mode élagage n’est pas compatible avec -txindex</translation>
     </message>
     <message>
         <source>Pruning blockstore…</source>
@@ -928,11 +940,11 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>SQLiteDatabase: Unexpected application id. Expected %u, got %u</source>
-        <translation type="unfinished">SQLiteDatabase : l’ID de l’application est inattendu. %u était attendu, %u été retourné</translation>
+        <translation type="unfinished">SQLiteDatabase : l’ID de l’application est inattendu. %u attendu, %u retourné</translation>
     </message>
     <message>
         <source>Section [%s] is not recognized.</source>
-        <translation type="unfinished">La section [%s] n’est pas reconnue.</translation>
+        <translation type="unfinished">La section [%s] n’est pas reconnue</translation>
     </message>
     <message>
         <source>Signing transaction failed</source>
@@ -952,7 +964,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Specified blocks directory "%s" does not exist.</source>
-        <translation type="unfinished">Le répertoire des blocs indiqué « %s » n’existe pas.</translation>
+        <translation type="unfinished">Le répertoire des blocs indiqué « %s » n’existe pas</translation>
     </message>
     <message>
         <source>Starting network threads…</source>
@@ -964,7 +976,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>The specified config file %s does not exist</source>
-        <translation type="unfinished">Le fichier de configuration %s n’existe pas</translation>
+        <translation type="unfinished">Le fichier de configuration indiqué %s n’existe pas</translation>
     </message>
     <message>
         <source>The transaction amount is too small to pay the fee</source>
@@ -1020,7 +1032,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Unable to bind to %s on this computer. %s is probably already running.</source>
-        <translation type="unfinished">Impossible de se lier à %s sur cet ordinateur. %s fonctionne probablement déjà.</translation>
+        <translation type="unfinished">Impossible de se lier à %s sur cet ordinateur. %s fonctionne probablement déjà</translation>
     </message>
     <message>
         <source>Unable to create the PID file '%s': %s</source>
@@ -1048,15 +1060,15 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Unknown -blockfilterindex value %s.</source>
-        <translation type="unfinished">Valeur -blockfilterindex inconnue %s.</translation>
+        <translation type="unfinished">La valeur -blockfilterindex %s est inconnue</translation>
     </message>
     <message>
         <source>Unknown address type '%s'</source>
-        <translation type="unfinished">Type d’adresse inconnu « %s »</translation>
+        <translation type="unfinished">Le type d’adresse « %s » est inconnu</translation>
     </message>
     <message>
         <source>Unknown change type '%s'</source>
-        <translation type="unfinished">Le type de monnaie est inconnu « %s »</translation>
+        <translation type="unfinished">Le type de monnaie « %s » est inconnu</translation>
     </message>
     <message>
         <source>Unknown network specified in -onlynet: '%s'</source>
@@ -1068,7 +1080,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Unsupported logging category %s=%s.</source>
-        <translation type="unfinished">La catégorie de journalisation n’est pas prise en charge %s=%s.</translation>
+        <translation type="unfinished">La catégorie de journalisation %s=%s n’est pas prise en charge</translation>
     </message>
     <message>
         <source>Upgrading UTXO database</source>
@@ -1076,7 +1088,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>User Agent comment (%s) contains unsafe characters.</source>
-        <translation type="unfinished">Le commentaire de l’agent utilisateur (%s) comporte des caractères dangereux.</translation>
+        <translation type="unfinished">Le commentaire de l’agent utilisateur (%s) comporte des caractères dangereux</translation>
     </message>
     <message>
         <source>Verifying blocks…</source>
@@ -1088,7 +1100,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Wallet needed to be rewritten: restart %s to complete</source>
-        <translation type="unfinished">Le porte-monnaie devait être réécrit : redémarrez %s pour terminer l’opération.</translation>
+        <translation type="unfinished">Le porte-monnaie devait être réécrit : redémarrer %s pour terminer l’opération.</translation>
     </message>
 </context>
 <context>
@@ -1216,15 +1228,15 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Close Wallet…</source>
-        <translation type="unfinished">Fermer le porte-monnaie...</translation>
+        <translation type="unfinished">Fermer le porte-monnaie…</translation>
     </message>
     <message>
         <source>Create Wallet…</source>
-        <translation type="unfinished">Créer un porte-monnaie...</translation>
+        <translation type="unfinished">Créer un porte-monnaie…</translation>
     </message>
     <message>
         <source>Close All Wallets…</source>
-        <translation type="unfinished">Fermer tous les porte-monnaie...</translation>
+        <translation type="unfinished">Fermer tous les porte-monnaie…</translation>
     </message>
     <message>
         <source>&amp;File</source>
@@ -2348,7 +2360,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Use separate SOCKS&amp;5 proxy to reach peers via Tor onion services:</source>
-        <translation type="unfinished">Utiliser un mandataire SOCKS&amp;5 séparé pour atteindre les pairs par les services oignon de Tor.</translation>
+        <translation type="unfinished">Utiliser un mandataire SOCKS&amp;5 séparé pour atteindre les pairs par les services oignon de Tor :</translation>
     </message>
     <message>
         <source>Monospaced font in the Overview tab:</source>
@@ -2565,7 +2577,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Unknown error processing transaction.</source>
-        <translation type="unfinished">Erreur inconnue lors de traitement de la transaction.</translation>
+        <translation type="unfinished">Erreur inconnue lors de traitement de la transaction</translation>
     </message>
     <message>
         <source>Transaction broadcast successfully! Transaction ID: %1</source>
@@ -2671,7 +2683,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
-        <translation type="unfinished">L’URI ne peut pas être analysée ! Cela peut être causé par une adresse Bitcoin invalide ou par des paramètres d’URI mal formés.</translation>
+        <translation type="unfinished">L’URI ne peut pas être analysée. Cela peut être causé par une adresse Bitcoin invalide ou par des paramètres d’URI mal formés.</translation>
     </message>
     <message>
         <source>Payment request file handling</source>
@@ -2944,7 +2956,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>Wants Tx Relay</source>
-        <translation type="unfinished">Veut Relais Tx {Souhaite relayer la transaction}</translation>
+        <translation type="unfinished">Veut relayer les transactions</translation>
     </message>
     <message>
         <source>High bandwidth BIP152 compact block relay: %1</source>
@@ -3370,7 +3382,7 @@ Pour plus de précisions sur cette console, tapez %6.
     </message>
     <message>
         <source>Insufficient funds!</source>
-        <translation type="unfinished">Les fonds sont insuffisants !</translation>
+        <translation type="unfinished">Les fonds sont insuffisants</translation>
     </message>
     <message>
         <source>Quantity:</source>
@@ -3675,7 +3687,7 @@ Note : Les frais étant calculés par octet, un taux de frais de « 100 satoshi
     </message>
     <message>
         <source>Transaction creation failed!</source>
-        <translation type="unfinished">Échec de création de la transaction !</translation>
+        <translation type="unfinished">Échec de création de la transaction</translation>
     </message>
     <message>
         <source>A fee higher than %1 is considered an absurdly high fee.</source>
diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts
index 89be4f3a3a9..77e86b6e853 100644
--- a/src/qt/locale/bitcoin_hu.ts
+++ b/src/qt/locale/bitcoin_hu.ts
@@ -619,6 +619,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
         <translation type="unfinished">A -txindex frissítése nem fejezhető be mivel egy korábbi verzió kezdte el. Indítsa újra az előző verziót vagy futtassa a teljes -reindex parancsot.</translation>
     </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s kérés figyel a(z) %u porton. Ennek a portnak a megítélése "rossz" ezért valószínűtlen, hogy más Bitcoin Core partner ezen keresztül csatlakozna. Részletekért és teljes listáért lásd doc/p2p-bad-ports.md.</translation>
+    </message>
     <message>
         <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
         <translation type="unfinished">Nem lehetséges a megadott kapcsolatok és az addrman által felderített kapcsolatok egyidejű használata.</translation>
@@ -627,6 +631,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">Hiba %s betöltése közben: Külső aláíró tárca betöltése külső aláírók támogatása nélkül</translation>
     </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Az érvénytelen peers.dat fájl átnevezése sikertelen. Kérjük mozgassa vagy törölje, majd próbálja újra.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">A kilépő kapcsolatok a Tor-ra korlátozottak (-onlynet=onion) de nincs megadva a Tor hálózatot elérő proxy (hiányzó -proxy= és -onion= paraméterek) vagy kifejezetten tiltva van (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">A konfigurációs beálltás %s kizárólag az %s hálózatra vonatkozik amikor a [%s] szekcióban van.</translation>
diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts
index 99efe48be77..ba12f4991d1 100644
--- a/src/qt/locale/bitcoin_it.ts
+++ b/src/qt/locale/bitcoin_it.ts
@@ -2099,7 +2099,7 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
     </message>
     <message>
         <source>Prune &amp;block storage to</source>
-        <translation type="unfinished">Eliminare e bloccare l'archiviazione su</translation>
+        <translation type="unfinished">Modalità "prune": elimina i blocchi dal disco dopo</translation>
     </message>
     <message>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts
index 7411fdd82b7..86f9d4ed9b1 100644
--- a/src/qt/locale/bitcoin_nl.ts
+++ b/src/qt/locale/bitcoin_nl.ts
@@ -137,7 +137,7 @@ Ondertekenen is alleen mogelijk met adressen van het type 'legacy'.</translation
     </message>
     <message>
         <source>Show passphrase</source>
-        <translation type="unfinished">Laat wachtwoordzin zien</translation>
+        <translation type="unfinished">Toon wachtwoordzin</translation>
     </message>
     <message>
         <source>Encrypt wallet</source>
@@ -356,36 +356,36 @@ Ondertekenen is alleen mogelijk met adressen van het type 'legacy'.</translation
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n seconde(n)</numerusform>
+            <numerusform>%n seconde(n)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minu(u)t(en)</numerusform>
+            <numerusform>%n minu(u)t(en)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n u(u)r(en)</numerusform>
+            <numerusform>%n u(u)r(en)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n dag(en)</numerusform>
+            <numerusform>%n dag(en)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n we(e)k(en)</numerusform>
+            <numerusform>%n we(e)k(en)</numerusform>
         </translation>
     </message>
     <message>
@@ -395,8 +395,8 @@ Ondertekenen is alleen mogelijk met adressen van het type 'legacy'.</translation
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n ja(a)r(en)</numerusform>
+            <numerusform>%n ja(a)r(en)</numerusform>
         </translation>
     </message>
     <message>
@@ -615,6 +615,30 @@ Indien dit het geval is, gelieve de software te gebruiken waarmee deze portefeui
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Mag niet schrijven naar gegevensmap '%s'; controleer bestandsrechten.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">De -txindex upgrade die door een eerdere versie is gestart, kan niet worden voltooid. Herstart opnieuw met de vorige versie of voer een volledige -reindex uit.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s verzoekt om te luisteren op poort %u. Deze poort wordt als "slecht" beschouwd en het is daarom onwaarschijnlijk dat Bitcoin Core peers er verbinding mee maken. Zie doc/p2p-bad-ports.md voor details en een volledige lijst.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Kan geen specifieke verbindingen verstrekken en addrman tegelijkertijd uitgaande verbindingen laten vinden.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Fout bij laden %s: Portemonnee voor externe ondertekenaars wordt geladen zonder gecompileerde ondersteuning voor externe ondertekenaars</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Kan de naam van het ongeldige peers.dat bestand niet hernoemen. Verplaats of verwijder het en probeer het opnieuw.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Uitgaande verbindingen beperkt tot Tor (-onlynet=onion) maar de proxy voor het bereiken van het Tor netwerk is niet verstrekt (geen -proxy= en geen -onion= opgegeven) of het is expliciet verboden (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Configuratie-instellingen voor %s alleen toegepast op %s network wanneer in [%s] sectie.</translation>
@@ -963,6 +987,10 @@ Indien dit het geval is, gelieve de software te gebruiken waarmee deze portefeui
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Transactiebedragen moeten positief zijn</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Transactie change output is buiten bereik</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">Transactie heeft een te lange mempoolketen</translation>
@@ -1258,8 +1286,8 @@ Indien dit het geval is, gelieve de software te gebruiken waarmee deze portefeui
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n blok(ken) aan transactiegeschiedenis verwerkt.</numerusform>
+            <numerusform>%n blok(ken) aan transactiegeschiedenis verwerkt.</numerusform>
         </translation>
     </message>
     <message>
@@ -1370,12 +1398,20 @@ Indien dit het geval is, gelieve de software te gebruiken waarmee deze portefeui
         <source>Main Window</source>
         <translation type="unfinished">Hoofdscherm</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Verbergen</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">T&amp;oon</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n actieve verbinding(en) met het Bitcoin netwerk.</numerusform>
+            <numerusform>%n actieve verbinding(en) met het Bitcoin netwerk.</numerusform>
         </translation>
     </message>
     <message>
@@ -1856,6 +1892,10 @@ Dit is ideaal voor alleen-lezen portommonees.</translation>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB beschikbare ruimte </translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(van %1 GB nodig)</translation>
@@ -1876,8 +1916,8 @@ Dit is ideaal voor alleen-lezen portommonees.</translation>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(voldoende om back-ups van %n dag(en) oud te herstellen)</numerusform>
+            <numerusform>(voldoende om back-ups van %n dag(en) oud te herstellen)</numerusform>
         </translation>
     </message>
     <message>
@@ -2007,7 +2047,7 @@ Dit is ideaal voor alleen-lezen portommonees.</translation>
     </message>
     <message>
         <source>Estimated time left until synced</source>
-        <translation type="unfinished">Geschatte tijd totdat uw portemonnee gelijk loopt met het bitcoin netwerk.</translation>
+        <translation type="unfinished">Geschatte resterende tijd tot synchronisatie is voltooid</translation>
     </message>
     <message>
         <source>Hide</source>
@@ -2024,6 +2064,10 @@ Dit is ideaal voor alleen-lezen portommonees.</translation>
 </context>
 <context>
     <name>OpenURIDialog</name>
+    <message>
+        <source>Open bitcoin URI</source>
+        <translation type="unfinished">Open bitcoin-URI</translation>
+    </message>
     <message>
         <source>Paste address from clipboard</source>
         <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
@@ -3576,8 +3620,8 @@ Vb. een offline %1 portemonee, of een PSBT-combatiebele hardware portemonee.</tr
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Naar schatting begint de bevestiging binnen %n blok(ken).</numerusform>
+            <numerusform>Naar schatting begint de bevestiging binnen %n blok(ken).</numerusform>
         </translation>
     </message>
     <message>
@@ -3898,8 +3942,8 @@ Vb. een offline %1 portemonee, of een PSBT-combatiebele hardware portemonee.</tr
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>komt beschikbaar na %n nieuwe blokken</numerusform>
+            <numerusform>komt beschikbaar na %n nieuwe blokken</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_sl.ts b/src/qt/locale/bitcoin_sl.ts
index bf7e3c4dd15..eca255724ab 100644
--- a/src/qt/locale/bitcoin_sl.ts
+++ b/src/qt/locale/bitcoin_sl.ts
@@ -619,6 +619,14 @@ Podpisovanje je možno le s podedovanimi ("legacy") naslovi.</translation>
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">Napaka pri nalaganu %s: Denarnica za zunanje podpisovanje naložena, podpora za zunanje podpisovanje pa ni prevedena</translation>
     </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Preimenovanje neveljavne datoteke peers.dat je spodletelo. Prosimo, premaknite ali izbrišite jo in poskusite znova.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Izhodne povezave so omejen na Tor (-onlynet=onion), a proxy za dostop do omrežja Tor ni nastavljen (manjkata tako -proxy= kot -onion=) ali pa pa je Tor izrecno prepoveda (-onion=0).</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Konfiguracijske nastavitve za %s se na omrežju %s upoštevajo le, če so zapisane v odseku [%s].</translation>
diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/bitcoin_th.ts
index b553fd26aa3..80947f700f0 100644
--- a/src/qt/locale/bitcoin_th.ts
+++ b/src/qt/locale/bitcoin_th.ts
@@ -314,6 +314,46 @@
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">เกิดข้อผิดพลาดในการโหลด %s: กำลังโหลดวอลเล็ตผู้ลงนามภายนอกโดยไม่มีการรวบรวมการสนับสนุนผู้ลงนามภายนอก</translation>
     </message>
+    <message>
+        <source>Could not find asmap file %s</source>
+        <translation type="unfinished">ไม่ตรวจพบไฟล์ asmap %s</translation>
+    </message>
+    <message>
+        <source>Could not parse asmap file %s</source>
+        <translation type="unfinished">ไม่สามารถแยกวิเคราะห์ไฟล์ asmap %s</translation>
+    </message>
+    <message>
+        <source>Disk space is too low!</source>
+        <translation type="unfinished">พื้นที่ว่างดิสก์เหลือน้อยเกินไป!</translation>
+    </message>
+    <message>
+        <source>Do you want to rebuild the block database now?</source>
+        <translation type="unfinished">คุณต้องการาร้างฐานข้อมูลบล็อกใหม่ตอนนี้หรือไม่?</translation>
+    </message>
+    <message>
+        <source>Done loading</source>
+        <translation type="unfinished">การโหลดเสร็จสิ้น</translation>
+    </message>
+    <message>
+        <source>Dump file %s does not exist.</source>
+        <translation type="unfinished"> ไม่มีไฟล์ดัมพ์ %s </translation>
+    </message>
+    <message>
+        <source>Error creating %s</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการสร้าง%s</translation>
+    </message>
+    <message>
+        <source>Error initializing block database</source>
+        <translation type="unfinished">เกิดข้อผิดพลาดในการเริ่มต้นฐานข้อมูลบล็อก</translation>
+    </message>
+    <message>
+        <source>Error loading %s</source>
+        <translation type="unfinished">การโหลดเกิดข้อผิดพลาด %s</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Private keys can only be disabled during creation</source>
+        <translation type="unfinished">การโหลดเกิดข้อผิดพลาด %s: Private keys สามารถปิดการใช้งานระหว่างการสร้างขึ้นเท่านั้น</translation>
+    </message>
     <message>
         <source>Error loading %s: Wallet corrupted</source>
         <translation type="unfinished">เกิดข้อผิดพลาดในการโหลด %s: วอลเล็ตเกิดความเสียหาย</translation>
diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts
index f6335fd16c5..c62f8296d5e 100644
--- a/src/qt/locale/bitcoin_uk.ts
+++ b/src/qt/locale/bitcoin_uk.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Клацніть правою кнопкою миші для редагування адреси або мітки</translation>
+        <translation type="unfinished">Клацніть правою кнопкою миші, щоб змінити адресу або мітку</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -15,7 +15,7 @@
     </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">Копіювати виділену адресу в буфер обміну</translation>
+        <translation type="unfinished">Скопіюйте поточну вибрану адресу в системний буфер обміну</translation>
     </message>
     <message>
         <source>&amp;Copy</source>
@@ -27,15 +27,15 @@
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
-        <translation type="unfinished">Вилучити вибрану адресу з переліку</translation>
+        <translation type="unfinished">Видалити поточну вибрану адресу зі списку </translation>
     </message>
     <message>
         <source>Enter address or label to search</source>
-        <translation type="unfinished">Введіть адресу чи мітку для пошуку</translation>
+        <translation type="unfinished">Введіть адресу або мітку для пошуку</translation>
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">Експортувати дані з поточної вкладки в файл</translation>
+        <translation type="unfinished">Експортувати дані з поточної вкладки у файл</translation>
     </message>
     <message>
         <source>&amp;Export</source>
@@ -656,6 +656,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
         <translation type="unfinished">Оновлення -txindex, що було почате попередньою версією, не вдалося завершити. Перезапустить попередню версію або виконайте повний -reindex.</translation>
     </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">1 %s запит на прослуховування порту 2 %u . Цей порт вважається «поганим», і тому малоймовірно, що будь-які однорангові Bitcoin Core підключаються до нього. Дивіться doc/p2p-bad-ports.md для отримання детальної інформації та повного списку</translation>
+    </message>
     <message>
         <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
         <translation type="unfinished">Не вдалося встановити визначені з'єднання і одночасно використовувати addrman для встановлення вихідних з'єднань.</translation>
@@ -664,6 +668,15 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">Помилка завантаження %s: Завантаження гаманця зі зовнішнім підписувачем, але скомпільовано без підтримки зовнішнього підписування</translation>
     </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Не вдалося перейменувати недійсний файл peers.dat. Будь ласка, перемістіть його та повторіть спробу </translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Вихідні з'єднання обмежені Tor (-onlynet=onion), але проксі-сервер для доступу до мережі Tor не надається (не надано -proxy= і -onion=) або це явно заборонено (-onion=0)
+ </translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Налаштування конфігурації %s застосовується лише для мережі %s у розділі [%s].</translation>
@@ -1242,15 +1255,15 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Close Wallet…</source>
-        <translation type="unfinished">Закрити Гаманець…</translation>
+        <translation type="unfinished">Закрити гаманець…</translation>
     </message>
     <message>
         <source>Create Wallet…</source>
-        <translation type="unfinished">Створити Гаманець…</translation>
+        <translation type="unfinished">Створити гаманець…</translation>
     </message>
     <message>
         <source>Close All Wallets…</source>
-        <translation type="unfinished">Закрити Всі Гаманці…</translation>
+        <translation type="unfinished">Закрити всі гаманці…</translation>
     </message>
     <message>
         <source>&amp;File</source>
@@ -1348,10 +1361,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Up to date</source>
         <translation type="unfinished">Синхронізовано</translation>
     </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">Завантажити частково підписану біткоїн-транзакцію (PSBT) з файлу</translation>
+    </message>
     <message>
         <source>Load PSBT from &amp;clipboard…</source>
         <translation type="unfinished">Завантажити PSBT-транзакцію з &amp;буфера обміну…</translation>
     </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">Завантажити частково підписану біткоїн-транзакцію (PSBT) з буфера обміну</translation>
+    </message>
     <message>
         <source>Node window</source>
         <translation type="unfinished">Вікно вузла</translation>
@@ -1362,11 +1383,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>&amp;Sending addresses</source>
-        <translation type="unfinished">&amp;Адреси для відправлення</translation>
+        <translation type="unfinished">Адреси для &amp;відправлення</translation>
     </message>
     <message>
         <source>&amp;Receiving addresses</source>
-        <translation type="unfinished">&amp;Адреси для отримання</translation>
+        <translation type="unfinished">Адреси для &amp;отримання</translation>
     </message>
     <message>
         <source>Open a bitcoin: URI</source>
@@ -1394,7 +1415,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>&amp;Mask values</source>
-        <translation type="unfinished">&amp;Приховати значення</translation>
+        <translation type="unfinished">При&amp;ховати значення</translation>
     </message>
     <message>
         <source>Mask the values in the Overview tab</source>
@@ -2235,7 +2256,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message>
         <source>Subtract &amp;fee from amount by default</source>
         <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
-        <translation type="unfinished">За замовчуванням віднімати &amp;комісію від суми відправлення.</translation>
+        <translation type="unfinished">За замовчуванням віднімати &amp;комісію від суми відправлення</translation>
     </message>
     <message>
         <source>Expert</source>
@@ -2962,7 +2983,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>Node window</source>
-        <translation type="unfinished">Вікно вузлів</translation>
+        <translation type="unfinished">Вікно вузла</translation>
     </message>
     <message>
         <source>Current block height</source>

From b6253829c1827c6fc011187adafdd49e84a489b2 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Fri, 8 Apr 2022 16:06:37 +0200
Subject: [PATCH 048/187] doc: Update manual pages for 23.0rc4

Tree-SHA512: 0124eaf86ef7324c14a77eafab8f53f0f3da83b19bc63922218051dd50bc154ab8e47f427fdc4ac5c2c3c34004ffd8e2df7ec134c66a16a78c4917a4ce1edae4
---
 doc/man/bitcoin-cli.1    |  6 +++---
 doc/man/bitcoin-qt.1     | 14 +++++++-------
 doc/man/bitcoin-tx.1     |  6 +++---
 doc/man/bitcoin-util.1   |  6 +++---
 doc/man/bitcoin-wallet.1 |  6 +++---
 doc/man/bitcoind.1       | 14 +++++++-------
 6 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index 2fde83de21f..bd2d60c5ef8 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-CLI "1" "March 2022" "bitcoin-cli v23.0.0rc3" "User Commands"
+.TH BITCOIN-CLI "1" "April 2022" "bitcoin-cli v23.0.0rc4" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc3
+bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc4
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc3
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.0.0rc3
+Bitcoin Core RPC client version v23.0.0rc4
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index eccb19443ce..ea9e33f7568 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-QT "1" "March 2022" "bitcoin-qt v23.0.0rc3" "User Commands"
+.TH BITCOIN-QT "1" "April 2022" "bitcoin-qt v23.0.0rc4" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc3
+bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc4
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc3
+Bitcoin Core version v23.0.0rc4
 .SH OPTIONS
 .HP
 \-?
@@ -574,10 +574,10 @@ Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
 optional). If <category> is not supplied or if <category> = 1,
 output all debugging information. <category> can be: addrman,
 bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
-ipc, leveldb, libevent, lock, mempool, mempoolrej, net, proxy,
-prune, qt, rand, reindex, rpc, selectcoins, tor, util,
-validation, walletdb, zmq. This option can be specified multiple
-times to output multiple categories.
+ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
+qt, rand, reindex, rpc, selectcoins, tor, util, validation,
+walletdb, zmq. This option can be specified multiple times to
+output multiple categories.
 .HP
 \fB\-debugexclude=\fR<category>
 .IP
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index d60afdd8ea1..20b088101f3 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-TX "1" "March 2022" "bitcoin-tx v23.0.0rc3" "User Commands"
+.TH BITCOIN-TX "1" "April 2022" "bitcoin-tx v23.0.0rc4" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc3
+bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc4
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc3
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.0.0rc3
+Bitcoin Core bitcoin\-tx utility version v23.0.0rc4
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index 97cc3c128ac..dbac5a889c8 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-UTIL "1" "March 2022" "bitcoin-util v23.0.0rc3" "User Commands"
+.TH BITCOIN-UTIL "1" "April 2022" "bitcoin-util v23.0.0rc4" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.0.0rc3
+bitcoin-util \- manual page for bitcoin-util v23.0.0rc4
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.0.0rc3
+Bitcoin Core bitcoin\-util utility version v23.0.0rc4
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 7333de7ad12..900db6a0503 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-WALLET "1" "March 2022" "bitcoin-wallet v23.0.0rc3" "User Commands"
+.TH BITCOIN-WALLET "1" "April 2022" "bitcoin-wallet v23.0.0rc4" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc3
+bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc4
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.0.0rc3
+Bitcoin Core bitcoin\-wallet version v23.0.0rc4
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index c1baa907639..7b5ef2a024e 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIND "1" "March 2022" "bitcoind v23.0.0rc3" "User Commands"
+.TH BITCOIND "1" "April 2022" "bitcoind v23.0.0rc4" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.0.0rc3
+bitcoind \- manual page for bitcoind v23.0.0rc4
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc3
+Bitcoin Core version v23.0.0rc4
 .SH OPTIONS
 .HP
 \-?
@@ -574,10 +574,10 @@ Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
 optional). If <category> is not supplied or if <category> = 1,
 output all debugging information. <category> can be: addrman,
 bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
-ipc, leveldb, libevent, lock, mempool, mempoolrej, net, proxy,
-prune, qt, rand, reindex, rpc, selectcoins, tor, util,
-validation, walletdb, zmq. This option can be specified multiple
-times to output multiple categories.
+ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
+qt, rand, reindex, rpc, selectcoins, tor, util, validation,
+walletdb, zmq. This option can be specified multiple times to
+output multiple categories.
 .HP
 \fB\-debugexclude=\fR<category>
 .IP

From a75b8ec836a5a5c08aebaf2efd99d5c34d033292 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Wed, 13 Apr 2022 11:41:45 +0100
Subject: [PATCH 049/187] guix: fix GCC 10.3.0 + mingw-w64 setjmp/longjmp
 issues

This commit backports a patch to the GCC 10.3.0 we build for Windows
cross-compilation in Guix. The commit has been backported to the GCC
releases/gcc-10 branch, but hasn't yet made it into a release.

The patch corrects a regression from an earlier GCC commit, see:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=357c4350680bf29f0c7a115424e3da11c53b5582
and
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=074226d5aa86cd3de517014acfe34c7f69a2ccc7,
related to the way newer versions of mingw-w64 implement setjmp/longjmp.

Ultimately this was causing a crash for us when Windows users were
viewing the network traffic tab inside the GUI. After some period, long
enough that a buffer would need reallocating, a call into FreeTypes
gray_record_cell() would result in a call to ft_longjmp (longjmp), which
would then trigger a crash.

Fixes: https://github.com/bitcoin-core/gui/issues/582.

See also:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=e8d1ca7d2c344a411779892616c423e157f4aea8.
https://bugreports.qt.io/browse/QTBUG-93476.

Github-Pull: #24842
Rebased-From: 457148a803cee02897b7428fa7b3eb93eed71e4c
---
 contrib/guix/manifest.scm                     |  7 +-
 contrib/guix/patches/gcc-broken-longjmp.patch | 68 +++++++++++++++++++
 2 files changed, 72 insertions(+), 3 deletions(-)
 create mode 100644 contrib/guix/patches/gcc-broken-longjmp.patch

diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index 5bf8949c372..11bfe80b1de 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -166,9 +166,10 @@ desirable for building Bitcoin Core release binaries."
 (define (make-gcc-without-newlib gcc)
   (package-with-extra-configure-variable gcc "--with-newlib" "no"))
 
-(define (make-mingw-w64-cross-gcc-vmov-alignment cross-gcc)
+(define (make-mingw-w64-cross-gcc cross-gcc)
   (package-with-extra-patches cross-gcc
-    (search-our-patches "vmov-alignment.patch")))
+    (search-our-patches "vmov-alignment.patch"
+                        "gcc-broken-longjmp.patch")))
 
 (define (make-mingw-pthreads-cross-toolchain target)
   "Create a cross-compilation toolchain package for TARGET"
@@ -176,7 +177,7 @@ desirable for building Bitcoin Core release binaries."
          (pthreads-xlibc mingw-w64-x86_64-winpthreads)
          (pthreads-xgcc (make-gcc-with-pthreads
                          (cross-gcc target
-                                    #:xgcc (make-gcc-without-newlib (make-ssp-fixed-gcc (make-mingw-w64-cross-gcc-vmov-alignment base-gcc)))
+                                    #:xgcc (make-gcc-without-newlib (make-ssp-fixed-gcc (make-mingw-w64-cross-gcc base-gcc)))
                                     #:xbinutils xbinutils
                                     #:libc pthreads-xlibc))))
     ;; Define a meta-package that propagates the resulting XBINUTILS, XLIBC, and
diff --git a/contrib/guix/patches/gcc-broken-longjmp.patch b/contrib/guix/patches/gcc-broken-longjmp.patch
new file mode 100644
index 00000000000..1cfc0918b09
--- /dev/null
+++ b/contrib/guix/patches/gcc-broken-longjmp.patch
@@ -0,0 +1,68 @@
+commit eb5698897c52702498938592d7f76e67d126451f
+Author: Eric Botcazou <ebotcazou@adacore.com>
+Date:   Wed May 5 22:48:51 2021 +0200
+
+    Fix PR target/100402
+    
+    This is a regression for 64-bit Windows present from mainline down to the 9
+    branch and introduced by the fix for PR target/99234.  Again SEH, but with
+    a twist related to the way MinGW implements setjmp/longjmp, which turns out
+    to be piggybacked on SEH with recent versions of MinGW, i.e. the longjmp
+    performs a bona-fide unwinding of the stack, because it calls RtlUnwindEx
+    with the second argument initially passed to setjmp, which is the result of
+    __builtin_frame_address (0) in the MinGW header file:
+    
+      define setjmp(BUF) _setjmp((BUF), __builtin_frame_address (0))
+    
+    This means that we directly expose the frame pointer to the SEH machinery
+    here (unlike with regular exception handling where we use an intermediate
+    CFA) and thus that we cannot do whatever we want with it.  The old code
+    would leave it unaligned, i.e. not multiple of 16, whereas the new code
+    aligns it, but this breaks for some reason; at least it appears that a
+    .seh_setframe directive with 0 as second argument always works, so the
+    fix aligns it this way.
+    
+    gcc/
+            PR target/100402
+            * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
+            always return the establisher frame for __builtin_frame_address (0).
+    gcc/testsuite/
+            * gcc.c-torture/execute/20210505-1.c: New test.
+
+diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
+index 2f838840e96..06ad1b2274e 100644
+--- a/gcc/config/i386/i386.c
++++ b/gcc/config/i386/i386.c
+@@ -6356,12 +6356,29 @@ ix86_compute_frame_layout (void)
+ 	 area, see the SEH code in config/i386/winnt.c for the rationale.  */
+       frame->hard_frame_pointer_offset = frame->sse_reg_save_offset;
+ 
+-      /* If we can leave the frame pointer where it is, do so.  Also, return
++      /* If we can leave the frame pointer where it is, do so; however return
+ 	 the establisher frame for __builtin_frame_address (0) or else if the
+-	 frame overflows the SEH maximum frame size.  */
++	 frame overflows the SEH maximum frame size.
++
++	 Note that the value returned by __builtin_frame_address (0) is quite
++	 constrained, because setjmp is piggybacked on the SEH machinery with
++	 recent versions of MinGW:
++
++	  #    elif defined(__SEH__)
++	  #     if defined(__aarch64__) || defined(_ARM64_)
++	  #      define setjmp(BUF) _setjmp((BUF), __builtin_sponentry())
++	  #     elif (__MINGW_GCC_VERSION < 40702)
++	  #      define setjmp(BUF) _setjmp((BUF), mingw_getsp())
++	  #     else
++	  #      define setjmp(BUF) _setjmp((BUF), __builtin_frame_address (0))
++	  #     endif
++
++	 and the second argument passed to _setjmp, if not null, is forwarded
++	 to the TargetFrame parameter of RtlUnwindEx by longjmp (after it has
++	 built an ExceptionRecord on the fly describing the setjmp buffer).  */
+       const HOST_WIDE_INT diff
+ 	= frame->stack_pointer_offset - frame->hard_frame_pointer_offset;
+-      if (diff <= 255)
++      if (diff <= 255 && !crtl->accesses_prior_frames)
+ 	{
+ 	  /* The resulting diff will be a multiple of 16 lower than 255,
+ 	     i.e. at most 240 as required by the unwind data structure.  */

From 30ad7ac8fe90eefaff01071fc42051d81843e9f8 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 14 Apr 2022 17:26:31 +0200
Subject: [PATCH 050/187] build: Bump rc to 23.0rc5

Tree-SHA512: 394d58796c13d8ce2cef2fc0f2dc364cd2736cefe019e4cf6bef82b773c2c8a8ecb77ead67014eab9046c40d416096a56ebfaaacac2d4485c40f1ec9c4659638
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 8ace86f155c..95ede9a4822 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 0)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 4)
+define(_CLIENT_VERSION_RC, 5)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From cf42ffdaca731f2d78782da057874d13793f3d94 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 14 Apr 2022 17:30:31 +0200
Subject: [PATCH 051/187] qt: 23.0rc5 translations update

Tree-SHA512: 86a246bf5a817084f077ace118edad16dc48d06ec8d39476d82d6d6c5010bde9ec91eec00d7bd9736fc3ecfd1b67629f06e38798d484e6a0f09768553a52a231
---
 src/qt/locale/bitcoin_el.ts    |   4 +
 src/qt/locale/bitcoin_th.ts    | 895 +++++++++++++++++++++++++--------
 src/qt/locale/bitcoin_zh_CN.ts |  12 +
 3 files changed, 708 insertions(+), 203 deletions(-)

diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts
index b581c8bacae..993a77a8a48 100644
--- a/src/qt/locale/bitcoin_el.ts
+++ b/src/qt/locale/bitcoin_el.ts
@@ -472,6 +472,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source>
         <translation type="unfinished">Κλάδεμα: ο τελευταίος συγχρονισμός πορτοφολιού ξεπερνά τα κλαδεμένα δεδομένα. Πρέπει να κάνετε -reindex (κατεβάστε ολόκληρο το blockchain και πάλι σε περίπτωση κλαδέματος κόμβου)</translation>
     </message>
+    <message>
+        <source>SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported</source>
+        <translation type="unfinished">SQLiteDatabase: Άγνωστη sqlite έκδοση %d του schema πορτοφολιού . Υποστηρίζεται μόνο η έκδοση %d.</translation>
+    </message>
     <message>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">Η βάση δεδομένων μπλοκ περιέχει ένα μπλοκ που φαίνεται να είναι από το μέλλον. Αυτό μπορεί να οφείλεται στην εσφαλμένη ρύθμιση της ημερομηνίας και της ώρας του υπολογιστή σας. Αποκαταστήστε μόνο τη βάση δεδομένων μπλοκ αν είστε βέβαιοι ότι η ημερομηνία και η ώρα του υπολογιστή σας είναι σωστές</translation>
diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/bitcoin_th.ts
index 80947f700f0..723a2843d40 100644
--- a/src/qt/locale/bitcoin_th.ts
+++ b/src/qt/locale/bitcoin_th.ts
@@ -3,11 +3,11 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">คลิกขวาเพื่อแก้ไขที่อยู่หรือป้ายชื่อ</translation>
+        <translation type="unfinished">คลิกขวา เพื่อ แก้ไข แอดเดรส หรือ เลเบล</translation>
     </message>
     <message>
         <source>Create a new address</source>
-        <translation type="unfinished">สร้างที่อยู่ใหม่</translation>
+        <translation type="unfinished">สร้าง แอดเดรส ใหม่</translation>
     </message>
     <message>
         <source>&amp;New</source>
@@ -15,7 +15,7 @@
     </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">คัดลอกที่อยู่ที่เลือกในปัจจุบันไปยังคลิปบอร์ดของระบบ</translation>
+        <translation type="unfinished">คัดลอก แอดเดรส ที่เลือก ในปัจจุบัน ไปยัง คลิปบอร์ด ของระบบ</translation>
     </message>
     <message>
         <source>&amp;Copy</source>
@@ -31,7 +31,7 @@
     </message>
     <message>
         <source>Enter address or label to search</source>
-        <translation type="unfinished">ป้อนที่อยู่หรือป้ายชื่อเพื่อค้นหา</translation>
+        <translation type="unfinished">ป้อน แอดเดรส หรือ เลเบล เพื่อ ทำการค้นหา</translation>
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
@@ -47,11 +47,11 @@
     </message>
     <message>
         <source>Choose the address to send coins to</source>
-        <translation type="unfinished">เลือกที่อยู่ที่จะส่งเหรียญ</translation>
+        <translation type="unfinished">เลือก แอดเดรส ที่จะ ส่ง คอยน์ ไป</translation>
     </message>
     <message>
         <source>Choose the address to receive coins with</source>
-        <translation type="unfinished">เลือกที่อยู่ที่จะรับเหรียญ</translation>
+        <translation type="unfinished">เลือก แอดเดรส ที่จะ รับ คอยน์</translation>
     </message>
     <message>
         <source>C&amp;hoose</source>
@@ -59,19 +59,19 @@
     </message>
     <message>
         <source>Sending addresses</source>
-        <translation type="unfinished">ที่อยู่การส่ง</translation>
+        <translation type="unfinished">แอดเดรส การส่ง</translation>
     </message>
     <message>
         <source>Receiving addresses</source>
-        <translation type="unfinished">ที่อยู่การรับ</translation>
+        <translation type="unfinished">แอดเดรส การรับ</translation>
     </message>
     <message>
         <source>&amp;Copy Address</source>
-        <translation type="unfinished">&amp;คัดลอกที่อยู่</translation>
+        <translation type="unfinished">&amp;คัดลอก แอดเดรส</translation>
     </message>
     <message>
         <source>Copy &amp;Label</source>
-        <translation type="unfinished">&amp;คัดลอกป้ายชื่อ</translation>
+        <translation type="unfinished">&amp;คัดลอก เลเบล</translation>
     </message>
     <message>
         <source>&amp;Edit</source>
@@ -79,42 +79,47 @@
     </message>
     <message>
         <source>Export Address List</source>
-        <translation type="unfinished">ส่งออกรายการที่อยู่</translation>
+        <translation type="unfinished">ส่งออก รายการ แอดเดรส</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Comma(,) เพื่อแยก ไฟล์</translation>
     </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
-        <translation type="unfinished">เกิดข้อผิดพลาดขณะพยายามบันทึกรายการที่อยู่ไปยัง %1 โปรดลองอีกครั้ง</translation>
+        <translation type="unfinished">เกิด ข้อผิดพลาด ขณะพยายาม บันทึก รายการ แอดเดรส ไปยัง %1 โปรด ลอง อีกครั้ง</translation>
     </message>
     <message>
         <source>Exporting Failed</source>
-        <translation type="unfinished">การส่งออกล้มเหลว</translation>
+        <translation type="unfinished">การส่งออก ล้มเหลว</translation>
     </message>
 </context>
 <context>
     <name>AddressTableModel</name>
     <message>
         <source>Label</source>
-        <translation type="unfinished">ป้ายชื่อ</translation>
+        <translation type="unfinished">เลเบล</translation>
     </message>
     <message>
         <source>Address</source>
-        <translation type="unfinished">ที่อยู่</translation>
+        <translation type="unfinished">แอดเดรส</translation>
     </message>
     <message>
         <source>(no label)</source>
-        <translation type="unfinished">(ไม่มีป้ายชื่อ)</translation>
+        <translation type="unfinished">(ไม่มีเลเบล)</translation>
     </message>
 </context>
 <context>
     <name>AskPassphraseDialog</name>
     <message>
         <source>Passphrase Dialog</source>
-        <translation type="unfinished">กล่องโต้ตอบวลีรหัสผ่าน</translation>
+        <translation type="unfinished">พาสเฟส ไดอะล็อก</translation>
     </message>
     <message>
         <source>Enter passphrase</source>
-        <translation type="unfinished">ป้อนวลีรหัสผ่าน</translation>
+        <translation type="unfinished">ป้อน พาสเฟส</translation>
     </message>
     <message>
         <source>New passphrase</source>
@@ -122,67 +127,67 @@
     </message>
     <message>
         <source>Repeat new passphrase</source>
-        <translation type="unfinished">ทำซ้ำวลีรหัสผ่านใหม่</translation>
+        <translation type="unfinished">ทำซ้ำ พาสเฟส ใหม่</translation>
     </message>
     <message>
         <source>Show passphrase</source>
-        <translation type="unfinished">แสดงวลีรหัสผ่าน</translation>
+        <translation type="unfinished">แสดง พาสเฟส</translation>
     </message>
     <message>
         <source>Encrypt wallet</source>
-        <translation type="unfinished">เข้ารหัสวอลเล็ต</translation>
+        <translation type="unfinished">เข้ารหัส วอลเล็ต</translation>
     </message>
     <message>
         <source>This operation needs your wallet passphrase to unlock the wallet.</source>
-        <translation type="unfinished">การดำเนินการนี้ต้องการวอลเลตพาสเฟสของคุณเพื่อปลดล็อควอลเล็ต</translation>
+        <translation type="unfinished">การดำเนินการ นี้ ต้องการ วอลเล็ต พาสเฟส ของ คุณ เพื่อ ปลดล็อค วอลเล็ต</translation>
     </message>
     <message>
         <source>Unlock wallet</source>
-        <translation type="unfinished">ปลดล็อควอลเล็ต</translation>
+        <translation type="unfinished">ปลดล็อค วอลเล็ต</translation>
     </message>
     <message>
         <source>Change passphrase</source>
-        <translation type="unfinished">เปลี่ยนวลีรหัสผ่าน</translation>
+        <translation type="unfinished">เปลี่ยน พาสเฟส</translation>
     </message>
     <message>
         <source>Confirm wallet encryption</source>
-        <translation type="unfinished">ยืนยันการเข้ารหัสวอลเล็ต</translation>
+        <translation type="unfinished">ยืนยัน การเข้ารหัส วอลเล็ต</translation>
     </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
-        <translation type="unfinished">คำเตือน: หากคุณเข้ารหัสวอลเล็ตของคุณและทำพาสเฟสหาย, คุณจะสูญเสีย &lt;b&gt;BITCOINS ทั้งหมดของคุณ&lt;/b&gt;!</translation>
+        <translation type="unfinished">คำเตือน: หาก คุณ เข้ารหัส วอลเล็ต ของคุณ และ ทำพาสเฟส หาย , คุณ จะ สูญเสีย &lt;b&gt;BITCOINS ทั้งหมดของคุณ&lt;/b&gt;!</translation>
     </message>
     <message>
         <source>Are you sure you wish to encrypt your wallet?</source>
-        <translation type="unfinished">คุณแน่ใจหรือไม่ว่าต้องการเข้ารหัสวอลเล็ตของคุณ?</translation>
+        <translation type="unfinished">คุณ แน่ใจ หรือไม่ว่า ต้องการ เข้ารหัส วอลเล็ต ของคุณ?</translation>
     </message>
     <message>
         <source>Wallet encrypted</source>
-        <translation type="unfinished">เข้ารหัสวอลเล็ตเรียบร้อย</translation>
+        <translation type="unfinished">เข้ารหัส วอลเล็ต เรียบร้อย</translation>
     </message>
     <message>
         <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
-        <translation type="unfinished">ป้อนพาสเฟสใหม่สำหรับวอลเล็ต&lt;br/&gt;กรุณาใช้พาสเฟสของ &lt;b&gt;สิบหรืออักขระสุ่มสิบตัวขึ้นไป&lt;/b&gt;, หรือ &lt;b&gt;แปดหรือแปดคำขึ้นไป&lt;/b&gt;.</translation>
+        <translation type="unfinished">ป้อน พาสเฟส ใหม่ สำหรับ วอลเล็ต&lt;br/&gt;กรุณา ใช้ พาสเฟส ของ &lt;b&gt;สิบ หรือ อักขระ สุ่ม สิบ ตัว ขึ้นไป &lt;/b&gt;, หรือ &lt;b&gt;แปด หรือ แปดคำขึ้นไป&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Enter the old passphrase and new passphrase for the wallet.</source>
-        <translation type="unfinished">ป้อนพาสเฟสเก่าและ พาสเฟสใหม่สำหรับวอลเล็ต</translation>
+        <translation type="unfinished">ป้อน พาสเฟส เก่า และ พาสเฟส ใหม่ สำหรับ วอลเล็ต</translation>
     </message>
     <message>
         <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
-        <translation type="unfinished">โปรดจำไว้ว่าการเข้ารหัสวอลเล็ตของคุณไม่สามารถปกป้อง bitcoins ของคุณได้อย่างเต็มที่จากการถูกขโมยโดยมัลแวร์ที่ติดไวรัสบนคอมพิวเตอร์ของคุณ</translation>
+        <translation type="unfinished">โปรดจำ ไว้ว่า การเข้ารหัส วอลเล็ต ของคุณ ไม่สามารถ ปกป้อง bitcoins ของคุณ ได้อย่างเต็มที่ จากการ ถูกขโมย โดยมัลแวร์ ที่ติดไวรัส บนคอมพิวเตอร์ ของคุณ</translation>
     </message>
     <message>
         <source>Wallet to be encrypted</source>
-        <translation type="unfinished">วอลเล็ตที่จะเข้ารหัส</translation>
+        <translation type="unfinished">วอลเล็ต ที่ จะ เข้ารหัส</translation>
     </message>
     <message>
         <source>Your wallet is about to be encrypted. </source>
-        <translation type="unfinished">วอลเล็ตของคุณกำลังถูกเข้ารหัส</translation>
+        <translation type="unfinished">วอลเล็ต ของคุณ กำลัง ถูก เข้ารหัส</translation>
     </message>
     <message>
         <source>Your wallet is now encrypted. </source>
-        <translation type="unfinished">วอลเล็ตของคุณถูกเข้ารหัสเรียบร้อยแล้ว</translation>
+        <translation type="unfinished">วอลเล็ต ของคุณ ถูกเข้ารหัส เรียบร้อยแล้ว</translation>
     </message>
     <message>
         <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
@@ -190,30 +195,38 @@
     </message>
     <message>
         <source>Wallet encryption failed</source>
-        <translation type="unfinished">การเข้ารหัสวอลเล็ตล้มเหลว</translation>
+        <translation type="unfinished">การเข้ารหัส วอลเล็ต ล้มเหลว</translation>
     </message>
     <message>
         <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
-        <translation type="unfinished">การเข้ารหัสวอลเลตล้มเหลวเนื่องจากข้อผิดพลาดภายใน วอลเล็ตของคุณไม่ได้เข้ารหัส</translation>
+        <translation type="unfinished">การเข้ารหัส วอลเลต ล้มเหลว เนื่องจาก ข้อผิดพลาด ภายใน วอลเล็ต ของคุณ ไม่ได้ เข้ารหัส</translation>
+    </message>
+    <message>
+        <source>The supplied passphrases do not match.</source>
+        <translation type="unfinished">พาสเฟส ที่ป้อน ไม่ ถูก ต้อง</translation>
     </message>
     <message>
         <source>Wallet unlock failed</source>
-        <translation type="unfinished">การปลดล็อควอลเล็ตล้มเหลว</translation>
+        <translation type="unfinished">การปลดล็อค วอลเล็ต ล้มเหลว</translation>
     </message>
     <message>
         <source>The passphrase entered for the wallet decryption was incorrect.</source>
-        <translation type="unfinished">พาสเฟสที่ป้อนสำหรับการถอดรหัสวอลเล็ตไม่ถูกต้อง</translation>
+        <translation type="unfinished">พาสเฟส ที่ป้อน สำหรับ การถอดรหัส วอลเล็ต ไม่ถูกต้อง</translation>
     </message>
     <message>
         <source>Wallet passphrase was successfully changed.</source>
-        <translation type="unfinished">เปลี่ยนพาสเฟสวอลเล็ตสำเร็จแล้ว</translation>
+        <translation type="unfinished">เปลี่ยน พาสเฟส วอลเล็ต สำเร็จแล้ว</translation>
     </message>
-    </context>
+    <message>
+        <source>Warning: The Caps Lock key is on!</source>
+        <translation type="unfinished">คำเตือน: Caps Lock คีย์ ถูก เปิด!</translation>
+    </message>
+</context>
 <context>
     <name>BanTableModel</name>
     <message>
         <source>Banned Until</source>
-        <translation type="unfinished">ห้ามจนถึง</translation>
+        <translation type="unfinished">ห้าม จนถึง</translation>
     </message>
 </context>
 <context>
@@ -235,6 +248,14 @@
         <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
         <translation type="unfinished">เกิดข้อผิดพลาดร้ายแรงขึ้น, โปรดตรวจสอบว่าไฟล์ตั้งค่านั้นสามารถเขียนทับได้หรือลองใช้งานด้วยคำสั่ง -nosettings</translation>
     </message>
+    <message>
+        <source>Error: Specified data directory "%1" does not exist.</source>
+        <translation type="unfinished">ข้อผิดพลาด: ข้อมูล ไดเร็กทอรี ที่เจาะจง "%1" นั้น ไม่ มี</translation>
+    </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">ข้อผิดพลาด: ไม่สามารถ parse configuration ไฟล์: %1.</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">ข้อผิดพลาด: %1</translation>
@@ -247,6 +268,18 @@
         <source>Amount</source>
         <translation type="unfinished">จำนวน</translation>
     </message>
+    <message>
+        <source>Internal</source>
+        <translation type="unfinished">ภายใน</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation type="unfinished">ไม่มี</translation>
+    </message>
+    <message>
+        <source>%1 ms</source>
+        <translation type="unfinished">%1 มิลลิวินาที</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
@@ -298,13 +331,17 @@
         <source>Settings file could not be written</source>
         <translation type="unfinished">ไม่สามารถเขียนข้อมูลลงบนไฟล์ตั้งค่าได้</translation>
     </message>
+    <message>
+        <source>The %s developers</source>
+        <translation type="unfinished">%s นักพัฒนา</translation>
+    </message>
     <message>
         <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
         <translation type="unfinished">ข้อผิดพลาด: ดัมพ์ไฟล์เวอร์ชัน ไม่รองรับเวอร์ชัน บิตคอยน์-วอลเล็ต รุ่นนี้รองรับไฟล์ดัมพ์เวอร์ชัน 1 เท่านั้น รับดัมพ์ไฟล์พร้อมเวอร์ชัน %s</translation>
     </message>
     <message>
         <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
-        <translation type="unfinished">ข้อผิดพลาด: เลกาซีวอลเล็ต เพียงสนับสนุน "legacy", "p2sh-segwit", และ "bech32" ชนิดแอดเดรส</translation>
+        <translation type="unfinished">ข้อผิดพลาด: เลกาซี วอลเล็ต เพียง สนับสนุน "legacy", "p2sh-segwit", และ "bech32" ชนิด แอดเดรส</translation>
     </message>
     <message>
         <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
@@ -314,17 +351,21 @@
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">เกิดข้อผิดพลาดในการโหลด %s: กำลังโหลดวอลเล็ตผู้ลงนามภายนอกโดยไม่มีการรวบรวมการสนับสนุนผู้ลงนามภายนอก</translation>
     </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">ไม่สามารถเปลี่ยนชื่อไฟล์ peers.dat ที่ไม่ถูกต้อง โปรดย้ายหรือลบแล้วลองอีกครั้ง</translation>
+    </message>
     <message>
         <source>Could not find asmap file %s</source>
-        <translation type="unfinished">ไม่ตรวจพบไฟล์ asmap %s</translation>
+        <translation type="unfinished">ไม่ ตรวจพบ ไฟล์ asmap %s</translation>
     </message>
     <message>
         <source>Could not parse asmap file %s</source>
-        <translation type="unfinished">ไม่สามารถแยกวิเคราะห์ไฟล์ asmap %s</translation>
+        <translation type="unfinished">ไม่ สามารถ แยก วิเคราะห์ ไฟล์ asmap %s</translation>
     </message>
     <message>
         <source>Disk space is too low!</source>
-        <translation type="unfinished">พื้นที่ว่างดิสก์เหลือน้อยเกินไป!</translation>
+        <translation type="unfinished">พื้นที่ว่าง ดิสก์ เหลือ น้อย เกินไป!</translation>
     </message>
     <message>
         <source>Do you want to rebuild the block database now?</source>
@@ -332,7 +373,7 @@
     </message>
     <message>
         <source>Done loading</source>
-        <translation type="unfinished">การโหลดเสร็จสิ้น</translation>
+        <translation type="unfinished">การโหลด เสร็จสิ้น</translation>
     </message>
     <message>
         <source>Dump file %s does not exist.</source>
@@ -340,7 +381,7 @@
     </message>
     <message>
         <source>Error creating %s</source>
-        <translation type="unfinished">เกิดข้อผิดพลาดในการสร้าง%s</translation>
+        <translation type="unfinished">เกิดข้อผิดพลาด ในการสร้าง%s</translation>
     </message>
     <message>
         <source>Error initializing block database</source>
@@ -348,7 +389,7 @@
     </message>
     <message>
         <source>Error loading %s</source>
-        <translation type="unfinished">การโหลดเกิดข้อผิดพลาด %s</translation>
+        <translation type="unfinished">การโหลด เกิดข้อผิดพลาด %s</translation>
     </message>
     <message>
         <source>Error loading %s: Private keys can only be disabled during creation</source>
@@ -364,35 +405,35 @@
     </message>
     <message>
         <source>Error loading block database</source>
-        <translation type="unfinished">เกิดข้อผิดพลาดในการโหลดฐานข้อมูลบล็อก</translation>
+        <translation type="unfinished">เกิดข้อผิดพลาด ในการโหลด ฐานข้อมูล บล็อก</translation>
     </message>
     <message>
         <source>Error opening block database</source>
-        <translation type="unfinished">เกิดข้อผิดพลาดในการเปิดฐานข้อมูลบล็อก</translation>
+        <translation type="unfinished">เกิดข้อผิดพลาด ในการเปิด ฐานข้อมูล บล็อก</translation>
     </message>
     <message>
         <source>Error reading from database, shutting down.</source>
-        <translation type="unfinished">เกิดข้อผิดพลาดในการอ่านจากฐานข้อมูล กำลังปิด</translation>
+        <translation type="unfinished">เกิดข้อผิดพลาด ในการอ่าน จาก ฐานข้อมูล, กำลังปิด</translation>
     </message>
     <message>
         <source>Error reading next record from wallet database</source>
-        <translation type="unfinished">เกิดข้อผิดพลาดในการอ่านบันทึกถัดไปจากฐานข้อมูลวอลเล็ต</translation>
+        <translation type="unfinished">เกิดข้อผิดพลาด ในการอ่าน บันทึก ถัดไป จาก ฐานข้อมูล วอลเล็ต</translation>
     </message>
     <message>
         <source>Error upgrading chainstate database</source>
-        <translation type="unfinished">เกิดข้อผิดพลาดในการอัพเกรดฐานข้อมูล chainstate</translation>
+        <translation type="unfinished">เกิดข้อผิดพลาด ในการอัพเกรด ฐานข้อมูล chainstate</translation>
     </message>
     <message>
         <source>Error: Couldn't create cursor into database</source>
-        <translation type="unfinished">ข้อผิดพลาด: ไม่สามารถสร้างเคอร์เซอร์ในฐานข้อมูล</translation>
+        <translation type="unfinished">ข้อผิดพลาด: ไม่สามารถ สร้าง เคอร์เซอร์ ใน ฐานข้อมูล</translation>
     </message>
     <message>
         <source>Error: Disk space is low for %s</source>
-        <translation type="unfinished">ข้อผิดพลาด: พื้นที่ดิสก์เหลือน้อยสำหรับ %s</translation>
+        <translation type="unfinished">ข้อผิดพลาด: พื้นที่ ดิสก์ เหลือน้อย สำหรับ %s</translation>
     </message>
     <message>
         <source>Error: Missing checksum</source>
-        <translation type="unfinished">ข้อผิดพลาด: ไม่มีเช็คซัม</translation>
+        <translation type="unfinished">ข้อผิดพลาด: ไม่มี เช็คซัม</translation>
     </message>
     <message>
         <source>Error: No %s addresses available.</source>
@@ -428,19 +469,19 @@
     </message>
     <message>
         <source>Insufficient funds</source>
-        <translation type="unfinished">เงินทุนไม่เพียงพอ</translation>
+        <translation type="unfinished">เงินทุน ไม่เพียงพอ</translation>
     </message>
     <message>
         <source>Loading wallet…</source>
-        <translation type="unfinished">กำลังโหลดวอลเล็ต...</translation>
+        <translation type="unfinished">กำลังโหลด วอลเล็ต...</translation>
     </message>
     <message>
         <source>Missing amount</source>
-        <translation type="unfinished">จำนวนที่หายไป</translation>
+        <translation type="unfinished">จำนวน ที่หายไป</translation>
     </message>
     <message>
         <source>No addresses available</source>
-        <translation type="unfinished">ไม่มีแอดเดรสที่ใช้งานได้</translation>
+        <translation type="unfinished">ไม่มี แอดเดรส ที่ใช้งานได้</translation>
     </message>
     <message>
         <source>Rescanning…</source>
@@ -524,11 +565,11 @@
     </message>
     <message>
         <source>Unable to generate initial keys</source>
-        <translation type="unfinished">ไม่สามารถสร้างคีย์เริ่มต้น</translation>
+        <translation type="unfinished">ไม่สามารถ สร้าง คีย์ เริ่มต้น</translation>
     </message>
     <message>
         <source>Unable to generate keys</source>
-        <translation type="unfinished">ไม่สามารถสร้างคีย์</translation>
+        <translation type="unfinished">ไม่สามารถ สร้าง คีย์</translation>
     </message>
     <message>
         <source>Unable to open %s for writing</source>
@@ -536,27 +577,27 @@
     </message>
     <message>
         <source>Unknown address type '%s'</source>
-        <translation type="unfinished">ไม่รู้จักประเภทแอดเดรส '%s'</translation>
+        <translation type="unfinished">ไม่รู้จัก ประเภท แอดเดรส '%s'</translation>
     </message>
     <message>
         <source>Unknown change type '%s'</source>
-        <translation type="unfinished">ไม่รู้จักประเภทการเปลี่ยนแปลง '%s'</translation>
+        <translation type="unfinished">ไม่รู้จัก ประเภท การเปลี่ยนแปลง '%s'</translation>
     </message>
     <message>
         <source>Unknown network specified in -onlynet: '%s'</source>
-        <translation type="unfinished">ไม่รู้จักเครือข่ายที่ระบุใน -onlynet: '%s'</translation>
+        <translation type="unfinished">ไม่รู้จัก เครือข่าย ที่ระบุ ใน -onlynet: '%s'</translation>
     </message>
     <message>
         <source>Upgrading UTXO database</source>
-        <translation type="unfinished">กำลังอัพเกรดฐานข้อมูล UTXO</translation>
+        <translation type="unfinished">กำลังอัพเกรด ฐานข้อมูล UTXO</translation>
     </message>
     <message>
         <source>Verifying blocks…</source>
-        <translation type="unfinished">กำลังตรวจสอบบล็อก…</translation>
+        <translation type="unfinished">กำลังตรวจสอบ บล็อก…</translation>
     </message>
     <message>
         <source>Verifying wallet(s)…</source>
-        <translation type="unfinished">กำลังตรวจสอบวอลเล็ต…</translation>
+        <translation type="unfinished">กำลังตรวจสอบ วอลเล็ต…</translation>
     </message>
     </context>
 <context>
@@ -567,7 +608,7 @@
     </message>
     <message>
         <source>Show general overview of wallet</source>
-        <translation type="unfinished">แสดงภาพรวมทั่วไปของวอลเล็ต</translation>
+        <translation type="unfinished">แสดง ภาพรวม ทั่วไป ของ วอลเล็ต</translation>
     </message>
     <message>
         <source>&amp;Transactions</source>
@@ -575,7 +616,7 @@
     </message>
     <message>
         <source>Browse transaction history</source>
-        <translation type="unfinished">เรียกดูประวัติการทำธุรกรรม</translation>
+        <translation type="unfinished">เรียกดู ประวัติ การทำธุรกรรม</translation>
     </message>
     <message>
         <source>E&amp;xit</source>
@@ -583,7 +624,7 @@
     </message>
     <message>
         <source>Quit application</source>
-        <translation type="unfinished">ออกจากแอปพลิเคชัน</translation>
+        <translation type="unfinished">ออกจาก แอปพลิเคชัน</translation>
     </message>
     <message>
         <source>&amp;About %1</source>
@@ -591,7 +632,7 @@
     </message>
     <message>
         <source>Show information about %1</source>
-        <translation type="unfinished">แสดงข้อมูลเกี่ยวกับ %1</translation>
+        <translation type="unfinished">แสดง ข้อมูล เกี่ยวกับ %1</translation>
     </message>
     <message>
         <source>About &amp;Qt</source>
@@ -599,15 +640,15 @@
     </message>
     <message>
         <source>Show information about Qt</source>
-        <translation type="unfinished">แสดงข้อมูลเกี่ยวกับ Qt</translation>
+        <translation type="unfinished">แสดง ข้อมูล เกี่ยวกับ Qt</translation>
     </message>
     <message>
         <source>Modify configuration options for %1</source>
-        <translation type="unfinished">ปรับเปลี่ยนตัวเลือกการกำหนดค่าสำหรับ %1</translation>
+        <translation type="unfinished">ปรับเปลี่ยน ตัวเลือก การกำหนดค่า สำหรับ %1</translation>
     </message>
     <message>
         <source>Create a new wallet</source>
-        <translation type="unfinished">สร้างวอลเล็ตใหม่</translation>
+        <translation type="unfinished">สร้าง วอลเล็ต ใหม่</translation>
     </message>
     <message>
         <source>&amp;Minimize</source>
@@ -620,7 +661,7 @@
     <message>
         <source>Network activity disabled.</source>
         <extracomment>A substring of the tooltip.</extracomment>
-        <translation type="unfinished">กิจกรรมเครือข่ายถูกปิดใช้งาน</translation>
+        <translation type="unfinished">กิจกรรม เครือข่าย ถูกปิดใช้งาน</translation>
     </message>
     <message>
         <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
@@ -628,15 +669,15 @@
     </message>
     <message>
         <source>Send coins to a Bitcoin address</source>
-        <translation type="unfinished">ส่งเหรียญไปยังที่อยู่ Bitcoin</translation>
+        <translation type="unfinished">ส่ง เหรียญ ไปยัง Bitcoin แอดเดรส</translation>
     </message>
     <message>
         <source>Backup wallet to another location</source>
-        <translation type="unfinished">สำรองข้อมูลวอลเล็ตปยังตำแหน่งที่ตั้งอื่น</translation>
+        <translation type="unfinished">สำรองข้อมูล วอลเล็ต ไปยัง ตำแหน่ง ที่ตั้ง อื่น</translation>
     </message>
     <message>
         <source>Change the passphrase used for wallet encryption</source>
-        <translation type="unfinished">เปลี่ยนพาสเฟสที่ใช้สำหรับการเข้ารหัสวอลเล็ต</translation>
+        <translation type="unfinished">เปลี่ยน พาสเฟส ที่ใช้ สำหรับ การเข้ารหัส วอลเล็ต</translation>
     </message>
     <message>
         <source>&amp;Send</source>
@@ -648,35 +689,39 @@
     </message>
     <message>
         <source>&amp;Options…</source>
-        <translation type="unfinished">&amp;ตั้งค่า…</translation>
+        <translation type="unfinished">&amp;ตัวเลือก…</translation>
     </message>
     <message>
         <source>&amp;Encrypt Wallet…</source>
-        <translation type="unfinished">&amp;เข้ารหัสวอลเล็ต...</translation>
+        <translation type="unfinished">&amp;เข้ารหัส วอลเล็ต...</translation>
     </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
-        <translation type="unfinished">เข้ารหัสคีย์ส่วนตัวที่เป็นของวอลเล็ตของคุณ</translation>
+        <translation type="unfinished">เข้ารหัส คีย์ ส่วนตัว ที่เป็น ของ วอลเล็ต ของคุณ</translation>
     </message>
     <message>
         <source>&amp;Backup Wallet…</source>
-        <translation type="unfinished">&amp;สำรองข้อมูลวอลเล็ต...</translation>
+        <translation type="unfinished">&amp;สำรองข้อมูล วอลเล็ต...</translation>
     </message>
     <message>
         <source>&amp;Change Passphrase…</source>
-        <translation type="unfinished">&amp;เปลี่ยนวลีรหัสผ่าน...</translation>
+        <translation type="unfinished">&amp;เปลี่ยน พาสเฟส...</translation>
     </message>
     <message>
         <source>Sign &amp;message…</source>
-        <translation type="unfinished">&amp;เซ็นข้อความ...</translation>
+        <translation type="unfinished">เซ็น &amp;ข้อความ...</translation>
+    </message>
+    <message>
+        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
+        <translation type="unfinished">เซ็น ข้อความ ด้วย Bitcoin แอดเดรส ของคุณ เพื่อ พิสูจน์ว่า คุณ เป็นเจ้าของ มัน</translation>
     </message>
     <message>
         <source>&amp;Verify message…</source>
-        <translation type="unfinished">&amp;ยืนยันข้อความ…</translation>
+        <translation type="unfinished">&amp;ยืนยัน ข้อความ…</translation>
     </message>
     <message>
         <source>&amp;Load PSBT from file…</source>
-        <translation type="unfinished">&amp;โหลด PSBT จากไฟล์...</translation>
+        <translation type="unfinished">&amp;โหลด PSBT จาก ไฟล์...</translation>
     </message>
     <message>
         <source>Open &amp;URI…</source>
@@ -684,15 +729,15 @@
     </message>
     <message>
         <source>Close Wallet…</source>
-        <translation type="unfinished">ปิดวอลเล็ต…</translation>
+        <translation type="unfinished">ปิด วอลเล็ต…</translation>
     </message>
     <message>
         <source>Create Wallet…</source>
-        <translation type="unfinished">สร้างวอลเล็ต…</translation>
+        <translation type="unfinished">สร้าง วอลเล็ต…</translation>
     </message>
     <message>
         <source>Close All Wallets…</source>
-        <translation type="unfinished">ปิดวอลเล็ตทั้งหมด...</translation>
+        <translation type="unfinished">ปิด วอลเล็ต ทั้งหมด...</translation>
     </message>
     <message>
         <source>&amp;File</source>
@@ -708,15 +753,15 @@
     </message>
     <message>
         <source>Tabs toolbar</source>
-        <translation type="unfinished">แถบเครื่องมือแท็บ</translation>
+        <translation type="unfinished">แถบ เครื่องมือ</translation>
     </message>
     <message>
         <source>Synchronizing with network…</source>
-        <translation type="unfinished">กำลังซิงค์ข้อมูลกับทางเครือข่าย ...</translation>
+        <translation type="unfinished">กำลังซิงค์ข้อมูล กับทาง เครือข่าย ...</translation>
     </message>
     <message>
         <source>Connecting to peers…</source>
-        <translation type="unfinished">กำลังเชื่อมต่อไปยัง peers…</translation>
+        <translation type="unfinished">กำลังเชื่อมต่อ ไปยัง peers…</translation>
     </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
@@ -772,29 +817,41 @@
         <source>Load PSBT from &amp;clipboard…</source>
         <translation type="unfinished">โหลด PSBT จากคลิปบอร์ด...</translation>
     </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">&amp;แอดเดรส การส่ง</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">&amp;แอดเดรส การรับ</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">เปิด bitcoin: URI</translation>
+    </message>
     <message>
         <source>Open Wallet</source>
-        <translation type="unfinished">เปิดวอลเล็ต</translation>
+        <translation type="unfinished">เปิด วอลเล็ต</translation>
     </message>
     <message>
         <source>Open a wallet</source>
-        <translation type="unfinished">เปิดวอลเล็ต</translation>
+        <translation type="unfinished">เปิด วอลเล็ต</translation>
     </message>
     <message>
         <source>Close wallet</source>
-        <translation type="unfinished">ปิดวอลเล็ต</translation>
+        <translation type="unfinished">ปิด วอลเล็ต</translation>
     </message>
     <message>
         <source>Close all wallets</source>
-        <translation type="unfinished">ปิดวอลเล็ตทั้งหมด</translation>
+        <translation type="unfinished">ปิด วอลเล็ต ทั้งหมด</translation>
     </message>
     <message>
         <source>default wallet</source>
-        <translation type="unfinished">วอลเล็ตเริ่มต้น</translation>
+        <translation type="unfinished">วอลเล็ต เริ่มต้น</translation>
     </message>
     <message>
         <source>No wallets available</source>
-        <translation type="unfinished">ไม่มีวอลเล็ต</translation>
+        <translation type="unfinished">ไม่มี วอลเล็ต ที่พร้อมใช้งาน</translation>
     </message>
     <message>
         <source>&amp;Window</source>
@@ -806,7 +863,7 @@
     </message>
     <message>
         <source>Main Window</source>
-        <translation type="unfinished">หน้าต่างหลัก</translation>
+        <translation type="unfinished">วินโดว์ หลัก</translation>
     </message>
     <message>
         <source>%1 client</source>
@@ -818,13 +875,13 @@
     </message>
     <message>
         <source>S&amp;how</source>
-        <translation type="unfinished">แสดง</translation>
+        <translation type="unfinished">&amp;แสดง</translation>
     </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform>%n การเชื่อมต่อที่ใช้งานได้ เพื่อเชื่อมกับเครือข่าย Bitcoin</numerusform>
+            <numerusform>%n การเชื่อมต่อ ที่ใช้งานได้ เพื่อ เชื่อมกับเครือข่าย Bitcoin</numerusform>
         </translation>
     </message>
     <message>
@@ -835,12 +892,12 @@
     <message>
         <source>Disable network activity</source>
         <extracomment>A context menu item.</extracomment>
-        <translation type="unfinished">ปิดใช้งานกิจกรรมเครือข่าย</translation>
+        <translation type="unfinished">ปิดใช้งาน กิจกรรม เครือข่าย</translation>
     </message>
     <message>
         <source>Enable network activity</source>
         <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
-        <translation type="unfinished">เปิดใช้งานกิจกรรมเครือข่าย</translation>
+        <translation type="unfinished">เปิดใช้งาน กิจกรรม เครือข่าย</translation>
     </message>
     <message>
         <source>Error: %1</source>
@@ -877,7 +934,7 @@
     <message>
         <source>Label: %1
 </source>
-        <translation type="unfinished">ป้ายชื่อ: %1
+        <translation type="unfinished">เลเบล: %1
 </translation>
     </message>
     <message>
@@ -888,11 +945,11 @@
     </message>
     <message>
         <source>Sent transaction</source>
-        <translation type="unfinished">รายการที่ส่ง</translation>
+        <translation type="unfinished">รายการ ที่ส่ง</translation>
     </message>
     <message>
         <source>Incoming transaction</source>
-        <translation type="unfinished">การทำรายการขาเข้า</translation>
+        <translation type="unfinished">การทำรายการ ขาเข้า</translation>
     </message>
     <message>
         <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
@@ -904,19 +961,19 @@
     </message>
     <message>
         <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">คีย์ส่วนตัว &lt;b&gt;ปิดใช้งาน&lt;/b&gt;</translation>
+        <translation type="unfinished">คีย์ ส่วนตัว &lt;b&gt;ถูกปิดใช้งาน&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
-        <translation type="unfinished">วอลเล็ตถูก &lt;b&gt;เข้ารหัส&lt;/b&gt; และในขณะนี้ &lt;b&gt;ปลดล็อคแล้ว&lt;/b&gt;</translation>
+        <translation type="unfinished">วอลเล็ต ถูก &lt;b&gt;เข้ารหัส&lt;/b&gt; และ ในขณะนี้ &lt;b&gt;ปลดล็อคแล้ว&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
-        <translation type="unfinished">วอลเล็ตถูก &lt;b&gt;เข้ารหัส&lt;/b&gt; และในขณะนี้ &lt;b&gt;ล็อคแล้ว &lt;/b&gt;</translation>
+        <translation type="unfinished">วอลเล็ต ถูก &lt;b&gt;เข้ารหัส&lt;/b&gt; และ ในขณะนี้ &lt;b&gt;ล็อคแล้ว &lt;/b&gt;</translation>
     </message>
     <message>
         <source>Original message:</source>
-        <translation type="unfinished">ข้อความดั้งเดิม:</translation>
+        <translation type="unfinished">ข้อความ ดั้งเดิม:</translation>
     </message>
 </context>
 <context>
@@ -959,11 +1016,11 @@
     </message>
     <message>
         <source>Tree mode</source>
-        <translation type="unfinished">โหมดแบบต้นไม้</translation>
+        <translation type="unfinished">โหมด แบบTree</translation>
     </message>
     <message>
         <source>List mode</source>
-        <translation type="unfinished">โหมดแบบรายการ</translation>
+        <translation type="unfinished">โหมด แบบรายการ</translation>
     </message>
     <message>
         <source>Amount</source>
@@ -971,11 +1028,11 @@
     </message>
     <message>
         <source>Received with label</source>
-        <translation type="unfinished">รับด้วยป้ายชื่อ</translation>
+        <translation type="unfinished">รับ ด้วย เลเบล</translation>
     </message>
     <message>
         <source>Received with address</source>
-        <translation type="unfinished">รับด้วยแอดเดรส</translation>
+        <translation type="unfinished">รับ ด้วย แอดเดรส</translation>
     </message>
     <message>
         <source>Date</source>
@@ -991,11 +1048,11 @@
     </message>
     <message>
         <source>Copy amount</source>
-        <translation type="unfinished">คัดลอกจำนวนเงิน</translation>
+        <translation type="unfinished">คัดลอก จำนวน</translation>
     </message>
     <message>
         <source>&amp;Copy address</source>
-        <translation type="unfinished">&amp;คัดลอกแอดเดรส</translation>
+        <translation type="unfinished">&amp;คัดลอก แอดเดรส</translation>
     </message>
     <message>
         <source>Copy &amp;label</source>
@@ -1007,31 +1064,35 @@
     </message>
     <message>
         <source>Copy transaction &amp;ID and output index</source>
-        <translation type="unfinished">คัดล็อก &amp;ID ธุรกรรมและส่งออกเป็นดัชนี</translation>
+        <translation type="unfinished">คัดล็อก &amp;ID ธุรกรรม และ ส่งออก เป็นดัชนี</translation>
     </message>
     <message>
         <source>Copy quantity</source>
-        <translation type="unfinished">คัดลอกปริมาณ</translation>
+        <translation type="unfinished">คัดลอก ปริมาณ</translation>
     </message>
     <message>
         <source>Copy fee</source>
-        <translation type="unfinished">คัดลอกค่าธรรมเนียม</translation>
+        <translation type="unfinished">คัดลอก ค่าธรรมเนียม</translation>
     </message>
     <message>
         <source>Copy after fee</source>
-        <translation type="unfinished">คัดลอกหลังหักค่าธรรมเนียม</translation>
+        <translation type="unfinished">คัดลอก หลัง หักค่าธรรมเนียม</translation>
     </message>
     <message>
         <source>Copy bytes</source>
-        <translation type="unfinished">คัดลอกไบต์</translation>
+        <translation type="unfinished">คัดลอก ไบต์</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">คัดลอก เศษ</translation>
     </message>
     <message>
         <source>Copy change</source>
-        <translation type="unfinished">คัดลอกการเปลี่ยนแปลง</translation>
+        <translation type="unfinished">คัดลอก การเปลี่ยนแปลง</translation>
     </message>
     <message>
         <source>(%1 locked)</source>
-        <translation type="unfinished">(%1 ล็อค)</translation>
+        <translation type="unfinished">(%1 ล็อคแล้ว)</translation>
     </message>
     <message>
         <source>yes</source>
@@ -1043,11 +1104,11 @@
     </message>
     <message>
         <source>(no label)</source>
-        <translation type="unfinished">(ไม่มีป้ายชื่อ)</translation>
+        <translation type="unfinished">(ไม่มีเลเบล)</translation>
     </message>
     <message>
         <source>change from %1 (%2)</source>
-        <translation type="unfinished">เปลี่ยนจาก %1 (%2)</translation>
+        <translation type="unfinished">เปลี่ยน จาก %1 (%2)</translation>
     </message>
     <message>
         <source>(change)</source>
@@ -1059,88 +1120,92 @@
     <message>
         <source>Create Wallet</source>
         <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
-        <translation type="unfinished">สร้างวอลเล็ต</translation>
+        <translation type="unfinished">สร้าง วอลเล็ต</translation>
     </message>
     <message>
         <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
         <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
-        <translation type="unfinished">กำลังสร้า่งวอลเล็ต &lt;b&gt;%1&lt;/b&gt;…</translation>
+        <translation type="unfinished">กำลังสร้าง วอลเล็ต &lt;b&gt;%1&lt;/b&gt;…</translation>
     </message>
     <message>
         <source>Create wallet failed</source>
-        <translation type="unfinished">การสร้างวอลเล็ตล้มเหลว</translation>
+        <translation type="unfinished">การสร้าง วอลเล็ต ล้มเหลว</translation>
     </message>
     <message>
         <source>Create wallet warning</source>
-        <translation type="unfinished">คำเตือนการสร้างวอลเล็ต</translation>
+        <translation type="unfinished">คำเตือน การสร้าง วอลเล็ต</translation>
     </message>
-    </context>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">ไม่สามารถ จัดรายการ ผู้เซ็น</translation>
+    </message>
+</context>
 <context>
     <name>LoadWalletsActivity</name>
     <message>
         <source>Load Wallets</source>
         <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
-        <translation type="unfinished">โหลดวอลเล็ต</translation>
+        <translation type="unfinished">โหลด วอลเล็ต</translation>
     </message>
     <message>
         <source>Loading wallets…</source>
         <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
-        <translation type="unfinished">กำลังโหลดวอลเล็ต...</translation>
+        <translation type="unfinished">กำลังโหลด วอลเล็ต...</translation>
     </message>
 </context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
         <source>Open wallet failed</source>
-        <translation type="unfinished">เปิดวอลเล็ตล้มเหลว</translation>
+        <translation type="unfinished">เปิด วอลเล็ต ล้มเหลว</translation>
     </message>
     <message>
         <source>Open wallet warning</source>
-        <translation type="unfinished">คำเตือนการเปิดวอลเล็ต</translation>
+        <translation type="unfinished">คำเตือน การเปิด วอลเล็ต</translation>
     </message>
     <message>
         <source>default wallet</source>
-        <translation type="unfinished">วอลเล็ตเริ่มต้น</translation>
+        <translation type="unfinished">วอลเล็ต เริ่มต้น</translation>
     </message>
     <message>
         <source>Open Wallet</source>
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
-        <translation type="unfinished">เปิดวอลเล็ต</translation>
+        <translation type="unfinished">เปิด วอลเล็ต</translation>
     </message>
     <message>
         <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
         <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
-        <translation type="unfinished">กำลังเปิดวอลเล็ต &lt;b&gt;%1&lt;/b&gt;…</translation>
+        <translation type="unfinished">กำลังเปิด วอลเล็ต &lt;b&gt;%1&lt;/b&gt;…</translation>
     </message>
 </context>
 <context>
     <name>WalletController</name>
     <message>
         <source>Close wallet</source>
-        <translation type="unfinished">ปิดวอลเล็ต</translation>
+        <translation type="unfinished">ปิด วอลเล็ต</translation>
     </message>
     <message>
         <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
-        <translation type="unfinished">คุณแน่ใจหรือไม่ว่าต้องการปิดวอลเล็ต &lt;i&gt;%1&lt;/i&gt;?</translation>
+        <translation type="unfinished">คุณ แน่ใจ หรือไม่ว่า ต้องการ ปิด วอลเล็ต &lt;i&gt;%1&lt;/i&gt;?</translation>
     </message>
     <message>
         <source>Close all wallets</source>
-        <translation type="unfinished">ปิดวอลเล็ตทั้งหมด</translation>
+        <translation type="unfinished">ปิด วอลเล็ต ทั้งหมด</translation>
     </message>
     <message>
         <source>Are you sure you wish to close all wallets?</source>
-        <translation type="unfinished">คุณแน่ใจหรือไม่ว่าต้องการปิดวอลเล็ตทั้งหมด?</translation>
+        <translation type="unfinished">คุณ แน่ใจ หรือไม่ว่า ต้องการ ปิด วอลเล็ต ทั้งหมด?</translation>
     </message>
 </context>
 <context>
     <name>CreateWalletDialog</name>
     <message>
         <source>Create Wallet</source>
-        <translation type="unfinished">สร้างวอลเล็ต</translation>
+        <translation type="unfinished">สร้าง วอลเล็ต</translation>
     </message>
     <message>
         <source>Wallet Name</source>
-        <translation type="unfinished">ชื่อวอลเล็ต</translation>
+        <translation type="unfinished">ชื่อ วอลเล็ต</translation>
     </message>
     <message>
         <source>Wallet</source>
@@ -1148,27 +1213,27 @@
     </message>
     <message>
         <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
-        <translation type="unfinished">เข้ารหัสวอลเล็ต วอลเล็ตจะถูกเข้ารหัสด้วยพาสเฟสที่คุณเลือก </translation>
+        <translation type="unfinished">เข้ารหัส วอลเล็ต วอลเล็ต จะถูก เข้ารหัส ด้วย พาสเฟส ที่ คุณ เลือก</translation>
     </message>
     <message>
         <source>Encrypt Wallet</source>
-        <translation type="unfinished">เข้ารหัสวอลเล็ต</translation>
+        <translation type="unfinished">เข้ารหัส วอลเล็ต</translation>
     </message>
     <message>
         <source>Advanced Options</source>
-        <translation type="unfinished">ตัวเลือกขั้นสูง</translation>
+        <translation type="unfinished">ตัวเลือก ขั้นสูง</translation>
     </message>
     <message>
         <source>Disable Private Keys</source>
-        <translation type="unfinished">ปิดใช้งานกุญแจส่วนตัว</translation>
+        <translation type="unfinished">ปิดใช้งาน คีย์ ส่วนตัว</translation>
     </message>
     <message>
         <source>Make Blank Wallet</source>
-        <translation type="unfinished">ทำวอลเล็ตว่างเปล่า</translation>
+        <translation type="unfinished">ทำ วอลเล็ต ให้ว่างเปล่า</translation>
     </message>
     <message>
         <source>Descriptor Wallet</source>
-        <translation type="unfinished">ตัวอธิบายวอลเล็ต</translation>
+        <translation type="unfinished">ตัวอธิบาย วอลเล็ต</translation>
     </message>
     <message>
         <source>Create</source>
@@ -1179,15 +1244,15 @@
     <name>EditAddressDialog</name>
     <message>
         <source>Edit Address</source>
-        <translation type="unfinished">แก้ไขแอดเดรส</translation>
+        <translation type="unfinished">แก้ไข แอดเดรส</translation>
     </message>
     <message>
         <source>&amp;Label</source>
-        <translation type="unfinished">&amp;ป้ายชื่อ</translation>
+        <translation type="unfinished">&amp;เลเบล</translation>
     </message>
     <message>
         <source>The label associated with this address list entry</source>
-        <translation type="unfinished">รายการแสดง ป้ายชื่อที่เกี่ยวข้องกับที่เก็บนี้</translation>
+        <translation type="unfinished">รายการ แสดง เลเบล ที่ เกี่ยวข้องกับ ที่เก็บ นี้</translation>
     </message>
     <message>
         <source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
@@ -1199,19 +1264,19 @@
     </message>
     <message>
         <source>New sending address</source>
-        <translation type="unfinished">แอดเดรสการส่งใหม่</translation>
+        <translation type="unfinished">แอดเดรส การส่ง ใหม่</translation>
     </message>
     <message>
         <source>Edit receiving address</source>
-        <translation type="unfinished">แก้ไขแอดเดรสการรับ</translation>
+        <translation type="unfinished">แก้ไข แอดเดรส การรับ</translation>
     </message>
     <message>
         <source>Edit sending address</source>
-        <translation type="unfinished">แก้ไขแอดเดรสการส่ง</translation>
+        <translation type="unfinished">แก้ไข แอดเดรส การส่ง</translation>
     </message>
     <message>
         <source>The entered address "%1" is not a valid Bitcoin address.</source>
-        <translation type="unfinished">แอดเดรสที่ป้อน "%1" เป็น Bitcoin แอดเดรสที่ไม่ถูกต้อง</translation>
+        <translation type="unfinished">แอดเดรส ที่ป้อน "%1" เป็น Bitcoin แอดเดรส ที่ ไม่ ถูกต้อง</translation>
     </message>
     <message>
         <source>Could not unlock wallet.</source>
@@ -1288,11 +1353,11 @@
     </message>
     <message>
         <source>Use the default data directory</source>
-        <translation type="unfinished">ใช้ไดเรกทอรีข้อมูลเริ่มต้น</translation>
+        <translation type="unfinished">ใช้ ไดเรกทอรี ข้อมูล เริ่มต้น</translation>
     </message>
     <message>
         <source>Use a custom data directory:</source>
-        <translation type="unfinished">ใช้ไดเรกทอรีข้อมูลที่กำหนดเอง:</translation>
+        <translation type="unfinished">ใช้ ไดเรกทอรี ข้อมูล ที่กำหนดเอง:</translation>
     </message>
 </context>
 <context>
@@ -1321,7 +1386,11 @@
     <name>ModalOverlay</name>
     <message>
         <source>Form</source>
-        <translation type="unfinished">รูป</translation>
+        <translation type="unfinished">รูปแบบ</translation>
+    </message>
+    <message>
+        <source>Number of blocks left</source>
+        <translation type="unfinished">ตัวเลข ของ บล็อก ที่เหลือ</translation>
     </message>
     <message>
         <source>Unknown…</source>
@@ -1563,6 +1632,18 @@
         <source>Total:</source>
         <translation type="unfinished">ทั้งหมด:</translation>
     </message>
+    <message>
+        <source>Your current total balance</source>
+        <translation type="unfinished">ยอดคงเหลือ ทั้งหมด ในปัจจุบัน ของคุณ</translation>
+    </message>
+    <message>
+        <source>Spendable:</source>
+        <translation type="unfinished">ที่สามารถใช้จ่ายได้:</translation>
+    </message>
+    <message>
+        <source>Recent transactions</source>
+        <translation type="unfinished">การทำธุรกรรม ล่าสุด</translation>
+    </message>
     </context>
 <context>
     <name>PSBTOperationsDialog</name>
@@ -1606,6 +1687,16 @@
         <extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
         <translation type="unfinished">ทิศทาง</translation>
     </message>
+    <message>
+        <source>Sent</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
+        <translation type="unfinished">ส่งแล้ว</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have received from the peer.</extracomment>
+        <translation type="unfinished">รับแล้ว</translation>
+    </message>
     <message>
         <source>Address</source>
         <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
@@ -1619,13 +1710,34 @@
     </context>
 <context>
     <name>QRImageWidget</name>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;บันทึก ภาพ…</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Image</source>
+        <translation type="unfinished">&amp;คัดลอก ภาพ</translation>
+    </message>
     <message>
         <source>Save QR Code</source>
         <translation type="unfinished">บันทึกรหัส QR</translation>
     </message>
-    </context>
+    <message>
+        <source>PNG Image</source>
+        <extracomment>Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics.</extracomment>
+        <translation type="unfinished">ภาพ PNG</translation>
+    </message>
+</context>
 <context>
     <name>RPCConsole</name>
+    <message>
+        <source>&amp;Information</source>
+        <translation type="unfinished">&amp;ข้อมูล</translation>
+    </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">ทั่วไป</translation>
+    </message>
     <message>
         <source>Network</source>
         <translation type="unfinished">เครือข่าย</translation>
@@ -1634,6 +1746,10 @@
         <source>Name</source>
         <translation type="unfinished">ชื่อ</translation>
     </message>
+    <message>
+        <source>Number of connections</source>
+        <translation type="unfinished">ตัวเลข ของ connections</translation>
+    </message>
     <message>
         <source>Block chain</source>
         <translation type="unfinished">บล็อกเชน</translation>
@@ -1642,6 +1758,10 @@
         <source>Wallet: </source>
         <translation type="unfinished">วอลเล็ต: </translation>
     </message>
+    <message>
+        <source>(none)</source>
+        <translation type="unfinished">(ไม่มี)</translation>
+    </message>
     <message>
         <source>&amp;Reset</source>
         <translation type="unfinished">&amp;รีเซ็ต</translation>
@@ -1669,7 +1789,7 @@
     </message>
     <message>
         <source>Address Relay</source>
-        <translation type="unfinished">รีเลย์แอดเดรส</translation>
+        <translation type="unfinished">รีเลย์ แอดเดรส</translation>
     </message>
     <message>
         <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
@@ -1678,28 +1798,40 @@
     </message>
     <message>
         <source>Addresses Processed</source>
-        <translation type="unfinished">แอดเดรสที่ประมวลผลแล้ว</translation>
+        <translation type="unfinished">แอดเดรส ที่ประมวลผลแล้ว</translation>
     </message>
     <message>
         <source>Total number of addresses dropped due to rate-limiting.</source>
         <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
-        <translation type="unfinished">จำนวนแอดเดรสทั้งหมดลดลงเนื่องจากการจำกัดอัตรา</translation>
+        <translation type="unfinished">จำนวน แอดเดรส ทั้งหมด ลดลง เนื่องจาก การจำกัดอัตรา</translation>
     </message>
     <message>
         <source>Addresses Rate-Limited</source>
-        <translation type="unfinished">แอดเดรสจำกัดอัตรา</translation>
+        <translation type="unfinished">แอดเดรส จำกัดอัตรา</translation>
     </message>
     <message>
         <source>Node window</source>
-        <translation type="unfinished">หน้าต่างโหนด</translation>
+        <translation type="unfinished">โหนด(Node) วินโดว์</translation>
     </message>
     <message>
         <source>Decrease font size</source>
-        <translation type="unfinished">ลดขนาดตัวอักษร</translation>
+        <translation type="unfinished">ลด ขนาด ตัวอักษร</translation>
     </message>
     <message>
         <source>Increase font size</source>
-        <translation type="unfinished">เพิ่มขนาดตัวอักษร</translation>
+        <translation type="unfinished">เพิ่ม ขนาด ตัวอักษร</translation>
+    </message>
+    <message>
+        <source>Permissions</source>
+        <translation type="unfinished">การอนุญาต</translation>
+    </message>
+    <message>
+        <source>Services</source>
+        <translation type="unfinished">การบริการ</translation>
+    </message>
+    <message>
+        <source>Last Block</source>
+        <translation type="unfinished">Block สุดท้าย</translation>
     </message>
     <message>
         <source>&amp;Open</source>
@@ -1709,6 +1841,43 @@
         <source>&amp;Console</source>
         <translation type="unfinished">&amp;คอนโซล</translation>
     </message>
+    <message>
+        <source>Totals</source>
+        <translation type="unfinished">ทั้งหมด</translation>
+    </message>
+    <message>
+        <source>In:</source>
+        <translation type="unfinished">เข้า:</translation>
+    </message>
+    <message>
+        <source>Out:</source>
+        <translation type="unfinished">ออก:</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;คัดลอก แอดเดรส</translation>
+    </message>
+    <message>
+        <source>&amp;Disconnect</source>
+        <translation type="unfinished">&amp;หยุดเชื่อมต่อ</translation>
+    </message>
+    <message>
+        <source>1 &amp;hour</source>
+        <translation type="unfinished">1 &amp;ขั่วโมง</translation>
+    </message>
+    <message>
+        <source>1 d&amp;ay</source>
+        <translation type="unfinished">1 &amp;วัน</translation>
+    </message>
+    <message>
+        <source>1 &amp;week</source>
+        <translation type="unfinished">1 &amp;สัปดาห์</translation>
+    </message>
+    <message>
+        <source>1 &amp;year</source>
+        <translation type="unfinished">1 &amp;ปี</translation>
+    </message>
     <message>
         <source>&amp;Copy IP/Netmask</source>
         <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
@@ -1759,7 +1928,7 @@
     </message>
     <message>
         <source>&amp;Label:</source>
-        <translation type="unfinished">&amp;ป้ายชื่อ:</translation>
+        <translation type="unfinished">&amp;เลเบล:</translation>
     </message>
     <message>
         <source>&amp;Message:</source>
@@ -1779,7 +1948,23 @@
     </message>
     <message>
         <source>Copy &amp;URI</source>
-        <translation type="unfinished">&amp;คัดลอก URI</translation>
+        <translation type="unfinished">คัดลอก &amp;URI</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;คัดลอก แอดเดรส</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">คัดลอก &amp;เลเบล</translation>
+    </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">คัดลอก &amp;ข้อความ</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">คัดลอก &amp;จำนวน</translation>
     </message>
     <message>
         <source>Could not unlock wallet.</source>
@@ -1790,7 +1975,7 @@
     <name>ReceiveRequestDialog</name>
     <message>
         <source>Address:</source>
-        <translation type="unfinished">ที่อยู่:</translation>
+        <translation type="unfinished">แอดเดรส:</translation>
     </message>
     <message>
         <source>Amount:</source>
@@ -1798,7 +1983,7 @@
     </message>
     <message>
         <source>Label:</source>
-        <translation type="unfinished">ป้ายชื่อ:</translation>
+        <translation type="unfinished">เลเบล:</translation>
     </message>
     <message>
         <source>Message:</source>
@@ -1810,15 +1995,23 @@
     </message>
     <message>
         <source>Copy &amp;URI</source>
-        <translation type="unfinished">&amp;คัดลอก URI</translation>
+        <translation type="unfinished">คัดลอก &amp;URI</translation>
     </message>
     <message>
         <source>Copy &amp;Address</source>
-        <translation type="unfinished">&amp;คัดลอกที่อยู่</translation>
+        <translation type="unfinished">คัดลอก &amp;แอดเดรส</translation>
+    </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">&amp;ตรวจสอบ</translation>
     </message>
     <message>
         <source>Verify this address on e.g. a hardware wallet screen</source>
-        <translation type="unfinished">ยืนยันแอดเดรสนี้อยู่ใน เช่น ฮาร์ดแวร์วอลเล็ตสกรีน </translation>
+        <translation type="unfinished">ยืนยัน แอดเดรส นี้ อยู่ใน เช่น ฮาร์ดแวร์ วอลเล็ต สกรีน</translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;บันทึก ภาพ…</translation>
     </message>
     </context>
 <context>
@@ -1829,7 +2022,7 @@
     </message>
     <message>
         <source>Label</source>
-        <translation type="unfinished">ป้ายชื่อ</translation>
+        <translation type="unfinished">เลเบล</translation>
     </message>
     <message>
         <source>Message</source>
@@ -1837,14 +2030,26 @@
     </message>
     <message>
         <source>(no label)</source>
-        <translation type="unfinished">(ไม่มีป้ายชื่อ)</translation>
+        <translation type="unfinished">(เลเบล)</translation>
     </message>
-    </context>
+    <message>
+        <source>(no message)</source>
+        <translation type="unfinished">(ไม่มีข้อความ)</translation>
+    </message>
+    <message>
+        <source>Requested</source>
+        <translation type="unfinished">ร้องขอแล้ว</translation>
+    </message>
+</context>
 <context>
     <name>SendCoinsDialog</name>
     <message>
         <source>Send Coins</source>
-        <translation type="unfinished">ส่งเหรียญ</translation>
+        <translation type="unfinished">ส่ง เหรียญ</translation>
+    </message>
+    <message>
+        <source>automatically selected</source>
+        <translation type="unfinished">ทำการเลือก โดยอัตโนมัติแล้ว</translation>
     </message>
     <message>
         <source>Quantity:</source>
@@ -1870,6 +2075,14 @@
         <source>Change:</source>
         <translation type="unfinished">เงินทอน:</translation>
     </message>
+    <message>
+        <source>Custom change address</source>
+        <translation type="unfinished">เปลี่ยน แอดเดรส แบบกำหนดเอง</translation>
+    </message>
+    <message>
+        <source>Transaction Fee:</source>
+        <translation type="unfinished">ค่าธรรมเนียม การทำธุรกรรม:</translation>
+    </message>
     <message>
         <source>Hide</source>
         <translation type="unfinished">ซ่อน</translation>
@@ -1882,6 +2095,10 @@
         <source>Custom:</source>
         <translation type="unfinished">กำหนดเอง:</translation>
     </message>
+    <message>
+        <source>Add &amp;Recipient</source>
+        <translation type="unfinished">เพิ่ม &amp;รายชื่อผู้รับ</translation>
+    </message>
     <message>
         <source>Dust:</source>
         <translation type="unfinished">เศษ:</translation>
@@ -1890,17 +2107,61 @@
         <source>Choose…</source>
         <translation type="unfinished">เลือก…</translation>
     </message>
+    <message>
+        <source>Balance:</source>
+        <translation type="unfinished">ยอดคงเหลือ:</translation>
+    </message>
+    <message>
+        <source>S&amp;end</source>
+        <translation type="unfinished">&amp;ส่ง</translation>
+    </message>
     <message>
         <source>Copy amount</source>
         <translation type="unfinished">คัดลอกจำนวนเงิน</translation>
     </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">คัดลอก ค่าธรรมเนียม</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">คัดลอก หลัง ค่าธรรมเนียม</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">คัดลอก bytes</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">คัดลอก dust</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">คัดลอก change</translation>
+    </message>
     <message>
         <source>Connect your hardware wallet first.</source>
         <translation type="unfinished">เชื่อมต่อฮาร์ดแวร์วอลเล็ตของคุณก่อน</translation>
     </message>
     <message>
         <source> from wallet '%1'</source>
-        <translation type="unfinished">จากวอลเล็ต '%1'</translation>
+        <translation type="unfinished">จาก วอลเล็ต '%1'</translation>
+    </message>
+    <message>
+        <source>%1 to '%2'</source>
+        <translation type="unfinished">%1 ไปยัง '%2'</translation>
+    </message>
+    <message>
+        <source>%1 to %2</source>
+        <translation type="unfinished">%1 ไปยัง %2</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">เซ็น ล้มเหลว</translation>
+    </message>
+    <message>
+        <source>PSBT saved</source>
+        <translation type="unfinished">PSBT บันทึก</translation>
     </message>
     <message>
         <source>or</source>
@@ -1920,6 +2181,14 @@
         <source>Transaction fee</source>
         <translation type="unfinished">ค่าธรรมเนียมการทำธุรกรรม</translation>
     </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">จำนวน ทั้งหมด</translation>
+    </message>
+    <message>
+        <source>Confirm send coins</source>
+        <translation type="unfinished">ยืนยัน คอยน์ ที่ส่ง</translation>
+    </message>
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
@@ -1928,14 +2197,22 @@
     </message>
     <message>
         <source>(no label)</source>
-        <translation type="unfinished">(ไม่มีป้ายชื่อ)</translation>
+        <translation type="unfinished">(ไม่มีเลเบล)</translation>
     </message>
 </context>
 <context>
     <name>SendCoinsEntry</name>
+    <message>
+        <source>A&amp;mount:</source>
+        <translation type="unfinished">&amp;จำนวน:</translation>
+    </message>
+    <message>
+        <source>Pay &amp;To:</source>
+        <translation type="unfinished">ชำระ &amp;ให้:</translation>
+    </message>
     <message>
         <source>&amp;Label:</source>
-        <translation type="unfinished">&amp;ป้ายชื่อ:</translation>
+        <translation type="unfinished">&amp;เลเบล:</translation>
     </message>
     <message>
         <source>Paste address from clipboard</source>
@@ -1945,7 +2222,15 @@
         <source>Message:</source>
         <translation type="unfinished">ข้อความ:</translation>
     </message>
-    </context>
+    <message>
+        <source>Pay To:</source>
+        <translation type="unfinished">ชำระ ให้:</translation>
+    </message>
+    <message>
+        <source>Memo:</source>
+        <translation type="unfinished">บันทึกความจำ:</translation>
+    </message>
+</context>
 <context>
     <name>SendConfirmationDialog</name>
     <message>
@@ -1955,6 +2240,10 @@
     </context>
 <context>
     <name>SignVerifyMessageDialog</name>
+    <message>
+        <source>&amp;Sign Message</source>
+        <translation type="unfinished">&amp;เซ็น ข้อความ</translation>
+    </message>
     <message>
         <source>Paste address from clipboard</source>
         <translation type="unfinished">วางที่อยู่จากคลิปบอร์ด</translation>
@@ -1965,7 +2254,19 @@
     </message>
     <message>
         <source>Sign &amp;Message</source>
-        <translation type="unfinished">&amp;เซ็นข้อความ</translation>
+        <translation type="unfinished">เซ็น &amp;ข้อความ</translation>
+    </message>
+    <message>
+        <source>Clear &amp;All</source>
+        <translation type="unfinished">ล้าง &amp;ทั้งหมด</translation>
+    </message>
+    <message>
+        <source>&amp;Verify Message</source>
+        <translation type="unfinished">&amp;ตรวจสอบ ข้อความ</translation>
+    </message>
+    <message>
+        <source>Verify &amp;Message</source>
+        <translation type="unfinished">ตรวจสอบ &amp;ข้อความ</translation>
     </message>
     <message>
         <source>Wallet unlock was cancelled.</source>
@@ -1973,9 +2274,17 @@
     </message>
     <message>
         <source>No error</source>
-        <translation type="unfinished">ไม่มีข้อผิดพลาด</translation>
+        <translation type="unfinished">ไม่มี ข้อผิดพลาด</translation>
     </message>
-    </context>
+    <message>
+        <source>Message signed.</source>
+        <translation type="unfinished">ข้อความ เซ็นแล้ว</translation>
+    </message>
+    <message>
+        <source>Message verified.</source>
+        <translation type="unfinished">ข้อความ ตรวจสอบแล้ว</translation>
+    </message>
+</context>
 <context>
     <name>SplashScreen</name>
     <message>
@@ -1989,6 +2298,18 @@
 </context>
 <context>
     <name>TransactionDesc</name>
+    <message>
+        <source>in memory pool</source>
+        <translation type="unfinished">ใน memory pool</translation>
+    </message>
+    <message>
+        <source>not in memory pool</source>
+        <translation type="unfinished">ไม่ใช่ ใน memory pool</translation>
+    </message>
+    <message>
+        <source>%1 confirmations</source>
+        <translation type="unfinished">%1 ทำการยืนยัน</translation>
+    </message>
     <message>
         <source>Status</source>
         <translation type="unfinished">สถานะ</translation>
@@ -1997,20 +2318,64 @@
         <source>Date</source>
         <translation type="unfinished">วันที่</translation>
     </message>
+    <message>
+        <source>Source</source>
+        <translation type="unfinished">แหล่งที่มา</translation>
+    </message>
     <message>
         <source>From</source>
         <translation type="unfinished">จาก</translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished">ไม่ทราบ</translation>
+    </message>
     <message>
         <source>To</source>
         <translation type="unfinished">ถึง</translation>
     </message>
+    <message>
+        <source>own address</source>
+        <translation type="unfinished">แอดเดรส คุณเอง</translation>
+    </message>
+    <message>
+        <source>label</source>
+        <translation type="unfinished">เลเบล</translation>
+    </message>
+    <message>
+        <source>Credit</source>
+        <translation type="unfinished">เครดิต</translation>
+    </message>
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
             <numerusform>เต็มตัวใน 1%n บล้อก</numerusform>
         </translation>
     </message>
+    <message>
+        <source>not accepted</source>
+        <translation type="unfinished">ไม่ ยอมรับ</translation>
+    </message>
+    <message>
+        <source>Debit</source>
+        <translation type="unfinished">เดบิต</translation>
+    </message>
+    <message>
+        <source>Total debit</source>
+        <translation type="unfinished">เดบิต ทั้งหมด</translation>
+    </message>
+    <message>
+        <source>Total credit</source>
+        <translation type="unfinished">เครดิต ทั้งหมด</translation>
+    </message>
+    <message>
+        <source>Transaction fee</source>
+        <translation type="unfinished">ค่าธรรมเนียม การทำธุรกรรม</translation>
+    </message>
+    <message>
+        <source>Net amount</source>
+        <translation type="unfinished">จำนวน สุทธิ</translation>
+    </message>
     <message>
         <source>Message</source>
         <translation type="unfinished">ข้อความ</translation>
@@ -2019,11 +2384,27 @@
         <source>Comment</source>
         <translation type="unfinished">ความคิดเห็น</translation>
     </message>
+    <message>
+        <source>Merchant</source>
+        <translation type="unfinished">ร้านค้า</translation>
+    </message>
+    <message>
+        <source>Transaction</source>
+        <translation type="unfinished">การทำธุรกรรม</translation>
+    </message>
     <message>
         <source>Amount</source>
         <translation type="unfinished">จำนวน</translation>
     </message>
-    </context>
+    <message>
+        <source>true</source>
+        <translation type="unfinished">ถูก</translation>
+    </message>
+    <message>
+        <source>false</source>
+        <translation type="unfinished">ผิด</translation>
+    </message>
+</context>
 <context>
     <name>TransactionTableModel</name>
     <message>
@@ -2036,11 +2417,35 @@
     </message>
     <message>
         <source>Label</source>
-        <translation type="unfinished">ป้ายชื่อ</translation>
+        <translation type="unfinished">เลเบล</translation>
+    </message>
+    <message>
+        <source>Unconfirmed</source>
+        <translation type="unfinished">ไม่ยืนยัน</translation>
+    </message>
+    <message>
+        <source>Abandoned</source>
+        <translation type="unfinished">เพิกเฉย</translation>
+    </message>
+    <message>
+        <source>Received with</source>
+        <translation type="unfinished">รับ ด้วย</translation>
+    </message>
+    <message>
+        <source>Received from</source>
+        <translation type="unfinished">รับ จาก</translation>
+    </message>
+    <message>
+        <source>Sent to</source>
+        <translation type="unfinished">ส่ง ถึง</translation>
     </message>
     <message>
         <source>(no label)</source>
-        <translation type="unfinished">(ไม่มีป้ายชื่อ)</translation>
+        <translation type="unfinished">(ไม่มีเลเบล)</translation>
+    </message>
+    <message>
+        <source>Type of transaction.</source>
+        <translation type="unfinished">ประเภท ของ การทำธุรกรรม</translation>
     </message>
     </context>
 <context>
@@ -2069,19 +2474,71 @@
         <source>This year</source>
         <translation type="unfinished">ปีนี้</translation>
     </message>
+    <message>
+        <source>Received with</source>
+        <translation type="unfinished">รับ ด้วย</translation>
+    </message>
+    <message>
+        <source>Sent to</source>
+        <translation type="unfinished">ส่ง ถึง</translation>
+    </message>
+    <message>
+        <source>To yourself</source>
+        <translation type="unfinished">ถึง ตัวคุณเอง</translation>
+    </message>
+    <message>
+        <source>Other</source>
+        <translation type="unfinished">อื่นๆ</translation>
+    </message>
+    <message>
+        <source>Min amount</source>
+        <translation type="unfinished">จำนวน ขั้นต่ำ</translation>
+    </message>
+    <message>
+        <source>Range…</source>
+        <translation type="unfinished">ช่วง…</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;คัดลอก แอดเดรส</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">คัดลอก &amp;เลเบล</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">คัดลอก &amp;จำนวน</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">คัดลอก transaction &amp;ID</translation>
+    </message>
+    <message>
+        <source>Copy &amp;raw transaction</source>
+        <translation type="unfinished">คัดลอก &amp;raw transaction</translation>
+    </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">คัดลอก full transaction &amp;details</translation>
+    </message>
+    <message>
+        <source>&amp;Edit address label</source>
+        <translation type="unfinished">&amp;แก้ไข แอดเดรส เลเบล</translation>
+    </message>
     <message>
         <source>Show in %1</source>
         <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
-        <translation type="unfinished">แสดงใน %1</translation>
+        <translation type="unfinished">แสดง ใน %1</translation>
     </message>
     <message>
         <source>Export Transaction History</source>
-        <translation type="unfinished">ส่งออกประวัติการทำธุรกรรม</translation>
+        <translation type="unfinished">ส่งออก ประวัติ การทำธุรกรรม</translation>
     </message>
     <message>
         <source>Comma separated file</source>
         <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
-        <translation type="unfinished">ไฟล์คั่นด้วยเครื่องหมายจุลภาค</translation>
+        <translation type="unfinished">ไฟล์ คั่นด้วย เครื่องหมายจุลภาค</translation>
     </message>
     <message>
         <source>Confirmed</source>
@@ -2101,41 +2558,69 @@
     </message>
     <message>
         <source>Label</source>
-        <translation type="unfinished">ป้ายชื่อ</translation>
+        <translation type="unfinished">เลเบล</translation>
     </message>
     <message>
         <source>Address</source>
-        <translation type="unfinished">ที่อยู่</translation>
+        <translation type="unfinished">แอดเดรส</translation>
+    </message>
+    <message>
+        <source>ID</source>
+        <translation type="unfinished">ไอดี</translation>
     </message>
     <message>
         <source>Exporting Failed</source>
-        <translation type="unfinished">การส่งออกล้มเหลว</translation>
+        <translation type="unfinished">การส่งออก ล้มเหลว</translation>
     </message>
-    </context>
+    <message>
+        <source>Range:</source>
+        <translation type="unfinished">ช่วง:</translation>
+    </message>
+    <message>
+        <source>to</source>
+        <translation type="unfinished">ถึง</translation>
+    </message>
+</context>
 <context>
     <name>WalletFrame</name>
     <message>
         <source>Create a new wallet</source>
-        <translation type="unfinished">สร้างวอลเล็ตใหม่</translation>
+        <translation type="unfinished">สร้าง วอลเล็ต ใหม่</translation>
     </message>
     <message>
         <source>Error</source>
         <translation type="unfinished">ข้อผิดพลาด</translation>
     </message>
+    <message>
+        <source>Load Transaction Data</source>
+        <translation type="unfinished">โหลด Transaction Data</translation>
+    </message>
     </context>
 <context>
     <name>WalletModel</name>
     <message>
         <source>Send Coins</source>
-        <translation type="unfinished">ส่งเหรียญ</translation>
+        <translation type="unfinished">ส่ง คอยน์</translation>
+    </message>
+    <message>
+        <source>Increase:</source>
+        <translation type="unfinished">เพิ่มขึ้น:</translation>
+    </message>
+    <message>
+        <source>New fee:</source>
+        <translation type="unfinished">ค่าธรรมเนียม ใหม่:</translation>
     </message>
     <message>
         <source>PSBT copied</source>
         <translation type="unfinished">คัดลอก PSBT แล้ว</translation>
     </message>
+    <message>
+        <source>Can't display address</source>
+        <translation type="unfinished">ไม่สามารถ แสดง แอดเดรส</translation>
+    </message>
     <message>
         <source>default wallet</source>
-        <translation type="unfinished">วอลเล็ตเริ่มต้น</translation>
+        <translation type="unfinished">วอลเล็ต เริ่มต้น</translation>
     </message>
 </context>
 <context>
@@ -2146,20 +2631,24 @@
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">ส่งออกข้อมูลในแท็บปัจจุบันไปยังไฟล์</translation>
+        <translation type="unfinished">ส่งออก ข้อมูล ในแท็บ ปัจจุบัน ไปยัง ไฟล์</translation>
     </message>
     <message>
         <source>Backup Wallet</source>
-        <translation type="unfinished">สำรองข้อมูลวอลเล็ต</translation>
+        <translation type="unfinished">สำรองข้อมูล วอลเล็ต</translation>
     </message>
     <message>
         <source>Wallet Data</source>
         <extracomment>Name of the wallet data file format.</extracomment>
-        <translation type="unfinished">ข้อมูลวอลเล็ต</translation>
+        <translation type="unfinished">ข้อมูล วอลเล็ต</translation>
     </message>
     <message>
         <source>Backup Failed</source>
-        <translation type="unfinished">การสำรองข้อมูลล้มเหลว</translation>
+        <translation type="unfinished">การสำรองข้อมูล ล้มเหลว</translation>
+    </message>
+    <message>
+        <source>Backup Successful</source>
+        <translation type="unfinished">สำรองข้อมูล สำเร็จแล้ว</translation>
     </message>
     <message>
         <source>Cancel</source>
diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts
index d9427cbfdf4..0713c3c0c23 100644
--- a/src/qt/locale/bitcoin_zh_CN.ts
+++ b/src/qt/locale/bitcoin_zh_CN.ts
@@ -632,6 +632,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
         <translation type="unfinished">无法完成由之前版本启动的 -txindex 升级。请用之前的版本重新启动，或者进行一次完整的 -reindex 。</translation>
     </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s请求监听端口%u。这个端口被认为是“坏的”，因此任何比特币核心节点都不太可能连接到它。有关详细信息和完整列表，请参见 doc/p2p-bad-ports.md</translation>
+    </message>
     <message>
         <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
         <translation type="unfinished">在使用地址管理器(addrman)寻找出站连接时，无法同时提供特定的连接。</translation>
@@ -640,6 +644,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">加载%s时出错: 编译时未启用外部签名器支持，却仍然试图加载外部签名器钱包</translation>
     </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">无法重命名无效的 peers.dat 文件。 请移动或删除它，然后重试。</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">出站连接仅限于 Tor (-onlynet=onion)，但是未提供到达 Tor 网络的代理（no -proxy= and no -onion= given）或者被明确禁止 (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">对 %s 的配置设置只对 %s 网络生效，如果它位于配置的 [%s] 章节的话。</translation>

From 9549b28c04bb1fa79f188d3a78c7b79a31c0ea5f Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 14 Apr 2022 17:52:05 +0200
Subject: [PATCH 052/187] doc: Update manual pages for 23.0rc5

Tree-SHA512: cc721bc9a0a916a33979b17d98bfea1c569bd827072d651d8882ee674a0f14f0981bf22e3cd9eff384e580d6afd90c7310a1928d99f204833fce4d06a3287a67
---
 doc/man/bitcoin-cli.1    | 6 +++---
 doc/man/bitcoin-qt.1     | 6 +++---
 doc/man/bitcoin-tx.1     | 6 +++---
 doc/man/bitcoin-util.1   | 6 +++---
 doc/man/bitcoin-wallet.1 | 6 +++---
 doc/man/bitcoind.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index bd2d60c5ef8..63a5d75b791 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-CLI "1" "April 2022" "bitcoin-cli v23.0.0rc4" "User Commands"
+.TH BITCOIN-CLI "1" "April 2022" "bitcoin-cli v23.0.0rc5" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc4
+bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc5
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc4
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.0.0rc4
+Bitcoin Core RPC client version v23.0.0rc5
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index ea9e33f7568..5a58c6de037 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-QT "1" "April 2022" "bitcoin-qt v23.0.0rc4" "User Commands"
+.TH BITCOIN-QT "1" "April 2022" "bitcoin-qt v23.0.0rc5" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc4
+bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc5
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc4
+Bitcoin Core version v23.0.0rc5
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index 20b088101f3..b85bb026af2 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-TX "1" "April 2022" "bitcoin-tx v23.0.0rc4" "User Commands"
+.TH BITCOIN-TX "1" "April 2022" "bitcoin-tx v23.0.0rc5" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc4
+bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc5
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc4
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.0.0rc4
+Bitcoin Core bitcoin\-tx utility version v23.0.0rc5
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index dbac5a889c8..6ddb611aa61 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-UTIL "1" "April 2022" "bitcoin-util v23.0.0rc4" "User Commands"
+.TH BITCOIN-UTIL "1" "April 2022" "bitcoin-util v23.0.0rc5" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.0.0rc4
+bitcoin-util \- manual page for bitcoin-util v23.0.0rc5
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.0.0rc4
+Bitcoin Core bitcoin\-util utility version v23.0.0rc5
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 900db6a0503..c393d7944e8 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-WALLET "1" "April 2022" "bitcoin-wallet v23.0.0rc4" "User Commands"
+.TH BITCOIN-WALLET "1" "April 2022" "bitcoin-wallet v23.0.0rc5" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc4
+bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc5
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.0.0rc4
+Bitcoin Core bitcoin\-wallet version v23.0.0rc5
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index 7b5ef2a024e..e9721a6fc58 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIND "1" "April 2022" "bitcoind v23.0.0rc4" "User Commands"
+.TH BITCOIND "1" "April 2022" "bitcoind v23.0.0rc5" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.0.0rc4
+bitcoind \- manual page for bitcoind v23.0.0rc5
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc4
+Bitcoin Core version v23.0.0rc5
 .SH OPTIONS
 .HP
 \-?

From 4253c619cfed09fc309ea6f2b421d0ecb5c1fed4 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 21 Apr 2022 21:23:05 +0200
Subject: [PATCH 053/187] build: Bump to final

Tree-SHA512: 389a841cb36dd8b9c99279d63473a10c83c09700b0077bd16f73d1141d5d79c1bdbba462f6fcb4c1917c28260bbf1359bf93bbe695b150adde23c4533d6c85cd
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 95ede9a4822..6ae8b778b16 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 0)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 5)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From fcf6c8f4eb217763545ede1766831a6b93f583bd Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Thu, 21 Apr 2022 21:28:07 +0200
Subject: [PATCH 054/187] doc: Update manual pages for 23.0

Tree-SHA512: 0e683e928e3c8e2e5534b8a28eb288445caeadf698e27d1c307cad8a8edb02c151ec245de4ed64fc6b7f137dfcb808fec410bd9f968f6d3f80ee3067563ca97a
---
 doc/man/bitcoin-cli.1    | 6 +++---
 doc/man/bitcoin-qt.1     | 6 +++---
 doc/man/bitcoin-tx.1     | 6 +++---
 doc/man/bitcoin-util.1   | 6 +++---
 doc/man/bitcoin-wallet.1 | 6 +++---
 doc/man/bitcoind.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index 63a5d75b791..5dc94356a89 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-CLI "1" "April 2022" "bitcoin-cli v23.0.0rc5" "User Commands"
+.TH BITCOIN-CLI "1" "April 2022" "bitcoin-cli v23.0.0" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc5
+bitcoin-cli \- manual page for bitcoin-cli v23.0.0
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.0.0rc5
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.0.0rc5
+Bitcoin Core RPC client version v23.0.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index 5a58c6de037..72a04861215 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-QT "1" "April 2022" "bitcoin-qt v23.0.0rc5" "User Commands"
+.TH BITCOIN-QT "1" "April 2022" "bitcoin-qt v23.0.0" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.0.0rc5
+bitcoin-qt \- manual page for bitcoin-qt v23.0.0
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc5
+Bitcoin Core version v23.0.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index b85bb026af2..fe96147da71 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-TX "1" "April 2022" "bitcoin-tx v23.0.0rc5" "User Commands"
+.TH BITCOIN-TX "1" "April 2022" "bitcoin-tx v23.0.0" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc5
+bitcoin-tx \- manual page for bitcoin-tx v23.0.0
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.0.0rc5
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.0.0rc5
+Bitcoin Core bitcoin\-tx utility version v23.0.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index 6ddb611aa61..e5ae0197e75 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-UTIL "1" "April 2022" "bitcoin-util v23.0.0rc5" "User Commands"
+.TH BITCOIN-UTIL "1" "April 2022" "bitcoin-util v23.0.0" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.0.0rc5
+bitcoin-util \- manual page for bitcoin-util v23.0.0
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.0.0rc5
+Bitcoin Core bitcoin\-util utility version v23.0.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index c393d7944e8..6041afc9c6f 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-WALLET "1" "April 2022" "bitcoin-wallet v23.0.0rc5" "User Commands"
+.TH BITCOIN-WALLET "1" "April 2022" "bitcoin-wallet v23.0.0" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0rc5
+bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.0.0rc5
+Bitcoin Core bitcoin\-wallet version v23.0.0
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index e9721a6fc58..b15f43c5099 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIND "1" "April 2022" "bitcoind v23.0.0rc5" "User Commands"
+.TH BITCOIND "1" "April 2022" "bitcoind v23.0.0" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.0.0rc5
+bitcoind \- manual page for bitcoind v23.0.0
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0rc5
+Bitcoin Core version v23.0.0
 .SH OPTIONS
 .HP
 \-?

From 7fcac96597218691724002c2b8ecb3dbcf60bf06 Mon Sep 17 00:00:00 2001
From: Martin Zumsande <mzumsande@gmail.com>
Date: Sun, 29 May 2022 14:36:53 +0200
Subject: [PATCH 055/187] rpc: Capture potentially large UniValue by ref for
 rpcdoccheck

Github-Pull: 25237
Rebased-From: 20ff4991e548630d7bb5e491fa4d69ec49369872
---
 src/rpc/util.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/rpc/util.cpp b/src/rpc/util.cpp
index 2059628b540..76f63546dab 100644
--- a/src/rpc/util.cpp
+++ b/src/rpc/util.cpp
@@ -573,7 +573,7 @@ UniValue RPCHelpMan::HandleRequest(const JSONRPCRequest& request) const
         throw std::runtime_error(ToString());
     }
     const UniValue ret = m_fun(*this, request);
-    CHECK_NONFATAL(std::any_of(m_results.m_results.begin(), m_results.m_results.end(), [ret](const RPCResult& res) { return res.MatchesType(ret); }));
+    CHECK_NONFATAL(std::any_of(m_results.m_results.begin(), m_results.m_results.end(), [&ret](const RPCResult& res) { return res.MatchesType(ret); }));
     return ret;
 }
 

From 7658055c4e97b998639b67fd6dca386c1cdc748a Mon Sep 17 00:00:00 2001
From: brunoerg <brunoely.gc@gmail.com>
Date: Wed, 25 May 2022 15:16:22 -0300
Subject: [PATCH 056/187] rpc: fix inappropriate warning for address type
 p2sh-segwit in createmultisig and addmultisigaddress

Github-Pull: #25220
Rebased-From: eaf6f630c0190c634b5f1c85f749437f4209cc36
---
 src/rpc/misc.cpp             | 4 ++--
 src/wallet/rpc/addresses.cpp | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp
index 8d7b48d697d..2dace52777c 100644
--- a/src/rpc/misc.cpp
+++ b/src/rpc/misc.cpp
@@ -169,11 +169,11 @@ static RPCHelpMan createmultisig()
     result.pushKV("descriptor", descriptor->ToString());
 
     UniValue warnings(UniValue::VARR);
-    if (!request.params[2].isNull() && OutputTypeFromDestination(dest) != output_type) {
+    if (descriptor->GetOutputType() != output_type) {
         // Only warns if the user has explicitly chosen an address type we cannot generate
         warnings.push_back("Unable to make chosen address type, please ensure no uncompressed public keys are present.");
     }
-    if (warnings.size()) result.pushKV("warnings", warnings);
+    if (!warnings.empty()) result.pushKV("warnings", warnings);
 
     return result;
 },
diff --git a/src/wallet/rpc/addresses.cpp b/src/wallet/rpc/addresses.cpp
index 51587a64a39..bb9d2aea9b8 100644
--- a/src/wallet/rpc/addresses.cpp
+++ b/src/wallet/rpc/addresses.cpp
@@ -302,11 +302,11 @@ RPCHelpMan addmultisigaddress()
     result.pushKV("descriptor", descriptor->ToString());
 
     UniValue warnings(UniValue::VARR);
-    if (!request.params[3].isNull() && OutputTypeFromDestination(dest) != output_type) {
+    if (descriptor->GetOutputType() != output_type) {
         // Only warns if the user has explicitly chosen an address type we cannot generate
         warnings.push_back("Unable to make chosen address type, please ensure no uncompressed public keys are present.");
     }
-    if (warnings.size()) result.pushKV("warnings", warnings);
+    if (!warnings.empty()) result.pushKV("warnings", warnings);
 
     return result;
 },

From 32fa522a80c87231dc6194b982f64440c801b7d4 Mon Sep 17 00:00:00 2001
From: brunoerg <brunoely.gc@gmail.com>
Date: Wed, 25 May 2022 15:17:12 -0300
Subject: [PATCH 057/187] test: ensure createmultisig and addmultisigaddress
 are not returning any warning for expected cases

Github-Pull: #25220
Rebased-From: 3a9b9bb38e653c8ff7220b9af6e337a90c2c22dc
---
 test/functional/rpc_createmultisig.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/test/functional/rpc_createmultisig.py b/test/functional/rpc_createmultisig.py
index 1a3d14100f0..85a25083922 100755
--- a/test/functional/rpc_createmultisig.py
+++ b/test/functional/rpc_createmultisig.py
@@ -80,14 +80,16 @@ def run_test(self):
             assert 'warnings' not in result
 
             # Generate addresses with the segwit types. These should all make legacy addresses
+            err_msg = ["Unable to make chosen address type, please ensure no uncompressed public keys are present."]
+
             for addr_type in ['bech32', 'p2sh-segwit']:
-                result = wmulti0.createmultisig(2, keys, addr_type)
+                result = wmulti0.createmultisig(nrequired=2, keys=keys, address_type=addr_type)
                 assert_equal(legacy_addr, result['address'])
-                assert_equal(result['warnings'], ["Unable to make chosen address type, please ensure no uncompressed public keys are present."])
+                assert_equal(result['warnings'], err_msg)
 
-                result = wmulti0.addmultisigaddress(2, keys, '', addr_type)
+                result = wmulti0.addmultisigaddress(nrequired=2, keys=keys, address_type=addr_type)
                 assert_equal(legacy_addr, result['address'])
-                assert_equal(result['warnings'], ["Unable to make chosen address type, please ensure no uncompressed public keys are present."])
+                assert_equal(result['warnings'], err_msg)
 
         self.log.info('Testing sortedmulti descriptors with BIP 67 test vectors')
         with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'data/rpc_bip67.json'), encoding='utf-8') as f:
@@ -158,6 +160,7 @@ def do_multisig(self):
         desc = descsum_create(desc)
 
         msig = node2.createmultisig(self.nsigs, self.pub, self.output_type)
+        assert 'warnings' not in msig
         madd = msig["address"]
         mredeem = msig["redeemScript"]
         assert_equal(desc, msig['descriptor'])

From bd6d3ac8b7edf257f76ceb819f5d657313161585 Mon Sep 17 00:00:00 2001
From: Andrew Chow <achow101-github@achow101.com>
Date: Tue, 24 May 2022 12:55:03 -0400
Subject: [PATCH 058/187] windeploy: Renewed windows code signing certificate

Github-Pull: #25201
Rebased-From: 7e9fe6d800ee8f3381e8f6ad2371f7775c68fad9
---
 contrib/windeploy/win-codesign.cert | 189 ++++++++++++++++------------
 1 file changed, 106 insertions(+), 83 deletions(-)

diff --git a/contrib/windeploy/win-codesign.cert b/contrib/windeploy/win-codesign.cert
index e763df58478..22f17296b6a 100644
--- a/contrib/windeploy/win-codesign.cert
+++ b/contrib/windeploy/win-codesign.cert
@@ -1,89 +1,112 @@
+-----BEGIN CERTIFICATE-----
+MIIHfDCCBWSgAwIBAgIQCmVvdQal72U2QxbUTT3SRTANBgkqhkiG9w0BAQsFADBp
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
+OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0
+IDIwMjEgQ0ExMB4XDTIyMDUyNDAwMDAwMFoXDTI0MDUyOTIzNTk1OVowgYAxCzAJ
+BgNVBAYTAlVTMREwDwYDVQQIEwhEZWxhd2FyZTEOMAwGA1UEBxMFTGV3ZXMxJjAk
+BgNVBAoTHUJpdGNvaW4gQ29yZSBDb2RlIFNpZ25pbmcgTExDMSYwJAYDVQQDEx1C
+aXRjb2luIENvcmUgQ29kZSBTaWduaW5nIExMQzCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBALewxfjztuRTDNAGf7zkqqWNEt28CZmVJHoYltVRxtE1BP45
+BfmptH5eM1JC/XosTPytHRFeOkO4YVAtiELxK9S/82OZlKA7Mx7PW6vv1184u8+m
+P3WpTN/KAZTaW9fB0ELTSCuqsvXq2crM2T7NudJnSyWh2VBjLfPPCAcYwzyGKQbl
+jQWjFEJDJWFK83t9mK/v0WQgA3jGJeaz+V6CYXMS7UgpdG8dUhg9o63gYJZAW5pY
+RIsNRcJCM5LHhwEMW5329UsTmYCfP7/53emepbQ0n8ijVZjgaJ+LZ8NspBLSeCiF
+9UPCKX82uWiQAUTbYHCfSi3I0f3wQidXL9ZY+PXmalM7BMuQ+c2xEcl97CnhrDzx
+EBwZvvOC9wGoG+8+epV4TjUZWf+7QN1ZYeg1rai7c7c8u9ILogE8su2xVoz333TH
+CDvScIgnQXmk+cbKMBtg9kM0F+aLWsN2xVf0uAj3U7sdXLrfJeW0DZIktWtTBQzX
+O/OE4Ka+1WFnDg0HJIih0cTjl9YYvfe53L4pCGy+qGt/XGBRqCMfXp3g+H9FGR5r
+pensVVcsrv3GbTfYdlpdmp9OHH5G57GTAZueobCZg7r7RKK0zPU9EiTLJxzyXuai
+v/Ksd8eIhHRjewMaQuAtQM1tO+oKAbLF0v2M7v7/aVT76X32JllYAizm3zjvAgMB
+AAGjggIGMIICAjAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNV
+HQ4EFgQUvCpU58PIuofv0kHJ3Ty0YDKEy3cwDgYDVR0PAQH/BAQDAgeAMBMGA1Ud
+JQQMMAoGCCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwz
+LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5
+NlNIQTM4NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5j
+b20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIx
+Q0ExLmNybDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsGAQUFBwIBFhtodHRw
+Oi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsG
+AQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYBBQUHMAKGUGh0
+dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVT
+aWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAwGA1UdEwEB/wQCMAAwDQYJ
+KoZIhvcNAQELBQADggIBABhpTZufRws1vrtI0xB1/UWrSEJxdPHivfpXE708dzum
+Jh3TFzpsEUCQX5BJJet1l7x92sKNeAL7votA+8O8YvMD64Kim7VKA2BB8AOHKQbp
+r1c2iZBwwofInviRYvsrvQta6KBy2KOe1L/l0KnpUazL9Tv4VKvuWAw/Qc0/eTQr
+NZRsmADORxnZ1qW+SpF+/WbazIYjod/Oqb1U3on+PzyiGD3SjzNhsdFRptqzrIaY
+UVV+2XHG4fN6A8wkyQL5NIVXGiK7rqS5VrRAv58Lf1ZZTghdAL+5SySE0OsR9t0K
+W73ZB9pxbuZZ6Zfxjotjw+IilCEm3ADbc7Eb2ijI4x8mix0XWMUrhL34s7/jRyDi
+P+30aSgjWp611tp/EYRW5kpIaFR8AesDdM0DSSCCRXOMwQG2Tq2+CnqItB5oLNPp
+2XySwlIWvmjbzsREfIpE3yh3bxmHY+vFIc2R0nNkbWNIT6AGtaEQ7oWkgpK8YMkA
+QCf4EUC4Qa7qHiH6YSmYJhjApBLC7UDwevgwxuDrwimWAj+tDkzdnENMcBp4SAy6
+LwUuDi2IU6HRSXWdh2YEkDbc3FdwknnnEWaB4dlRL85YjHyLXN0KiE7SKTj1LfR4
+dGeDqVUlDj9D5+X4a7F89wLP/um40/52HUQv5t5WcNr/47r9aVkx9DHs1b8oUnLg
+-----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
-MIIGQzCCBSugAwIBAgIQBSN7Cm16Z0UT9p7lA2jiKDANBgkqhkiG9w0BAQsFADBy
+MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBi
 MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
-SUQgQ29kZSBTaWduaW5nIENBMB4XDTIxMDUyMTAwMDAwMFoXDTIyMDUyNjIzNTk1
-OVowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhEZWxhd2FyZTEOMAwGA1UEBxMF
-TGV3ZXMxJjAkBgNVBAoTHUJpdGNvaW4gQ29yZSBDb2RlIFNpZ25pbmcgTExDMSYw
-JAYDVQQDEx1CaXRjb2luIENvcmUgQ29kZSBTaWduaW5nIExMQzCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBAKe6xtFgKAQ68MvxwCjNtpgPobfDQCLKvCAN
-uBKGYuub6ufQB5dhCLN9fjMgfg33AyauvU3PcEUDUWD3/k925bPqgxHC3E7YqoB+
-11b/2Y7a86okqUgcGgvKhaKoHmXxElpM9EjQHjJ0yL4QAR1Lp+9CMMW3wIulBYKt
-wLIArFvbuQhMO/6rxL8frpK049v//WfQzB16GXuFnzN/6fDK7oOt5IrKTg4H6EY2
-fj4+QaUj0lNX7aHnZ6Ki45h2RUPDgN1ipRIuhM67npyZ/tdzPPjI3PUgfXCccN6D
-+qWWnbbbvPuOht4ziPciVnPd57PqJmAOnLI86gisDfd7VKlcpOSEaagdUGvMbU6f
-uAps818GwnJzwCGllxlKASCgXDAckLLvMuit4RfYAhhdhw5R0AsaWK0HW88oHOqi
-U7eWlMCbSGk34x9hBrxYl7tvcNcLPWIPYrrhFWNFpkV8bVVIoV5rUNRgWvBcdOq1
-CCPTfsJp3nEH2WCoBghZquDZLSW12wMw2UsQyEojBeGhrR1inn8uK93wSnVCC8F4
-21yWNRMNe/LQVhmZDgFOen9r/WijBsBdQw1bL8N4zGdYv8+soqkrWzW417FfSx81
-pj4j5FEXYXXV5k/4/eBpIARXVRR8xya0nGkhNJmBk0jjDGD8fPW2gFQbqnUwAQ34
-vOr8NUqHAgMBAAGjggHEMIIBwDAfBgNVHSMEGDAWgBRaxLl7KgqjpepxA8Bg+S32
-ZXUOWDAdBgNVHQ4EFgQUVSLtZnifEHvd8z3E7AyLYNuDiaMwDgYDVR0PAQH/BAQD
-AgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAzoDGGL2h0dHA6
-Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMDWgM6Ax
-hi9odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcxLmNy
-bDBLBgNVHSAERDBCMDYGCWCGSAGG/WwDATApMCcGCCsGAQUFBwIBFhtodHRwOi8v
-d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
-JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
-AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
-ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
-BQADggEBAOaJneI91NJgqghUxgc0AWQ01SAJTgN4z7xMQ3W0ZAtwGbA0byT7YRlj
-j7h+j+hMX/JYkRJETTh8Nalq2tPWJBiMMEPOGFVttFER1pwouHkK9pSKyp4xRvNU
-L0LPh7fE4EYMJoynys6ZTpMCHLku+X3jFat1+1moh9TJRvK5+ETZYGl0seFNU3mJ
-dZzusObm4scffIGgi40kmmISKd5ZRuooRTu9FFR/3vpfbA+7Vg4RSH3CcQPo9bfk
-+h/qRQhSfQInTBn7obRpIlvEcK782qivqseJGdtnTmcdVRShD5ckTVza1yv25uQz
-l/yTqmG2LXlYjl5iMSdF0C1xYq6IsOA=
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
+RzQwHhcNMjEwNDI5MDAwMDAwWhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRy
+dXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIIC
+IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3XdU5WRuxiEL1
+M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZ
+wZHMgQM+TXAkZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXzENOLsvsI
+8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzhGMIazMXuk0lwQjKP+8bqHPNlaJGi
+TUyCEUhSaN4QvRRXXegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjqGzLm
+ysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEjR0ezoQ9uo6ttmAaDG7dqZy3S
+vUQakhCBj7A7CdfHmzJawv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tv
+k2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBeM/Lo6OwKp7ADK5GyNnm+
+960IHnWmZcy740hQ83eRGv7bUKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3s
+MJN2FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrcJisB9IlNWdt4z4FK
+PkBHX8mBUHOFECMhWWCKZFTBzCEa6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1H
+s/q27IwyCQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LS
+cV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEF
+BQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
+Z2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu
+Y29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYy
+aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j
+cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQAD
+ggIBADojRD2NCHbuj7w6mdNW4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L
+/Z6jfCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3WqqQz/WTauPrINHV
+UHmImoqKwba9oUgYftzYgBoRGRjNYZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rd
+KOtfJqGVWEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67Np375SFTWsPK
+6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIUH0AzfAPilbLCIXVzUstG2MQ0HKKlS43N
+b3Y3LIU/Gs4m6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL6TEa/y4Z
+XDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt2zyknIYf48FWGysj/4+16oh7cGvm
+oLr9Oj9FpsToFpFSi0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+uKIw8
+y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8ibEH5glwVZsxsDsrFhsP2JjMM
+B0ug0wcCampAMEhLNKhRILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+F
+SCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqGVnhO
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
-MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
 MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
-aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
-Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
-8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
-wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
-fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
-jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
-n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
-HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
-MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
-MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
-RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
-ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
-Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
-TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
-d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
-CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
-MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
-fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
-RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
-EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
-L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
-B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
+RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
+ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
+xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
+ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
+DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
+jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
+CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
+EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
+fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
+uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
+chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
+9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
+SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
+fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
+sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
+cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
+0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
+4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
+r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
+/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
+gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
 -----END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
-JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
-mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
-wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
-VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
-AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
-AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
-BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
-pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
-dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
-fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
-NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
-H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-

From 5fd25eb9cb52d09a4bf8b37b9d442e25bb22074e Mon Sep 17 00:00:00 2001
From: Andrew Chow <achow101-github@achow101.com>
Date: Tue, 1 Mar 2022 09:09:10 -0500
Subject: [PATCH 059/187] tests: Calculate input weight more accurately

The external input test with specifying input weight would make a
pessimistic estimate of the input weight. However this would result in a
test failure as it is sometimes too pessimistic when an ECDSA signature
ends up being smaller than usual. To correct this, we can calculate the
input weight more accurately.

Github-Pull: #24454
Rebased-From: 8a04a386f75d099f4b9864b0cdf7f26442b5801f
---
 test/functional/rpc_psbt.py    | 11 ++++++++---
 test/functional/wallet_send.py | 11 ++++++++---
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py
index b037807b535..797da909730 100755
--- a/test/functional/rpc_psbt.py
+++ b/test/functional/rpc_psbt.py
@@ -10,6 +10,10 @@
 
 from test_framework.descriptors import descsum_create
 from test_framework.key import ECKey
+from test_framework.messages import (
+    ser_compact_size,
+    WITNESS_SCALE_FACTOR,
+)
 from test_framework.test_framework import BitcoinTestFramework
 from test_framework.util import (
     assert_approx,
@@ -655,10 +659,11 @@ def test_psbt_input_keys(psbt_input, keys):
                 break
         psbt_in = dec["inputs"][input_idx]
         # Calculate the input weight
-        # (prevout + sequence + length of scriptSig + 2 bytes buffer) * 4 + len of scriptwitness
+        # (prevout + sequence + length of scriptSig + scriptsig + 1 byte buffer) * WITNESS_SCALE_FACTOR + num scriptWitness stack items + (length of stack item + stack item) * N stack items + 1 byte buffer
         len_scriptsig = len(psbt_in["final_scriptSig"]["hex"]) // 2 if "final_scriptSig" in psbt_in else 0
-        len_scriptwitness = len(psbt_in["final_scriptwitness"]["hex"]) // 2 if "final_scriptwitness" in psbt_in else 0
-        input_weight = ((41 + len_scriptsig + 2) * 4) + len_scriptwitness
+        len_scriptsig += len(ser_compact_size(len_scriptsig)) + 1
+        len_scriptwitness = (sum([(len(x) // 2) + len(ser_compact_size(len(x) // 2)) for x in psbt_in["final_scriptwitness"]]) + len(psbt_in["final_scriptwitness"]) + 1) if "final_scriptwitness" in psbt_in else 0
+        input_weight = ((40 + len_scriptsig) * WITNESS_SCALE_FACTOR) + len_scriptwitness
         low_input_weight = input_weight // 2
         high_input_weight = input_weight * 2
 
diff --git a/test/functional/wallet_send.py b/test/functional/wallet_send.py
index 86e36be8f76..13cc7bad77c 100755
--- a/test/functional/wallet_send.py
+++ b/test/functional/wallet_send.py
@@ -10,6 +10,10 @@
 from test_framework.authproxy import JSONRPCException
 from test_framework.descriptors import descsum_create
 from test_framework.key import ECKey
+from test_framework.messages import (
+    ser_compact_size,
+    WITNESS_SCALE_FACTOR,
+)
 from test_framework.test_framework import BitcoinTestFramework
 from test_framework.util import (
     assert_equal,
@@ -526,10 +530,11 @@ def run_test(self):
                 break
         psbt_in = dec["inputs"][input_idx]
         # Calculate the input weight
-        # (prevout + sequence + length of scriptSig + 2 bytes buffer) * 4 + len of scriptwitness
+        # (prevout + sequence + length of scriptSig + scriptsig + 1 byte buffer) * WITNESS_SCALE_FACTOR + num scriptWitness stack items + (length of stack item + stack item) * N stack items + 1 byte buffer
         len_scriptsig = len(psbt_in["final_scriptSig"]["hex"]) // 2 if "final_scriptSig" in psbt_in else 0
-        len_scriptwitness = len(psbt_in["final_scriptwitness"]["hex"]) // 2 if "final_scriptwitness" in psbt_in else 0
-        input_weight = ((41 + len_scriptsig + 2) * 4) + len_scriptwitness
+        len_scriptsig += len(ser_compact_size(len_scriptsig)) + 1
+        len_scriptwitness = (sum([(len(x) // 2) + len(ser_compact_size(len(x) // 2)) for x in psbt_in["final_scriptwitness"]]) + len(psbt_in["final_scriptwitness"]) + 1) if "final_scriptwitness" in psbt_in else 0
+        input_weight = ((40 + len_scriptsig) * WITNESS_SCALE_FACTOR) + len_scriptwitness
 
         # Input weight error conditions
         assert_raises_rpc_error(

From 039ef215bc1268cefb645472d411993e5582486b Mon Sep 17 00:00:00 2001
From: Andrew Chow <achow101-github@achow101.com>
Date: Thu, 24 Mar 2022 11:50:02 -0400
Subject: [PATCH 060/187] tests: Use descriptor that requires both legacy and
 segwit

Github-Pull: #24454
Rebased-From: 9f5ab670e7c8165f161ec44dbd95778c5515ece0
---
 test/functional/rpc_psbt.py    | 6 +++---
 test/functional/wallet_send.py | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py
index 797da909730..444e56610e6 100755
--- a/test/functional/rpc_psbt.py
+++ b/test/functional/rpc_psbt.py
@@ -619,8 +619,8 @@ def test_psbt_input_keys(psbt_input, keys):
         self.nodes[1].createwallet("extfund")
         wallet = self.nodes[1].get_wallet_rpc("extfund")
 
-        # Make a weird but signable script. sh(pkh()) descriptor accomplishes this
-        desc = descsum_create("sh(pkh({}))".format(privkey))
+        # Make a weird but signable script. sh(wsh(pkh())) descriptor accomplishes this
+        desc = descsum_create("sh(wsh(pkh({})))".format(privkey))
         if self.options.descriptors:
             res = self.nodes[0].importdescriptors([{"desc": desc, "timestamp": "now"}])
         else:
@@ -638,7 +638,7 @@ def test_psbt_input_keys(psbt_input, keys):
         assert_raises_rpc_error(-4, "Insufficient funds", wallet.walletcreatefundedpsbt, [ext_utxo], {self.nodes[0].getnewaddress(): 15})
 
         # But funding should work when the solving data is provided
-        psbt = wallet.walletcreatefundedpsbt([ext_utxo], {self.nodes[0].getnewaddress(): 15}, 0, {"add_inputs": True, "solving_data": {"pubkeys": [addr_info['pubkey']], "scripts": [addr_info["embedded"]["scriptPubKey"]]}})
+        psbt = wallet.walletcreatefundedpsbt([ext_utxo], {self.nodes[0].getnewaddress(): 15}, 0, {"add_inputs": True, "solving_data": {"pubkeys": [addr_info['pubkey']], "scripts": [addr_info["embedded"]["scriptPubKey"], addr_info["embedded"]["embedded"]["scriptPubKey"]]}})
         signed = wallet.walletprocesspsbt(psbt['psbt'])
         assert not signed['complete']
         signed = self.nodes[0].walletprocesspsbt(signed['psbt'])
diff --git a/test/functional/wallet_send.py b/test/functional/wallet_send.py
index 13cc7bad77c..07baa0595e6 100755
--- a/test/functional/wallet_send.py
+++ b/test/functional/wallet_send.py
@@ -492,8 +492,8 @@ def run_test(self):
         self.nodes[1].createwallet("extfund")
         ext_fund = self.nodes[1].get_wallet_rpc("extfund")
 
-        # Make a weird but signable script. sh(pkh()) descriptor accomplishes this
-        desc = descsum_create("sh(pkh({}))".format(privkey))
+        # Make a weird but signable script. sh(wsh(pkh())) descriptor accomplishes this
+        desc = descsum_create("sh(wsh(pkh({})))".format(privkey))
         if self.options.descriptors:
             res = ext_fund.importdescriptors([{"desc": desc, "timestamp": "now"}])
         else:
@@ -511,7 +511,7 @@ def run_test(self):
         self.test_send(from_wallet=ext_wallet, to_wallet=self.nodes[0], amount=15, inputs=[ext_utxo], add_inputs=True, psbt=True, include_watching=True, expect_error=(-4, "Insufficient funds"))
 
         # But funding should work when the solving data is provided
-        res = self.test_send(from_wallet=ext_wallet, to_wallet=self.nodes[0], amount=15, inputs=[ext_utxo], add_inputs=True, psbt=True, include_watching=True, solving_data={"pubkeys": [addr_info['pubkey']], "scripts": [addr_info["embedded"]["scriptPubKey"]]})
+        res = self.test_send(from_wallet=ext_wallet, to_wallet=self.nodes[0], amount=15, inputs=[ext_utxo], add_inputs=True, psbt=True, include_watching=True, solving_data={"pubkeys": [addr_info['pubkey']], "scripts": [addr_info["embedded"]["scriptPubKey"], addr_info["embedded"]["embedded"]["scriptPubKey"]]})
         signed = ext_wallet.walletprocesspsbt(res["psbt"])
         signed = ext_fund.walletprocesspsbt(res["psbt"])
         assert signed["complete"]

From 4ebf6e35dcac936342525ec7b4b77a82c71693e7 Mon Sep 17 00:00:00 2001
From: Martin Zumsande <mzumsande@gmail.com>
Date: Wed, 8 Jun 2022 15:22:41 -0400
Subject: [PATCH 061/187] p2p: always set nTime for self-advertisements

If we self-advertised to an inbound peer with the address they gave us,
nTime was left default-initialized, so that our peer wouldn't relay it
any further along.

Github-Pull: #25314
Rebased-From: 99b9e5f3a9fa29bbc1e45fc958470fbcc207ef23
---
 src/net.cpp            | 2 +-
 src/test/net_tests.cpp | 7 +++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/net.cpp b/src/net.cpp
index 955eec46e38..1b0e7369a37 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -249,7 +249,7 @@ std::optional<CAddress> GetLocalAddrForPeer(CNode *pnode)
         if (pnode->IsInboundConn()) {
             // For inbound connections, assume both the address and the port
             // as seen from the peer.
-            addrLocal = CAddress{pnode->GetAddrLocal(), addrLocal.nServices};
+            addrLocal = CAddress{pnode->GetAddrLocal(), addrLocal.nServices, addrLocal.nTime};
         } else {
             // For outbound connections, assume just the address as seen from
             // the peer and leave the port in `addrLocal` as returned by
diff --git a/src/test/net_tests.cpp b/src/test/net_tests.cpp
index fcb1a80765c..74e97ff67a6 100644
--- a/src/test/net_tests.cpp
+++ b/src/test/net_tests.cpp
@@ -675,10 +675,13 @@ BOOST_AUTO_TEST_CASE(get_local_addr_for_peer_port)
     const uint16_t bind_port = 20001;
     m_node.args->ForceSetArg("-bind", strprintf("3.4.5.6:%u", bind_port));
 
+    const uint32_t current_time = static_cast<uint32_t>(GetAdjustedTime());
+    SetMockTime(current_time);
+
     // Our address:port as seen from the peer, completely different from the above.
     in_addr peer_us_addr;
     peer_us_addr.s_addr = htonl(0x02030405);
-    const CAddress peer_us{CService{peer_us_addr, 20002}, NODE_NETWORK};
+    const CAddress peer_us{CService{peer_us_addr, 20002}, NODE_NETWORK, current_time};
 
     // Create a peer with a routable IPv4 address (outbound).
     in_addr peer_out_in_addr;
@@ -699,7 +702,7 @@ BOOST_AUTO_TEST_CASE(get_local_addr_for_peer_port)
     // Without the fix peer_us:8333 is chosen instead of the proper peer_us:bind_port.
     auto chosen_local_addr = GetLocalAddrForPeer(&peer_out);
     BOOST_REQUIRE(chosen_local_addr);
-    const CService expected{peer_us_addr, bind_port};
+    const CAddress expected{CService{peer_us_addr, bind_port}, NODE_NETWORK, current_time};
     BOOST_CHECK(*chosen_local_addr == expected);
 
     // Create a peer with a routable IPv4 address (inbound).

From fc77b2a41dd97561d76c89c74e6850c6a1085ce5 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Fri, 5 Aug 2022 11:48:15 +0100
Subject: [PATCH 062/187] guix: patch NSIS to remove .reloc sections from
 install stubs

With the release of binutils/ld 2.36, ld swapped to much improved
default settings when producing windows binaries with mingw-w64. One of
these changes was to stop stripping the .reloc section from binaries,
which is required for working ASLR.

.reloc section stripping is something we've accounted for previously,
see #18702. The related upstream discussion is in this thread:
https://sourceware.org/bugzilla/show_bug.cgi?id=19011.

When we switched to using a newer Guix time-machine in #23778, we begun
using binutils 2.37 to produce releases. Since then, our windows
installer (produced with makensis) has not functioned correctly when run on
a Windows system with the "Force randomization for images (Mandatory ASLR)"
option enabled. Note that all of our other release binaries, which all
contain .reloc sections, function fine under the same option, so it
cannot be just the presence of a .reloc section that is the issue.

For now, restore makensis to it's pre-binutils-2.36 behaviour, which
fixes the produced installer. The underlying issue can be further
investigated in future.

Github-Pull: #25788
Rebased-From: 7a0b129c41d9fefdbc20d6d04983dd87bb8379e7
---
 contrib/guix/manifest.scm                     |  3 +-
 .../nsis-disable-installer-reloc.patch        | 30 +++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)
 create mode 100644 contrib/guix/patches/nsis-disable-installer-reloc.patch

diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index 11bfe80b1de..b1de5330b99 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -201,7 +201,8 @@ chain for " target " development."))
 
 (define (make-nsis-for-gcc-10 base-nsis)
   (package-with-extra-patches base-nsis
-    (search-our-patches "nsis-gcc-10-memmove.patch")))
+    (search-our-patches "nsis-gcc-10-memmove.patch"
+                        "nsis-disable-installer-reloc.patch")))
 
 (define-public lief
   (package
diff --git a/contrib/guix/patches/nsis-disable-installer-reloc.patch b/contrib/guix/patches/nsis-disable-installer-reloc.patch
new file mode 100644
index 00000000000..4914527e56b
--- /dev/null
+++ b/contrib/guix/patches/nsis-disable-installer-reloc.patch
@@ -0,0 +1,30 @@
+Patch NSIS so that it's installer stubs, produced at NSIS build time,
+do not contain .reloc sections, which will exist by default when using
+binutils/ld 2.36+.
+
+This ultimately fixes an issue when running the installer with the
+"Force randomization for images (Mandatory ASLR)" setting active.
+
+This patch has not yet been sent upstream, because it's not clear if this
+is the best fix, for the underlying issue, which seems to be that makensis
+doesn't account for .reloc sections when it builds installers.
+
+The existence of a reloc section shouldn't be a problem, and, if anything,
+is actually a requirement for working ASLR. All other Windows binaries we
+produce contain them, and function correctly when under the same
+"Force randomization for images (Mandatory ASLR)" setting.
+
+See:
+https://github.com/bitcoin/bitcoin/issues/25726
+https://sourceforge.net/p/nsis/bugs/1131/
+
+--- a/SCons/Config/gnu
++++ b/SCons/Config/gnu
+@@ -102,6 +102,7 @@ stub_env.Append(LINKFLAGS = ['-mwindows'])          # build windows executables
+ stub_env.Append(LINKFLAGS = ['$NODEFLIBS_FLAG'])    # no standard libraries
+ stub_env.Append(LINKFLAGS = ['$ALIGN_FLAG'])        # 512 bytes align
+ stub_env.Append(LINKFLAGS = ['$MAP_FLAG'])          # generate map file
++stub_env.Append(LINKFLAGS = ['-Wl,--disable-reloc-section'])
+ 
+ conf = FlagsConfigure(stub_env)
+ conf.CheckCompileFlag('-fno-tree-loop-distribute-patterns')  # GCC 10: Don't generate msvcrt!memmove calls (bug #1248)

From da9578da800ba98c5763f28d5777cb4067df448e Mon Sep 17 00:00:00 2001
From: Pavol Rusnak <pavol@rusnak.io>
Date: Fri, 25 Mar 2022 10:32:32 +0100
Subject: [PATCH 063/187] build, qt: bump Qt5 version to 5.15.3

Qt 5.15.3 release is a patch release made on the top of Qt 5.15.2. As a patch
release, Qt 5.15.3 does not add any new functionality but provides bug fixes
and other improvements.

https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/5.15.3/release-note.md

* dropped patches:
  - patches/qt/dont_use_avx_android_x86_64.patch
  - patches/qt/fix_bigsur_style.patch
* adjusted patches:
  - patches/qt/fix_android_jni_static.patch
  - patches/qt/fix_limits_header.patch
  - patches/qt/use_android_ndk23.patch

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>

Github-Pull: bitcoin/bitcoin#24668
Rebased-From: ef20add4c98674183720d9631ac780f9a248b487
---
 .cirrus.yml                                   |  6 +-
 build_msvc/README.md                          |  4 +-
 depends/packages/qt.mk                        | 16 ++--
 .../qt/dont_use_avx_android_x86_64.patch      | 32 -------
 .../patches/qt/fix_android_jni_static.patch   |  2 +-
 depends/patches/qt/fix_bigsur_style.patch     | 90 -------------------
 depends/patches/qt/fix_limits_header.patch    | 49 ++--------
 depends/patches/qt/use_android_ndk23.patch    |  2 +-
 doc/dependencies.md                           |  2 +-
 9 files changed, 24 insertions(+), 179 deletions(-)
 delete mode 100644 depends/patches/qt/dont_use_avx_android_x86_64.patch
 delete mode 100644 depends/patches/qt/fix_bigsur_style.patch

diff --git a/.cirrus.yml b/.cirrus.yml
index 9b0e2dbd2ea..2e81177d3a6 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -85,9 +85,9 @@ task:
     CI_VCPKG_TAG: '2021.05.12'
     VCPKG_DOWNLOADS: 'C:\Users\ContainerAdministrator\AppData\Local\vcpkg\downloads'
     VCPKG_DEFAULT_BINARY_CACHE: 'C:\Users\ContainerAdministrator\AppData\Local\vcpkg\archives'
-    QT_DOWNLOAD_URL: 'https://download.qt.io/official_releases/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.zip'
-    QT_LOCAL_PATH: 'C:\qt-everywhere-src-5.15.2.zip'
-    QT_SOURCE_DIR: 'C:\qt-everywhere-src-5.15.2'
+    QT_DOWNLOAD_URL: 'https://download.qt.io/official_releases/qt/5.15/5.15.3/single/qt-everywhere-opensource-src-5.15.3.zip'
+    QT_LOCAL_PATH: 'C:\qt-everywhere-opensource-src-5.15.3.zip'
+    QT_SOURCE_DIR: 'C:\qt-everywhere-src-5.15.3'
     QTBASEDIR: 'C:\Qt_static'
     x64_NATIVE_TOOLS: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"'
     IgnoreWarnIntDirInTempDetected: 'true'
diff --git a/build_msvc/README.md b/build_msvc/README.md
index cabe4d55ec5..7feee6b7661 100644
--- a/build_msvc/README.md
+++ b/build_msvc/README.md
@@ -28,7 +28,7 @@ Qt
 ---------------------
 To build Bitcoin Core with the GUI, a static build of Qt is required.
 
-1. Download a single ZIP archive of Qt source code from https://download.qt.io/official_releases/qt/ (e.g., [`qt-everywhere-src-5.15.2.zip`](https://download.qt.io/official_releases/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.zip)), and expand it into a dedicated folder. The following instructions assume that this folder is `C:\dev\qt-source`.
+1. Download a single ZIP archive of Qt source code from https://download.qt.io/official_releases/qt/ (e.g., [`qt-everywhere-opensource-src-5.15.3.zip`](https://download.qt.io/official_releases/qt/5.15/5.15.3/single/qt-everywhere-opensource-src-5.15.3.zip)), and expand it into a dedicated folder. The following instructions assume that this folder is `C:\dev\qt-source`.
 
 2. Open "x64 Native Tools Command Prompt for VS 2019", and input the following commands:
 ```cmd
@@ -83,4 +83,4 @@ If is it enabled then in the output `Dynamic base` will be listed in the `DLL ch
                    Terminal Server Aware
 ```
 
-This may not disable all stack randomization as versions of windows employ additional stack randomization protections. These protections must be turned off in the OS configuration.
\ No newline at end of file
+This may not disable all stack randomization as versions of windows employ additional stack randomization protections. These protections must be turned off in the OS configuration.
diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk
index 9cdfd21d2c2..e5fb135da05 100644
--- a/depends/packages/qt.mk
+++ b/depends/packages/qt.mk
@@ -1,25 +1,25 @@
 package=qt
-$(package)_version=5.15.2
+$(package)_version=5.15.3
 $(package)_download_path=https://download.qt.io/official_releases/qt/5.15/$($(package)_version)/submodules
-$(package)_suffix=everywhere-src-$($(package)_version).tar.xz
+$(package)_suffix=everywhere-opensource-src-$($(package)_version).tar.xz
 $(package)_file_name=qtbase-$($(package)_suffix)
-$(package)_sha256_hash=909fad2591ee367993a75d7e2ea50ad4db332f05e1c38dd7a5a274e156a4e0f8
+$(package)_sha256_hash=26394ec9375d52c1592bd7b689b1619c6b8dbe9b6f91fdd5c355589787f3a0b6
 $(package)_linux_dependencies=freetype fontconfig libxcb libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm
 $(package)_qt_libs=corelib network widgets gui plugins testlib
 $(package)_linguist_tools = lrelease lupdate lconvert
 $(package)_patches = qt.pro qttools_src.pro
 $(package)_patches += fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch no-xlib.patch
-$(package)_patches += dont_use_avx_android_x86_64.patch dont_hardcode_x86_64.patch fix_montery_include.patch
+$(package)_patches += dont_hardcode_x86_64.patch fix_montery_include.patch
 $(package)_patches += fix_android_jni_static.patch dont_hardcode_pwd.patch
 $(package)_patches += qtbase-moc-ignore-gcc-macro.patch fix_limits_header.patch
-$(package)_patches += fix_bigsur_style.patch use_android_ndk23.patch
+$(package)_patches += use_android_ndk23.patch
 $(package)_patches += rcc_hardcode_timestamp.patch
 
 $(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
-$(package)_qttranslations_sha256_hash=d5788e86257b21d5323f1efd94376a213e091d1e5e03b45a95dd052b5f570db8
+$(package)_qttranslations_sha256_hash=5d7869f670a135ad0986e266813b9dd5bbae2b09577338f9cdf8904d4af52db0
 
 $(package)_qttools_file_name=qttools-$($(package)_suffix)
-$(package)_qttools_sha256_hash=c189d0ce1ff7c739db9a3ace52ac3e24cb8fd6dbf234e49f075249b38f43c1cc
+$(package)_qttools_sha256_hash=463b2fe71a085e7ab4e39333ae360ab0ec857b966d7a08f752c427e5df55f90d
 
 $(package)_extra_sources  = $($(package)_qttranslations_file_name)
 $(package)_extra_sources += $($(package)_qttools_file_name)
@@ -235,12 +235,10 @@ define $(package)_preprocess_cmds
   patch -p1 -i $($(package)_patch_dir)/fix_no_printer.patch && \
   patch -p1 -i $($(package)_patch_dir)/fix_android_jni_static.patch && \
   patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
-  patch -p1 -i $($(package)_patch_dir)/dont_use_avx_android_x86_64.patch && \
   patch -p1 -i $($(package)_patch_dir)/dont_hardcode_x86_64.patch && \
   patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
   patch -p1 -i $($(package)_patch_dir)/fix_limits_header.patch && \
   patch -p1 -i $($(package)_patch_dir)/fix_montery_include.patch && \
-  patch -p1 -i $($(package)_patch_dir)/fix_bigsur_style.patch && \
   patch -p1 -i $($(package)_patch_dir)/use_android_ndk23.patch && \
   patch -p1 -i $($(package)_patch_dir)/rcc_hardcode_timestamp.patch && \
   mkdir -p qtbase/mkspecs/macx-clang-linux &&\
diff --git a/depends/patches/qt/dont_use_avx_android_x86_64.patch b/depends/patches/qt/dont_use_avx_android_x86_64.patch
deleted file mode 100644
index b12ac8f4d04..00000000000
--- a/depends/patches/qt/dont_use_avx_android_x86_64.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Android: don't use avx and avx2 when building for Android x86_64
-
-AVX and AVX2 are not supported on x86_64 ABI.
-See:
- - https://developer.android.com/ndk/guides/abis#86-64
- - https://bugreports.qt.io/browse/QTBUG-86785
-
-Upstream commits:
- - Qt 6.0: ff1a44be33f4bc05d502a2ca49171e0408992f61
- - Qt 5.15: 8b2cc0f6deb038a4c9d4f0d9b690c7726bd809a9
-
-
---- old/qtbase/configure.json
-+++ new/qtbase/configure.json
-@@ -1098,7 +1098,7 @@
-         },
-         "avx": {
-             "label": "AVX",
--            "condition": "features.sse4_2 && tests.avx",
-+            "condition": "features.sse4_2 && tests.avx && (!config.android || !arch.x86_64)",
-             "output": [
-                 "privateConfig",
-                 { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX", "value": 1 }
-@@ -1114,7 +1114,7 @@
-         },
-         "avx2": {
-             "label": "AVX2",
--            "condition": "features.avx && tests.avx2",
-+            "condition": "features.avx && tests.avx2 && (!config.android || !arch.x86_64)",
-             "output": [
-                 "privateConfig",
-                 "privateFeature",
diff --git a/depends/patches/qt/fix_android_jni_static.patch b/depends/patches/qt/fix_android_jni_static.patch
index bb64661761d..22a4d5ab0e1 100644
--- a/depends/patches/qt/fix_android_jni_static.patch
+++ b/depends/patches/qt/fix_android_jni_static.patch
@@ -1,6 +1,6 @@
 --- old/qtbase/src/plugins/platforms/android/androidjnimain.cpp
 +++ new/qtbase/src/plugins/platforms/android/androidjnimain.cpp
-@@ -914,6 +914,14 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void */*reserved*/)
+@@ -934,6 +934,14 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void */*reserved*/)
          __android_log_print(ANDROID_LOG_FATAL, "Qt", "registerNatives failed");
          return -1;
      }
diff --git a/depends/patches/qt/fix_bigsur_style.patch b/depends/patches/qt/fix_bigsur_style.patch
deleted file mode 100644
index 0f6c848bb02..00000000000
--- a/depends/patches/qt/fix_bigsur_style.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-Fix rendering in macOS BigSur
-
-See: https://bugreports.qt.io/browse/QTBUG-86513.
-
-Upstream commits (combined in this patch):
- - Qt 6.0: 40fb97e97f550b8afd13ecc3a038d9d0c2d82bbb
- - Qt 6.0: 3857f104cac127f62e64e55a20613f0ac2e6b843
- - Qt 6.1: abee4cdd5925a8513f51784754fca8fa35031732
-
---- old/qtbase/src/plugins/styles/mac/qmacstyle_mac.mm
-+++ new/qtbase/src/plugins/styles/mac/qmacstyle_mac.mm
-@@ -3870,6 +3870,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
-             const auto cs = d->effectiveAquaSizeConstrain(opt, w);
-             // Extra hacks to get the proper pressed appreance when not selected or selected and inactive
-             const bool needsInactiveHack = (!isActive && isSelected);
-+            const bool isBigSurOrAbove = QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSBigSur;
-             const auto ct = !needsInactiveHack && (isSelected || tp == QStyleOptionTab::OnlyOneTab) ?
-                     QMacStylePrivate::Button_PushButton :
-                     QMacStylePrivate::Button_PopupButton;
-@@ -3878,6 +3879,12 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
-             auto *pb = static_cast<NSButton *>(d->cocoaControl(cw));
- 
-             auto vOffset = isPopupButton ? 1 : 2;
-+            if (isBigSurOrAbove) {
-+                // Make it 1, otherwise, offset is very visible compared
-+                // to selected tab (which is not a popup button).
-+                vOffset = 1;
-+            }
-+
-             if (tabDirection == QMacStylePrivate::East)
-                 vOffset -= 1;
-             const auto outerAdjust = isPopupButton ? 1 : 4;
-@@ -3894,9 +3901,22 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
-                     frameRect = frameRect.adjusted(-innerAdjust, 0, outerAdjust, 0);
-                 else
-                     frameRect = frameRect.adjusted(-outerAdjust, 0, innerAdjust, 0);
-+
-+                if (isSelected && isBigSurOrAbove) {
-+                    // 1 pixed of 'roundness' is still visible on the right
-+                    // (the left is OK, it's rounded).
-+                    frameRect = frameRect.adjusted(0, 0, 1, 0);
-+                }
-+
-                 break;
-             case QStyleOptionTab::Middle:
-                 frameRect = frameRect.adjusted(-innerAdjust, 0, innerAdjust, 0);
-+
-+                if (isSelected && isBigSurOrAbove) {
-+                    // 1 pixel of 'roundness' is still visible on both
-+                    // sides - left and right.
-+                    frameRect = frameRect.adjusted(-1, 0, 1, 0);
-+                }
-                 break;
-             case QStyleOptionTab::End:
-                 // Pressed state hack: tweak adjustments in preparation for flip below
-@@ -3904,6 +3924,11 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
-                     frameRect = frameRect.adjusted(-innerAdjust, 0, outerAdjust, 0);
-                 else
-                     frameRect = frameRect.adjusted(-outerAdjust, 0, innerAdjust, 0);
-+
-+                if (isSelected && isBigSurOrAbove) {
-+                    // 1 pixel of 'roundness' is still visible on the left.
-+                    frameRect = frameRect.adjusted(-1, 0, 0, 0);
-+                }
-                 break;
-             case QStyleOptionTab::OnlyOneTab:
-                 frameRect = frameRect.adjusted(-outerAdjust, 0, outerAdjust, 0);
-@@ -3951,7 +3976,10 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
-                 NSPopUpArrowPosition oldPosition = NSPopUpArrowAtCenter;
-                 NSPopUpButtonCell *pbCell = nil;
-                 auto rAdjusted = r;
--                if (isPopupButton && tp == QStyleOptionTab::OnlyOneTab) {
-+                if (isPopupButton && (tp == QStyleOptionTab::OnlyOneTab || isBigSurOrAbove)) {
-+                    // Note: starting from macOS BigSur NSPopupButton has this
-+                    // arrow 'button' in a different place and it became
-+                    // quite visible 'in between' inactive tabs.
-                     pbCell = static_cast<NSPopUpButtonCell *>(pb.cell);
-                     oldPosition = pbCell.arrowPosition;
-                     pbCell.arrowPosition = NSPopUpNoArrow;
-@@ -3959,6 +3987,10 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
-                         // NSPopUpButton in this state is smaller.
-                         rAdjusted.origin.x -= 3;
-                         rAdjusted.size.width += 6;
-+                        if (isBigSurOrAbove) {
-+                            if (tp == QStyleOptionTab::End)
-+                                rAdjusted.origin.x -= 2;
-+                        }
-                     }
-                 }
- 
diff --git a/depends/patches/qt/fix_limits_header.patch b/depends/patches/qt/fix_limits_header.patch
index cb5a8cd1b5a..258128c0ca1 100644
--- a/depends/patches/qt/fix_limits_header.patch
+++ b/depends/patches/qt/fix_limits_header.patch
@@ -1,46 +1,9 @@
 Fix compiling with GCC 11
 
-See: https://bugreports.qt.io/browse/QTBUG-90395.
+Upstream:
+ - bug report: https://bugreports.qt.io/browse/QTBUG-89977
+ - fix in Qt 6.1: 813a928c7c3cf98670b6043149880ed5c955efb9
 
-Upstream commits:
- - Qt 5.15 -- unavailable as open source
- - Qt 6.0: b2af6332ea37e45ab230a7a5d2d278f86d961b83
- - Qt 6.1: 9c56d4da2ff631a8c1c30475bd792f6c86bda53c
-
---- old/qtbase/src/corelib/global/qendian.h
-+++ new/qtbase/src/corelib/global/qendian.h
-@@ -44,6 +44,8 @@
- #include <QtCore/qfloat16.h>
- #include <QtCore/qglobal.h>
- 
-+#include <limits>
-+
- // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems
- #include <stdlib.h>
- #include <string.h>
-
---- old/qtbase/src/corelib/global/qfloat16.h
-+++ new/qtbase/src/corelib/global/qfloat16.h
-@@ -43,6 +43,7 @@
- 
- #include <QtCore/qglobal.h>
- #include <QtCore/qmetatype.h>
-+#include <limits>
- #include <string.h>
- 
- #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__)
-
---- old/qtbase/src/tools/moc/generator.cpp
-+++ new/qtbase/src/tools/moc/generator.cpp
-@@ -40,6 +40,8 @@
- #include <QtCore/qplugin.h>
- #include <QtCore/qstringview.h>
- 
-+#include <limits>
-+
- #include <math.h>
- #include <stdio.h>
- 
 --- old/qtbase/src/corelib/text/qbytearraymatcher.h
 +++ new/qtbase/src/corelib/text/qbytearraymatcher.h
 @@ -42,6 +42,8 @@
@@ -52,6 +15,12 @@ Upstream commits:
  QT_BEGIN_NAMESPACE
  
  
+
+Upstream fix and backports:
+ - Qt 6.1: 3eab20ad382569cb2c9e6ccec2322c3d08c0f716
+ - Qt 6.2: 380294a5971da85010a708dc23b0edec192cbf27
+ - Qt 6.3: 2b2b3155d9f6ba1e4f859741468fbc47db09292b
+
 --- old/qtbase/src/corelib/tools/qoffsetstringarray_p.h
 +++ new/qtbase/src/corelib/tools/qoffsetstringarray_p.h
 @@ -55,6 +55,7 @@
diff --git a/depends/patches/qt/use_android_ndk23.patch b/depends/patches/qt/use_android_ndk23.patch
index 85b86902184..f22367d527b 100644
--- a/depends/patches/qt/use_android_ndk23.patch
+++ b/depends/patches/qt/use_android_ndk23.patch
@@ -2,7 +2,7 @@ Use Android NDK r23 LTS
 
 --- old/qtbase/mkspecs/features/android/default_pre.prf
 +++ new/qtbase/mkspecs/features/android/default_pre.prf
-@@ -73,7 +73,7 @@ else: equals(QT_ARCH, x86_64): CROSS_COMPILE = $$NDK_LLVM_PATH/bin/x86_64-linux-
+@@ -76,7 +76,7 @@ else: equals(QT_ARCH, x86_64): CROSS_COMPILE = $$NDK_LLVM_PATH/bin/x86_64-linux-
  else: equals(QT_ARCH, arm64-v8a): CROSS_COMPILE = $$NDK_LLVM_PATH/bin/aarch64-linux-android-
  else: CROSS_COMPILE = $$NDK_LLVM_PATH/bin/arm-linux-androideabi-
  
diff --git a/doc/dependencies.md b/doc/dependencies.md
index 99ff26f457e..57d2b994df6 100644
--- a/doc/dependencies.md
+++ b/doc/dependencies.md
@@ -20,7 +20,7 @@ These are the dependencies currently used by Bitcoin Core. You can find instruct
 | PCRE |  |  |  |  | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) |
 | Python (tests) |  | [3.6](https://www.python.org/downloads) |  |  |  |
 | qrencode | [3.4.4](https://fukuchi.org/works/qrencode) |  | No |  |  |
-| Qt | [5.15.2](https://download.qt.io/official_releases/qt/) | [5.9.5](https://github.com/bitcoin/bitcoin/issues/20104) | No |  |  |
+| Qt | [5.15.3](https://download.qt.io/official_releases/qt/) | [5.9.5](https://github.com/bitcoin/bitcoin/issues/20104) | No |  |  |
 | SQLite | [3.32.1](https://sqlite.org/download.html) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) |  |  |  |
 | XCB |  |  |  |  | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Linux only) |
 | systemtap ([tracing](tracing.md))| [4.5](https://sourceware.org/systemtap/ftp/releases/) |  |  |  | |

From 31ca698f2017c57aad8f9839a582c6864ede92bd Mon Sep 17 00:00:00 2001
From: Andrew Chow <achow101-github@achow101.com>
Date: Fri, 15 Jul 2022 11:34:21 -0400
Subject: [PATCH 064/187] Disallow encryption of watchonly wallets

Watchonly wallets do not have any private keys to encrypt. It does not
make sense to encrypt such wallets, so disable the option to encrypt
them.

This avoids an assertion that can be hit when encrypting watchonly descriptor
wallets.

Github-Pull: bitcoin-core/gui#631
Rebased-From: 4c495413e138ec1dd6874e41b44e689f0c15e0e3
---
 src/qt/bitcoingui.cpp  | 6 ++++++
 src/qt/walletmodel.cpp | 5 +++++
 src/qt/walletmodel.h   | 1 +
 3 files changed, 12 insertions(+)

diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 7c22880dd1c..548f77c74d1 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -1316,6 +1316,12 @@ void BitcoinGUI::setEncryptionStatus(int status)
 {
     switch(status)
     {
+    case WalletModel::NoKeys:
+        labelWalletEncryptionIcon->hide();
+        encryptWalletAction->setChecked(false);
+        changePassphraseAction->setEnabled(false);
+        encryptWalletAction->setEnabled(false);
+        break;
     case WalletModel::Unencrypted:
         labelWalletEncryptionIcon->hide();
         encryptWalletAction->setChecked(false);
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index 5ee32e79d5d..13579e644e0 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -308,6 +308,11 @@ WalletModel::EncryptionStatus WalletModel::getEncryptionStatus() const
 {
     if(!m_wallet->isCrypted())
     {
+        // A previous bug allowed for watchonly wallets to be encrypted (encryption keys set, but nothing is actually encrypted).
+        // To avoid misrepresenting the encryption status of such wallets, we only return NoKeys for watchonly wallets that are unencrypted.
+        if (m_wallet->privateKeysDisabled()) {
+            return NoKeys;
+        }
         return Unencrypted;
     }
     else if(m_wallet->isLocked())
diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h
index ad1239ccdcd..7f941142ea1 100644
--- a/src/qt/walletmodel.h
+++ b/src/qt/walletmodel.h
@@ -72,6 +72,7 @@ class WalletModel : public QObject
 
     enum EncryptionStatus
     {
+        NoKeys,       // wallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS)
         Unencrypted,  // !wallet->IsCrypted()
         Locked,       // wallet->IsCrypted() && wallet->IsLocked()
         Unlocked      // wallet->IsCrypted() && !wallet->IsLocked()

From 38d4601fe826069ee43b341e9d467beb7d14b5f0 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Fri, 2 Sep 2022 12:50:12 +0100
Subject: [PATCH 065/187] Prevent data race for `pathHandlers`

Github-Pull: bitcoin/bitcoin#25983
Rebased-From: 4296dde28757d88a7076847484669fb202b47bc8
---
 src/httpserver.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/httpserver.cpp b/src/httpserver.cpp
index e00c68585eb..022703e79dd 100644
--- a/src/httpserver.cpp
+++ b/src/httpserver.cpp
@@ -143,7 +143,8 @@ static std::vector<CSubNet> rpc_allow_subnets;
 //! Work queue for handling longer requests off the event loop thread
 static std::unique_ptr<WorkQueue<HTTPClosure>> g_work_queue{nullptr};
 //! Handlers for (sub)paths
-static std::vector<HTTPPathHandler> pathHandlers;
+static Mutex g_httppathhandlers_mutex;
+static std::vector<HTTPPathHandler> pathHandlers GUARDED_BY(g_httppathhandlers_mutex);
 //! Bound listening sockets
 static std::vector<evhttp_bound_socket *> boundSockets;
 
@@ -244,6 +245,7 @@ static void http_request_cb(struct evhttp_request* req, void* arg)
     // Find registered handler for prefix
     std::string strURI = hreq->GetURI();
     std::string path;
+    LOCK(g_httppathhandlers_mutex);
     std::vector<HTTPPathHandler>::const_iterator i = pathHandlers.begin();
     std::vector<HTTPPathHandler>::const_iterator iend = pathHandlers.end();
     for (; i != iend; ++i) {
@@ -642,11 +644,13 @@ HTTPRequest::RequestMethod HTTPRequest::GetRequestMethod() const
 void RegisterHTTPHandler(const std::string &prefix, bool exactMatch, const HTTPRequestHandler &handler)
 {
     LogPrint(BCLog::HTTP, "Registering HTTP handler for %s (exactmatch %d)\n", prefix, exactMatch);
+    LOCK(g_httppathhandlers_mutex);
     pathHandlers.push_back(HTTPPathHandler(prefix, exactMatch, handler));
 }
 
 void UnregisterHTTPHandler(const std::string &prefix, bool exactMatch)
 {
+    LOCK(g_httppathhandlers_mutex);
     std::vector<HTTPPathHandler>::iterator i = pathHandlers.begin();
     std::vector<HTTPPathHandler>::iterator iend = pathHandlers.end();
     for (; i != iend; ++i)

From 419bdc534f885de4574e054cfcac6869f7a4e185 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Fri, 2 Sep 2022 14:37:26 +0100
Subject: [PATCH 066/187] Revert "build: Use Homebrew's sqlite package if it is
 available"

This reverts ee7b84e63cbeadd5e680d69ff0548275581e9241 from #20527.
This change was made without any rationale, maybe other than a brew
installed version might be newer, and that's "better". However when
building from source on macOS, it just results in drastically worse
perofrmance, and results in issues / confusions like #25724.

Resolves the "build from source" portion of #25724. Building from
depends is still not ideal, however I have some other changes that might
help improve things in that case.

The difference in performance can be observed using the example from
https://github.com/bitcoin/bitcoin/issues/25724#issuecomment-1213554922,
but minified to only 10 descriptors. i.e:
```bash
time src/bitcoin-cli createwallet speedy true
time src/bitcoin-cli importdescriptors '[
  {"desc":"raw(00145846369f3d6ba366d6f5a903fb5cf4dca3763c0e)#k9wh6v62","timestamp":"now"},
  {"desc":"raw(001420800aabf13f3a4c4ce3ce4c66cecf1d17f21a6e)#6m0hlfh4","timestamp":"now"},
  {"desc":"raw(0014c6bf9715e06d73ebf9b3b02d5cc48d24d8bbabc1)#wyavh36r","timestamp":"now"},
  {"desc":"raw(00141ba7807b3f46af113beaea5c698428ce7138cd8a)#jctdsups","timestamp":"now"},
  {"desc":"raw(00140c1bd27f10fff01b36ddf3c1febaa1acff19b080)#9s6nc3pk","timestamp":"now"},
  {"desc":"raw(00141226e31987e4bc2e63c0ee12908f675e40464b20)#9pp7qm39","timestamp":"now"},
  {"desc":"raw(0014f73f149f7503960a5e849c6ee7a8a8c336f631cb)#qtkxv9fc","timestamp":"now"},
  {"desc":"raw(0014c8ccb4d81ffc769fc5fdd8d7eed69b0e0cae5749)#hn39qayv","timestamp":"now"},
  {"desc":"raw(001498565aead2d67a22a6021d55210f2a917fc22169)#6ar3vwsx","timestamp":"now"},
  {"desc":"raw(001403013248ac0cd9eabe176cad162cda2a19f771e1)#4m47mukd","timestamp":"now"}
]'
```

Running master, when building from souce and using brew installed
sqlite, this takes ~3.4s. With this PR, the same operation takes ~0.3s.

Github-Pull: #25985
Rebased-From: d216d714aae36e6f1c95f82aef81a0be74dee2f3
---
 configure.ac | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 6ae8b778b16..eef4b419737 100644
--- a/configure.ac
+++ b/configure.ac
@@ -721,10 +721,6 @@ case $host in
            BDB_LIBS="-L$bdb_prefix/lib -ldb_cxx-4.8"
          fi
 
-         if test "$use_sqlite" != "no" && $BREW list --versions sqlite3 >/dev/null; then
-           export PKG_CONFIG_PATH="$($BREW --prefix sqlite3 2>/dev/null)/lib/pkgconfig:$PKG_CONFIG_PATH"
-         fi
-
          if $BREW list --versions qt@5 >/dev/null; then
            export PKG_CONFIG_PATH="$($BREW --prefix qt@5 2>/dev/null)/lib/pkgconfig:$PKG_CONFIG_PATH"
          fi

From 769836613291e2b35f8ded9b594e33dcd1b1c70d Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 24 Oct 2022 09:34:34 +0800
Subject: [PATCH 067/187] doc: remove brew install sqlite from macOS docs

---
 doc/build-osx.md | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/doc/build-osx.md b/doc/build-osx.md
index 685b0c36292..0cc1ccd57bf 100644
--- a/doc/build-osx.md
+++ b/doc/build-osx.md
@@ -112,15 +112,11 @@ brew install berkeley-db@4
 
 ###### Descriptor Wallet Support
 
-Note: Apple has included a useable `sqlite` package since macOS 10.14.
-You may not need to install this package.
+`sqlite` is required to support for descriptor wallets.
 
-`sqlite` is required to enable support for descriptor wallets.
-Skip if you don't intend to use descriptor wallets.
+macOS ships with a useable `sqlite` package, meaning you don't need to
+install anything.
 
-``` bash
-brew install sqlite
-```
 ---
 
 #### GUI Dependencies

From bbea830a966a4a6045c7420743395d5253203f00 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Sat, 15 Oct 2022 19:11:39 +0100
Subject: [PATCH 068/187] Adjust `.tx/config` for new Transifex CLI

The old Transifex Command-Line Tool is considered deprecated (as of
January 2022) and will sunset on Nov 30, 2022.

See: https://github.com/transifex/cli/blob/devel/README.md#migrating-from-older-versions-of-the-client

An accompanying PR: https://github.com/bitcoin-core/bitcoin-maintainer-tools/pull/142

Github-Pull: #26321
Rebased-From: d6adbb7ee1de661ad89879609eecd11129322405
---
 .tx/config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.tx/config b/.tx/config
index c4fe7cc324d..e64f73ae33d 100644
--- a/.tx/config
+++ b/.tx/config
@@ -1,7 +1,7 @@
 [main]
 host = https://www.transifex.com
 
-[bitcoin.qt-translation-023x]
+[o:bitcoin:p:bitcoin:r:qt-translation-023x]
 file_filter = src/qt/locale/bitcoin_<lang>.xlf
 source_file = src/qt/locale/bitcoin_en.xlf
 source_lang = en

From d9f1c89e4967da4681f8c595b46cb1475e3d4897 Mon Sep 17 00:00:00 2001
From: muxator <antonio.muci@bancaditalia.it>
Date: Thu, 6 Oct 2022 22:17:49 +0200
Subject: [PATCH 069/187] rpc: fix crash in deriveaddresses when derivation
 index is 2147483647

2147483647 is the maximum positive value of a signed int32, and - currently -
the maximum value that the deriveaddresses bitcoin RPC call accepts as
derivation index due to its input validation routines.

Before this change, when the derivation index (and thus range_end) reached
std::numeric_limits<int_32_t>::max(), the "i" variable in the for cycle (which
is declared as int, and as such 32 bits in size on most platforms) would be
incremented at the end of the first iteration and then warp back to
-2147483648. This caused SIGABRT in bitcoind and a core dump.

This change assigns "i" an explicit size of 64 bits on every platform,
sidestepping the problem.

Fixes #26274.

Github-Pull: #26275
Rebased-From: addf9d6502db12cebcc5976df3111cac1a369b82
---
 src/rpc/misc.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp
index 2dace52777c..5a8cc8fa788 100644
--- a/src/rpc/misc.cpp
+++ b/src/rpc/misc.cpp
@@ -284,7 +284,7 @@ static RPCHelpMan deriveaddresses()
 
     UniValue addresses(UniValue::VARR);
 
-    for (int i = range_begin; i <= range_end; ++i) {
+    for (int64_t i = range_begin; i <= range_end; ++i) {
         FlatSigningProvider provider;
         std::vector<CScript> scripts;
         if (!desc->Expand(i, key_provider, scripts, provider)) {

From f8ed34d1a9faf373b96842c26a408b039bcdfc51 Mon Sep 17 00:00:00 2001
From: muxator <antonio.muci@bancaditalia.it>
Date: Thu, 6 Oct 2022 12:03:36 +0200
Subject: [PATCH 070/187] rpc: add non-regression test about deriveaddresses
 crash when index is 2147483647

This test would cause a crash in bitcoind (see #26274) if the fix given in the
previous commit was not applied.

Github-Pull: #26275
Rebased-From: 9153ff3e274953ea0d92d53ddab4c72deeace1b1
---
 test/functional/rpc_deriveaddresses.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/test/functional/rpc_deriveaddresses.py b/test/functional/rpc_deriveaddresses.py
index 42d7d59d563..a69326736d7 100755
--- a/test/functional/rpc_deriveaddresses.py
+++ b/test/functional/rpc_deriveaddresses.py
@@ -44,6 +44,13 @@ def run_test(self):
         combo_descriptor = descsum_create("combo(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/0)")
         assert_equal(self.nodes[0].deriveaddresses(combo_descriptor), ["mtfUoUax9L4tzXARpw1oTGxWyoogp52KhJ", "mtfUoUax9L4tzXARpw1oTGxWyoogp52KhJ", address, "2NDvEwGfpEqJWfybzpKPHF2XH3jwoQV3D7x"])
 
+        # Before #26275, bitcoind would crash when deriveaddresses was
+        # called with derivation index 2147483647, which is the maximum
+        # positive value of a signed int32, and - currently - the
+        # maximum value that the deriveaddresses bitcoin RPC call
+        # accepts as derivation index.
+        assert_equal(self.nodes[0].deriveaddresses(descsum_create("wpkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)"), [2147483647, 2147483647]), ["bcrt1qtzs23vgzpreks5gtygwxf8tv5rldxvvsyfpdkg"])
+
         hardened_without_privkey_descriptor = descsum_create("wpkh(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1'/1/0)")
         assert_raises_rpc_error(-5, "Cannot derive script without private keys", self.nodes[0].deriveaddresses, hardened_without_privkey_descriptor)
 

From 5a57b656d3fa6a0004ebc208bf70e2fe2eba1aa2 Mon Sep 17 00:00:00 2001
From: Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
Date: Tue, 1 Nov 2022 20:50:51 +0100
Subject: [PATCH 071/187] doc: mention BIP86 in doc/bips.md

Github-Pull: #26443
Rebased-From: 303fb8ff459e67baf97c2ab0b6dd6fa25aff76e3
---
 doc/bips.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/doc/bips.md b/doc/bips.md
index 0f3f61daf1f..dd623e4479d 100644
--- a/doc/bips.md
+++ b/doc/bips.md
@@ -28,6 +28,7 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to **v23.0**):
   and it is disabled by default at build time since **v0.19.0** ([PR #15584](https://github.com/bitcoin/bitcoin/pull/15584)).
   It has been removed as of **v0.20.0** ([PR 17165](https://github.com/bitcoin/bitcoin/pull/17165)).
 * [`BIP 84`](https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki): The experimental descriptor wallets introduced in **v0.21.0** by default use the Hierarchical Deterministic Wallet derivation proposed by BIP 84. ([PR #16528](https://github.com/bitcoin/bitcoin/pull/16528))
+* [`BIP 86`](https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki): Descriptor wallets by default use the Hierarchical Deterministic Wallet derivation proposed by BIP 86 since **v23.0** ([PR #22364](https://github.com/bitcoin/bitcoin/pull/22364)).
 * [`BIP 90`](https://github.com/bitcoin/bips/blob/master/bip-0090.mediawiki): Trigger mechanism for activation of BIPs 34, 65, and 66 has been simplified to block height checks since **v0.14.0** ([PR #8391](https://github.com/bitcoin/bitcoin/pull/8391)).
 * [`BIP 111`](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki): `NODE_BLOOM` service bit added, and enforced for all peer versions as of **v0.13.0** ([PR #6579](https://github.com/bitcoin/bitcoin/pull/6579) and [PR #6641](https://github.com/bitcoin/bitcoin/pull/6641)).
 * [`BIP 112`](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki): The CHECKSEQUENCEVERIFY opcode has been implemented since **v0.12.1** ([PR #7524](https://github.com/bitcoin/bitcoin/pull/7524)), and has been *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)).

From a43e380a1f3b119fb22186502de89b494ff8c29b Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Wed, 2 Nov 2022 15:13:05 +0000
Subject: [PATCH 072/187] build: Bump version to 23.1rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index eef4b419737..1d4f26e200e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
-define(_CLIENT_VERSION_MINOR, 0)
+define(_CLIENT_VERSION_MINOR, 1)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From f89a2ea3b71b008b52165f1d260dead949d4548c Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Wed, 2 Nov 2022 15:18:31 +0000
Subject: [PATCH 073/187] doc: Update manual pages for 23.1rc1

---
 doc/man/bitcoin-cli.1    | 8 ++++----
 doc/man/bitcoin-qt.1     | 8 ++++----
 doc/man/bitcoin-tx.1     | 8 ++++----
 doc/man/bitcoin-util.1   | 8 ++++----
 doc/man/bitcoin-wallet.1 | 8 ++++----
 doc/man/bitcoind.1       | 8 ++++----
 6 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index 5dc94356a89..af952908ab0 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-CLI "1" "April 2022" "bitcoin-cli v23.0.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
+.TH BITCOIN-CLI "1" "November 2022" "bitcoin-cli v23.1.0rc1" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.0.0
+bitcoin-cli \- manual page for bitcoin-cli v23.1.0rc1
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.0.0
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.0.0
+Bitcoin Core RPC client version v23.1.0rc1
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index 72a04861215..0ef72009bb4 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-QT "1" "April 2022" "bitcoin-qt v23.0.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
+.TH BITCOIN-QT "1" "November 2022" "bitcoin-qt v23.1.0rc1" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.0.0
+bitcoin-qt \- manual page for bitcoin-qt v23.1.0rc1
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0
+Bitcoin Core version v23.1.0rc1
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index fe96147da71..1da154313db 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-TX "1" "April 2022" "bitcoin-tx v23.0.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
+.TH BITCOIN-TX "1" "November 2022" "bitcoin-tx v23.1.0rc1" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.0.0
+bitcoin-tx \- manual page for bitcoin-tx v23.1.0rc1
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.0.0
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.0.0
+Bitcoin Core bitcoin\-tx utility version v23.1.0rc1
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index e5ae0197e75..690b2a7bccd 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-UTIL "1" "April 2022" "bitcoin-util v23.0.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
+.TH BITCOIN-UTIL "1" "November 2022" "bitcoin-util v23.1.0rc1" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.0.0
+bitcoin-util \- manual page for bitcoin-util v23.1.0rc1
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.0.0
+Bitcoin Core bitcoin\-util utility version v23.1.0rc1
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 6041afc9c6f..41225969762 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIN-WALLET "1" "April 2022" "bitcoin-wallet v23.0.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
+.TH BITCOIN-WALLET "1" "November 2022" "bitcoin-wallet v23.1.0rc1" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.0.0
+bitcoin-wallet \- manual page for bitcoin-wallet v23.1.0rc1
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.0.0
+Bitcoin Core bitcoin\-wallet version v23.1.0rc1
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index b15f43c5099..14fbc603d3a 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH BITCOIND "1" "April 2022" "bitcoind v23.0.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
+.TH BITCOIND "1" "November 2022" "bitcoind v23.1.0rc1" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.0.0
+bitcoind \- manual page for bitcoind v23.1.0rc1
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.0.0
+Bitcoin Core version v23.1.0rc1
 .SH OPTIONS
 .HP
 \-?

From 888480bd8819c78663baa6ded92a0d46f68fe7ee Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Wed, 2 Nov 2022 15:19:07 +0000
Subject: [PATCH 074/187] doc: update version number in bips.md to v23.1

---
 doc/bips.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/bips.md b/doc/bips.md
index dd623e4479d..8a7ceaf7b3d 100644
--- a/doc/bips.md
+++ b/doc/bips.md
@@ -1,4 +1,4 @@
-BIPs that are implemented by Bitcoin Core (up-to-date up to **v23.0**):
+BIPs that are implemented by Bitcoin Core (up-to-date up to **v23.1**):
 
 * [`BIP 9`](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki): The changes allowing multiple soft-forks to be deployed in parallel have been implemented since **v0.12.1**  ([PR #7575](https://github.com/bitcoin/bitcoin/pull/7575))
 * [`BIP 11`](https://github.com/bitcoin/bips/blob/master/bip-0011.mediawiki): Multisig outputs are standard since **v0.6.0** ([PR #669](https://github.com/bitcoin/bitcoin/pull/669)).

From 22ffb150ac31ce3125eb0d2fcd87f5d3086d8682 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Sat, 5 Nov 2022 08:44:20 +0000
Subject: [PATCH 075/187] qt: 23.1rc1 translations update

---
 src/Makefile.qt_locale.include   |    5 +
 src/qt/bitcoin_locale.qrc        |    5 +
 src/qt/locale/bitcoin_ar.ts      |   38 +-
 src/qt/locale/bitcoin_az.ts      |  960 ++++++-
 src/qt/locale/bitcoin_bg.ts      |  492 +++-
 src/qt/locale/bitcoin_bn.ts      |   14 +
 src/qt/locale/bitcoin_ca.ts      |   34 +-
 src/qt/locale/bitcoin_cs.ts      |  313 ++-
 src/qt/locale/bitcoin_da.ts      |    4 +
 src/qt/locale/bitcoin_de.ts      |  143 +-
 src/qt/locale/bitcoin_el.ts      |  128 +-
 src/qt/locale/bitcoin_es.ts      | 1942 +++++++++++--
 src/qt/locale/bitcoin_es_DO.ts   |   34 +
 src/qt/locale/bitcoin_es_VE.ts   |    6 +
 src/qt/locale/bitcoin_et.ts      |   12 +
 src/qt/locale/bitcoin_eu.ts      |  701 ++++-
 src/qt/locale/bitcoin_fa.ts      |   40 +-
 src/qt/locale/bitcoin_fi.ts      |   36 +-
 src/qt/locale/bitcoin_fil.ts     |  176 +-
 src/qt/locale/bitcoin_fr.ts      |    8 +-
 src/qt/locale/bitcoin_ha.ts      |  164 ++
 src/qt/locale/bitcoin_hi.ts      |  688 ++++-
 src/qt/locale/bitcoin_hr.ts      | 1468 +++++++++-
 src/qt/locale/bitcoin_hu.ts      |    4 +-
 src/qt/locale/bitcoin_it.ts      |   76 +-
 src/qt/locale/bitcoin_ka.ts      |   50 +-
 src/qt/locale/bitcoin_kk.ts      |    4 +
 src/qt/locale/bitcoin_ko.ts      |  350 ++-
 src/qt/locale/bitcoin_ku.ts      |  336 +++
 src/qt/locale/bitcoin_ku_IQ.ts   |   36 +-
 src/qt/locale/bitcoin_lt.ts      |   40 +-
 src/qt/locale/bitcoin_lv.ts      |   58 +-
 src/qt/locale/bitcoin_nb.ts      |   53 +-
 src/qt/locale/bitcoin_ne.ts      |  117 +
 src/qt/locale/bitcoin_nl.ts      |    4 +-
 src/qt/locale/bitcoin_pa.ts      |  427 +++
 src/qt/locale/bitcoin_pl.ts      |  823 +++++-
 src/qt/locale/bitcoin_pt.ts      |  200 +-
 src/qt/locale/bitcoin_pt_BR.ts   |  185 +-
 src/qt/locale/bitcoin_ro.ts      |   30 +-
 src/qt/locale/bitcoin_ru.ts      |  339 ++-
 src/qt/locale/bitcoin_si.ts      |  140 +-
 src/qt/locale/bitcoin_sk.ts      |  316 ++-
 src/qt/locale/bitcoin_sq.ts      |    4 +-
 src/qt/locale/bitcoin_sr.ts      |  674 ++++-
 src/qt/locale/bitcoin_sv.ts      |  178 +-
 src/qt/locale/bitcoin_ta.ts      |   56 +
 src/qt/locale/bitcoin_th.ts      |  211 +-
 src/qt/locale/bitcoin_tl.ts      | 1501 ++++++++++
 src/qt/locale/bitcoin_tr.ts      |  127 +-
 src/qt/locale/bitcoin_ur.ts      | 1843 +++++++++++-
 src/qt/locale/bitcoin_uz.ts      |  204 ++
 src/qt/locale/bitcoin_uz@Latn.ts |   85 +
 src/qt/locale/bitcoin_vi.ts      |  547 +++-
 src/qt/locale/bitcoin_zh-Hans.ts | 4484 +++++++++++++++++++++++++++++-
 src/qt/locale/bitcoin_zh.ts      |   21 +
 src/qt/locale/bitcoin_zh_CN.ts   |   44 +-
 src/qt/locale/bitcoin_zh_TW.ts   |  224 +-
 src/qt/locale/bitcoin_zu.ts      |   11 +
 59 files changed, 19966 insertions(+), 1247 deletions(-)
 create mode 100644 src/qt/locale/bitcoin_ha.ts
 create mode 100644 src/qt/locale/bitcoin_ku.ts
 create mode 100644 src/qt/locale/bitcoin_pa.ts
 create mode 100644 src/qt/locale/bitcoin_tl.ts
 create mode 100644 src/qt/locale/bitcoin_uz.ts

diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include
index e55c983a472..1e137135bfc 100644
--- a/src/Makefile.qt_locale.include
+++ b/src/Makefile.qt_locale.include
@@ -30,6 +30,7 @@ QT_TS = \
   qt/locale/bitcoin_gl.ts \
   qt/locale/bitcoin_gl_ES.ts \
   qt/locale/bitcoin_gu.ts \
+  qt/locale/bitcoin_ha.ts \
   qt/locale/bitcoin_he.ts \
   qt/locale/bitcoin_hi.ts \
   qt/locale/bitcoin_hr.ts \
@@ -43,6 +44,7 @@ QT_TS = \
   qt/locale/bitcoin_kl.ts \
   qt/locale/bitcoin_km.ts \
   qt/locale/bitcoin_ko.ts \
+  qt/locale/bitcoin_ku.ts \
   qt/locale/bitcoin_ku_IQ.ts \
   qt/locale/bitcoin_ky.ts \
   qt/locale/bitcoin_la.ts \
@@ -58,6 +60,7 @@ QT_TS = \
   qt/locale/bitcoin_ne.ts \
   qt/locale/bitcoin_nl.ts \
   qt/locale/bitcoin_no.ts \
+  qt/locale/bitcoin_pa.ts \
   qt/locale/bitcoin_pam.ts \
   qt/locale/bitcoin_pl.ts \
   qt/locale/bitcoin_pt.ts \
@@ -79,10 +82,12 @@ QT_TS = \
   qt/locale/bitcoin_te.ts \
   qt/locale/bitcoin_th.ts \
   qt/locale/bitcoin_tk.ts \
+  qt/locale/bitcoin_tl.ts \
   qt/locale/bitcoin_tr.ts \
   qt/locale/bitcoin_ug.ts \
   qt/locale/bitcoin_uk.ts \
   qt/locale/bitcoin_ur.ts \
+  qt/locale/bitcoin_uz.ts \
   qt/locale/bitcoin_uz@Cyrl.ts \
   qt/locale/bitcoin_uz@Latn.ts \
   qt/locale/bitcoin_vi.ts \
diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/bitcoin_locale.qrc
index f70a241b723..ffb13260f33 100644
--- a/src/qt/bitcoin_locale.qrc
+++ b/src/qt/bitcoin_locale.qrc
@@ -31,6 +31,7 @@
         <file alias="gl">locale/bitcoin_gl.qm</file>
         <file alias="gl_ES">locale/bitcoin_gl_ES.qm</file>
         <file alias="gu">locale/bitcoin_gu.qm</file>
+        <file alias="ha">locale/bitcoin_ha.qm</file>
         <file alias="he">locale/bitcoin_he.qm</file>
         <file alias="hi">locale/bitcoin_hi.qm</file>
         <file alias="hr">locale/bitcoin_hr.qm</file>
@@ -44,6 +45,7 @@
         <file alias="kl">locale/bitcoin_kl.qm</file>
         <file alias="km">locale/bitcoin_km.qm</file>
         <file alias="ko">locale/bitcoin_ko.qm</file>
+        <file alias="ku">locale/bitcoin_ku.qm</file>
         <file alias="ku_IQ">locale/bitcoin_ku_IQ.qm</file>
         <file alias="ky">locale/bitcoin_ky.qm</file>
         <file alias="la">locale/bitcoin_la.qm</file>
@@ -59,6 +61,7 @@
         <file alias="ne">locale/bitcoin_ne.qm</file>
         <file alias="nl">locale/bitcoin_nl.qm</file>
         <file alias="no">locale/bitcoin_no.qm</file>
+        <file alias="pa">locale/bitcoin_pa.qm</file>
         <file alias="pam">locale/bitcoin_pam.qm</file>
         <file alias="pl">locale/bitcoin_pl.qm</file>
         <file alias="pt">locale/bitcoin_pt.qm</file>
@@ -80,10 +83,12 @@
         <file alias="te">locale/bitcoin_te.qm</file>
         <file alias="th">locale/bitcoin_th.qm</file>
         <file alias="tk">locale/bitcoin_tk.qm</file>
+        <file alias="tl">locale/bitcoin_tl.qm</file>
         <file alias="tr">locale/bitcoin_tr.qm</file>
         <file alias="ug">locale/bitcoin_ug.qm</file>
         <file alias="uk">locale/bitcoin_uk.qm</file>
         <file alias="ur">locale/bitcoin_ur.qm</file>
+        <file alias="uz">locale/bitcoin_uz.qm</file>
         <file alias="uz@Cyrl">locale/bitcoin_uz@Cyrl.qm</file>
         <file alias="uz@Latn">locale/bitcoin_uz@Latn.qm</file>
         <file alias="vi">locale/bitcoin_vi.qm</file>
diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts
index 3b438e6fa15..435ef1e8c35 100644
--- a/src/qt/locale/bitcoin_ar.ts
+++ b/src/qt/locale/bitcoin_ar.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">عنوانعنوانأنقر بزر الماوس الأيمن لتحرير العنوان أو التصنيف</translation>
+        <translation type="unfinished">أنقر بزر الماوس الأيمن لتحرير العنوان أو التصنيف</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -255,6 +255,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">هل تريد اعادة الاعدادت الى القيم الافتراضية ، او الايقاف دون القيام بالتغيير</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">خطأ كارثي قد حصل .تحقق من ان ملف الاعدادت قابل للكتابة، او حاول التشغيل دون اعدادات</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">خطأ: دليل البيانات المحدد "%1" غير موجود.</translation>
@@ -439,6 +449,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">ملف الاعدادات لا يمكن قرأته </translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">%s المبرمجون</translation>
@@ -539,6 +553,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">لايمكن الكتابة على دليل البيانات '%s'؛ تحقق من السماحيات. </translation>
     </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s طلب الاستماع على منفذ %u. يعتبر منفذه "سيئًا" وبالتالي فمن غير المحتمل أن يتصل به أي من أقران Bitcoin Core. انظر الى doc / p2p-bad-ports.md للحصول على التفاصيل والقائمة الكاملة.</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">فشل في إعادة تسمية ملف peers.dat غير صالح. يرجى نقلها أو حذفها وحاول مرة أخرى.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">الاتصالات الصادرة مقصورة على Tor (onion) ولكن لم يتم توفير الوكيل للوصول إلى شبكة Tor (لا يوجد وكيل (Proxy) ولا يوجد Onion), أو أنه محظور حتما (onion = 0).</translation>
+    </message>
     <message>
         <source>Copyright (C) %i-%i</source>
         <translation type="unfinished">حقوق الطبع والنشر (C) %i-%i</translation>
@@ -1144,6 +1170,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">الزبون %1</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">إخفاء</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">إظهار</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -1153,7 +1187,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
             <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
             <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
             <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
-            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%nاتصالات نشطة بشبكة البيتكوين</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_az.ts b/src/qt/locale/bitcoin_az.ts
index 6b1d4072a8a..6ece79662e9 100644
--- a/src/qt/locale/bitcoin_az.ts
+++ b/src/qt/locale/bitcoin_az.ts
@@ -91,6 +91,11 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
         <source>Export Address List</source>
         <translation type="unfinished">Ünvan siyahısını ixrac et</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Vergüllə ayrılmış fayl</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -158,29 +163,133 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
         <source>Confirm wallet encryption</source>
         <translation type="unfinished">Pulqabı şifrələməsini təsdiqlə</translation>
     </message>
+    <message>
+        <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
+        <translation type="unfinished">Xəbərdarlıq: Əgər siz pulqabınızı şifrədən çıxarsanız və şifrəli sözü itirmiş olsanız &lt;b&gt;BÜTÜN BİTCOİNLƏRİNİZİ İTİRƏCƏKSİNİZ&lt;/b&gt;!</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to encrypt your wallet?</source>
+        <translation type="unfinished">Pulqabınızı şifrədən çıxarmaq istədiyinizə əminsiniz?</translation>
+    </message>
+    <message>
+        <source>Wallet encrypted</source>
+        <translation type="unfinished">Pulqabı şifrələndi.</translation>
+    </message>
+    <message>
+        <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+        <translation type="unfinished">Pulqabı üçün yeni şifrəli sözü daxil edin.&lt;br/&gt;Lütfən &lt;b&gt;on və daha çox qarışıq simvollardan&lt;/b&gt; və ya &lt;b&gt;səkkiz və daha çox sayda sözdən&lt;/b&gt; ibarət şifrəli söz istifadə edin.</translation>
+    </message>
+    <message>
+        <source>Enter the old passphrase and new passphrase for the wallet.</source>
+        <translation type="unfinished">Pulqabı üçün köhnə şifrəli sözü və yeni şifrəli sözü daxil edin</translation>
+    </message>
     <message>
         <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
-        <translation type="unfinished">Unutmayın ki, cüzdanınızın şifrələməsi bitcoinlərinizi kompüterinizə zərərli proqram tərəfindən oğurlanmaqdan tamamilə qoruya bilməz.</translation>
+        <translation type="unfinished">Unutmayın ki, pulqabınızın şifrələməsi bitcoinlərinizi kompüterinizə zərərli proqram tərəfindən oğurlanmaqdan tamamilə qoruya bilməz.</translation>
     </message>
     <message>
         <source>Wallet to be encrypted</source>
-        <translation type="unfinished">Cüzdan şifrələnəcək</translation>
+        <translation type="unfinished">Pulqabı şifrələnəcək</translation>
     </message>
     <message>
         <source>Your wallet is about to be encrypted. </source>
-        <translation type="unfinished">Cüzdanınız şifrələnmək üzrədir.</translation>
+        <translation type="unfinished">Pulqabınız şifrələnmək üzrədir.</translation>
     </message>
     <message>
         <source>Your wallet is now encrypted. </source>
-        <translation type="unfinished">Cüzdanınız artıq şifrələnib.</translation>
+        <translation type="unfinished">Pulqabınız artıq şifrələnib.</translation>
+    </message>
+    <message>
+        <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+        <translation type="unfinished">VACİBDİR: Pulqabınızın əvvəlki ehtiyyat nüsxələri yenicə yaradılan şifrələnmiş cüzdan ilə əvəz olunmalıdır. Təhlükəsizlik baxımından yeni şifrələnmiş pulqabını işə salan kimi əvvəlki şifrəsi açılmış pulqabının ehtiyyat nüsxələri qeyri-işlək olacaqdır.</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed</source>
+        <translation type="unfinished">Cüzdanın şifrələnməsi baş tutmadı</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+        <translation type="unfinished">Daxili xəta səbəbindən cüzdanın şifrələnməsi baş tutmadı. Cüzdanınız şifrələnmədi.</translation>
+    </message>
+    <message>
+        <source>The supplied passphrases do not match.</source>
+        <translation type="unfinished">Təqdim etdiyiniz şifrəli söz uyğun deyil.</translation>
+    </message>
+    <message>
+        <source>Wallet unlock failed</source>
+        <translation type="unfinished">Cüzdanın şifrədən çıxarılması baş tutmadı</translation>
+    </message>
+    <message>
+        <source>The passphrase entered for the wallet decryption was incorrect.</source>
+        <translation type="unfinished">Cüzdanı şifrədən çıxarmaq üçün daxil etdiyiniz şifrəli söz səhvdir.</translation>
+    </message>
+    <message>
+        <source>Wallet passphrase was successfully changed.</source>
+        <translation type="unfinished">Cüzdanın şifrəli sözü uğurla dəyişdirildi.</translation>
     </message>
     <message>
         <source>Warning: The Caps Lock key is on!</source>
         <translation type="unfinished">Xəbərdarlıq: Caps Lock düyməsi yanılıdır!</translation>
     </message>
 </context>
+<context>
+    <name>BanTableModel</name>
+    <message>
+        <source>Banned Until</source>
+        <translation type="unfinished">Qadağan edildi</translation>
+    </message>
+</context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">İdarə edilə bilməyən istisna</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">Ciddi xəta baş verdi. %1 təhlükəsiz davam etdirilə bilməz və bağlanacaqdır.</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">Daxili xəta</translation>
+    </message>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">Daxili xəta baş verdi. %1 təhlükəsiz davam etməyə cəhd edəcək. Bu gözlənilməz bir xətadır və onun haqqında aşağıdakı şəkildə bildirmək olar.</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Siz ayarları dəyərləri ilkin dəyərlərinə sıfırlamaq istəyirsiniz, yoxsa dəyişiklik etmədən bu əməliyyatı ləğv etmək istəyirsiniz?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Ciddi xəta baş verdi. Ayarlar faylının yazılabilən olduğunu yoxlayın və ya -nonsettings (ayarlarsız) parametri ilə işə salın.</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" does not exist.</source>
+        <translation type="unfinished">Xəta: Göstərilmiş verilənlər qovluğu "%1" mövcud deyil</translation>
+    </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">Xəta: Tənzimləmə faylını təhlil etmək mümkün deyil: %1</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">XƏta: %1</translation>
+    </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 hələ də təhlükəsiz bağlanmayıb...</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Məbləğ</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
@@ -226,6 +335,14 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Ayarlar faylı oxuna bilmədi</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Ayarlar faylı yazıla bilmədi</translation>
+    </message>
     <message>
         <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
         <translation type="unfinished">Ödəniş təxmin edilmədi. Fallbackfee sıradan çıxarıldı. Bir neçə blok gözləyin və ya Fallbackfee-ni fəallaşdırın.</translation>
@@ -253,17 +370,226 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
     </context>
 <context>
     <name>BitcoinGUI</name>
+    <message>
+        <source>&amp;Overview</source>
+        <translation type="unfinished">&amp;İcmal</translation>
+    </message>
+    <message>
+        <source>Show general overview of wallet</source>
+        <translation type="unfinished">Cüzdanın əsas icmalı göstərilsin</translation>
+    </message>
+    <message>
+        <source>&amp;Transactions</source>
+        <translation type="unfinished">&amp;Köçürmələr</translation>
+    </message>
+    <message>
+        <source>Browse transaction history</source>
+        <translation type="unfinished">Köçürmə tarixçəsinə baxış</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation type="unfinished">Çı&amp;xış</translation>
+    </message>
+    <message>
+        <source>Quit application</source>
+        <translation type="unfinished">Tətbiqdən çıxış</translation>
+    </message>
+    <message>
+        <source>&amp;About %1</source>
+        <translation type="unfinished">%1 h&amp;aqqında</translation>
+    </message>
+    <message>
+        <source>Show information about %1</source>
+        <translation type="unfinished">%1 haqqında məlumatlar göstərilsin</translation>
+    </message>
+    <message>
+        <source>About &amp;Qt</source>
+        <translation type="unfinished">&amp;Qt haqqında</translation>
+    </message>
+    <message>
+        <source>Show information about Qt</source>
+        <translation type="unfinished">Qt haqqında məlumatlar göstərilsin</translation>
+    </message>
+    <message>
+        <source>Modify configuration options for %1</source>
+        <translation type="unfinished">%1 üçün tənzimləmə seçimlərini dəyişin</translation>
+    </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Yeni cüzdan yaradın</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Yığın</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">Cüzdan:</translation>
+    </message>
+    <message>
+        <source>Network activity disabled.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">İnternet bağlantısı söndürülüb.</translation>
+    </message>
+    <message>
+        <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
+        <translation type="unfinished">Proksi &lt;b&gt;işə salınıb&lt;/b&gt;: %1</translation>
+    </message>
+    <message>
+        <source>Send coins to a Bitcoin address</source>
+        <translation type="unfinished">Pulları Bitcoin ünvanına göndərin</translation>
+    </message>
+    <message>
+        <source>Backup wallet to another location</source>
+        <translation type="unfinished">Cüzdanın ehtiyyat nüsxəsini başqa yerdə saxlayın</translation>
+    </message>
+    <message>
+        <source>Change the passphrase used for wallet encryption</source>
+        <translation type="unfinished">Cüzdanın şifrələnməsi üçün istifadə olunan şifrəli sözü dəyişin</translation>
+    </message>
+    <message>
+        <source>&amp;Send</source>
+        <translation type="unfinished">&amp;Göndərin</translation>
+    </message>
+    <message>
+        <source>&amp;Receive</source>
+        <translation type="unfinished">&amp;Qəbul edin</translation>
+    </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;Parametrlər</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;Cüzdanı şifrələyin...</translation>
+    </message>
+    <message>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">Cüzdanınıza aid məxfi açarları şifrələyin</translation>
+    </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;Cüzdanın ehtiyyat nüsxəsini saxlayın...</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;Şifrəli sözü dəyişin...</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">İs&amp;marıcı imzalayın...</translation>
+    </message>
+    <message>
+        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
+        <translation type="unfinished">Bitcoin ünvanlarınızın sahibi olduğunuzu sübut etmək üçün ismarıcları imzalayın</translation>
+    </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;İsmarıcı doğrulayın...</translation>
+    </message>
+    <message>
+        <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
+        <translation type="unfinished">Göstərilmiş Bitcoin ünvanları ilə imzalandıqlarına əmin olmaq üçün ismarıcları doğrulayın</translation>
+    </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">PSBT-i fayldan yük&amp;ləyin...</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">&amp;URI-ni açın...</translation>
+    </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">Cüzdanı bağlayın...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">Cüzdan yaradın...</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">Bütün cüzdanları bağlayın...</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation type="unfinished">&amp;Fayl</translation>
+    </message>
     <message>
         <source>&amp;Settings</source>
         <translation type="unfinished">&amp;Tənzimləmələr</translation>
     </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation type="unfinished">&amp;Kömək</translation>
+    </message>
+    <message>
+        <source>Tabs toolbar</source>
+        <translation type="unfinished">Vərəq alətlər zolağı</translation>
+    </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">Başlıqlar eyniləşdirilir (%1%)...</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">İnternet şəbəkəsi ilə eyniləşdirmə...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Bloklar diskdə indekslənir...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Bloklar diskdə icra olunur...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Bloklar diskdə təkrar indekslənir...</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">İştirakçılara qoşulur...</translation>
+    </message>
+    <message>
+        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
+        <translation type="unfinished">Ödəmə tələbi (QR-kodlar və Bitcoin URI-ləri yaradılır):</translation>
+    </message>
+    <message>
+        <source>Show the list of used sending addresses and labels</source>
+        <translation type="unfinished">İstifadə olunmuş göndərmə ünvanlarının və etiketlərin siyahısını göstərmək </translation>
+    </message>
+    <message>
+        <source>Show the list of used receiving addresses and labels</source>
+        <translation type="unfinished">İstifadə edilmiş qəbuletmə ünvanlarının və etiketlərin siyahısını göstərmək</translation>
+    </message>
+    <message>
+        <source>&amp;Command-line options</source>
+        <translation type="unfinished">Əmr &amp;sətri parametrləri</translation>
+    </message>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Köçürmə tarixçəsinin %n bloku işləndi</numerusform>
+            <numerusform>Köçürmə tarixçəsinin %n bloku işləndi.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>%1 behind</source>
+        <translation type="unfinished">%1 geridə qalır</translation>
+    </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Eyniləşir...</translation>
+    </message>
+    <message>
+        <source>Last received block was generated %1 ago.</source>
+        <translation type="unfinished">Sonuncu qəbul edilmiş blok %1 əvvəl yaradılıb.</translation>
+    </message>
+    <message>
+        <source>Transactions after this will not yet be visible.</source>
+        <translation type="unfinished">Bundan sonrakı köçürmələr hələlik görünməyəcək.</translation>
+    </message>
     <message>
         <source>Error</source>
         <translation type="unfinished">Xəta</translation>
@@ -276,33 +602,505 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
         <source>Information</source>
         <translation type="unfinished">Məlumat</translation>
     </message>
+    <message>
+        <source>Up to date</source>
+        <translation type="unfinished">Eyniləşdirildi</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">Qismən imzalanmış Bitcoin köçürmələrini yükləyin</translation>
+    </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">PSBT-i &amp;mübadilə yaddaşından yükləyin...</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">Qismən İmzalanmış Bitcoin Köçürməsini (PSBT) mübadilə yaddaşından yükləmək</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">Qovşaq pəncərəsi</translation>
+    </message>
+    <message>
+        <source>Open node debugging and diagnostic console</source>
+        <translation type="unfinished">Qovşaq sazlaması və diaqnostika konsolunu açın</translation>
+    </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">&amp;Göndərmək üçün ünvanlar</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">&amp;Qəbul etmək üçün ünvanlar</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">Bitcoin açın: URI</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <translation type="unfinished">Cüzdanı açın</translation>
+    </message>
     <message>
         <source>Open a wallet</source>
         <translation type="unfinished">Bir pulqabı aç</translation>
     </message>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">Cüzdanı bağlayın</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">Bütün cüzdanları bağlayın</translation>
+    </message>
+    <message>
+        <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
+        <translation type="unfinished">Mümkün Bitcoin əmr sətri əməliyyatları siyahısını almaq üçün %1 kömək ismarıcı göstərilsin</translation>
+    </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">&amp;Dəyərləri gizlədin</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">İcmal vərəqində dəyərləri gizlədin</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">standart cüzdan</translation>
+    </message>
+    <message>
+        <source>No wallets available</source>
+        <translation type="unfinished">Heç bir cüzdan yoxdur</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;Pəncərə</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation type="unfinished">Miqyas</translation>
+    </message>
+    <message>
+        <source>Main Window</source>
+        <translation type="unfinished">Əsas pəncərə</translation>
+    </message>
+    <message>
+        <source>%1 client</source>
+        <translation type="unfinished">%1 müştəri</translation>
+    </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Gizlədin</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">&amp;Göstərin</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Bitcoin şəbəkəsinə %n aktiv bağlantı.</numerusform>
+            <numerusform>Bitcoin şəbəkəsinə %n aktiv bağlantı.</numerusform>
         </translation>
     </message>
-    </context>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Daha çıx əməllər üçün vurun.</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">İştirakşılar vərəqini göstərmək</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">Şəbəkə bağlantısını söndürün</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">Şəbəkə bağlantısını açın</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">XƏta: %1</translation>
+    </message>
+    <message>
+        <source>Warning: %1</source>
+        <translation type="unfinished">Xəbərdarlıq: %1</translation>
+    </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished">Tarix: %1
+</translation>
+    </message>
+    <message>
+        <source>Amount: %1
+</source>
+        <translation type="unfinished">Məbləğ: %1
+</translation>
+    </message>
+    <message>
+        <source>Wallet: %1
+</source>
+        <translation type="unfinished">Cüzdan: %1
+</translation>
+    </message>
+    <message>
+        <source>Type: %1
+</source>
+        <translation type="unfinished">Növ: %1
+</translation>
+    </message>
+    <message>
+        <source>Label: %1
+</source>
+        <translation type="unfinished">Etiket: %1
+</translation>
+    </message>
+    <message>
+        <source>Address: %1
+</source>
+        <translation type="unfinished">Ünvan: %1
+</translation>
+    </message>
+    <message>
+        <source>Sent transaction</source>
+        <translation type="unfinished">Göndərilmiş köçürmə</translation>
+    </message>
+    <message>
+        <source>Incoming transaction</source>
+        <translation type="unfinished">Daxil olan köçürmə</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD açar yaradılması &lt;b&gt;aktivdir&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD açar yaradılması &lt;b&gt;söndürülüb&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">Məxfi açar &lt;b&gt;söndürülüb&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+        <translation type="unfinished">Cüzdan &lt;b&gt;şifrələnib&lt;/b&gt; və hal-hazırda &lt;b&gt;kiliddən çıxarılıb&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+        <translation type="unfinished">Cüzdan &lt;b&gt;şifrələnib&lt;/b&gt; və hal-hazırda &lt;b&gt;kiliddlənib&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Original message:</source>
+        <translation type="unfinished">Orijinal ismarıc:</translation>
+    </message>
+</context>
+<context>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">Məbləğin vahidi. Başqa vahidi seçmək üçün vurun.</translation>
+    </message>
+</context>
 <context>
     <name>CoinControlDialog</name>
+    <message>
+        <source>Coin Selection</source>
+        <translation type="unfinished">Pul seçimi</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">Miqdar:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">Baytlar:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">Məbləğ:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">Komissiya:</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">Toz:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">Komissiydan sonra:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">Qalıq:</translation>
+    </message>
+    <message>
+        <source>(un)select all</source>
+        <translation type="unfinished">seçim</translation>
+    </message>
+    <message>
+        <source>Tree mode</source>
+        <translation type="unfinished">Ağac rejimi</translation>
+    </message>
+    <message>
+        <source>List mode</source>
+        <translation type="unfinished">Siyahı rejim</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Məbləğ</translation>
+    </message>
+    <message>
+        <source>Received with label</source>
+        <translation type="unfinished">Etiket ilə alındı</translation>
+    </message>
+    <message>
+        <source>Received with address</source>
+        <translation type="unfinished">Ünvan ilə alındı</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Tarix</translation>
+    </message>
+    <message>
+        <source>Confirmations</source>
+        <translation type="unfinished">Təsdiqləmələr</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">Təsdiqləndi</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">Məbləği kopyalayın</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Ünvanı kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Etiketi kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">&amp;Məbləği kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Köçürmə &amp;İD-sini və çıxış indeksini kopyalayın</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">Xərclənməmiş qalığı &amp;kilidləyin</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">Xərclənməmiş qalığı kilidd'n &amp;çıxarın</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Miqdarı kopyalayın</translation>
     </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Komissiyanı kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Komissyadan sonra kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">Baytları koyalayın</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">Tozu kopyalayın</translation>
+    </message>
     <message>
         <source>Copy change</source>
         <translation type="unfinished">Dəyişikliyi kopyalayın</translation>
     </message>
+    <message>
+        <source>(%1 locked)</source>
+        <translation type="unfinished">(%1 kilidləndi)</translation>
+    </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">bəli</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation type="unfinished">xeyr</translation>
+    </message>
+    <message>
+        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
+        <translation type="unfinished">Əgər alıcı məbləği cari toz həddindən az alarsa bu etiket qırmızı olur.</translation>
+    </message>
+    <message>
+        <source>Can vary +/- %1 satoshi(s) per input.</source>
+        <translation type="unfinished">Hər daxilolmada +/- %1 satoşi dəyişə bilər.</translation>
+    </message>
     <message>
         <source>(no label)</source>
         <translation type="unfinished">(etiket yoxdur)</translation>
     </message>
+    <message>
+        <source>change from %1 (%2)</source>
+        <translation type="unfinished">bunlardan qalıq: %1 (%2)</translation>
+    </message>
+    <message>
+        <source>(change)</source>
+        <translation type="unfinished">(qalıq)</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletActivity</name>
+    <message>
+        <source>Create Wallet</source>
+        <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
+        <translation type="unfinished">Cüzdan yaradın</translation>
+    </message>
+    <message>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">&lt;b&gt;%1&lt;/b&gt; cüzdanı yaradılır...</translation>
+    </message>
+    <message>
+        <source>Create wallet failed</source>
+        <translation type="unfinished">Cüzdan yaradıla bilmədi</translation>
+    </message>
+    <message>
+        <source>Create wallet warning</source>
+        <translation type="unfinished">Cüzdan yaradılma xəbərdarlığı</translation>
+    </message>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">İmzalaynları göstərmək mümkün deyil</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Cüzdanları yükləyin</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Pulqabılar yüklənir...</translation>
+    </message>
+</context>
+<context>
+    <name>OpenWalletActivity</name>
+    <message>
+        <source>Open wallet failed</source>
+        <translation type="unfinished">Pulqabı açıla bilmədi</translation>
+    </message>
+    <message>
+        <source>Open wallet warning</source>
+        <translation type="unfinished">Pulqabının açılması xəbərdarlığı</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">standart cüzdan</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
+        <translation type="unfinished">Cüzdanı açın</translation>
+    </message>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">&lt;b&gt;%1&lt;/b&gt; pulqabı açılır...</translation>
+    </message>
+</context>
+<context>
+    <name>WalletController</name>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">Cüzdanı bağlayın</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
+        <translation type="unfinished">&lt;i&gt;%1&lt;/i&gt; pulqabını bağlamaq istədiyinizə əminsiniz?</translation>
+    </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">Pulqabının uzun müddət bağlı qaldıqda əgər budama (azalma) aktiv olarsa bu, bütün zəncirin təkrar eyniləşditrilməsi ilə nəticələnə bilər.</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">Bütün cüzdanları bağlayın</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">Bütün pulqabılarını bağlamaq istədiyinizə əminsiniz?</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletDialog</name>
+    <message>
+        <source>Create Wallet</source>
+        <translation type="unfinished">Cüzdan yaradın</translation>
+    </message>
+    <message>
+        <source>Wallet Name</source>
+        <translation type="unfinished">Pulqabının adı</translation>
+    </message>
+    <message>
+        <source>Wallet</source>
+        <translation type="unfinished">Pulqabı</translation>
+    </message>
+    <message>
+        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
+        <translation type="unfinished">Pulqabının şifrələnməsi. Pulqabı sizin seçdiyiniz şifrəli söz ilə şifrələnəcək.</translation>
+    </message>
+    <message>
+        <source>Encrypt Wallet</source>
+        <translation type="unfinished">Pulqabını şifrələyin</translation>
+    </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">Əlavə parametrlər</translation>
+    </message>
+    <message>
+        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
+        <translation type="unfinished">Bu pulqabının məxfi açarını söndürün. Məxfi açarı söndürülmüş pulqabılarında məxfi açarlar saxlanılmır, onlarda HD məxfi açarlar yaradıla bilıməz və məxfi açarlar idxal edilə bilməz. Bu sadəcə müşahidə edən pulqabıları üçün ideal variantdır.</translation>
+    </message>
+    <message>
+        <source>Disable Private Keys</source>
+        <translation type="unfinished">Məxfi açarları söndürün</translation>
+    </message>
+    <message>
+        <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
+        <translation type="unfinished">Boş pulqabı yaradın. Boş pulqabında ilkin olaraq açarlar və skriptlər yoxdur. Sonra məxfi açarlar və ünvanlar idxal edilə bilər və ya HD məxfi açarlar təyin edilə bilər.</translation>
+    </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">Boş pulqabı yaradın</translation>
+    </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">Publik açar skripti (scriptPubKey) idarəetməsi üçün deskreptorlardan itifadə edin</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">Deskriptor pulqabı</translation>
+    </message>
     </context>
 <context>
     <name>Intro</name>
@@ -333,6 +1131,10 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">&amp;UPnP istifadə edən xəritə portu</translation>
     </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;Pəncərə</translation>
+    </message>
     <message>
         <source>The user interface language can be set here. This setting will take effect after restarting %1.</source>
         <translation type="unfinished">İstifadəçi interfeys dili burada tənzimlənə bilər. Bu tənzimləmə %1 yenidən başladıldıqdan sonra təsirli olacaq.</translation>
@@ -356,9 +1158,48 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
         <source>&amp;Reset</source>
         <translation type="unfinished">&amp;Sıfırla</translation>
     </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">Qovşaq pəncərəsi</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;Ünvanı kopyalayın</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveCoinsDialog</name>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Ünvanı kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Etiketi kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">&amp;Məbləği kopyalayın</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">Məbləğ:</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">Cüzdan</translation>
+    </message>
     </context>
 <context>
     <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">TArix</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">Etiket</translation>
@@ -370,10 +1211,58 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
     </context>
 <context>
     <name>SendCoinsDialog</name>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">Miqdar:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">Baytlar:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">Məbləğ:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">Komissiya:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">Komissiydan sonra:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">Qalıq:</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">Toz:</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Miqdarı kopyalayın</translation>
     </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">Məbləği kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Komissiyanı kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Komissyadan sonra kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">Baytları koyalayın</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">Tozu kopyalayın</translation>
+    </message>
     <message>
         <source>Copy change</source>
         <translation type="unfinished">Dəyişikliyi kopyalayın</translation>
@@ -392,6 +1281,10 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
 </context>
 <context>
     <name>TransactionDesc</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">TArix</translation>
+    </message>
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
@@ -399,9 +1292,17 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Məbləğ</translation>
+    </message>
     </context>
 <context>
     <name>TransactionTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">TArix</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">Etiket</translation>
@@ -417,6 +1318,31 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
         <source>Other</source>
         <translation type="unfinished">Başqa</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Ünvanı kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Etiketi kopyalayın</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">&amp;Məbləği kopyalayın</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Vergüllə ayrılmış fayl</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">Təsdiqləndi</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">TArix</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">Etiket</translation>
@@ -432,11 +1358,22 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
     </context>
 <context>
     <name>WalletFrame</name>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Yeni cüzdan yaradın</translation>
+    </message>
     <message>
         <source>Error</source>
         <translation type="unfinished">Xəta</translation>
     </message>
     </context>
+<context>
+    <name>WalletModel</name>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">standart cüzdan</translation>
+    </message>
+</context>
 <context>
     <name>WalletView</name>
     <message>
@@ -447,5 +1384,10 @@ Daxil olma, yalnız 'qanuni' tipli ünvanlar ilə mümkündür.</translation>
         <source>Export the data in the current tab to a file</source>
         <translation type="unfinished">Hazırki vərəqdəki verilənləri fayla ixrac edin</translation>
     </message>
+    <message>
+        <source>Wallet Data</source>
+        <extracomment>Name of the wallet data file format.</extracomment>
+        <translation type="unfinished">Cüzdanı verilənləri</translation>
+    </message>
     </context>
 </TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts
index eeaabd47c2c..52cb0450f8d 100644
--- a/src/qt/locale/bitcoin_bg.ts
+++ b/src/qt/locale/bitcoin_bg.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Клик с десен бутон на мишката за промяна на адрес или етикет</translation>
+        <translation type="unfinished">Десен клик за промяна на адреса или името</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -17,6 +17,10 @@
         <source>Copy the currently selected address to the system clipboard</source>
         <translation type="unfinished">Копирай текущо избрания адрес към клипборда</translation>
     </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">Копирай</translation>
+    </message>
     <message>
         <source>C&amp;lose</source>
         <translation type="unfinished">Затвори</translation>
@@ -39,7 +43,7 @@
     </message>
     <message>
         <source>&amp;Delete</source>
-        <translation type="unfinished">&amp;Изтрий</translation>
+        <translation type="unfinished">Изтрий</translation>
     </message>
     <message>
         <source>Choose the address to send coins to</source>
@@ -55,20 +59,20 @@
     </message>
     <message>
         <source>Sending addresses</source>
-        <translation type="unfinished">Адрес за пращане</translation>
+        <translation type="unfinished">Адреси за изпращане</translation>
     </message>
     <message>
         <source>Receiving addresses</source>
-        <translation type="unfinished">Адрес за получаване</translation>
+        <translation type="unfinished">Адреси за получаване</translation>
     </message>
     <message>
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
-        <translation type="unfinished">Тези са вашите Биткойн адреси за изпращане на монети. Винаги проверявайте количеството и получаващия адрес преди изпращане. </translation>
+        <translation type="unfinished">Тези са вашите Биткойн адреси за изпращане на плащания. Винаги проверявайте количеството и получаващите адреси преди изпращане на монети. </translation>
     </message>
     <message>
         <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
 Signing is only possible with addresses of the type 'legacy'.</source>
-        <translation type="unfinished">създавам</translation>
+        <translation type="unfinished">Това са вашите биткойн адреси за получаване на плащания. Използвайте бутона „Създаване на нови адреси“ в раздела за получаване, за да създадете нови адреси. Подписването е възможно само с адреси от типа „наследени“.</translation>
     </message>
     <message>
         <source>&amp;Copy Address</source>
@@ -86,6 +90,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Export Address List</source>
         <translation type="unfinished">Изнеси лист с адреси</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Файл, разделен със запетая</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -173,6 +182,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Enter the old passphrase and new passphrase for the wallet.</source>
         <translation type="unfinished">Въведете старата и новата паролна фраза за портфейла.</translation>
     </message>
+    <message>
+        <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+        <translation type="unfinished">Не забравяйте, че криптирането на вашия портфейл не може напълно да защити вашите биткойни от кражба от зловреден софтуер, заразяващ компютъра ви.</translation>
+    </message>
     <message>
         <source>Wallet to be encrypted</source>
         <translation type="unfinished">Портфейл за криптиране</translation>
@@ -231,6 +244,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">Изключи бягащите</translation>
+    </message>
     <message>
         <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
         <translation type="unfinished">Фатална грешка се появи. %1 не може да продължи безопастно и ще се затвори.</translation>
@@ -239,7 +256,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Internal error</source>
         <translation type="unfinished">Вътрешна грешка.</translation>
     </message>
-    </context>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">Възникна вътрешна грешка. %1 ще се опита да продължи безопасно. Това е неочакван бъг, който може да бъде докладван, както е описано по-долу.</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
     <message>
@@ -256,6 +277,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Грешка:Избраната "%1" директория не съществува.</translation>
     </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">Грешка: Не може да се анализира конфигурационния файл: %1.</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">Грешка: %1</translation>
@@ -439,7 +464,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction too large</source>
         <translation type="unfinished">Транзакцията е твърде голяма</translation>
     </message>
-    </context>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished">Активирани са неизвестни нови правила (versionbit %i)</translation>
+    </message>
+    <message>
+        <source>Unsupported logging category %s=%s.</source>
+        <translation type="unfinished">Неподдържана logging категория%s=%s.</translation>
+    </message>
+    <message>
+        <source>User Agent comment (%s) contains unsafe characters.</source>
+        <translation type="unfinished">Коментар потребителски агент (%s) съдържа не безопасни знаци. </translation>
+    </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">Секторите се проверяват...</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">Потвърждаване на портфейл(и)...</translation>
+    </message>
+    <message>
+        <source>Wallet needed to be rewritten: restart %s to complete</source>
+        <translation type="unfinished">Портфейлът трябва да бъде презаписан : рестартирай %s , за да завърши</translation>
+    </message>
+</context>
 <context>
     <name>BitcoinGUI</name>
     <message>
@@ -521,19 +570,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>&amp;Send</source>
-        <translation type="unfinished">&amp;изпращам</translation>
+        <translation type="unfinished">Изпрати</translation>
     </message>
     <message>
         <source>&amp;Receive</source>
-        <translation type="unfinished">&amp;получавам</translation>
+        <translation type="unfinished">Получи</translation>
     </message>
     <message>
         <source>&amp;Options…</source>
-        <translation type="unfinished">&amp;Опции</translation>
+        <translation type="unfinished">Опций</translation>
     </message>
     <message>
         <source>&amp;Encrypt Wallet…</source>
-        <translation type="unfinished">&amp;Крипритай уолет..</translation>
+        <translation type="unfinished">Шифровай портфейла</translation>
     </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
@@ -567,6 +616,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Load PSBT from file…</source>
         <translation type="unfinished">&amp;Зареди PSBT от файл…</translation>
     </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">Отвори &amp;URI...</translation>
+    </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">Затвори Портфейл...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">Създай Портфейл...</translation>
+    </message>
     <message>
         <source>Close All Wallets…</source>
         <translation type="unfinished">Затвори всички уолети</translation>
@@ -587,10 +648,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Tabs toolbar</source>
         <translation type="unfinished">Лентата с инструменти</translation>
     </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">Синхронизиране на хедъри (%1%)</translation>
+    </message>
     <message>
         <source>Synchronizing with network…</source>
         <translation type="unfinished">Синхронизиране с мрежа</translation>
     </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Индексиране на блокове от диска...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Обработване на сектори от диска...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Преиндексиране на блокове от диска...</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Свързване с рояк...</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">Изискване на плащания(генерира QR кодове и биткойн: URIs)</translation>
@@ -610,14 +691,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Обработени %n сектори от историята с трансакции.</numerusform>
+            <numerusform>Обработени %n сектори от историята с трансакции.</numerusform>
         </translation>
     </message>
     <message>
         <source>%1 behind</source>
         <translation type="unfinished">%1 зад</translation>
     </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Наваксвам...</translation>
+    </message>
     <message>
         <source>Last received block was generated %1 ago.</source>
         <translation type="unfinished">Последния получен блок е генериран преди %1.</translation>
@@ -642,10 +727,38 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Up to date</source>
         <translation type="unfinished">Актуално</translation>
     </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">Заредете частично подписана Bitcoin трансакция</translation>
+    </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Заредете PSBT от &amp;клипборд...</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">Заредете частично подписана Bitcoin трансакция от клипборд</translation>
+    </message>
     <message>
         <source>Node window</source>
         <translation type="unfinished">Прозорец на възела</translation>
     </message>
+    <message>
+        <source>Open node debugging and diagnostic console</source>
+        <translation type="unfinished">Отвори конзола за отстраняване на грешки и диагностика на възела</translation>
+    </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">&amp;Изпращане на адреси</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">&amp;Получаване на адреси</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">Отвори bitcoin: URI</translation>
+    </message>
     <message>
         <source>Open Wallet</source>
         <translation type="unfinished">Отворете портфейл</translation>
@@ -666,6 +779,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
         <translation type="unfinished">Покажи %1 помощно съобщение за да получиш лист с възможни Биткойн команди</translation>
     </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">§Маскирай стойностите</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">Маскирай стойностите в раздела Преглед</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">Портфейл по подразбиране</translation>
@@ -690,12 +811,20 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 клиент</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Скрий</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">&amp;Покажи</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n свързани активно към Bitcoin мрежата.</numerusform>
+            <numerusform>%n активно свързани към Биткойн мрежата. </numerusform>
         </translation>
     </message>
     <message>
@@ -703,6 +832,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
         <translation type="unfinished">Клик за повече действия</translation>
     </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">Показване на раздела с Пиъри</translation>
+    </message>
     <message>
         <source>Disable network activity</source>
         <extracomment>A context menu item.</extracomment>
@@ -790,6 +924,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">Оригинално съобщение:</translation>
     </message>
 </context>
+<context>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">Елемент за показване на суми. Щракнете, за да изберете друга единица.</translation>
+    </message>
+</context>
 <context>
     <name>CoinControlDialog</name>
     <message>
@@ -868,10 +1009,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Copy address</source>
         <translation type="unfinished">&amp;Копирай адрес</translation>
     </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копиране на етикет</translation>
+    </message>
     <message>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">Копирай сума</translation>
     </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Копирайте идентификатора &amp;ID на трансакцията и изходния индекс</translation>
+    </message>
     <message>
         <source>L&amp;ock unspent</source>
         <translation type="unfinished">Заключи неизхарчено</translation>
@@ -953,7 +1102,15 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create wallet failed</source>
         <translation type="unfinished">Създаването на портфейл не бе успешен</translation>
     </message>
-    </context>
+    <message>
+        <source>Create wallet warning</source>
+        <translation type="unfinished">Създайте предупредителен портфейл </translation>
+    </message>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Не мога да изброя подписите</translation>
+    </message>
+</context>
 <context>
     <name>LoadWalletsActivity</name>
     <message>
@@ -973,6 +1130,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Open wallet failed</source>
         <translation type="unfinished">Отварянето на уолет неупсешно</translation>
     </message>
+    <message>
+        <source>Open wallet warning</source>
+        <translation type="unfinished">Внимание, отворен портфейл</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">Портфейл по подразбиране</translation>
@@ -982,18 +1143,35 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
         <translation type="unfinished">Отворете портфейл</translation>
     </message>
-    </context>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">Отваряне на портфейл &lt;b&gt;%1&lt;/b&gt;…</translation>
+    </message>
+</context>
 <context>
     <name>WalletController</name>
     <message>
         <source>Close wallet</source>
         <translation type="unfinished">Затвори портфейла</translation>
     </message>
+    <message>
+        <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
+        <translation type="unfinished">Сигурни ли сте, че искате да затворите портфейла&lt;i&gt;%1&lt;/i&gt;?</translation>
+    </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">Затварянето на портфейла за твърде дълго може да доведе до необходимост от повторно синхронизиране на цялата верига, ако съкращаването е активирано.</translation>
+    </message>
     <message>
         <source>Close all wallets</source>
         <translation type="unfinished">Затвори всички портфейли</translation>
     </message>
-    </context>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">Сигурни ли сте, че искате да затворите всички портфейли?</translation>
+    </message>
+</context>
 <context>
     <name>CreateWalletDialog</name>
     <message>
@@ -1008,15 +1186,64 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Wallet</source>
         <translation type="unfinished">портфейл</translation>
     </message>
+    <message>
+        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
+        <translation type="unfinished">Кодиране на портфейла. Портфейлът ще бъде криптиран с парола по ваш избор.</translation>
+    </message>
     <message>
         <source>Encrypt Wallet</source>
         <translation type="unfinished">Криптирай портфейла</translation>
     </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">Разширени настройки</translation>
+    </message>
+    <message>
+        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
+        <translation type="unfinished">Деактивирайте частните ключове за този портфейл. Портфейлите с деактивирани частни ключове няма да имат частни ключове и не могат да имат HD seed или импортирани частни ключове. Това е идеално за портфейли, които служат само за наблюдение на баланса.</translation>
+    </message>
+    <message>
+        <source>Disable Private Keys</source>
+        <translation type="unfinished">Изключете частните (тайните) ключове</translation>
+    </message>
+    <message>
+        <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
+        <translation type="unfinished">Създайте празен портфейл.  Празните портфейли първоначално нямат частни ключове или скриптове. Частните ключове и адреси могат да бъдат импортирани или може да се зададе HD seed по-късно. </translation>
+    </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">Създайте празен портфейл</translation>
+    </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">Използвайте декодери за управление на scriptPubKey</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">Декодер за портфейл</translation>
+    </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Използвайте външно устройство за подписване, като хардуерен портфейл. Конфигурирайте първо външния скрипт на подписа в предпочитания портфейл.</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Външен подпис</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">Създай</translation>
     </message>
-    </context>
+    <message>
+        <source>Compiled without sqlite support (required for descriptor wallets)</source>
+        <translation type="unfinished">Компилиран без поддръжка на sqlite (изисква се за декодер на портфейли)</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Компилиран без поддръжка на външни подписи (изисква се за външно подписване)</translation>
+    </message>
+</context>
 <context>
     <name>EditAddressDialog</name>
     <message>
@@ -1055,6 +1282,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The entered address "%1" is not a valid Bitcoin address.</source>
         <translation type="unfinished">"%1" не е валиден Биткоин адрес.</translation>
     </message>
+    <message>
+        <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source>
+        <translation type="unfinished">Адресът "%1" вече съществува като адрес за получаване с етикет "%2" и затова не може да бъде добавен като адрес за изпращане.</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is already in the address book with label "%2".</source>
+        <translation type="unfinished">Въведеният адрес "%1" вече е в адресната книга с етикет "%2".</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">Не може да отключите портфейла.</translation>
@@ -1093,6 +1328,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Bitcoin</source>
         <translation type="unfinished">Биткоин</translation>
     </message>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB налично пространство</translation>
+    </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(от необходимите %1 GB )</translation>
+    </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(%1 GB необходими за пълна верига)</translation>
+    </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Най малко %1 GB данни ще бъдат запаметени в тази директория, и ще нарастват през времето.</translation>
@@ -1105,14 +1352,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(достатъчно за възстановяване на резервните копия %n от преди дни)</numerusform>
+            <numerusform>(достатъчно за възстановяване на резервните копия %n от преди дни)</numerusform>
         </translation>
     </message>
     <message>
         <source>%1 will download and store a copy of the Bitcoin block chain.</source>
         <translation type="unfinished">%1 ще свали и съхрани копие на биткойн блокчейна.</translation>
     </message>
+    <message>
+        <source>The wallet will also be stored in this directory.</source>
+        <translation type="unfinished">Портфейлът ще се съхранява и в тази директория.</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" cannot be created.</source>
+        <translation type="unfinished">Грешка: Не може да се създаде посочената директория за данни "%1"</translation>
+    </message>
     <message>
         <source>Error</source>
         <translation type="unfinished">грешка</translation>
@@ -1129,10 +1384,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source>
         <translation type="unfinished">Програмата се стартира за първи път вие може да изберете къде %1 ще се запаметят данните.</translation>
     </message>
+    <message>
+        <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
+        <translation type="unfinished">Когато щракнете върху OK, %1 ще започне да изтегля и обработва пълната %4 блокова верига (%2GB) започвайки с най-ранните трансакции %3 когато %4 първоначално стартира.</translation>
+    </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">Ограничете блокчейнното съхранение</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
+        <translation type="unfinished">Връщането на тази настройка изисква повторно изтегляне на цялата секторна верига. По-бързо е първо да изтеглите пълната верига и да я подрязвате по-късно. Деактивира някои разширени функции.</translation>
+    </message>
+    <message>
+        <source> GB</source>
+        <translation type="unfinished">ГБ</translation>
+    </message>
     <message>
         <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
         <translation type="unfinished">Първоначалната синхронизация е изключително взискателна, и може да разкрие хардуерни проблеми с вашия компютър, които до сега са били незабелязани. Всеки път, когато включите %1,  свалянето ще започне от където е приключило.</translation>
     </message>
+    <message>
+        <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
+        <translation type="unfinished">Ако сте избрали да ограничите съхранението на блокови вериги (подрязване), историческите данни все още трябва да бъдат изтеглени и обработени, но ще бъдат изтрити след това, за да поддържате използването на вашия диск.</translation>
+    </message>
     <message>
         <source>Use the default data directory</source>
         <translation type="unfinished">Използване на директория по подразбиране</translation>
@@ -1159,6 +1434,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1 изключва се...</translation>
+    </message>
     <message>
         <source>Do not shut down the computer until this window disappears.</source>
         <translation type="unfinished">Не изключвайте компютъра докато този прозорец не изчезне.</translation>
@@ -1170,6 +1449,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Form</source>
         <translation type="unfinished">форма</translation>
     </message>
+    <message>
+        <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
+        <translation type="unfinished">Последните трансакции все още не могат да се виждат и следователно балансът на портфейла ви може да бъде неправилен. Тази информация ще бъде правилна, след като портфейлът ви приключи синхронизирането с Bitcoin мрежата, както е подробно описано по-долу.</translation>
+    </message>
+    <message>
+        <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source>
+        <translation type="unfinished">Опитът да се изразходват биткойни, които са засегнати от все още показаните трансакции, няма да бъдат приети от мрежата.</translation>
+    </message>
+    <message>
+        <source>Number of blocks left</source>
+        <translation type="unfinished">Брой останали блокове</translation>
+    </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">Неизвестно...</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">изчисляване...</translation>
+    </message>
     <message>
         <source>Last block time</source>
         <translation type="unfinished">Време на последния блок</translation>
@@ -1178,13 +1477,37 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Progress</source>
         <translation type="unfinished">прогрес</translation>
     </message>
+    <message>
+        <source>Progress increase per hour</source>
+        <translation type="unfinished">Увеличаване на напредъка на час</translation>
+    </message>
+    <message>
+        <source>Estimated time left until synced</source>
+        <translation type="unfinished">Прогнозираното време остава до синхронизиране</translation>
+    </message>
     <message>
         <source>Hide</source>
         <translation type="unfinished">Скрий</translation>
     </message>
-    </context>
+    <message>
+        <source>Esc</source>
+        <translation type="unfinished">избягай</translation>
+    </message>
+    <message>
+        <source>%1 is currently syncing.  It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source>
+        <translation type="unfinished">%1 в момента синхронизира. Той ще изтегля заглавия и блокове от рояка и ще ги утвърди, докато достигне върха на секторната верига.</translation>
+    </message>
+    <message>
+        <source>Unknown. Syncing Headers (%1, %2%)…</source>
+        <translation type="unfinished">Неизвестно. Синхронизиране на Глави (%1, %2%)...</translation>
+    </message>
+</context>
 <context>
     <name>OpenURIDialog</name>
+    <message>
+        <source>Open bitcoin URI</source>
+        <translation type="unfinished">Отвори bitcoin URI </translation>
+    </message>
     <message>
         <source>Paste address from clipboard</source>
         <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
@@ -1201,6 +1524,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Main</source>
         <translation type="unfinished">&amp;Основни</translation>
     </message>
+    <message>
+        <source>Automatically start %1 after logging in to the system.</source>
+        <translation type="unfinished">Автоматично стартиране %1 след влизане в системата.</translation>
+    </message>
+    <message>
+        <source>&amp;Start %1 on system login</source>
+        <translation type="unfinished">&amp;Стартиране %1 при влизане в системата</translation>
+    </message>
+    <message>
+        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">Активирането на подрязването значително намалява дисковото пространство, необходимо за съхраняване на трансакции. Всички блокове все още са напълно валидирани. Връщането на тази настройка изисква повторно изтегляне на целия блокчейн.</translation>
+    </message>
     <message>
         <source>Size of &amp;database cache</source>
         <translation type="unfinished">Размер на кеша в &amp;базата данни</translation>
@@ -1213,6 +1548,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
         <translation type="unfinished">IP адрес на прокси (напр. за IPv4: 127.0.0.1 / за IPv6: ::1)</translation>
     </message>
+    <message>
+        <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source>
+        <translation type="unfinished">Показва дали предоставеният proxy по подразбиране Socks5 се използва за достигане до рояк чрез този тип мрежа.</translation>
+    </message>
+    <message>
+        <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source>
+        <translation type="unfinished">Минимизиране вместо излизане от приложението, когато прозорецът е затворен. Когато тази опция е активирана, приложението ще се затвори само след избиране на Изход от менюто.</translation>
+    </message>
     <message>
         <source>Open Configuration File</source>
         <translation type="unfinished">Отворете конфигурационния файл</translation>
@@ -1229,14 +1572,56 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Network</source>
         <translation type="unfinished">&amp;Мрежа</translation>
     </message>
+    <message>
+        <source>Prune &amp;block storage to</source>
+        <translation type="unfinished">Съкратете &amp;блоковото хранилище до</translation>
+    </message>
     <message>
         <source>GB</source>
         <translation type="unfinished">ГБ</translation>
     </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">Връщането на тази настройка изисква повторно изтегляне на цялата блокова верига.</translation>
+    </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Максимален размер кеш за базата данни.  По-големият кеш може да допринесе за по-бърза синхронизация, след което ползата е по-малко изразена за повечето случаи на употреба. Намаляването на размера на кеша ще намали използването на паметта. Неизползваната mempool памет се споделя за този кеш.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Задайте броя на нишките за проверка на скрипта. Отрицателните стойности съответстват на броя ядра, които искате да оставите свободни за системата.</translation>
+    </message>
+    <message>
+        <source>(0 = auto, &lt;0 = leave that many cores free)</source>
+        <translation type="unfinished">(0 = авто, &lt;0 = оставете толкова свободни ядра) </translation>
+    </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Това позволява на вас или на инструмент на трета страна да комуникирате с възела чрез команден ред и JSON-RPC команди.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Активиране на R&amp;PC сървър</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">По&amp;ртфейл</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Дали да зададете изваждане на такса от сумата по подразбиране или не.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Изваждане &amp;такса от сума по подразбиране</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Експерт</translation>
@@ -1245,10 +1630,36 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Enable coin &amp;control features</source>
         <translation type="unfinished">Позволяване на монетите и &amp;техните възможности</translation>
     </message>
+    <message>
+        <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source>
+        <translation type="unfinished">Ако деактивирате разходите за непотвърдена промяна, промяната от трансакция не може да се използва, докато тази транзакция няма поне едно потвърждение. Това се отразява и на това как се изчислява вашият баланс.</translation>
+    </message>
     <message>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Похарчете непотвърденото ресто</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Активиране &amp;PSBT контроли</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Дали да покажа PSBT контроли.</translation>
+    </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">Външен подпис (например хардуерен портфейл)</translation>
+    </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">&amp;Външен път на скрипта на подписващия</translation>
+    </message>
+    <message>
+        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
+        <translation type="unfinished">Пълен път към съвместим с биткойн основен скрипт (например C: \ Downloads \ hwi.exe или /users/you/downloads/hwi.py). Внимавайте: злонамерен софтуер може да открадне вашите монети!</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Автоматично отваряне на входящия Bitcoin порт. Работи само с рутери поддържащи UPnP.</translation>
@@ -1325,6 +1736,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Дали да покаже възможностите за контрол на монетите или не.</translation>
     </message>
+    <message>
+        <source>Monospaced font in the Overview tab:</source>
+        <translation type="unfinished">Моноширинен шрифт в раздела Общ преглед:</translation>
+    </message>
     <message>
         <source>&amp;OK</source>
         <translation type="unfinished">ОК</translation>
@@ -1333,6 +1748,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Cancel</source>
         <translation type="unfinished">Отказ</translation>
     </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Компилиран без поддръжка на външни подписи (изисква се за външно подписване)</translation>
+    </message>
     <message>
         <source>default</source>
         <translation type="unfinished">подразбиране</translation>
@@ -1428,6 +1848,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </context>
 <context>
     <name>PSBTOperationsDialog</name>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">Запази...</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished">Затвори</translation>
+    </message>
     <message>
         <source>or</source>
         <translation type="unfinished">или</translation>
@@ -1750,6 +2178,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Copy address</source>
         <translation type="unfinished">&amp;Копирай адрес</translation>
     </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копиране на етикет</translation>
+    </message>
     <message>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">Копирай сума</translation>
@@ -2411,6 +2843,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Copy address</source>
         <translation type="unfinished">&amp;Копирай адрес</translation>
     </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копиране на етикет</translation>
+    </message>
     <message>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">Копирай сума</translation>
@@ -2419,6 +2855,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Export Transaction History</source>
         <translation type="unfinished">Изнасяне историята на транзакциите</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Файл, разделен със запетая</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">Потвърдено</translation>
@@ -2508,6 +2949,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Backup Wallet</source>
         <translation type="unfinished">Запазване на портфейла</translation>
     </message>
+    <message>
+        <source>Wallet Data</source>
+        <extracomment>Name of the wallet data file format.</extracomment>
+        <translation type="unfinished">Данни от портфейла</translation>
+    </message>
     <message>
         <source>Backup Failed</source>
         <translation type="unfinished">Неуспешно запазване на портфейла</translation>
diff --git a/src/qt/locale/bitcoin_bn.ts b/src/qt/locale/bitcoin_bn.ts
index b76dbb3bee6..5bb27c668f6 100644
--- a/src/qt/locale/bitcoin_bn.ts
+++ b/src/qt/locale/bitcoin_bn.ts
@@ -73,6 +73,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">আপনি কি ডিফল্ট মানগুলিতে সেটিংস রিসেট করতে চান, নাকি পরিবর্তন না করেই বাতিল করতে চান?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">একটি জটিল ত্রুটি হয়েছে। সেটিং ফাইল টি রাইটেবল কিনা চেক করুন, অথবা -nosettings দিয়ে রান করার চেষ্টা করুন</translation>
+    </message>
     <message>
         <source>%1 didn't yet exit safely…</source>
         <translation type="unfinished">%1 এখনো নিরাপদে বের হয়নি</translation>
@@ -132,6 +142,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Settingsসেটিংস ফাইল পড়া যাবে না।fileসেটিংস ফাইল পড়া যাবে না।couldসেটিংস ফাইল পড়া যাবে না।notসেটিংস ফাইল পড়া যাবে না।beসেটিংস ফাইল পড়া যাবে না।read</translation>
+    </message>
     <message>
         <source>SQLiteDatabase: Unexpected application id. Expected %u, got %u</source>
         <translation type="unfinished">এস. কিয়ু. লাইট ডাটাবেস : অপ্রত্যাশিত এপ্লিকেশন আই.ডি. প্রত্যাশিত %u, পাওয়া গেলো %u </translation>
diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts
index 22a5ab2ca3f..422405565bc 100644
--- a/src/qt/locale/bitcoin_ca.ts
+++ b/src/qt/locale/bitcoin_ca.ts
@@ -264,6 +264,16 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Voleu restablir la configuració als valors predeterminats o sortir sense desar els canvis?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">S'ha produit un error fatal. Revisa que l'arxiu de preferències sigui d'escriptura, o torna-ho a intentar amb -nosettings</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Error: El directori de dades especificat «%1» no existeix.</translation>
@@ -383,6 +393,14 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">El fitxer de configuració no es pot llegir</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">El fitxer de configuració no pot ser escrit</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">Els desenvolupadors %s</translation>
@@ -1031,6 +1049,10 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
         <source>Create a new wallet</source>
         <translation type="unfinished">Crear una nova cartera</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Minimitza</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Moneder:</translation>
@@ -1179,8 +1201,8 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Processat(s) %n bloc(s) de l'historial de transaccions.</numerusform>
+            <numerusform>Processat(s) %n bloc(s) de l'historial de transaccions.</numerusform>
         </translation>
     </message>
     <message>
@@ -1215,6 +1237,10 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Carrega la transacció Bitcoin signada parcialment</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Carrega la PSBT des del porta-retalls.</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Carrega la transacció de Bitcoin signada parcialment des del porta-retalls</translation>
@@ -1291,6 +1317,10 @@ Només és possible firmar amb adreces del tipus "legacy".</translation>
         <source>%1 client</source>
         <translation type="unfinished">Client de %1</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Amaga</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts
index 497d17b022f..3a310a8f056 100644
--- a/src/qt/locale/bitcoin_cs.ts
+++ b/src/qt/locale/bitcoin_cs.ts
@@ -259,6 +259,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Přeješ si obnovit výchozí nastavení, nebo odejít bez ukládání změn?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Nastala závažná chyba. Ověř zda-li je možné do souboru s nastavením zapisovat a nebo vyzkoušej aplikaci spustit s parametrem -nosettings.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Chyba: Zadaný adresář pro data „%1“ neexistuje.</translation>
@@ -341,41 +351,41 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n sekund</numerusform>
+            <numerusform>%n sekundy</numerusform>
+            <numerusform>%n sekund</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minuta</numerusform>
+            <numerusform>%n minuty</numerusform>
+            <numerusform>%n minut</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hodina</numerusform>
+            <numerusform>%n hodiny</numerusform>
+            <numerusform>%n hodin</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n dn</numerusform>
+            <numerusform>%n dny</numerusform>
+            <numerusform>%n dní</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n týden</numerusform>
+            <numerusform>%n týdny</numerusform>
+            <numerusform>%n týdnů</numerusform>
         </translation>
     </message>
     <message>
@@ -385,14 +395,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n rok</numerusform>
+            <numerusform>%n roky</numerusform>
+            <numerusform>%n let</numerusform>
         </translation>
     </message>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Soubor s nastavením není možné přečíst</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Do souboru s nastavením není možné zapisovat</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">Vývojáři %s</translation>
@@ -425,6 +443,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Nastala chyba při čtení souboru %s! Všechny klíče se přečetly správně, ale data o transakcích nebo záznamy v adresáři mohou chybět či být nesprávné.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Chyba při čtení %s! Data o transakci mohou chybět a nebo být chybná.
+Ověřuji peněženku.</translation>
+    </message>
     <message>
         <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
         <translation type="unfinished">Chyba: záznam formátu souboru výpisu je nesprávný. Získáno "%s", očekáváno "format".</translation>
@@ -457,6 +480,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">Neplatná částka pro -maxtxfee=&lt;amount&gt;: '%s' (musí být alespoň jako poplatek minrelay %s, aby transakce nezůstávaly trčet)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">Neplatný nebo poškozený soubor peers.dat (%s). Pokud věříš, že se jedná o chybu, prosím nahlas ji na %s. Jako řešení lze přesunout soubor (%s) z cesty (přejmenovat, přesunout nebo odstranit), aby se při dalším spuštění vytvořil nový.</translation>
+    </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
         <translation type="unfinished">Byla zadána více než jedna onion adresa. Použiju %s pro automaticky vytvořenou službu sítě Tor.</translation>
@@ -497,6 +524,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">Databáze bloků obsahuje blok, který vypadá jako z budoucnosti, což může být kvůli špatně nastavenému datu a času na tvém počítači. Nech databázi bloků přestavět pouze v případě, že si jsi jistý, že máš na počítači správný datum a čas</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">Databáze indexu bloků obsahuje starší 'txindex'. Pro vyčištění obsazeného místa na disku, spusťte úplný -reindex, v opačném případě tuto chybu ignorujte. Tato chybová zpráva nebude znovu zobrazena.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">Částka v transakci po odečtení poplatku je příliš malá na odeslání</translation>
@@ -569,6 +600,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">Nemohu přeložit -%s adresu: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">Nelze nastavit -forcednsseed na hodnotu true, když je nastaveno -dnsseed na hodnotu false.</translation>
+    </message>
     <message>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">Nelze nastavit -peerblockfilters bez -blockfilterindex.</translation>
@@ -577,6 +612,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Není možné zapisovat do adresáře ' %s'; zkontrolujte oprávnění.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">Aktualizaci -txindex zahájenou předchozí verzí není možné dokončit. Restartujte s předchozí verzí a nebo spusťte úplný -reindex.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s požadavek pro naslouchání na portu %u. Tento port je považován za "špatný" a z tohoto důvodu je nepravděpodobné, že by se k němu připojovali některé uzly Bitcoin Core. Podrobnosti a úplný seznam špatných portů nalezneš v dokumentu doc/p2p-bad-ports.md</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Nelze poskytovat konkrétní spojení a zároveň mít vyhledávání addrman odchozích spojení ve stejný čas.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Chyba při načtení %s: Externí podepisovací peněženka se načítá bez zkompilované podpory externího podpisovatele.</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Nelze přejmenovat neplatný peers.dat soubor. Prosím přesuňte jej, nebo odstraňte a zkuste znovu.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Odchozí spojení omezená na Tor (-onlynet=onion), ale proxy server pro přístup do sítě Tor není poskytnut (není zadán parametr -proxy= a -onion=) nebo je výslovně zakázán (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Nastavení pro %s je nastaveno pouze na síťi %s pokud jste v sekci [%s]</translation>
@@ -733,6 +792,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">Selhala úvodní zevrubná prověrka. %s se ukončuje.</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Vstup nenalezen a nebo je již utracen</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Nedostatek prostředků</translation>
@@ -789,10 +852,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Loading wallet…</source>
         <translation type="unfinished">Načítám peněženku...</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Chybějící částka</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">Chybí data pro vyřešení odhadnutí velikosti transakce</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">V rámci -whitebind je třeba specifikovat i port: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Není k dispozici žádná adresa</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Není specifikován proxy server. Použijte -proxy=&lt;ip&gt; nebo -proxy=&lt;ip:port&gt;.</translation>
@@ -909,6 +984,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Částky v transakci nemohou být záporné</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Výstupní index změny transakce mimo rozsah</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">Transakce má v transakčním zásobníku příliš dlouhý řetězec</translation>
@@ -917,6 +996,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">Transakce musí mít alespoň jednoho příjemce</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Transakce potřebuje změnu adresy, ale ta se nepodařila vygenerovat.</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">Transakce je příliš velká</translation>
@@ -945,6 +1028,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to open %s for writing</source>
         <translation type="unfinished">Nelze otevřít %s pro zápis</translation>
     </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">Nelze rozebrat -maxuploadtarget: '%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Nemohu spustit HTTP server. Detaily viz v debug.log.</translation>
@@ -1044,6 +1131,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create a new wallet</source>
         <translation type="unfinished">Vytvoř novou peněženku</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Minimalizovat</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Peněženka:</translation>
@@ -1192,9 +1283,9 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Zpracován %n blok transakční historie.</numerusform>
+            <numerusform>Zpracovány %n bloky transakční historie.</numerusform>
+            <numerusform>Zpracováno %n bloků transakční historie.</numerusform>
         </translation>
     </message>
     <message>
@@ -1233,6 +1324,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Načíst částečně podepsanou Bitcoinovou transakci</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Načíst PSBT ze &amp;schránky</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Načíst částečně podepsanou Bitcoinovou transakci ze schránky</translation>
@@ -1309,13 +1404,21 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 klient</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">Skryj</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">Zobraz</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n aktivní spojení s Bitcoinovou sítí.</numerusform>
+            <numerusform>%n aktivní spojení s Bitcoinovou sítí.</numerusform>
+            <numerusform>%n aktivních spojení s Bitcoinovou sítí.</numerusform>
         </translation>
     </message>
     <message>
@@ -1508,6 +1611,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">Zkopírovat &amp;částku</translation>
     </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Zkopíruj &amp;ID transakce a výstupní index</translation>
+    </message>
     <message>
         <source>L&amp;ock unspent</source>
         <translation type="unfinished">&amp;zamknout neutracené</translation>
@@ -1598,6 +1705,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">Nelze vypsat podepisovatele</translation>
     </message>
 </context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Načíst peněženky</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Načítám peněženky...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1798,6 +1918,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB místa k dispozici</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(z požadovaných %1 GB )</translation>
@@ -1814,9 +1938,9 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>(Dostačující k obnovení záloh %n den staré)</numerusform>
+            <numerusform>(Dostačující k obnovení záloh %n dny staré)</numerusform>
+            <numerusform>(Dostačující k obnovení záloh %n dnů staré)</numerusform>
         </translation>
     </message>
     <message>
@@ -2047,13 +2171,43 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Obnovení tohoto nastavení vyžaduje opětovné stažení celého blockchainu.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Maximální velikost vyrovnávací paměti databáze. Větší vyrovnávací paměť může přispět k rychlejší synchronizaci, avšak přínos pro většinu případů použití je méně výrazný. Snížení velikosti vyrovnávací paměti sníží využití paměti. Nevyužívaná paměť mempoolu je pro tuto vyrovnávací paměť sdílená.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Nastaví počet vláken pro ověřování skriptů. Negativní hodnota odpovídá počtu jader procesoru, které chcete ponechat volné pro systém. </translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = automaticky, &lt;0 = nechat daný počet jader volný, výchozí: 0)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Toto povolí tobě nebo nástrojům třetích stran komunikovat pomocí uzlu skrz příkazový řádek a JSON-RPC příkazy.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Povolit R&amp;PC server</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
-        <translation type="unfinished">P&amp;eněženka</translation>
+        <translation type="unfinished">&amp;Peněženka</translation>
+    </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Zda nastavit odečtení poplatku od částky jako výchozí či nikoliv.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Odečíst &amp;poplatek od výchozí částky</translation>
     </message>
     <message>
         <source>Expert</source>
@@ -2071,6 +2225,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Utrácet i ještě nepotvrzené drobné</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Povolit &amp;PSBT kontrolu</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Zobrazit ovládací prvky PSBT.</translation>
+    </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
         <translation type="unfinished">Externí podepisovatel (například hardwarová peněženka)</translation>
@@ -2097,7 +2261,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Map port using NA&amp;T-PMP</source>
-        <translation type="unfinished">Namapovat port s využitím NA&amp;T-PMP.</translation>
+        <translation type="unfinished">Namapovat port s využitím &amp;NAT-PMP.</translation>
     </message>
     <message>
         <source>Accept connections from outside.</source>
@@ -2105,7 +2269,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Allow incomin&amp;g connections</source>
-        <translation type="unfinished">Přijí&amp;mat příchozí spojení</translation>
+        <translation type="unfinished">&amp;Přijímat příchozí spojení</translation>
     </message>
     <message>
         <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
@@ -2175,6 +2339,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Zvol výchozí podjednotku, která se bude zobrazovat v programu a při posílání mincí.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">URL třetích stran (např. block exploreru), která se zobrazí v kontextovém menu v záložce Transakce. %s v URL se nahradí hashem transakce. Více URL odděl svislítkem |.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;URL třetích stran pro transakce</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Zda ukazovat možnosti pro ruční správu mincí nebo ne.</translation>
@@ -2246,6 +2418,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">Konfigurační soubor slouží k nastavování uživatelsky pokročilých možností, které mají přednost před konfigurací z GUI. Parametry z příkazové řádky však mají před konfiguračním souborem přednost.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Pokračovat</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Zrušit</translation>
@@ -2376,6 +2552,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Nepodařilo se podepsat transakci: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Nelze podepsat vstup, když je peněženka uzamčena.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Nelze podepsat další vstupy.</translation>
@@ -2449,6 +2629,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Transakce stále potřebuje podpis(y).</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Ale žádná peněženka není načtená.)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Ale tato peněženka nemůže podepisovat transakce.)</translation>
@@ -2701,6 +2885,10 @@ Pokud vidíte tuto chybu, měli byste požádat, aby obchodník poskytl adresu k
         <source>Synced Blocks</source>
         <translation type="unfinished">Aktuálně bloků</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Poslední transakce</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">Mapovaný nezávislý - Autonomní Systém používaný pro rozšírení vzájemného výběru protějsků.</translation>
@@ -2709,6 +2897,33 @@ Pokud vidíte tuto chybu, měli byste požádat, aby obchodník poskytl adresu k
         <source>Mapped AS</source>
         <translation type="unfinished">Mapovaný AS</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Zda předáváme adresy tomuto uzlu.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Přenášení adres</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Celkový počet zpracovaných adres, vyjma těch, které byly zahozeny z důvodu omezení ovládání toku provozu.</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Zpracováno adres</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Celkový počet adres zahozených z důvodu omezení ovládání toku provozu.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Adresy s omezením počtu přijatých adres</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Typ klienta</translation>
@@ -2917,6 +3132,11 @@ Pokud vidíte tuto chybu, měli byste požádat, aby obchodník poskytl adresu k
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;rok</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Zkopíruj IP/Masku</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Odblokuj</translation>
@@ -3424,6 +3644,16 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">Zkontrolujte prosím svůj návrh transakce. Výsledkem bude částečně podepsaná bitcoinová transakce (PSBT), kterou můžete uložit nebo kopírovat a poté podepsat např. pomocí offline %1 peněženky nebo hardwarové peněženky kompatibilní s PSBT.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Přejete si vytvořit tuto transakci?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Prosím ověř svojí transakci. Můžeš vytvořit a odeslat tuto transakci nebo vytvořit Částečně Podepsanou Bitcoinovou Transakci (PSBT), kterou můžeš uložit nebo zkopírovat a poté podepsat např. v offline %1 peněžence, nebo hardwarové peněžence kompatibilní s PSBT.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3484,9 +3714,9 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Potvrzování by podle odhadu mělo začít během %n bloku.</numerusform>
+            <numerusform>Potvrzování by podle odhadu mělo začít během %n bloků.</numerusform>
+            <numerusform>Potvrzování by podle odhadu mělo začít během %n bloků.</numerusform>
         </translation>
     </message>
     <message>
@@ -3745,7 +3975,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>(press q to shutdown and continue later)</source>
         <translation type="unfinished">(stiskni q pro ukončení a pokračování později)</translation>
     </message>
-    </context>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">stiskněte q pro vypnutí</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -3823,9 +4057,9 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>dozraje za %n další blok</numerusform>
+            <numerusform>dozraje za %n další bloky</numerusform>
+            <numerusform>dozraje za %n dalších bloků</numerusform>
         </translation>
     </message>
     <message>
@@ -4109,6 +4343,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>&amp;Edit address label</source>
         <translation type="unfinished">&amp;Upravit označení adresy</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Zobraz v %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Exportuj transakční historii</translation>
diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts
index b854332792a..aaac51101ff 100644
--- a/src/qt/locale/bitcoin_da.ts
+++ b/src/qt/locale/bitcoin_da.ts
@@ -621,6 +621,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">Fejlindlæsning %s: Ekstern underskriver-tegnebog indlæses uden ekstern underskriverunderstøttelse kompileret</translation>
     </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Kunne ikke omdøbe ugyldig peers.dat fil. Flyt eller slet den venligst og prøv igen.</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Opsætningen af %s bliver kun udført på %s-netværk under [%s]-sektionen.</translation>
diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts
index 1f11482969c..e0a058c2309 100644
--- a/src/qt/locale/bitcoin_de.ts
+++ b/src/qt/locale/bitcoin_de.ts
@@ -333,7 +333,7 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
     <message>
         <source>Manual</source>
         <extracomment>Peer connection type established manually through one of several methods.</extracomment>
-        <translation type="unfinished">Anleitung</translation>
+        <translation type="unfinished">Manuell</translation>
     </message>
     <message>
         <source>Feeler</source>
@@ -364,36 +364,36 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n Sekunde(n)</numerusform>
+            <numerusform>%n Sekunde(n)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n Minute(n)</numerusform>
+            <numerusform>%n Minute(n)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%nStunde(n)</numerusform>
+            <numerusform>%nStunde(n)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%nTag(e)</numerusform>
+            <numerusform>%nTag(e)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n Woche(n)</numerusform>
+            <numerusform>%n Woche(n)</numerusform>
         </translation>
     </message>
     <message>
@@ -403,8 +403,8 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n Jahr(e)</numerusform>
+            <numerusform>%n Jahr(e)</numerusform>
         </translation>
     </message>
     </context>
@@ -450,6 +450,10 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Lesen von %s fehlgeschlagen! Alle Schlüssel wurden korrekt gelesen, Transaktionsdaten bzw. Adressbucheinträge fehlen aber möglicherweise oder sind inkorrekt.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Fehler beim Lesen von %s! Transaktionsdaten fehlen oder sind nicht korrekt. Wallet wird erneut gescannt.</translation>
+    </message>
     <message>
         <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
         <translation type="unfinished">Fehler: Dumpdatei Format Eintrag ist Ungültig. Habe "%s" bekommen, aber "format" erwartet.</translation>
@@ -482,6 +486,10 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">Ungültiger Betrag für -maxtxfee=&lt;amount&gt;: '%s' (muss mindestens die minimale Weiterleitungsgebühr in Höhe von %s sein, um zu verhindern, dass Transaktionen nicht bearbeitet werden)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">Ungültige oder beschädigte peers.dat (%s). Wenn Sie glauben, dass dies ein Fehler ist, melden Sie ihn bitte an %s. Zur Abhilfe können Sie die Datei (%s) aus dem Weg räumen (umbenennen, verschieben oder löschen), so dass beim nächsten Start eine neue Datei erstellt wird.</translation>
+    </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
         <translation type="unfinished">Mehr als eine Onion-Bindungsadresse angegeben. Verwende %s für den automatisch erstellten Tor-Onion-Dienst.</translation>
@@ -522,6 +530,10 @@ Das Signieren ist nur mit Adressen vom Typ 'Legacy' möglich.</translation>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">Die Block-Datenbank enthält einen Block, der in der Zukunft auftaucht. Dies kann daran liegen, dass die Systemzeit Ihres Computers falsch eingestellt ist. Stellen Sie die Block-Datenbank nur wieder her, wenn Sie sich sicher sind, dass Ihre Systemzeit korrekt eingestellt ist.</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">Die Blockindexdatenbank enthält einen veralteten 'txindex'. Um den belegten Speicherplatz frei zu geben, führen Sie ein vollständiges -reindex aus, ansonsten ignorieren Sie diesen Fehler. Diese Fehlermeldung wird nicht noch einmal angezeigt.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">Der Transaktionsbetrag ist zu klein, um ihn nach Abzug der Gebühr zu senden.</translation>
@@ -611,10 +623,26 @@ Bitte nutzen Sie entweder "bdb" oder "sqlite".</translation>
         <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
         <translation type="unfinished">Das von einer früheren Version gestartete -txindex-Upgrade kann nicht abgeschlossen werden. Starten Sie mit der vorherigen Version neu oder führen Sie ein vollständiges -reindex aus.</translation>
     </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s Aufforderung, auf Port %u zu lauschen. Dieser Port wird als "schlecht" eingeschätzt und es ist daher unwahrscheinlich, dass sich Bitcoin Core Peers mit ihm verbinden. Siehe doc/p2p-bad-ports.md für Details und eine vollständige Liste.</translation>
+    </message>
     <message>
         <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
         <translation type="unfinished">Es ist nicht möglich, bestimmte Verbindungen anzubieten und gleichzeitig addrman ausgehende Verbindungen finden zu lassen.</translation>
     </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Fehler beim Laden von %s: Externe Unterzeichner-Brieftasche wird geladen, ohne dass die Unterstützung für externe Unterzeichner kompiliert wurde</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Kann ungültige Datei peers.dat nicht umbenennen. Bitte Verschieben oder Löschen und noch einmal versuchen.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Ausgehende Verbindungen sind eingeschränkt auf Tor (-onlynet=onion), aber der Proxy, um das Tor-Netzwerk zu erreichen ist nicht vorhanden (no -proxy= and no -onion= given) oder ausdrücklich verboten (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Konfigurationseinstellungen für %s sind nur auf %s network gültig, wenn in Sektion [%s]</translation>
@@ -1006,6 +1034,10 @@ Verifikations-Error: %s</translation>
         <source>Unable to open %s for writing</source>
         <translation type="unfinished">Unfähig %s zum Schreiben zu öffnen</translation>
     </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">Kann -maxuploadtarget: '%s' nicht parsen</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Kann HTTP-Server nicht starten. Siehe Debug-Log für Details.</translation>
@@ -1128,7 +1160,7 @@ Verifikations-Error: %s</translation>
     </message>
     <message>
         <source>Backup wallet to another location</source>
-        <translation type="unfinished">Eine Wallet-Sicherungskopie erstellen und abspeichern</translation>
+        <translation type="unfinished">Wallet an einem anderen Ort sichern</translation>
     </message>
     <message>
         <source>Change the passphrase used for wallet encryption</source>
@@ -1257,8 +1289,8 @@ Verifikations-Error: %s</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform> %n Blöcke der Transaktionshistorie verarbeitet.</numerusform>
+            <numerusform> %n Blöcke der Transaktionshistorie verarbeitet.</numerusform>
         </translation>
     </message>
     <message>
@@ -1297,6 +1329,10 @@ Verifikations-Error: %s</translation>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Lade teilsignierte Bitcoin-Transaktion</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">PSBT von &amp;Zwischenablage laden...</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Lade teilsignierte Bitcoin-Transaktion aus Zwischenablage</translation>
@@ -1373,12 +1409,20 @@ Verifikations-Error: %s</translation>
         <source>%1 client</source>
         <translation type="unfinished">%1 Client</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Ausblenden</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">S&amp;Wie</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n aktive Verbindung zum Bitcoin-Netzwerk.</numerusform>
+            <numerusform>%n aktive Verbindungen zum Bitcoin-Netzwerk.</numerusform>
         </translation>
     </message>
     <message>
@@ -1902,8 +1946,8 @@ Verifikations-Error: %s</translation>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(ausreichend um %n Tag(e) alte Backups wiederherzustellen)</numerusform>
+            <numerusform>(ausreichend um %n Tag(e) alte Backups wiederherzustellen)</numerusform>
         </translation>
     </message>
     <message>
@@ -2154,6 +2198,16 @@ Verifikations-Error: %s</translation>
         <source>W&amp;allet</source>
         <translation type="unfinished">B&amp;rieftasche</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Wählen Sie, ob die Gebühr standardmäßig vom Betrag abgezogen werden soll oder nicht.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Standardmäßig die Gebühr vom Betrag abziehen</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Experten-Optionen</translation>
@@ -2170,6 +2224,16 @@ Verifikations-Error: %s</translation>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Unbestätigtes Wechselgeld darf ausgegeben werden</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">&amp;PBST-Kontrollen aktivieren</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Ob PSBT-Kontrollen angezeigt werden sollen. </translation>
+    </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
         <translation type="unfinished">Gerät für externe Signierung (z. B.: Hardware wallet)</translation>
@@ -2270,6 +2334,14 @@ Verifikations-Error: %s</translation>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Wählen Sie die standardmäßige Untereinheit, die in der Benutzeroberfläche und beim Überweisen von Bitcoins angezeigt werden soll.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">URLs von Drittanbietern (z. B. eines Block-Explorers), erscheinen als Kontextmenüpunkte auf der Registerkarte. 1%s in der URL wird durch den Transaktionshash ersetzt. Mehrere URLs werden durch senkrechte Striche | getrennt.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;Transaktions-URLs von Drittanbietern</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Legt fest, ob die "Coin Control"-Funktionen angezeigt werden.</translation>
@@ -2807,6 +2879,15 @@ Wenn Sie diese Fehlermeldung erhalten, sollten Sie den Händler bitten, einen BI
         <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
         <translation type="unfinished">Ob wir Adressen an diese Gegenstelle weiterleiten.</translation>
     </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Adress-Relay</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Gesamtzahl der Adressen, die wegen Ratenbeschränkung verworfen wurden.</translation>
+    </message>
     <message>
         <source>Addresses Processed</source>
         <translation type="unfinished">Verarbeitete Adressen</translation>
@@ -2816,6 +2897,10 @@ Wenn Sie diese Fehlermeldung erhalten, sollten Sie den Händler bitten, einen BI
         <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
         <translation type="unfinished">Gesamtzahl der Adressen, die wegen Ratenbeschränkungen verworfen wurden.</translation>
     </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Ratenbeschränkte Adressen</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">User-Agent</translation>
@@ -3562,6 +3647,11 @@ Hinweis: Da die Gebühr auf Basis der Bytes berechnet wird, führt eine Gebühre
         <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
         <translation type="unfinished">Möchtest du diese Transaktion erstellen?</translation>
     </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Bitte überprüfen Sie Ihre Transaktion. Sie können diese Transaktion erstellen und versenden oder eine Partially Signed Bitcoin Transaction (PSBT) erstellen, die Sie speichern oder kopieren und dann z.B. mit einer offline %1 Wallet oder einer PSBT-kompatiblen Hardware-Wallet signieren können.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3622,8 +3712,8 @@ Hinweis: Da die Gebühr auf Basis der Bytes berechnet wird, führt eine Gebühre
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Beginnt voraussichtlich in %n Block mit der Bestätigung.</numerusform>
+            <numerusform>Beginnt voraussichtlich in %n Blöcken mit der Bestätigung.</numerusform>
         </translation>
     </message>
     <message>
@@ -3952,8 +4042,8 @@ Hinweis: Da die Gebühr auf Basis der Bytes berechnet wird, führt eine Gebühre
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>reift noch %n weiteren Block</numerusform>
+            <numerusform>reift noch %n weitere Blöcke.</numerusform>
         </translation>
     </message>
     <message>
@@ -4249,6 +4339,11 @@ Hinweis: Da die Gebühr auf Basis der Bytes berechnet wird, führt eine Gebühre
         <source>&amp;Edit address label</source>
         <translation type="unfinished">Adressbezeichnung bearbeiten</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Zeige in %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Transaktionsverlauf exportieren</translation>
diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts
index 993a77a8a48..16b8e7325f8 100644
--- a/src/qt/locale/bitcoin_el.ts
+++ b/src/qt/locale/bitcoin_el.ts
@@ -327,6 +327,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Peer connection type established manually through one of several methods.</extracomment>
         <translation type="unfinished">Χειροκίνητα</translation>
     </message>
+    <message>
+        <source>Address Fetch</source>
+        <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
+        <translation type="unfinished">Λήψη Διεύθυνσης</translation>
+    </message>
     <message>
         <source>None</source>
         <translation type="unfinished">Κανένα</translation>
@@ -708,6 +713,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Πρέπει να καθορίσετε μια θύρα με -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Καμμία διαθέσιμη διεύθυνση</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Δεν ορίστηκε διακομιστής μεσολάβησης. Χρησιμοποιήστε -proxy=&lt;ip&gt; ή -proxy=&lt;ip:port&gt;.</translation>
@@ -732,6 +741,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Rescanning…</source>
         <translation type="unfinished">Σάρωση εκ νέου...</translation>
     </message>
+    <message>
+        <source>SQLiteDatabase: Failed to execute statement to verify database: %s</source>
+        <translation type="unfinished">SQLite βάση δεδομένων: Απέτυχε η εκτέλεση της δήλωσης για την επαλήθευση της βάσης δεδομένων: %s</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Failed to prepare statement to verify database: %s</source>
+        <translation type="unfinished">SQLite βάση δεδομένων: Απέτυχε η προετοιμασία της δήλωσης για την επαλήθευση της βάσης δεδομένων: %s</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Failed to read database verification error: %s</source>
+        <translation type="unfinished">SQLite βάση δεδομένων: Απέτυχε η ανάγνωση της επαλήθευσης του σφάλματος της βάσης δεδομένων: %s</translation>
+    </message>
     <message>
         <source>SQLiteDatabase: Unexpected application id. Expected %u, got %u</source>
         <translation type="unfinished">SQLiteDatabase: Μη αναμενόμενο αναγνωριστικό εφαρμογής. Αναμενόταν: %u, ελήφθη: %u</translation>
@@ -760,6 +781,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Specified blocks directory "%s" does not exist.</source>
         <translation type="unfinished">Δεν υπάρχει κατάλογος καθορισμένων μπλοκ "%s".</translation>
     </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">Εκκίνηση των threads δικτύου...</translation>
+    </message>
     <message>
         <source>The source code is available from %s.</source>
         <translation type="unfinished"> Ο πηγαίος κώδικας είναι διαθέσιμος από το %s.</translation>
@@ -848,6 +873,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unknown network specified in -onlynet: '%s'</source>
         <translation type="unfinished">Έχει οριστεί άγνωστo δίκτυο στο -onlynet: '%s'</translation>
     </message>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished">Ενεργοποιήθηκαν άγνωστοι νέοι κανόνες (bit έκδοσης %i)</translation>
+    </message>
     <message>
         <source>Unsupported logging category %s=%s.</source>
         <translation type="unfinished">Μη υποστηριζόμενη κατηγορία καταγραφής %s=%s.</translation>
@@ -860,6 +889,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>User Agent comment (%s) contains unsafe characters.</source>
         <translation type="unfinished">Το σχόλιο του παράγοντα χρήστη (%s) περιέχει μη ασφαλείς χαρακτήρες.</translation>
     </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">Επαλήθευση των blocks…</translation>
+    </message>
     <message>
         <source>Verifying wallet(s)…</source>
         <translation type="unfinished">Επαλήθευση πορτοφολιού/ιών...</translation>
@@ -1191,6 +1224,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 πελάτης</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">$Απόκρυψη</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">Ε&amp;μφάνιση</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -1393,6 +1434,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>L&amp;ock unspent</source>
         <translation type="unfinished">L&amp;ock διαθέσιμο</translation>
     </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">&amp;Ξεκλείδωμα διαθέσιμου υπολοίπου</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Αντιγραφή ποσότητας</translation>
@@ -1586,6 +1631,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Descriptor Wallet</source>
         <translation type="unfinished">Πορτοφόλι Περιγραφέα </translation>
     </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Χρησιμοποιήστε μια εξωτερική συσκευή υπογραφής, όπως ένα πορτοφόλι υλικού. Ρυθμίστε πρώτα στις προτιμήσεις του πορτοφολιού το εξωτερικό script υπογραφής.</translation>
+    </message>
     <message>
         <source>External signer</source>
         <translation type="unfinished">Εξωτερικός υπογράφων</translation>
@@ -1598,7 +1647,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Compiled without sqlite support (required for descriptor wallets)</source>
         <translation type="unfinished">Μεταγλωτίστηκε χωρίς την υποστήριξη sqlite (απαραίτητη για περιγραφικά πορτοφόλια )</translation>
     </message>
-    </context>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Συντάχθηκε χωρίς την υποστήριξη εξωτερικής υπογραφής (απαιτείται για εξωτερική υπογραφή)</translation>
+    </message>
+</context>
 <context>
     <name>EditAddressDialog</name>
     <message>
@@ -1927,6 +1981,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = αυτόματο, &lt;0 = ελεύθεροι πυρήνες)</translation>
     </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Ενεργοποίηση R&amp;PC σέρβερ</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">Π&amp;ορτοφόλι</translation>
@@ -1947,6 +2006,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Ξόδεμα μη επικυρωμένων ρέστων</translation>
     </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">Εξωτερική συσκευή υπογραφής (π.χ. πορτοφόλι υλικού)</translation>
+    </message>
     <message>
         <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
         <translation type="unfinished">Πλήρης διαδρομή ενός script συμβατού με το Bitcoin Core (π.χ.: C:\Downloads\hwi.exe ή /Users/you/Downloads/hwi.py). Προσοχή: το κακόβουλο λογισμικό μπορεί να κλέψει τα νομίσματά σας!</translation>
@@ -1959,6 +2022,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">Απόδοση θυρών με χρήση &amp;UPnP</translation>
     </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
+        <translation type="unfinished">Ανοίξτε αυτόματα τη πόρτα του Bitcoin client στο router. Αυτό λειτουργεί μόνο όταν το router σας υποστηρίζει NAT-PMP και είναι ενεργοποιημένο. Η εξωτερική πόρτα μπορεί να είναι τυχαία.</translation>
+    </message>
     <message>
         <source>Map port using NA&amp;T-PMP</source>
         <translation type="unfinished">Δρομολόγηση θύρας με χρήση NA&amp;T-PMP</translation>
@@ -2055,6 +2122,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>embedded "%1"</source>
         <translation type="unfinished">ενσωματωμένο "%1"</translation>
     </message>
+    <message>
+        <source>closest matching "%1"</source>
+        <translation type="unfinished">πλησιέστερη αντιστοίχιση "%1"</translation>
+    </message>
     <message>
         <source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
         <translation type="unfinished">Οι επιλογές που έχουν οριστεί σε αυτό το παράθυρο διαλόγου παραβλέπονται από τη γραμμή εντολών ή από το αρχείο διαμόρφωσης:</translation>
@@ -2067,6 +2138,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Cancel</source>
         <translation type="unfinished">&amp;Ακύρωση</translation>
     </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Συντάχθηκε χωρίς την υποστήριξη εξωτερικής υπογραφής (απαιτείται για εξωτερική υπογραφή)</translation>
+    </message>
     <message>
         <source>default</source>
         <translation type="unfinished">προεπιλογή</translation>
@@ -2098,6 +2174,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">Το αρχείο ρυθμίσεων χρησιμοποιείται για τον προσδιορισμό των προχωρημένων επιλογών χρηστών που παρακάμπτουν τις ρυθμίσεις GUI. Επιπλέον, όλες οι επιλογές γραμμής εντολών θα αντικαταστήσουν αυτό το αρχείο ρυθμίσεων.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Συνεχίστε</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Ακύρωση</translation>
@@ -2306,6 +2386,10 @@ ID Συναλλαγής: %1</translation>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Η συναλλαγή απαιτεί υπογραφή/ές</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Δεν έχει γίνει φόρτωση πορτοφολιού)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Αλλά αυτό το πορτοφόλι δεν μπορεί να υπογράψει συναλλαγές.)</translation>
@@ -2545,6 +2629,10 @@ ID Συναλλαγής: %1</translation>
         <source>Synced Blocks</source>
         <translation type="unfinished">Συγχρονισμένα Μπλοκς</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Τελευταία Συναλλαγή</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">Το χαρτογραφημένο Αυτόνομο Σύστημα που χρησιμοποιείται για τη διαφοροποίηση της επιλογής ομοτίμων.</translation>
@@ -2601,6 +2689,10 @@ ID Συναλλαγής: %1</translation>
         <source>Connection Time</source>
         <translation type="unfinished">Χρόνος σύνδεσης</translation>
     </message>
+    <message>
+        <source>Last Block</source>
+        <translation type="unfinished">Τελευταίο Block</translation>
+    </message>
     <message>
         <source>Last Send</source>
         <translation type="unfinished">Τελευταία αποστολή</translation>
@@ -2665,6 +2757,11 @@ ID Συναλλαγής: %1</translation>
         <source>Out:</source>
         <translation type="unfinished">Εξερχόμενα:</translation>
     </message>
+    <message>
+        <source>Inbound: initiated by peer</source>
+        <extracomment>Explanatory text for an inbound peer connection.</extracomment>
+        <translation type="unfinished">Εισερχόμενo: Ξεκίνησε από peer</translation>
+    </message>
     <message>
         <source>the peer selected us for high bandwidth relay</source>
         <translation type="unfinished">ο ομότιμος μας επέλεξε για υψηλής ταχύτητας αναμετάδοση </translation>
@@ -2690,6 +2787,11 @@ ID Συναλλαγής: %1</translation>
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;χρόνος</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Αντιγραφή IP/Netmask</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Ακύρωση Απαγόρευσης</translation>
@@ -3142,6 +3244,10 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>%1 to %2</source>
         <translation type="unfinished">%1 προς το %2</translation>
     </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">Για να αναθεωρήσετε τη λίστα παραληπτών, κάντε κλικ στην επιλογή "Εμφάνιση λεπτομερειών..."</translation>
+    </message>
     <message>
         <source>Sign failed</source>
         <translation type="unfinished">H εγγραφή απέτυχε</translation>
@@ -3164,6 +3270,10 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>PSBT saved</source>
         <translation type="unfinished">Το PSBT αποθηκεύτηκε</translation>
     </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">Εξωτερικό υπόλοιπο:</translation>
+    </message>
     <message>
         <source>or</source>
         <translation type="unfinished">ή</translation>
@@ -3177,6 +3287,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">Παρακαλούμε, ελέγξτε την πρόταση συναλλαγής. Θα παραχθεί μια συναλλαγή Bitcoin με μερική υπογραφή (PSBT), την οποία μπορείτε να αντιγράψετε και στη συνέχεια να υπογράψετε με π.χ. ένα πορτοφόλι %1 εκτός σύνδεσης ή ένα πορτοφόλι υλικού συμβατό με το PSBT.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Θέλετε να δημιουργήσετε αυτήν τη συναλλαγή;</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3488,6 +3603,17 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <translation type="unfinished">Το μήνυμα επαληθεύτηκε.</translation>
     </message>
 </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>(press q to shutdown and continue later)</source>
+        <translation type="unfinished">(πατήστε q για κλείσιμο και συνεχίστε αργότερα)</translation>
+    </message>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">πατήστε q για κλείσιμο</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts
index 144b685f1bf..26d5ed30641 100644
--- a/src/qt/locale/bitcoin_es.ts
+++ b/src/qt/locale/bitcoin_es.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Haz clic derecho para editar la dirección o etiqueta </translation>
+        <translation type="unfinished">Haz clic derecho para editar la dirección o etiqueta</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -23,11 +23,11 @@
     </message>
     <message>
         <source>C&amp;lose</source>
-        <translation type="unfinished">Cerrar</translation>
+        <translation type="unfinished">C&amp;errar</translation>
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
-        <translation type="unfinished">Borrar de la lista la dirección seleccionada</translation>
+        <translation type="unfinished">Eliminar de la lista la dirección actualmente seleccionada</translation>
     </message>
     <message>
         <source>Enter address or label to search</source>
@@ -43,7 +43,7 @@
     </message>
     <message>
         <source>&amp;Delete</source>
-        <translation type="unfinished">&amp;Borrar</translation>
+        <translation type="unfinished">E&amp;liminar</translation>
     </message>
     <message>
         <source>Choose the address to send coins to</source>
@@ -55,7 +55,7 @@
     </message>
     <message>
         <source>C&amp;hoose</source>
-        <translation type="unfinished">Escoger</translation>
+        <translation type="unfinished">E&amp;scoger</translation>
     </message>
     <message>
         <source>Sending addresses</source>
@@ -67,13 +67,13 @@
     </message>
     <message>
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
-        <translation type="unfinished">Estas son tus direcciones Bitcoin para enviar pagos. Comprueba siempre la cantidad y la dirección de recibo antes de transferir monedas.</translation>
+        <translation type="unfinished">Estas son tus direcciones Bitcoin para enviar pagos. Comprueba siempre el importe y la dirección de recibo antes de transferir monedas.</translation>
     </message>
     <message>
         <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
 Signing is only possible with addresses of the type 'legacy'.</source>
-        <translation type="unfinished">Estas son tus direcciones Bitcoin para la recepción de pagos. Usa el botón 'Crear una nueva dirección para recepción' en la pestaña Recibir para crear nuevas direcciones.
-Firmar solo es posible con direcciones del tipo Legacy.</translation>
+        <translation type="unfinished">Estas son tus direcciones Bitcoin para la recepción de pagos. Usa el botón «Crear una nueva dirección para recepción» en la pestaña Recibir para crear nuevas direcciones.
+Firmar solo es posible con direcciones del tipo «Legacy».</translation>
     </message>
     <message>
         <source>&amp;Copy Address</source>
@@ -81,7 +81,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Copy &amp;Label</source>
-        <translation type="unfinished">Copiar &amp;Etiqueta</translation>
+        <translation type="unfinished">Copiar &amp;etiqueta</translation>
     </message>
     <message>
         <source>&amp;Edit</source>
@@ -89,12 +89,12 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Export Address List</source>
-        <translation type="unfinished">Exportar la Lista de Direcciones</translation>
+        <translation type="unfinished">Exportar la lista de direcciones</translation>
     </message>
     <message>
         <source>Comma separated file</source>
         <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
-        <translation type="unfinished">Archivos separados por comas</translation>
+        <translation type="unfinished">Archivo separado por comas</translation>
     </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
@@ -165,7 +165,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
-        <translation type="unfinished">Atención: Si cifras tu monedero y pierdes la contraseña, perderás ¡&lt;b&gt;TODOS TUS BITCOINS&lt;/b&gt;!</translation>
+        <translation type="unfinished">Atención: Si cifras tu monedero y pierdes la contraseña, ¡&lt;b&gt;PERDERÁS TODOS TUS BITCOINS&lt;/b&gt;!</translation>
     </message>
     <message>
         <source>Are you sure you wish to encrypt your wallet?</source>
@@ -201,7 +201,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
-        <translation type="unfinished">IMPORTANTE: Cualquier copia de seguridad que hayas hecho del archivo de tu monedero debe ser reemplazada por el archivo cifrado del monedero recién generado. Por razones de seguridad, las copias de seguridad anteriores del archivo de la billetera sin cifrar serán inútiles cuando empieces a usar el nuevo monedero cifrado.</translation>
+        <translation type="unfinished">IMPORTANTE: Cualquier copia de seguridad que hayas hecho del archivo de tu monedero debe ser reemplazada por el archivo cifrado del monedero recién generado. Por razones de seguridad, las copias de seguridad anteriores del archivo del monedero sin cifrar serán inútiles cuando empieces a usar el nuevo monedero cifrado.</translation>
     </message>
     <message>
         <source>Wallet encryption failed</source>
@@ -213,7 +213,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>The supplied passphrases do not match.</source>
-        <translation type="unfinished">Las contraseñas dadas no coinciden.</translation>
+        <translation type="unfinished">Las contraseñas proporcionadas no coinciden.</translation>
     </message>
     <message>
         <source>Wallet unlock failed</source>
@@ -240,7 +240,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Banned Until</source>
-        <translation type="unfinished">Prohibido hasta</translation>
+        <translation type="unfinished">Bloqueado hasta</translation>
     </message>
 </context>
 <context>
@@ -276,7 +276,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
-        <translation type="unfinished">Error: El directorio de datos especificado "%1" no existe.</translation>
+        <translation type="unfinished">Error: El directorio de datos especificado «%1» no existe.</translation>
     </message>
     <message>
         <source>Error: Cannot parse configuration file: %1.</source>
@@ -292,7 +292,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Amount</source>
-        <translation type="unfinished">Cantidad</translation>
+        <translation type="unfinished">Importe</translation>
     </message>
     <message>
         <source>Enter a Bitcoin address (e.g. %1)</source>
@@ -306,6 +306,16 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Internal</source>
         <translation type="unfinished">Interno</translation>
     </message>
+    <message>
+        <source>Inbound</source>
+        <extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
+        <translation type="unfinished">Entrante</translation>
+    </message>
+    <message>
+        <source>Outbound</source>
+        <extracomment>An outbound connection to a peer. An outbound connection is a connection initiated by us.</extracomment>
+        <translation type="unfinished">Saliente</translation>
+    </message>
     <message>
         <source>Full Relay</source>
         <extracomment>Peer connection type that relays all network information.</extracomment>
@@ -337,43 +347,47 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform>%n segundo(s)</numerusform>
-            <numerusform>%n segundo(s)</numerusform>
+            <numerusform>%n segundo</numerusform>
+            <numerusform>%n segundos</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minuto</numerusform>
+            <numerusform>%n minutos</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hora</numerusform>
+            <numerusform>%n horas</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n día</numerusform>
+            <numerusform>%n días</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n semana</numerusform>
+            <numerusform>%n semanas</numerusform>
         </translation>
     </message>
+    <message>
+        <source>%1 and %2</source>
+        <translation type="unfinished">%1 y %2</translation>
+    </message>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n año</numerusform>
+            <numerusform>%n años</numerusform>
         </translation>
     </message>
     </context>
@@ -391,14 +405,30 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring a backup.</source>
         <translation type="unfinished">%s corrupto. Intenta utilizar la herramienta del monedero bitcoin-monedero para salvar o restaurar una copia de seguridad.</translation>
     </message>
+    <message>
+        <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
+        <translation type="unfinished">¡-maxtxfee tiene un valor muy elevado! Comisiones muy grandes podrían ser pagadas en una única transacción.</translation>
+    </message>
     <message>
         <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
         <translation type="unfinished">No se pudo cambiar la versión %i a la versión anterior %i.  Versión del monedero sin cambios.</translation>
     </message>
+    <message>
+        <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
+        <translation type="unfinished">No se puede bloquear el directorio %s. %s probablemente ya se está ejecutando.</translation>
+    </message>
     <message>
         <source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
         <translation type="unfinished">No se puede actualizar un monedero no dividido en HD de la versión  1%i a la versión 1%i sin actualizar para admitir el grupo de claves pre-dividido. Por favor, use la versión  1%i o ninguna versión especificada.</translation>
     </message>
+    <message>
+        <source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
+        <translation type="unfinished">Distribuido bajo la licencia de software MIT, vea el archivo adjunto %s o %s</translation>
+    </message>
+    <message>
+        <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
+        <translation type="unfinished">¡Error leyendo %s!. Todas las claves se han leído correctamente, pero los datos de la transacción o el libro de direcciones pueden faltar o ser incorrectos.</translation>
+    </message>
     <message>
         <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
         <translation type="unfinished">¡Error de lectura %s! Los datos de la transacción pueden faltar o ser incorrectos. Reescaneo de la billetera.</translation>
@@ -419,10 +449,22 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
         <translation type="unfinished">Error: Los monederos heredados solo admiten los tipos de dirección "legacy", "p2sh-segwit" y "bech32"</translation>
     </message>
+    <message>
+        <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
+        <translation type="unfinished">Error: la escucha para conexiones entrantes falló (la escucha devolvió el error %s)</translation>
+    </message>
+    <message>
+        <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
+        <translation type="unfinished">Estimación de la comisión fallida. Fallbackfee está deshabilitado. Espere unos pocos bloques o habilite -fallbackfee.</translation>
+    </message>
     <message>
         <source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
         <translation type="unfinished">El archivo  %s  ya existe. Si está seguro de que esto es lo que quiere, muévalo de lugar primero.</translation>
     </message>
+    <message>
+        <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
+        <translation type="unfinished">Importe inválido para -maxtxfee=&lt;amount&gt;: «%s» (debe ser al menos la comisión mímina de %s para prevenir transacciones atascadas)</translation>
+    </message>
     <message>
         <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
         <translation type="unfinished">Peers.dat inválido o corrupto (%s). Si cree que se trata de un error, infórmelo a %s. Como alternativa, puedes mover el archivo (%s) (renombrarlo, moverlo o eliminarlo) para que se cree uno nuevo en el siguiente inicio.</translation>
@@ -443,22 +485,66 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>No wallet file format provided. To use createfromdump, -format=&lt;format&gt; must be provided.</source>
         <translation type="unfinished">Ningún archivo de billetera proveído. Para usar createfromdump, -format=&lt;format&gt;debe ser proveído.</translation>
     </message>
+    <message>
+        <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
+        <translation type="unfinished">¡Por favor, compruebe si la fecha y hora en su computadora son correctas! Si su reloj está mal, %s no trabajará correctamente.</translation>
+    </message>
+    <message>
+        <source>Please contribute if you find %s useful. Visit %s for further information about the software.</source>
+        <translation type="unfinished">Contribuya si encuentra %s de utilidad. Visite %s para más información acerca del programa.</translation>
+    </message>
+    <message>
+        <source>Prune configured below the minimum of %d MiB.  Please use a higher number.</source>
+        <translation type="unfinished">La poda se ha configurado por debajo del mínimo de %d MiB. Por favor utiliza un valor mas alto.</translation>
+    </message>
+    <message>
+        <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source>
+        <translation type="unfinished">Poda: la última sincronización del monedero sobrepasa los datos podados. Necesita reindexar con -reindex (o descargar la cadena de bloques de nuevo en el caso de un nodo podado)</translation>
+    </message>
     <message>
         <source>SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported</source>
         <translation type="unfinished">SQLiteDatabase: versión del esquema de la monedero sqlite desconocido %d. Sólo version %d se admite</translation>
     </message>
+    <message>
+        <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
+        <translation type="unfinished">La base de datos de bloques contiene un bloque que parece ser del futuro. Esto puede ser porque la fecha y hora de su ordenador están mal ajustados. Reconstruya la base de datos de bloques solo si está seguro de que la fecha y hora de su ordenador están ajustadas correctamente.</translation>
+    </message>
     <message>
         <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
         <translation type="unfinished">El índice de bloque db contiene un 'txindex' heredado. Para borrar el espacio de disco ocupado, ejecute un -reindex completo, de lo contrario ignore este error. Este mensaje de error no se volverá a mostrar.</translation>
     </message>
+    <message>
+        <source>The transaction amount is too small to send after the fee has been deducted</source>
+        <translation type="unfinished">Importe de transacción muy pequeño después de la deducción de la comisión</translation>
+    </message>
     <message>
         <source>This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet</source>
         <translation type="unfinished">Este error podría ocurrir si la billetera no fuese apagada correctamente y fuese cargada usando una compilación con una versión más nueva de Berkeley DB. Si es así, utilice el software que cargó por última vez en esta billetera.</translation>
     </message>
+    <message>
+        <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
+        <translation type="unfinished">Esta es una versión de pre-prueba - utilícela bajo su propio riesgo. No la utilice para usos comerciales o de minería.</translation>
+    </message>
     <message>
         <source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
         <translation type="unfinished">Esta es la tarifa máxima que pagas (además de la tarifa normal) para priorizar la evasión del gasto parcial sobre la selección regular de monedas.</translation>
     </message>
+    <message>
+        <source>This is the transaction fee you may discard if change is smaller than dust at this level</source>
+        <translation type="unfinished">Esta es la comisión de transacción que puede descartar si el cambio es más pequeño que el polvo a este nivel.</translation>
+    </message>
+    <message>
+        <source>This is the transaction fee you may pay when fee estimates are not available.</source>
+        <translation type="unfinished">Esta es la comisión por transacción que deberá pagar cuando la estimación de comisión no esté disponible.</translation>
+    </message>
+    <message>
+        <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source>
+        <translation type="unfinished">La longitud total de la cadena de versión de red ( %i ) supera la longitud máxima ( %i ) . Reducir el número o tamaño de uacomments .</translation>
+    </message>
+    <message>
+        <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
+        <translation type="unfinished">No se ha podido reproducir los bloques. Deberá reconstruir la base de datos utilizando -reindex-chainstate.</translation>
+    </message>
     <message>
         <source>Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite".</source>
         <translation type="unfinished">Formato de monedero desconocido "%s" proporcionado. Por favor, proporcione uno de "bdb" o "sqlite".</translation>
@@ -467,14 +553,38 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Warning: Dumpfile wallet format "%s" does not match command line specified format "%s".</source>
         <translation type="unfinished">Aviso: el formato del monedero del archivo de volcado "%s" no coincide con el formato especificado en la línea de comandos "%s".</translation>
     </message>
+    <message>
+        <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source>
+        <translation type="unfinished">Advertencia: Claves privadas detectadas en el monedero {%s} con clave privada deshabilitada</translation>
+    </message>
+    <message>
+        <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source>
+        <translation type="unfinished">Advertencia: ¡No parecemos concordar del todo con nuestros pares! Puede que necesite actualizarse, o puede que otros nodos necesiten actualizarse.</translation>
+    </message>
     <message>
         <source>Witness data for blocks after height %d requires validation. Please restart with -reindex.</source>
         <translation type="unfinished">Hay que validar los datos de los testigos de los bloques después de la altura%d. Por favor, reinicie con -reindex.</translation>
     </message>
+    <message>
+        <source>You need to rebuild the database using -reindex to go back to unpruned mode.  This will redownload the entire blockchain</source>
+        <translation type="unfinished">Necesita reconstruir la base de datos utilizando -reindex para volver al modo sin poda. Esto volverá a descargar toda la cadena de bloques</translation>
+    </message>
+    <message>
+        <source>%s is set very high!</source>
+        <translation type="unfinished">¡%s esta configurado muy alto!</translation>
+    </message>
+    <message>
+        <source>-maxmempool must be at least %d MB</source>
+        <translation type="unfinished">-maxmempool debe ser por lo menos de %d MB</translation>
+    </message>
     <message>
         <source>A fatal internal error occurred, see debug.log for details</source>
         <translation type="unfinished">Ha ocurrido un error interno grave. Consulta debug.log para más detalles.</translation>
     </message>
+    <message>
+        <source>Cannot resolve -%s address: '%s'</source>
+        <translation type="unfinished">No se puede resolver -%s dirección: «%s»</translation>
+    </message>
     <message>
         <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
         <translation type="unfinished">No se puede establecer -forcednsseed a true cuando se establece -dnsseed a false.</translation>
@@ -483,10 +593,62 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">No se puede establecer -peerblockfilters sin -blockfilterindex.</translation>
     </message>
+    <message>
+        <source>Cannot write to data directory '%s'; check permissions.</source>
+        <translation type="unfinished">Imposible escribir en el directorio «%s»; comprueba permisos.</translation>
+    </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">La actualización -txindex iniciada por una versión anterior no puede completarse. Reinicie con la versión anterior o ejecute un -reindex completo.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">solicitud %s de escucha en el puerto %u . Este puerto se considera "malo" y por lo tanto es poco probable que ningún par de Bitcoin Core se conecte a él. Ver doc/p2p-bad-ports.md para más detalles y una lista completa.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">No se puede proporcionar conexiones específicas y hacer que addrman encuentre conexiones salientes al mismo tiempo.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Error de carga %s : Se está cargando el monedero del firmante externo sin que se haya compilado el soporte del firmante externo</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">No se ha podido cambiar el nombre del archivo peers.dat . Por favor, muévalo o bórrelo e inténtelo de nuevo.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Conexiones salientes restringidas a Tor (-onlynet=onion) pero no se proporciona el proxy para alcanzar la red Tor (no se da -proxy= ni -onion=) o está explícitamente prohibido (-onion=0)</translation>
+    </message>
+    <message>
+        <source>Config setting for %s only applied on %s network when in [%s] section.</source>
+        <translation type="unfinished">Los ajustes de configuración para %s solo aplicados en la red %s  cuando se encuentra en la sección [%s].</translation>
+    </message>
+    <message>
+        <source>Corrupted block database detected</source>
+        <translation type="unfinished">Corrupción de base de datos de bloques detectada.</translation>
+    </message>
+    <message>
+        <source>Could not find asmap file %s</source>
+        <translation type="unfinished">No se pudo encontrar el archivo AS Map %s</translation>
+    </message>
+    <message>
+        <source>Could not parse asmap file %s</source>
+        <translation type="unfinished">No se pudo analizar el archivo AS Map %s</translation>
+    </message>
     <message>
         <source>Disk space is too low!</source>
         <translation type="unfinished">¡El espacio en el disco es demasiado pequeño!</translation>
     </message>
+    <message>
+        <source>Do you want to rebuild the block database now?</source>
+        <translation type="unfinished">¿Quieres reconstruir la base de datos de bloques ahora?</translation>
+    </message>
+    <message>
+        <source>Done loading</source>
+        <translation type="unfinished">Carga completa</translation>
+    </message>
     <message>
         <source>Dump file %s does not exist.</source>
         <translation type="unfinished">El archivo de volcado %s no existe</translation>
@@ -495,14 +657,58 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Error creating %s</source>
         <translation type="unfinished">Error creando %s</translation>
     </message>
+    <message>
+        <source>Error initializing block database</source>
+        <translation type="unfinished">Error al inicializar la base de datos de bloques</translation>
+    </message>
+    <message>
+        <source>Error initializing wallet database environment %s!</source>
+        <translation type="unfinished">Error al inicializar el entorno de la base de datos del monedero  %s</translation>
+    </message>
+    <message>
+        <source>Error loading %s</source>
+        <translation type="unfinished">Error cargando %s</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Private keys can only be disabled during creation</source>
+        <translation type="unfinished">Error cargando %s: Las claves privadas solo pueden ser deshabilitadas durante la creación.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Wallet corrupted</source>
+        <translation type="unfinished">Error cargando %s: Monedero corrupto</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Wallet requires newer version of %s</source>
+        <translation type="unfinished">Error cargando %s: Monedero requiere una versión mas reciente de %s</translation>
+    </message>
+    <message>
+        <source>Error loading block database</source>
+        <translation type="unfinished">Error cargando base de datos de bloques</translation>
+    </message>
+    <message>
+        <source>Error opening block database</source>
+        <translation type="unfinished">Error al abrir base de datos de bloques.</translation>
+    </message>
+    <message>
+        <source>Error reading from database, shutting down.</source>
+        <translation type="unfinished">Error al leer la base de datos, cerrando aplicación.</translation>
+    </message>
     <message>
         <source>Error reading next record from wallet database</source>
-        <translation type="unfinished">Error al leer el seguiente registro de la base de datos de la "wallet"</translation>
+        <translation type="unfinished">Error al leer el siguiente registro de la base de datos del monedero</translation>
+    </message>
+    <message>
+        <source>Error upgrading chainstate database</source>
+        <translation type="unfinished">Error actualizando la base de datos chainstate</translation>
     </message>
     <message>
         <source>Error: Couldn't create cursor into database</source>
         <translation type="unfinished">Error: No se pudo crear el cursor en la base de datos</translation>
     </message>
+    <message>
+        <source>Error: Disk space is low for %s</source>
+        <translation type="unfinished">Error: Espacio en disco bajo por %s</translation>
+    </message>
     <message>
         <source>Error: Dumpfile checksum does not match. Computed %s, expected %s</source>
         <translation type="unfinished">Error: La suma de comprobación del archivo de volcado no coincide. Calculada%s, prevista%s</translation>
@@ -521,12 +727,11 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Error: Missing checksum</source>
-        <translation type="unfinished">Error: No se ha encontrado 'checksum'</translation>
+        <translation type="unfinished">Error: No se ha encontrado suma de comprobación</translation>
     </message>
     <message>
         <source>Error: No %s addresses available.</source>
-        <translation type="unfinished">Error: No hay %sdirecciones disponibles.
-</translation>
+        <translation type="unfinished">Error: No hay direcciones %s disponibles .</translation>
     </message>
     <message>
         <source>Error: Unable to parse version %u as a uint32_t</source>
@@ -536,6 +741,14 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Error: Unable to write record to new wallet</source>
         <translation type="unfinished">Error: No se pudo escribir el registro en la nueva billetera</translation>
     </message>
+    <message>
+        <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
+        <translation type="unfinished">Ha fallado la escucha en todos los puertos. Usa -listen=0 si deseas esto.</translation>
+    </message>
+    <message>
+        <source>Failed to rescan the wallet during initialization</source>
+        <translation type="unfinished">Fallo al volver a escanear el monedero durante el inicio</translation>
+    </message>
     <message>
         <source>Failed to verify database</source>
         <translation type="unfinished">No se ha podido verificar la base de datos</translation>
@@ -552,6 +765,14 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Importing…</source>
         <translation type="unfinished">Importando...</translation>
     </message>
+    <message>
+        <source>Incorrect or no genesis block found. Wrong datadir for network?</source>
+        <translation type="unfinished">Bloque de génesis no encontrado o incorrecto. ¿datadir equivocada para la red?</translation>
+    </message>
+    <message>
+        <source>Initialization sanity check failed. %s is shutting down.</source>
+        <translation type="unfinished">La inicialización de la verificación de validez falló. Se está cerrando %s.</translation>
+    </message>
     <message>
         <source>Input not found or already spent</source>
         <translation type="unfinished">Entrada no encontrada o ya gastada</translation>
@@ -562,7 +783,39 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Invalid -i2psam address or hostname: '%s'</source>
-        <translation type="unfinished">Dirección de -i2psam o dominio ' %s' inválido</translation>
+        <translation type="unfinished">Dirección de -i2psam o dominio «%s» inválido</translation>
+    </message>
+    <message>
+        <source>Invalid -onion address or hostname: '%s'</source>
+        <translation type="unfinished">Dirección -onion o hostname: «%s» inválido</translation>
+    </message>
+    <message>
+        <source>Invalid -proxy address or hostname: '%s'</source>
+        <translation type="unfinished">Dirección -proxy o hostname: «%s» inválido</translation>
+    </message>
+    <message>
+        <source>Invalid P2P permission: '%s'</source>
+        <translation type="unfinished">Permiso P2P: «%s» inválido</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -%s=&lt;amount&gt;: '%s'</source>
+        <translation type="unfinished">Importe para -%s=&lt;amount&gt;: «%s» inválido</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -discardfee=&lt;amount&gt;: '%s'</source>
+        <translation type="unfinished">Importe para -discardfee=&lt;amount&gt;: «%s» inválido</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -fallbackfee=&lt;amount&gt;: '%s'</source>
+        <translation type="unfinished">Importe para -fallbackfee=&lt;amount&gt;: «%s» inválido</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -paytxfee=&lt;amount&gt;: '%s' (must be at least %s)</source>
+        <translation type="unfinished">Importe para  -paytxfee=&lt;amount&gt;: «%s» inválido (debe ser al menos %s)</translation>
+    </message>
+    <message>
+        <source>Invalid netmask specified in -whitelist: '%s'</source>
+        <translation type="unfinished">Máscara de red especificada en -whitelist: «%s» inválida</translation>
     </message>
     <message>
         <source>Loading P2P addresses…</source>
@@ -582,12 +835,16 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Missing amount</source>
-        <translation type="unfinished">Cantidad faltante</translation>
+        <translation type="unfinished">Importe faltante</translation>
     </message>
     <message>
         <source>Missing solving data for estimating transaction size</source>
         <translation type="unfinished">Faltan datos de resolución para estimar el tamaño de las transacciones</translation>
     </message>
+    <message>
+        <source>Need to specify a port with -whitebind: '%s'</source>
+        <translation type="unfinished">Necesita especificar un puerto con -whitebind: «%s»</translation>
+    </message>
     <message>
         <source>No addresses available</source>
         <translation type="unfinished">Sin direcciones disponibles</translation>
@@ -596,14 +853,30 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">No se ha especificado un servidor de proxy. Use -proxy=&lt;ip&gt;o -proxy=&lt;ip:port&gt;.</translation>
     </message>
+    <message>
+        <source>Not enough file descriptors available.</source>
+        <translation type="unfinished">No hay suficientes descriptores de archivo disponibles.</translation>
+    </message>
+    <message>
+        <source>Prune cannot be configured with a negative value.</source>
+        <translation type="unfinished">La poda no se puede configurar con un valor negativo.</translation>
+    </message>
     <message>
         <source>Prune mode is incompatible with -coinstatsindex.</source>
-        <translation type="unfinished">"Prune mode" es incompatible with -txindex.</translation>
+        <translation type="unfinished">El modo de poda es incompatible con -txindex.</translation>
+    </message>
+    <message>
+        <source>Prune mode is incompatible with -txindex.</source>
+        <translation type="unfinished">El modo de poda es incompatible con -txindex.</translation>
     </message>
     <message>
         <source>Pruning blockstore…</source>
         <translation type="unfinished">Podando almacén de bloques…</translation>
     </message>
+    <message>
+        <source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
+        <translation type="unfinished">Reduciendo -maxconnections de %d a %d, debido a limitaciones del sistema.</translation>
+    </message>
     <message>
         <source>Replaying blocks…</source>
         <translation type="unfinished">Reproduciendo bloques…</translation>
@@ -628,6 +901,30 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>SQLiteDatabase: Unexpected application id. Expected %u, got %u</source>
         <translation type="unfinished">SQLiteDatabase: id aplicación inesperada. Esperado %u, tiene %u</translation>
     </message>
+    <message>
+        <source>Section [%s] is not recognized.</source>
+        <translation type="unfinished">Sección [%s] no reconocida.</translation>
+    </message>
+    <message>
+        <source>Signing transaction failed</source>
+        <translation type="unfinished">Firma de transacción fallida</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" does not exist</source>
+        <translation type="unfinished">No existe -walletdir «%s» especificada</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" is a relative path</source>
+        <translation type="unfinished">Ruta relativa para -walletdir «%s» especificada</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" is not a directory</source>
+        <translation type="unfinished">No existe directorio para -walletdir «%s» especificada</translation>
+    </message>
+    <message>
+        <source>Specified blocks directory "%s" does not exist.</source>
+        <translation type="unfinished">No existe directorio de bloques «%s» especificado.</translation>
+    </message>
     <message>
         <source>Starting network threads…</source>
         <translation type="unfinished">Iniciando procesos de red...</translation>
@@ -636,9 +933,41 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>The specified config file %s does not exist</source>
         <translation type="unfinished">El archivo de configuración especificado %s no existe </translation>
     </message>
+    <message>
+        <source>The transaction amount is too small to pay the fee</source>
+        <translation type="unfinished">El importe de la transacción es muy pequeño para pagar la comisión</translation>
+    </message>
+    <message>
+        <source>The wallet will avoid paying less than the minimum relay fee.</source>
+        <translation type="unfinished">El monedero evitará pagar menos de la comisión mínima de retransmisión. </translation>
+    </message>
+    <message>
+        <source>This is experimental software.</source>
+        <translation type="unfinished">Este es un software experimental.</translation>
+    </message>
+    <message>
+        <source>This is the minimum transaction fee you pay on every transaction.</source>
+        <translation type="unfinished">Esta es la comisión mínima que pagarás en cada transacción.</translation>
+    </message>
+    <message>
+        <source>This is the transaction fee you will pay if you send a transaction.</source>
+        <translation type="unfinished">Esta es la comisión por transacción a pagar si realiza una transacción.</translation>
+    </message>
+    <message>
+        <source>Transaction amount too small</source>
+        <translation type="unfinished">Importe de la transacción muy pequeño</translation>
+    </message>
     <message>
         <source>Transaction amounts must not be negative</source>
-        <translation type="unfinished">Los montos de la transacción no deben ser negativos</translation>
+        <translation type="unfinished">Los importes de la transacción no deben ser negativos</translation>
+    </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Índice de salida de cambio de transacción fuera de rango</translation>
+    </message>
+    <message>
+        <source>Transaction has too long of a mempool chain</source>
+        <translation type="unfinished">La transacción lleva largo tiempo en la piscina de memoria</translation>
     </message>
     <message>
         <source>Transaction must have at least one recipient</source>
@@ -652,6 +981,26 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Transaction too large</source>
         <translation type="unfinished">Transacción demasiado grande</translation>
     </message>
+    <message>
+        <source>Unable to bind to %s on this computer (bind returned error %s)</source>
+        <translation type="unfinished">No es posible conectar con %s en este sistema (bind ha devuelto el error %s)</translation>
+    </message>
+    <message>
+        <source>Unable to bind to %s on this computer. %s is probably already running.</source>
+        <translation type="unfinished">No se ha podido conectar con %s en este equipo. %s es posible que esté todavía en ejecución.</translation>
+    </message>
+    <message>
+        <source>Unable to create the PID file '%s': %s</source>
+        <translation type="unfinished">No es posible crear el fichero PID «%s»: %s</translation>
+    </message>
+    <message>
+        <source>Unable to generate initial keys</source>
+        <translation type="unfinished">No es posible generar las claves iniciales</translation>
+    </message>
+    <message>
+        <source>Unable to generate keys</source>
+        <translation type="unfinished">Imposible generar claves</translation>
+    </message>
     <message>
         <source>Unable to open %s for writing</source>
         <translation type="unfinished">No se ha podido abrir %s para escribir</translation>
@@ -660,10 +1009,42 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Unable to parse -maxuploadtarget: '%s'</source>
         <translation type="unfinished">No se ha podido analizar -maxuploadtarget: '%s'</translation>
     </message>
+    <message>
+        <source>Unable to start HTTP server. See debug log for details.</source>
+        <translation type="unfinished">No se ha podido iniciar el servidor HTTP. Ver registro de depuración para detalles.</translation>
+    </message>
+    <message>
+        <source>Unknown -blockfilterindex value %s.</source>
+        <translation type="unfinished">Valor -blockfilterindex %s desconocido.</translation>
+    </message>
+    <message>
+        <source>Unknown address type '%s'</source>
+        <translation type="unfinished">Tipo de dirección «%s» desconocida</translation>
+    </message>
+    <message>
+        <source>Unknown change type '%s'</source>
+        <translation type="unfinished">Tipo de cambio «%s» desconocido</translation>
+    </message>
+    <message>
+        <source>Unknown network specified in -onlynet: '%s'</source>
+        <translation type="unfinished">Red especificada en -onlynet: «%s» desconocida</translation>
+    </message>
     <message>
         <source>Unknown new rules activated (versionbit %i)</source>
         <translation type="unfinished">Nuevas reglas desconocidas activadas (versionbit %i)</translation>
     </message>
+    <message>
+        <source>Unsupported logging category %s=%s.</source>
+        <translation type="unfinished">Categoría de registro no soportada %s=%s. </translation>
+    </message>
+    <message>
+        <source>Upgrading UTXO database</source>
+        <translation type="unfinished">Actualizando la base de datos UTXO</translation>
+    </message>
+    <message>
+        <source>User Agent comment (%s) contains unsafe characters.</source>
+        <translation type="unfinished">El comentario del Agente de Usuario (%s) contiene caracteres inseguros.</translation>
+    </message>
     <message>
         <source>Verifying blocks…</source>
         <translation type="unfinished">Verificando bloques...</translation>
@@ -672,7 +1053,11 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Verifying wallet(s)…</source>
         <translation type="unfinished">Verificando monedero(s)...</translation>
     </message>
-    </context>
+    <message>
+        <source>Wallet needed to be rewritten: restart %s to complete</source>
+        <translation type="unfinished">Es necesario reescribir el monedero: reiniciar %s para completar</translation>
+    </message>
+</context>
 <context>
     <name>BitcoinGUI</name>
     <message>
@@ -746,11 +1131,11 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Backup wallet to another location</source>
-        <translation type="unfinished">Respaldar billetera en otra ubicación</translation>
+        <translation type="unfinished">Respaldar monedero en otra ubicación</translation>
     </message>
     <message>
         <source>Change the passphrase used for wallet encryption</source>
-        <translation type="unfinished">Cambiar la contraseña utilizada para la encriptación de cartera</translation>
+        <translation type="unfinished">Cambiar la contraseña utilizada para el cifrado del monedero</translation>
     </message>
     <message>
         <source>&amp;Send</source>
@@ -758,7 +1143,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>&amp;Receive</source>
-        <translation type="unfinished">&amp;Recibido</translation>
+        <translation type="unfinished">&amp;Recibir</translation>
     </message>
     <message>
         <source>&amp;Options…</source>
@@ -770,7 +1155,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
-        <translation type="unfinished">Cifrar las claves privadas que pertenecen a tu billetera</translation>
+        <translation type="unfinished">Cifrar las claves privadas de tu monedero</translation>
     </message>
     <message>
         <source>&amp;Backup Wallet…</source>
@@ -798,7 +1183,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>&amp;Load PSBT from file…</source>
-        <translation type="unfinished">&amp;Cargar PSBT desde archivo...</translation>
+        <translation type="unfinished">&amp;Cargar TBPF desde archivo...</translation>
     </message>
     <message>
         <source>Open &amp;URI…</source>
@@ -806,15 +1191,15 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Close Wallet…</source>
-        <translation type="unfinished">Cerrar cartera...</translation>
+        <translation type="unfinished">Cerrar monedero...</translation>
     </message>
     <message>
         <source>Create Wallet…</source>
-        <translation type="unfinished">Crear cartera...</translation>
+        <translation type="unfinished">Crear monedero...</translation>
     </message>
     <message>
         <source>Close All Wallets…</source>
-        <translation type="unfinished">Cerrar todas las carteras...</translation>
+        <translation type="unfinished">Cerrar todos los monederos...</translation>
     </message>
     <message>
         <source>&amp;File</source>
@@ -834,7 +1219,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Syncing Headers (%1%)…</source>
-        <translation type="unfinished">Sincronizando cabeceras (1%1%)</translation>
+        <translation type="unfinished">Sincronizando cabeceras (%1%)...</translation>
     </message>
     <message>
         <source>Synchronizing with network…</source>
@@ -854,7 +1239,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Connecting to peers…</source>
-        <translation type="unfinished">Conectando con compañeros...</translation>
+        <translation type="unfinished">Conectando con pares...</translation>
     </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
@@ -875,8 +1260,8 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform>Procesado(s) %n bloque(s) del historial de transacciones.</numerusform>
-            <numerusform>Procesado(s) %n bloque(s) del historial de transacciones.</numerusform>
+            <numerusform>Procesado %n bloque del historial de transacciones.</numerusform>
+            <numerusform>Procesados %n bloques del historial de transacciones.</numerusform>
         </translation>
     </message>
     <message>
@@ -893,7 +1278,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Transactions after this will not yet be visible.</source>
-        <translation type="unfinished">Las transacciones posteriores aún no están visibles.</translation>
+        <translation type="unfinished">Las transacciones posteriores aún no son visibles.</translation>
     </message>
     <message>
         <source>Warning</source>
@@ -913,11 +1298,11 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Load PSBT from &amp;clipboard…</source>
-        <translation type="unfinished">Cargar PSBT desde &amp;portapapeles</translation>
+        <translation type="unfinished">Cargar TBPF desde &amp;portapapeles...</translation>
     </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
-        <translation type="unfinished">Cargar una transacción de Bitcoin parcialmente firmada desde el Portapapeles</translation>
+        <translation type="unfinished">Cargar una transacción de Bitcoin parcialmente firmada desde el portapapeles</translation>
     </message>
     <message>
         <source>Node window</source>
@@ -937,11 +1322,11 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Open a bitcoin: URI</source>
-        <translation type="unfinished">Abrir un bitcoin: URI</translation>
+        <translation type="unfinished">Bitcoin: abrir URI</translation>
     </message>
     <message>
         <source>Open Wallet</source>
-        <translation type="unfinished">Abrir Monedero</translation>
+        <translation type="unfinished">Abrir monedero</translation>
     </message>
     <message>
         <source>Open a wallet</source>
@@ -997,25 +1382,25 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>S&amp;how</source>
-        <translation type="unfinished">M&amp;uestra</translation>
+        <translation type="unfinished">&amp;Mostrar</translation>
     </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform>%n conexión(es) activas con la red de Bitcoin</numerusform>
-            <numerusform>%n conexión(es) activas con la red de Bitcoin</numerusform>
+            <numerusform>%n conexión activa con la red de Bitcoin.</numerusform>
+            <numerusform>%n conexiónes activas con la red de Bitcoin.</numerusform>
         </translation>
     </message>
     <message>
         <source>Click for more actions.</source>
         <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
-        <translation type="unfinished">Haz click para ver más acciones.</translation>
+        <translation type="unfinished">Haz clic para ver más acciones.</translation>
     </message>
     <message>
         <source>Show Peers tab</source>
         <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
-        <translation type="unfinished">Mostrar pestaña Pares</translation>
+        <translation type="unfinished">Mostrar pestaña de pares</translation>
     </message>
     <message>
         <source>Disable network activity</source>
@@ -1040,13 +1425,19 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <message>
         <source>Amount: %1
 </source>
-        <translation type="unfinished">Cantidad: %1
+        <translation type="unfinished">Importe: %1
 </translation>
     </message>
     <message>
         <source>Wallet: %1
 </source>
         <translation type="unfinished">Monedero: %1
+</translation>
+    </message>
+    <message>
+        <source>Type: %1
+</source>
+        <translation type="unfinished">Tipo: %1
 </translation>
     </message>
     <message>
@@ -1067,27 +1458,27 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Incoming transaction</source>
-        <translation type="unfinished">Transacción entrante</translation>
+        <translation type="unfinished">Transacción recibida</translation>
     </message>
     <message>
         <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
-        <translation type="unfinished">La generación de clave HD está &lt;b&gt;deshabilitada&lt;/b&gt;</translation>
+        <translation type="unfinished">La generación de clave HD está &lt;b&gt;habilitada&lt;/b&gt;</translation>
     </message>
     <message>
         <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">La generación de clave HD está &lt;b&gt;habilitada&lt;/b&gt;</translation>
+        <translation type="unfinished">La generación de clave HD está &lt;b&gt;deshabilitada&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">Llave privada &lt;b&gt;deshabilitada&lt;/b&gt;</translation>
+        <translation type="unfinished">Clave privada &lt;b&gt;deshabilitada&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
-        <translation type="unfinished">La billetera está &lt;b&gt;cifrada&lt;/b&gt; y &lt;b&gt;desbloqueada&lt;/b&gt;</translation>
+        <translation type="unfinished">El monedero está &lt;b&gt;cifrado&lt;/b&gt; y actualmente &lt;b&gt;desbloqueado&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
-        <translation type="unfinished">La billetera está &lt;b&gt;cifrada&lt;/b&gt; y &lt;b&gt;bloqueada&lt;/b&gt;</translation>
+        <translation type="unfinished">El monedero está &lt;b&gt;cifrado&lt;/b&gt; y actualmente &lt;b&gt;bloqueado&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Original message:</source>
@@ -1098,7 +1489,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <name>UnitDisplayStatusBarControl</name>
     <message>
         <source>Unit to show amounts in. Click to select another unit.</source>
-        <translation type="unfinished">Unidad en la que se muestran las cantidades. Haga clic para seleccionar otra unidad.</translation>
+        <translation type="unfinished">Unidad en la que se muestran los importes. Haga clic para seleccionar otra unidad.</translation>
     </message>
 </context>
 <context>
@@ -1113,7 +1504,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Amount:</source>
-        <translation type="unfinished">Cuantía:</translation>
+        <translation type="unfinished">Importe:</translation>
     </message>
     <message>
         <source>Fee:</source>
@@ -1121,7 +1512,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Dust:</source>
-        <translation type="unfinished">Basura:</translation>
+        <translation type="unfinished">Polvo:</translation>
     </message>
     <message>
         <source>After Fee:</source>
@@ -1137,15 +1528,15 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Tree mode</source>
-        <translation type="unfinished">Modo Árbol</translation>
+        <translation type="unfinished">Modo árbol</translation>
     </message>
     <message>
         <source>List mode</source>
-        <translation type="unfinished">Modo Lista</translation>
+        <translation type="unfinished">Modo lista</translation>
     </message>
     <message>
         <source>Amount</source>
-        <translation type="unfinished">Cantidad</translation>
+        <translation type="unfinished">Importe</translation>
     </message>
     <message>
         <source>Received with label</source>
@@ -1167,17 +1558,21 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Confirmed</source>
         <translation type="unfinished">Confirmado</translation>
     </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">Copiar importe</translation>
+    </message>
     <message>
         <source>&amp;Copy address</source>
-        <translation type="unfinished">copiar dirección </translation>
+        <translation type="unfinished">Copiar dirección</translation>
     </message>
     <message>
         <source>Copy &amp;label</source>
-        <translation type="unfinished">Copiar &amp;label</translation>
+        <translation type="unfinished">Copiar &amp;etiqueta</translation>
     </message>
     <message>
         <source>Copy &amp;amount</source>
-        <translation type="unfinished">Copiar &amp;amount</translation>
+        <translation type="unfinished">Copiar &amp;importe</translation>
     </message>
     <message>
         <source>Copy transaction &amp;ID and output index</source>
@@ -1185,7 +1580,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>L&amp;ock unspent</source>
-        <translation type="unfinished">Bloquear no gastado</translation>
+        <translation type="unfinished">B&amp;loquear no gastado</translation>
     </message>
     <message>
         <source>&amp;Unlock unspent</source>
@@ -1193,7 +1588,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Copy quantity</source>
-        <translation type="unfinished">Copiar prioridad</translation>
+        <translation type="unfinished">Copiar cantidad</translation>
     </message>
     <message>
         <source>Copy fee</source>
@@ -1225,7 +1620,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
-        <translation type="unfinished">Esta etiqueta se vuelve roja si algún receptor recibe una cantidad inferior al umbral actual establecido para el polvo.</translation>
+        <translation type="unfinished">Esta etiqueta se vuelve roja si algún receptor recibe un importe inferior al umbral actual establecido para el polvo.</translation>
     </message>
     <message>
         <source>Can vary +/- %1 satoshi(s) per input.</source>
@@ -1249,20 +1644,20 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <message>
         <source>Create Wallet</source>
         <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
-        <translation type="unfinished">Crear Monedero</translation>
+        <translation type="unfinished">Crear monedero</translation>
     </message>
     <message>
         <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
         <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
-        <translation type="unfinished">Creando Monedero &lt;b&gt;%1&lt;/b&gt;…</translation>
+        <translation type="unfinished">Creando monedero &lt;b&gt;%1&lt;/b&gt;…</translation>
     </message>
     <message>
         <source>Create wallet failed</source>
-        <translation type="unfinished">Crear monedero ha fallado</translation>
+        <translation type="unfinished">Fallo al crear monedero</translation>
     </message>
     <message>
         <source>Create wallet warning</source>
-        <translation type="unfinished">Advertencia sobre crear monedero</translation>
+        <translation type="unfinished">Advertencia al crear monedero</translation>
     </message>
     <message>
         <source>Can't list signers</source>
@@ -1286,15 +1681,15 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <name>OpenWalletActivity</name>
     <message>
         <source>Open wallet failed</source>
-        <translation type="unfinished">Abrir monedero ha fallado</translation>
+        <translation type="unfinished">Fallo al abrir monedero</translation>
     </message>
     <message>
         <source>Open wallet warning</source>
-        <translation type="unfinished">Advertencia sobre crear monedero</translation>
+        <translation type="unfinished">Advertencia al abrir monedero</translation>
     </message>
     <message>
         <source>default wallet</source>
-        <translation type="unfinished">Monedero predeterminado</translation>
+        <translation type="unfinished">monedero predeterminado</translation>
     </message>
     <message>
         <source>Open Wallet</source>
@@ -1334,11 +1729,11 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <name>CreateWalletDialog</name>
     <message>
         <source>Create Wallet</source>
-        <translation type="unfinished">Crear Monedero</translation>
+        <translation type="unfinished">Crear monedero</translation>
     </message>
     <message>
         <source>Wallet Name</source>
-        <translation type="unfinished">Nombre del Monedero</translation>
+        <translation type="unfinished">Nombre del monedero</translation>
     </message>
     <message>
         <source>Wallet</source>
@@ -1350,19 +1745,19 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Encrypt Wallet</source>
-        <translation type="unfinished">Cifrar Monedero</translation>
+        <translation type="unfinished">Cifrar monedero</translation>
     </message>
     <message>
         <source>Advanced Options</source>
-        <translation type="unfinished">Opciones Avanzadas</translation>
+        <translation type="unfinished">Opciones avanzadas</translation>
     </message>
     <message>
         <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
-        <translation type="unfinished">Deshabilita las claves privadas para este monedero. Los monederos con claves privadas deshabilitadas no tendrán claves privadas y no podrán tener ni una semilla HD ni claves privadas importadas. Esto es ideal para monederos de solo lectura.</translation>
+        <translation type="unfinished">Deshabilita las claves privadas para este monedero. Los monederos con claves privadas deshabilitadas no tendrán claves privadas y no podrán tener ni una semilla HD ni claves privadas importadas. Esto es ideal para monederos de solo observación.</translation>
     </message>
     <message>
         <source>Disable Private Keys</source>
-        <translation type="unfinished">Deshabilita las Llaves Privadas</translation>
+        <translation type="unfinished">Deshabilita las claves privadas</translation>
     </message>
     <message>
         <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
@@ -1406,7 +1801,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     <name>EditAddressDialog</name>
     <message>
         <source>Edit Address</source>
-        <translation type="unfinished">Editar Dirección</translation>
+        <translation type="unfinished">Editar dirección</translation>
     </message>
     <message>
         <source>&amp;Label</source>
@@ -1414,7 +1809,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>The label associated with this address list entry</source>
-        <translation type="unfinished">La etiqueta asociada con esta entrada en la libreta</translation>
+        <translation type="unfinished">La etiqueta asociada con esta entrada en la lista de direcciones</translation>
     </message>
     <message>
         <source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
@@ -1430,7 +1825,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Edit receiving address</source>
-        <translation type="unfinished">Editar dirección de recivimiento</translation>
+        <translation type="unfinished">Editar dirección de recepción</translation>
     </message>
     <message>
         <source>Edit sending address</source>
@@ -1438,15 +1833,15 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>The entered address "%1" is not a valid Bitcoin address.</source>
-        <translation type="unfinished">La dirección introducida "%1" no es una dirección Bitcoin válida.</translation>
+        <translation type="unfinished">La dirección introducida «%1» no es una dirección Bitcoin válida.</translation>
     </message>
     <message>
         <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source>
-        <translation type="unfinished">La dirección "%1" ya existe como dirección de recepción con la etiqueta "%2" y, por lo tanto, no se puede agregar como dirección de envío.</translation>
+        <translation type="unfinished">La dirección «%1» ya existe como dirección de recepción con la etiqueta «%2» y, por lo tanto, no se puede agregar como dirección de envío.</translation>
     </message>
     <message>
         <source>The entered address "%1" is already in the address book with label "%2".</source>
-        <translation type="unfinished">La dirección ingresada "%1" ya está en la libreta de direcciones con la etiqueta "%2".</translation>
+        <translation type="unfinished">La dirección introducida «%1» ya se encuentra en la libreta de direcciones con la etiqueta «%2».</translation>
     </message>
     <message>
         <source>Could not unlock wallet.</source>
@@ -1498,17 +1893,29 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Al menos %1 GB de información será almacenada en este directorio, y seguirá creciendo a través del tiempo.</translation>
     </message>
+    <message>
+        <source>Approximately %1 GB of data will be stored in this directory.</source>
+        <translation type="unfinished">Aproximadamente %1 GB de información será almacenada en este directorio.</translation>
+    </message>
     <message numerus="yes">
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform>(suficiente para restaurar copias de seguridad de %n día(s) de antigüedad)</numerusform>
-            <numerusform>(suficiente para restaurar copias de seguridad de %n día(s) de antigüedad)</numerusform>
+            <numerusform>(suficiente para restaurar copias de seguridad de %n día de antigüedad)</numerusform>
+            <numerusform>(suficiente para restaurar copias de seguridad de %n días de antigüedad)</numerusform>
         </translation>
     </message>
     <message>
         <source>%1 will download and store a copy of the Bitcoin block chain.</source>
-        <translation type="unfinished">%1 descargará y almacenará una copia del blockchain de Bitcoin.</translation>
+        <translation type="unfinished">%1 descargará y almacenará una copia de la cadena de bloques de Bitcoin.</translation>
+    </message>
+    <message>
+        <source>The wallet will also be stored in this directory.</source>
+        <translation type="unfinished">El monedero también se almacenará en este directorio.</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" cannot be created.</source>
+        <translation type="unfinished">Error: El directorio de datos especificado «%1» no pudo ser creado.</translation>
     </message>
     <message>
         <source>Welcome</source>
@@ -1518,15 +1925,43 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Welcome to %1.</source>
         <translation type="unfinished">Bienvenido a %1.</translation>
     </message>
+    <message>
+        <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source>
+        <translation type="unfinished">Al ser esta la primera vez que se ejecuta el programa, puedes escoger donde %1 almacenará los datos.</translation>
+    </message>
+    <message>
+        <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
+        <translation type="unfinished">Cuando hagas clic en OK, %1 se iniciará la descarga y procesamiento de toda la %4 cadena de bloques (%2GB) empezando con las primeras transacciones en %3 cuando %4 fue inicialmente lanzado.</translation>
+    </message>
     <message>
         <source>Limit block chain storage to</source>
         <translation type="unfinished">Limitar el almacenamiento de cadena de bloques a</translation>
     </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
+        <translation type="unfinished">Al revertir este ajuste se requiere volver a descargar la cadena de bloques completa. Es más rápido descargar primero la cadena completa y después podarla. Desactiva algunas características avanzadas.</translation>
+    </message>
     <message>
         <source> GB</source>
         <translation type="unfinished">GB</translation>
     </message>
-    </context>
+    <message>
+        <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
+        <translation type="unfinished">Esta sincronización inicial es muy exigente y puede exponer problemas de hardware con su computadora que anteriormente habían pasado desapercibidos. Cada vez que ejecuta %1, continuará la descarga desde donde la dejó.</translation>
+    </message>
+    <message>
+        <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
+        <translation type="unfinished">Si ha elegido limitar el almacenamiento de la cadena de bloques (pruning o poda), los datos históricos todavía se deben descargar y procesar, pero se eliminarán posteriormente para mantener el uso del disco bajo.</translation>
+    </message>
+    <message>
+        <source>Use the default data directory</source>
+        <translation type="unfinished">Usa el directorio de datos predeterminado</translation>
+    </message>
+    <message>
+        <source>Use a custom data directory:</source>
+        <translation type="unfinished">Usa un directorio de datos personalizado:</translation>
+    </message>
+</context>
 <context>
     <name>HelpMessageDialog</name>
     <message>
@@ -1535,9 +1970,13 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>About %1</source>
-        <translation type="unfinished">Alrededor de %1</translation>
+        <translation type="unfinished">Acerca de %1</translation>
     </message>
-    </context>
+    <message>
+        <source>Command-line options</source>
+        <translation type="unfinished">&amp;Opciones de línea de comandos</translation>
+    </message>
+</context>
 <context>
     <name>ShutdownWindow</name>
     <message>
@@ -1551,14 +1990,22 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
 </context>
 <context>
     <name>ModalOverlay</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">Formulario</translation>
+    </message>
     <message>
         <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
-        <translation type="unfinished">Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su monedero podría ser incorrecto. Esta información será correcta una vez que su monedero haya terminado de sincronizarse con la red bitcoin, como se detalla a continuación.</translation>
+        <translation type="unfinished">Es posible que las transacciones recientes aún no estén visibles y por lo tanto, el saldo de su monedero podría ser incorrecto. Esta información será correcta una vez que su monedero haya terminado de sincronizarse con la red bitcoin, como se detalla a continuación.</translation>
     </message>
     <message>
         <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source>
         <translation type="unfinished">La red no aceptará intentar gastar bitcoins que se vean afectados por transacciones aún no mostradas.</translation>
     </message>
+    <message>
+        <source>Number of blocks left</source>
+        <translation type="unfinished">Numero de bloques pendientes</translation>
+    </message>
     <message>
         <source>Unknown…</source>
         <translation type="unfinished">Desconocido...</translation>
@@ -1567,6 +2014,10 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>calculating…</source>
         <translation type="unfinished">calculando...</translation>
     </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">Hora del último bloque</translation>
+    </message>
     <message>
         <source>Progress</source>
         <translation type="unfinished">Progreso</translation>
@@ -1575,13 +2026,21 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Progress increase per hour</source>
         <translation type="unfinished">Incremento del progreso por hora</translation>
     </message>
+    <message>
+        <source>Estimated time left until synced</source>
+        <translation type="unfinished">Tiempo estimado antes de sincronizar</translation>
+    </message>
     <message>
         <source>Hide</source>
         <translation type="unfinished">Ocultar </translation>
     </message>
+    <message>
+        <source>%1 is currently syncing.  It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source>
+        <translation type="unfinished">%1 está actualmente sincronizándose. Descargará cabeceras y bloques de nodos semejantes y los validará hasta alcanzar la cabeza de la cadena de bloques.</translation>
+    </message>
     <message>
         <source>Unknown. Syncing Headers (%1, %2%)…</source>
-        <translation type="unfinished">Desconocido. Sincronizando Cabeceras (%1, %2%)…</translation>
+        <translation type="unfinished">Desconocido. Sincronizando cabeceras (%1, %2%)…</translation>
     </message>
 </context>
 <context>
@@ -1590,35 +2049,96 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Open bitcoin URI</source>
         <translation type="unfinished">Abrir URI de bitcoin</translation>
     </message>
-    </context>
-<context>
-    <name>OptionsDialog</name>
     <message>
-        <source>Options</source>
+        <source>Paste address from clipboard</source>
+        <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
+        <translation type="unfinished">Pega dirección desde portapapeles</translation>
+    </message>
+</context>
+<context>
+    <name>OptionsDialog</name>
+    <message>
+        <source>Options</source>
         <translation type="unfinished">Opciones</translation>
     </message>
     <message>
         <source>&amp;Main</source>
         <translation type="unfinished">&amp;Principal</translation>
     </message>
+    <message>
+        <source>Automatically start %1 after logging in to the system.</source>
+        <translation type="unfinished">Iniciar automáticamente %1 después de iniciar sesión en el sistema.</translation>
+    </message>
+    <message>
+        <source>&amp;Start %1 on system login</source>
+        <translation type="unfinished">&amp;Iniciar %1 al iniciar sesión en el sistema</translation>
+    </message>
     <message>
         <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
-        <translation type="unfinished">Activar el pruning reduce significativamente el espacio de disco necesario para guardar las transacciones. Todos los bloques son completamente validados de cualquier manera. Revertir esta opción requiere que descarques de nuevo toda la cadena de bloques.</translation>
+        <translation type="unfinished">Activar la poda reduce significativamente el espacio de disco necesario para guardar las transacciones. Todos los bloques son completamente validados de cualquier manera. Revertir esta opción requiere descargar de nuevo toda la cadena de bloques.</translation>
+    </message>
+    <message>
+        <source>Size of &amp;database cache</source>
+        <translation type="unfinished">Tamaño de la caché de la base de &amp;datos</translation>
+    </message>
+    <message>
+        <source>Number of script &amp;verification threads</source>
+        <translation type="unfinished">Número de hilos de &amp;verificación de scripts</translation>
+    </message>
+    <message>
+        <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
+        <translation type="unfinished">Dirección IP del proxy (Ejemplo. IPv4: 127.0.0.1 / IPv6: ::1)</translation>
+    </message>
+    <message>
+        <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source>
+        <translation type="unfinished">Muestra si el proxy SOCKS5 por defecto se utiliza para conectarse a pares a través de este tipo de red.</translation>
+    </message>
+    <message>
+        <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source>
+        <translation type="unfinished">Minimizar en vez de salir de la aplicación cuando la ventana está cerrada. Cuando se activa esta opción, la aplicación sólo se cerrará después de seleccionar Salir en el menú.</translation>
+    </message>
+    <message>
+        <source>Open the %1 configuration file from the working directory.</source>
+        <translation type="unfinished">Abrir el archivo de configuración %1 en el directorio de trabajo.</translation>
+    </message>
+    <message>
+        <source>Open Configuration File</source>
+        <translation type="unfinished">Abrir archivo de configuración</translation>
+    </message>
+    <message>
+        <source>Reset all client options to default.</source>
+        <translation type="unfinished">Restablecer todas las opciones del cliente a los valores predeterminados.</translation>
+    </message>
+    <message>
+        <source>&amp;Reset Options</source>
+        <translation type="unfinished">&amp;Restablecer opciones</translation>
     </message>
     <message>
         <source>&amp;Network</source>
         <translation type="unfinished">&amp;Red</translation>
     </message>
+    <message>
+        <source>Prune &amp;block storage to</source>
+        <translation type="unfinished">Podar el almacenamiento de &amp;bloques a</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">Revertir estas configuraciones requiere descargar de nuevo la cadena de bloques completa.</translation>
+    </message>
     <message>
         <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
         <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
-        <translation type="unfinished">Tamaño máximo de la caché de la base de datos. Una caché más grande puede contribuir a una sincronización más rápida, después de lo cual el beneficio es menos pronunciado para la mayoría de los casos de uso. Disminuir el tamaño de la caché reducirá el uso de la memoria. La memoria mempool no utilizada se comparte para esta caché.</translation>
+        <translation type="unfinished">Tamaño máximo de la caché de la base de datos. Una caché más grande puede contribuir a una sincronización más rápida, después de lo cual el beneficio es menos pronunciado para la mayoría de los casos de uso. Disminuir el tamaño de la caché reducirá el uso de la memoria. La memoria de la piscina de memoria no utilizada se comparte para esta caché.</translation>
     </message>
     <message>
         <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
         <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
         <translation type="unfinished">Establezca el número de hilos de verificación de scripts. Los valores negativos corresponden al número de núcleos que se desea dejar libres al sistema.</translation>
     </message>
+    <message>
+        <source>(0 = auto, &lt;0 = leave that many cores free)</source>
+        <translation type="unfinished">(0 = auto, &lt;0 = deja esa cantidad de núcleos libres)</translation>
+    </message>
     <message>
         <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
         <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
@@ -1629,10 +2149,14 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <extracomment>An Options window setting to enable the RPC server.</extracomment>
         <translation type="unfinished">Activar servidor R&amp;PC</translation>
     </message>
+    <message>
+        <source>W&amp;allet</source>
+        <translation type="unfinished">M&amp;onedero</translation>
+    </message>
     <message>
         <source>Whether to set subtract fee from amount as default or not.</source>
         <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
-        <translation type="unfinished">Establecer si se resta la tasa del importe por defecto o no.</translation>
+        <translation type="unfinished">Establecer si se resta la comisión del importe por defecto o no.</translation>
     </message>
     <message>
         <source>Subtract &amp;fee from amount by default</source>
@@ -1645,29 +2169,33 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Enable coin &amp;control features</source>
-        <translation type="unfinished">Habilitar características de &amp;Control de Moneda.</translation>
+        <translation type="unfinished">Habilitar características de &amp;control de moneda.</translation>
     </message>
     <message>
         <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source>
         <translation type="unfinished">Si deshabilitas el gasto de un cambio no confirmado, el cambio de una transacción no se puede usar hasta que esa transacción tenga al menos una confirmación. Esto también afecta a cómo se calcula tu saldo.</translation>
     </message>
+    <message>
+        <source>&amp;Spend unconfirmed change</source>
+        <translation type="unfinished">&amp;Gastar cambio sin confirmar</translation>
+    </message>
     <message>
         <source>Enable &amp;PSBT controls</source>
         <extracomment>An options window setting to enable PSBT controls.</extracomment>
-        <translation type="unfinished">Activar controles &amp;PSBT</translation>
+        <translation type="unfinished">Activar controles &amp;TBPF</translation>
     </message>
     <message>
         <source>Whether to show PSBT controls.</source>
         <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
-        <translation type="unfinished">Establecer si se muestran los controles PSBT</translation>
+        <translation type="unfinished">Establecer si se muestran los controles TBPF</translation>
     </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
-        <translation type="unfinished">Dispositivo Externo de Firma (ej. billetera de hardware)</translation>
+        <translation type="unfinished">Dispositivo externo de firma (ej. billetera de hardware)</translation>
     </message>
     <message>
         <source>&amp;External signer script path</source>
-        <translation type="unfinished">&amp;Ruta de script de firma externo</translation>
+        <translation type="unfinished">Ruta de script de firma &amp;externo</translation>
     </message>
     <message>
         <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
@@ -1701,13 +2229,29 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
         <translation type="unfinished">Conectar a la red de Bitcoin a través de un proxy SOCKS5.</translation>
     </message>
+    <message>
+        <source>&amp;Connect through SOCKS5 proxy (default proxy):</source>
+        <translation type="unfinished">&amp;Conectar a través del proxy SOCKS5 (proxy predeterminado):</translation>
+    </message>
+    <message>
+        <source>&amp;Port:</source>
+        <translation type="unfinished">&amp;Puerto:</translation>
+    </message>
+    <message>
+        <source>Port of the proxy (e.g. 9050)</source>
+        <translation type="unfinished">Puerto del proxy (por ejemplo, 9050)</translation>
+    </message>
+    <message>
+        <source>Used for reaching peers via:</source>
+        <translation type="unfinished">Utilizado para llegar a los pares a través de:</translation>
+    </message>
     <message>
         <source>&amp;Window</source>
         <translation type="unfinished">&amp;Ventana</translation>
     </message>
     <message>
         <source>Show the icon in the system tray.</source>
-        <translation type="unfinished">Mostrar el ícono en la bandeja del sistema.</translation>
+        <translation type="unfinished">Mostrar el icono en la bandeja del sistema.</translation>
     </message>
     <message>
         <source>&amp;Show tray icon</source>
@@ -1717,17 +2261,45 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Show only a tray icon after minimizing the window.</source>
         <translation type="unfinished">Mostrar solo un icono de bandeja después de minimizar la ventana.</translation>
     </message>
+    <message>
+        <source>&amp;Minimize to the tray instead of the taskbar</source>
+        <translation type="unfinished">&amp;Minimiza a la bandeja en vez de la barra de tareas</translation>
+    </message>
+    <message>
+        <source>M&amp;inimize on close</source>
+        <translation type="unfinished">M&amp;inimizar al cerrar</translation>
+    </message>
     <message>
         <source>&amp;Display</source>
         <translation type="unfinished">&amp;Mostrar</translation>
     </message>
+    <message>
+        <source>User Interface &amp;language:</source>
+        <translation type="unfinished">&amp;Idioma de la interfaz de usuario:</translation>
+    </message>
+    <message>
+        <source>The user interface language can be set here. This setting will take effect after restarting %1.</source>
+        <translation type="unfinished">El idioma de la interfaz de usuario puede establecerse aquí. Esta configuración tendrá efecto después de reiniciar %1.</translation>
+    </message>
+    <message>
+        <source>&amp;Unit to show amounts in:</source>
+        <translation type="unfinished">&amp;Unidad en la que mostrar importes:</translation>
+    </message>
+    <message>
+        <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
+        <translation type="unfinished">Elegir la subdivisión predeterminada para mostrar cantidades en la interfaz y cuando se envían monedas.</translation>
+    </message>
     <message>
         <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
         <translation type="unfinished">URLs de terceros (por ejemplo, un explorador de bloques) que aparecen en la pestaña de transacciones como elementos del menú contextual. %s en la URL se sustituye por el hash de la transacción. Las URL múltiples se separan con una barra vertical |.</translation>
     </message>
     <message>
         <source>&amp;Third-party transaction URLs</source>
-        <translation type="unfinished">URLs de transacciones de &amp;Terceros</translation>
+        <translation type="unfinished">URLs de transacciones de &amp;terceros</translation>
+    </message>
+    <message>
+        <source>Whether to show coin control features or not.</source>
+        <translation type="unfinished">Mostrar o no funcionalidad del control de moneda</translation>
     </message>
     <message>
         <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor onion services.</source>
@@ -1739,15 +2311,23 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Monospaced font in the Overview tab:</source>
-        <translation type="unfinished">letra Monospace en la pestaña Resumen: </translation>
+        <translation type="unfinished">Fuente monoespaciada en la pestaña Resumen:</translation>
     </message>
     <message>
         <source>embedded "%1"</source>
-        <translation type="unfinished">incrustado "%1"</translation>
+        <translation type="unfinished">incrustado «%1»</translation>
     </message>
     <message>
         <source>closest matching "%1"</source>
-        <translation type="unfinished">coincidencia más aproximada "%1"</translation>
+        <translation type="unfinished">coincidencia más aproximada «%1»</translation>
+    </message>
+    <message>
+        <source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
+        <translation type="unfinished">Las opciones establecidas en este diálogo serán invalidadas por la línea de comandos:</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation type="unfinished">&amp;Cancelar</translation>
     </message>
     <message>
         <source>Compiled without external signing support (required for external signing)</source>
@@ -1779,6 +2359,11 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <extracomment>Window title text of pop-up box that allows opening up of configuration file.</extracomment>
         <translation type="unfinished">Opciones de configuración</translation>
     </message>
+    <message>
+        <source>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</source>
+        <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
+        <translation type="unfinished">El archivo de configuración se utiliza para especificar opciones de usuario avanzadas que anulan la configuración de la GUI. Además, cualquier opción de línea de comandos anulará este archivo de configuración.</translation>
+    </message>
     <message>
         <source>Continue</source>
         <translation type="unfinished">Continuar</translation>
@@ -1812,7 +2397,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Watch-only:</source>
-        <translation type="unfinished">Solo lectura:</translation>
+        <translation type="unfinished">Solo observación:</translation>
     </message>
     <message>
         <source>Available:</source>
@@ -1830,22 +2415,42 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
         <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
         <translation type="unfinished">Total de transacciones que aún no se han sido confirmadas, y que no son contabilizadas dentro del saldo disponible para gastar</translation>
     </message>
+    <message>
+        <source>Immature:</source>
+        <translation type="unfinished">No disponible:</translation>
+    </message>
+    <message>
+        <source>Mined balance that has not yet matured</source>
+        <translation type="unfinished">Saldo recién minado que aún no está disponible</translation>
+    </message>
     <message>
         <source>Your current total balance</source>
         <translation type="unfinished">Saldo total actual</translation>
     </message>
     <message>
         <source>Your current balance in watch-only addresses</source>
-        <translation type="unfinished">Su saldo actual en direcciones solo-lectura</translation>
+        <translation type="unfinished">Su saldo actual en direcciones de observación</translation>
     </message>
     <message>
         <source>Spendable:</source>
-        <translation type="unfinished">Gastable:</translation>
+        <translation type="unfinished">Disponible:</translation>
     </message>
     <message>
         <source>Recent transactions</source>
         <translation type="unfinished">Transaciones recientes</translation>
     </message>
+    <message>
+        <source>Unconfirmed transactions to watch-only addresses</source>
+        <translation type="unfinished">Transacciones sin confirmar a direcciones de observación</translation>
+    </message>
+    <message>
+        <source>Mined balance in watch-only addresses that has not yet matured</source>
+        <translation type="unfinished">Saldo minado en direcciones de observación que aún no está disponible</translation>
+    </message>
+    <message>
+        <source>Current total balance in watch-only addresses</source>
+        <translation type="unfinished">Saldo total actual en direcciones de observación</translation>
+    </message>
     <message>
         <source>Privacy mode activated for the Overview tab. To unmask the values, uncheck Settings-&gt;Mask values.</source>
         <translation type="unfinished">Modo de privacidad activado para la pestaña de visión general. Para desenmascarar los valores, desmarcar los valores de Configuración-&gt;Máscara.</translation>
@@ -1887,7 +2492,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Cannot sign inputs while wallet is locked.</source>
-        <translation type="unfinished">No se pueden firmar las entradas mientras la billetera está bloqueada.</translation>
+        <translation type="unfinished">No se pueden firmar las entradas mientras el monedero está bloqueado.</translation>
     </message>
     <message>
         <source>Could not sign any more inputs.</source>
@@ -1903,7 +2508,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Unknown error processing transaction.</source>
-        <translation type="unfinished">Error desconocido al procesar la transacción.</translation>
+        <translation type="unfinished">Error desconocido al procesar la transacción</translation>
     </message>
     <message>
         <source>Transaction broadcast successfully! Transaction ID: %1</source>
@@ -1915,7 +2520,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>PSBT copied to clipboard.</source>
-        <translation type="unfinished">PSBT copiado al portapapeles</translation>
+        <translation type="unfinished">TBPF copiado al portapapeles</translation>
     </message>
     <message>
         <source>Save Transaction Data</source>
@@ -1928,7 +2533,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>PSBT saved to disk.</source>
-        <translation type="unfinished">PSBT guardado en la memoria.</translation>
+        <translation type="unfinished">TBPF guardado en disco.</translation>
     </message>
     <message>
         <source> * Sends %1 to %2</source>
@@ -1944,7 +2549,7 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Total Amount</source>
-        <translation type="unfinished">Cantidad Total</translation>
+        <translation type="unfinished">Importe total</translation>
     </message>
     <message>
         <source>or</source>
@@ -1980,18 +2585,26 @@ Firmar solo es posible con direcciones del tipo Legacy.</translation>
     </message>
     <message>
         <source>Transaction status is unknown.</source>
-        <translation type="unfinished">El estatus de la transacción es desconocido.</translation>
+        <translation type="unfinished">El estado de la transacción es desconocido.</translation>
     </message>
 </context>
 <context>
     <name>PaymentServer</name>
+    <message>
+        <source>Payment request error</source>
+        <translation type="unfinished">Error en la solicitud de pago</translation>
+    </message>
     <message>
         <source>Cannot start bitcoin: click-to-pay handler</source>
-        <translation type="unfinished">No se puede iniciar bitcoin: encargado click-para-pagar</translation>
+        <translation type="unfinished">No se puede iniciar bitcoin: controlador clic-para-pagar</translation>
+    </message>
+    <message>
+        <source>URI handling</source>
+        <translation type="unfinished">Gestión de URI</translation>
     </message>
     <message>
         <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
-        <translation type="unfinished">'bitcoin: //' no es un URI válido. Use 'bitcoin:' en su lugar.</translation>
+        <translation type="unfinished">«bitcoin: //» no es un URI válido. Use «bitcoin:» en su lugar.</translation>
     </message>
     <message>
         <source>Cannot process payment request because BIP70 is not supported.
@@ -2005,14 +2618,28 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
         <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
         <translation type="unfinished">¡No se puede interpretar la URI! Esto puede deberse a una dirección Bitcoin inválida o a parámetros de URI mal formados.</translation>
     </message>
-    </context>
+    <message>
+        <source>Payment request file handling</source>
+        <translation type="unfinished">Gestión del archivo de solicitud de pago</translation>
+    </message>
+</context>
 <context>
     <name>PeerTableModel</name>
+    <message>
+        <source>User Agent</source>
+        <extracomment>Title of Peers Table column which contains the peer's User Agent string.</extracomment>
+        <translation type="unfinished">Agente del usuario</translation>
+    </message>
     <message>
         <source>Peer</source>
         <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
         <translation type="unfinished">Pares</translation>
     </message>
+    <message>
+        <source>Direction</source>
+        <extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
+        <translation type="unfinished">Sentido</translation>
+    </message>
     <message>
         <source>Sent</source>
         <extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
@@ -2028,12 +2655,27 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
         <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
         <translation type="unfinished">Dirección</translation>
     </message>
+    <message>
+        <source>Type</source>
+        <extracomment>Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists.</extracomment>
+        <translation type="unfinished">Tipo</translation>
+    </message>
     <message>
         <source>Network</source>
         <extracomment>Title of Peers Table column which states the network the peer connected through.</extracomment>
         <translation type="unfinished">Red</translation>
     </message>
-    </context>
+    <message>
+        <source>Inbound</source>
+        <extracomment>An Inbound Connection from a Peer.</extracomment>
+        <translation type="unfinished">Entrante</translation>
+    </message>
+    <message>
+        <source>Outbound</source>
+        <extracomment>An Outbound Connection to a Peer.</extracomment>
+        <translation type="unfinished">Saliente</translation>
+    </message>
+</context>
 <context>
     <name>QRImageWidget</name>
     <message>
@@ -2044,6 +2686,10 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
         <source>&amp;Copy Image</source>
         <translation type="unfinished">&amp;Copiar Imagen</translation>
     </message>
+    <message>
+        <source>Resulting URI too long, try to reduce the text for label / message.</source>
+        <translation type="unfinished">URI resultante demasiado larga. Intente reducir el texto de la etiqueta / mensaje.</translation>
+    </message>
     <message>
         <source>Error encoding URI into QR Code.</source>
         <translation type="unfinished">Fallo al codificar URI en código QR.</translation>
@@ -2070,12 +2716,24 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
     </message>
     <message>
         <source>Client version</source>
-        <translation type="unfinished">Versión del Cliente</translation>
+        <translation type="unfinished">Versión del cliente</translation>
     </message>
     <message>
         <source>&amp;Information</source>
         <translation type="unfinished">&amp;Información</translation>
     </message>
+    <message>
+        <source>To specify a non-default location of the data directory use the '%1' option.</source>
+        <translation type="unfinished">Para especificar una localización personalizada del directorio de datos, usa la opción «%1».</translation>
+    </message>
+    <message>
+        <source>To specify a non-default location of the blocks directory use the '%1' option.</source>
+        <translation type="unfinished">Para especificar una localización personalizada del directorio de bloques, usa la opción «%1». </translation>
+    </message>
+    <message>
+        <source>Startup time</source>
+        <translation type="unfinished">Hora de inicio</translation>
+    </message>
     <message>
         <source>Network</source>
         <translation type="unfinished">Red</translation>
@@ -2092,6 +2750,10 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
         <source>Block chain</source>
         <translation type="unfinished">Cadena de bloques</translation>
     </message>
+    <message>
+        <source>Memory Pool</source>
+        <translation type="unfinished">Piscina de memoria</translation>
+    </message>
     <message>
         <source>Current number of transactions</source>
         <translation type="unfinished">Número actual de transacciones</translation>
@@ -2102,7 +2764,7 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
     </message>
     <message>
         <source>Wallet: </source>
-        <translation type="unfinished">Monedero</translation>
+        <translation type="unfinished">Monedero:</translation>
     </message>
     <message>
         <source>(none)</source>
@@ -2122,29 +2784,57 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
     </message>
     <message>
         <source>&amp;Peers</source>
-        <translation type="unfinished">Pares</translation>
+        <translation type="unfinished">&amp;Pares</translation>
+    </message>
+    <message>
+        <source>Banned peers</source>
+        <translation type="unfinished">Pares bloqueados</translation>
+    </message>
+    <message>
+        <source>Select a peer to view detailed information.</source>
+        <translation type="unfinished">Selecciona un par para ver la información detallada.</translation>
     </message>
     <message>
         <source>Version</source>
         <translation type="unfinished">Versión</translation>
     </message>
+    <message>
+        <source>Starting Block</source>
+        <translation type="unfinished">Bloque de inicio</translation>
+    </message>
+    <message>
+        <source>Synced Headers</source>
+        <translation type="unfinished">Encabezados sincronizados</translation>
+    </message>
+    <message>
+        <source>Synced Blocks</source>
+        <translation type="unfinished">Bloques sincronizados</translation>
+    </message>
     <message>
         <source>Last Transaction</source>
         <translation type="unfinished">Última transacción</translation>
     </message>
+    <message>
+        <source>The mapped Autonomous System used for diversifying peer selection.</source>
+        <translation type="unfinished">El Sistema Autónomo mapeado utilizado para la selección diversificada de pares.</translation>
+    </message>
+    <message>
+        <source>Mapped AS</source>
+        <translation type="unfinished">SA Mapeado</translation>
+    </message>
     <message>
         <source>Whether we relay addresses to this peer.</source>
         <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
-        <translation type="unfinished">Si retransmitimos las direcciones a este peer.</translation>
+        <translation type="unfinished">Si retransmitimos las direcciones a este par.</translation>
     </message>
     <message>
         <source>Address Relay</source>
-        <translation type="unfinished">Transimisión de la dirección</translation>
+        <translation type="unfinished">Transmisión de la dirección</translation>
     </message>
     <message>
         <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
         <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
-        <translation type="unfinished">Número total de direcciones procesadas, excluyendo las descartadas por limitación de tasa</translation>
+        <translation type="unfinished">Número total de direcciones procesadas, excluyendo las descartadas por limitación de comisión.</translation>
     </message>
     <message>
         <source>Addresses Processed</source>
@@ -2157,12 +2847,24 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
     </message>
     <message>
         <source>Addresses Rate-Limited</source>
-        <translation type="unfinished">Direcciones con límite de tasa</translation>
+        <translation type="unfinished">Direcciones con límite de ratio</translation>
+    </message>
+    <message>
+        <source>User Agent</source>
+        <translation type="unfinished">Agente del usuario</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">Ventana del nodo</translation>
     </message>
     <message>
         <source>Current block height</source>
         <translation type="unfinished">Altura del bloque actual</translation>
     </message>
+    <message>
+        <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source>
+        <translation type="unfinished">Abra el archivo de registro de depuración %1 del directorio de datos actual. Esto puede tomar unos segundos para archivos de registro grandes.</translation>
+    </message>
     <message>
         <source>Decrease font size</source>
         <translation type="unfinished">Reducir el tamaño de la fuente</translation>
@@ -2194,7 +2896,7 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
     </message>
     <message>
         <source>Whether the peer requested us to relay transactions.</source>
-        <translation type="unfinished">Si el peer nos solicitó que transmitiéramos las transacciones.</translation>
+        <translation type="unfinished">Si el par nos solicitó que transmitiéramos las transacciones.</translation>
     </message>
     <message>
         <source>Wants Tx Relay</source>
@@ -2206,7 +2908,7 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
     </message>
     <message>
         <source>High Bandwidth</source>
-        <translation type="unfinished">banda ancha</translation>
+        <translation type="unfinished">Banda ancha</translation>
     </message>
     <message>
         <source>Connection Time</source>
@@ -2218,13 +2920,77 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
     </message>
     <message>
         <source>Last Block</source>
-        <translation type="unfinished">Último Bloque</translation>
+        <translation type="unfinished">Último bloque</translation>
     </message>
     <message>
         <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
         <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
         <translation type="unfinished">Tiempo transcurrido desde que se recibió de este par una nueva transacción aceptada en nuestro mempool.</translation>
     </message>
+    <message>
+        <source>Last Send</source>
+        <translation type="unfinished">Último envío</translation>
+    </message>
+    <message>
+        <source>Last Receive</source>
+        <translation type="unfinished">Última recepción</translation>
+    </message>
+    <message>
+        <source>Ping Time</source>
+        <translation type="unfinished">Tiempo de ping</translation>
+    </message>
+    <message>
+        <source>The duration of a currently outstanding ping.</source>
+        <translation type="unfinished">La duración de un ping actualmente pendiente.</translation>
+    </message>
+    <message>
+        <source>Ping Wait</source>
+        <translation type="unfinished">Espera de ping</translation>
+    </message>
+    <message>
+        <source>Min Ping</source>
+        <translation type="unfinished">Ping mínimo</translation>
+    </message>
+    <message>
+        <source>Time Offset</source>
+        <translation type="unfinished">Desplazamiento de tiempo</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">Hora del último bloque</translation>
+    </message>
+    <message>
+        <source>&amp;Open</source>
+        <translation type="unfinished">&amp;Abrir</translation>
+    </message>
+    <message>
+        <source>&amp;Console</source>
+        <translation type="unfinished">&amp;Consola</translation>
+    </message>
+    <message>
+        <source>&amp;Network Traffic</source>
+        <translation type="unfinished">&amp;Tráfico de Red</translation>
+    </message>
+    <message>
+        <source>Totals</source>
+        <translation type="unfinished">Totales</translation>
+    </message>
+    <message>
+        <source>Debug log file</source>
+        <translation type="unfinished">Archivo de registro de depuración</translation>
+    </message>
+    <message>
+        <source>Clear console</source>
+        <translation type="unfinished">Limpiar consola</translation>
+    </message>
+    <message>
+        <source>In:</source>
+        <translation type="unfinished">Entrada:</translation>
+    </message>
+    <message>
+        <source>Out:</source>
+        <translation type="unfinished">Salida:</translation>
+    </message>
     <message>
         <source>Inbound: initiated by peer</source>
         <extracomment>Explanatory text for an inbound peer connection.</extracomment>
@@ -2276,9 +3042,13 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
         <source>&amp;Disconnect</source>
         <translation type="unfinished">&amp;Desconectar</translation>
     </message>
+    <message>
+        <source>1 &amp;hour</source>
+        <translation type="unfinished">1 &amp;hora</translation>
+    </message>
     <message>
         <source>1 d&amp;ay</source>
-        <translation type="unfinished">1 día</translation>
+        <translation type="unfinished">1 &amp;día</translation>
     </message>
     <message>
         <source>1 &amp;week</source>
@@ -2293,10 +3063,22 @@ Si recibe este error, debe solicitar al comerciante que le proporcione un URI co
         <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
         <translation type="unfinished">&amp;Copiar IP/Mascara de red</translation>
     </message>
+    <message>
+        <source>&amp;Unban</source>
+        <translation type="unfinished">&amp;Desbloquear</translation>
+    </message>
     <message>
         <source>Network activity disabled</source>
         <translation type="unfinished">Actividad de red desactivada</translation>
     </message>
+    <message>
+        <source>Executing command without any wallet</source>
+        <translation type="unfinished">Ejecutar comando sin monedero</translation>
+    </message>
+    <message>
+        <source>Executing command using "%1" wallet</source>
+        <translation type="unfinished">Ejecutar comando usando monedero «%1»</translation>
+    </message>
     <message>
         <source>Welcome to the %1 RPC console.
 Use up and down arrows to navigate history, and %2 to clear screen.
@@ -2311,7 +3093,7 @@ For more information on using this console, type %6.
 Utiliza %3 y %4 para aumentar o disminuir el tamaño de la fuente. 
 Escribe %5 para ver un resumen de los comandos disponibles. Para más información sobre cómo usar esta consola, escribe %6.
 
-%7AVISO: Los estafadores han estado activos diciendo a los usuarios que escriban comandos aquí, robando el contenido de sus carteras. No uses esta consola sin entender completamente las ramificaciones de un comando.%8</translation>
+%7 AVISO: Los estafadores han estado activos diciendo a los usuarios que escriban comandos aquí, robando el contenido de sus monederos. No uses esta consola sin entender completamente las ramificaciones de un comando.%8</translation>
     </message>
     <message>
         <source>Executing…</source>
@@ -2338,6 +3120,10 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
         <source>From</source>
         <translation type="unfinished">De</translation>
     </message>
+    <message>
+        <source>Ban for</source>
+        <translation type="unfinished">Bloqueo para</translation>
+    </message>
     <message>
         <source>Never</source>
         <translation type="unfinished">Nunca</translation>
@@ -2351,7 +3137,7 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
     <name>ReceiveCoinsDialog</name>
     <message>
         <source>&amp;Amount:</source>
-        <translation type="unfinished">&amp;Cantidad</translation>
+        <translation type="unfinished">&amp;Importe</translation>
     </message>
     <message>
         <source>&amp;Label:</source>
@@ -2365,10 +3151,46 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
         <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source>
         <translation type="unfinished">Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud esté abierta. Nota: El mensaje no se enviará con el pago a través de la red de Bitcoin.</translation>
     </message>
+    <message>
+        <source>An optional label to associate with the new receiving address.</source>
+        <translation type="unfinished">Etiqueta opcional para asociar con la nueva dirección de recepción.</translation>
+    </message>
+    <message>
+        <source>Use this form to request payments. All fields are &lt;b&gt;optional&lt;/b&gt;.</source>
+        <translation type="unfinished">Usa este formulario para solicitar un pago. Todos los campos son &lt;b&gt;opcionales&lt;/b&gt;.</translation>
+    </message>
+    <message>
+        <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source>
+        <translation type="unfinished">Un importe opcional para solicitar. Deje esto vacío o en cero para no solicitar una cantidad específica.</translation>
+    </message>
+    <message>
+        <source>An optional label to associate with the new receiving address (used by you to identify an invoice).  It is also attached to the payment request.</source>
+        <translation type="unfinished">Etiqueta opcional para asociar con la nueva dirección de recepción (utilizado por ti para identificar una factura). También esta asociado a la solicitud de pago.</translation>
+    </message>
+    <message>
+        <source>An optional message that is attached to the payment request and may be displayed to the sender.</source>
+        <translation type="unfinished">Mensaje opcional asociado a la solicitud de pago que podría ser presentado al remitente </translation>
+    </message>
+    <message>
+        <source>&amp;Create new receiving address</source>
+        <translation type="unfinished">&amp;Crear una nueva dirección de recepción</translation>
+    </message>
+    <message>
+        <source>Clear all fields of the form.</source>
+        <translation type="unfinished">Limpiar todos los campos del formulario.</translation>
+    </message>
     <message>
         <source>Clear</source>
         <translation type="unfinished">Limpiar</translation>
     </message>
+    <message>
+        <source>Requested payments history</source>
+        <translation type="unfinished">Historial de pagos solicitados</translation>
+    </message>
+    <message>
+        <source>Show the selected request (does the same as double clicking an entry)</source>
+        <translation type="unfinished">Mostrar la solicitud seleccionada (hace lo mismo que hacer doble clic en una entrada)</translation>
+    </message>
     <message>
         <source>Show</source>
         <translation type="unfinished">Mostrar</translation>
@@ -2399,7 +3221,11 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
     </message>
     <message>
         <source>Copy &amp;amount</source>
-        <translation type="unfinished">Copiar &amp;cantidad</translation>
+        <translation type="unfinished">Copiar &amp;importe</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">No se pudo desbloquear el monedero.</translation>
     </message>
     <message>
         <source>Could not generate new %1 address</source>
@@ -2418,7 +3244,7 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
     </message>
     <message>
         <source>Amount:</source>
-        <translation type="unfinished">Cantidad:</translation>
+        <translation type="unfinished">Importe:</translation>
     </message>
     <message>
         <source>Label:</source>
@@ -2432,6 +3258,10 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
         <source>Wallet:</source>
         <translation type="unfinished">Monedero:</translation>
     </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">Copiar &amp;URI</translation>
+    </message>
     <message>
         <source>Copy &amp;Address</source>
         <translation type="unfinished">Copiar &amp;Dirección</translation>
@@ -2442,7 +3272,7 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
     </message>
     <message>
         <source>Verify this address on e.g. a hardware wallet screen</source>
-        <translation type="unfinished">Verifica esta dirección en la pantalla de tu billetera fría u otro dispositivo</translation>
+        <translation type="unfinished">Verifica esta dirección en la pantalla de tu monedero frío u otro dispositivo</translation>
     </message>
     <message>
         <source>&amp;Save Image…</source>
@@ -2452,9 +3282,17 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
         <source>Payment information</source>
         <translation type="unfinished">Información del pago</translation>
     </message>
-    </context>
+    <message>
+        <source>Request payment to %1</source>
+        <translation type="unfinished">Solicitar pago a %1</translation>
+    </message>
+</context>
 <context>
     <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Fecha</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">Etiqueta</translation>
@@ -2467,7 +3305,19 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
         <source>(no label)</source>
         <translation type="unfinished">(sin etiqueta)</translation>
     </message>
-    </context>
+    <message>
+        <source>(no message)</source>
+        <translation type="unfinished">(sin mensaje)</translation>
+    </message>
+    <message>
+        <source>(no amount requested)</source>
+        <translation type="unfinished">(sin importe solicitado)</translation>
+    </message>
+    <message>
+        <source>Requested</source>
+        <translation type="unfinished">Solicitado</translation>
+    </message>
+</context>
 <context>
     <name>SendCoinsDialog</name>
     <message>
@@ -2476,7 +3326,7 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
     </message>
     <message>
         <source>Coin Control Features</source>
-        <translation type="unfinished">Características de control de la moneda</translation>
+        <translation type="unfinished">Características de control de moneda</translation>
     </message>
     <message>
         <source>automatically selected</source>
@@ -2492,7 +3342,7 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
     </message>
     <message>
         <source>Amount:</source>
-        <translation type="unfinished">Cuantía:</translation>
+        <translation type="unfinished">Importe:</translation>
     </message>
     <message>
         <source>Fee:</source>
@@ -2506,33 +3356,77 @@ Escribe %5 para ver un resumen de los comandos disponibles. Para más informaci
         <source>Change:</source>
         <translation type="unfinished">Cambio:</translation>
     </message>
+    <message>
+        <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source>
+        <translation type="unfinished">Al activarse, si la dirección esta vacía o es inválida, las monedas serán enviadas a una nueva dirección generada.</translation>
+    </message>
+    <message>
+        <source>Custom change address</source>
+        <translation type="unfinished">Dirección de cambio personalizada</translation>
+    </message>
+    <message>
+        <source>Transaction Fee:</source>
+        <translation type="unfinished">Comisión de transacción:</translation>
+    </message>
     <message>
         <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source>
         <translation type="unfinished">Si utilizas la comisión por defecto, la transacción puede tardar varias horas o incluso días (o nunca) en confirmarse. Considera elegir la comisión de forma manual o espera hasta que se haya validado completamente la cadena.</translation>
     </message>
+    <message>
+        <source>Warning: Fee estimation is currently not possible.</source>
+        <translation type="unfinished">Advertencia: En este momento no se puede estimar la comisión.</translation>
+    </message>
     <message>
         <source>per kilobyte</source>
         <translation type="unfinished">por kilobyte</translation>
     </message>
+    <message>
+        <source>Hide</source>
+        <translation type="unfinished">Ocultar</translation>
+    </message>
+    <message>
+        <source>Recommended:</source>
+        <translation type="unfinished">Recomendado:</translation>
+    </message>
+    <message>
+        <source>Custom:</source>
+        <translation type="unfinished">Personalizado:</translation>
+    </message>
+    <message>
+        <source>Send to multiple recipients at once</source>
+        <translation type="unfinished">Enviar a múltiples destinatarios a la vez</translation>
+    </message>
+    <message>
+        <source>Add &amp;Recipient</source>
+        <translation type="unfinished">Agrega &amp;destinatario</translation>
+    </message>
+    <message>
+        <source>Clear all fields of the form.</source>
+        <translation type="unfinished">Limpiar todos los campos del formulario.</translation>
+    </message>
     <message>
         <source>Inputs…</source>
         <translation type="unfinished">Entradas...</translation>
     </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">Polvo:</translation>
+    </message>
     <message>
         <source>Choose…</source>
         <translation type="unfinished">Elegir...</translation>
     </message>
     <message>
         <source>Hide transaction fee settings</source>
-        <translation type="unfinished">Ocultar ajustes de tarifas de transacción</translation>
+        <translation type="unfinished">Ocultar ajustes de comisión de transacción</translation>
     </message>
     <message>
         <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size.
 
 Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satoshis per kvB" for a transaction size of 500 virtual bytes (half of 1 kvB) would ultimately yield a fee of only 50 satoshis.</source>
-        <translation type="unfinished">Especifica una tarifa personalizada por kB (1.000 bytes) del tamaño virtual de la transacción.
+        <translation type="unfinished">Especifica una comisión personalizada por kB (1.000 bytes) del tamaño virtual de la transacción.
 
-Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por kvB" para una transacción de 500 bytes virtuales (la mitad de 1 kvB), supondría finalmente una tasa de sólo 50 satoshis.</translation>
+Nota: Dado que la comisión se calcula por cada byte, una tasa de «100 satoshis por kvB» para una transacción de 500 bytes virtuales (la mitad de 1 kvB), supondría finalmente una comisión de sólo 50 satoshis.</translation>
     </message>
     <message>
         <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
@@ -2547,30 +3441,106 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <translation type="unfinished">(Comisión inteligente no inicializada todavía. Esto normalmente tarda unos pocos bloques…)</translation>
     </message>
     <message>
-        <source>Sign on device</source>
-        <extracomment>"device" usually means a hardware wallet.</extracomment>
-        <translation type="unfinished">Iniciar sesión en el dispositivo</translation>
+        <source>Confirmation time target:</source>
+        <translation type="unfinished">Objetivo de tiempo de confirmación</translation>
     </message>
     <message>
-        <source>Connect your hardware wallet first.</source>
-        <translation type="unfinished">Conecta tu monedero externo primero.</translation>
+        <source>Enable Replace-By-Fee</source>
+        <translation type="unfinished">Habilitar Replace-By-Fee</translation>
     </message>
     <message>
-        <source>Set external signer script path in Options -&gt; Wallet</source>
-        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
-        <translation type="unfinished">Configura una ruta externa al script en Opciones -&gt; Monedero</translation>
+        <source>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</source>
+        <translation type="unfinished">Con Replace-By-Fee (BIP-125) puede incrementar la comisión después de haber enviado la transacción. Si no utiliza esto, se recomienda que añada una comisión mayor para compensar el riesgo adicional de que la transacción se retrase.</translation>
     </message>
     <message>
-        <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
-        <translation type="unfinished">Crea una Transacción de Bitcoin Parcialmente Firmada (TBPF) para uso con p.ej. un monedero fuera de linea %1, o un monedero de hardware compatible con TBPF</translation>
+        <source>Clear &amp;All</source>
+        <translation type="unfinished">Limpiar &amp;todo</translation>
     </message>
     <message>
-        <source>To review recipient list click "Show Details…"</source>
-        <translation type="unfinished">Para ver la lista de receptores haga clic en "Mostrar detalles"</translation>
+        <source>Balance:</source>
+        <translation type="unfinished">Saldo:</translation>
     </message>
     <message>
-        <source>Sign failed</source>
-        <translation type="unfinished">La firma falló</translation>
+        <source>Confirm the send action</source>
+        <translation type="unfinished">Confirmar el envío</translation>
+    </message>
+    <message>
+        <source>S&amp;end</source>
+        <translation type="unfinished">&amp;Enviar</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">Copiar cantidad</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">Copiar importe</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Copiar comisión</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Copiar después de la comisión</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">Copiar bytes</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">Copiar polvo</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">Copiar cambio</translation>
+    </message>
+    <message>
+        <source>%1 (%2 blocks)</source>
+        <translation type="unfinished">%1 (%2 bloques)</translation>
+    </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">Iniciar sesión en el dispositivo</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">Conecta tu monedero externo primero.</translation>
+    </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Configura una ruta externa al script en Opciones -&gt; Monedero</translation>
+    </message>
+    <message>
+        <source>Cr&amp;eate Unsigned</source>
+        <translation type="unfinished">Cr&amp;ear sin firmar</translation>
+    </message>
+    <message>
+        <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <translation type="unfinished">Crea una Transacción de Bitcoin Parcialmente Firmada (TBPF) para uso con p.ej. un monedero fuera de linea %1, o un monedero de hardware compatible con TBPF</translation>
+    </message>
+    <message>
+        <source> from wallet '%1'</source>
+        <translation type="unfinished">desde monedero «%1»</translation>
+    </message>
+    <message>
+        <source>%1 to '%2'</source>
+        <translation type="unfinished">%1 a «%2»</translation>
+    </message>
+    <message>
+        <source>%1 to %2</source>
+        <translation type="unfinished">%1 a %2</translation>
+    </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">Para ver la lista de receptores haga clic en "Mostrar detalles"</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">La firma falló</translation>
     </message>
     <message>
         <source>External signer not found</source>
@@ -2593,7 +3563,7 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
     </message>
     <message>
         <source>PSBT saved</source>
-        <translation type="unfinished">PSBT guardado </translation>
+        <translation type="unfinished">TBPF guardado </translation>
     </message>
     <message>
         <source>External balance:</source>
@@ -2603,6 +3573,10 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>or</source>
         <translation type="unfinished">o</translation>
     </message>
+    <message>
+        <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source>
+        <translation type="unfinished">Puede incrementar la comisión más tarde (use Replace-By-Fee, BIP-125).</translation>
+    </message>
     <message>
         <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
@@ -2611,12 +3585,12 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
     <message>
         <source>Do you want to create this transaction?</source>
         <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
-        <translation type="unfinished">Deseas crear esta transacción?</translation>
+        <translation type="unfinished">¿Deseas crear esta transacción?</translation>
     </message>
     <message>
         <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
-        <translation type="unfinished">Por favor, revisa tu transacción. Puedes crear y enviar esta transacción o crear una Transacción Bitcoin Parcialmente Firmada (PSBT), que puedes guardar o copiar y luego firmar con, por ejemplo, un monedero %1 offline o un monedero hardware compatible con PSBT.</translation>
+        <translation type="unfinished">Por favor, revisa tu transacción. Puedes crear y enviar esta transacción o crear una Transacción Bitcoin Parcialmente Firmada (TBPF), que puedes guardar o copiar y luego firmar con, por ejemplo, un monedero %1 offline o un monedero hardware compatible con TBPF.</translation>
     </message>
     <message>
         <source>Please, review your transaction.</source>
@@ -2627,21 +3601,77 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>Transaction fee</source>
         <translation type="unfinished">Comisión por transacción.</translation>
     </message>
+    <message>
+        <source>Not signalling Replace-By-Fee, BIP-125.</source>
+        <translation type="unfinished">No usa Replace-By-Fee, BIP-125.</translation>
+    </message>
     <message>
         <source>Total Amount</source>
-        <translation type="unfinished">Cantidad total</translation>
+        <translation type="unfinished">Importe total</translation>
+    </message>
+    <message>
+        <source>Confirm send coins</source>
+        <translation type="unfinished">Confirmar el envío de monedas</translation>
+    </message>
+    <message>
+        <source>Watch-only balance:</source>
+        <translation type="unfinished">Balance solo observación:</translation>
+    </message>
+    <message>
+        <source>The recipient address is not valid. Please recheck.</source>
+        <translation type="unfinished">La dirección de envío no es válida. Por favor revísela.</translation>
+    </message>
+    <message>
+        <source>The amount to pay must be larger than 0.</source>
+        <translation type="unfinished">El importe a pagar debe ser mayor que 0.</translation>
+    </message>
+    <message>
+        <source>The amount exceeds your balance.</source>
+        <translation type="unfinished">El importe sobrepasa su saldo.</translation>
+    </message>
+    <message>
+        <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+        <translation type="unfinished">El total sobrepasa su saldo cuando se incluye la comisión de envío de %1.</translation>
+    </message>
+    <message>
+        <source>Duplicate address found: addresses should only be used once each.</source>
+        <translation type="unfinished">Dirección duplicada encontrada: las direcciones sólo deben ser utilizadas una vez.</translation>
+    </message>
+    <message>
+        <source>Transaction creation failed!</source>
+        <translation type="unfinished">¡Fallo al crear la transacción!</translation>
+    </message>
+    <message>
+        <source>A fee higher than %1 is considered an absurdly high fee.</source>
+        <translation type="unfinished">Una comisión mayor que %1 se considera como una comisión absurdamente alta.</translation>
+    </message>
+    <message>
+        <source>Payment request expired.</source>
+        <translation type="unfinished">Solicitud de pago expirada</translation>
     </message>
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Estimado para comenzar confirmación dentro de %n bloque.</numerusform>
+            <numerusform>Estimado para comenzar confirmación dentro de %n bloques.</numerusform>
         </translation>
     </message>
     <message>
         <source>Warning: Invalid Bitcoin address</source>
         <translation type="unfinished">Alerta: Dirección de Bitcoin inválida</translation>
     </message>
+    <message>
+        <source>Warning: Unknown change address</source>
+        <translation type="unfinished">Alerta: Dirección de cambio desconocida</translation>
+    </message>
+    <message>
+        <source>Confirm custom change address</source>
+        <translation type="unfinished">Confirmar dirección de cambio personalizada</translation>
+    </message>
+    <message>
+        <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source>
+        <translation type="unfinished">La dirección que ha seleccionado para el cambio no es parte de su monedero. Parte o todos sus fondos pueden ser enviados a esta dirección. ¿Está seguro?</translation>
+    </message>
     <message>
         <source>(no label)</source>
         <translation type="unfinished">(sin etiqueta)</translation>
@@ -2649,6 +3679,18 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
 </context>
 <context>
     <name>SendCoinsEntry</name>
+    <message>
+        <source>A&amp;mount:</source>
+        <translation type="unfinished">I&amp;mporte:</translation>
+    </message>
+    <message>
+        <source>Pay &amp;To:</source>
+        <translation type="unfinished">Pagar &amp;a:</translation>
+    </message>
+    <message>
+        <source>&amp;Label:</source>
+        <translation type="unfinished">&amp;Etiqueta:</translation>
+    </message>
     <message>
         <source>Choose previously used address</source>
         <translation type="unfinished">Escoger una dirección previamente usada</translation>
@@ -2657,17 +3699,25 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>The Bitcoin address to send the payment to</source>
         <translation type="unfinished">Dirección Bitcoin a la que se enviará el pago</translation>
     </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">Pegar dirección desde portapapeles</translation>
+    </message>
     <message>
         <source>Remove this entry</source>
         <translation type="unfinished">Quitar esta entrada</translation>
     </message>
     <message>
         <source>The amount to send in the selected unit</source>
-        <translation type="unfinished">El monto a enviar en la unidad seleccionada</translation>
+        <translation type="unfinished">El importe a enviar en la unidad seleccionada</translation>
     </message>
     <message>
         <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source>
-        <translation type="unfinished">La comisión será deducida de la cantidad enviada. El destinatario recibirá menos bitcoins que la cantidad introducida en el campo Cantidad. Si hay varios destinatarios seleccionados, la comisión será distribuida a partes iguales.</translation>
+        <translation type="unfinished">La comisión será deducida de la cantidad enviada. El destinatario recibirá menos bitcoins que la cantidad introducida en el campo Importe. Si hay varios destinatarios seleccionados, la comisión será distribuida a partes iguales.</translation>
+    </message>
+    <message>
+        <source>S&amp;ubtract fee from amount</source>
+        <translation type="unfinished">S&amp;ustraer comisión del importe.</translation>
     </message>
     <message>
         <source>Use available balance</source>
@@ -2691,7 +3741,7 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
     </message>
     <message>
         <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source>
-        <translation type="unfinished">Mensaje que se agrgará al URI de Bitcoin, el cuál será almacenado con la transacción para su referencia. Nota: Este mensaje no será mandado a través de la red de Bitcoin.</translation>
+        <translation type="unfinished">Mensaje que se agrgará al URI de Bitcoin, el cuál será almacenado con la transacción para su referencia. Nota: Este mensaje no será enviado a través de la red de Bitcoin.</translation>
     </message>
     <message>
         <source>Pay To:</source>
@@ -2711,9 +3761,13 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
 </context>
 <context>
     <name>SignVerifyMessageDialog</name>
+    <message>
+        <source>Signatures - Sign / Verify a Message</source>
+        <translation type="unfinished">Firmas - Firmar / verificar un mensaje</translation>
+    </message>
     <message>
         <source>&amp;Sign Message</source>
-        <translation type="unfinished">&amp;Firmar Mensaje</translation>
+        <translation type="unfinished">&amp;Firmar mensaje</translation>
     </message>
     <message>
         <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
@@ -2731,27 +3785,123 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>Paste address from clipboard</source>
         <translation type="unfinished">Pega dirección desde portapapeles</translation>
     </message>
+    <message>
+        <source>Enter the message you want to sign here</source>
+        <translation type="unfinished">Escribe aquí el mensaje que deseas firmar</translation>
+    </message>
     <message>
         <source>Signature</source>
         <translation type="unfinished">Firma</translation>
     </message>
+    <message>
+        <source>Copy the current signature to the system clipboard</source>
+        <translation type="unfinished">Copiar la firma actual al portapapeles del sistema</translation>
+    </message>
     <message>
         <source>Sign the message to prove you own this Bitcoin address</source>
         <translation type="unfinished">Firmar un mensaje para demostrar que se posee una dirección Bitcoin</translation>
     </message>
+    <message>
+        <source>Sign &amp;Message</source>
+        <translation type="unfinished">Firmar &amp;mensaje</translation>
+    </message>
+    <message>
+        <source>Reset all sign message fields</source>
+        <translation type="unfinished">Limpiar todos los campos de la firma de mensaje</translation>
+    </message>
+    <message>
+        <source>Clear &amp;All</source>
+        <translation type="unfinished">Limpiar &amp;todo</translation>
+    </message>
+    <message>
+        <source>&amp;Verify Message</source>
+        <translation type="unfinished">&amp;Verificar mensaje</translation>
+    </message>
+    <message>
+        <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source>
+        <translation type="unfinished">Introduzca la dirección para la firma, el mensaje (asegurándose de copiar tal cual los saltos de línea, espacios, tabulaciones, etc.) y la firma a continuación para verificar el mensaje. Tenga cuidado de no asumir más información de lo que dice el propio mensaje firmado para evitar fraudes basados en ataques de tipo man-in-the-middle. Tenga en cuenta que esto solo prueba que la parte firmante recibe con esta dirección, ¡no puede probar el envío de ninguna transacción!</translation>
+    </message>
     <message>
         <source>The Bitcoin address the message was signed with</source>
         <translation type="unfinished">Dirección Bitcoin con la que firmar el mensaje</translation>
     </message>
+    <message>
+        <source>The signed message to verify</source>
+        <translation type="unfinished">El mensaje firmado para verificar</translation>
+    </message>
+    <message>
+        <source>The signature given when the message was signed</source>
+        <translation type="unfinished">La firma proporcionada cuando el mensaje fue firmado</translation>
+    </message>
     <message>
         <source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
         <translation type="unfinished">Verifique el mensaje para comprobar que fue firmado con la dirección Bitcoin indicada</translation>
     </message>
+    <message>
+        <source>Verify &amp;Message</source>
+        <translation type="unfinished">Verificar &amp;mensaje</translation>
+    </message>
+    <message>
+        <source>Reset all verify message fields</source>
+        <translation type="unfinished">Limpiar todos los campos de la verificación de mensaje</translation>
+    </message>
+    <message>
+        <source>Click "Sign Message" to generate signature</source>
+        <translation type="unfinished">Haga clic en «Firmar mensaje» para generar la firma</translation>
+    </message>
+    <message>
+        <source>The entered address is invalid.</source>
+        <translation type="unfinished">La dirección introducida es inválida</translation>
+    </message>
+    <message>
+        <source>Please check the address and try again.</source>
+        <translation type="unfinished">Por favor, revise la dirección e inténtelo nuevamente.</translation>
+    </message>
+    <message>
+        <source>The entered address does not refer to a key.</source>
+        <translation type="unfinished">La dirección introducida no corresponde a una clave.</translation>
+    </message>
+    <message>
+        <source>Wallet unlock was cancelled.</source>
+        <translation type="unfinished">Se ha cancelado el desbloqueo del monedero. </translation>
+    </message>
+    <message>
+        <source>No error</source>
+        <translation type="unfinished">Sin error </translation>
+    </message>
+    <message>
+        <source>Private key for the entered address is not available.</source>
+        <translation type="unfinished">No se dispone de la clave privada para la dirección introducida.</translation>
+    </message>
+    <message>
+        <source>Message signing failed.</source>
+        <translation type="unfinished">Falló la firma del mensaje.</translation>
+    </message>
     <message>
         <source>Message signed.</source>
         <translation type="unfinished">Mensaje firmado.</translation>
     </message>
-    </context>
+    <message>
+        <source>The signature could not be decoded.</source>
+        <translation type="unfinished">La firma no pudo decodificarse.</translation>
+    </message>
+    <message>
+        <source>Please check the signature and try again.</source>
+        <translation type="unfinished">Por favor, compruebe la firma e inténtelo de nuevo.</translation>
+    </message>
+    <message>
+        <source>The signature did not match the message digest.</source>
+        <translation type="unfinished">La firma no coincide con el resumen del mensaje.</translation>
+    </message>
+    <message>
+        <source>Message verification failed.</source>
+        <translation type="unfinished">Falló la verificación del mensaje.</translation>
+    </message>
+    <message>
+        <source>Message verified.</source>
+        <translation type="unfinished">Mensaje verificado.</translation>
+    </message>
+</context>
 <context>
     <name>SplashScreen</name>
     <message>
@@ -2765,6 +3915,38 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
 </context>
 <context>
     <name>TransactionDesc</name>
+    <message>
+        <source>conflicted with a transaction with %1 confirmations</source>
+        <translation type="unfinished">Hay un conflicto con una transacción de %1 confirmaciones.</translation>
+    </message>
+    <message>
+        <source>0/unconfirmed, %1</source>
+        <translation type="unfinished">0/sin confirmar, %1</translation>
+    </message>
+    <message>
+        <source>in memory pool</source>
+        <translation type="unfinished">en la piscina de memoria</translation>
+    </message>
+    <message>
+        <source>not in memory pool</source>
+        <translation type="unfinished">no en la piscina de memoria</translation>
+    </message>
+    <message>
+        <source>abandoned</source>
+        <translation type="unfinished">abandonada</translation>
+    </message>
+    <message>
+        <source>%1/unconfirmed</source>
+        <translation type="unfinished">%1/sin confirmar</translation>
+    </message>
+    <message>
+        <source>%1 confirmations</source>
+        <translation type="unfinished">%1 confirmaciones</translation>
+    </message>
+    <message>
+        <source>Status</source>
+        <translation type="unfinished">Estado</translation>
+    </message>
     <message>
         <source>Date</source>
         <translation type="unfinished">Fecha</translation>
@@ -2777,28 +3959,199 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>Generated</source>
         <translation type="unfinished">Generado</translation>
     </message>
+    <message>
+        <source>From</source>
+        <translation type="unfinished">De</translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished">desconocido</translation>
+    </message>
+    <message>
+        <source>To</source>
+        <translation type="unfinished">Para</translation>
+    </message>
+    <message>
+        <source>own address</source>
+        <translation type="unfinished">dirección propia</translation>
+    </message>
     <message>
         <source>watch-only</source>
         <translation type="unfinished">Solo observación</translation>
     </message>
+    <message>
+        <source>label</source>
+        <translation type="unfinished">etiqueta</translation>
+    </message>
+    <message>
+        <source>Credit</source>
+        <translation type="unfinished">Crédito</translation>
+    </message>
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>disponible en %n bloque más</numerusform>
+            <numerusform>disponible en %n bloques más</numerusform>
         </translation>
     </message>
+    <message>
+        <source>not accepted</source>
+        <translation type="unfinished">no aceptada</translation>
+    </message>
+    <message>
+        <source>Debit</source>
+        <translation type="unfinished">Débito</translation>
+    </message>
+    <message>
+        <source>Total debit</source>
+        <translation type="unfinished">Total débito</translation>
+    </message>
+    <message>
+        <source>Total credit</source>
+        <translation type="unfinished">Total crédito</translation>
+    </message>
     <message>
         <source>Transaction fee</source>
         <translation type="unfinished">Comisión por transacción.</translation>
     </message>
-    </context>
+    <message>
+        <source>Net amount</source>
+        <translation type="unfinished">Importe neto</translation>
+    </message>
+    <message>
+        <source>Message</source>
+        <translation type="unfinished">Mensaje</translation>
+    </message>
+    <message>
+        <source>Comment</source>
+        <translation type="unfinished">Comentario</translation>
+    </message>
+    <message>
+        <source>Transaction ID</source>
+        <translation type="unfinished">ID transacción</translation>
+    </message>
+    <message>
+        <source>Transaction total size</source>
+        <translation type="unfinished">Tamaño total transacción</translation>
+    </message>
+    <message>
+        <source>Transaction virtual size</source>
+        <translation type="unfinished">Tamaño virtual transacción</translation>
+    </message>
+    <message>
+        <source>Output index</source>
+        <translation type="unfinished">Índice de salida</translation>
+    </message>
+    <message>
+        <source> (Certificate was not verified)</source>
+        <translation type="unfinished"> (No se ha verificado el certificado)</translation>
+    </message>
+    <message>
+        <source>Merchant</source>
+        <translation type="unfinished">Comerciante</translation>
+    </message>
+    <message>
+        <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+        <translation type="unfinished">Las monedas generadas deben madurar %1 bloques antes de que puedan ser gastadas. Una vez que generas este bloque, es propagado por la red para ser añadido a la cadena de bloques. Si falla el intento de añadirse en la cadena, su estado cambiará a «no aceptado» y ya no se puede gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque a los pocos segundos del tuyo.</translation>
+    </message>
+    <message>
+        <source>Debug information</source>
+        <translation type="unfinished">Información de depuración</translation>
+    </message>
+    <message>
+        <source>Transaction</source>
+        <translation type="unfinished">Transacción</translation>
+    </message>
+    <message>
+        <source>Inputs</source>
+        <translation type="unfinished">Entradas</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Importe</translation>
+    </message>
+    <message>
+        <source>true</source>
+        <translation type="unfinished">verdadero</translation>
+    </message>
+    <message>
+        <source>false</source>
+        <translation type="unfinished">falso</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDescDialog</name>
+    <message>
+        <source>This pane shows a detailed description of the transaction</source>
+        <translation type="unfinished">Esta ventana muestra información detallada sobre la transacción</translation>
+    </message>
+    <message>
+        <source>Details for %1</source>
+        <translation type="unfinished">Detalles para %1</translation>
+    </message>
+</context>
 <context>
     <name>TransactionTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Fecha</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">Tipo</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">Etiqueta</translation>
     </message>
+    <message>
+        <source>Unconfirmed</source>
+        <translation type="unfinished">Sin confirmar</translation>
+    </message>
+    <message>
+        <source>Abandoned</source>
+        <translation type="unfinished">Abandonada</translation>
+    </message>
+    <message>
+        <source>Confirming (%1 of %2 recommended confirmations)</source>
+        <translation type="unfinished">Confirmando (%1 de %2 confirmaciones recomendadas)</translation>
+    </message>
+    <message>
+        <source>Confirmed (%1 confirmations)</source>
+        <translation type="unfinished">Confirmada (%1 confirmaciones)</translation>
+    </message>
+    <message>
+        <source>Conflicted</source>
+        <translation type="unfinished">En conflicto</translation>
+    </message>
+    <message>
+        <source>Immature (%1 confirmations, will be available after %2)</source>
+        <translation type="unfinished">No disponible (%1 confirmaciones, disponible después de %2)</translation>
+    </message>
+    <message>
+        <source>Generated but not accepted</source>
+        <translation type="unfinished">Generada pero no aceptada</translation>
+    </message>
+    <message>
+        <source>Received with</source>
+        <translation type="unfinished">Recibido con</translation>
+    </message>
+    <message>
+        <source>Received from</source>
+        <translation type="unfinished">Recibido de</translation>
+    </message>
+    <message>
+        <source>Sent to</source>
+        <translation type="unfinished">Enviado a</translation>
+    </message>
+    <message>
+        <source>Payment to yourself</source>
+        <translation type="unfinished">Pago a mi mismo</translation>
+    </message>
+    <message>
+        <source>Mined</source>
+        <translation type="unfinished">Minado </translation>
+    </message>
     <message>
         <source>watch-only</source>
         <translation type="unfinished">Solo observación</translation>
@@ -2807,24 +4160,100 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>(no label)</source>
         <translation type="unfinished">(sin etiqueta)</translation>
     </message>
-    </context>
+    <message>
+        <source>Transaction status. Hover over this field to show number of confirmations.</source>
+        <translation type="unfinished">Estado de transacción. Pasa el ratón sobre este campo para ver el número de confirmaciones.</translation>
+    </message>
+    <message>
+        <source>Date and time that the transaction was received.</source>
+        <translation type="unfinished">Fecha y hora cuando se recibió la transacción.</translation>
+    </message>
+    <message>
+        <source>Type of transaction.</source>
+        <translation type="unfinished">Tipo de transacción.</translation>
+    </message>
+    <message>
+        <source>Whether or not a watch-only address is involved in this transaction.</source>
+        <translation type="unfinished">Si una dirección de solo observación está involucrada en esta transacción o no.</translation>
+    </message>
+    <message>
+        <source>User-defined intent/purpose of the transaction.</source>
+        <translation type="unfinished">Descripción de la transacción definida por el usuario.</translation>
+    </message>
+    <message>
+        <source>Amount removed from or added to balance.</source>
+        <translation type="unfinished">Importe sustraído o añadido al balance.</translation>
+    </message>
+</context>
 <context>
     <name>TransactionView</name>
+    <message>
+        <source>All</source>
+        <translation type="unfinished">Todo</translation>
+    </message>
+    <message>
+        <source>Today</source>
+        <translation type="unfinished">Hoy</translation>
+    </message>
+    <message>
+        <source>This week</source>
+        <translation type="unfinished">Esta semana</translation>
+    </message>
+    <message>
+        <source>This month</source>
+        <translation type="unfinished">Este mes</translation>
+    </message>
+    <message>
+        <source>Last month</source>
+        <translation type="unfinished">El mes pasado </translation>
+    </message>
+    <message>
+        <source>This year</source>
+        <translation type="unfinished">Este año</translation>
+    </message>
+    <message>
+        <source>Received with</source>
+        <translation type="unfinished">Recibido con</translation>
+    </message>
+    <message>
+        <source>Sent to</source>
+        <translation type="unfinished">Enviado a</translation>
+    </message>
+    <message>
+        <source>To yourself</source>
+        <translation type="unfinished">A ti mismo</translation>
+    </message>
+    <message>
+        <source>Mined</source>
+        <translation type="unfinished">Minado</translation>
+    </message>
+    <message>
+        <source>Other</source>
+        <translation type="unfinished">Otra</translation>
+    </message>
+    <message>
+        <source>Enter address, transaction id, or label to search</source>
+        <translation type="unfinished">Introduzca dirección, id de transacción o etiqueta a buscar</translation>
+    </message>
+    <message>
+        <source>Min amount</source>
+        <translation type="unfinished">Importe mínimo</translation>
+    </message>
     <message>
         <source>Range…</source>
         <translation type="unfinished">Rango...</translation>
     </message>
     <message>
         <source>&amp;Copy address</source>
-        <translation type="unfinished">copiar dirección </translation>
+        <translation type="unfinished">&amp;Copiar dirección</translation>
     </message>
     <message>
         <source>Copy &amp;label</source>
-        <translation type="unfinished">copiar y etiquetar </translation>
+        <translation type="unfinished">Copiar &amp;etiqueta</translation>
     </message>
     <message>
         <source>Copy &amp;amount</source>
-        <translation type="unfinished">Copiar cantidad</translation>
+        <translation type="unfinished">Copiar &amp;importe</translation>
     </message>
     <message>
         <source>Copy transaction &amp;ID</source>
@@ -2832,23 +4261,23 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
     </message>
     <message>
         <source>Copy &amp;raw transaction</source>
-        <translation type="unfinished">Copiar traducción en crudo</translation>
+        <translation type="unfinished">Copiar transacción en c&amp;rudo</translation>
     </message>
     <message>
         <source>Copy full transaction &amp;details</source>
-        <translation type="unfinished">Copiar la transacción entera &amp; detalles</translation>
+        <translation type="unfinished">Copiar &amp;detalles completos de la transacción</translation>
     </message>
     <message>
         <source>&amp;Show transaction details</source>
-        <translation type="unfinished">Mostrar detalles de la transacción</translation>
+        <translation type="unfinished">&amp;Mostrar detalles de la transacción</translation>
     </message>
     <message>
         <source>Increase transaction &amp;fee</source>
-        <translation type="unfinished">Incrementar la comisión de transacción</translation>
+        <translation type="unfinished">&amp;Incrementar la comisión de transacción</translation>
     </message>
     <message>
         <source>A&amp;bandon transaction</source>
-        <translation type="unfinished">Abandonar transacción</translation>
+        <translation type="unfinished">A&amp;bandonar transacción</translation>
     </message>
     <message>
         <source>&amp;Edit address label</source>
@@ -2859,10 +4288,31 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
         <translation type="unfinished">Mostrar en %1</translation>
     </message>
+    <message>
+        <source>Export Transaction History</source>
+        <translation type="unfinished">Exportar historial de transacciones</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Archivo separado por comas</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">Confirmado</translation>
     </message>
+    <message>
+        <source>Watch-only</source>
+        <translation type="unfinished">Solo observación</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Fecha</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">Tipo</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">Etiqueta</translation>
@@ -2875,7 +4325,27 @@ Nota: Dado que la tasa se calcula por cada byte, una tasa de "100 satoshis por k
         <source>Exporting Failed</source>
         <translation type="unfinished">La exportación falló</translation>
     </message>
-    </context>
+    <message>
+        <source>There was an error trying to save the transaction history to %1.</source>
+        <translation type="unfinished">Ha habido un error al intentar guardar en el histórico la transacción con %1.</translation>
+    </message>
+    <message>
+        <source>Exporting Successful</source>
+        <translation type="unfinished">Exportación satisfactoria</translation>
+    </message>
+    <message>
+        <source>The transaction history was successfully saved to %1.</source>
+        <translation type="unfinished">El historial de transacciones ha sido guardado exitosamente en %1</translation>
+    </message>
+    <message>
+        <source>Range:</source>
+        <translation type="unfinished">Rango:</translation>
+    </message>
+    <message>
+        <source>to</source>
+        <translation type="unfinished">a</translation>
+    </message>
+</context>
 <context>
     <name>WalletFrame</name>
     <message>
@@ -2892,7 +4362,7 @@ Vaya a Archivo&gt; Abrir monedero para cargar un monedero.
     </message>
     <message>
         <source>Unable to decode PSBT from clipboard (invalid base64)</source>
-        <translation type="unfinished">No se puede decodificar PSBT desde el portapapeles (inválido base64)</translation>
+        <translation type="unfinished">No se puede decodificar TBPF desde el portapapeles (inválido base64)</translation>
     </message>
     <message>
         <source>Load Transaction Data</source>
@@ -2904,23 +4374,71 @@ Vaya a Archivo&gt; Abrir monedero para cargar un monedero.
     </message>
     <message>
         <source>PSBT file must be smaller than 100 MiB</source>
-        <translation type="unfinished">El archivo PSBT debe ser más pequeño de 100 MiB</translation>
+        <translation type="unfinished">El archivo TBPF debe ser más pequeño de 100 MiB</translation>
     </message>
     <message>
         <source>Unable to decode PSBT</source>
-        <translation type="unfinished">Imposible descodificar PSBT</translation>
+        <translation type="unfinished">Imposible descodificar TBPF</translation>
     </message>
 </context>
 <context>
     <name>WalletModel</name>
+    <message>
+        <source>Send Coins</source>
+        <translation type="unfinished">Enviar monedas</translation>
+    </message>
+    <message>
+        <source>Fee bump error</source>
+        <translation type="unfinished">Error de incremento de la comisión</translation>
+    </message>
+    <message>
+        <source>Increasing transaction fee failed</source>
+        <translation type="unfinished">Ha fallado el incremento de la comisión de transacción.</translation>
+    </message>
+    <message>
+        <source>Do you want to increase the fee?</source>
+        <extracomment>Asks a user if they would like to manually increase the fee of a transaction that has already been created.</extracomment>
+        <translation type="unfinished">¿Desea incrementar la comisión?</translation>
+    </message>
+    <message>
+        <source>Current fee:</source>
+        <translation type="unfinished">Comisión actual:</translation>
+    </message>
+    <message>
+        <source>Increase:</source>
+        <translation type="unfinished">Incremento:</translation>
+    </message>
+    <message>
+        <source>New fee:</source>
+        <translation type="unfinished">Nueva comisión:</translation>
+    </message>
     <message>
         <source>Warning: This may pay the additional fee by reducing change outputs or adding inputs, when necessary. It may add a new change output if one does not already exist. These changes may potentially leak privacy.</source>
-        <translation type="unfinished">Advertencia: Esto puede pagar la tasa adicional al reducir el cambio de salidas o agregar entradas, cuando sea necesario. Puede agregar una nueva salida de cambio si aún no existe. Estos cambios pueden potencialmente filtrar la privacidad.</translation>
+        <translation type="unfinished">Advertencia: Esto puede pagar la comisión adicional al reducir el cambio de salidas o agregar entradas, cuando sea necesario. Puede agregar una nueva salida de cambio si aún no existe. Potencialmente estos cambios pueden comprometer la privacidad.</translation>
+    </message>
+    <message>
+        <source>Confirm fee bump</source>
+        <translation type="unfinished">Confirmar incremento de comisión</translation>
+    </message>
+    <message>
+        <source>Can't draft transaction.</source>
+        <translation type="unfinished">No se pudo preparar la transacción.</translation>
+    </message>
+    <message>
+        <source>PSBT copied</source>
+        <translation type="unfinished">TBPF copiada </translation>
+    </message>
+    <message>
+        <source>Can't sign transaction.</source>
+        <translation type="unfinished">No se ha podido firmar la transacción.</translation>
+    </message>
+    <message>
+        <source>Could not commit transaction</source>
+        <translation type="unfinished">No se pudo confirmar la transacción</translation>
     </message>
     <message>
         <source>Can't display address</source>
-        <translation type="unfinished">No se puede mostrar la dirección
-</translation>
+        <translation type="unfinished">No se puede mostrar la dirección</translation>
     </message>
     <message>
         <source>default wallet</source>
@@ -2937,10 +4455,26 @@ Vaya a Archivo&gt; Abrir monedero para cargar un monedero.
         <source>Export the data in the current tab to a file</source>
         <translation type="unfinished">Exportar a un archivo los datos de esta pestaña</translation>
     </message>
+    <message>
+        <source>Backup Wallet</source>
+        <translation type="unfinished">Respaldar monedero</translation>
+    </message>
     <message>
         <source>Wallet Data</source>
         <extracomment>Name of the wallet data file format.</extracomment>
-        <translation type="unfinished">Datos de la billetera </translation>
+        <translation type="unfinished">Datos del monedero </translation>
+    </message>
+    <message>
+        <source>Backup Failed</source>
+        <translation type="unfinished">Copia de seguridad fallida</translation>
+    </message>
+    <message>
+        <source>There was an error trying to save the wallet data to %1.</source>
+        <translation type="unfinished">Ha habido un error al intentar guardar los datos del monedero a %1.</translation>
+    </message>
+    <message>
+        <source>Backup Successful</source>
+        <translation type="unfinished">Se ha completado con éxito la copia de respaldo</translation>
     </message>
     </context>
 </TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/bitcoin_es_DO.ts
index b46a80e380a..23c710c0b4c 100644
--- a/src/qt/locale/bitcoin_es_DO.ts
+++ b/src/qt/locale/bitcoin_es_DO.ts
@@ -161,6 +161,14 @@
         <source>Wallet encrypted</source>
         <translation type="unfinished">Monedero cifrado</translation>
     </message>
+    <message>
+        <source>Your wallet is about to be encrypted. </source>
+        <translation type="unfinished">Tu monedero va a ser cifrado</translation>
+    </message>
+    <message>
+        <source>Your wallet is now encrypted. </source>
+        <translation type="unfinished">Tu monedero está ahora cifrado</translation>
+    </message>
     <message>
         <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
         <translation type="unfinished">IMPORTANTE: Cualquier copia de seguridad que haya realizado previamente de su archivo de monedero debe reemplazarse con el nuevo archivo de monedero cifrado. Por razones de seguridad, las copias de seguridad previas del archivo de monedero no cifradas serán inservibles en cuanto comience a usar el nuevo monedero cifrado.</translation>
@@ -194,6 +202,13 @@
         <translation type="unfinished">Aviso: ¡La tecla de bloqueo de mayúsculas está activada!</translation>
     </message>
 </context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">Error interno</translation>
+    </message>
+    </context>
 <context>
     <name>QObject</name>
     <message>
@@ -384,6 +399,14 @@
         <source>Show information about Qt</source>
         <translation type="unfinished">Mostrar información acerca de Qt</translation>
     </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Crear monedero nuevo</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">Minimizar</translation>
+    </message>
     <message>
         <source>Send coins to a Bitcoin address</source>
         <translation type="unfinished">Enviar monedas a una dirección Bitcoin</translation>
@@ -404,6 +427,10 @@
         <source>&amp;Receive</source>
         <translation type="unfinished">&amp;Recibir</translation>
     </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;Cifrar monedero</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">Encriptar las llaves privadas que pertenecen a tu billetera</translation>
@@ -1753,6 +1780,13 @@
         <translation type="unfinished">para</translation>
     </message>
 </context>
+<context>
+    <name>WalletFrame</name>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Crear monedero nuevo</translation>
+    </message>
+    </context>
 <context>
     <name>WalletModel</name>
     <message>
diff --git a/src/qt/locale/bitcoin_es_VE.ts b/src/qt/locale/bitcoin_es_VE.ts
index bf9e557a9f0..6d2c17f149c 100644
--- a/src/qt/locale/bitcoin_es_VE.ts
+++ b/src/qt/locale/bitcoin_es_VE.ts
@@ -69,6 +69,12 @@
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
         <translation type="unfinished">Estas son sus direcciones Bitcoin para enviar pagos. Compruebe siempre la cantidad y la dirección de recibo antes de transferir monedas.</translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">lista de tus direcciones de Bitcoin para recibir pagos. Para crear una nueva direccion elija en la pestana recibir la opcion "Crear una nueva direccion" 
+Registrarse solo es posible utilizando  una direccion tipo "Legal"</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">Copiar dirección</translation>
diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts
index beba4e31f93..44564c526a1 100644
--- a/src/qt/locale/bitcoin_et.ts
+++ b/src/qt/locale/bitcoin_et.ts
@@ -527,6 +527,10 @@
         <source>Up to date</source>
         <translation type="unfinished">Ajakohane</translation>
     </message>
+    <message>
+        <source>Open Wallet</source>
+        <translation type="unfinished">Ava Rahakott</translation>
+    </message>
     <message>
         <source>&amp;Window</source>
         <translation type="unfinished">&amp;Aken</translation>
@@ -701,6 +705,14 @@
         <translation type="unfinished">(vahetusraha)</translation>
     </message>
 </context>
+<context>
+    <name>OpenWalletActivity</name>
+    <message>
+        <source>Open Wallet</source>
+        <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
+        <translation type="unfinished">Ava Rahakott</translation>
+    </message>
+    </context>
 <context>
     <name>CreateWalletDialog</name>
     <message>
diff --git a/src/qt/locale/bitcoin_eu.ts b/src/qt/locale/bitcoin_eu.ts
index c16f90c1d50..2e2252733c4 100644
--- a/src/qt/locale/bitcoin_eu.ts
+++ b/src/qt/locale/bitcoin_eu.ts
@@ -69,6 +69,12 @@
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
         <translation type="unfinished">Hauek dira zuk dirua jaso dezaketen Bitcoin helbideak. Egiaztatu beti diru-kopurua eta dirua jasoko duen helbidea zuzen egon daitezen, txanponak bidali baino lehen.</translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Hauek dira ordainketak jasotzeko zure Bitcoin helbideak. Jaso taulako 'Jasotzeko helbide berri bat sortu' botoia erabili helbide berri bat sortzeko.
+Sinatzea 'legacy' motako helbideekin soilik da posible</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">&amp;Helbidea kopiatu</translation>
@@ -85,6 +91,11 @@
         <source>Export Address List</source>
         <translation type="unfinished">Helbide lista esportatu</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Komaz bereizitako fitxategia</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -232,6 +243,17 @@
         <translation type="unfinished">Honarte debekatua </translation>
     </message>
 </context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">Ranaway exception</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">Barne errorea</translation>
+    </message>
+    </context>
 <context>
     <name>QObject</name>
     <message>
@@ -246,6 +268,18 @@
         <source>Amount</source>
         <translation type="unfinished">Kopurua</translation>
     </message>
+    <message>
+        <source>Internal</source>
+        <translation type="unfinished">Barnekoa</translation>
+    </message>
+    <message>
+        <source>%1 d</source>
+        <translation type="unfinished">%1 e</translation>
+    </message>
+    <message>
+        <source>%1 h</source>
+        <translation type="unfinished">%1 o</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
@@ -295,6 +329,74 @@
         <source>Done loading</source>
         <translation type="unfinished">Zamaketa amaitua</translation>
     </message>
+    <message>
+        <source>Importing…</source>
+        <translation type="unfinished">Inportatzen...</translation>
+    </message>
+    <message>
+        <source>Loading wallet…</source>
+        <translation type="unfinished">Diruzorroa kargatzen...</translation>
+    </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Zenbatekoa falta da</translation>
+    </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Ez dago helbiderik eskuragarri</translation>
+    </message>
+    <message>
+        <source>Replaying blocks…</source>
+        <translation type="unfinished">Blokeak errepikatzen...</translation>
+    </message>
+    <message>
+        <source>Rescanning…</source>
+        <translation type="unfinished">Bereskaneatzen...</translation>
+    </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">Sareko hariak abiarazten...</translation>
+    </message>
+    <message>
+        <source>The source code is available from %s.</source>
+        <translation type="unfinished">Iturri kodea %s-tik dago eskuragarri.</translation>
+    </message>
+    <message>
+        <source>The transaction amount is too small to pay the fee</source>
+        <translation type="unfinished">Transakzio kantitatea txikiegia da kuota ordaintzeko.</translation>
+    </message>
+    <message>
+        <source>This is experimental software.</source>
+        <translation type="unfinished">Hau software esperimentala da</translation>
+    </message>
+    <message>
+        <source>Transaction amount too small</source>
+        <translation type="unfinished">transakzio kopurua txikiegia</translation>
+    </message>
+    <message>
+        <source>Transaction too large</source>
+        <translation type="unfinished">Transakzio luzeegia</translation>
+    </message>
+    <message>
+        <source>Unable to generate initial keys</source>
+        <translation type="unfinished">hasierako giltzak sortzeko ezgai</translation>
+    </message>
+    <message>
+        <source>Unable to generate keys</source>
+        <translation type="unfinished">Giltzak sortzeko ezgai</translation>
+    </message>
+    <message>
+        <source>Upgrading UTXO database</source>
+        <translation type="unfinished">UTXO datubasea hobetzen</translation>
+    </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">Blokeak egiaztatzen...</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">Diruzorroak egiaztatzen...</translation>
+    </message>
     </context>
 <context>
     <name>BitcoinGUI</name>
@@ -346,6 +448,10 @@
         <source>Create a new wallet</source>
         <translation type="unfinished">Diruzorro berri bat sortu</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Minimizatu</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Diruzorroa:</translation>
@@ -379,18 +485,58 @@
         <source>&amp;Receive</source>
         <translation type="unfinished">&amp;Jaso</translation>
     </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;Aukerak...</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;Diruzorroa enkriptatu...</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">Zure diru-zorroari dagozkion giltza pribatuak enkriptatu.</translation>
     </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">Diruzorroaren &amp;segurtasun kopia egin...</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;aldatu pasahitza</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">sinatu &amp;mezua</translation>
+    </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
         <translation type="unfinished">Sinatu mezuak Bitcoinen helbideekin, jabetza frogatzeko.</translation>
     </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">Mezua &amp;balioztatu</translation>
+    </message>
     <message>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">Egiaztatu mesua Bitcoin helbide espezifikoarekin erregistratu direla ziurtatzeko</translation>
     </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">&amp;kargatu PSBT fitxategitik...</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">Ireki&amp;URI...</translation>
+    </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">Diruzorroa itxi...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">Diruzorroa sortu...</translation>
+    </message>
     <message>
         <source>Close All Wallets…</source>
         <translation type="unfinished">Diru-zorro guztiak itxi...</translation>
@@ -411,6 +557,26 @@
         <source>Tabs toolbar</source>
         <translation type="unfinished">Fitxen tresna-barra</translation>
     </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">Sarearekin sinkronizatzen...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Diskoko blokeak indexatzen...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Diskoko blokeak prozesatzen...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Diskoko blokeak berzerrendatzen</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Pareekin konektatzen...</translation>
+    </message>
     <message>
         <source>Show the list of used sending addresses and labels</source>
         <translation type="unfinished"> Bidalketa-helbideen eta etiketen zerrenda erakutsi</translation>
@@ -434,6 +600,10 @@
         <source>%1 behind</source>
         <translation type="unfinished">%1 atzetik</translation>
     </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Harrapatzen...</translation>
+    </message>
     <message>
         <source>Last received block was generated %1 ago.</source>
         <translation type="unfinished">Jasotako azken blokea duela %1 sortu zen.</translation>
@@ -462,6 +632,10 @@
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Partzialki sinatutako Bitcoin transakzioa kargatu</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">kargatu PSBT arbeletik...</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Partzialki sinatutako Bitcoin transakzioa kargatu arbeletik</translation>
@@ -522,6 +696,14 @@
         <source>%1 client</source>
         <translation type="unfinished">%1 bezeroa</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Ezkutatu</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">E&amp;rakutsi</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -530,6 +712,11 @@
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">Erakutxi kideen fitxa</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">Akatsa: %1</translation>
@@ -677,10 +864,22 @@
         <source>Copy amount</source>
         <translation type="unfinished">zenbatekoaren kopia</translation>
     </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiatu &amp;Etiketa</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Kopia kopurua</translation>
     </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Kopiatu kuota</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Kopia kuotaren ondoren</translation>
+    </message>
     <message>
         <source>Copy bytes</source>
         <translation type="unfinished">Kopiatu byte-ak</translation>
@@ -729,7 +928,24 @@
         <source>Create wallet warning</source>
         <translation type="unfinished">Diru-zorroa sortzearen buruzko oharra</translation>
     </message>
-    </context>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Ezin dira sinatzaileak zerrendatu</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Kargatu diruzorroak</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Diruzorroak kargatzen...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -749,7 +965,12 @@
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
         <translation type="unfinished">Diruzorroa zabaldu</translation>
     </message>
-    </context>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">&lt;b&gt;%1&lt;/b&gt; diruzorroa irekitzen ...</translation>
+    </message>
+</context>
 <context>
     <name>WalletController</name>
     <message>
@@ -760,7 +981,11 @@
         <source>Close all wallets</source>
         <translation type="unfinished">Diruzorro guztiak itxi</translation>
     </message>
-    </context>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">Ziur diruzorro guztiak itxi nahi dituzula?</translation>
+    </message>
+</context>
 <context>
     <name>CreateWalletDialog</name>
     <message>
@@ -787,10 +1012,18 @@
         <source>Disable Private Keys</source>
         <translation type="unfinished">Desgaitu gako pribatuak</translation>
     </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">Egin diruzorro hutsa...</translation>
+    </message>
     <message>
         <source>Descriptor Wallet</source>
         <translation type="unfinished">Deskriptorearen zorroa</translation>
     </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Kanpo sinatzailea</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">Sortu</translation>
@@ -833,13 +1066,29 @@
 </context>
 <context>
     <name>FreespaceChecker</name>
+    <message>
+        <source>A new data directory will be created.</source>
+        <translation type="unfinished">Datu direktorio berria sortuko da.</translation>
+    </message>
     <message>
         <source>name</source>
         <translation type="unfinished">izena</translation>
     </message>
-    </context>
+    <message>
+        <source>Path already exists, and is not a directory.</source>
+        <translation type="unfinished">Bidea existitzen da, eta ez da direktorioa.</translation>
+    </message>
+    <message>
+        <source>Cannot create data directory here.</source>
+        <translation type="unfinished">Ezin da datu direktoria hemen sortu.</translation>
+    </message>
+</context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB-ko espazioa eskuragarri</translation>
+    </message>
     <message numerus="yes">
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
@@ -860,7 +1109,19 @@
         <source>Welcome to %1.</source>
         <translation type="unfinished">Ongietorri %1-ra</translation>
     </message>
-    </context>
+    <message>
+        <source> GB</source>
+        <translation type="unfinished">GB</translation>
+    </message>
+    <message>
+        <source>Use the default data directory</source>
+        <translation type="unfinished">Erabili datu direktorio lehenetsia</translation>
+    </message>
+    <message>
+        <source>Use a custom data directory:</source>
+        <translation type="unfinished">Erabili datu direktorio pertsonalizatu bat:</translation>
+    </message>
+</context>
 <context>
     <name>HelpMessageDialog</name>
     <message>
@@ -876,6 +1137,13 @@
         <translation type="unfinished">Komando lerroaren aukerak</translation>
     </message>
 </context>
+<context>
+    <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1Itzaltzen ari da...</translation>
+    </message>
+    </context>
 <context>
     <name>ModalOverlay</name>
     <message>
@@ -886,6 +1154,14 @@
         <source>Number of blocks left</source>
         <translation type="unfinished">Gainerako blokeen kopurua.</translation>
     </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">Ezezaguna...</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">kalkulatzen...</translation>
+    </message>
     <message>
         <source>Last block time</source>
         <translation type="unfinished">Azken blokearen unea</translation>
@@ -894,6 +1170,10 @@
         <source>Progress</source>
         <translation type="unfinished">Aurrerapena</translation>
     </message>
+    <message>
+        <source>Progress increase per hour</source>
+        <translation type="unfinished">Aurrerapenaren igoera orduko</translation>
+    </message>
     <message>
         <source>Hide</source>
         <translation type="unfinished">Izkutatu</translation>
@@ -1057,22 +1337,70 @@
         <source>Immature:</source>
         <translation type="unfinished">Ez dago eskuragarri:</translation>
     </message>
+    <message>
+        <source>Balances</source>
+        <translation type="unfinished">Saldoa</translation>
+    </message>
     <message>
         <source>Total:</source>
         <translation type="unfinished">Guztira:</translation>
     </message>
+    <message>
+        <source>Your current total balance</source>
+        <translation type="unfinished">Zure oraingo erabateko saldoa</translation>
+    </message>
+    <message>
+        <source>Spendable:</source>
+        <translation type="unfinished">Gastagarria:</translation>
+    </message>
+    <message>
+        <source>Recent transactions</source>
+        <translation type="unfinished">Transakzio berriak</translation>
+    </message>
     </context>
 <context>
     <name>PSBTOperationsDialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation type="unfinished">Elkarrizketa</translation>
+    </message>
+    <message>
+        <source>Sign Tx</source>
+        <translation type="unfinished">Sinatu Tx</translation>
+    </message>
     <message>
         <source>Copy to Clipboard</source>
         <translation type="unfinished">Kopiatu arbelera</translation>
     </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">Gorde...</translation>
+    </message>
     <message>
         <source>Close</source>
         <translation type="unfinished">Itxi</translation>
     </message>
-    </context>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">Gorde transakzioko data</translation>
+    </message>
+    <message>
+        <source>PSBT saved to disk.</source>
+        <translation type="unfinished">PSBT diskoan gorde da.</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">Kopuru osoa</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">edo</translation>
+    </message>
+    <message>
+        <source>Transaction status is unknown.</source>
+        <translation type="unfinished">Transakzioaren egoera ezezaguna da.</translation>
+    </message>
+</context>
 <context>
     <name>PaymentServer</name>
     <message>
@@ -1087,6 +1415,21 @@
         <extracomment>Title of Peers Table column which contains the peer's User Agent string.</extracomment>
         <translation type="unfinished">Erabiltzaile agentea</translation>
     </message>
+    <message>
+        <source>Peer</source>
+        <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
+        <translation type="unfinished">Kidea</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
+        <translation type="unfinished">Bidalia</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have received from the peer.</extracomment>
+        <translation type="unfinished">Jasoa</translation>
+    </message>
     <message>
         <source>Address</source>
         <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
@@ -1097,9 +1440,102 @@
         <extracomment>Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists.</extracomment>
         <translation type="unfinished">Mota</translation>
     </message>
+    <message>
+        <source>Network</source>
+        <extracomment>Title of Peers Table column which states the network the peer connected through.</extracomment>
+        <translation type="unfinished">Sarea</translation>
+    </message>
     </context>
+<context>
+    <name>QRImageWidget</name>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;Gorde irudia...</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Image</source>
+        <translation type="unfinished">&amp;kopiatu irudia</translation>
+    </message>
+    <message>
+        <source>Save QR Code</source>
+        <translation type="unfinished">Gorde QR kodea</translation>
+    </message>
+    <message>
+        <source>PNG Image</source>
+        <extracomment>Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics.</extracomment>
+        <translation type="unfinished">PNG irudia</translation>
+    </message>
+</context>
 <context>
     <name>RPCConsole</name>
+    <message>
+        <source>Client version</source>
+        <translation type="unfinished">Bezeroaren bertsioa</translation>
+    </message>
+    <message>
+        <source>&amp;Information</source>
+        <translation type="unfinished">&amp;Informazioa</translation>
+    </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Orokorra</translation>
+    </message>
+    <message>
+        <source>Datadir</source>
+        <translation type="unfinished">Datu direktorioa</translation>
+    </message>
+    <message>
+        <source>Blocksdir</source>
+        <translation type="unfinished">Blokeen direktorioa</translation>
+    </message>
+    <message>
+        <source>Startup time</source>
+        <translation type="unfinished">Abiatzeko ordua</translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">Sarea</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Izena</translation>
+    </message>
+    <message>
+        <source>Number of connections</source>
+        <translation type="unfinished">Konexio kopurua</translation>
+    </message>
+    <message>
+        <source>Wallet: </source>
+        <translation type="unfinished">Diruzorroa:</translation>
+    </message>
+    <message>
+        <source>(none)</source>
+        <translation type="unfinished">(bat ere ez)</translation>
+    </message>
+    <message>
+        <source>&amp;Reset</source>
+        <translation type="unfinished">&amp;Berrezarri</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <translation type="unfinished">Jasoa</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <translation type="unfinished">Bidalia</translation>
+    </message>
+    <message>
+        <source>&amp;Peers</source>
+        <translation type="unfinished">&amp;Kideak</translation>
+    </message>
+    <message>
+        <source>Banned peers</source>
+        <translation type="unfinished">Debekatutako kideak</translation>
+    </message>
+    <message>
+        <source>Version</source>
+        <translation type="unfinished">Bertsioa</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Erabiltzaile agentea</translation>
@@ -1108,10 +1544,39 @@
         <source>Node window</source>
         <translation type="unfinished">Adabegiaren leihoa</translation>
     </message>
+    <message>
+        <source>Permissions</source>
+        <translation type="unfinished">Baimenak</translation>
+    </message>
+    <message>
+        <source>Services</source>
+        <translation type="unfinished">Zerbitzuak</translation>
+    </message>
     <message>
         <source>Last block time</source>
         <translation type="unfinished">Azken blokearen unea</translation>
     </message>
+    <message>
+        <source>Clear console</source>
+        <translation type="unfinished">Garbitu kontsola</translation>
+    </message>
+    <message>
+        <source>&amp;Disconnect</source>
+        <translation type="unfinished">&amp;Deskonektatu</translation>
+    </message>
+    <message>
+        <source>Executing…</source>
+        <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
+        <translation type="unfinished">Exekutatzen...</translation>
+    </message>
+    <message>
+        <source>Yes</source>
+        <translation type="unfinished">Bai</translation>
+    </message>
+    <message>
+        <source>No</source>
+        <translation type="unfinished">Ez</translation>
+    </message>
     <message>
         <source>To</source>
         <translation type="unfinished">Ra</translation>
@@ -1120,7 +1585,15 @@
         <source>From</source>
         <translation type="unfinished">Tik</translation>
     </message>
-    </context>
+    <message>
+        <source>Never</source>
+        <translation type="unfinished">Inoiz ez</translation>
+    </message>
+    <message>
+        <source>Unknown</source>
+        <translation type="unfinished">Ezezaguna</translation>
+    </message>
+</context>
 <context>
     <name>ReceiveCoinsDialog</name>
     <message>
@@ -1135,6 +1608,30 @@
         <source>&amp;Message:</source>
         <translation type="unfinished">&amp;Mezua:</translation>
     </message>
+    <message>
+        <source>Clear all fields of the form.</source>
+        <translation type="unfinished">Garbitu formularioko eremu guztiak.</translation>
+    </message>
+    <message>
+        <source>Clear</source>
+        <translation type="unfinished">Garbitu</translation>
+    </message>
+    <message>
+        <source>Show</source>
+        <translation type="unfinished">Erakutsi</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished">Ezabatu</translation>
+    </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">Kopiatu &amp;URI</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiatu &amp;Etiketa</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">Ezin da diruzorroa desblokeatu.</translation>
@@ -1142,10 +1639,18 @@
     </context>
 <context>
     <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Address:</source>
+        <translation type="unfinished">Helbidea:</translation>
+    </message>
     <message>
         <source>Amount:</source>
         <translation type="unfinished">Kopurua:</translation>
     </message>
+    <message>
+        <source>Label:</source>
+        <translation type="unfinished">Etiketa:</translation>
+    </message>
     <message>
         <source>Message:</source>
         <translation type="unfinished">Mezua:</translation>
@@ -1154,10 +1659,26 @@
         <source>Wallet:</source>
         <translation type="unfinished">Diruzorroa:</translation>
     </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">Kopiatu &amp;URI</translation>
+    </message>
     <message>
         <source>Copy &amp;Address</source>
         <translation type="unfinished">&amp;Helbidea kopiatu</translation>
     </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">&amp;Egiaztatu</translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;Gorde irudia...</translation>
+    </message>
+    <message>
+        <source>Payment information</source>
+        <translation type="unfinished">Ordainketaren informazioa</translation>
+    </message>
     </context>
 <context>
     <name>RecentRequestsTableModel</name>
@@ -1177,13 +1698,25 @@
         <source>(no label)</source>
         <translation type="unfinished">(izendapenik ez)</translation>
     </message>
-    </context>
+    <message>
+        <source>(no message)</source>
+        <translation type="unfinished">(mezurik ez)</translation>
+    </message>
+    <message>
+        <source>Requested</source>
+        <translation type="unfinished">Eskatua</translation>
+    </message>
+</context>
 <context>
     <name>SendCoinsDialog</name>
     <message>
         <source>Send Coins</source>
         <translation type="unfinished">Txanponak bidali</translation>
     </message>
+    <message>
+        <source>automatically selected</source>
+        <translation type="unfinished">automatikoki aukeratua</translation>
+    </message>
     <message>
         <source>Quantity:</source>
         <translation type="unfinished">Zenbat:</translation>
@@ -1208,18 +1741,42 @@
         <source>Change:</source>
         <translation type="unfinished">Bueltak:</translation>
     </message>
+    <message>
+        <source>Transaction Fee:</source>
+        <translation type="unfinished">Transakzio kuota:</translation>
+    </message>
+    <message>
+        <source>per kilobyte</source>
+        <translation type="unfinished">Kilobyteko</translation>
+    </message>
     <message>
         <source>Hide</source>
         <translation type="unfinished">Izkutatu</translation>
     </message>
+    <message>
+        <source>Recommended:</source>
+        <translation type="unfinished">Gomendatutakoa:</translation>
+    </message>
+    <message>
+        <source>Custom:</source>
+        <translation type="unfinished">Neurrira:</translation>
+    </message>
     <message>
         <source>Send to multiple recipients at once</source>
         <translation type="unfinished">Hainbat jasotzaileri batera bidali</translation>
     </message>
+    <message>
+        <source>Clear all fields of the form.</source>
+        <translation type="unfinished">Garbitu formularioko eremu guztiak.</translation>
+    </message>
     <message>
         <source>Dust:</source>
         <translation type="unfinished">Hautsa:</translation>
     </message>
+    <message>
+        <source>Choose…</source>
+        <translation type="unfinished">Aukeratu...</translation>
+    </message>
     <message>
         <source>Balance:</source>
         <translation type="unfinished">Saldoa:</translation>
@@ -1228,6 +1785,10 @@
         <source>Confirm the send action</source>
         <translation type="unfinished">Bidalketa berretsi</translation>
     </message>
+    <message>
+        <source>S&amp;end</source>
+        <translation type="unfinished">Bidali</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Kopia kopurua</translation>
@@ -1236,6 +1797,14 @@
         <source>Copy amount</source>
         <translation type="unfinished">zenbatekoaren kopia</translation>
     </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Kopiatu kuota</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Kopia kuotaren ondoren</translation>
+    </message>
     <message>
         <source>Copy bytes</source>
         <translation type="unfinished">Kopiatu byte-ak</translation>
@@ -1248,6 +1817,49 @@
         <source>Copy change</source>
         <translation type="unfinished">Kopiatu aldaketa</translation>
     </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">Sinatu gailuan</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">Konektatu zure hardware diruzorroa lehenago.</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">Sinadurak hutsegitea</translation>
+    </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Kanpo sinatzailea ez da aurkitu</translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Kanpo sinatzailearen hutsegitea</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">Gorde transakzioko data</translation>
+    </message>
+    <message>
+        <source>PSBT saved</source>
+        <translation type="unfinished">PSBT gordeta</translation>
+    </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">Kanpo saldoa:</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">edo</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">Kopuru osoa</translation>
+    </message>
     <message>
         <source>Confirm send coins</source>
         <translation type="unfinished">Txanponen bidalketa berretsi</translation>
@@ -1282,6 +1894,10 @@
         <source>&amp;Label:</source>
         <translation type="unfinished">&amp;Etiketa:</translation>
     </message>
+    <message>
+        <source>Choose previously used address</source>
+        <translation type="unfinished">Aukeratu lehenago aukeraturiko helbidea</translation>
+    </message>
     <message>
         <source>Paste address from clipboard</source>
         <translation type="unfinished">Arbeletik helbidea itsatsi</translation>
@@ -1297,10 +1913,34 @@
     </context>
 <context>
     <name>SignVerifyMessageDialog</name>
+    <message>
+        <source>Choose previously used address</source>
+        <translation type="unfinished">Aukeratu lehenago aukeraturiko helbidea</translation>
+    </message>
     <message>
         <source>Paste address from clipboard</source>
         <translation type="unfinished">Arbeletik helbidea itsatsi</translation>
     </message>
+    <message>
+        <source>Enter the message you want to sign here</source>
+        <translation type="unfinished">Sartu sinatu nahi duzun mezua hemen</translation>
+    </message>
+    <message>
+        <source>Signature</source>
+        <translation type="unfinished">Sinadura</translation>
+    </message>
+    <message>
+        <source>Copy the current signature to the system clipboard</source>
+        <translation type="unfinished">Sinadura</translation>
+    </message>
+    <message>
+        <source>Sign &amp;Message</source>
+        <translation type="unfinished">Sinatu &amp;Mezua</translation>
+    </message>
+    <message>
+        <source>&amp;Verify Message</source>
+        <translation type="unfinished">&amp;Egiaztatu mezua</translation>
+    </message>
     <message>
         <source>No error</source>
         <translation type="unfinished">Ez dago errorerik</translation>
@@ -1317,7 +1957,15 @@
         <source>Please check the signature and try again.</source>
         <translation type="unfinished">Mesedez, begiratu sinadura eta saiatu berriro.</translation>
     </message>
-    </context>
+    <message>
+        <source>Message verification failed.</source>
+        <translation type="unfinished">Mezuen egiaztatzeak huts egin du</translation>
+    </message>
+    <message>
+        <source>Message verified.</source>
+        <translation type="unfinished">Mezua egiaztatua.</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -1411,7 +2059,15 @@
         <source>Amount</source>
         <translation type="unfinished">Kopurua</translation>
     </message>
-    </context>
+    <message>
+        <source>true</source>
+        <translation type="unfinished">egia</translation>
+    </message>
+    <message>
+        <source>false</source>
+        <translation type="unfinished">faltsua</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDescDialog</name>
     <message>
@@ -1433,6 +2089,10 @@
         <source>Label</source>
         <translation type="unfinished">Izendapen</translation>
     </message>
+    <message>
+        <source>Unconfirmed</source>
+        <translation type="unfinished">Baieztatu gabea</translation>
+    </message>
     <message>
         <source>Confirmed (%1 confirmations)</source>
         <translation type="unfinished">Konfirmatuta (%1 konfirmazio)</translation>
@@ -1532,6 +2192,15 @@
         <source>Min amount</source>
         <translation type="unfinished">Kopuru minimoa</translation>
     </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiatu &amp;Etiketa</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Komaz bereizitako fitxategia</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">Berretsia</translation>
@@ -1574,6 +2243,18 @@
         <source>Send Coins</source>
         <translation type="unfinished">Txanponak bidali</translation>
     </message>
+    <message>
+        <source>Current fee:</source>
+        <translation type="unfinished">Oraingo kuota:</translation>
+    </message>
+    <message>
+        <source>New fee:</source>
+        <translation type="unfinished">Kuota berria:</translation>
+    </message>
+    <message>
+        <source>PSBT copied</source>
+        <translation type="unfinished">PSBT kopiatua</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">Diruzorro lehenetsia</translation>
diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts
index 2b65ad22c1f..b06b5493806 100644
--- a/src/qt/locale/bitcoin_fa.ts
+++ b/src/qt/locale/bitcoin_fa.ts
@@ -1,13 +1,9 @@
 <TS version="2.1" language="fa">
 <context>
     <name>AddressBookPage</name>
-    <message>
-        <source>Right-click to edit address or label</source>
-        <translation type="unfinished">برای ویرایش نشانی یا برچسب زدن کلیک ‌راست کنید</translation>
-    </message>
     <message>
         <source>Create a new address</source>
-        <translation type="unfinished">آدرس جدید ایجاد کنید</translation>
+        <translation type="unfinished">یک آدرس جدید ایجاد کنید</translation>
     </message>
     <message>
         <source>&amp;New</source>
@@ -45,6 +41,14 @@
         <source>&amp;Delete</source>
         <translation type="unfinished">حذف</translation>
     </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">آدرس را برای ارسال کوین وارد کنید</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">آدرس را برای دریافت کوین وارد کنید</translation>
+    </message>
     <message>
         <source>C&amp;hoose</source>
         <translation type="unfinished">انتخاب</translation>
@@ -160,7 +164,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
-        <translation type="unfinished">هشدار: اگر کیف پول خود را رمزگذاری کنید و عبارت خود را گام کنید ، این کار را انجام می دهید &lt;b&gt;تمام کویت های خود را از دست &lt;/b&gt;استفاده کنید!
+        <translation type="unfinished">هشدار: اگر کیف پول خود را رمزگذاری کنید و عبارت خود را گم کنید ، &lt;b&gt;تمام کویت های خود را از دست &lt;/b&gt;خواهید داد!
 </translation>
     </message>
     <message>
@@ -367,31 +371,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n second(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n minute(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n hour(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n day(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n week(s)</numerusform>
         </translation>
     </message>
     <message>
@@ -401,7 +405,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n year(s)</numerusform>
         </translation>
     </message>
     <message>
@@ -1012,7 +1016,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
         </translation>
     </message>
     <message>
@@ -1122,7 +1126,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
         </translation>
     </message>
     <message>
@@ -1476,7 +1480,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
-        <translation type="unfinished">کیف پول را رمز نگاری نمائید. کیف پول با کلمات رمز انتخاب خودتان رمز نگاری خواهد شد</translation>
+        <translation type="unfinished">کیف پول را رمز نگاری نمائید. کیف پول با کلمات رمز دلخواه شما رمز نگاری خواهد شد</translation>
     </message>
     <message>
         <source>Encrypt Wallet</source>
@@ -1617,7 +1621,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
         </translation>
     </message>
     <message>
@@ -3178,7 +3182,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
         </translation>
     </message>
     <message>
@@ -3482,7 +3486,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>matures in %n more block(s)</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts
index c1321b0bd47..addd9c51c8c 100644
--- a/src/qt/locale/bitcoin_fi.ts
+++ b/src/qt/locale/bitcoin_fi.ts
@@ -332,36 +332,36 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n sekunti</numerusform>
+            <numerusform>%n sekuntia</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minuutti</numerusform>
+            <numerusform>%n minuuttia</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n tunti</numerusform>
+            <numerusform>%n tuntia</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n päivä</numerusform>
+            <numerusform>%n päivää</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n viikko</numerusform>
+            <numerusform>%n viikkoa</numerusform>
         </translation>
     </message>
     <message>
@@ -371,8 +371,8 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n vuosi</numerusform>
+            <numerusform>%n vuotta</numerusform>
         </translation>
     </message>
     </context>
@@ -714,6 +714,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Pitää määritellä portti argumentilla -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Osoitteita ei ole saatavilla</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Välityspalvelinta ei ole määritetty. Käytä -proxy=&lt;ip&gt; tai -proxy=&lt;ip:port&gt;.</translation>
@@ -1221,6 +1225,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
         <source>%1 client</source>
         <translation type="unfinished">%1-asiakas</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Piilota</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -2373,6 +2381,10 @@ Allekirjoitus on mahdollista vain 'legacy'-tyyppisillä osoitteilla.</translatio
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Siirto tarvitsee vielä allekirjoituksia.</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Mutta lompakkoa ei ole ladattu.)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Mutta tämä lompakko ei voi allekirjoittaa siirtoja.)</translation>
diff --git a/src/qt/locale/bitcoin_fil.ts b/src/qt/locale/bitcoin_fil.ts
index 98081e07c4f..fcfa1c57d2d 100644
--- a/src/qt/locale/bitcoin_fil.ts
+++ b/src/qt/locale/bitcoin_fil.ts
@@ -1,6 +1,14 @@
 <TS version="2.1" language="fil">
 <context>
     <name>AddressBookPage</name>
+    <message>
+        <source>Right-click to edit address or label</source>
+        <translation type="unfinished">Mag-right click para ibahin ang address o label</translation>
+    </message>
+    <message>
+        <source>Create a new address</source>
+        <translation type="unfinished">Gumawa ng bagong address</translation>
+    </message>
     <message>
         <source>&amp;New</source>
         <translation type="unfinished">Bago</translation>
@@ -11,7 +19,7 @@
     </message>
     <message>
         <source>&amp;Copy</source>
-        <translation type="unfinished">Kopyahin</translation>
+        <translation type="unfinished">gayahin</translation>
     </message>
     <message>
         <source>C&amp;lose</source>
@@ -23,15 +31,15 @@
     </message>
     <message>
         <source>Enter address or label to search</source>
-        <translation type="unfinished">I-enter ang address o label upang maghanap</translation>
+        <translation type="unfinished">Maglagay ng address o label upang maghanap</translation>
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">Angkatin ang datos sa kasalukuyang tab sa talaksan</translation>
+        <translation type="unfinished">I-exporte yung datos sa kasalukuyang tab doon sa pila</translation>
     </message>
     <message>
         <source>&amp;Export</source>
-        <translation type="unfinished">I-export</translation>
+        <translation type="unfinished">I-exporte</translation>
     </message>
     <message>
         <source>&amp;Delete</source>
@@ -64,12 +72,11 @@
     <message>
         <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
 Signing is only possible with addresses of the type 'legacy'.</source>
-        <translation type="unfinished">Ito ang iyong Bitcoin addresses upang makatanggap ng salapi. Gamitin ang 'Create new receiving address' button sa receive tab upang lumikha ng bagong address. Ang signing ay posible lamang sa mga addresses na nasa anyong 'legacy'.
-</translation>
+        <translation type="unfinished">Ito ang iyong mga Bitcoin address upang makatanggap ng mga salapi. Gamitin niyo ang 'Gumawa ng bagong address' na pindutan sa 'Tumanggap' na tab upang makagawa ng bagong address. Ang pagpirma ay posible lamang sa mga address na may uring 'legacy'.</translation>
     </message>
     <message>
         <source>&amp;Copy Address</source>
-        <translation type="unfinished">Kopyahin ang address</translation>
+        <translation type="unfinished">Kopyahin ang Address</translation>
     </message>
     <message>
         <source>Copy &amp;Label</source>
@@ -77,20 +84,20 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>&amp;Edit</source>
-        <translation type="unfinished">I-edit</translation>
+        <translation type="unfinished">Ibahin</translation>
     </message>
     <message>
         <source>Export Address List</source>
-        <translation type="unfinished">I-export ang Listahan ng Address</translation>
+        <translation type="unfinished">I-exporte ang Listahan ng Address</translation>
     </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
-        <translation type="unfinished">Mayroong error sa pag-save ng listahan ng address sa %1. Subukang muli.</translation>
+        <translation type="unfinished">Mayroong error sa pag-save ng listahan ng address sa %1. Subukan muli.</translation>
     </message>
     <message>
         <source>Exporting Failed</source>
-        <translation type="unfinished">Nabigo ang Pag-export</translation>
+        <translation type="unfinished">Nabigo ang pag-exporte</translation>
     </message>
 </context>
 <context>
@@ -102,9 +109,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>AskPassphraseDialog</name>
+    <message>
+        <source>Passphrase Dialog</source>
+        <translation type="unfinished">Diyalogo ng passphrase</translation>
+    </message>
     <message>
         <source>Enter passphrase</source>
-        <translation type="unfinished">Ipasok ang passphrase</translation>
+        <translation type="unfinished">Maglagay ng passphrase</translation>
     </message>
     <message>
         <source>New passphrase</source>
@@ -116,19 +127,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Show passphrase</source>
-        <translation type="unfinished">Ipakita ang Passphrase</translation>
+        <translation type="unfinished">Ipakita ang passphrase</translation>
     </message>
     <message>
         <source>Encrypt wallet</source>
-        <translation type="unfinished">I-encrypt ang walet.</translation>
+        <translation type="unfinished">I-enkripto ang pitaka</translation>
     </message>
     <message>
         <source>This operation needs your wallet passphrase to unlock the wallet.</source>
-        <translation type="unfinished">Kailangan ng operasyong ito ang passphrase ng iyong walet upang mai-unlock ang walet.</translation>
+        <translation type="unfinished">Kailangan ng operasyong ito and inyong wallet passphrase upang mai-unlock ang wallet.</translation>
     </message>
     <message>
         <source>Unlock wallet</source>
-        <translation type="unfinished">I-unlock ang walet.</translation>
+        <translation type="unfinished">I-unlock ang pitaka</translation>
     </message>
     <message>
         <source>Change passphrase</source>
@@ -136,7 +147,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Confirm wallet encryption</source>
-        <translation type="unfinished">Kumpirmahin ang pag-encrypt ng walet.</translation>
+        <translation type="unfinished">Kumpirmahin ang pag-enkripto ng pitaka</translation>
     </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
@@ -148,11 +159,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Wallet encrypted</source>
-        <translation type="unfinished">Naka-encrypt ang walet.</translation>
+        <translation type="unfinished">Naka-enkripto na ang pitaka</translation>
     </message>
     <message>
         <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
-        <translation type="unfinished">Ipasok ang bagong passphrase para sa wallet. &lt;br/&gt;Mangyaring gumamit ng isang passphrase na may &lt;b&gt;sampu o higit pang mga random na characte‭r&lt;/b&gt;, o &lt;b&gt;walo o higit pang mga salita&lt;/b&gt;.</translation>
+        <translation type="unfinished">Ipasok ang bagong passphrase para sa wallet. &lt;br/&gt;Mangyaring gumamit ng isang passphrase na may &lt;b&gt;sampu o higit pang mga random na karakter, o &lt;b&gt;walo o higit pang mga salita&lt;/b&gt;.</translation>
     </message>
     <message>
         <source>Enter the old passphrase and new passphrase for the wallet.</source>
@@ -160,51 +171,51 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
-        <translation type="unfinished">Tandaan na ang pag-encrypt ng iyong pitaka ay hindi maaaring ganap na maprotektahan ang iyong mga bitcoin mula sa pagnanakaw ng malware na nahahawa sa iyong computer.</translation>
+        <translation type="unfinished">Tandaan na ang pag-eenkripto ng iyong pitaka ay hindi buong makakaprotekta sa inyong mga bitcoin mula sa pagnanakaw ng mga nag-iimpektong malware.</translation>
     </message>
     <message>
         <source>Wallet to be encrypted</source>
-        <translation type="unfinished">Ang naka-encrypt na wallet</translation>
+        <translation type="unfinished">Ang naka-enkripto na pitaka</translation>
     </message>
     <message>
         <source>Your wallet is about to be encrypted. </source>
-        <translation type="unfinished">Malapit na ma-encrypt ang iyong pitaka.</translation>
+        <translation type="unfinished">Malapit na ma-enkripto ang iyong pitaka.</translation>
     </message>
     <message>
         <source>Your wallet is now encrypted. </source>
-        <translation type="unfinished">Ang iyong wallet ay naka-encrypt na ngayon.</translation>
+        <translation type="unfinished">Na-ienkripto na ang iyong pitaka.</translation>
     </message>
     <message>
         <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
-        <translation type="unfinished">MAHALAGA: Anumang nakaraang mga backup na ginawa mo sa iyong walet file ay dapat mapalitan ng bagong-buong, naka-encrypt na walet file. Para sa mga kadahilanang pangseguridad, ang mga nakaraang pag-backup ng hindi naka-encrypt na walet file ay mapagwawalang-silbi sa sandaling simulan mong gamitin ang bagong naka-encrypt na walet.</translation>
+        <translation type="unfinished">MAHALAGA: Anumang nakaraang mga backup na ginawa mo sa iyong wallet file ay dapat mapalitan ng bagong-buong, naka-encrypt na wallet file. Para sa mga kadahilanang pangseguridad, ang mga nakaraang pag-backup ng hindi naka-encrypt na wallet file ay mapagwawalang-silbi sa sandaling simulan mong gamitin ang bagong naka-encrypt na wallet.</translation>
     </message>
     <message>
         <source>Wallet encryption failed</source>
-        <translation type="unfinished">Nabigo ang pag-encrypt ng walet</translation>
+        <translation type="unfinished">Nabigo ang pag-enkripto ng pitaka</translation>
     </message>
     <message>
         <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
-        <translation type="unfinished">Nabigo ang pag-encrypt ng walet dahil sa isang panloob na error. Hindi na-encrypt ang iyong walet.</translation>
+        <translation type="unfinished">Nabigo ang pag-enkripto ng iyong pitaka dahil sa isang internal error. Hindi na-enkripto ang iyong pitaka.</translation>
     </message>
     <message>
         <source>The supplied passphrases do not match.</source>
-        <translation type="unfinished">Ang mga ibinigay na passphrase ay hindi tumutugma.</translation>
+        <translation type="unfinished">Ang mga ibinigay na passphrase ay hindi nakatugma.</translation>
     </message>
     <message>
         <source>Wallet unlock failed</source>
-        <translation type="unfinished">Nabigo ang pag-unlock ng walet</translation>
+        <translation type="unfinished">Nabigo ang pag-unlock ng pitaka</translation>
     </message>
     <message>
         <source>The passphrase entered for the wallet decryption was incorrect.</source>
-        <translation type="unfinished">Ang passphrase na ipinasok para sa pag-decrypt ng walet ay hindi tama.</translation>
+        <translation type="unfinished">Ang passphrase na inilagay para sa pag-dedekripto ng pitaka ay hindi tama</translation>
     </message>
     <message>
         <source>Wallet passphrase was successfully changed.</source>
-        <translation type="unfinished">Matagumpay na nabago ang passphrase ng walet.</translation>
+        <translation type="unfinished">Maayos na nabago ang inyong pitaka.</translation>
     </message>
     <message>
         <source>Warning: The Caps Lock key is on!</source>
-        <translation type="unfinished">Babala: Ang Caps Lock key ay nakabukas!</translation>
+        <translation type="unfinished">Babala: Ang Caps Lock key ay naka-on!</translation>
     </message>
 </context>
 <context>
@@ -656,7 +667,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Show general overview of wallet</source>
-        <translation type="unfinished">Ipakita ang pangkalahatan ng walet</translation>
+        <translation type="unfinished">Ipakita ang pangkalahatan ng pitaka</translation>
     </message>
     <message>
         <source>&amp;Transactions</source>
@@ -668,15 +679,15 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>E&amp;xit</source>
-        <translation type="unfinished">Labasan</translation>
+        <translation type="unfinished">Umalis</translation>
     </message>
     <message>
         <source>Quit application</source>
-        <translation type="unfinished">Ihinto ang application</translation>
+        <translation type="unfinished">Isarado ang aplikasyon</translation>
     </message>
     <message>
         <source>&amp;About %1</source>
-        <translation type="unfinished">Mga %1</translation>
+        <translation type="unfinished">&amp;Mga %1</translation>
     </message>
     <message>
         <source>Show information about %1</source>
@@ -684,7 +695,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>About &amp;Qt</source>
-        <translation type="unfinished">Tungkol &amp;QT</translation>
+        <translation type="unfinished">Mga &amp;Qt</translation>
     </message>
     <message>
         <source>Show information about Qt</source>
@@ -696,32 +707,36 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Create a new wallet</source>
-        <translation type="unfinished">Gumawa ng Bagong Pitaka</translation>
+        <translation type="unfinished">Gumawa ng baong pitaka</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Pagliitin</translation>
     </message>
     <message>
         <source>Wallet:</source>
-        <translation type="unfinished">Walet:</translation>
+        <translation type="unfinished">Pitaka:</translation>
     </message>
     <message>
         <source>Network activity disabled.</source>
         <extracomment>A substring of the tooltip.</extracomment>
-        <translation type="unfinished">Ang aktibidad ng network ay hindi pinagana.</translation>
+        <translation type="unfinished">Ang aktibidad ng network ay dinisable.</translation>
     </message>
     <message>
         <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
-        <translation type="unfinished">Ang proxy ay &lt;b&gt;pinagana&lt;/b&gt;: %1</translation>
+        <translation type="unfinished">Ang proxy ay &lt;b&gt;in-inable&lt;/b&gt;: %1</translation>
     </message>
     <message>
         <source>Send coins to a Bitcoin address</source>
-        <translation type="unfinished">Magpadala ng coins sa Bitcoin address</translation>
+        <translation type="unfinished">Magpadala ng coins sa isang Bitcoin address</translation>
     </message>
     <message>
         <source>Backup wallet to another location</source>
-        <translation type="unfinished">I-backup ang walet sa isa pang lokasyon</translation>
+        <translation type="unfinished">I-backup ang pitaka sa isa pang lokasyon</translation>
     </message>
     <message>
         <source>Change the passphrase used for wallet encryption</source>
-        <translation type="unfinished">Palitan ang passphrase na ginamit para sa pag-encrypt ng walet</translation>
+        <translation type="unfinished">Palitan ang passphrase na ginamit para sa pag-enkripto ng pitaka</translation>
     </message>
     <message>
         <source>&amp;Send</source>
@@ -731,6 +746,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Receive</source>
         <translation type="unfinished">Tumanggap</translation>
     </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;Opsyon</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">I-encrypt ang private keys na kabilang sa iyong walet</translation>
@@ -866,8 +885,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n aktibong konekyson sa network ng Bitcoin</numerusform>
+            <numerusform>%n mga aktibong koneksyon sa network ng Bitcoin</numerusform>
         </translation>
     </message>
     <message>
@@ -877,7 +896,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message>
         <source>Date: %1
 </source>
-        <translation type="unfinished">Petsa: %1
+        <translation type="unfinished">Datiles: %1
 </translation>
     </message>
     <message>
@@ -912,30 +931,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">Ang HD key generation ay &lt;b&gt;hindi gumagana&lt;/b&gt;</translation>
+        <translation type="unfinished">Ang HD key generation ay &lt;b&gt;pinatigil&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">Private key ay &lt;b&gt;hindi gumagana&lt;/b&gt;</translation>
+        <translation type="unfinished">Ang private key ay &lt;b&gt;pinatigil&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
-        <translation type="unfinished">Walet ay &lt;b&gt;na-encrypt&lt;/b&gt; at kasalukuyang &lt;b&gt;naka-unlock&lt;/b&gt;</translation>
+        <translation type="unfinished">Ang pitaka ay &lt;b&gt;na-enkriptuhan&lt;/b&gt; at kasalukuyang &lt;b&gt;naka-lock&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
-        <translation type="unfinished">Walet ay na-encrypt at kasalukuyang naka-lock.</translation>
+        <translation type="unfinished">Ang pitaka ay &lt;b&gt;na-enkriptuhan&lt;/b&gt; at kasalukuyang &lt;b&gt;nakasarado&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Original message:</source>
-        <translation type="unfinished">Orihinal na mensahe:</translation>
+        <translation type="unfinished">Ang orihinal na mensahe:</translation>
     </message>
 </context>
 <context>
     <name>UnitDisplayStatusBarControl</name>
     <message>
         <source>Unit to show amounts in. Click to select another unit.</source>
-        <translation type="unfinished">Unit na gamit upang ipakita ang mga halaga. I-klik upang pumili ng isa pang yunit.</translation>
+        <translation type="unfinished">Ang yunit na gamitin sa pagpapakita ng mga halaga. I-click upang pumili ng bagong yunit.</translation>
     </message>
 </context>
 <context>
@@ -958,7 +977,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>After Fee:</source>
-        <translation type="unfinished">Pagkatapos ng Bayad:</translation>
+        <translation type="unfinished">Bayad sa pagtapusan:</translation>
     </message>
     <message>
         <source>Change:</source>
@@ -966,7 +985,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>(un)select all</source>
-        <translation type="unfinished">(huwag)piliin lahat</translation>
+        <translation type="unfinished">(huwag) piliin ang lahat</translation>
     </message>
     <message>
         <source>Amount</source>
@@ -982,7 +1001,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Date</source>
-        <translation type="unfinished">Petsa</translation>
+        <translation type="unfinished">Datiles</translation>
     </message>
     <message>
         <source>Confirmations</source>
@@ -996,6 +1015,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy amount</source>
         <translation type="unfinished">Kopyahin ang halaga</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopyahin and address</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopyahin ang &amp;label</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopyahin ang &amp;halaga</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Kopyahin ang &amp;ID ng transaksyon at output index</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Kopyahin ang dami</translation>
@@ -1022,7 +1057,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>(%1 locked)</source>
-        <translation type="unfinished">(%1 ay naka-lock)</translation>
+        <translation type="unfinished">(%1 Naka-lock)</translation>
     </message>
     <message>
         <source>yes</source>
@@ -1971,6 +2006,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Out:</source>
         <translation type="unfinished">Labas:</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;Kopyahin and address</translation>
+    </message>
     <message>
         <source>&amp;Disconnect</source>
         <translation type="unfinished">Idiskonekta</translation>
@@ -2106,6 +2146,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;URI</source>
         <translation type="unfinished">Kopyahin ang URI</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopyahin and address</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopyahin ang &amp;label</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopyahin ang &amp;halaga</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">Hindi magawang ma-unlock ang walet.</translation>
@@ -2931,6 +2983,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Min amount</source>
         <translation type="unfinished">Minimum na halaga</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopyahin and address</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopyahin ang &amp;label</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopyahin ang &amp;halaga</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">I-export ang Kasaysayan ng Transaksyon</translation>
diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts
index 6bb8a05dc4f..1c199501e44 100644
--- a/src/qt/locale/bitcoin_fr.ts
+++ b/src/qt/locale/bitcoin_fr.ts
@@ -1060,7 +1060,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Unknown -blockfilterindex value %s.</source>
-        <translation type="unfinished">La valeur -blockfilterindex %s est inconnue</translation>
+        <translation type="unfinished">La valeur -blockfilterindex %s est inconnue.</translation>
     </message>
     <message>
         <source>Unknown address type '%s'</source>
@@ -1220,7 +1220,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>&amp;Load PSBT from file…</source>
-        <translation type="unfinished">&amp;Charger une TBSP d’un fichier…</translation>
+        <translation type="unfinished">&amp;Charger la TBSP d’un fichier…</translation>
     </message>
     <message>
         <source>Open &amp;URI…</source>
@@ -2049,7 +2049,7 @@ Il n’est possible de signer qu’avec les adresses de type « legacy ».</tr
     </message>
     <message>
         <source>Unknown…</source>
-        <translation type="unfinished">Inconnus…</translation>
+        <translation type="unfinished">Inconnu…</translation>
     </message>
     <message>
         <source>calculating…</source>
@@ -3951,7 +3951,7 @@ Note : Les frais étant calculés par octet, un taux de frais de « 100 satoshi
     </message>
     <message>
         <source>press q to shutdown</source>
-        <translation type="unfinished">appuyer sur q pour fermer</translation>
+        <translation type="unfinished">Appuyer sur q pour fermer</translation>
     </message>
 </context>
 <context>
diff --git a/src/qt/locale/bitcoin_ha.ts b/src/qt/locale/bitcoin_ha.ts
new file mode 100644
index 00000000000..88108d5e4f6
--- /dev/null
+++ b/src/qt/locale/bitcoin_ha.ts
@@ -0,0 +1,164 @@
+<TS version="2.1" language="ha">
+<context>
+    <name>AddressBookPage</name>
+    <message>
+        <source>Right-click to edit address or label</source>
+        <translation type="unfinished">Danna dama don gyara adireshi ko labil</translation>
+    </message>
+    <message>
+        <source>Create a new address</source>
+        <translation type="unfinished">Ƙirƙiri sabon adireshi</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation type="unfinished">&amp;Sabontawa</translation>
+    </message>
+    <message>
+        <source>Copy the currently selected address to the system clipboard</source>
+        <translation type="unfinished">Kwafi adireshin da aka zaɓa a halin yanzu domin yin amfani dashi</translation>
+    </message>
+    <message>
+        <source>Delete the currently selected address from the list</source>
+        <translation type="unfinished">Share adireshin da aka zaɓa a halin yanzu daga jerin </translation>
+    </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">Shigar da adireshi ko lakabi don bincika</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Fitar da bayanan da ke cikin shafin na yanzu zuwa fayil</translation>
+    </message>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp; Fitarwa</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation type="unfinished">$Sharewa</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">Zaɓi adireshin don karɓar kuɗi internet da shi</translation>
+    </message>
+    <message>
+        <source>Receiving addresses</source>
+        <translation type="unfinished">Adireshi da za a karba dashi</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">Waɗannan adiresoshin Bitcoin ne don tura kuɗi bitcoin . ka tabbatar da cewa adreshin daidai ne kamin ka tura abua a ciki</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Waɗannan adiresoshin Bitcoin ne don karɓar kuɗi. Yi amfani da maɓallin 'Ƙirƙiri sabon adireshin karɓa' a cikin shafin karɓa don ƙirƙirar sababbin adireshi.
+zaka iya shiga ne kawai da adiresoshin 'na musamman' kawai.</translation>
+    </message>
+    </context>
+<context>
+    <name>QObject</name>
+    <message numerus="yes">
+        <source>%n second(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n minute(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n hour(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n day(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n week(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n year(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>BitcoinGUI</name>
+    <message numerus="yes">
+        <source>Processed %n block(s) of transaction history.</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>Intro</name>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionDesc</name>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>WalletView</name>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp; Fitarwa</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Fitar da bayanan da ke cikin shafin na yanzu zuwa fayil</translation>
+    </message>
+    </context>
+</TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/bitcoin_hi.ts
index fe3fa9aa0b2..d25c2a980fc 100644
--- a/src/qt/locale/bitcoin_hi.ts
+++ b/src/qt/locale/bitcoin_hi.ts
@@ -3,28 +3,32 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">पता या लेबल संपादित करने के लिए राइट-क्लिक करें
- </translation>
+        <translation type="unfinished">पता या लेबल संपादित करने के लिए राइट-क्लिक करें</translation>
     </message>
     <message>
         <source>Create a new address</source>
-        <translation type="unfinished">नया पता बनाएं</translation>
+        <translation type="unfinished">नया पता बनाएँ</translation>
     </message>
     <message>
         <source>&amp;New</source>
-        <translation type="unfinished">और नया</translation>
+        <translation type="unfinished">&amp;न्यू
+ </translation>
     </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">अभी चुने गए पते को सिस्टम क्लिपबोर्ड पर कॉपी करें</translation>
+        <translation type="unfinished">मौजूदा चयनित पते को सिस्टम क्लिपबोर्ड पर कॉपी करें</translation>
     </message>
     <message>
         <source>&amp;Copy</source>
-        <translation type="unfinished">और संचय </translation>
+        <translation type="unfinished">&amp;कॉपी</translation>
+    </message>
+    <message>
+        <source>C&amp;lose</source>
+        <translation type="unfinished">&amp;क्लोज़</translation>
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
-        <translation type="unfinished">अभी चुने गए पते को सूची से हटाएं</translation>
+        <translation type="unfinished">सूची से मौजूदा चयनित पता हटाएं</translation>
     </message>
     <message>
         <source>Enter address or label to search</source>
@@ -32,126 +36,722 @@
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">वर्तमान टैब में डेटा को फ़ाइल में निर्यात करें</translation>
+        <translation type="unfinished">मौजूदा टैब में डेटा को फ़ाइल में निर्यात करें</translation>
+    </message>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;एक्सपोर्ट</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation type="unfinished">&amp;डीलिट</translation>
     </message>
     <message>
         <source>Choose the address to send coins to</source>
-        <translation type="unfinished">को सिक्के भेजने के लिए पता चुनें</translation>
+        <translation type="unfinished">कॉइन्स भेजने के लिए पता चुनें</translation>
     </message>
     <message>
         <source>Choose the address to receive coins with</source>
-        <translation type="unfinished">के साथ सिक्के प्राप्त करने के लिए पता चुनें</translation>
+        <translation type="unfinished">कॉइन्स प्राप्त करने के लिए पता चुनें</translation>
+    </message>
+    <message>
+        <source>C&amp;hoose</source>
+        <translation type="unfinished">&amp;चुज़</translation>
+    </message>
+    <message>
+        <source>Sending addresses</source>
+        <translation type="unfinished">पते भेजे जा रहे हैं</translation>
+    </message>
+    <message>
+        <source>Receiving addresses</source>
+        <translation type="unfinished">पते प्राप्त किए जा रहे हैं</translation>
     </message>
     <message>
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
-        <translation type="unfinished">भुगतान भेजने के लिए ये आपके बिटकॉइन पते हैं। सिक्के भेजने से पहले हमेशा राशि और प्राप्त करने वाले पते की जांच करें।</translation>
+        <translation type="unfinished">भुगतान भेजने के लिए ये आपके बिटकॉइन पते हैं। कॉइन्स भेजने से पहले हमेशा राशि और प्राप्त करने वाले पते की जांच करें।</translation>
     </message>
     <message>
         <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
 Signing is only possible with addresses of the type 'legacy'.</source>
-        <translation type="unfinished">भुगतान प्राप्त करने के लिए ये आपके बिटकॉइन पते हैं। नए पते बनाने के लिए प्राप्त टैब में 'नया प्राप्तकर्ता पता बनाएं' बटन का उपयोग करें। हस्ताक्षर केवल 'विरासत' प्रकार के पते के साथ ही संभव है।</translation>
+        <translation type="unfinished">भुगतान प्राप्त करने के लिए ये आपके बिटकॉइन पते हैं। नए पते बनाने के लिए रिसिव टैब में 'नया प्राप्तकर्ता पता बनाएं' बटन का उपयोग करें।
+हस्ताक्षर केवल 'लेगसी' प्रकार के पते के साथ ही संभव है।</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Address</source>
+        <translation type="unfinished">&amp;कॉपी पता</translation>
     </message>
     <message>
         <source>Copy &amp;Label</source>
-        <translation type="unfinished"> 
-कॉपी और लेबल</translation>
+        <translation type="unfinished">कॉपी और लेबल</translation>
     </message>
-    </context>
+    <message>
+        <source>&amp;Edit</source>
+        <translation type="unfinished">&amp;एडीट</translation>
+    </message>
+    <message>
+        <source>Export Address List</source>
+        <translation type="unfinished">पता की सूची को निर्यात करें</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">कॉमा सेपरेटेड फ़ाइल</translation>
+    </message>
+    <message>
+        <source>There was an error trying to save the address list to %1. Please try again.</source>
+        <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
+        <translation type="unfinished">पता सूची को %1यहां सहेजने का प्रयास करते समय एक त्रुटि हुई . कृपया पुन: प्रयास करें।</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">निर्यात विफल हो गया है</translation>
+    </message>
+</context>
+<context>
+    <name>AddressTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">लेबल</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">पता</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(लेबल नहीं है)</translation>
+    </message>
+</context>
 <context>
     <name>AskPassphraseDialog</name>
+    <message>
+        <source>Passphrase Dialog</source>
+        <translation type="unfinished">पासफ़्रेज़ डाएलोग</translation>
+    </message>
+    <message>
+        <source>Enter passphrase</source>
+        <translation type="unfinished">पासफ़्रेज़ मे प्रवेश करें</translation>
+    </message>
+    <message>
+        <source>New passphrase</source>
+        <translation type="unfinished">नया पासफ़्रेज़</translation>
+    </message>
+    <message>
+        <source>Repeat new passphrase</source>
+        <translation type="unfinished">नया पासफ़्रेज़ दोहराएं</translation>
+    </message>
+    <message>
+        <source>Show passphrase</source>
+        <translation type="unfinished">पासफ़्रेज़ दिखाएं</translation>
+    </message>
+    <message>
+        <source>Encrypt wallet</source>
+        <translation type="unfinished">वॉलेट एन्क्रिप्ट करें</translation>
+    </message>
+    <message>
+        <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+        <translation type="unfinished">वॉलेट को अनलॉक करने के लिए आपके वॉलेट पासफ़्रेज़ की आवश्यकता है।</translation>
+    </message>
+    <message>
+        <source>Unlock wallet</source>
+        <translation type="unfinished">वॉलेट अनलॉक करें</translation>
+    </message>
+    <message>
+        <source>Change passphrase</source>
+        <translation type="unfinished">पासफ़्रेज़ बदलें</translation>
+    </message>
+    <message>
+        <source>Confirm wallet encryption</source>
+        <translation type="unfinished">वॉलेट एन्क्रिप्शन की पुष्टि करें</translation>
+    </message>
+    <message>
+        <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
+        <translation type="unfinished">चेतावनी: यदि आप अपना वॉलेट एन्क्रिप्ट करते हैं और अपना पासफ़्रेज़ खो देते हैं, तो आपअपने सभी बिटकॉइन &lt;b&gt; खो देंगे&lt;/b&gt; !</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to encrypt your wallet?</source>
+        <translation type="unfinished">क्या आप वाकई अपने वॉलेट को एन्क्रिप्ट करना चाहते हैं?</translation>
+    </message>
+    <message>
+        <source>Wallet encrypted</source>
+        <translation type="unfinished">वॉलेट एन्क्रिप्टेड</translation>
+    </message>
+    <message>
+        <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+        <translation type="unfinished">वॉलेट के लिए नया पासफ़्रेज़ दर्ज करें।&lt;br/&gt;कृपया दस या अधिक यादृच्छिक वर्णों, या आठ या अधिक शब्दों के पासफ़्रेज़ का उपयोग करें।</translation>
+    </message>
+    <message>
+        <source>Enter the old passphrase and new passphrase for the wallet.</source>
+        <translation type="unfinished">वॉलेट के लिए पुराना पासफ़्रेज़ और नया पासफ़्रेज़ डालिये।</translation>
+    </message>
+    <message>
+        <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+        <translation type="unfinished">याद रखें कि आपके वॉलेट को एन्क्रिप्ट करने से आपके बिटकॉइन को आपके कंप्यूटर को संक्रमित करने वाले मैलवेयर द्वारा चोरी होने से पूरी तरह से सुरक्षित नहीं किया जा सकता है।</translation>
+    </message>
+    <message>
+        <source>Wallet to be encrypted</source>
+        <translation type="unfinished">जो वॉलेट एन्क्रिप्ट किया जाना है</translation>
+    </message>
+    <message>
+        <source>Your wallet is about to be encrypted. </source>
+        <translation type="unfinished">आपका वॉलेट एन्क्रिप्ट होने वाला है।</translation>
+    </message>
+    <message>
+        <source>Your wallet is now encrypted. </source>
+        <translation type="unfinished">आपका वॉलेट अब एन्क्रिप्ट किया गया है।</translation>
+    </message>
     <message>
         <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
-        <translation type="unfinished">महत्वपूर्ण: आपके द्वारा अपनी वॉलेट फ़ाइल के किसी भी पिछले बैकअप को नई जेनरेट की गई, एन्क्रिप्टेड वॉलेट फ़ाइल से बदल दिया जाना चाहिए। सुरक्षा कारणों से, जैसे ही आप नए, एन्क्रिप्टेड वॉलेट का उपयोग करना शुरू करते हैं, अनएन्क्रिप्टेड वॉलेट फ़ाइल का पिछला बैकअप बेकार हो जाएगा।</translation>
+        <translation type="unfinished">महत्वपूर्ण सुचना: आपके द्वारा अपनी वॉलेट फ़ाइल का कोई भी पिछला बैकअप नई जेनरेट की गई, एन्क्रिप्टेड वॉलेट फ़ाइल से बदला जाना चाहिए। सुरक्षा कारणों से, जैसे ही आप नए, एन्क्रिप्टेड वॉलेट का उपयोग करना शुरू करते हैं, अनएन्क्रिप्टेड वॉलेट फ़ाइल का पिछला बैकअप बेकार हो जाएगा।</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed</source>
+        <translation type="unfinished">वॉलेट एन्क्रिप्शन विफल हो गया है |</translation>
     </message>
     <message>
         <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
-        <translation type="unfinished"> 
-आंतरिक त्रुटि के कारण वॉलेट एन्क्रिप्शन विफल रहा। आपका वॉलेट एन्क्रिप्ट नहीं किया गया था।</translation>
+        <translation type="unfinished">आंतरिक त्रुटि के कारण वॉलेट एन्क्रिप्शन विफल हो गया है । आपका वॉलेट एन्क्रिप्ट नहीं किया गया था।</translation>
     </message>
-    </context>
+    <message>
+        <source>The supplied passphrases do not match.</source>
+        <translation type="unfinished">आपूर्ति किए गए पासफ़्रेज़ मेल नहीं खाते।</translation>
+    </message>
+    <message>
+        <source>Wallet unlock failed</source>
+        <translation type="unfinished">वॉलेट अनलॉक विफल हो गया है |</translation>
+    </message>
+    <message>
+        <source>The passphrase entered for the wallet decryption was incorrect.</source>
+        <translation type="unfinished">वॉलेट डिक्रिप्शन के लिए दर्ज किया गया पासफ़्रेज़ गलत था।</translation>
+    </message>
+    <message>
+        <source>Wallet passphrase was successfully changed.</source>
+        <translation type="unfinished">वॉलेट पासफ़्रेज़ सफलतापूर्वक बदल दिया गया था।</translation>
+    </message>
+    <message>
+        <source>Warning: The Caps Lock key is on!</source>
+        <translation type="unfinished">महत्वपूर्ण सुचना: कैप्स लॉक कुंजी चालू है!</translation>
+    </message>
+</context>
+<context>
+    <name>BanTableModel</name>
+    <message>
+        <source>IP/Netmask</source>
+        <translation type="unfinished">आईपी/नेटमास्क</translation>
+    </message>
+    <message>
+        <source>Banned Until</source>
+        <translation type="unfinished">तक प्रतिबंधित</translation>
+    </message>
+</context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">रनअवे अपवाद</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">आंतरिक त्रुटि</translation>
+    </message>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">एक आंतरिक त्रुटि हुई। %1सुरक्षित रूप से जारी रखने का प्रयास करेगा। यह एक अप्रत्याशित बग है जिसे नीचे वर्णित के रूप में रिपोर्ट किया जा सकता है।</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">क्या आप सेटिंग्स को डिफ़ॉल्ट मानों पर रीसेट करना चाहते हैं, या परिवर्तन किए बिना निरस्त करना चाहते हैं?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">एक घातक त्रुटि हुई। जांचें कि सेटिंग्स फ़ाइल लिखने योग्य है, या -नोसेटिंग्स के साथ चलने का प्रयास करें।</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" does not exist.</source>
+        <translation type="unfinished">त्रुटि: निर्दिष्ट डेटा निर्देशिका "%1" मौजूद नहीं है।</translation>
+    </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">त्रुटि: कॉन्फ़िगरेशन फ़ाइल को पार्स नहीं कर सकता: %1.</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">त्रुटि: %1</translation>
+    </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 अभी तक सुरक्षित रूप से बाहर नहीं निकला...</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n second(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minute(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n hour(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n day(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n week(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n year(s)</numerusform>
         </translation>
     </message>
     </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">सेटिंग्स फ़ाइल को पढ़ा नहीं जा सका |</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">सेटिंग्स फ़ाइल नहीं लिखी जा सकी |</translation>
+    </message>
+    </context>
 <context>
     <name>BitcoinGUI</name>
+    <message>
+        <source>&amp;Overview</source>
+        <translation type="unfinished">&amp;ओवरवीउ</translation>
+    </message>
+    <message>
+        <source>Show general overview of wallet</source>
+        <translation type="unfinished">वॉलेट का सामान्य अवलोकन दिखाएं |</translation>
+    </message>
+    <message>
+        <source>&amp;Transactions</source>
+        <translation type="unfinished">&amp;ट्रानजेक्शन्स</translation>
+    </message>
+    <message>
+        <source>Browse transaction history</source>
+        <translation type="unfinished">ट्रानसेक्शन इतिहास ब्राउज़ करें</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation type="unfinished">&amp;एक्ज़िट</translation>
+    </message>
+    <message>
+        <source>Quit application</source>
+        <translation type="unfinished"> एप्लिकेशन छोड़ें |</translation>
+    </message>
+    <message>
+        <source>&amp;About %1</source>
+        <translation type="unfinished">&amp;अबाउट %1</translation>
+    </message>
+    <message>
+        <source>Show information about %1</source>
+        <translation type="unfinished"> %1के बारे में जानकारी दिखाएं</translation>
+    </message>
+    <message>
+        <source>About &amp;Qt</source>
+        <translation type="unfinished">अबाउट &amp;क्यूटी</translation>
+    </message>
+    <message>
+        <source>Show information about Qt</source>
+        <translation type="unfinished">Qt के बारे में जानकारी दिखाएं</translation>
+    </message>
+    <message>
+        <source>Modify configuration options for %1</source>
+        <translation type="unfinished">%1 के लिए विन्यास विकल्प संशोधित करें |</translation>
+    </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">एक नया वॉलेट बनाएं |</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;मिनीमाइज़</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">वॉलेट:</translation>
+    </message>
+    <message>
+        <source>Network activity disabled.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">नेटवर्क गतिविधि अक्षम।</translation>
+    </message>
+    <message>
+        <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
+        <translation type="unfinished">प्रॉक्सी &lt;b&gt;अक्षम&lt;/b&gt; है: %1</translation>
+    </message>
+    <message>
+        <source>Send coins to a Bitcoin address</source>
+        <translation type="unfinished">बिटकॉइन पते पर कॉइन्स भेजें</translation>
+    </message>
+    <message>
+        <source>Backup wallet to another location</source>
+        <translation type="unfinished">किसी अन्य स्थान पर वॉलेट  बैकअप करे |</translation>
+    </message>
+    <message>
+        <source>Change the passphrase used for wallet encryption</source>
+        <translation type="unfinished">वॉलेट एन्क्रिप्शन के लिए उपयोग किए जाने वाले पासफ़्रेज़ को बदलें</translation>
+    </message>
+    <message>
+        <source>&amp;Send</source>
+        <translation type="unfinished">&amp;भेजें</translation>
+    </message>
+    <message>
+        <source>&amp;Receive</source>
+        <translation type="unfinished">&amp;रिसिव</translation>
+    </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;विकल्प
+ </translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;एन्क्रिप्ट वॉलेट…</translation>
+    </message>
+    <message>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">अपने वॉलेट से संबंधित निजी कुंजियों को एन्क्रिप्ट करें</translation>
+    </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;बैकअप वॉलेट…</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;पासफ़्रेज़ बदलें…</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">साइन &amp;मैसेज...</translation>
+    </message>
+    <message>
+        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
+        <translation type="unfinished">अपने बिटकॉइन पतों के साथ संदेशों पर हस्ताक्षर करके साबित करें कि वे आपके हैं |</translation>
+    </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;संदेश सत्यापित करें…</translation>
+    </message>
+    <message>
+        <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
+        <translation type="unfinished">यह सुनिश्चित करने के लिए संदेशों को सत्यापित करें कि वे निर्दिष्ट बिटकॉइन पते के साथ हस्ताक्षरित थे |</translation>
+    </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">फ़ाइल से पीएसबीटी &amp;लोड करें…</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished"> &amp;यूआरआई खोलिये…</translation>
+    </message>
     <message>
         <source>Close Wallet…</source>
-        <translation type="unfinished">बटुआ बंद करें...</translation>
+        <translation type="unfinished">वॉलेट बंद करें…</translation>
     </message>
     <message>
         <source>Create Wallet…</source>
-        <translation type="unfinished">वॉलेट बनाएं...</translation>
+        <translation type="unfinished">वॉलेट बनाएं</translation>
     </message>
     <message>
         <source>Close All Wallets…</source>
-        <translation type="unfinished">सारे बटुएँ बंद करें...</translation>
+        <translation type="unfinished">सभी वॉलेट बंद करें…</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation type="unfinished">&amp;फ़ाइल</translation>
+    </message>
+    <message>
+        <source>&amp;Settings</source>
+        <translation type="unfinished">&amp;सेटिंग्स</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation type="unfinished">&amp;हेल्प</translation>
+    </message>
+    <message>
+        <source>Tabs toolbar</source>
+        <translation type="unfinished">टैब टूलबार</translation>
+    </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">हेडर सिंक किया जा रहा है  (%1%)…</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">नेटवर्क के साथ सिंक्रोनाइज़ किया जा रहा है…</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">डिस्क पर ब्लॉक का सूचीकरण किया जा रहा है…</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">डिस्क पर ब्लॉक संसाधित किए जा रहे हैं…</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">डिस्क पर ब्लॉक का दोबारा सूचीकरण किया जा रहा है…</translation>
+    </message>
+    <message>
+        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
+        <translation type="unfinished">भुगतान का अनुरोध करें(क्यूआर कोड और बिटकॉइन: यूआरआईज जनरेट करे)</translation>
+    </message>
+    <message>
+        <source>Show the list of used sending addresses and labels</source>
+        <translation type="unfinished">उपयोग किए गए भेजने वाले पते और लेबल की सूची दिखाएं|</translation>
+    </message>
+    <message>
+        <source>Show the list of used receiving addresses and labels</source>
+        <translation type="unfinished">उपयोग किए गए प्राप्त पते और लेबल की सूची दिखाएं</translation>
+    </message>
+    <message>
+        <source>&amp;Command-line options</source>
+        <translation type="unfinished">&amp;कमांड-लाइन विकल्प</translation>
     </message>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>ट्रानजेक्शन हिस्ट्री के ब्लॉक संसाधित किए गए है %n .</numerusform>
         </translation>
     </message>
+    <message>
+        <source>%1 behind</source>
+        <translation type="unfinished">%1 पीछे</translation>
+    </message>
+    <message>
+        <source>Last received block was generated %1 ago.</source>
+        <translation type="unfinished">अंतिम प्राप्त ब्लॉक पहले उत्पन्न हुआ था।%1 </translation>
+    </message>
+    <message>
+        <source>Transactions after this will not yet be visible.</source>
+        <translation type="unfinished">इसके बाद होनेवाले ट्रानजेक्शन अभी दिखाई नहीं देंगे।</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">त्रुटि</translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished">चेतावनी</translation>
+    </message>
+    <message>
+        <source>Information</source>
+        <translation type="unfinished">जानकारी</translation>
+    </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">पीएसबीटी को &amp;क्लिपबोर्ड से लोड करें…</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">अधिक विकल्पों के लिए क्लिक करें</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">पीयर्स टैब दिखाएं</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">नेटवर्क गतिविधि अक्षम करें</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">नेटवर्क गतिविधि सक्षम करें</translation>
+    </message>
+    <message>
+        <source>Incoming transaction</source>
+        <translation type="unfinished">आगामी सौदा</translation>
+    </message>
+    <message>
+        <source>Original message:</source>
+        <translation type="unfinished">वास्तविक सन्देश:</translation>
+    </message>
+</context>
+<context>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">राशि दिखाने के लिए इकाई। दूसरी इकाई का चयन करने के लिए क्लिक करें।</translation>
+    </message>
+</context>
+<context>
+    <name>CoinControlDialog</name>
+    <message>
+        <source>Coin Selection</source>
+        <translation type="unfinished">सिक्का चयन</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">मात्रा:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">बाइट्स:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">राशि:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">शुल्क:</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">शेष:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">आफ्टर शुल्क:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">छुट्टे:</translation>
+    </message>
+    <message>
+        <source>(un)select all</source>
+        <translation type="unfinished">सबका (अ)चयन करें </translation>
+    </message>
+    <message>
+        <source>Tree mode</source>
+        <translation type="unfinished">ट्री मोड</translation>
+    </message>
+    <message>
+        <source>List mode</source>
+        <translation type="unfinished">सूची मोड</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">राशि</translation>
+    </message>
+    <message>
+        <source>Received with label</source>
+        <translation type="unfinished">लेबल के साथ प्राप्त</translation>
+    </message>
+    <message>
+        <source>Received with address</source>
+        <translation type="unfinished">पते के साथ प्राप्त</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">दिनांक</translation>
+    </message>
+    <message>
+        <source>Confirmations</source>
+        <translation type="unfinished">पुष्टिकरण</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">पुष्टीकृत</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">कॉपी राशि</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">कॉपी मात्रा</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">कॉपी शुल्क</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">कॉपी बाइट्स</translation>
+    </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">हां</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation type="unfinished">ना</translation>
+    </message>
+    <message>
+        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
+        <translation type="unfinished">यदि किसी प्राप्तकर्ता को वर्तमान शेष सीमा से कम राशि प्राप्त होती है तो यह लेबल लाल हो जाता है।</translation>
+    </message>
     </context>
+<context>
+    <name>CreateWalletActivity</name>
+    <message>
+        <source>Create Wallet</source>
+        <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
+        <translation type="unfinished">वॉलेट बनाएं</translation>
+    </message>
+    <message>
+        <source>Create wallet failed</source>
+        <translation type="unfinished">वॉलेट बनाना विफल</translation>
+    </message>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">हस्ताक्षरकर्ताओं को सूचीबद्ध नहीं कर सका</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">वॉलेट लोड करें</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">वॉलेट लोड हो रहा है...</translation>
+    </message>
+</context>
 <context>
     <name>Intro</name>
     <message numerus="yes">
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
         </translation>
     </message>
     </context>
@@ -160,8 +760,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
         </translation>
     </message>
     </context>
@@ -170,8 +770,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
         </translation>
     </message>
     </context>
diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts
index 1073d6b2f53..dbe30cf0d9f 100644
--- a/src/qt/locale/bitcoin_hr.ts
+++ b/src/qt/locale/bitcoin_hr.ts
@@ -69,6 +69,12 @@
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
         <translation type="unfinished">Ovo su vaše Bitcoin adrese za slanje novca. Uvijek provjerite iznos i adresu primatelja prije slanja novca.</translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Ovo su vaše Bitcoin adrese za primanje sredstava. Koristite 'Kreiraj novu adresu za primanje' u tabu Primite kako biste kreirali nove adrese.
+Potpisivanje je moguće samo sa 'legacy' adresama. </translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">&amp;Kopirajte adresu</translation>
@@ -85,6 +91,11 @@
         <source>Export Address List</source>
         <translation type="unfinished">Izvezite listu adresa</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Datoteka podataka odvojenih zarezima (*.csv)</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -232,8 +243,37 @@
         <translation type="unfinished">Zabranjen do</translation>
     </message>
 </context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">Runaway iznimka</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">Dogodila se greška. %1 ne može sigurno nastaviti te će se zatvoriti.</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">Interna greška</translation>
+    </message>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">Dogodila se interna greška. %1 će pokušati sigurno nastaviti. Ovo je neočekivani bug koji se može prijaviti kao što je objašnjeno ispod.</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Želite li resetirati postavke na početne vrijednosti ili izaći bez promjena?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Dogodila se kobna greška. Provjerite je li datoteka za postavke otvorena za promjene ili pokušajte pokrenuti s -nosettings.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Greška: Zadana podatkovna mapa "%1" ne postoji.</translation>
@@ -246,6 +286,10 @@
         <source>Error: %1</source>
         <translation type="unfinished">Greška: %1</translation>
     </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 se nije još zatvorio na siguran način.</translation>
+    </message>
     <message>
         <source>unknown</source>
         <translation type="unfinished">nepoznato</translation>
@@ -258,6 +302,14 @@
         <source>Enter a Bitcoin address (e.g. %1)</source>
         <translation type="unfinished">Unesite Bitcoin adresu (npr. %1)</translation>
     </message>
+    <message>
+        <source>Unroutable</source>
+        <translation type="unfinished">Neusmjeriv</translation>
+    </message>
+    <message>
+        <source>Internal</source>
+        <translation type="unfinished">Interni</translation>
+    </message>
     <message>
         <source>Inbound</source>
         <extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
@@ -268,6 +320,31 @@
         <extracomment>An outbound connection to a peer. An outbound connection is a connection initiated by us.</extracomment>
         <translation type="unfinished">Izlazni</translation>
     </message>
+    <message>
+        <source>Full Relay</source>
+        <extracomment>Peer connection type that relays all network information.</extracomment>
+        <translation type="unfinished">Potpuni relay</translation>
+    </message>
+    <message>
+        <source>Block Relay</source>
+        <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">Blok relay</translation>
+    </message>
+    <message>
+        <source>Manual</source>
+        <extracomment>Peer connection type established manually through one of several methods.</extracomment>
+        <translation type="unfinished">Priručnik</translation>
+    </message>
+    <message>
+        <source>Feeler</source>
+        <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Ispipavač</translation>
+    </message>
+    <message>
+        <source>Address Fetch</source>
+        <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
+        <translation type="unfinished">Dohvaćanje adrese</translation>
+    </message>
     <message>
         <source>None</source>
         <translation type="unfinished">Ništa</translation>
@@ -275,41 +352,41 @@
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n sekundi</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minuta</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n sati</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n dana</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n tjedana</numerusform>
         </translation>
     </message>
     <message>
@@ -319,26 +396,46 @@
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n godina</numerusform>
         </translation>
     </message>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Datoteka postavke se ne može pročitati</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Datoteka postavke se ne može mijenjati</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">Ekipa %s</translation>
     </message>
+    <message>
+        <source>%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring a backup.</source>
+        <translation type="unfinished">%s korumpirano. Pokušajte koristiti bitcoin-wallet alat za novčanike kako biste ga spasili ili pokrenuti sigurnosnu kopiju.</translation>
+    </message>
     <message>
         <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
         <translation type="unfinished">-maxtxfee je postavljen preveliko. Naknade ove veličine će biti plaćene na individualnoj transakciji.</translation>
     </message>
+    <message>
+        <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
+        <translation type="unfinished">Nije moguće unazaditi novčanik s verzije %i na verziju %i. Verzija novčanika nepromijenjena.</translation>
+    </message>
     <message>
         <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
         <translation type="unfinished">Program ne može pristupiti podatkovnoj mapi %s. %s je vjerojatno već pokrenut.</translation>
     </message>
+    <message>
+        <source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
+        <translation type="unfinished">Nije moguće unaprijediti podijeljeni novčanik bez HD-a s verzije %i na verziju %i bez unaprijeđenja na potporu pred-podjelnog bazena ključeva. Molimo koristite verziju %i ili neku drugu.</translation>
+    </message>
     <message>
         <source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
         <translation type="unfinished">Distribuirano pod MIT licencom softvera. Vidite pripadajuću datoteku %s ili %s.</translation>
@@ -347,6 +444,26 @@
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Greška kod iščitanja %s! Svi ključevi su ispravno učitani, ali transakcijski podaci ili zapisi u adresaru mogu biti nepotpuni ili netočni.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Greška u čitanju %s! Transakcijski podaci nedostaju ili su netočni. Ponovno skeniranje novčanika.</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
+        <translation type="unfinished">Greška: Format dumpfile zapisa je netočan. Dobiven "%s" očekivani "format".</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s".</source>
+        <translation type="unfinished">Greška: Identifikator dumpfile zapisa je netočan. Dobiven "%s", očekivan "%s".</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
+        <translation type="unfinished">Greška: Dumpfile verzija nije podržana. Ova bitcoin-wallet  verzija podržava  samo dumpfile verziju 1. Dobiven dumpfile s verzijom %s</translation>
+    </message>
+    <message>
+        <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
+        <translation type="unfinished">Greška: Legacy novčanici podržavaju samo "legacy", "p2sh-segwit", i "bech32" tipove adresa</translation>
+    </message>
     <message>
         <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
         <translation type="unfinished">Greška: Neuspješno slušanje dolažećih veza (listen je izbacio grešku %s)</translation>
@@ -355,10 +472,34 @@
         <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
         <translation type="unfinished">Neuspješno procjenjivanje naknada. Fallbackfee je isključena. Pričekajte nekoliko blokova ili uključite -fallbackfee.</translation>
     </message>
+    <message>
+        <source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
+        <translation type="unfinished">Datoteka %s već postoji. Ako ste sigurni da ovo želite, prvo ju maknite, </translation>
+    </message>
     <message>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">Neispravan iznos za -maxtxfee=&lt;amount&gt;: '%s' (mora biti barem minimalnu naknadu za proslijeđivanje od %s kako se ne bi zapela transakcija)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">Nevažeći ili korumpirani peers.dat (%s). Ako mislite da je ovo bug, molimo prijavite %s. Kao alternativno rješenje, možete maknuti datoteku (%s) (preimenuj, makni ili obriši) kako bi se kreirala nova na idućem pokretanju.</translation>
+    </message>
+    <message>
+        <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
+        <translation type="unfinished">Pruženo je više od jedne onion bind adrese. Koristim %s za automatski stvorenu Tor onion uslugu.</translation>
+    </message>
+    <message>
+        <source>No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">Dumpfile nije pružen. Kako biste koristili createfromdump, -dumpfile=&lt;filename&gt; mora biti osiguran. </translation>
+    </message>
+    <message>
+        <source>No dump file provided. To use dump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">Dump datoteka nije automatski dostupna. Kako biste koristili dump, -dumpfile=&lt;filename&gt; mora biti osiguran. </translation>
+    </message>
+    <message>
+        <source>No wallet file format provided. To use createfromdump, -format=&lt;format&gt; must be provided.</source>
+        <translation type="unfinished">Format datoteke novčanika nije dostupan. Kako biste koristili reatefromdump, -format=&lt;format&gt; mora biti osiguran.</translation>
+    </message>
     <message>
         <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
         <translation type="unfinished">Molimo provjerite jesu li datum i vrijeme na vašem računalu točni. Ako je vaš sat krivo namješten, %s neće raditi ispravno.</translation>
@@ -375,18 +516,34 @@
         <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source>
         <translation type="unfinished">Obrezivanje: zadnja sinkronizacija novčanika ide dalje od obrezivanih podataka. Morate koristiti -reindex (ponovo preuzeti cijeli lanac blokova u slučaju obrezivanog čvora)</translation>
     </message>
+    <message>
+        <source>SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported</source>
+        <translation type="unfinished">SQLiteDatabase: Nepoznata sqlite shema novčanika verzija %d. Podržana je samo verzija %d.</translation>
+    </message>
     <message>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">Baza blokova sadrži blok koji je naizgled iz budućnosti. Može to biti posljedica krivo namještenog datuma i vremena na vašem računalu. Obnovite bazu blokova samo ako ste sigurni da su točni datum i vrijeme na vašem računalu.</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">Index bloka db sadrži legacy 'txindex'. Kako biste očistili zauzeti prostor na disku, pokrenite puni -reindex ili ignorirajte ovu grešku. Ova greška neće biti ponovno prikazana.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">Iznos transakcije je premalen za poslati nakon naknade</translation>
     </message>
+    <message>
+        <source>This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet</source>
+        <translation type="unfinished">Ova greška bi se mogla dogoditi kada se ovaj novčanik ne ugasi pravilno i ako je posljednji put bio podignut koristeći noviju verziju Berkeley DB. Ako je tako, molimo koristite softver kojim je novčanik podignut zadnji put.</translation>
+    </message>
     <message>
         <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
         <translation type="unfinished">Ovo je eksperimentalna verzija za testiranje - koristite je na vlastitu odgovornost - ne koristite je za rudarenje ili trgovačke primjene</translation>
     </message>
+    <message>
+        <source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
+        <translation type="unfinished">Ovo je najveća transakcijska naknada koju plaćate (uz normalnu naknadu) kako biste prioritizirali izbjegavanje djelomične potrošnje nad normalnom selekcijom sredstava.</translation>
+    </message>
     <message>
         <source>This is the transaction fee you may discard if change is smaller than dust at this level</source>
         <translation type="unfinished">Ovo je transakcijska naknada koju možete odbaciti ako je ostatak manji od "prašine" (sićušnih iznosa) po ovoj stopi</translation>
@@ -403,6 +560,14 @@
         <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
         <translation type="unfinished">Ne mogu se ponovo odigrati blokovi. Morat ćete ponovo složiti bazu koristeći -reindex-chainstate.</translation>
     </message>
+    <message>
+        <source>Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite".</source>
+        <translation type="unfinished">Nepoznati formant novčanika "%s" pružen. Molimo dostavite "bdb" ili "sqlite".</translation>
+    </message>
+    <message>
+        <source>Warning: Dumpfile wallet format "%s" does not match command line specified format "%s".</source>
+        <translation type="unfinished">Upozorenje: Dumpfile format novčanika "%s" se ne poklapa sa formatom komandne linije "%s".</translation>
+    </message>
     <message>
         <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source>
         <translation type="unfinished">Upozorenje: Privatni ključevi pronađeni u novčaniku {%s} s isključenim privatnim ključevima</translation>
@@ -411,6 +576,10 @@
         <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source>
         <translation type="unfinished">Upozorenje: Izgleda da se ne slažemo u potpunosti s našim klijentima! Možda ćete se vi ili ostali čvorovi morati ažurirati.</translation>
     </message>
+    <message>
+        <source>Witness data for blocks after height %d requires validation. Please restart with -reindex.</source>
+        <translation type="unfinished">Podaci svjedoka za blokove poslije visine %d zahtijevaju validaciju. Molimo restartirajte sa -reindex.</translation>
+    </message>
     <message>
         <source>You need to rebuild the database using -reindex to go back to unpruned mode.  This will redownload the entire blockchain</source>
         <translation type="unfinished">Morat ćete ponovno složiti bazu koristeći -reindex kako biste se vratili na neobrezivan način (unpruned mode). Ovo će ponovno preuzeti cijeli lanac blokova.</translation>
@@ -423,14 +592,50 @@
         <source>-maxmempool must be at least %d MB</source>
         <translation type="unfinished">-maxmempool mora biti barem %d MB</translation>
     </message>
+    <message>
+        <source>A fatal internal error occurred, see debug.log for details</source>
+        <translation type="unfinished">Dogodila se koban greška, vidi detalje u debug.log.</translation>
+    </message>
     <message>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">Ne može se razriješiti adresa -%s: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">Nije moguće postaviti -forcednsseed na true kada je postavka za  -dnsseed false.</translation>
+    </message>
+    <message>
+        <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
+        <translation type="unfinished">Nije moguće postaviti -peerblockfilters bez -blockfilterindex.</translation>
+    </message>
     <message>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Nije moguće pisati u podatkovnu mapu '%s'; provjerite dozvole.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">Unaprijeđenje  -txindex koje za započela prijašnja verzija nije moguće završiti. Ponovno pokrenite s prethodnom verzijom ili pokrenite potpuni -reindex.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s zahtjev za slušanje na portu %u. Ovaj port se smatra "lošim" i time nije vjerojatno da će se drugi Bitcoin Core peerovi spojiti na njega. Pogledajte doc/p2p-bad-ports.md za detalje i cijeli popis.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Nije moguće ponuditi specifične veze i istovremeno dati addrman da traži izlazne veze.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Pogreška pri učitavanju %s: Vanjski potpisni novčanik se učitava bez kompajlirane potpore vanjskog potpisnika</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Preimenovanje nevažeće peers.dat datoteke neuspješno. Molimo premjestite ili obrišite datoteku i pokušajte ponovno.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Izlazni priključci ograničeni na Tor (-onlynet=onion) ali proxy za dohvaćanje Tor mreže nije pronađen (nema -proxy= niti -onion= ) ili je eksplicitno zabranjen (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Konfiguriranje postavki za %s primijenjeno je samo na %s mreži u odjeljku [%s].</translation>
@@ -447,6 +652,10 @@
         <source>Could not parse asmap file %s</source>
         <translation type="unfinished">Nije moguće pročitati asmap datoteku %s</translation>
     </message>
+    <message>
+        <source>Disk space is too low!</source>
+        <translation type="unfinished">Nema dovoljno prostora na disku!</translation>
+    </message>
     <message>
         <source>Do you want to rebuild the block database now?</source>
         <translation type="unfinished">Želite li sada obnoviti bazu blokova?</translation>
@@ -455,6 +664,14 @@
         <source>Done loading</source>
         <translation type="unfinished">Učitavanje gotovo</translation>
     </message>
+    <message>
+        <source>Dump file %s does not exist.</source>
+        <translation type="unfinished">Dump datoteka %s ne postoji.</translation>
+    </message>
+    <message>
+        <source>Error creating %s</source>
+        <translation type="unfinished">Greška pri stvaranju %s</translation>
+    </message>
     <message>
         <source>Error initializing block database</source>
         <translation type="unfinished">Greška kod inicijaliziranja baze blokova</translation>
@@ -491,14 +708,54 @@
         <source>Error reading from database, shutting down.</source>
         <translation type="unfinished">Greška kod iščitanja baze. Zatvara se klijent.</translation>
     </message>
+    <message>
+        <source>Error reading next record from wallet database</source>
+        <translation type="unfinished">Greška pri očitavanju idućeg zapisa iz baza podataka novčanika</translation>
+    </message>
     <message>
         <source>Error upgrading chainstate database</source>
         <translation type="unfinished">Greška kod ažuriranja baze stanja lanca</translation>
     </message>
+    <message>
+        <source>Error: Couldn't create cursor into database</source>
+        <translation type="unfinished">Greška: Nije moguće kreirati cursor u batu podataka</translation>
+    </message>
     <message>
         <source>Error: Disk space is low for %s</source>
         <translation type="unfinished">Pogreška: Malo diskovnog prostora za %s</translation>
     </message>
+    <message>
+        <source>Error: Dumpfile checksum does not match. Computed %s, expected %s</source>
+        <translation type="unfinished">Greška: Dumpfile checksum se ne poklapa. Izračunao %s, očekivano %s</translation>
+    </message>
+    <message>
+        <source>Error: Got key that was not hex: %s</source>
+        <translation type="unfinished">Greška: Dobiven ključ koji nije hex: %s</translation>
+    </message>
+    <message>
+        <source>Error: Got value that was not hex: %s</source>
+        <translation type="unfinished">Greška: Dobivena vrijednost koja nije hex: %s</translation>
+    </message>
+    <message>
+        <source>Error: Keypool ran out, please call keypoolrefill first</source>
+        <translation type="unfinished">Greška: Ispraznio se bazen ključeva, molimo prvo pozovite keypoolrefill</translation>
+    </message>
+    <message>
+        <source>Error: Missing checksum</source>
+        <translation type="unfinished">Greška: Nedostaje checksum</translation>
+    </message>
+    <message>
+        <source>Error: No %s addresses available.</source>
+        <translation type="unfinished">Greška: Nema %s adresa raspoloživo.</translation>
+    </message>
+    <message>
+        <source>Error: Unable to parse version %u as a uint32_t</source>
+        <translation type="unfinished">Greška: Nije moguće parsirati verziju %u kao uint32_t</translation>
+    </message>
+    <message>
+        <source>Error: Unable to write record to new wallet</source>
+        <translation type="unfinished">Greška: Nije moguće unijeti zapis u novi novčanik</translation>
+    </message>
     <message>
         <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
         <translation type="unfinished">Neuspješno slušanje na svim portovima. Koristite -listen=0 ako to želite.</translation>
@@ -507,6 +764,22 @@
         <source>Failed to rescan the wallet during initialization</source>
         <translation type="unfinished">Neuspješno ponovo skeniranje novčanika tijekom inicijalizacije</translation>
     </message>
+    <message>
+        <source>Failed to verify database</source>
+        <translation type="unfinished">Verifikacija baze podataka neuspješna</translation>
+    </message>
+    <message>
+        <source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
+        <translation type="unfinished">Naknada (%s) je niža od postavke minimalne visine naknade (%s)</translation>
+    </message>
+    <message>
+        <source>Ignoring duplicate -wallet %s.</source>
+        <translation type="unfinished">Zanemarujem duplicirani -wallet %s.</translation>
+    </message>
+    <message>
+        <source>Importing…</source>
+        <translation type="unfinished">Uvozim...</translation>
+    </message>
     <message>
         <source>Incorrect or no genesis block found. Wrong datadir for network?</source>
         <translation type="unfinished">Neispravan ili nepostojeći blok geneze. Možda je kriva podatkovna mapa za mrežu?</translation>
@@ -515,10 +788,18 @@
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">Brzinska provjera inicijalizacije neuspješna. %s se zatvara.</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Input nije pronađen ili je već potrošen</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Nedovoljna sredstva</translation>
     </message>
+    <message>
+        <source>Invalid -i2psam address or hostname: '%s'</source>
+        <translation type="unfinished">Neispravna -i2psam adresa ili ime računala: '%s'</translation>
+    </message>
     <message>
         <source>Invalid -onion address or hostname: '%s'</source>
         <translation type="unfinished">Neispravna -onion adresa ili ime računala: '%s'</translation>
@@ -551,10 +832,42 @@
         <source>Invalid netmask specified in -whitelist: '%s'</source>
         <translation type="unfinished">Neispravna mrežna maska zadana u -whitelist: '%s'</translation>
     </message>
+    <message>
+        <source>Loading P2P addresses…</source>
+        <translation type="unfinished">Pokreće se popis P2P adresa...</translation>
+    </message>
+    <message>
+        <source>Loading banlist…</source>
+        <translation type="unfinished">Pokreće se popis zabrana...</translation>
+    </message>
+    <message>
+        <source>Loading block index…</source>
+        <translation type="unfinished">Učitavanje indeksa blokova...</translation>
+    </message>
+    <message>
+        <source>Loading wallet…</source>
+        <translation type="unfinished">Učitavanje novčanika...</translation>
+    </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Iznos nedostaje</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">Nedostaju podaci za procjenu veličine transakcije</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Treba zadati port pomoću -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Nema dostupnih adresa</translation>
+    </message>
+    <message>
+        <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
+        <translation type="unfinished">Proxy server nije određen. Koristi -proxy=&lt;ip&gt; ili -proxy=&lt;ip:port&gt;.</translation>
+    </message>
     <message>
         <source>Not enough file descriptors available.</source>
         <translation type="unfinished">Nema dovoljno dostupnih datotečnih opisivača.</translation>
@@ -563,14 +876,46 @@
         <source>Prune cannot be configured with a negative value.</source>
         <translation type="unfinished">Obrezivanje (prune) ne može biti postavljeno na negativnu vrijednost.</translation>
     </message>
+    <message>
+        <source>Prune mode is incompatible with -coinstatsindex.</source>
+        <translation type="unfinished">Pruning način nije kompatibilan s parametrom coinstatsindex.</translation>
+    </message>
     <message>
         <source>Prune mode is incompatible with -txindex.</source>
         <translation type="unfinished">Način obreživanja (pruning) nekompatibilan je s parametrom -txindex.</translation>
     </message>
+    <message>
+        <source>Pruning blockstore…</source>
+        <translation type="unfinished">Pruning blockstore-a...</translation>
+    </message>
     <message>
         <source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
         <translation type="unfinished">Smanjuje se -maxconnections sa %d na %d zbog sustavnih ograničenja.</translation>
     </message>
+    <message>
+        <source>Replaying blocks…</source>
+        <translation type="unfinished">Premotavam blokove...</translation>
+    </message>
+    <message>
+        <source>Rescanning…</source>
+        <translation type="unfinished">Ponovno pretraživanje...</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Failed to execute statement to verify database: %s</source>
+        <translation type="unfinished">SQLiteDatabase: Neuspješno izvršenje izjave za verifikaciju baze podataka: %s</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Failed to prepare statement to verify database: %s</source>
+        <translation type="unfinished">SQLiteDatabase: Neuspješno pripremanje izjave za verifikaciju baze: %s</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Failed to read database verification error: %s</source>
+        <translation type="unfinished">SQLiteDatabase: Neuspjeh u čitanju greške verifikacije baze podataka %s</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Unexpected application id. Expected %u, got %u</source>
+        <translation type="unfinished">SQLiteDatabase: Neočekivani id aplikacije. Očekvano %u, pronađeno %u</translation>
+    </message>
     <message>
         <source>Section [%s] is not recognized.</source>
         <translation type="unfinished">Odjeljak [%s] nije prepoznat.</translation>
@@ -595,10 +940,18 @@
         <source>Specified blocks directory "%s" does not exist.</source>
         <translation type="unfinished">Zadana mapa blokova "%s" ne postoji.</translation>
     </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">Pokreću se mrežne niti...</translation>
+    </message>
     <message>
         <source>The source code is available from %s.</source>
         <translation type="unfinished">Izvorni kod je dostupan na %s.</translation>
     </message>
+    <message>
+        <source>The specified config file %s does not exist</source>
+        <translation type="unfinished">Navedena konfiguracijska datoteka %s ne postoji</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to pay the fee</source>
         <translation type="unfinished">Transakcijiski iznos je premalen da plati naknadu</translation>
@@ -627,6 +980,10 @@
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Iznosi transakcije ne smiju biti negativni</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Indeks change outputa transakcije je izvan dometa</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">Transakcija ima prevelik lanac memorijskog bazena</translation>
@@ -635,6 +992,10 @@
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">Transakcija mora imati barem jednog primatelja</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Transakciji je potrebna change adresa, ali ju ne možemo generirati.</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">Transakcija prevelika</translation>
@@ -659,6 +1020,14 @@
         <source>Unable to generate keys</source>
         <translation type="unfinished">Ne mogu se generirati ključevi</translation>
     </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">Ne mogu otvoriti %s za upisivanje</translation>
+    </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">Nije moguće parsirati -maxuploadtarget: '%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Ne može se pokrenuti HTTP server. Vidite debug.log za više detalja.</translation>
@@ -679,6 +1048,10 @@
         <source>Unknown network specified in -onlynet: '%s'</source>
         <translation type="unfinished">Nepoznata mreža zadana kod -onlynet: '%s'</translation>
     </message>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished"> Nepoznata nova pravila aktivirana (versionbit %i)</translation>
+    </message>
     <message>
         <source>Unsupported logging category %s=%s.</source>
         <translation type="unfinished">Nepodržana kategorija zapisa %s=%s.</translation>
@@ -691,6 +1064,14 @@
         <source>User Agent comment (%s) contains unsafe characters.</source>
         <translation type="unfinished">Komentar pod "Korisnički agent" (%s) sadrži nesigurne znakove.</translation>
     </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">Provjervanje blokova...</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">Provjeravanje novčanika...</translation>
+    </message>
     <message>
         <source>Wallet needed to be rewritten: restart %s to complete</source>
         <translation type="unfinished">Novčanik je trebao prepravak: ponovo pokrenite %s</translation>
@@ -746,6 +1127,10 @@
         <source>Create a new wallet</source>
         <translation type="unfinished">Stvorite novi novčanik</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Minimiziraj</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Novčanik:</translation>
@@ -779,18 +1164,62 @@
         <source>&amp;Receive</source>
         <translation type="unfinished">Pri&amp;mite</translation>
     </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;Postavke</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;Šifriraj novčanik</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">Šifrirajte privatne ključeve u novčaniku</translation>
     </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;Kreiraj sigurnosnu kopiju novčanika</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;Promijeni lozinku</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">Potpiši &amp;poruku</translation>
+    </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
         <translation type="unfinished">Poruku potpišemo s Bitcoin adresom, kako bi dokazali vlasništvo nad tom adresom</translation>
     </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;Potvrdi poruku</translation>
+    </message>
     <message>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">Provjerite poruku da je potpisana s navedenom Bitcoin adresom</translation>
     </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">&amp;Učitaj PSBT iz datoteke</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">Otvori &amp;URI adresu...</translation>
+    </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">Zatvori novčanik...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">Kreiraj novčanik...</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">Zatvori sve novčanike...</translation>
+    </message>
     <message>
         <source>&amp;File</source>
         <translation type="unfinished">&amp;Datoteka</translation>
@@ -807,6 +1236,30 @@
         <source>Tabs toolbar</source>
         <translation type="unfinished">Traka kartica</translation>
     </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">Sinkronizacija zaglavlja bloka (%1%)...</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">Sinkronizacija s mrežom...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Indeksiranje blokova na disku...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Procesuiranje blokova na disku...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Reindeksiranje blokova na disku...</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Povezivanje sa peer-ovima...</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">Zatražite uplatu (stvara QR kod i bitcoin: URI adresu)</translation>
@@ -826,15 +1279,19 @@
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>Obrađeno %n blokova povijesti transakcije.</numerusform>
         </translation>
     </message>
     <message>
         <source>%1 behind</source>
         <translation type="unfinished">%1 iza</translation>
     </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Ažuriranje...</translation>
+    </message>
     <message>
         <source>Last received block was generated %1 ago.</source>
         <translation type="unfinished">Zadnji primljeni blok je bio ustvaren prije %1.</translation>
@@ -863,6 +1320,10 @@
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Učitaj djelomično potpisanu bitcoin transakciju</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Učitaj PSBT iz &amp;međuspremnika...</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Učitaj djelomično potpisanu bitcoin transakciju iz međuspremnika</translation>
@@ -907,6 +1368,14 @@
         <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
         <translation type="unfinished">Prikažite pomoć programa %1 kako biste ispisali moguće opcije preko terminala</translation>
     </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">&amp;Sakrij vrijednosti</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">Sakrij vrijednost u Pregled tabu</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">uobičajeni novčanik</translation>
@@ -931,15 +1400,43 @@
         <source>%1 client</source>
         <translation type="unfinished">%1 klijent</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Sakrij</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">&amp;Pokaži</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n aktivnih veza s Bitcoin mrežom.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Klikni za više radnji.</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">Pokaži Peers tab </translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">Onemogući mrežnu aktivnost</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">Omogući mrežnu aktivnost</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">Greška: %1</translation>
@@ -1011,7 +1508,11 @@
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
         <translation type="unfinished">Novčanik je &lt;b&gt;šifriran&lt;/b&gt; i trenutno &lt;b&gt;zaključan&lt;/b&gt;</translation>
     </message>
-    </context>
+    <message>
+        <source>Original message:</source>
+        <translation type="unfinished">Originalna poruka:</translation>
+    </message>
+</context>
 <context>
     <name>UnitDisplayStatusBarControl</name>
     <message>
@@ -1093,6 +1594,30 @@
         <source>Copy amount</source>
         <translation type="unfinished">Kopirajte iznos</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopiraj adresu</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiraj &amp;oznaku</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiraj &amp;iznos</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Kopiraj &amp;ID transakcije i output index</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">Za&amp;ključaj nepotrošen input</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">&amp;Otključaj nepotrošen input</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Kopirajte iznos</translation>
@@ -1157,6 +1682,11 @@
         <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
         <translation type="unfinished">Stvorite novčanik</translation>
     </message>
+    <message>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">Kreiranje novčanika &lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
     <message>
         <source>Create wallet failed</source>
         <translation type="unfinished">Neuspješno stvaranje novčanika</translation>
@@ -1165,7 +1695,24 @@
         <source>Create wallet warning</source>
         <translation type="unfinished">Upozorenje kod stvaranja novčanika</translation>
     </message>
-    </context>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Nije moguće izlistati potpisnike</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Učitaj novčanike</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Učitavanje novčanika...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1185,7 +1732,12 @@
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
         <translation type="unfinished">Otvorite novčanik</translation>
     </message>
-    </context>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">Otvaranje novčanika &lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+</context>
 <context>
     <name>WalletController</name>
     <message>
@@ -1204,7 +1756,11 @@
         <source>Close all wallets</source>
         <translation type="unfinished">Zatvori sve novčanike</translation>
     </message>
-    </context>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">Jeste li sigurni da želite zatvoriti sve novčanike?</translation>
+    </message>
+</context>
 <context>
     <name>CreateWalletDialog</name>
     <message>
@@ -1227,6 +1783,10 @@
         <source>Encrypt Wallet</source>
         <translation type="unfinished">Šifrirajte novčanik</translation>
     </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">Napredne opcije</translation>
+    </message>
     <message>
         <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
         <translation type="unfinished">Isključite privatne ključeve za ovaj novčanik. Novčanici gdje su privatni ključevi isključeni neće sadržati privatne ključeve te ne mogu imati HD sjeme ili uvezene privatne ključeve. Ova postavka je idealna za novčanike koje su isključivo za promatranje.</translation>
@@ -1243,11 +1803,36 @@
         <source>Make Blank Wallet</source>
         <translation type="unfinished">Stvorite prazni novčanik</translation>
     </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">Koristi deskriptore za upravljanje scriptPubKey-a</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">Deskriptor novčanik</translation>
+    </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Koristi vanjski potpisni uređaj kao što je hardverski novčanik.  Prije korištenja konfiguriraj vanjski potpisni skript u postavkama novčanika.</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Vanjski potpisnik</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">Stvorite</translation>
     </message>
-    </context>
+    <message>
+        <source>Compiled without sqlite support (required for descriptor wallets)</source>
+        <translation type="unfinished">Kompajlirano bez sqlite potpore (potrebno za deskriptor novčanike)</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Kompajlirano bez mogućnosti vanjskog potpisivanje (potrebno za vanjsko potpisivanje)</translation>
+    </message>
+</context>
 <context>
     <name>EditAddressDialog</name>
     <message>
@@ -1328,6 +1913,18 @@
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">Dostupno je %1 GB slobodnog prostora</translation>
+    </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(od potrebnih %1 GB)</translation>
+    </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(potrebno je %1 GB-a za cijeli lanac)</translation>
+    </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Bit će spremljeno barem %1 GB podataka u ovoj mapi te će se povećati tijekom vremena.</translation>
@@ -1340,9 +1937,9 @@
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(dovoljno za vraćanje sigurnosne kopije stare %n dan(a))</numerusform>
         </translation>
     </message>
     <message>
@@ -1377,6 +1974,10 @@
         <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
         <translation type="unfinished">Kada kliknete OK, %1 počet će preuzimati i procesirati cijeli lanac blokova (%2GB) počevši s najranijim transakcijama u %3 kad je %4 prvi put pokrenut.</translation>
     </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">Ograniči pohranu u blockchain na:</translation>
+    </message>
     <message>
         <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
         <translation type="unfinished">Vraćanje na ovu postavku zahtijeva ponovno preuzimanje cijelog lanca blokova. Brže je najprije preuzeti cijeli lanac pa ga kasnije obrezati. Isključuje napredne mogućnosti.</translation>
@@ -1415,6 +2016,10 @@
 </context>
 <context>
     <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1 do zatvaranja...</translation>
+    </message>
     <message>
         <source>Do not shut down the computer until this window disappears.</source>
         <translation type="unfinished">Ne ugasite računalo dok ovaj prozor ne nestane.</translation>
@@ -1438,6 +2043,14 @@
         <source>Number of blocks left</source>
         <translation type="unfinished">Broj preostalih blokova</translation>
     </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">Nepoznato...</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">računam...</translation>
+    </message>
     <message>
         <source>Last block time</source>
         <translation type="unfinished">Posljednje vrijeme bloka</translation>
@@ -1458,7 +2071,11 @@
         <source>Hide</source>
         <translation type="unfinished">Sakrijte</translation>
     </message>
-    </context>
+    <message>
+        <source>Unknown. Syncing Headers (%1, %2%)…</source>
+        <translation type="unfinished">Nepoznato. Sinkroniziranje zaglavlja blokova (%1, %2%)...</translation>
+    </message>
+</context>
 <context>
     <name>OpenURIDialog</name>
     <message>
@@ -1489,6 +2106,10 @@
         <source>&amp;Start %1 on system login</source>
         <translation type="unfinished">&amp;Pokrenite %1 kod prijave u sustav</translation>
     </message>
+    <message>
+        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">Omogućavanje odbacivanja dijela podataka smanjuje prostor na disku potreban za pohranu transakcija. Svi blokovi su još uvijek potpuno potvrđeni. Poništavanje ove postavke uzrokuje ponovno skidanje cijelog blockchaina.</translation>
+    </message>
     <message>
         <source>Size of &amp;database cache</source>
         <translation type="unfinished">Veličina predmemorije baze podataka</translation>
@@ -1537,14 +2158,44 @@
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Vraćanje na prijašnje stanje zahtijeva ponovo preuzimanje cijelog lanca blokova.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Maksimalna veličina cachea baza podataka. Veći cache može doprinijeti bržoj sinkronizaciji, nakon koje je korisnost manje izražena za većinu slučajeva. Smanjenje cache veličine će smanjiti korištenje memorije. Nekorištena mempool memorija se dijeli za ovaj cache. </translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Postavi broj skript verifikacijskih niti. Negativne vrijednosti odgovaraju broju jezgri koje trebate ostaviti slobodnima za sustav.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = automatski odredite, &lt;0 = ostavite slobodno upravo toliko jezgri)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Ovo omogućava vama ili vanjskom alatu komunikaciju s čvorom kroz command-line i JSON-RPC komande.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Uključi &amp;RPC server</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">&amp;Novčanik</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Za postavljanje oduzimanja naknade od iznosa kao zadano ili ne.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Oduzmi &amp;naknadu od iznosa kao zadano</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Stručne postavke</translation>
@@ -1561,6 +2212,28 @@
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Trošenje nepotvrđenih vraćenih iznosa</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Uključi  &amp;PBST opcije za upravljanje</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Za prikazivanje PSBT opcija za upravaljanje. </translation>
+    </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">Vanjski potpisnik (npr. hardverski novčanik)</translation>
+    </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">&amp;Put za vanjsku skriptu potpisnika</translation>
+    </message>
+    <message>
+        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
+        <translation type="unfinished">Cijeli put do Bitcoin Core kompatibilnog skripta (npr. C:\Downloads\hwi.exe ili /Users/you/Downloads/hwi.py). Upozerenje: malware može ukrasti vaša sredstva!</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Automatski otvori port Bitcoin klijenta na ruteru. To radi samo ako ruter podržava UPnP i ako je omogućen.</translation>
@@ -1569,6 +2242,14 @@
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">Mapiraj port koristeći &amp;UPnP</translation>
     </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
+        <translation type="unfinished">Automatski otvori port Bitcoin klijenta na ruteru. Ovo radi samo ako ruter podržava UPnP i ako je omogućen. Vanjski port može biti nasumičan.</translation>
+    </message>
+    <message>
+        <source>Map port using NA&amp;T-PMP</source>
+        <translation type="unfinished">Mapiraj port koristeći &amp;UPnP</translation>
+    </message>
     <message>
         <source>Accept connections from outside.</source>
         <translation type="unfinished">Prihvatite veze izvana.</translation>
@@ -1613,6 +2294,14 @@
         <source>&amp;Window</source>
         <translation type="unfinished">&amp;Prozor</translation>
     </message>
+    <message>
+        <source>Show the icon in the system tray.</source>
+        <translation type="unfinished">Pokaži ikonu sa sustavne trake.</translation>
+    </message>
+    <message>
+        <source>&amp;Show tray icon</source>
+        <translation type="unfinished">&amp;Pokaži ikonu</translation>
+    </message>
     <message>
         <source>Show only a tray icon after minimizing the window.</source>
         <translation type="unfinished">Prikaži samo ikonu u sistemskoj traci nakon minimiziranja prozora</translation>
@@ -1645,10 +2334,38 @@
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Izaberite željeni najmanji dio bitcoina koji će biti prikazan u sučelju i koji će se koristiti za plaćanje.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">Vanjski URL-ovi transakcije (npr. preglednik blokova) koji se javljaju u kartici transakcija kao elementi kontekstnog izbornika. %s u URL-u zamijenjen je hashom transakcije. Višestruki URL-ovi su odvojeni vertikalnom crtom |.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;Vanjski URL-ovi transakcije</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Ovisi želite li prikazati mogućnosti kontroliranja inputa ili ne.</translation>
     </message>
+    <message>
+        <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor onion services.</source>
+        <translation type="unfinished">Spojite se na Bitcoin mrežu kroz zaseban SOCKS5 proxy za povezivanje na Tor onion usluge.</translation>
+    </message>
+    <message>
+        <source>Use separate SOCKS&amp;5 proxy to reach peers via Tor onion services:</source>
+        <translation type="unfinished">Koristite zaseban SOCKS&amp;5 proxy kako biste dohvatili klijente preko Tora:</translation>
+    </message>
+    <message>
+        <source>Monospaced font in the Overview tab:</source>
+        <translation type="unfinished">Font fiksne širine u tabu Pregled:</translation>
+    </message>
+    <message>
+        <source>embedded "%1"</source>
+        <translation type="unfinished">ugrađen "%1"</translation>
+    </message>
+    <message>
+        <source>closest matching "%1"</source>
+        <translation type="unfinished">najbliže poklapanje "%1"</translation>
+    </message>
     <message>
         <source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
         <translation type="unfinished">Opcije postavljene u ovom dijalogu nadglašene su naredbenom linijom ili konfiguracijskom datotekom:</translation>
@@ -1661,6 +2378,11 @@
         <source>&amp;Cancel</source>
         <translation type="unfinished">&amp;Odustani</translation>
     </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Kompajlirano bez mogućnosti vanjskog potpisivanje (potrebno za vanjsko potpisivanje)</translation>
+    </message>
     <message>
         <source>default</source>
         <translation type="unfinished">standardne vrijednosti</translation>
@@ -1691,117 +2413,242 @@
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">Ova konfiguracijska datoteka je korištena za specificiranje napredne korisničke opcije koje će poništiti postavke GUI-a. Također će bilo koje opcije navedene preko terminala poništiti ovu konfiguracijsku datoteku.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Nastavi</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Odustanite</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="unfinished">Greška</translation>
+        <source>Error</source>
+        <translation type="unfinished">Greška</translation>
+    </message>
+    <message>
+        <source>The configuration file could not be opened.</source>
+        <translation type="unfinished">Konfiguracijska datoteka nije se mogla otvoriti.</translation>
+    </message>
+    <message>
+        <source>This change would require a client restart.</source>
+        <translation type="unfinished">Ova promjena zahtijeva da se klijent ponovo pokrene.</translation>
+    </message>
+    <message>
+        <source>The supplied proxy address is invalid.</source>
+        <translation type="unfinished">Priložena proxy adresa je nevažeća.</translation>
+    </message>
+</context>
+<context>
+    <name>OverviewPage</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">Oblik</translation>
+    </message>
+    <message>
+        <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
+        <translation type="unfinished">Prikazani podatci mogu biti zastarjeli. Vaš novčanik se automatski sinkronizira s Bitcoin mrežom kada je veza uspostavljena, ali taj proces još nije završen.</translation>
+    </message>
+    <message>
+        <source>Watch-only:</source>
+        <translation type="unfinished">Isključivno promatrane adrese:</translation>
+    </message>
+    <message>
+        <source>Available:</source>
+        <translation type="unfinished">Dostupno:</translation>
+    </message>
+    <message>
+        <source>Your current spendable balance</source>
+        <translation type="unfinished">Trenutno stanje koje možete trošiti</translation>
+    </message>
+    <message>
+        <source>Pending:</source>
+        <translation type="unfinished">Neriješeno:</translation>
+    </message>
+    <message>
+        <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
+        <translation type="unfinished">Ukupan iznos transakcija koje se još moraju potvrditi te se ne računa kao stanje koje se može trošiti</translation>
+    </message>
+    <message>
+        <source>Immature:</source>
+        <translation type="unfinished">Nezrelo:</translation>
+    </message>
+    <message>
+        <source>Mined balance that has not yet matured</source>
+        <translation type="unfinished">Izrudareno stanje koje još nije dozrijevalo</translation>
+    </message>
+    <message>
+        <source>Balances</source>
+        <translation type="unfinished">Stanja</translation>
+    </message>
+    <message>
+        <source>Total:</source>
+        <translation type="unfinished">Ukupno:</translation>
+    </message>
+    <message>
+        <source>Your current total balance</source>
+        <translation type="unfinished">Vaše trenutno svekupno stanje</translation>
+    </message>
+    <message>
+        <source>Your current balance in watch-only addresses</source>
+        <translation type="unfinished">Vaše trenutno stanje kod eksluzivno promatranih (watch-only) adresa</translation>
+    </message>
+    <message>
+        <source>Spendable:</source>
+        <translation type="unfinished">Stanje koje se može trošiti:</translation>
+    </message>
+    <message>
+        <source>Recent transactions</source>
+        <translation type="unfinished">Nedavne transakcije</translation>
+    </message>
+    <message>
+        <source>Unconfirmed transactions to watch-only addresses</source>
+        <translation type="unfinished">Nepotvrđene transakcije isključivo promatranim adresama</translation>
+    </message>
+    <message>
+        <source>Mined balance in watch-only addresses that has not yet matured</source>
+        <translation type="unfinished">Izrudareno stanje na isključivo promatranim adresama koje još nije dozrijevalo</translation>
+    </message>
+    <message>
+        <source>Current total balance in watch-only addresses</source>
+        <translation type="unfinished">Trenutno ukupno stanje na isključivo promatranim adresama</translation>
+    </message>
+    <message>
+        <source>Privacy mode activated for the Overview tab. To unmask the values, uncheck Settings-&gt;Mask values.</source>
+        <translation type="unfinished">Privatni način aktiviran za tab Pregled. Za prikaz vrijednosti, odznači Postavke -&gt; Sakrij vrijednosti.</translation>
+    </message>
+</context>
+<context>
+    <name>PSBTOperationsDialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation type="unfinished">Dijalog</translation>
+    </message>
+    <message>
+        <source>Sign Tx</source>
+        <translation type="unfinished">Potpiši Tx</translation>
+    </message>
+    <message>
+        <source>Broadcast Tx</source>
+        <translation type="unfinished">Objavi Tx</translation>
+    </message>
+    <message>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished">Kopiraj u međuspremnik</translation>
+    </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">Spremi...</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished">Zatvori</translation>
+    </message>
+    <message>
+        <source>Failed to load transaction: %1</source>
+        <translation type="unfinished">Neuspješno dohvaćanje transakcije: %1</translation>
+    </message>
+    <message>
+        <source>Failed to sign transaction: %1</source>
+        <translation type="unfinished">Neuspješno potpisivanje transakcije: %1</translation>
     </message>
     <message>
-        <source>The configuration file could not be opened.</source>
-        <translation type="unfinished">Konfiguracijska datoteka nije se mogla otvoriti.</translation>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Nije moguće potpisati inpute dok je novčanik zaključan.</translation>
     </message>
     <message>
-        <source>This change would require a client restart.</source>
-        <translation type="unfinished">Ova promjena zahtijeva da se klijent ponovo pokrene.</translation>
+        <source>Could not sign any more inputs.</source>
+        <translation type="unfinished">Nije bilo moguće potpisati više inputa. </translation>
     </message>
     <message>
-        <source>The supplied proxy address is invalid.</source>
-        <translation type="unfinished">Priložena proxy adresa je nevažeća.</translation>
+        <source>Signed %1 inputs, but more signatures are still required.</source>
+        <translation type="unfinished">Potpisano %1 inputa, ali potrebno je još potpisa. </translation>
     </message>
-</context>
-<context>
-    <name>OverviewPage</name>
     <message>
-        <source>Form</source>
-        <translation type="unfinished">Oblik</translation>
+        <source>Signed transaction successfully. Transaction is ready to broadcast.</source>
+        <translation type="unfinished">Transakcija uspješno potpisana. Transakcija je spremna za objavu.</translation>
     </message>
     <message>
-        <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
-        <translation type="unfinished">Prikazani podatci mogu biti zastarjeli. Vaš novčanik se automatski sinkronizira s Bitcoin mrežom kada je veza uspostavljena, ali taj proces još nije završen.</translation>
+        <source>Unknown error processing transaction.</source>
+        <translation type="unfinished">Nepoznata greška pri obradi transakcije.</translation>
     </message>
     <message>
-        <source>Watch-only:</source>
-        <translation type="unfinished">Isključivno promatrane adrese:</translation>
+        <source>Transaction broadcast successfully! Transaction ID: %1</source>
+        <translation type="unfinished">Uspješna objava transakcije! ID transakcije: %1</translation>
     </message>
     <message>
-        <source>Available:</source>
-        <translation type="unfinished">Dostupno:</translation>
+        <source>Transaction broadcast failed: %1</source>
+        <translation type="unfinished">Neuspješna objava transakcije: %1</translation>
     </message>
     <message>
-        <source>Your current spendable balance</source>
-        <translation type="unfinished">Trenutno stanje koje možete trošiti</translation>
+        <source>PSBT copied to clipboard.</source>
+        <translation type="unfinished">PBST kopiran u meduspremnik.</translation>
     </message>
     <message>
-        <source>Pending:</source>
-        <translation type="unfinished">Neriješeno:</translation>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">Spremi podatke transakcije</translation>
     </message>
     <message>
-        <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
-        <translation type="unfinished">Ukupan iznos transakcija koje se još moraju potvrditi te se ne računa kao stanje koje se može trošiti</translation>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">Djelomično potpisana transakcija (binarno)</translation>
     </message>
     <message>
-        <source>Immature:</source>
-        <translation type="unfinished">Nezrelo:</translation>
+        <source>PSBT saved to disk.</source>
+        <translation type="unfinished">PBST spremljen na disk.</translation>
     </message>
     <message>
-        <source>Mined balance that has not yet matured</source>
-        <translation type="unfinished">Izrudareno stanje koje još nije dozrijevalo</translation>
+        <source> * Sends %1 to %2</source>
+        <translation type="unfinished">* Šalje %1 %2</translation>
     </message>
     <message>
-        <source>Balances</source>
-        <translation type="unfinished">Stanja</translation>
+        <source>Unable to calculate transaction fee or total transaction amount.</source>
+        <translation type="unfinished">Ne mogu izračunati naknadu za transakciju niti totalni iznos transakcije.</translation>
     </message>
     <message>
-        <source>Total:</source>
-        <translation type="unfinished">Ukupno:</translation>
+        <source>Pays transaction fee: </source>
+        <translation type="unfinished">Plaća naknadu za transakciju:</translation>
     </message>
     <message>
-        <source>Your current total balance</source>
-        <translation type="unfinished">Vaše trenutno svekupno stanje</translation>
+        <source>Total Amount</source>
+        <translation type="unfinished">Ukupni iznos</translation>
     </message>
     <message>
-        <source>Your current balance in watch-only addresses</source>
-        <translation type="unfinished">Vaše trenutno stanje kod eksluzivno promatranih (watch-only) adresa</translation>
+        <source>or</source>
+        <translation type="unfinished">ili</translation>
     </message>
     <message>
-        <source>Spendable:</source>
-        <translation type="unfinished">Stanje koje se može trošiti:</translation>
+        <source>Transaction has %1 unsigned inputs.</source>
+        <translation type="unfinished">Transakcija ima %1 nepotpisanih inputa.</translation>
     </message>
     <message>
-        <source>Recent transactions</source>
-        <translation type="unfinished">Nedavne transakcije</translation>
+        <source>Transaction is missing some information about inputs.</source>
+        <translation type="unfinished">Transakciji nedostaje informacije o inputima.</translation>
     </message>
     <message>
-        <source>Unconfirmed transactions to watch-only addresses</source>
-        <translation type="unfinished">Nepotvrđene transakcije isključivo promatranim adresama</translation>
+        <source>Transaction still needs signature(s).</source>
+        <translation type="unfinished">Transakciji još uvijek treba potpis(e).</translation>
     </message>
     <message>
-        <source>Mined balance in watch-only addresses that has not yet matured</source>
-        <translation type="unfinished">Izrudareno stanje na isključivo promatranim adresama koje još nije dozrijevalo</translation>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Ali nijedan novčanik nije učitan.)</translation>
     </message>
     <message>
-        <source>Current total balance in watch-only addresses</source>
-        <translation type="unfinished">Trenutno ukupno stanje na isključivo promatranim adresama</translation>
+        <source>(But this wallet cannot sign transactions.)</source>
+        <translation type="unfinished">(Ali ovaj novčanik ne može potpisati transakcije.)</translation>
     </message>
-    </context>
-<context>
-    <name>PSBTOperationsDialog</name>
     <message>
-        <source>Dialog</source>
-        <translation type="unfinished">Dijalog</translation>
+        <source>(But this wallet does not have the right keys.)</source>
+        <translation type="unfinished">(Ali ovaj novčanik nema odgovarajuće ključeve.)</translation>
     </message>
     <message>
-        <source>Total Amount</source>
-        <translation type="unfinished">Ukupni iznos</translation>
+        <source>Transaction is fully signed and ready for broadcast.</source>
+        <translation type="unfinished">Transakcija je cjelovito potpisana i spremna za objavu.</translation>
     </message>
     <message>
-        <source>or</source>
-        <translation type="unfinished">ili</translation>
+        <source>Transaction status is unknown.</source>
+        <translation type="unfinished">Status transakcije je nepoznat.</translation>
     </message>
-    </context>
+</context>
 <context>
     <name>PaymentServer</name>
     <message>
@@ -1820,6 +2667,14 @@
         <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
         <translation type="unfinished">'bitcoin://' nije ispravan URI. Koristite 'bitcoin:' umjesto toga.</translation>
     </message>
+    <message>
+        <source>Cannot process payment request because BIP70 is not supported.
+Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
+If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source>
+        <translation type="unfinished">Nemoguće obraditi zahtjev za plaćanje zato što BIP70 nije podržan.
+S obzirom na široko rasprostranjene sigurnosne nedostatke u BIP70, preporučljivo je da zanemarite preporuke trgovca u  vezi promjene novčanika.
+Ako imate ovu grešku, od trgovca zatražite URI koji je kompatibilan sa BIP21.</translation>
+    </message>
     <message>
         <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
         <translation type="unfinished">Ne može se parsirati URI! Uzrok tomu može biti nevažeća Bitcoin adresa ili neispravni parametri kod URI-a.</translation>
@@ -1879,6 +2734,10 @@
 </context>
 <context>
     <name>QRImageWidget</name>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;Spremi sliku...</translation>
+    </message>
     <message>
         <source>&amp;Copy Image</source>
         <translation type="unfinished">&amp;Kopirajte sliku</translation>
@@ -1899,7 +2758,12 @@
         <source>Save QR Code</source>
         <translation type="unfinished">Spremi QR kod</translation>
     </message>
-    </context>
+    <message>
+        <source>PNG Image</source>
+        <extracomment>Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics.</extracomment>
+        <translation type="unfinished">PNG slika</translation>
+    </message>
+</context>
 <context>
     <name>RPCConsole</name>
     <message>
@@ -2006,10 +2870,45 @@
         <source>Synced Blocks</source>
         <translation type="unfinished">Broj sinkronizranih blokova</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Zadnja transakcija</translation>
+    </message>
+    <message>
+        <source>The mapped Autonomous System used for diversifying peer selection.</source>
+        <translation type="unfinished">Mapirani Autonomni sustav koji se koristi za diverzifikaciju odabira peer-ova.</translation>
+    </message>
     <message>
         <source>Mapped AS</source>
         <translation type="unfinished">Mapirano kao</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Prenosimo li adrese ovom peer-u.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Prijenos adresa</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Ukupan broj obrađenih adresa, osim onih koje su izbačene zbog ograničenja brzine.</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Obrađene adrese</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Ukupan broj adresa izbačenih zbog ograničenja brzine.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Adrese ograničene brzinom</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Korisnički agent</translation>
@@ -2018,6 +2917,10 @@
         <source>Node window</source>
         <translation type="unfinished">Konzola za čvor</translation>
     </message>
+    <message>
+        <source>Current block height</source>
+        <translation type="unfinished">Trenutna visina bloka</translation>
+    </message>
     <message>
         <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source>
         <translation type="unfinished">Otvorite datoteku zapisa programa %1 iz trenutne podatkovne mape. Može potrajati nekoliko sekundi za velike datoteke zapisa.</translation>
@@ -2030,14 +2933,59 @@
         <source>Increase font size</source>
         <translation type="unfinished">Povećajte veličinu fonta</translation>
     </message>
+    <message>
+        <source>Permissions</source>
+        <translation type="unfinished">Dopuštenja</translation>
+    </message>
+    <message>
+        <source>The direction and type of peer connection: %1</source>
+        <translation type="unfinished">Smjer i tip peer konekcije: %1</translation>
+    </message>
+    <message>
+        <source>Direction/Type</source>
+        <translation type="unfinished">Smjer/tip</translation>
+    </message>
+    <message>
+        <source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
+        <translation type="unfinished">Mrežni protokoli kroz koje je spojen ovaj peer: IPv4, IPv6, Onion, I2P, ili CJDNS.</translation>
+    </message>
     <message>
         <source>Services</source>
         <translation type="unfinished">Usluge</translation>
     </message>
+    <message>
+        <source>Whether the peer requested us to relay transactions.</source>
+        <translation type="unfinished">Je li peer od nas zatražio prijenos transakcija.</translation>
+    </message>
+    <message>
+        <source>Wants Tx Relay</source>
+        <translation type="unfinished">Želi Tx prijenos</translation>
+    </message>
+    <message>
+        <source>High bandwidth BIP152 compact block relay: %1</source>
+        <translation type="unfinished">Visoka razina BIP152 kompaktnog blok prijenosa: %1</translation>
+    </message>
+    <message>
+        <source>High Bandwidth</source>
+        <translation type="unfinished">Visoka razina prijenosa podataka</translation>
+    </message>
     <message>
         <source>Connection Time</source>
         <translation type="unfinished">Trajanje veze</translation>
     </message>
+    <message>
+        <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
+        <translation type="unfinished">Vrijeme prošlo od primitka novog bloka koji je prošao osnovne provjere validnosti, a koji je primljen od ovog peera.</translation>
+    </message>
+    <message>
+        <source>Last Block</source>
+        <translation type="unfinished">Zadnji blok</translation>
+    </message>
+    <message>
+        <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
+        <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
+        <translation type="unfinished">Vrijeme prošlo od prihvaćanje nove transakcije u naš mempool, a koju je prihvatio ovaj peer.</translation>
+    </message>
     <message>
         <source>Last Send</source>
         <translation type="unfinished">Zadnja pošiljka</translation>
@@ -2102,6 +3050,53 @@
         <source>Out:</source>
         <translation type="unfinished">Izlazne:</translation>
     </message>
+    <message>
+        <source>Inbound: initiated by peer</source>
+        <extracomment>Explanatory text for an inbound peer connection.</extracomment>
+        <translation type="unfinished">Ulazna: pokrenuo peer</translation>
+    </message>
+    <message>
+        <source>Outbound Full Relay: default</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
+        <translation type="unfinished">Izlazni potpuni prijenos: zadano</translation>
+    </message>
+    <message>
+        <source>Outbound Block Relay: does not relay transactions or addresses</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">Izlazni blok prijenos: ne prenosi transakcije ili adrese</translation>
+    </message>
+    <message>
+        <source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
+        <extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
+        <translation type="unfinished">Priručnik za izlazeće (?): dodano koristeći RPC %1 ili %2/%3 konfiguracijske opcije</translation>
+    </message>
+    <message>
+        <source>Outbound Feeler: short-lived, for testing addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Izlazni ispipavač: kratkotrajan, za testiranje adresa</translation>
+    </message>
+    <message>
+        <source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
+        <translation type="unfinished">Dohvaćanje izlaznih adresa: kratkotrajno, za traženje adresa</translation>
+    </message>
+    <message>
+        <source>we selected the peer for high bandwidth relay</source>
+        <translation type="unfinished">odabrali smo peera za brzopodatkovni prijenos</translation>
+    </message>
+    <message>
+        <source>the peer selected us for high bandwidth relay</source>
+        <translation type="unfinished">peer odabran za brzopodatkovni prijenos</translation>
+    </message>
+    <message>
+        <source>no high bandwidth relay selected</source>
+        <translation type="unfinished">brzopodatkovni prijenos nije odabran</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;Kopiraj adresu</translation>
+    </message>
     <message>
         <source>&amp;Disconnect</source>
         <translation type="unfinished">&amp;Odspojite</translation>
@@ -2110,6 +3105,10 @@
         <source>1 &amp;hour</source>
         <translation type="unfinished">1 &amp;sat</translation>
     </message>
+    <message>
+        <source>1 d&amp;ay</source>
+        <translation type="unfinished">1 d&amp;an</translation>
+    </message>
     <message>
         <source>1 &amp;week</source>
         <translation type="unfinished">1 &amp;tjedan</translation>
@@ -2118,6 +3117,11 @@
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;godinu</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Kopiraj IP/Netmask</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Ukinite zabranu</translation>
@@ -2134,6 +3138,28 @@
         <source>Executing command using "%1" wallet</source>
         <translation type="unfinished">Izvršava se naredba koristeći novčanik "%1"</translation>
     </message>
+    <message>
+        <source>Welcome to the %1 RPC console.
+Use up and down arrows to navigate history, and %2 to clear screen.
+Use %3 and %4 to increase or decrease the font size.
+Type %5 for an overview of available commands.
+For more information on using this console, type %6.
+
+%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8</source>
+        <extracomment>RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally.</extracomment>
+        <translation type="unfinished">Dobrodošli u %1 RPC konzolu.
+Koristite strelice za gore i dolje kako biste navigirali kroz povijest, i %2 za micanje svega sa zaslona.
+Koristite %3 i %4 za smanjivanje i povećavanje veličine fonta.
+Utipkajte %5 za pregled svih dosrupnih komandi.
+Za više informacija o korištenju ove konzile, utipkajte %6.
+
+%7UPOZORENJE: Prevaranti su uvijek aktivni te kradu sadržaj novčanika korisnika tako što im daju upute koje komande upisati. Nemojte koristiti ovu konzolu bez potpunog razumijevanja posljedica upisivanja komande.%8</translation>
+    </message>
+    <message>
+        <source>Executing…</source>
+        <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
+        <translation type="unfinished">Izvršavam...</translation>
+    </message>
     <message>
         <source>via %1</source>
         <translation type="unfinished">preko %1</translation>
@@ -2158,6 +3184,10 @@
         <source>Ban for</source>
         <translation type="unfinished">Zabranite za</translation>
     </message>
+    <message>
+        <source>Never</source>
+        <translation type="unfinished">Nikada</translation>
+    </message>
     <message>
         <source>Unknown</source>
         <translation type="unfinished">Nepoznato</translation>
@@ -2193,6 +3223,10 @@
         <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source>
         <translation type="unfinished">Opcionalan iznos koji možete zahtijevati. Ostavite ovo prazno ili unesite nulu ako ne želite zahtijevati specifičan iznos.</translation>
     </message>
+    <message>
+        <source>An optional label to associate with the new receiving address (used by you to identify an invoice).  It is also attached to the payment request.</source>
+        <translation type="unfinished">Neobvezna oznaka za označavanje nove primateljske adrese (koristi se za identifikaciju računa). Također je pridružena zahtjevu za plaćanje.</translation>
+    </message>
     <message>
         <source>An optional message that is attached to the payment request and may be displayed to the sender.</source>
         <translation type="unfinished">Izborna poruka je priložena zahtjevu za plaćanje i može se prikazati pošiljatelju.</translation>
@@ -2233,13 +3267,41 @@
         <source>Copy &amp;URI</source>
         <translation type="unfinished">Kopiraj &amp;URI</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopiraj adresu</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiraj &amp;oznaku</translation>
+    </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">Kopiraj &amp;poruku</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiraj &amp;iznos</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">Ne može se otključati novčanik.</translation>
     </message>
-    </context>
+    <message>
+        <source>Could not generate new %1 address</source>
+        <translation type="unfinished">Ne mogu generirati novu %1 adresu</translation>
+    </message>
+</context>
 <context>
     <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Request payment to …</source>
+        <translation type="unfinished">Zatraži plaćanje na...</translation>
+    </message>
+    <message>
+        <source>Address:</source>
+        <translation type="unfinished">Adresa:</translation>
+    </message>
     <message>
         <source>Amount:</source>
         <translation type="unfinished">Iznos:</translation>
@@ -2264,6 +3326,18 @@
         <source>Copy &amp;Address</source>
         <translation type="unfinished">Kopiraj &amp;adresu</translation>
     </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">&amp;Verificiraj</translation>
+    </message>
+    <message>
+        <source>Verify this address on e.g. a hardware wallet screen</source>
+        <translation type="unfinished">Verificiraj ovu adresu na npr. zaslonu hardverskog novčanika</translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;Spremi sliku...</translation>
+    </message>
     <message>
         <source>Payment information</source>
         <translation type="unfinished">Informacije o uplati</translation>
@@ -2394,14 +3468,30 @@
         <source>Clear all fields of the form.</source>
         <translation type="unfinished">Obriši sva polja</translation>
     </message>
+    <message>
+        <source>Inputs…</source>
+        <translation type="unfinished">Inputi...</translation>
+    </message>
     <message>
         <source>Dust:</source>
         <translation type="unfinished">Prah:</translation>
     </message>
+    <message>
+        <source>Choose…</source>
+        <translation type="unfinished">Odaberi...</translation>
+    </message>
     <message>
         <source>Hide transaction fee settings</source>
         <translation type="unfinished">Sakrijte postavke za transakcijske provizije
 </translation>
+    </message>
+    <message>
+        <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size.
+
+Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satoshis per kvB" for a transaction size of 500 virtual bytes (half of 1 kvB) would ultimately yield a fee of only 50 satoshis.</source>
+        <translation type="unfinished">Zadajte prilagodenu naknadu po kB (1000 bajtova) virtualne veličine transakcije.
+
+Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po kB" za transakciju veličine 500 bajtova (polovica od 1 kB) rezultirala bi ultimativno naknadom od samo 50 satošija.</translation>
     </message>
     <message>
         <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
@@ -2411,6 +3501,10 @@
         <source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
         <translation type="unfinished">Preniska naknada može rezultirati transakcijom koja se nikad ne potvrđuje (vidite oblačić)</translation>
     </message>
+    <message>
+        <source>(Smart fee not initialized yet. This usually takes a few blocks…)</source>
+        <translation type="unfinished">(Pametna procjena naknada još nije inicijalizirana. Inače traje nekoliko blokova...)</translation>
+    </message>
     <message>
         <source>Confirmation time target:</source>
         <translation type="unfinished">Ciljno vrijeme potvrde:</translation>
@@ -2471,10 +3565,28 @@
         <source>%1 (%2 blocks)</source>
         <translation type="unfinished">%1 (%2 blokova)</translation>
     </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">Potpiši na uređaju</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">Prvo poveži svoj hardverski novčanik.</translation>
+    </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Postavi put za vanjsku skriptu potpisnika u Opcije -&gt; Novčanik</translation>
+    </message>
     <message>
         <source>Cr&amp;eate Unsigned</source>
         <translation type="unfinished">Cr&amp;eate nije potpisan</translation>
     </message>
+    <message>
+        <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <translation type="unfinished">Stvara djelomično potpisanu Bitcoin transakciju (Partially Signed Bitcoin Transaction - PSBT) za upotrebu sa npr. novčanikom %1 koji nije povezan s mrežom ili sa PSBT kompatibilnim hardverskim novčanikom.</translation>
+    </message>
     <message>
         <source> from wallet '%1'</source>
         <translation type="unfinished">iz novčanika '%1'</translation>
@@ -2487,10 +3599,41 @@
         <source>%1 to %2</source>
         <translation type="unfinished">%1 na %2</translation>
     </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">Kliknite "Prikažite detalje..." kako biste pregledali popis primatelja</translation>
+    </message>
     <message>
         <source>Sign failed</source>
         <translation type="unfinished">Potpis nije uspio</translation>
     </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Vanjski potpisnik nije pronađen</translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Neuspješno vanjsko potpisivanje</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">Spremi podatke transakcije</translation>
+    </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">Djelomično potpisana transakcija (binarno)</translation>
+    </message>
+    <message>
+        <source>PSBT saved</source>
+        <translation type="unfinished">PSBT spremljen</translation>
+    </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">Vanjski balans:</translation>
+    </message>
     <message>
         <source>or</source>
         <translation type="unfinished">ili</translation>
@@ -2499,6 +3642,21 @@
         <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source>
         <translation type="unfinished">Možete kasnije povećati naknadu (javlja Replace-By-Fee, BIP-125).</translation>
     </message>
+    <message>
+        <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
+        <translation type="unfinished">Molimo pregledajte svoj prijedlog transakcije. Ovo će stvoriti djelomično potpisanu Bitcoin transakciju (PBST) koju možete spremiti ili kopirati i zatim potpisati sa npr. novčanikom %1 koji nije povezan s mrežom ili sa PSBT kompatibilnim hardverskim novčanikom.</translation>
+    </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Želite li kreirati ovu transakciju?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Molimo pregledajte svoju transakciju. Možete kreirarti i poslati ovu transakciju ili kreirati djelomično potpisanu Bitcoin transakciju (PBST) koju možete spremiti ili kopirati i zatim potpisati sa npr. novčanikom %1 koji nije povezan s mrežom ili sa PSBT kompatibilnim hardverskim novčanikom.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -2559,9 +3717,9 @@
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Procijenjeno je da će potvrđivanje početi unutar %n blokova.</numerusform>
         </translation>
     </message>
     <message>
@@ -2666,7 +3824,11 @@
         <source>Send</source>
         <translation type="unfinished">Pošalji</translation>
     </message>
-    </context>
+    <message>
+        <source>Create Unsigned</source>
+        <translation type="unfinished">Kreiraj nepotpisano</translation>
+    </message>
+</context>
 <context>
     <name>SignVerifyMessageDialog</name>
     <message>
@@ -2810,6 +3972,17 @@
         <translation type="unfinished">Poruka provjerena.</translation>
     </message>
 </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>(press q to shutdown and continue later)</source>
+        <translation type="unfinished">(pritisnite q kako bi ugasili i nastavili kasnije)</translation>
+    </message>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">pritisnite q za gašenje</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -2883,9 +4056,9 @@
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>dozrijeva za još %n blokova</numerusform>
         </translation>
     </message>
     <message>
@@ -3137,10 +4310,64 @@
         <source>Min amount</source>
         <translation type="unfinished">Min iznos</translation>
     </message>
+    <message>
+        <source>Range…</source>
+        <translation type="unfinished">Raspon...</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopiraj adresu</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiraj &amp;oznaku</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiraj &amp;iznos</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">Kopiraj &amp;ID transakcije</translation>
+    </message>
+    <message>
+        <source>Copy &amp;raw transaction</source>
+        <translation type="unfinished">Kopiraj &amp;sirovu transakciju</translation>
+    </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">Kopiraj sve transakcijske &amp;detalje</translation>
+    </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">&amp;Prikaži detalje transakcije</translation>
+    </message>
+    <message>
+        <source>Increase transaction &amp;fee</source>
+        <translation type="unfinished">Povećaj transakcijsku &amp;naknadu</translation>
+    </message>
+    <message>
+        <source>A&amp;bandon transaction</source>
+        <translation type="unfinished">&amp;Napusti transakciju</translation>
+    </message>
+    <message>
+        <source>&amp;Edit address label</source>
+        <translation type="unfinished">&amp;Izmjeni oznaku adrese</translation>
+    </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Prikazi u %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Izvozite povijest transakcija</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Datoteka podataka odvojenih zarezima (*.csv)</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">Potvrđeno</translation>
@@ -3192,6 +4419,14 @@
 </context>
 <context>
     <name>WalletFrame</name>
+    <message>
+        <source>No wallet has been loaded.
+Go to File &gt; Open Wallet to load a wallet.
+- OR -</source>
+        <translation type="unfinished">Nijedan novčanik nije učitan.
+Idi na Datoteka &gt;  Otvori novčanik za učitanje novčanika.
+- ILI -</translation>
+    </message>
     <message>
         <source>Create a new wallet</source>
         <translation type="unfinished">Stvorite novi novčanik</translation>
@@ -3200,7 +4435,27 @@
         <source>Error</source>
         <translation type="unfinished">Greška</translation>
     </message>
-    </context>
+    <message>
+        <source>Unable to decode PSBT from clipboard (invalid base64)</source>
+        <translation type="unfinished">Nije moguće dekodirati PSBT iz međuspremnika (nevažeći base64)</translation>
+    </message>
+    <message>
+        <source>Load Transaction Data</source>
+        <translation type="unfinished">Učitaj podatke transakcije</translation>
+    </message>
+    <message>
+        <source>Partially Signed Transaction (*.psbt)</source>
+        <translation type="unfinished">Djelomično potpisana transakcija (*.psbt)</translation>
+    </message>
+    <message>
+        <source>PSBT file must be smaller than 100 MiB</source>
+        <translation type="unfinished">PSBT datoteka mora biti manja od 100 MB</translation>
+    </message>
+    <message>
+        <source>Unable to decode PSBT</source>
+        <translation type="unfinished">Nije moguće dekodirati PSBT</translation>
+    </message>
+</context>
 <context>
     <name>WalletModel</name>
     <message>
@@ -3232,6 +4487,10 @@
         <source>New fee:</source>
         <translation type="unfinished">Nova naknada:</translation>
     </message>
+    <message>
+        <source>Warning: This may pay the additional fee by reducing change outputs or adding inputs, when necessary. It may add a new change output if one does not already exist. These changes may potentially leak privacy.</source>
+        <translation type="unfinished">Upozorenje: Ovo može platiti dodatnu naknadu smanjenjem change outputa ili dodavanjem inputa, po potrebi. Može dodati novi change output ako jedan već ne postoji. Ove promjene bi mogle smanjiti privatnost.</translation>
+    </message>
     <message>
         <source>Confirm fee bump</source>
         <translation type="unfinished">Potvrdite povećanje naknade</translation>
@@ -3252,6 +4511,10 @@
         <source>Could not commit transaction</source>
         <translation type="unfinished">Transakcija ne može biti izvršena.</translation>
     </message>
+    <message>
+        <source>Can't display address</source>
+        <translation type="unfinished">Ne mogu prikazati adresu</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">uobičajeni novčanik</translation>
@@ -3271,6 +4534,11 @@
         <source>Backup Wallet</source>
         <translation type="unfinished">Arhiviranje novčanika</translation>
     </message>
+    <message>
+        <source>Wallet Data</source>
+        <extracomment>Name of the wallet data file format.</extracomment>
+        <translation type="unfinished">Podaci novčanika</translation>
+    </message>
     <message>
         <source>Backup Failed</source>
         <translation type="unfinished">Arhiviranje nije uspjelo</translation>
diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts
index 77e86b6e853..5e4efc07bdb 100644
--- a/src/qt/locale/bitcoin_hu.ts
+++ b/src/qt/locale/bitcoin_hu.ts
@@ -2250,7 +2250,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
-        <translation type="unfinished">A Bitcoin-kliens portjának automatikus megnyitása a routeren. Ez csak akkor működik, ha a routered támogatja az UPnP-t és az engedélyezve is van rajta.</translation>
+        <translation type="unfinished">A Bitcoin-kliens portjának automatikus megnyitása a routeren. Ez csak akkor működik, ha a router támogatja az UPnP-t és az engedélyezve is van rajta.</translation>
     </message>
     <message>
         <source>Map port using &amp;UPnP</source>
@@ -3426,7 +3426,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source>
-        <translation type="unfinished">A tartalék díj (failback fee) használata egy órákig, napokig tartó, vagy akár sosem végbemenő tranzakciót eredményezhet. Fontolja meg, hogy Ön adja meg a díjat, vagy várjon amíg a teljes láncot érvényesíti.</translation>
+        <translation type="unfinished">A tartalék díj (fallback fee) használata egy órákig, napokig tartó, vagy akár sosem végbemenő tranzakciót eredményezhet. Fontolja meg, hogy Ön adja meg a díjat, vagy várjon amíg a teljes láncot érvényesíti.</translation>
     </message>
     <message>
         <source>Warning: Fee estimation is currently not possible.</source>
diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts
index ba12f4991d1..79af850ee10 100644
--- a/src/qt/locale/bitcoin_it.ts
+++ b/src/qt/locale/bitcoin_it.ts
@@ -347,36 +347,36 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n secondo</numerusform>
+            <numerusform>%n secondi</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minuto</numerusform>
+            <numerusform>%n minuti</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n ora</numerusform>
+            <numerusform>%n ore</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n giorno</numerusform>
+            <numerusform>%n giorni</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n settimana</numerusform>
+            <numerusform>%n settimane</numerusform>
         </translation>
     </message>
     <message>
@@ -386,8 +386,8 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n anno</numerusform>
+            <numerusform>%n anni</numerusform>
         </translation>
     </message>
     </context>
@@ -601,6 +601,30 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Impossibile scrivere nella directory dei dati ' %s'; controlla le autorizzazioni.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">L'upgrade -txindex avviato su una versione precedente non può essere completato. Riavviare con la versione precedente o eseguire un -reindex completo.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s richiede di ascoltare sulla porta %u.  Questa porta è considerata "cattiva" e quindi è improbabile che qualsiasi peer Bitcoin Core si colleghi ad essa. Guardare doc/p2p-bad-ports.md per i dettagli ed un elenco completo.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Non e' possibile fornire connessioni specifiche e contemporaneamente usare addrman per trovare connessioni uscenti.  </translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Errore caricando %s: il wallet del dispositivo esterno di firma é stato caricato senza che il supporto del dispositivo esterno di firma sia stato compilato.</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Mancata rinominazione del file peers.dat non valido. Per favore spostarlo o eliminarlo e provare di nuovo.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Le connessioni in uscita sono state limitate a Tor (-onlynet=onion) ma il proxy per raggiungere la rete Tor non é stato fornito (ne -proxy= ne -onion= sono stati inseriti) oppure é espressamente vietato (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">La configurazione di %s si applica alla rete %s soltanto nella sezione [%s]</translation>
@@ -945,6 +969,10 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Gli importi di transazione non devono essere negativi</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">La transazione cambia l' indice dell'output fuori dal limite.</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">La transazione ha una sequenza troppo lunga nella mempool</translation>
@@ -1236,8 +1264,8 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Processato %n blocco dello storico delle transazioni.</numerusform>
+            <numerusform>Processati %n blocchi dello storico delle transazioni.</numerusform>
         </translation>
     </message>
     <message>
@@ -1352,12 +1380,16 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
         <source>&amp;Hide</source>
         <translation type="unfinished">&amp;Nascondi</translation>
     </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">S&amp;come</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n connessione(i) attiva alla rete Bitcoin.</numerusform>
+            <numerusform>%n connessione(i) attive alla rete Bitcoin</numerusform>
         </translation>
     </message>
     <message>
@@ -1877,8 +1909,8 @@ E' possibile firmare solo con indirizzi di tipo "legacy".</translation>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(sufficiente per ripristinare i backup di %n giorno fa)</numerusform>
+            <numerusform>(sufficiente per ripristinare i backup di %n giorni fa)</numerusform>
         </translation>
     </message>
     <message>
@@ -3615,8 +3647,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di "
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Inizio della conferma stimato entro %n blocco.</numerusform>
+            <numerusform>Inizio della conferma stimato entro %n blocchi.</numerusform>
         </translation>
     </message>
     <message>
@@ -3953,8 +3985,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di "
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>matura tra %n blocco</numerusform>
+            <numerusform>matura tra %n blocchi</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/bitcoin_ka.ts
index c0820471b91..28b7d19b604 100644
--- a/src/qt/locale/bitcoin_ka.ts
+++ b/src/qt/locale/bitcoin_ka.ts
@@ -3,19 +3,15 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">დააჭირეთ მარჯვენა ღილაკს მისამართის ან იარლიყის ჩასასწორებლად</translation>
+        <translation type="unfinished">დააჭირეთ მარჯვენა ღილაკს მისამართის ან ლეიბლის ჩასასწორებლად</translation>
     </message>
     <message>
         <source>Create a new address</source>
         <translation type="unfinished">ახალი მისამართის შექმნა</translation>
     </message>
-    <message>
-        <source>&amp;New</source>
-        <translation type="unfinished">შექმ&amp;ნა</translation>
-    </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">მონიშნული მისამართის კოპირება სისტემურ კლიპბორდში</translation>
+        <translation type="unfinished">მონიშნული მისამართის კოპირება სისტემის მეხსიერების ბუფერში</translation>
     </message>
     <message>
         <source>&amp;Copy</source>
@@ -31,11 +27,11 @@
     </message>
     <message>
         <source>Enter address or label to search</source>
-        <translation type="unfinished">შეიყვანეთ საძებნი მისამართი ან ნიშნული</translation>
+        <translation type="unfinished"> მოსაძებნად შეიყვანეთ მისამართი ან მოსანიშნი</translation>
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">ამ ბარათიდან მონაცემების ექსპორტი ფაილში</translation>
+        <translation type="unfinished">დანართში არსებული მონაცემების ექსპორტი ფაილში</translation>
     </message>
     <message>
         <source>&amp;Export</source>
@@ -47,11 +43,11 @@
     </message>
     <message>
         <source>Choose the address to send coins to</source>
-        <translation type="unfinished">აირჩიეთ კოინების გამგზავნი მისამართი</translation>
+        <translation type="unfinished">აირჩიეთ მისამართი კოინების გასაგზავნად</translation>
     </message>
     <message>
         <source>Choose the address to receive coins with</source>
-        <translation type="unfinished">აირჩიეთ კოინების მიმღები მისამართი</translation>
+        <translation type="unfinished">აირჩიეთ კოინების მიღების მისამართი</translation>
     </message>
     <message>
         <source>C&amp;hoose</source>
@@ -59,19 +55,25 @@
     </message>
     <message>
         <source>Sending addresses</source>
-        <translation type="unfinished">გამმგზავნი მისამართ</translation>
+        <translation type="unfinished">გასაგზავნი მისამართები</translation>
     </message>
     <message>
         <source>Receiving addresses</source>
-        <translation type="unfinished">მიმღები მისამართი</translation>
+        <translation type="unfinished">მიმღები მისამართები</translation>
     </message>
     <message>
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
-        <translation type="unfinished">ეს არის თქვენი ბიტკოინ-მისამართები, რომელთაგანაც შეგიძლიათ გადახდა. აუცილებლად შეამოწმეთ თანხა და მიმღები მისამართი გაგზავნამდე.</translation>
+        <translation type="unfinished">ეს არის თქვენი ბიტკოინ-მისამართები გადარიცხვებისათვის. აუცილებლად შეამოწმეთ მითითებული თანხა და მიმღები მისამართი კოინების გადარიცხვამდე.</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">ეს თქვენი ბიტკოინის მიმღები მიმსამართებია. ისარგებლეთ ღილაკით "შექმენით ახალი მიმღები მისამართები", როემლიც მოცემულია მიმღების ჩანართში ახალი მისამართების შესაქმნელად.
+ხელმოწერა მხოლოდ "მემკვიდრეობის" ტიპის მისამართებთანაა შესაძლებელი.</translation>
     </message>
     <message>
         <source>&amp;Copy Address</source>
-        <translation type="unfinished">მისამართის კოპირება</translation>
+        <translation type="unfinished">&amp;მისამართის კოპირება</translation>
     </message>
     <message>
         <source>Copy &amp;Label</source>
@@ -85,10 +87,15 @@
         <source>Export Address List</source>
         <translation type="unfinished">მისამართების სიის ექსპორტი</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">CSV (სპეციალური ტექსტური ფაილი)</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
-        <translation type="unfinished">მისამართების სიის %1 შენახვა ვერ მოხერხდა. გაიმეორეთ მცდელობა.</translation>
+        <translation type="unfinished">მისამართების სიის %1 შენახვა ვერ მოხერხდა. თავიდან სცადეთ.</translation>
     </message>
     <message>
         <source>Exporting Failed</source>
@@ -114,19 +121,19 @@
     <name>AskPassphraseDialog</name>
     <message>
         <source>Passphrase Dialog</source>
-        <translation type="unfinished">ფრაზა-პაროლის დიალოგი</translation>
+        <translation type="unfinished">საიდუმლო ფრაზის მიმოცვლა</translation>
     </message>
     <message>
         <source>Enter passphrase</source>
-        <translation type="unfinished">შეიყვანეთ ფრაზა-პაროლი</translation>
+        <translation type="unfinished">შეიყვანეთ საიდუმლო ფრაზა</translation>
     </message>
     <message>
         <source>New passphrase</source>
-        <translation type="unfinished">ახალი ფრაზა-პაროლი</translation>
+        <translation type="unfinished">ახალი საიდუმლო ფრაზა</translation>
     </message>
     <message>
         <source>Repeat new passphrase</source>
-        <translation type="unfinished">გაიმეორეთ ახალი ფრაზა-პაროლი</translation>
+        <translation type="unfinished">გაიმეორეთ ახალი საიდუმლო ფრაზა</translation>
     </message>
     <message>
         <source>Show passphrase</source>
@@ -1962,6 +1969,11 @@
         <source>Export Transaction History</source>
         <translation type="unfinished">ტრანსაქციების ისტორიის ექსპორტი</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">CSV (სპეციალური ტექსტური ფაილი)</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">დადასტურებულია</translation>
diff --git a/src/qt/locale/bitcoin_kk.ts b/src/qt/locale/bitcoin_kk.ts
index 5461e6dbab3..907eb7c6b97 100644
--- a/src/qt/locale/bitcoin_kk.ts
+++ b/src/qt/locale/bitcoin_kk.ts
@@ -605,6 +605,10 @@
         <source>Confirmed</source>
         <translation type="unfinished">Растық</translation>
     </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">Иа</translation>
+    </message>
     <message>
         <source>(no label)</source>
         <translation type="unfinished">(белгі жоқ)</translation>
diff --git a/src/qt/locale/bitcoin_ko.ts b/src/qt/locale/bitcoin_ko.ts
index f335deb0092..c1bb3da0382 100644
--- a/src/qt/locale/bitcoin_ko.ts
+++ b/src/qt/locale/bitcoin_ko.ts
@@ -153,7 +153,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Unlock wallet</source>
-        <translation type="unfinished">지갑 잠금을 해제</translation>
+        <translation type="unfinished">지갑 잠금 해제</translation>
     </message>
     <message>
         <source>Change passphrase</source>
@@ -169,7 +169,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Are you sure you wish to encrypt your wallet?</source>
-        <translation type="unfinished">지갑 암호화를 허용하시겠습니까?</translation>
+        <translation type="unfinished">정말로 지갑을 암호화하시겠습니까?</translation>
     </message>
     <message>
         <source>Wallet encrypted</source>
@@ -264,6 +264,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">초기값으로 리셋하거나 변동사항없이 진행하시겠습니까?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">심각한 문제가 발생하였습니다. 세팅 파일이 작성가능한지 확인하거나 세팅없이 실행을 시도해보세요.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">오류: 지정한 데이터 폴더 "%1"은 존재하지 않습니다.</translation>
@@ -358,31 +368,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n초</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n분</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n시간</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n일</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n주</numerusform>
         </translation>
     </message>
     <message>
@@ -392,7 +402,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n년</numerusform>
         </translation>
     </message>
     <message>
@@ -430,10 +440,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
         <translation type="unfinished">-maxtxfee 값이 너무 큽니다!  하나의 거래에 너무 큰 수수료가 지불 됩니다.</translation>
     </message>
+    <message>
+        <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
+        <translation type="unfinished">%i버젼에서 %i버젼으로 다운그레이드 할 수 없습니다. 월렛 버젼은 변경되지 않았습니다.</translation>
+    </message>
     <message>
         <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
         <translation type="unfinished">데이터 디렉토리 %s 에 락을 걸 수 없었습니다. %s가 이미 실행 중인 것으로 보입니다.</translation>
     </message>
+    <message>
+        <source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
+        <translation type="unfinished">사전분리 키풀를 지원하기 위해서 업그레이드 하지 않고는 Non HD split 지갑의 %i버젼을 %i버젼으로 업그레이드 할 수 없습니다. %i버젼을 활용하거나 구체화되지 않은 버젼을 활용하세요.</translation>
+    </message>
     <message>
         <source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
         <translation type="unfinished">MIT 소프트웨어 라이센스에 따라 배포되었습니다. 첨부 파일 %s 또는 %s을 참조하십시오.</translation>
@@ -442,6 +460,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">%s 불러오기 오류! 주소 키는 모두 정확하게 로드되었으나 거래 데이터와 주소록 필드에서 누락이나 오류가 존재할 수 있습니다.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">%s를 읽는데 에러가 생겼습니다. 트랜잭션 데이터가 잘못되었거나 누락되었습니다. 지갑을 다시 스캐닝합니다.</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
+        <translation type="unfinished">오류 : 덤프파일 포맷 기록이 잘못되었습니다. "포맷"이 아니라 "%s"를 얻었습니다.</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s".</source>
+        <translation type="unfinished">오류 : 덤프파일 식별자 기록이 잘못되었습니다. "%s"이 아닌 "%s"를 얻었습니다.</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
+        <translation type="unfinished">오류 : 덤프파일 버젼이 지원되지 않습니다. 이 비트코인 지갑 버젼은 오직 버젼1의 덤프파일을 지원합니다. %s버젼의 덤프파일을 얻었습니다.</translation>
+    </message>
+    <message>
+        <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
+        <translation type="unfinished">오류 : 레거시 지갑주소는 "레거시", "p2sh-segwit", "bech32" 지갑 주소의 타입만 지원합니다.</translation>
+    </message>
     <message>
         <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
         <translation type="unfinished">오류: 들어오는 연결을 허용하는데 실패했습니다 (리슨 오류: %s)</translation>
@@ -450,14 +488,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
         <translation type="unfinished">수수료 추정이 실패했습니다. 고장 대체 수수료가 비활성화 상태입니다. 몇 블록을 기다리거나 -fallbackfee를 활성화 하십시오.</translation>
     </message>
+    <message>
+        <source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
+        <translation type="unfinished">%s 파일이 이미 존재합니다. 무엇을 하고자 하는지 확실하시다면, 파일을 먼저 다른 곳으로 옮기십시오.</translation>
+    </message>
     <message>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">유효하지 않은 금액 -maxtxfee=&lt;amount&gt;: '%s' (거래가 막히는 상황을 방지하게 위해 적어도 %s 의 중계 수수료를 지정해야 합니다)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">유효하지 않거나 손상된 peers.dat(%s). 만약 이게 버그인 경우에, %s이쪽으로 리포트해주세요.  새로 만들어서 시작하기 위한 해결방법으로 %s파일을 옮길 수 있습니다. (이름 재설정, 파일 옮기기 혹은 삭제).</translation>
+    </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
         <translation type="unfinished">하나 이상의 양파 바인딩 주소가 제공됩니다. 자동으로 생성 된 Tor onion 서비스에 %s 사용.</translation>
     </message>
+    <message>
+        <source>No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">덤프파일이 입력되지 않았습니다. 덤프파일을 사용하기 위해서는 -dumpfile=&lt;filename&gt;이 반드시 입력되어야 합니다. </translation>
+    </message>
+    <message>
+        <source>No dump file provided. To use dump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">덤프파일이 입력되지 않았습니다. 덤프를 사용하기 위해서는 -dumpfile=&lt;filename&gt;이 반드시 입력되어야 합니다.</translation>
+    </message>
     <message>
         <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
         <translation type="unfinished">컴퓨터의 날짜와 시간이 올바른지 확인하십시오! 시간이 잘못되면 %s은 제대로 동작하지 않습니다.</translation>
@@ -576,7 +630,17 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Done loading</source>
-        <translation type="unfinished">로딩 완료</translation>
+        <translation type="unfinished">불러오기 완료</translation>
+    </message>
+    <message>
+        <source>Dump file %s does not exist.</source>
+        <translation type="unfinished">파일 버리기 1%s 존재 안함
+</translation>
+    </message>
+    <message>
+        <source>Error creating %s</source>
+        <translation type="unfinished">만들기 오류 1%s
+</translation>
     </message>
     <message>
         <source>Error initializing block database</source>
@@ -592,7 +656,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Error loading %s: Private keys can only be disabled during creation</source>
-        <translation type="unfinished">%s 로딩 실패: 개인키는 생성할때만 비활성화 할 수 있습니다</translation>
+        <translation type="unfinished">%s 불러오기 오류: 개인키는 생성할때만 비활성화 할 수 있습니다</translation>
     </message>
     <message>
         <source>Error loading %s: Wallet corrupted</source>
@@ -612,7 +676,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Error reading from database, shutting down.</source>
-        <translation type="unfinished">블록 데이터베이스를 불러오는데 오류가 발생하였습니다, 곧 종료됩니다.</translation>
+        <translation type="unfinished">데이터베이스를 불러오는데 오류가 발생하였습니다, 곧 종료됩니다.</translation>
+    </message>
+    <message>
+        <source>Error reading next record from wallet database</source>
+        <translation type="unfinished">지갑 데이터베이스에서 다음 기록을 불러오는데 오류가 발생하였습니다.</translation>
     </message>
     <message>
         <source>Error upgrading chainstate database</source>
@@ -626,6 +694,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: Keypool ran out, please call keypoolrefill first</source>
         <translation type="unfinished">오류: 키풀이 바닥남, 키풀 리필을 먼저 호출할 하십시오</translation>
     </message>
+    <message>
+        <source>Error: Missing checksum</source>
+        <translation type="unfinished">오류: 체크섬 누락</translation>
+    </message>
+    <message>
+        <source>Error: Unable to write record to new wallet</source>
+        <translation type="unfinished">오류: 새로운 지갑에 기록하지 못했습니다.</translation>
+    </message>
     <message>
         <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
         <translation type="unfinished">포트 연결에 실패하였습니다. 필요하다면 -리슨=0 옵션을 사용하십시오.</translation>
@@ -850,6 +926,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to generate keys</source>
         <translation type="unfinished">키 생성 불가</translation>
     </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">%s을 쓰기 위하여 열 수 없습니다.</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">HTTP 서버를 시작할 수 없습니다. 자세한 사항은 디버그 로그를 확인 하세요.</translation>
@@ -866,6 +946,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unknown network specified in -onlynet: '%s'</source>
         <translation type="unfinished">-onlynet: '%s' 에 알수없는 네트워크가 지정되었습니다</translation>
     </message>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished">알 수 없는 새로운 규칙이 활성화 되었스 (versionbit %i)</translation>
+    </message>
     <message>
         <source>Unsupported logging category %s=%s.</source>
         <translation type="unfinished">지원되지 않는 로깅 카테고리 %s = %s.</translation>
@@ -1093,7 +1177,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>처리된 %n블록의 거래 내역</numerusform>
         </translation>
     </message>
     <message>
@@ -1132,6 +1216,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">부분적으로 서명된 비트코인 트랜잭션 불러오기</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">PSBT 혹은 클립보드에서 불러오기</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">클립보드로부터 부분적으로 서명된 비트코인 트랜잭션 불러오기</translation>
@@ -1212,11 +1300,15 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Hide</source>
         <translation type="unfinished">&amp;숨기기</translation>
     </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">보여주기</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>비트코인 네트워크에 활성화된 %n연결</numerusform>
         </translation>
     </message>
     <message>
@@ -1409,6 +1501,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">복사 &amp; 금액</translation>
     </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">거래 &amp; 결과 인덱스값 혹은 ID 복사</translation>
+    </message>
     <message>
         <source>L&amp;ock unspent</source>
         <translation type="unfinished">L&amp;ock 미사용</translation>
@@ -1499,6 +1595,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">서명자를 나열할 수 없습니다.</translation>
     </message>
 </context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">지갑 불러오기</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">지갑 불러오는 중...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1703,6 +1812,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Bitcoin</source>
         <translation type="unfinished">비트코인</translation>
     </message>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB 사용 가능한 공간</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(필요한 %1GB 중)</translation>
@@ -1723,7 +1836,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n일차 백업을 복구하기에 충분합니다.</numerusform>
         </translation>
     </message>
     <message>
@@ -1950,14 +2063,44 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">이 설정을 되돌리려면 처음부터 블록체인을 다시 다운로드 받아야 합니다.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">최대 데이터베이스 캐시 사이즈에 도달했습니다. 더 큰 용량의 캐시는 더 빠르게 싱크를 맞출 수 있으며 대부분의 유저 경우에 유리합니다. 캐시 사이즈를 작게 만드는 것은 메모리 사용을 줄입니다. 미사용 멤풀의 메모리는 이 캐시를 위해 공유됩니다.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">스크립트 검증 수명의 숫자를 설정하세요. 음수는 시스템에 묶이지 않는 자유로운 코어의 수를 뜻합니다.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = 자동, &lt;0 = 지정된 코어 개수만큼 사용 안함)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">당신 혹은 3자의 개발툴이 JSON-RPC 명령과 커맨드라인을 통해 노드와 소통하는 것을 허락합니다.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">R&amp;PC 서버를 가능하게 합니다.</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">지갑(&amp;A)</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">수수료 감면을 초기값으로 할지 혹은 설정하지 않을지를 결정합니다.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">초기 설정값으로 수수료를 뺍니다.</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">전문가</translation>
@@ -1974,10 +2117,25 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">검증되지 않은 잔돈 쓰기 (&amp;S)</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">PSBT 컨트롤을 가능하게 합니다.</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">PSBT 컨트롤을 보여줄지를 결정합니다.</translation>
+    </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
         <translation type="unfinished">외부 서명자 (예: 하드웨어 지갑)</translation>
     </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">외부 서명자 스크립트 경로
+ </translation>
+    </message>
     <message>
         <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
         <translation type="unfinished">비트코인 코어 호환 스크립트의 전체 경로 (예: C:\Downloads\whi.exe 또는 /Users/you/Downloads/hwi.py). 주의: 악성 프로그램이 코인을 훔칠 수 있습니다!</translation>
@@ -2074,6 +2232,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">인터페이스에 표시하고 코인을 보낼때 사용할 기본 최소화 단위를 선택하십시오.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">내용 메뉴 아이템으로 거래내역 탭이 보이는 제3자 URL (블록익스프로러). URL에 %s는 트랜잭션 해시값으로 대체됩니다. 복수의 URL은 수직항목으로부터 분리됩니다. </translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">제3자 트랜잭션 URL</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">코인 상세 제어기능에 대한 표시 여부를 선택할 수 있습니다.</translation>
@@ -2279,9 +2445,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">거래 서명 실패: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">지갑이 잠겨있는 동안 입력을 서명할 수 없습니다.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
-        <translation type="unfinished">더 이상 추가적인 인풋에 대해 서명할 수 없음</translation>
+        <translation type="unfinished">더 이상 추가적인 입력에 대해 서명할 수 없습니다.</translation>
     </message>
     <message>
         <source>Signed transaction successfully. Transaction is ready to broadcast.</source>
@@ -2348,6 +2518,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">거래가 아직 서명(들)을 필요로 합니다.</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">하지만 지갑 로딩이 되지 않았습니다.</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(그러나 이 지갑은 거래에 서명이 불가능합니다.)</translation>
@@ -2608,6 +2782,33 @@ BIP70의 광범위한 보안 결함으로 인해 모든 가맹점에서는 지
         <source>Mapped AS</source>
         <translation type="unfinished">매핑된 AS</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">이 피어에게 지갑주소를 릴레이할지를 결정합니다.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">지갑주소를 릴레이합니다.</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Rate한계치 때문에 제외된 것들을 미포함하여 처리된 총 지갑 개수</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">처리된 지갑</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Rate제한으로 누락된 지갑의 총 개수</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">지갑의 Rate제한</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">유저 에이전트</translation>
@@ -2745,6 +2946,37 @@ BIP70의 광범위한 보안 결함으로 인해 모든 가맹점에서는 지
         <source>Out:</source>
         <translation type="unfinished">출력:</translation>
     </message>
+    <message>
+        <source>Inbound: initiated by peer</source>
+        <extracomment>Explanatory text for an inbound peer connection.</extracomment>
+        <translation type="unfinished">시작점 : 동기에 의해 시작됨</translation>
+    </message>
+    <message>
+        <source>Outbound Full Relay: default</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
+        <translation type="unfinished">아웃바운드 전체 릴레이: 기본값</translation>
+    </message>
+    <message>
+        <source>Outbound Block Relay: does not relay transactions or addresses</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">아웃바운드 블록 릴레이: 트랜잭션 또는 주소를 릴레이하지 않음</translation>
+    </message>
+    <message>
+        <source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
+        <extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
+        <translation type="unfinished">아웃바운드 매뉴얼 : RPC 1%1 이나 2%2/3%3 을 사용해서 환경설정 옵션을 추가</translation>
+    </message>
+    <message>
+        <source>Outbound Feeler: short-lived, for testing addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Outbound Feeler: 짧은 용도, 주소 테스트용</translation>
+    </message>
+    <message>
+        <source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
+        <translation type="unfinished">아웃바운드 주소 가져오기: 단기, 주소 요청용
+ </translation>
+    </message>
     <message>
         <source>we selected the peer for high bandwidth relay</source>
         <translation type="unfinished">저희는 가장 빠른 대역폭을 가지고 있는 피어를 선택합니다.</translation>
@@ -2753,6 +2985,10 @@ BIP70의 광범위한 보안 결함으로 인해 모든 가맹점에서는 지
         <source>the peer selected us for high bandwidth relay</source>
         <translation type="unfinished">피어는 높은 대역폭을 위해 우리를 선택합니다</translation>
     </message>
+    <message>
+        <source>no high bandwidth relay selected</source>
+        <translation type="unfinished">고대역폭 릴레이가 선택되지 않음</translation>
+    </message>
     <message>
         <source>&amp;Copy address</source>
         <extracomment>Context menu action to copy the address of a peer.</extracomment>
@@ -2778,6 +3014,11 @@ BIP70의 광범위한 보안 결함으로 인해 모든 가맹점에서는 지
         <source>1 &amp;year</source>
         <translation type="unfinished">1년(&amp;Y)</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">IP/Netmask 복사하기</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">노드 차단 취소(&amp;U)</translation>
@@ -2794,6 +3035,23 @@ BIP70의 광범위한 보안 결함으로 인해 모든 가맹점에서는 지
         <source>Executing command using "%1" wallet</source>
         <translation type="unfinished">"%1" 지갑을 사용하여 명령 실행</translation>
     </message>
+    <message>
+        <source>Welcome to the %1 RPC console.
+Use up and down arrows to navigate history, and %2 to clear screen.
+Use %3 and %4 to increase or decrease the font size.
+Type %5 for an overview of available commands.
+For more information on using this console, type %6.
+
+%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8</source>
+        <extracomment>RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally.</extracomment>
+        <translation type="unfinished">1%1 RPC 콘솔에 오신 것을 환영합니다.
+위쪽 및 아래쪽 화살표를 사용하여 기록 탐색을하고 2%2를 사용하여 화면을 지우세요. 
+3%3과 4%4을 사용하여 글꼴 크기 증가 또는 감소하세요
+사용 가능한 명령의 개요를 보려면 5%5를 입력하십시오.
+이 콘솔 사용에 대한 자세한 내용을 보려면 6%6을 입력하십시오.
+7%7 경고: 사기꾼들은 사용자들에게 여기에 명령을 입력하라고 말하고 활발히 금품을 훔칩니다. 완전히 이해하지 않고 이 콘솔을 사용하지 마십시오. 8%8
+</translation>
+    </message>
     <message>
         <source>Executing…</source>
         <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
@@ -3241,6 +3499,14 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>%1 to %2</source>
         <translation type="unfinished">%1을 %2로</translation>
     </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">수신자 목록을 검토하기 위해 "자세히 보기"를 클릭하세요</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">서명 실패</translation>
+    </message>
     <message>
         <source>External signer not found</source>
         <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
@@ -3264,6 +3530,10 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>PSBT saved</source>
         <translation type="unfinished">PSBT 저장됨</translation>
     </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">외부의 잔고</translation>
+    </message>
     <message>
         <source>or</source>
         <translation type="unfinished">또는</translation>
@@ -3277,6 +3547,16 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">거래 제안을 검토해 주십시오. 이것은 당신이 저장하거나 복사한 뒤 e.g. 오프라인 %1 지갑 또는 PSBT 호환 하드웨어 지갑으로 서명할 수 있는 PSBT (부분적으로 서명된 비트코인 트랜잭션)를 생성할 것입니다.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">이 트랜잭션을 생성하겠습니까?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">당신의 트랜잭션을 검토하세요. 당신은 트랜잭션을 생성하고 보낼 수 있습니다. 혹은 부분적으로 서명된 비트코인 트랜잭션 (PSBT, Partially Signed Bitcoin Transaction)을 생성하고, 저장하거나 복사하여 오프라인 %1지갑으로 서명할수도 있습니다. PSBT가 적용되는 하드월렛으로 서명할 수도 있습니다. </translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3337,7 +3617,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n블록내로 컨펌이 시작될 것으로 예상됩니다.</numerusform>
         </translation>
     </message>
     <message>
@@ -3590,6 +3870,17 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <translation type="unfinished">메시지가 검증되었습니다.</translation>
     </message>
 </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>(press q to shutdown and continue later)</source>
+        <translation type="unfinished">q 를 눌러 종료하거나 나중에 계속하세요.</translation>
+    </message>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">q를 눌러 종료하세요</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -3667,7 +3958,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n개 이상 블록 이내에 완료됩니다.</numerusform>
         </translation>
     </message>
     <message>
@@ -3939,10 +4230,35 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>Copy transaction &amp;ID</source>
         <translation type="unfinished">복사 트랜잭션 &amp; 아이디</translation>
     </message>
+    <message>
+        <source>Copy &amp;raw transaction</source>
+        <translation type="unfinished">처리되지 않은 트랜잭션 복사</translation>
+    </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">트랜잭션 전체와 상세내역 복사</translation>
+    </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">트랜잭션 상세내역 보여주기</translation>
+    </message>
+    <message>
+        <source>Increase transaction &amp;fee</source>
+        <translation type="unfinished">트랜잭션 수수료 올리기</translation>
+    </message>
+    <message>
+        <source>A&amp;bandon transaction</source>
+        <translation type="unfinished">트랜잭션 폐기하기</translation>
+    </message>
     <message>
         <source>&amp;Edit address label</source>
         <translation type="unfinished">&amp;주소 라벨 수정하기</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">%1내로 보여주기</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">거래 기록 내보내기</translation>
diff --git a/src/qt/locale/bitcoin_ku.ts b/src/qt/locale/bitcoin_ku.ts
new file mode 100644
index 00000000000..ae39a6dfd33
--- /dev/null
+++ b/src/qt/locale/bitcoin_ku.ts
@@ -0,0 +1,336 @@
+<TS version="2.1" language="ku">
+<context>
+    <name>AddressBookPage</name>
+    <message>
+        <source>&amp;New</source>
+        <translation type="unfinished">&amp;Nû</translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">&amp;Kopi bike</translation>
+    </message>
+    <message>
+        <source>C&amp;lose</source>
+        <translation type="unfinished">Bigire</translation>
+    </message>
+    <message>
+        <source>Delete the currently selected address from the list</source>
+        <translation type="unfinished">Navnîşana hilbijartî ji lîsteyê jê bibe</translation>
+    </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">Ji bo lêgerînê navnîşan an jî etîketê têkeve</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Daneya di hilpekîna niha de bi rêya dosyayekê derxîne</translation>
+    </message>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;Derxîne</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation type="unfinished">&amp;Jê bibe</translation>
+    </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">Navnîşana ku ew ê koîn werin şandin, hilbijêre</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">Navnîşana ku ew ê koînan bistîne, hilbijêre</translation>
+    </message>
+    <message>
+        <source>C&amp;hoose</source>
+        <translation type="unfinished">H&amp;ilbijêre</translation>
+    </message>
+    <message>
+        <source>Sending addresses</source>
+        <translation type="unfinished">Navnîşanên şandinê</translation>
+    </message>
+    <message>
+        <source>Receiving addresses</source>
+        <translation type="unfinished">Navnîşanên stendinê</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Address</source>
+        <translation type="unfinished">&amp;Navnîşanê kopî bike</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Label</source>
+        <translation type="unfinished">Etîketê &amp;kopî bike</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation type="unfinished">&amp;Serrast bike</translation>
+    </message>
+    <message>
+        <source>Export Address List</source>
+        <translation type="unfinished">Lîsteya navnîşanan derxîne</translation>
+    </message>
+    </context>
+<context>
+    <name>AddressTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Etîket</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">Navnîşan</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(etîket tune)</translation>
+    </message>
+</context>
+<context>
+    <name>AskPassphraseDialog</name>
+    <message>
+        <source>Enter passphrase</source>
+        <translation type="unfinished">Pêborîna xwe têkevê</translation>
+    </message>
+    <message>
+        <source>New passphrase</source>
+        <translation type="unfinished">Pêborîna nû</translation>
+    </message>
+    <message>
+        <source>Repeat new passphrase</source>
+        <translation type="unfinished">Pêborîna xwe ya nû dubare bike</translation>
+    </message>
+    <message>
+        <source>Show passphrase</source>
+        <translation type="unfinished">Pêborînê nîşan bide</translation>
+    </message>
+    <message>
+        <source>Encrypt wallet</source>
+        <translation type="unfinished">Şîfrekirina cizdên</translation>
+    </message>
+    <message>
+        <source>Unlock wallet</source>
+        <translation type="unfinished">Kilîda cizdên veke</translation>
+    </message>
+    <message>
+        <source>Change passphrase</source>
+        <translation type="unfinished">Pêborînê biguherîne</translation>
+    </message>
+    <message>
+        <source>Confirm wallet encryption</source>
+        <translation type="unfinished">Şîfrekirina cizdên bipejirîne</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to encrypt your wallet?</source>
+        <translation type="unfinished">Tu bi rastî jî dixwazî cizdanê xwe şîfre bikî?</translation>
+    </message>
+    <message>
+        <source>Wallet encrypted</source>
+        <translation type="unfinished">Cizdan hate şîfrekirin</translation>
+    </message>
+    </context>
+<context>
+    <name>QObject</name>
+    <message numerus="yes">
+        <source>%n second(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n minute(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n hour(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n day(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n week(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n year(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>BitcoinGUI</name>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">Cizdan:</translation>
+    </message>
+    <message numerus="yes">
+        <source>Processed %n block(s) of transaction history.</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Information</source>
+        <translation type="unfinished">Agahî</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>CoinControlDialog</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Tarîx</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(etîket tune)</translation>
+    </message>
+    </context>
+<context>
+    <name>Intro</name>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>PeerTableModel</name>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">Navnîşan</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <extracomment>Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists.</extracomment>
+        <translation type="unfinished">Cure</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">Cizdan:</translation>
+    </message>
+    </context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Tarîx</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Etîket</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(etîket tune)</translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(etîket tune)</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDesc</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Tarîx</translation>
+    </message>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Tarîx</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">Cure</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Etîket</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(etîket tune)</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Tarîx</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">Cure</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">Etîket</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">Navnîşan</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletView</name>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">Derxîne</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Daneya di hilpekîna niha de bi rêya dosyayekê derxîne</translation>
+    </message>
+    </context>
+</TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_ku_IQ.ts b/src/qt/locale/bitcoin_ku_IQ.ts
index f78a465fbe2..b435f4c5bfa 100644
--- a/src/qt/locale/bitcoin_ku_IQ.ts
+++ b/src/qt/locale/bitcoin_ku_IQ.ts
@@ -21,10 +21,6 @@
         <source>&amp;Copy</source>
         <translation type="unfinished">&amp;ڕوونووس</translation>
     </message>
-    <message>
-        <source>C&amp;lose</source>
-        <translation type="unfinished">C&amp;داخستن</translation>
-    </message>
     <message>
         <source>Delete the currently selected address from the list</source>
         <translation type="unfinished">سڕینەوەی ناونیشانی هەڵبژێردراوی ئێستا لە لیستەکە</translation>
@@ -113,9 +109,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>(no label)</source>
-        <translation type="unfinished">(بێ ناونیشان)
-
-</translation>
+        <translation type="unfinished">(ناونیشان نییە)</translation>
     </message>
 </context>
 <context>
@@ -136,9 +130,25 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Repeat new passphrase</source>
         <translation type="unfinished">دووبارەکردنەوەی دەستەواژەی تێپەڕی نوێ</translation>
     </message>
+    <message>
+        <source>Show passphrase</source>
+        <translation type="unfinished">نیشان دانا ناوه چونه</translation>
+    </message>
+    <message>
+        <source>Encrypt wallet</source>
+        <translation type="unfinished">کیف خو یه پاره رمزه دانینه بر</translation>
+    </message>
+    <message>
+        <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+        <translation type="unfinished">او شوله بو ور کرنا کیف پاره گرکه رمزا کیفه وؤ یه پاره بزانی</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to encrypt your wallet?</source>
+        <translation type="unfinished">به راستی اون هشیارن کا دخازن بو کیف خو یه پاره رمزه دانین</translation>
+    </message>
     <message>
         <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
-        <translation type="unfinished">دەستەواژەی تێپەڕەوی نوێ تێبنووسە بۆ جزدان.1 تکایە دەستەواژەی تێپەڕێک بەکاربێنە لە 2ten یان زیاتر لە هێما هەڕەمەکیەکان2، یان 38 یان زیاتر ووشەکان3.</translation>
+        <translation type="unfinished">دەستەواژەی تێپەڕەوی نوێ بنووسە بۆ جزدان. &lt;br/&gt;تکایە دەستەواژەی تێپەڕێک بەکاربێنە لە &lt;b&gt;دە یان زیاتر لە هێما هەڕەمەکییەکان&lt;/b&gt;یان &lt;b&gt;هەشت یان وشەی زیاتر&lt;/b&gt;.</translation>
     </message>
     <message>
         <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
@@ -239,17 +249,21 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </context>
 <context>
     <name>BitcoinGUI</name>
+    <message>
+        <source>&amp;About %1</source>
+        <translation type="unfinished">&amp;دەربارەی %1</translation>
+    </message>
     <message>
         <source>&amp;Send</source>
         <translation type="unfinished">&amp;ناردن</translation>
     </message>
     <message>
         <source>&amp;File</source>
-        <translation type="unfinished">&amp;پەرگە</translation>
+        <translation type="unfinished">&amp;فایل</translation>
     </message>
     <message>
         <source>&amp;Settings</source>
-        <translation type="unfinished">&amp;سازکارییەکان</translation>
+        <translation type="unfinished">&amp;ڕێکخستنەکان</translation>
     </message>
     <message>
         <source>&amp;Help</source>
@@ -287,7 +301,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <name>UnitDisplayStatusBarControl</name>
     <message>
         <source>Unit to show amounts in. Click to select another unit.</source>
-        <translation type="unfinished">یەکە بۆ نیشاندانی بڕی کرتە بکە بۆ دیاریکردنی یەکەیەکی تر.</translation>
+        <translation type="unfinished">یەکە بۆ نیشاندانی بڕی لەناو. کرتە بکە بۆ دیاریکردنی یەکەیەکی تر.</translation>
     </message>
 </context>
 <context>
diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts
index 6d1d346a383..d7489b59190 100644
--- a/src/qt/locale/bitcoin_lt.ts
+++ b/src/qt/locale/bitcoin_lt.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Spustelėkite dešinįjį klavišą norint keisti adresą arba etiketę</translation>
+        <translation type="unfinished">Spustelėkite dešinįjį pelės klavišą norint keisti adresą arba etiketę </translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -69,6 +69,12 @@
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
         <translation type="unfinished">Tai yra jūsų Bitcoin adresai išeinantiems mokėjimams. Visada pasitikrinkite sumą ir gavėjo adresą prieš siunčiant lėšas.</translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Tai jūsų Bitcoin mokėjimų gavimo adresai. Naudokite 'Sukurti naują gavimo adresą' mygtuką gavimų skirtuke kad sukurtumėte naujus adresus.
+Pasirašymas galimas tik su 'legacy' tipo adresais.</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">&amp;Kopijuoti adresą</translation>
@@ -85,6 +91,11 @@
         <source>Export Address List</source>
         <translation type="unfinished">Eksportuoti adresų sąrašą</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Kableliais atskirtas failas</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -190,7 +201,7 @@
     </message>
     <message>
         <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
-        <translation type="unfinished">Dėl vidinės klaidos nepavyko užšifruoti piniginę.Piniginė neužšifruota.</translation>
+        <translation type="unfinished">Dėl vidinės klaidos nepavyko užšifruoti piniginę. Piniginė neužšifruota.</translation>
     </message>
     <message>
         <source>The supplied passphrases do not match.</source>
@@ -245,6 +256,10 @@
         <source>Error: %1</source>
         <translation type="unfinished">Klaida: %1</translation>
     </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 dar saugiai neužbaigė darbo...</translation>
+    </message>
     <message>
         <source>unknown</source>
         <translation type="unfinished">nežinomas</translation>
@@ -339,6 +354,14 @@
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Nustatymų failas negalėjo būti perskaitytas</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Nustatymų failas negalėjo būti parašytas</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">%s kūrėjai</translation>
@@ -538,6 +561,10 @@
         <source>Create a new wallet</source>
         <translation type="unfinished">Sukurti naują piniginę</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Sumažinti</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Piniginė</translation>
@@ -571,6 +598,10 @@
         <source>&amp;Receive</source>
         <translation type="unfinished">&amp;Gauti</translation>
     </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;Nustatymai</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">Užšifruoti privačius raktus, kurie priklauso jūsų piniginei</translation>
@@ -2882,6 +2913,11 @@
         <source>Export Transaction History</source>
         <translation type="unfinished">Eksportuoti sandorių istoriją</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Kableliais atskirtas failas</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">Patvirtinta</translation>
diff --git a/src/qt/locale/bitcoin_lv.ts b/src/qt/locale/bitcoin_lv.ts
index 972fa659f87..52e27a325d5 100644
--- a/src/qt/locale/bitcoin_lv.ts
+++ b/src/qt/locale/bitcoin_lv.ts
@@ -184,11 +184,19 @@
         <source>Wallet encryption failed</source>
         <translation type="unfinished">Maciņa šifrēšana neizdevās</translation>
     </message>
+    <message>
+        <source>The supplied passphrases do not match.</source>
+        <translation type="unfinished">Ievadītās paroles nav vienādas.</translation>
+    </message>
     <message>
         <source>Wallet unlock failed</source>
         <translation type="unfinished">Maciņa atslēgšana neizdevās</translation>
     </message>
-    </context>
+    <message>
+        <source>Warning: The Caps Lock key is on!</source>
+        <translation type="unfinished">Uzmanību! Caps Lock uz klavietūras ir ieslēgts!</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
     <message>
@@ -325,6 +333,10 @@
         <source>Show information about Qt</source>
         <translation type="unfinished">Parādīt informāciju par Qt</translation>
     </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Izveidot jaunu maciņu</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Maciņš:</translation>
@@ -349,6 +361,10 @@
         <source>&amp;Receive</source>
         <translation type="unfinished">&amp;Saņemt</translation>
     </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;Opcijas...</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">Šifrēt privātās atslēgas kuras pieder tavam maciņam</translation>
@@ -377,6 +393,10 @@
         <source>Tabs toolbar</source>
         <translation type="unfinished">Ciļņu rīkjosla</translation>
     </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">Sinhronizē ar tīklu</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">Pieprasīt maksājumus (izveido QR kodu un bitcoin: URIs)</translation>
@@ -742,6 +762,11 @@
         <source>Confirm options reset</source>
         <translation type="unfinished">Apstiprināt iestatījumu atiestatīšanu</translation>
     </message>
+    <message>
+        <source>Configuration options</source>
+        <extracomment>Window title text of pop-up box that allows opening up of configuration file.</extracomment>
+        <translation type="unfinished">Konfigurāciju Opcijas</translation>
+    </message>
     <message>
         <source>Error</source>
         <translation type="unfinished">Kļūda</translation>
@@ -789,6 +814,33 @@
         <source>Your current total balance</source>
         <translation type="unfinished">Jūsu kopējā tekošā bilance</translation>
     </message>
+    <message>
+        <source>Spendable:</source>
+        <translation type="unfinished">Iztērējams:</translation>
+    </message>
+    <message>
+        <source>Recent transactions</source>
+        <translation type="unfinished">Nesenās transakcijas</translation>
+    </message>
+    </context>
+<context>
+    <name>PSBTOperationsDialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation type="unfinished">Dialogs</translation>
+    </message>
+    <message>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished">Nokopēt</translation>
+    </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">Seiv</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished">Aiztaisīt</translation>
+    </message>
     </context>
 <context>
     <name>PeerTableModel</name>
@@ -1222,6 +1274,10 @@
     </context>
 <context>
     <name>WalletFrame</name>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Izveidot jaunu maciņu</translation>
+    </message>
     <message>
         <source>Error</source>
         <translation type="unfinished">Kļūda</translation>
diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts
index ab2f00860eb..dd2190c300e 100644
--- a/src/qt/locale/bitcoin_nb.ts
+++ b/src/qt/locale/bitcoin_nb.ts
@@ -268,6 +268,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
         <translation type="unfinished">Vil du tilbakestille innstillingene til utgangsverdiene, eller vil du avbryte uten å gjøre endringer?</translation>
     </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">En fatal feil har oppstått. Sjekk at filen med innstillinger er skrivbar eller prøv å kjøre med -nosettings.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Feil: Den spesifiserte datamappen "%1" finnes ikke.</translation>
@@ -320,6 +325,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
         <translation type="unfinished">Blokkrelé</translation>
     </message>
+    <message>
+        <source>Manual</source>
+        <extracomment>Peer connection type established manually through one of several methods.</extracomment>
+        <translation type="unfinished">Håndbok</translation>
+    </message>
     <message>
         <source>Feeler</source>
         <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
@@ -655,6 +665,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: No %s addresses available.</source>
         <translation type="unfinished">Feil: Ingen %s adresser tilgjengelige.</translation>
     </message>
+    <message>
+        <source>Error: Unable to write record to new wallet</source>
+        <translation type="unfinished">Feil: Kan ikke skrive rekord til ny lommebok</translation>
+    </message>
     <message>
         <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
         <translation type="unfinished">Kunne ikke lytte på noen port. Bruk -listen=0 hvis det er dette du vil.</translation>
@@ -687,6 +701,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">Sunnhetssjekk ved oppstart mislyktes. %s skrus av.</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Finner ikke data eller er allerede brukt</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Utilstrekkelige midler</translation>
@@ -735,10 +753,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Loading wallet…</source>
         <translation type="unfinished">Laster lommebok...</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Mangler beløp</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Må oppgi en port med -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Ingen adresser tilgjengelig</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Ingen proxyserver er spesifisert. Bruk -proxy=&lt;ip&gt; eller -proxy=&lt;ip:port&gt;.</translation>
@@ -767,6 +793,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
         <translation type="unfinished">Reduserer -maxconnections fra %d til %d, pga. systembegrensninger.</translation>
     </message>
+    <message>
+        <source>Replaying blocks…</source>
+        <translation type="unfinished">Spiller av blokker på nytt …</translation>
+    </message>
     <message>
         <source>Rescanning…</source>
         <translation type="unfinished">Leser gjennom igjen...</translation>
@@ -2331,6 +2361,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Transaksjonen trenger signatur(er).</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Men ingen lommebok er lastet.)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Men denne lommeboken kan ikke signere transaksjoner.)</translation>
@@ -2570,6 +2604,10 @@ Hvis du får denne feilen burde du be forretningsdrivende om å tilby en BIP21 k
         <source>Synced Blocks</source>
         <translation type="unfinished">Synkroniserte Blokker</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Siste transaksjon</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">Det kartlagte Autonome Systemet som brukes til å diversifisere valg av likemenn.</translation>
@@ -2578,6 +2616,10 @@ Hvis du får denne feilen burde du be forretningsdrivende om å tilby en BIP21 k
         <source>Mapped AS</source>
         <translation type="unfinished">Kartlagt AS</translation>
     </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Adresser Prosessert</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Brukeragent</translation>
@@ -3248,6 +3290,11 @@ Hvis du får denne feilen burde du be forretningsdrivende om å tilby en BIP21 k
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">Se over ditt transaksjonsforslag. Dette kommer til å produsere en Delvis Signert Bitcoin Transaksjon (PSBT) som du kan lagre eller kopiere og så signere med f.eks. en offline %1 lommebok, eller en PSBT kompatibel hardware lommebok.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Vil du lage denne transaksjonen?</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3560,7 +3607,11 @@ Hvis du får denne feilen burde du be forretningsdrivende om å tilby en BIP21 k
         <source>(press q to shutdown and continue later)</source>
         <translation type="unfinished">(trykk q for å skru av og fortsette senere)</translation>
     </message>
-    </context>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">trykk på q for å slå av</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
diff --git a/src/qt/locale/bitcoin_ne.ts b/src/qt/locale/bitcoin_ne.ts
index a9b0e65e42e..8e290357d8b 100644
--- a/src/qt/locale/bitcoin_ne.ts
+++ b/src/qt/locale/bitcoin_ne.ts
@@ -29,6 +29,10 @@
         <source>Delete the currently selected address from the list</source>
         <translation type="unfinished">भर्खरै चयन गरेको ठेगाना सूचीबाट मेटाउनुहोस्</translation>
     </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">खोज्नको लागि ठेगाना वा लेबल दर्ता गर्नुहोस</translation>
+    </message>
     <message>
         <source>Export the data in the current tab to a file</source>
         <translation type="unfinished">वर्तमान ट्याबको डाटालाई फाइलमा निर्यात गर्नुहोस्</translation>
@@ -41,6 +45,14 @@
         <source>&amp;Delete</source>
         <translation type="unfinished">&amp;amp;मेटाउनुहोस्</translation>
     </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">सिक्काहरु पठाउने ठेगाना छान्नुहोस् </translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">सिक्काहरु प्राप्त गर्ने ठेगाना छान्नुहोस्</translation>
+    </message>
     <message>
         <source>C&amp;hoose</source>
         <translation type="unfinished">छनौट गर्नुहोस्...</translation>
@@ -53,10 +65,52 @@
         <source>Receiving addresses</source>
         <translation type="unfinished">प्राप्त गर्ने ठेगानाहरू...</translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">यी भुक्तानी गर्नका लागि तपाइका बिट्कोइन ठेगानाहरू हुन्।
+सिक्काहरू पठाउनुअघि रकम र प्राप्त गर्ने ठेगाना जाँच गर्नुहोस।</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">ठेगाना कपी गर्नुहोस्</translation>
     </message>
+    <message>
+        <source>Copy &amp;Label</source>
+        <translation type="unfinished">लेबल कपी गर्नुहोस्</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation type="unfinished">सम्पादन</translation>
+    </message>
+    <message>
+        <source>Export Address List</source>
+        <translation type="unfinished">ठेगाना सुची निर्यात</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">अल्पविरामले छुट्टिएको फाइल</translation>
+    </message>
+    <message>
+        <source>There was an error trying to save the address list to %1. Please try again.</source>
+        <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
+        <translation type="unfinished">ठेगाना सुची %1मा बचत गर्ने प्रयासमा त्रुटि भएको छ। कृपया पुनः प्रयास गर्नुहोस।</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">निर्यात असफल</translation>
+    </message>
+</context>
+<context>
+    <name>AddressTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">लेबल</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">ठेगाना</translation>
+    </message>
     </context>
 <context>
     <name>AskPassphraseDialog</name>
@@ -76,6 +130,30 @@
         <source>Repeat new passphrase</source>
         <translation type="unfinished">नयाँ पासफ्रेज दोहोर्याउनुहोस्</translation>
     </message>
+    <message>
+        <source>Encrypt wallet</source>
+        <translation type="unfinished">वालेट इन्क्रिप्ट गर्नुहोस् </translation>
+    </message>
+    <message>
+        <source>Confirm wallet encryption</source>
+        <translation type="unfinished">वालेट इन्क्रिप्सन सुनिश्चित गर्नुहोस</translation>
+    </message>
+    <message>
+        <source>Wallet encrypted</source>
+        <translation type="unfinished">वालेट इन्क्रिप्ट भयो</translation>
+    </message>
+    <message>
+        <source>Your wallet is now encrypted. </source>
+        <translation type="unfinished">अब वालेट इन्क्रिप्ट भएको छ।</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed</source>
+        <translation type="unfinished">वालेट इन्क्रिप्सन असफल </translation>
+    </message>
+    <message>
+        <source>Wallet unlock failed</source>
+        <translation type="unfinished">वालेट अनलक असफल </translation>
+    </message>
     </context>
 <context>
     <name>BanTableModel</name>
@@ -357,6 +435,11 @@
         <extracomment>Title of Peers Table column which contains the peer's User Agent string.</extracomment>
         <translation type="unfinished">प्रयोगकर्ता एजेन्ट</translation>
     </message>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">ठेगाना</translation>
+    </message>
     </context>
 <context>
     <name>RPCConsole</name>
@@ -369,6 +452,13 @@
         <translation type="unfinished">पिङ समय</translation>
     </message>
     </context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">लेबल</translation>
+    </message>
+    </context>
 <context>
     <name>SendCoinsDialog</name>
     <message numerus="yes">
@@ -431,6 +521,33 @@
         <translation type="unfinished">रकम</translation>
     </message>
     </context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">लेबल</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">अल्पविरामले छुट्टिएको फाइल</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">लेबल</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">ठेगाना</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">निर्यात असफल</translation>
+    </message>
+    </context>
 <context>
     <name>WalletView</name>
     <message>
diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts
index 86f9d4ed9b1..a4bb0905886 100644
--- a/src/qt/locale/bitcoin_nl.ts
+++ b/src/qt/locale/bitcoin_nl.ts
@@ -1404,7 +1404,7 @@ Indien dit het geval is, gelieve de software te gebruiken waarmee deze portefeui
     </message>
     <message>
         <source>S&amp;how</source>
-        <translation type="unfinished">T&amp;oon</translation>
+        <translation type="unfinished">&amp;Toon</translation>
     </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
@@ -3470,7 +3470,7 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10
     <message>
         <source>Sign on device</source>
         <extracomment>"device" usually means a hardware wallet.</extracomment>
-        <translation type="unfinished">Inlog apparaat</translation>
+        <translation type="unfinished">Onderteken op apparaat</translation>
     </message>
     <message>
         <source>Connect your hardware wallet first.</source>
diff --git a/src/qt/locale/bitcoin_pa.ts b/src/qt/locale/bitcoin_pa.ts
new file mode 100644
index 00000000000..cba753ebf63
--- /dev/null
+++ b/src/qt/locale/bitcoin_pa.ts
@@ -0,0 +1,427 @@
+<TS version="2.1" language="pa">
+<context>
+    <name>AddressBookPage</name>
+    <message>
+        <source>Right-click to edit address or label</source>
+        <translation type="unfinished">ਪਤੇ ਜਾਂ ਲੇਬਲ ਦਾ ਸੰਪਾਦਨ ਕਰਨ ਲਈ ਸੱਜਾ-ਕਲਿੱਕ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Create a new address</source>
+        <translation type="unfinished">ਨਵਾਂ ਪਤਾ ਬਣਾਓ</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation type="unfinished">&amp;ਨਵਾਂ</translation>
+    </message>
+    <message>
+        <source>Copy the currently selected address to the system clipboard</source>
+        <translation type="unfinished">ਚੁਣੇ ਪਤੇ ਦੀ ਸਿਸਟਮ ਦੀ ਚੂੰਢੀ-ਤਖਤੀ 'ਤੇ ਨਕਲ ਲਾਹੋ</translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">&amp;ਨਕਲ ਲਾਹੋ</translation>
+    </message>
+    <message>
+        <source>C&amp;lose</source>
+        <translation type="unfinished">ਬੰ&amp;ਦ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Delete the currently selected address from the list</source>
+        <translation type="unfinished">ਚੁਣੇ ਪਤੇ ਨੂੰ ਸੂਚੀ ਵਿੱਚੋਂ ਮਿਟਾਓ</translation>
+    </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">ਖੋਜਣ ਲਈ ਪਤਾ ਜਾਂ ਲੇਬਲ ਦਾਖਲ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">ਮੌਜੂਦਾ ਟੈਬ ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਫਾਈਲ ਵਿੱਚ ਐਕਸਪੋਰਟ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;ਨਿਰਯਾਤ</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation type="unfinished">&amp;ਮਿਟਾਓ</translation>
+    </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">ਸਿੱਕੇ ਭੇਜਣ ਲਈ ਪਤਾ ਚੁਣੋ</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">ਸਿੱਕੇ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਪਤਾ ਚੁਣੋ</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">ਇਹ ਭੁਗਤਾਨ ਭੇਜਣ ਲਈ ਤੁਹਾਡੇ ਬਿਟਕੋਇਨ ਪਤੇ ਹਨ। ਸਿੱਕੇ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ ਹਮੇਸ਼ਾਂ ਰਕਮ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਪਤੇ ਦੀ ਜਾਂਚ ਕਰੋ।</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Address</source>
+        <translation type="unfinished">&amp;ਕਾਪੀ ਪਤਾ</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Label</source>
+        <translation type="unfinished">&amp;ਲੇਬਲ ਕਾਪੀ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation type="unfinished">&amp;ਸੋਧੋ</translation>
+    </message>
+    <message>
+        <source>Export Address List</source>
+        <translation type="unfinished">ਪਤਾ ਸੂਚੀ ਨਿਰਯਾਤ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">ਕਾਮੇ ਨਾਲ ਵੱਖ ਕੀਤੀ ਫਾਈਲ</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">ਨਿਰਯਾਤ ਅਸਫਲ ਰਿਹਾ</translation>
+    </message>
+</context>
+<context>
+    <name>AddressTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">ਲੇਬਲ</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">ਪਤਾ</translation>
+    </message>
+    </context>
+<context>
+    <name>AskPassphraseDialog</name>
+    <message>
+        <source>Passphrase Dialog</source>
+        <translation type="unfinished">ਪਾਸਫਰੇਜ ਡਾਇਲਾਗ</translation>
+    </message>
+    <message>
+        <source>Enter passphrase</source>
+        <translation type="unfinished">ਪਾਸਫਰੇਜ ਲਿਖੋ</translation>
+    </message>
+    <message>
+        <source>New passphrase</source>
+        <translation type="unfinished">ਨਵਾਂ ਪਾਸਫਰੇਜ</translation>
+    </message>
+    <message>
+        <source>Repeat new passphrase</source>
+        <translation type="unfinished">ਨਵਾਂ ਪਾਸਫਰੇਜ ਦੁਹਰਾਓ</translation>
+    </message>
+    <message>
+        <source>Show passphrase</source>
+        <translation type="unfinished">ਪਾਸਫਰੇਜ ਦਿਖਾਓ</translation>
+    </message>
+    <message>
+        <source>Encrypt wallet</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਐਨਕ੍ਰਿਪਟ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Unlock wallet</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਨੂੰ ਅਨਲੌਕ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Change passphrase</source>
+        <translation type="unfinished">ਪਾਸਫਰੇਜ ਬਦਲੋ</translation>
+    </message>
+    <message>
+        <source>Confirm wallet encryption</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਇਨਕ੍ਰਿਪਸ਼ਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to encrypt your wallet?</source>
+        <translation type="unfinished">ਕੀ ਤੁਸੀਂ ਯਕੀਨੀ ਤੌਰ 'ਤੇ ਆਪਣੇ ਵਾਲਿਟ ਨੂੰ ਐਨਕ੍ਰਿਪਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
+    </message>
+    <message>
+        <source>Wallet encrypted</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਨੂੰ ਐਨਕ੍ਰਿਪਟ ਕੀਤਾ ਗਿਆ</translation>
+    </message>
+    <message>
+        <source>Wallet to be encrypted</source>
+        <translation type="unfinished">ਇਨਕ੍ਰਿਪਟਡ ਹੋਣ ਲਈ ਵਾਲਿਟ</translation>
+    </message>
+    <message>
+        <source>Your wallet is about to be encrypted. </source>
+        <translation type="unfinished">ਤੁਹਾਡਾ ਵਾਲਿਟ ਐਨਕ੍ਰਿਪਟ ਹੋਣ ਵਾਲਾ ਹੈ।</translation>
+    </message>
+    <message>
+        <source>Your wallet is now encrypted. </source>
+        <translation type="unfinished">ਤੁਹਾਡਾ ਵਾਲਿਟ ਹੁਣ ਏਨਕ੍ਰਿਪਟ ਹੋ ਗਿਆ ਹੈ।</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਇਨਕ੍ਰਿਪਸ਼ਨ ਅਸਫਲ</translation>
+    </message>
+    <message>
+        <source>The supplied passphrases do not match.</source>
+        <translation type="unfinished">ਸਪਲਾਈ ਕੀਤੇ ਪਾਸਫਰੇਜ਼ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ।</translation>
+    </message>
+    <message>
+        <source>Wallet unlock failed</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਅਨਲੌਕ ਅਸਫਲ ਰਿਹਾ</translation>
+    </message>
+    <message>
+        <source>Wallet passphrase was successfully changed.</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਪਾਸਫਰੇਜ ਸਫਲਤਾਪੂਰਵਕ ਬਦਲਿਆ ਗਿਆ।</translation>
+    </message>
+    <message>
+        <source>Warning: The Caps Lock key is on!</source>
+        <translation type="unfinished">ਚੇਤਾਵਨੀ: Caps Lock ਕੁੰਜੀ ਚਾਲੂ ਹੈ!</translation>
+    </message>
+</context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">ਇੱਕ ਘਾਤਕ ਗਲਤੀ ਆਈ ਹੈ। %1ਹੁਣ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਜਾਰੀ ਨਹੀਂ ਰਹਿ ਸਕਦਾ ਹੈ ਅਤੇ ਛੱਡ ਦੇਵੇਗਾ।</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">ਅੰਦਰੂਨੀ ਗੜਬੜ</translation>
+    </message>
+    </context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">ਗਲਤੀ: %1</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n second(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n minute(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n hour(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n day(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n week(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n year(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">ਸੈਟਿੰਗ ਫਾਈਲ ਨੂੰ ਪੜ੍ਹਨ ਵਿੱਚ ਅਸਫਲ</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">ਸੈਟਿੰਗ ਫਾਈਲ ਲਿਖਣ ਵਿੱਚ ਅਸਫਲ</translation>
+    </message>
+    </context>
+<context>
+    <name>BitcoinGUI</name>
+    <message>
+        <source>&amp;Overview</source>
+        <translation type="unfinished">&amp;ਓਵਰਵਿਊ</translation>
+    </message>
+    <message>
+        <source>&amp;Transactions</source>
+        <translation type="unfinished">&amp;ਲੈਣ-ਦੇਣ</translation>
+    </message>
+    <message>
+        <source>Browse transaction history</source>
+        <translation type="unfinished">ਲੈਣ-ਦੇਣ ਦਾ ਇਤਿਹਾਸ ਬ੍ਰਾਊਜ਼ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Quit application</source>
+        <translation type="unfinished">ਐਪਲੀਕੇਸ਼ਨ ਛੱਡੋ</translation>
+    </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">ਨਵਾਂ ਵਾਲਿਟ ਬਣਾਓ</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">ਬਟੂਆ: </translation>
+    </message>
+    <message>
+        <source>Send coins to a Bitcoin address</source>
+        <translation type="unfinished">ਬਿਟਕੋਇਨ ਪਤੇ 'ਤੇ ਸਿੱਕੇ ਭੇਜੋ</translation>
+    </message>
+    <message>
+        <source>Backup wallet to another location</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਨੂੰ ਕਿਸੇ ਹੋਰ ਥਾਂ 'ਤੇ ਬੈਕਅੱਪ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>Change the passphrase used for wallet encryption</source>
+        <translation type="unfinished">ਵਾਲਿਟ ਇਨਕ੍ਰਿਪਸ਼ਨ ਲਈ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਪਾਸਫਰੇਜ ਬਦਲੋ</translation>
+    </message>
+    <message>
+        <source>&amp;Send</source>
+        <translation type="unfinished">&amp;ਭੇਜੋ</translation>
+    </message>
+    <message>
+        <source>&amp;Receive</source>
+        <translation type="unfinished">&amp;ਪ੍ਰਾਪਤ ਕਰੋ</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;ਵਾਲਿਟ ਇਨਕ੍ਰਿਪਟ ਕਰੋ...</translation>
+    </message>
+    <message>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">ਨਿੱਜੀ ਕੁੰਜੀਆਂ ਨੂੰ ਐਨਕ੍ਰਿਪਟ ਕਰੋ ਜੋ ਤੁਹਾਡੇ ਵਾਲਿਟ ਨਾਲ ਸਬੰਧਤ ਹਨ</translation>
+    </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;ਬੈਕਅੱਪ ਵਾਲਿਟ…</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">ਪਾਸਫਰੇਜ &amp;ਬਦਲੋ...</translation>
+    </message>
+    <message numerus="yes">
+        <source>Processed %n block(s) of transaction history.</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">ਗਲਤੀ: %1</translation>
+    </message>
+    </context>
+<context>
+    <name>Intro</name>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>PeerTableModel</name>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">ਪਤਾ</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">ਬਟੂਆ: </translation>
+    </message>
+    </context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">ਲੇਬਲ</translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionDesc</name>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">ਲੇਬਲ</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">ਕਾਮੇ ਨਾਲ ਵੱਖ ਕੀਤੀ ਫਾਈਲ</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">ਲੇਬਲ</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">ਪਤਾ</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">ਨਿਰਯਾਤ ਅਸਫਲ ਰਿਹਾ</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletFrame</name>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">ਨਵਾਂ ਵਾਲਿਟ ਬਣਾਓ</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletView</name>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;ਨਿਰਯਾਤ</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">ਮੌਜੂਦਾ ਟੈਬ ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਫਾਈਲ ਵਿੱਚ ਐਕਸਪੋਰਟ ਕਰੋ</translation>
+    </message>
+    </context>
+</TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts
index 6fc1f2e032b..4a88a3dc356 100644
--- a/src/qt/locale/bitcoin_pl.ts
+++ b/src/qt/locale/bitcoin_pl.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Kliknij prawy przycisk myszy, aby edytować adres lub etykietę</translation>
+        <translation type="unfinished">Kliknij prawym przyciskiem myszy, aby edytować adres lub etykietę</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -103,7 +103,7 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
     </message>
     <message>
         <source>Exporting Failed</source>
-        <translation type="unfinished"> Eksportowanie nie powiodło się </translation>
+        <translation type="unfinished">Eksportowanie nie powiodło się </translation>
     </message>
 </context>
 <context>
@@ -125,7 +125,7 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
     <name>AskPassphraseDialog</name>
     <message>
         <source>Passphrase Dialog</source>
-        <translation type="unfinished"> Okienko Hasła </translation>
+        <translation type="unfinished">Okienko Hasła </translation>
     </message>
     <message>
         <source>Enter passphrase</source>
@@ -157,7 +157,7 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
     </message>
     <message>
         <source>Change passphrase</source>
-        <translation type="unfinished"> Zmień hasło </translation>
+        <translation type="unfinished">Zmień hasło </translation>
     </message>
     <message>
         <source>Confirm wallet encryption</source>
@@ -185,11 +185,11 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
     </message>
     <message>
         <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
-        <translation type="unfinished">Zwróć uwagę, że zaszyfrowanie portfela nie zabezpieczy się w pełni przed kradzieżą przez malware jakie może zainfekować twój komputer. </translation>
+        <translation type="unfinished">Pamiętaj, że zaszyfrowanie portfela nie pomoże w zapobiegnięciu kradzieży twoich bitcoinów jeśli komputer zostanie zainfekowany przez złośliwe oprogramowanie.</translation>
     </message>
     <message>
         <source>Wallet to be encrypted</source>
-        <translation type="unfinished"> Portfel do zaszyfrowania </translation>
+        <translation type="unfinished">Portfel do zaszyfrowania </translation>
     </message>
     <message>
         <source>Your wallet is about to be encrypted. </source>
@@ -245,6 +245,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
 </context>
 <context>
     <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">Błąd zapisu do portfela</translation>
+    </message>
     <message>
         <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
         <translation type="unfinished">Wystąpił krytyczny błąd. %1 nie może dalej bezpiecznie pracować i zostanie zakończony.</translation>
@@ -260,6 +264,16 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Przywrócić ustawienia domyślne czy zrezygnować bez dokonywania zmian?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Wystąpił krytyczny błąd. Upewnij się, że plik ustawień można nadpisać lub uruchom klienta z parametrem -nosettings.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Błąd: Określony folder danych "%1" nie istnieje.</translation>
@@ -288,6 +302,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Enter a Bitcoin address (e.g. %1)</source>
         <translation type="unfinished">Wprowadź adres bitcoinowy (np. %1)</translation>
     </message>
+    <message>
+        <source>Unroutable</source>
+        <translation type="unfinished">Nie można wytyczyć</translation>
+    </message>
     <message>
         <source>Internal</source>
         <translation type="unfinished">Wewnętrzny</translation>
@@ -302,11 +320,31 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <extracomment>An outbound connection to a peer. An outbound connection is a connection initiated by us.</extracomment>
         <translation type="unfinished">Wyjściowy</translation>
     </message>
+    <message>
+        <source>Full Relay</source>
+        <extracomment>Peer connection type that relays all network information.</extracomment>
+        <translation type="unfinished">Pełny Przekaźnik</translation>
+    </message>
+    <message>
+        <source>Block Relay</source>
+        <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">Przekaźnik Blokowy</translation>
+    </message>
     <message>
         <source>Manual</source>
         <extracomment>Peer connection type established manually through one of several methods.</extracomment>
         <translation type="unfinished">Ręczny</translation>
     </message>
+    <message>
+        <source>Feeler</source>
+        <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Szczelinomierz</translation>
+    </message>
+    <message>
+        <source>Address Fetch</source>
+        <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
+        <translation type="unfinished">Pobieranie adresu</translation>
+    </message>
     <message>
         <source>None</source>
         <translation type="unfinished">Żaden</translation>
@@ -318,41 +356,41 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n sekunda</numerusform>
+            <numerusform>%n sekund</numerusform>
+            <numerusform>%n sekund</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minuta</numerusform>
+            <numerusform>%n minut</numerusform>
+            <numerusform>%n minut</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n godzina</numerusform>
+            <numerusform>%n godzin</numerusform>
+            <numerusform>%n godzin</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n dzień</numerusform>
+            <numerusform>%n dni</numerusform>
+            <numerusform>%n dni</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n tydzień</numerusform>
+            <numerusform>%n tygodnie</numerusform>
+            <numerusform>%n tygodnie</numerusform>
         </translation>
     </message>
     <message>
@@ -362,14 +400,22 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n rok</numerusform>
+            <numerusform>%n lata</numerusform>
+            <numerusform>%n lata</numerusform>
         </translation>
     </message>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Nie udało się odczytać pliku ustawień</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Nie udało się zapisać pliku ustawień</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">Deweloperzy %s</translation>
@@ -382,10 +428,18 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
         <translation type="unfinished">-maxtxfee ma ustawioną badzo dużą wartość! Tak wysokie opłaty mogą być zapłacone w jednej transakcji.</translation>
     </message>
+    <message>
+        <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
+        <translation type="unfinished">Nie można zmienić wersji portfela z wersji %ina wersje %i. Wersja portfela pozostaje niezmieniona.</translation>
+    </message>
     <message>
         <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
         <translation type="unfinished">Nie można uzyskać blokady na katalogu z danymi %s. %s najprawdopodobniej jest już uruchomiony.</translation>
     </message>
+    <message>
+        <source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
+        <translation type="unfinished">Nie można zaktualizować portfela dzielonego innego niż HD z wersji 1%i do wersji 1%i bez aktualizacji w celu obsługi wstępnie podzielonej puli kluczy. Użyj wersji 1%i lub nie określono wersji.</translation>
+    </message>
     <message>
         <source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
         <translation type="unfinished">Rozprowadzane na licencji MIT, zobacz dołączony plik %s lub %s</translation>
@@ -394,6 +448,26 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Błąd odczytu %s! Wszystkie klucze zostały odczytane poprawnie, ale może brakować  danych transakcji lub wpisów w książce adresowej, lub mogą one być nieprawidłowe.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Błąd odczytu 1%s! Może brakować danych transakcji lub mogą być one nieprawidłowe. Ponowne skanowanie portfela.</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
+        <translation type="unfinished">Błąd: rekord formatu pliku zrzutu jest nieprawidłowy. Otrzymano „1%s”, oczekiwany „format”.</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s".</source>
+        <translation type="unfinished">Błąd: rekord identyfikatora pliku zrzutu jest nieprawidłowy. Otrzymano „1%s”, oczekiwano „1%s”.</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
+        <translation type="unfinished">Błąd: wersja pliku zrzutu nie jest obsługiwana. Ta wersja bitcoin-wallet obsługuje tylko pliki zrzutów w wersji 1. Mam plik zrzutu w wersji 1%s</translation>
+    </message>
+    <message>
+        <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
+        <translation type="unfinished">Błąd: starsze portfele obsługują tylko typy adresów „legacy”, „p2sh-segwit” i „bech32”</translation>
+    </message>
     <message>
         <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
         <translation type="unfinished">Błąd: Nasłuchiwanie połączeń przychodzących nie powiodło się (nasłuch zwrócił błąd %s)</translation>
@@ -402,10 +476,30 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
         <translation type="unfinished">Estymacja opłat nieudana. Domyślna opłata jest wyłączona. Poczekaj kilka bloków lub włącz  -fallbackfee.</translation>
     </message>
+    <message>
+        <source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
+        <translation type="unfinished">Plik 1%s już istnieje. Jeśli jesteś pewien, że tego chcesz, najpierw usuń to z drogi.</translation>
+    </message>
     <message>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">Niewłaściwa ilość dla -maxtxfee=&lt;ilość&gt;: '%s' (musi wynosić przynajmniej minimalną wielkość %s aby zapobiec utknięciu transakcji)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">Nieprawidłowy lub uszkodzony plik peers.dat (1%s). Jeśli uważasz, że to błąd, zgłoś go do 1%s. Jako obejście, możesz przenieść plik (1%s) z drogi (zmień nazwę, przenieś lub usuń), aby przy następnym uruchomieniu utworzyć nowy.</translation>
+    </message>
+    <message>
+        <source>No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">Nie dostarczono pliku zrzutu. Aby użyć funkcji createfromdump, należy podać -dumpfile=1.</translation>
+    </message>
+    <message>
+        <source>No dump file provided. To use dump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">Nie dostarczono pliku zrzutu. Aby użyć funkcji createfromdump, należy podać -dumpfile=1.</translation>
+    </message>
+    <message>
+        <source>No wallet file format provided. To use createfromdump, -format=&lt;format&gt; must be provided.</source>
+        <translation type="unfinished">Nie dostarczono pliku zrzutu. Aby użyć funkcji createfromdump, należy podać -dumpfile=1.</translation>
+    </message>
     <message>
         <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
         <translation type="unfinished">Proszę sprawdzić czy data i czas na Twoim komputerze są poprawne! Jeżeli ustawienia zegara będą złe, %s nie będzie działał prawidłowo.</translation>
@@ -430,6 +524,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">Baza bloków zawiera blok, który wydaje się pochodzić z przyszłości. Może to wynikać z nieprawidłowego ustawienia daty i godziny Twojego komputera. Bazę danych bloków dobuduj tylko, jeśli masz pewność, że data i godzina twojego komputera są poprawne</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">Baza danych indeksu bloku zawiera odziedziczony „txindex”. Aby wyczyścić zajęte miejsce na dysku, uruchom pełną indeksację, w przeciwnym razie zignoruj ten błąd. Ten komunikat o błędzie nie zostanie ponownie wyświetlony.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">Zbyt niska kwota transakcji do wysłania po odjęciu opłaty</translation>
@@ -462,6 +560,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
         <translation type="unfinished">Nie można przetworzyć bloków. Konieczne będzie przebudowanie bazy danych za pomocą -reindex-chainstate.</translation>
     </message>
+    <message>
+        <source>Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite".</source>
+        <translation type="unfinished">Podano nieznany typ pliku portfela "%s". Proszę podać jeden z "bdb" lub "sqlite".</translation>
+    </message>
     <message>
         <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source>
         <translation type="unfinished">Uwaga: Wykryto klucze prywatne w portfelu [%s] który ma wyłączone klucze prywatne</translation>
@@ -498,6 +600,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Nie mogę zapisać do katalogu danych '%s'; sprawdź uprawnienia.</translation>
     </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Zmiana nazwy nieprawidłowego pliku peers.dat nie powiodła się. Przenieś go lub usuń i spróbuj ponownie.</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Ustawienie konfiguracyjne %s działa na sieć %s tylko, jeżeli jest w sekcji [%s].</translation>
@@ -530,6 +636,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Done loading</source>
         <translation type="unfinished">Wczytywanie zakończone</translation>
     </message>
+    <message>
+        <source>Error creating %s</source>
+        <translation type="unfinished">Błąd podczas tworzenia %s</translation>
+    </message>
     <message>
         <source>Error initializing block database</source>
         <translation type="unfinished">Błąd inicjowania bazy danych bloków</translation>
@@ -566,6 +676,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Error reading from database, shutting down.</source>
         <translation type="unfinished">Błąd odczytu z bazy danych, wyłączam się.</translation>
     </message>
+    <message>
+        <source>Error reading next record from wallet database</source>
+        <translation type="unfinished">Błąd odczytu kolejnego rekordu z bazy danych portfela</translation>
+    </message>
     <message>
         <source>Error upgrading chainstate database</source>
         <translation type="unfinished">Błąd ładowania bazy bloków</translation>
@@ -574,10 +688,26 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Error: Disk space is low for %s</source>
         <translation type="unfinished">Błąd: zbyt mało miejsca na dysku dla %s</translation>
     </message>
+    <message>
+        <source>Error: Dumpfile checksum does not match. Computed %s, expected %s</source>
+        <translation type="unfinished">Błąd: Plik zrzutu suma kontrolna nie pasuje. Obliczone %s,  spodziewane %s</translation>
+    </message>
     <message>
         <source>Error: Keypool ran out, please call keypoolrefill first</source>
         <translation type="unfinished">Błąd: Pula kluczy jest pusta, odwołaj się do puli kluczy.</translation>
     </message>
+    <message>
+        <source>Error: Missing checksum</source>
+        <translation type="unfinished">Bład: Brak suma kontroly</translation>
+    </message>
+    <message>
+        <source>Error: No %s addresses available.</source>
+        <translation type="unfinished">Błąd: %s adres nie dostępny</translation>
+    </message>
+    <message>
+        <source>Error: Unable to write record to new wallet</source>
+        <translation type="unfinished">Błąd: Wpisanie rekordu do nowego portfela jest niemożliwe</translation>
+    </message>
     <message>
         <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
         <translation type="unfinished">Próba nasłuchiwania na jakimkolwiek porcie nie powiodła się. Użyj -listen=0 jeśli tego chcesz.</translation>
@@ -598,6 +728,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Ignoring duplicate -wallet %s.</source>
         <translation type="unfinished">Ignorowanie duplikatu -wallet %s</translation>
     </message>
+    <message>
+        <source>Importing…</source>
+        <translation type="unfinished">Importowanie...</translation>
+    </message>
     <message>
         <source>Incorrect or no genesis block found. Wrong datadir for network?</source>
         <translation type="unfinished">Nieprawidłowy lub brak bloku genezy. Błędny folder_danych dla sieci?</translation>
@@ -642,10 +776,34 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Invalid netmask specified in -whitelist: '%s'</source>
         <translation type="unfinished">Nieprawidłowa maska sieci określona w -whitelist: '%s'</translation>
     </message>
+    <message>
+        <source>Loading P2P addresses…</source>
+        <translation type="unfinished">Ładowanie adresów P2P...</translation>
+    </message>
+    <message>
+        <source>Loading banlist…</source>
+        <translation type="unfinished">Ładowanie listy zablokowanych...</translation>
+    </message>
+    <message>
+        <source>Loading block index…</source>
+        <translation type="unfinished">Ładowanie indeksu bloku...</translation>
+    </message>
+    <message>
+        <source>Loading wallet…</source>
+        <translation type="unfinished">Ładowanie portfela...</translation>
+    </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Brakująca kwota</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Musisz określić port z -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Brak dostępnych adresów</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Żaden serwer proxy nie jest ustawiony. Użyj -proxy=&lt;ip&gt; lub -proxy=&lt;ip:port&gt;.</translation>
@@ -666,6 +824,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
         <translation type="unfinished">Zmniejszanie -maxconnections z %d do %d z powodu ograniczeń systemu.</translation>
     </message>
+    <message>
+        <source>Rescanning…</source>
+        <translation type="unfinished">Ponowne skanowanie...</translation>
+    </message>
     <message>
         <source>SQLiteDatabase: Failed to execute statement to verify database: %s</source>
         <translation type="unfinished">SQLiteDatabase: nie powiodło się wykonanie instrukcji weryfikującej bazę danych: %s</translation>
@@ -707,6 +869,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <translation type="unfinished">Podany folder bloków "%s" nie istnieje.
 </translation>
     </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">Startowanie wątków sieciowych...</translation>
+    </message>
     <message>
         <source>The source code is available from %s.</source>
         <translation type="unfinished">Kod źródłowy dostępny jest z %s.</translation>
@@ -771,6 +937,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Unable to generate keys</source>
         <translation type="unfinished">Nie można wygenerować kluczy</translation>
     </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">Nie można otworzyć %s w celu zapisu</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Uruchomienie serwera HTTP nie powiodło się. Zobacz dziennik debugowania, aby uzyskać więcej szczegółów.</translation>
@@ -803,6 +973,14 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>User Agent comment (%s) contains unsafe characters.</source>
         <translation type="unfinished">Komentarz User Agent (%s) zawiera niebezpieczne znaki.</translation>
     </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">Weryfikowanie bloków...</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">Weryfikowanie porfela(li)...</translation>
+    </message>
     <message>
         <source>Wallet needed to be rewritten: restart %s to complete</source>
         <translation type="unfinished">Portfel wymaga przepisania: zrestartuj %s aby ukończyć</translation>
@@ -858,6 +1036,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Create a new wallet</source>
         <translation type="unfinished">Stwórz nowy portfel</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">Z&amp;minimalizuj</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Portfel:</translation>
@@ -903,6 +1085,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">Szyfruj klucze prywatne, które są w twoim portfelu</translation>
     </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">Utwórz kopię zapasową portfela...</translation>
+    </message>
     <message>
         <source>&amp;Change Passphrase…</source>
         <translation type="unfinished">&amp;Zmień hasło...</translation>
@@ -923,6 +1109,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">Zweryfikuj wiadomość,  aby upewnić się, że została podpisana podanym adresem bitcoinowym.</translation>
     </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">Wczytaj PSBT z pliku...</translation>
+    </message>
     <message>
         <source>Open &amp;URI…</source>
         <translation type="unfinished">Otwórz &amp;URI...</translation>
@@ -955,6 +1145,30 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Tabs toolbar</source>
         <translation type="unfinished">Pasek zakładek</translation>
     </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">Synchronizuję nagłówki (%1%)…</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">Synchronizacja z siecią...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Indeksowanie bloków...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Przetwarzanie bloków...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Ponowne indeksowanie bloków...</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Łączenie z uczestnikami sieci...</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">Żądaj płatności (generuje kod QR oraz bitcoinowe URI)</translation>
@@ -974,15 +1188,19 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Przetworzono %n blok z historii transakcji.</numerusform>
+            <numerusform>Przetworzono %n bloków z historii transakcji.</numerusform>
+            <numerusform>Przetworzono %n bloków z historii transakcji.</numerusform>
         </translation>
     </message>
     <message>
         <source>%1 behind</source>
         <translation type="unfinished">%1 za</translation>
     </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Synchronizuję...</translation>
+    </message>
     <message>
         <source>Last received block was generated %1 ago.</source>
         <translation type="unfinished">Ostatni otrzymany blok został wygenerowany %1 temu.</translation>
@@ -1011,6 +1229,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Załaduj częściowo podpisaną transakcję Bitcoin</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Wczytaj PSBT ze schowka...</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Załaduj częściowo podpisaną transakcję Bitcoin ze schowka</translation>
@@ -1087,15 +1309,39 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>%1 client</source>
         <translation type="unfinished">%1 klient</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Ukryj</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n aktywne połączenie z siecią Bitcoin.</numerusform>
+            <numerusform>%n aktywnych połączeń z siecią Bitcoin.</numerusform>
+            <numerusform>%n aktywnych połączeń z siecią Bitcoin.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Kliknij po więcej funkcji.</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">Wyświetl połączenia</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">Wyłącz aktywność sieciową</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">Włącz aktywność sieciową</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">Błąd: %1</translation>
@@ -1254,6 +1500,30 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Copy amount</source>
         <translation type="unfinished">Kopiuj kwotę</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">Kopiuj adres</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiuj etykietę</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiuj kwotę</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Skopiuj &amp;ID transakcji oraz wyjściowy indeks</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">Zabl&amp;okuj niewydane</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">Odblok&amp;uj niewydane</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Skopiuj ilość</translation>
@@ -1331,7 +1601,24 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Create wallet warning</source>
         <translation type="unfinished">Ostrzeżenie przy tworzeniu portfela</translation>
     </message>
-    </context>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Nie można wyświetlić sygnatariuszy</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished"> Ładuj portfele</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Ładowanie portfeli...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1351,7 +1638,12 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
         <translation type="unfinished">Otwórz Portfel</translation>
     </message>
-    </context>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">Otwieranie portfela &lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+</context>
 <context>
     <name>WalletController</name>
     <message>
@@ -1425,6 +1717,14 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Descriptor Wallet</source>
         <translation type="unfinished">Portfel deskryptora</translation>
     </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Użyj zewnętrznego urządzenia podpisującego, takiego jak portfel sprzętowy. Najpierw skonfiguruj zewnętrzny skrypt podpisujący w preferencjach portfela.</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Zewnętrzny sygnatariusz</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">Stwórz</translation>
@@ -1433,7 +1733,12 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Compiled without sqlite support (required for descriptor wallets)</source>
         <translation type="unfinished">Skompilowano bez wsparcia sqlite (wymaganego dla deskryptorów potfeli)</translation>
     </message>
-    </context>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Skompilowany bez obsługi podpisywania zewnętrznego (wymagany do podpisywania zewnętrzengo)</translation>
+    </message>
+</context>
 <context>
     <name>EditAddressDialog</name>
     <message>
@@ -1514,6 +1819,18 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB dostępnej przestrzeni dyskowej </translation>
+    </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(z %1 GB potrzebnych)</translation>
+    </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(%1 GB potrzebnych na pełny łańcuch)</translation>
+    </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Co najmniej %1 GB danych, zostanie zapisane w tym katalogu, dane te będą przyrastały w czasie.</translation>
@@ -1526,9 +1843,9 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>(wystarcza do przywrócenia kopii zapasowych sprzed %n dnia)</numerusform>
+            <numerusform>(wystarcza do przywrócenia kopii zapasowych sprzed %n dni)</numerusform>
+            <numerusform>(wystarcza do przywrócenia kopii zapasowych sprzed %n dni)</numerusform>
         </translation>
     </message>
     <message>
@@ -1563,10 +1880,18 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
         <translation type="unfinished">Gdy naciśniesz OK, %1 zacznie się pobieranie i przetwarzanie całego %4 łańcucha bloków (%2GB) zaczynając od najwcześniejszych transakcji w %3 gdy %4 został uruchomiony.</translation>
     </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">Ogranicz przechowywanie łańcucha bloków do</translation>
+    </message>
     <message>
         <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
         <translation type="unfinished">Wyłączenie tej opcji spowoduje konieczność pobrania całego łańcucha bloków. Szybciej jest najpierw pobrać cały łańcuch a następnie go przyciąć (prune). Wyłącza niektóre zaawansowane funkcje.</translation>
     </message>
+    <message>
+        <source> GB</source>
+        <translation type="unfinished">GB</translation>
+    </message>
     <message>
         <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
         <translation type="unfinished">Wstępna synchronizacja jest bardzo wymagająca i może ujawnić wcześniej niezauważone problemy sprzętowe. Za każdym uruchomieniem %1 pobieranie będzie kontynuowane od miejsca w którym zostało zatrzymane.</translation>
@@ -1601,6 +1926,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
 </context>
 <context>
     <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1 się zamyka...</translation>
+    </message>
     <message>
         <source>Do not shut down the computer until this window disappears.</source>
         <translation type="unfinished">Nie wyłączaj komputera dopóki to okno nie zniknie.</translation>
@@ -1624,6 +1953,14 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Number of blocks left</source>
         <translation type="unfinished">Pozostało bloków</translation>
     </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">Nieznany...</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">obliczanie...</translation>
+    </message>
     <message>
         <source>Last block time</source>
         <translation type="unfinished">Czas ostatniego bloku</translation>
@@ -1652,7 +1989,11 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>%1 is currently syncing.  It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source>
         <translation type="unfinished">%1 jest w trakcie synchronizacji. Trwa pobieranie i weryfikacja nagłówków oraz bloków z sieci w celu uzyskania aktualnego stanu łańcucha.</translation>
     </message>
-    </context>
+    <message>
+        <source>Unknown. Syncing Headers (%1, %2%)…</source>
+        <translation type="unfinished">nieznany, Synchronizowanie nagłówków (1%1, 2%2%)</translation>
+    </message>
+</context>
 <context>
     <name>OpenURIDialog</name>
     <message>
@@ -1683,6 +2024,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>&amp;Start %1 on system login</source>
         <translation type="unfinished">Uruchamiaj %1 wraz z zalogowaniem do &amp;systemu</translation>
     </message>
+    <message>
+        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">Włączenie czyszczenia znacznie zmniejsza ilość miejsca na dysku wymaganego do przechowywania transakcji. Wszystkie bloki są nadal w pełni zweryfikowane. Przywrócenie tego ustawienia wymaga ponownego pobrania całego łańcucha bloków.</translation>
+    </message>
     <message>
         <source>Size of &amp;database cache</source>
         <translation type="unfinished">Wielkość bufora bazy &amp;danych</translation>
@@ -1731,14 +2076,44 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Cofnięcie tego ustawienia wymaga ponownego załadowania całego łańcucha bloków.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Maksymalny rozmiar pamięci podręcznej bazy danych. Większa pamięć podręczna może przyczynić się do szybszej synchronizacji, po której korzyści są mniej widoczne w większości przypadków użycia. Zmniejszenie rozmiaru pamięci podręcznej zmniejszy zużycie pamięci. Nieużywana pamięć mempool jest współdzielona dla tej pamięci podręcznej.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Ustaw liczbę wątków weryfikacji skryptu. Wartości ujemne odpowiadają liczbie rdzeni, które chcesz pozostawić systemowi.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = automatycznie, &lt;0 = zostaw tyle wolnych rdzeni)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Umożliwia tobie lub narzędziu innej firmy komunikowanie się z węzłem za pomocą wiersza polecenia i poleceń JSON-RPC.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Włącz serwer R&amp;PC</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">Portfel</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Czy ustawić opłatę odejmowaną od kwoty jako domyślną, czy nie.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Domyślnie odejmij opłatę od kwoty</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Ekspert</translation>
@@ -1755,6 +2130,28 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">Wydaj niepotwierdzoną re&amp;sztę</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Włącz ustawienia &amp;PSBT</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Czy wyświetlać opcje PSBT.</translation>
+    </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">Zewnętrzny sygnatariusz (np. portfel sprzętowy) </translation>
+    </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">&amp;Ścieżka zewnętrznego skryptu podpisującego</translation>
+    </message>
+    <message>
+        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
+        <translation type="unfinished">Pełna ścieżka do skryptu zgodnego z Bitcoin Core (np. C:\Downloads\hwi.exe lub /Users/you/Downloads/hwi.py). Uwaga: złośliwe oprogramowanie może ukraść Twoje monety!</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Automatycznie otwiera port klienta Bitcoin na routerze. Ta opcja dzieła tylko jeśli twój router wspiera UPnP i jest ono włączone.</translation>
@@ -1763,6 +2160,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">Mapuj port używając &amp;UPnP</translation>
     </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
+        <translation type="unfinished">Automatycznie otwiera port klienta Bitcoin w routerze. Działa jedynie wtedy, gdy router wspiera NAT-PMP i usługa ta jest włączona. Zewnętrzny port może być losowy.</translation>
+    </message>
     <message>
         <source>Map port using NA&amp;T-PMP</source>
         <translation type="unfinished">Mapuj port przy użyciu NA&amp;T-PMP</translation>
@@ -1839,6 +2240,14 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Wybierz podział jednostki pokazywany w interfejsie  oraz podczas wysyłania monet</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">Adresy URL stron trzecich (np. eksplorator bloków), które pojawiają się na karcie transakcji jako pozycje menu kontekstowego. %s w adresie URL jest zastępowane hashem transakcji. Wiele adresów URL jest oddzielonych pionową kreską |.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;Adresy URL transakcji stron trzecich</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Wybierz pokazywanie lub nie funkcji kontroli monet.</translation>
@@ -1851,6 +2260,14 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Use separate SOCKS&amp;5 proxy to reach peers via Tor onion services:</source>
         <translation type="unfinished">Użyj oddzielnego proxy SOCKS&amp;5 aby osiągnąć węzły w ukrytych usługach Tor:</translation>
     </message>
+    <message>
+        <source>Monospaced font in the Overview tab:</source>
+        <translation type="unfinished">Czcionka o stałej szerokości w zakładce Przegląd:</translation>
+    </message>
+    <message>
+        <source>closest matching "%1"</source>
+        <translation type="unfinished">najbliższy pasujący "%1"</translation>
+    </message>
     <message>
         <source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
         <translation type="unfinished">Opcje ustawione w tym oknie są nadpisane przez linię komend lub plik konfiguracyjny:</translation>
@@ -1859,6 +2276,11 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>&amp;Cancel</source>
         <translation type="unfinished">&amp;Anuluj</translation>
     </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Skompilowany bez obsługi podpisywania zewnętrznego (wymagany do podpisywania zewnętrzengo)</translation>
+    </message>
     <message>
         <source>default</source>
         <translation type="unfinished">domyślny</translation>
@@ -1889,6 +2311,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">Plik konfiguracyjny jest używany celem zdefiniowania zaawansowanych opcji nadpisujących ustawienia aplikacji okienkowej (GUI). Parametry zdefiniowane z poziomu linii poleceń nadpisują parametry określone w tym pliku.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Kontynuuj</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Anuluj</translation>
@@ -2003,6 +2429,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Copy to Clipboard</source>
         <translation type="unfinished">Kopiuj do schowka</translation>
     </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">Zapisz...</translation>
+    </message>
     <message>
         <source>Close</source>
         <translation type="unfinished">Zamknij</translation>
@@ -2015,6 +2445,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Nie udało się podpisać transakcji: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Nie można podpisywać danych wejściowych, gdy portfel jest zablokowany.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Nie udało się podpisać więcej wejść.</translation>
@@ -2043,6 +2477,11 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Save Transaction Data</source>
         <translation type="unfinished">Zapisz dane transakcji</translation>
     </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">Częściowo podpisana transakcja (binarna)</translation>
+    </message>
     <message>
         <source>PSBT saved to disk.</source>
         <translation type="unfinished">PSBT zapisane na dysk.</translation>
@@ -2079,6 +2518,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Transakcja ciągle oczekuje na podpis(y).</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Ale żaden portfel nie jest załadowany.)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Ale ten portfel nie może podipisać transakcji.)</translation>
@@ -2114,6 +2557,14 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
         <translation type="unfinished">'bitcoin://' nie jest poprawnym URI. Użyj 'bitcoin:'.</translation>
     </message>
+    <message>
+        <source>Cannot process payment request because BIP70 is not supported.
+Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
+If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source>
+        <translation type="unfinished">Nie można przetworzyć żądanie zapłaty poniewasz BIP70 nie jest obsługiwany.
+Ze względu na wady bezpieczeństwa w BIP70 jest zalecane ignorować wszelkich instrukcji od sprzedawcę dotyczących zmiany portfela.
+Jeśli pojawia się ten błąd, poproś sprzedawcę o podanie URI zgodnego z BIP21. </translation>
+    </message>
     <message>
         <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
         <translation type="unfinished">Nie można przeanalizować identyfikatora URI! Może to być spowodowane nieważnym adresem Bitcoin lub nieprawidłowymi parametrami URI.</translation>
@@ -2130,6 +2581,11 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <extracomment>Title of Peers Table column which contains the peer's User Agent string.</extracomment>
         <translation type="unfinished">Aplikacja kliencka</translation>
     </message>
+    <message>
+        <source>Peer</source>
+        <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
+        <translation type="unfinished">Rówieśnik</translation>
+    </message>
     <message>
         <source>Direction</source>
         <extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
@@ -2173,6 +2629,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
 </context>
 <context>
     <name>QRImageWidget</name>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">Zapi&amp;sz Obraz...</translation>
+    </message>
     <message>
         <source>&amp;Copy Image</source>
         <translation type="unfinished">&amp;Kopiuj obraz</translation>
@@ -2305,6 +2765,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Synced Blocks</source>
         <translation type="unfinished">Zsynchronizowane bloki</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Ostatnia Transakcja</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">Zmapowany autonomiczny system (ang. asmap) używany do dywersyfikacji wyboru węzłów.</translation>
@@ -2313,6 +2777,33 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Mapped AS</source>
         <translation type="unfinished">Zmapowany autonomiczny system (ang. asmap)</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Czy przekazujemy adresy do tego peera.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Adres Przekaźnika</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Całkowita liczba przetworzonych adresów, z wyłączeniem tych usuniętych z powodu ograniczenia szybkości.</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Przetworzone Adresy</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Całkowita liczba odrzuconych adresów z powodu wskaźnika-ograniczeń.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Wskaźnik-Ograniczeń Adresów</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Aplikacja kliencka</translation>
@@ -2341,6 +2832,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Permissions</source>
         <translation type="unfinished">Uprawnienia</translation>
     </message>
+    <message>
+        <source>Direction/Type</source>
+        <translation type="unfinished">Kierunek/Rodzaj</translation>
+    </message>
     <message>
         <source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
         <translation type="unfinished">Protokół sieciowy używany przez ten węzeł: IPv4, IPv6, Onion, I2P, lub CJDNS.</translation>
@@ -2349,14 +2844,39 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Services</source>
         <translation type="unfinished">Usługi</translation>
     </message>
+    <message>
+        <source>Whether the peer requested us to relay transactions.</source>
+        <translation type="unfinished">Czy peer poprosił nas o przekazanie transakcji.</translation>
+    </message>
+    <message>
+        <source>Wants Tx Relay</source>
+        <translation type="unfinished">Chce przekaźnik Tx</translation>
+    </message>
+    <message>
+        <source>High bandwidth BIP152 compact block relay: %1</source>
+        <translation type="unfinished">Kompaktowy przekaźnik blokowy BIP152 o dużej przepustowości: 1 %1</translation>
+    </message>
+    <message>
+        <source>High Bandwidth</source>
+        <translation type="unfinished">Wysoka Przepustowość</translation>
+    </message>
     <message>
         <source>Connection Time</source>
         <translation type="unfinished">Czas połączenia</translation>
     </message>
+    <message>
+        <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
+        <translation type="unfinished">Czas, który upłynął od otrzymania od tego elementu równorzędnego nowego bloku przechodzącego wstępne sprawdzanie ważności.</translation>
+    </message>
     <message>
         <source>Last Block</source>
         <translation type="unfinished">Ostatni Blok</translation>
     </message>
+    <message>
+        <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
+        <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
+        <translation type="unfinished">Czas, który upłynął od otrzymania nowej transakcji przyjętej do naszej pamięci od tego partnera.</translation>
+    </message>
     <message>
         <source>Last Send</source>
         <translation type="unfinished">Ostatnio wysłano</translation>
@@ -2426,6 +2946,48 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <extracomment>Explanatory text for an inbound peer connection.</extracomment>
         <translation type="unfinished">Przychodzące: zainicjowane przez węzeł</translation>
     </message>
+    <message>
+        <source>Outbound Full Relay: default</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
+        <translation type="unfinished">Pełny przekaźnik wychodzący: domyślnie</translation>
+    </message>
+    <message>
+        <source>Outbound Block Relay: does not relay transactions or addresses</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">Outbound Block Relay: nie przekazuje transakcji ani adresów</translation>
+    </message>
+    <message>
+        <source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
+        <extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
+        <translation type="unfinished">Outbound Manual: dodano przy użyciu opcji konfiguracyjnych RPC 1%1 lub 2%2/3%3</translation>
+    </message>
+    <message>
+        <source>Outbound Feeler: short-lived, for testing addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Outbound Feeler: krótkotrwały, do testowania adresów</translation>
+    </message>
+    <message>
+        <source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
+        <translation type="unfinished">Pobieranie adresu wychodzącego: krótkotrwałe, do pozyskiwania adresów</translation>
+    </message>
+    <message>
+        <source>we selected the peer for high bandwidth relay</source>
+        <translation type="unfinished">wybraliśmy peera dla przekaźnika o dużej przepustowości</translation>
+    </message>
+    <message>
+        <source>the peer selected us for high bandwidth relay</source>
+        <translation type="unfinished">peer wybrał nas do przekaźnika o dużej przepustowości</translation>
+    </message>
+    <message>
+        <source>no high bandwidth relay selected</source>
+        <translation type="unfinished">nie wybrano przekaźnika o dużej przepustowości</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">Kopiuj adres</translation>
+    </message>
     <message>
         <source>&amp;Disconnect</source>
         <translation type="unfinished">&amp;Rozłącz</translation>
@@ -2434,6 +2996,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>1 &amp;hour</source>
         <translation type="unfinished">1 &amp;godzina</translation>
     </message>
+    <message>
+        <source>1 d&amp;ay</source>
+        <translation type="unfinished">1 dzień</translation>
+    </message>
     <message>
         <source>1 &amp;week</source>
         <translation type="unfinished">1 &amp;tydzień</translation>
@@ -2442,6 +3008,11 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;rok</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">Skopiuj IP/Maskę Sieci</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Odblokuj</translation>
@@ -2458,6 +3029,11 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Executing command using "%1" wallet</source>
         <translation type="unfinished">Wykonuję komendę używając portfela "%1"</translation>
     </message>
+    <message>
+        <source>Executing…</source>
+        <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
+        <translation type="unfinished">Wykonuję...</translation>
+    </message>
     <message>
         <source>via %1</source>
         <translation type="unfinished">przez %1</translation>
@@ -2565,6 +3141,22 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Copy &amp;URI</source>
         <translation type="unfinished">Kopiuj &amp;URI</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">Kopiuj adres</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiuj etykietę</translation>
+    </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">Skopiuj wiado&amp;mość</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiuj kwotę</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">Nie można było odblokować portfela.</translation>
@@ -2576,6 +3168,10 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
 </context>
 <context>
     <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Request payment to …</source>
+        <translation type="unfinished">Żądaj płatności do ...</translation>
+    </message>
     <message>
         <source>Address:</source>
         <translation type="unfinished">Adres:</translation>
@@ -2604,6 +3200,18 @@ Podpisywanie jest możliwe tylko z adresami typu 'legacy'.</translation>
         <source>Copy &amp;Address</source>
         <translation type="unfinished">Kopiuj &amp;adres</translation>
     </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">Zweryfikuj</translation>
+    </message>
+    <message>
+        <source>Verify this address on e.g. a hardware wallet screen</source>
+        <translation type="unfinished">Zweryfikuj ten adres np. na ekranie portfela sprzętowego</translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">Zapi&amp;sz Obraz...</translation>
+    </message>
     <message>
         <source>Payment information</source>
         <translation type="unfinished">Informacje o płatności</translation>
@@ -2735,14 +3343,30 @@ Korzystanie z opłaty domyślnej może skutkować wysłaniem transakcji, która
         <source>Clear all fields of the form.</source>
         <translation type="unfinished">Wyczyść wszystkie pola formularza.</translation>
     </message>
+    <message>
+        <source>Inputs…</source>
+        <translation type="unfinished">Wejścia…</translation>
+    </message>
     <message>
         <source>Dust:</source>
         <translation type="unfinished">Pył:</translation>
     </message>
+    <message>
+        <source>Choose…</source>
+        <translation type="unfinished">Wybierz...</translation>
+    </message>
     <message>
         <source>Hide transaction fee settings</source>
         <translation type="unfinished">Ukryj ustawienia opłat transakcyjnych</translation>
     </message>
+    <message>
+        <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size.
+
+Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satoshis per kvB" for a transaction size of 500 virtual bytes (half of 1 kvB) would ultimately yield a fee of only 50 satoshis.</source>
+        <translation type="unfinished">Określ niestandardową opłatę za kB (1000 bajtów) wirtualnego rozmiaru transakcji.
+
+Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za kB" w przypadku transakcji o wielkości 500 bajtów (połowa 1 kB) ostatecznie da opłatę w wysokości tylko 50 satoshi.</translation>
+    </message>
     <message>
         <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
         <translation type="unfinished">Gdy ilość transakcji jest mniejsza niż ilość miejsca w bloku, górnicy i węzły przekazujące wymagają minimalnej opłaty. Zapłata tylko tej wartości jest dopuszczalna, lecz może skutkować transakcją która nigdy nie zostanie potwierdzona w sytuacji, gdy ilość transakcji przekroczy przepustowość sieci.</translation>
@@ -2751,6 +3375,10 @@ Korzystanie z opłaty domyślnej może skutkować wysłaniem transakcji, która
         <source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
         <translation type="unfinished">Zbyt niska opłata może spowodować, że transakcja nigdy nie zostanie zatwierdzona (przeczytaj podpowiedź)</translation>
     </message>
+    <message>
+        <source>(Smart fee not initialized yet. This usually takes a few blocks…)</source>
+        <translation type="unfinished">(Sprytne opłaty nie są jeszcze zainicjowane. Trwa to zwykle kilka bloków...)</translation>
+    </message>
     <message>
         <source>Confirmation time target:</source>
         <translation type="unfinished">Docelowy czas potwierdzenia:</translation>
@@ -2811,6 +3439,20 @@ Korzystanie z opłaty domyślnej może skutkować wysłaniem transakcji, która
         <source>%1 (%2 blocks)</source>
         <translation type="unfinished">%1 (%2 bloków)</translation>
     </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">Podpisz na urządzeniu</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">Najpierw podłącz swój sprzętowy portfel.</translation>
+    </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Ustaw ścieżkę zewnętrznego skryptu podpisującego w Opcje -&gt; Portfel</translation>
+    </message>
     <message>
         <source>Cr&amp;eate Unsigned</source>
         <translation type="unfinished">&amp;Utwórz niepodpisaną transakcję</translation>
@@ -2831,18 +3473,41 @@ Korzystanie z opłaty domyślnej może skutkować wysłaniem transakcji, która
         <source>%1 to %2</source>
         <translation type="unfinished">%1 do %2</translation>
     </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">Aby przejrzeć listę odbiorców kliknij "Pokaż szczegóły..."</translation>
+    </message>
     <message>
         <source>Sign failed</source>
         <translation type="unfinished">Podpisywanie nie powiodło się.</translation>
     </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Nie znaleziono zewnętrznego sygnatariusza </translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Błąd zewnętrznego sygnatariusza </translation>
+    </message>
     <message>
         <source>Save Transaction Data</source>
         <translation type="unfinished">Zapisz dane transakcji</translation>
     </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">Częściowo podpisana transakcja (binarna)</translation>
+    </message>
     <message>
         <source>PSBT saved</source>
         <translation type="unfinished">Zapisano PSBT</translation>
     </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">Zewnętrzny balans:</translation>
+    </message>
     <message>
         <source>or</source>
         <translation type="unfinished">lub</translation>
@@ -2856,6 +3521,16 @@ Korzystanie z opłaty domyślnej może skutkować wysłaniem transakcji, która
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">Proszę przejrzeć propozycję transakcji. Zostanie utworzona częściowo podpisana transakcja (ang. PSBT), którą można skopiować, a następnie podpisać np. offline z portfelem %1 lub z innym portfelem zgodnym z PSBT.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Czy chcesz utworzyć tę transakcję?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Proszę przejrzeć propozycję transakcji. Zostanie utworzona częściowo podpisana transakcja (ang. PSBT), którą można skopiować, a następnie podpisać np. offline z portfelem %1 lub z innym portfelem zgodnym z PSBT.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -2916,9 +3591,9 @@ Korzystanie z opłaty domyślnej może skutkować wysłaniem transakcji, która
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Szacuje się, że potwierdzenie rozpocznie się w %n bloku.</numerusform>
+            <numerusform>Szacuje się, że potwierdzenie rozpocznie się w %n bloków.</numerusform>
+            <numerusform>Szacuje się, że potwierdzenie rozpocznie się w %n bloków.</numerusform>
         </translation>
     </message>
     <message>
@@ -3178,7 +3853,11 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
         <source>(press q to shutdown and continue later)</source>
         <translation type="unfinished">(naciśnij q by zamknąć i kontynuować póżniej)</translation>
     </message>
-    </context>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">wciśnij q aby wyłączyć</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -3506,6 +4185,55 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw
         <source>Min amount</source>
         <translation type="unfinished">Minimalna kwota</translation>
     </message>
+    <message>
+        <source>Range…</source>
+        <translation type="unfinished">Zakres...</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">Kopiuj adres</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Kopiuj etykietę</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopiuj kwotę</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">Skopiuj &amp;ID transakcji</translation>
+    </message>
+    <message>
+        <source>Copy &amp;raw transaction</source>
+        <translation type="unfinished">Kopiuj &amp;raw transakcje</translation>
+    </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">Skopiuj pełne &amp;detale transakcji</translation>
+    </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">Wyświetl &amp;szczegóły transakcji</translation>
+    </message>
+    <message>
+        <source>Increase transaction &amp;fee</source>
+        <translation type="unfinished">Zwiększ opłatę transakcji</translation>
+    </message>
+    <message>
+        <source>A&amp;bandon transaction</source>
+        <translation type="unfinished">Porzuć transakcję</translation>
+    </message>
+    <message>
+        <source>&amp;Edit address label</source>
+        <translation type="unfinished">Wy&amp;edytuj adres etykiety</translation>
+    </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Wyświetl w %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Eksport historii transakcji</translation>
@@ -3634,6 +4362,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
         <source>New fee:</source>
         <translation type="unfinished">Nowa opłata:</translation>
     </message>
+    <message>
+        <source>Warning: This may pay the additional fee by reducing change outputs or adding inputs, when necessary. It may add a new change output if one does not already exist. These changes may potentially leak privacy.</source>
+        <translation type="unfinished">Ostrzeżenie: Może to spowodować uiszczenie dodatkowej opłaty poprzez zmniejszenie zmian wyjść lub dodanie danych wejściowych, jeśli jest to konieczne. Może dodać nowe wyjście zmiany, jeśli jeszcze nie istnieje. Te zmiany mogą potencjalnie spowodować utratę prywatności.</translation>
+    </message>
     <message>
         <source>Confirm fee bump</source>
         <translation type="unfinished">Potwierdź zwiększenie opłaty</translation>
@@ -3654,6 +4386,10 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
         <source>Could not commit transaction</source>
         <translation type="unfinished">Nie można zatwierdzić transakcji</translation>
     </message>
+    <message>
+        <source>Can't display address</source>
+        <translation type="unfinished">Nie można wyświetlić adresu</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">domyślny portfel</translation>
@@ -3673,6 +4409,11 @@ Przejdź do Plik &gt; Otwórz Portfel aby wgrać portfel.
         <source>Backup Wallet</source>
         <translation type="unfinished">Kopia zapasowa portfela</translation>
     </message>
+    <message>
+        <source>Wallet Data</source>
+        <extracomment>Name of the wallet data file format.</extracomment>
+        <translation type="unfinished">Informacje portfela</translation>
+    </message>
     <message>
         <source>Backup Failed</source>
         <translation type="unfinished">Nie udało się wykonać kopii zapasowej</translation>
diff --git a/src/qt/locale/bitcoin_pt.ts b/src/qt/locale/bitcoin_pt.ts
index 4e141c66a24..fdafa2f6459 100644
--- a/src/qt/locale/bitcoin_pt.ts
+++ b/src/qt/locale/bitcoin_pt.ts
@@ -165,7 +165,7 @@ Assinar só é possível com endereços do tipo "legado".</translation>
     </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
-        <translation type="unfinished">Aviso: se encriptar a sua carteira e perder a sua frase de segurnça, &lt;b&gt;PERDERÁ TODOS OS SEUS BITCOINS&lt;/b&gt;!</translation>
+        <translation type="unfinished">Aviso: se encriptar a sua carteira e perder a sua frase de segurança, &lt;b&gt;PERDERÁ TODAS AS SUAS BITCOINS&lt;/b&gt;!</translation>
     </message>
     <message>
         <source>Are you sure you wish to encrypt your wallet?</source>
@@ -251,7 +251,7 @@ Assinar só é possível com endereços do tipo "legado".</translation>
     </message>
     <message>
         <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
-        <translation type="unfinished">Um erro fatal ocorreu. %1 não pode mais continuar de maneira segura e será terminada.</translation>
+        <translation type="unfinished">Ocorreu um erro fatal. %1 não pode continuar em segurança e irá terminar.</translation>
     </message>
     <message>
         <source>Internal error</source>
@@ -330,6 +330,11 @@ Assinar só é possível com endereços do tipo "legado".</translation>
         <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
         <translation type="unfinished">Retransmissão de Blocos</translation>
     </message>
+    <message>
+        <source>Feeler</source>
+        <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Antena</translation>
+    </message>
     <message>
         <source>Address Fetch</source>
         <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
@@ -346,36 +351,36 @@ Assinar só é possível com endereços do tipo "legado".</translation>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n segundo</numerusform>
+            <numerusform>%n segundos</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minuto</numerusform>
+            <numerusform>%n minutos</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hora</numerusform>
+            <numerusform>%n horas</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n dia</numerusform>
+            <numerusform>%n dias</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n semana</numerusform>
+            <numerusform>%n semanas</numerusform>
         </translation>
     </message>
     <message>
@@ -385,8 +390,8 @@ Assinar só é possível com endereços do tipo "legado".</translation>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n ano</numerusform>
+            <numerusform>%n anos</numerusform>
         </translation>
     </message>
     </context>
@@ -753,10 +758,18 @@ deve ser fornecido.</translation>
         <source>Loading wallet…</source>
         <translation type="unfinished">A carregar a carteira…</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Falta a quantia</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Necessário especificar uma porta com -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Sem endereços disponíveis</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Sem servidor de proxy especificado. Use -proxy=&lt;ip&gt; ou -proxy=&lt;ip:port&gt;.</translation>
@@ -883,6 +896,10 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">A transação dever pelo menos um destinatário</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Transação precisa de uma mudança de endereço, mas nós não a podemos gerar.</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">Transação grande demais</translation>
@@ -1162,8 +1179,8 @@ A pasta de blocos especificados "%s" não existe.</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Processado %n bloco do histórico de transações.</numerusform>
+            <numerusform>Processados %n blocos do histórico de transações.</numerusform>
         </translation>
     </message>
     <message>
@@ -1282,12 +1299,20 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <source>%1 client</source>
         <translation type="unfinished">Cliente %1</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">Ocultar</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">Mo&amp;strar</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n ligação ativa à rede Bitcoin.</numerusform>
+            <numerusform>%n ligações ativas à rede Bitcoin.</numerusform>
         </translation>
     </message>
     <message>
@@ -1783,6 +1808,10 @@ A pasta de blocos especificados "%s" não existe.</translation>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB de espaço disponível</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(de %1 GB necessários)</translation>
@@ -1803,8 +1832,8 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(suficiente para restaurar backups com %n dia de antiguidade)</numerusform>
+            <numerusform>(suficiente para restaurar backups com %n dias de antiguidade)</numerusform>
         </translation>
     </message>
     <message>
@@ -2040,14 +2069,39 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
         <translation type="unfinished">Tamanho máximo da cache da base de dados. Uma cache maior pode contribuir para uma sincronização mais rápida, a partir do qual os benefícios são menos visíveis. Ao baixar o tamanho da cache irá diminuir a utilização de memória. Memória da mempool não usada será partilhada com esta cache.</translation>
     </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Define o número de threads do script de verificação. Valores negativos correspondem ao número de núcleos que deseja deixar livres para o sistema.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = automático, &lt;0 = deixar essa quantidade de núcleos livre)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Isto permite-lhe comunicar a si ou a ferramentas de terceiros com o nó através da linha de comandos e comandos JSON-RPC.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Ativar servidor R&amp;PC</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">C&amp;arteira</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Mostrar a quantia com a taxa já subtraída, por padrão.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Subtrair &amp;taxa da quantia por padrão</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Técnicos</translation>
@@ -2064,6 +2118,16 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Gastar troco não confirmado</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Ativar os controlos &amp;PSBT</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Mostrar os controlos PSBT.</translation>
+    </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
         <translation type="unfinished">Signatário externo (ex: carteira física)</translation>
@@ -2084,6 +2148,10 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">Mapear porta usando &amp;UPnP</translation>
     </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
+        <translation type="unfinished">Abrir a porta do cliente bitcoin automaticamente no seu router. Isto só funciona se o seu router suportar NAT-PMP e este se encontrar ligado. A porta externa poderá ser aleatória.</translation>
+    </message>
     <message>
         <source>Map port using NA&amp;T-PMP</source>
         <translation type="unfinished">Mapear porta usando &amp;NAT-PMP</translation>
@@ -2164,6 +2232,14 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Escolha a unidade da subdivisão predefinida para ser mostrada na interface e quando enviar as moedas.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">URLs de outrem (ex. um explorador de blocos) que aparece no separador de transações como itens do menu de contexto. %s do URL é substituído pela hash de transação. Múltiplos URLs são separados pela barra vertical I.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">URLs de transação de &amp;terceiros</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Escolha se deve mostrar as funcionalidades de controlo de moedas ou não.</translation>
@@ -2180,6 +2256,14 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <source>Monospaced font in the Overview tab:</source>
         <translation type="unfinished">Fonte no painel de visualização:</translation>
     </message>
+    <message>
+        <source>embedded "%1"</source>
+        <translation type="unfinished">embutido "%1"</translation>
+    </message>
+    <message>
+        <source>closest matching "%1"</source>
+        <translation type="unfinished">resultado mais aproximado "%1"</translation>
+    </message>
     <message>
         <source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
         <translation type="unfinished">As opções nesta janela são substituídas pela linha de comandos ou no ficheiro de configuração:</translation>
@@ -2223,6 +2307,10 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">O ficheiro de configuração é usado para especificar opções de utilizador avançado, que sobrescrevem as configurações do interface gráfico. Adicionalmente, qualquer opção da linha de comandos vai sobrescrever este ficheiro de configuração.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Continuar</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Cancelar</translation>
@@ -2353,6 +2441,10 @@ A pasta de blocos especificados "%s" não existe.</translation>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Falha ao assinar transação: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Não é possível assinar entradas enquanto a carteira está trancada.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Não pode assinar mais nenhuma entrada.</translation>
@@ -2427,6 +2519,10 @@ ID transação: %1</translation>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Transação continua precisando de assinatura(s).</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Mas nenhuma carteira está carregada)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Porém esta carteira não pode assinar transações.)</translation>
@@ -2462,6 +2558,14 @@ ID transação: %1</translation>
         <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
         <translation type="unfinished">'bitcoin://' não é um URI válido. Utilize 'bitcoin:'.</translation>
     </message>
+    <message>
+        <source>Cannot process payment request because BIP70 is not supported.
+Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
+If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source>
+        <translation type="unfinished">Não é possível processar o pagamento pedido porque o BIP70 não é suportado.
+Devido a falhas de segurança no BIP70, é recomendado que todas as instruçōes ao comerciante para mudar de carteiras sejam ignorada.
+Se está a receber este erro, deverá pedir ao comerciante para fornecer um URI compatível com BIP21.</translation>
+    </message>
     <message>
         <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
         <translation type="unfinished">URI não foi lido corretamente! Isto pode ser causado por um endereço Bitcoin inválido ou por parâmetros URI malformados.</translation>
@@ -2662,6 +2766,10 @@ ID transação: %1</translation>
         <source>Synced Blocks</source>
         <translation type="unfinished">Blocos Sincronizados</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Última Transação</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">O sistema autónomo mapeado usado para diversificar a seleção de pares.</translation>
@@ -2670,6 +2778,33 @@ ID transação: %1</translation>
         <source>Mapped AS</source>
         <translation type="unfinished">Mapeado como</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Endereços são retransmitidos para este nó.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Retransmissão de endereços</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Quantidade de endereços processados, excluindo os abandonados pela limitação de taxa.</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Endereços Processados</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Quantidade de endereços abandonados pela limitação de taxa.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Endereços com limite de taxa</translation>
+    </message>
     <message>
         <source>Node window</source>
         <translation type="unfinished">Janela do nó</translation>
@@ -3280,6 +3415,11 @@ Para mais informação acerca da utilização desta consola, escreva %6.
         <source>Connect your hardware wallet first.</source>
         <translation type="unfinished">Por favor conecte a sua wallet física primeiro.</translation>
     </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Defina o caminho do script do assinante externo em Opções -&gt; Carteira</translation>
+    </message>
     <message>
         <source>Cr&amp;eate Unsigned</source>
         <translation type="unfinished">Criar não assinado</translation>
@@ -3662,6 +3802,13 @@ Para mais informação acerca da utilização desta consola, escreva %6.
         <translation type="unfinished">Mensagem verificada.</translation>
     </message>
 </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">Carregue q para desligar</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -4012,10 +4159,23 @@ Para mais informação acerca da utilização desta consola, escreva %6.
         <source>Copy transaction &amp;ID</source>
         <translation type="unfinished">Copiar Id. da transação</translation>
     </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">Copie toda a transação &amp;details</translation>
+    </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">Mo&amp;strar detalhes da transação</translation>
+    </message>
     <message>
         <source>&amp;Edit address label</source>
         <translation type="unfinished">&amp;Editar etiqueta do endereço</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Mostrar em %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Exportar Histórico de Transações</translation>
diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts
index e32f4fbfd02..4a7c9a2bbb4 100644
--- a/src/qt/locale/bitcoin_pt_BR.ts
+++ b/src/qt/locale/bitcoin_pt_BR.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Clique com o botão direito para editar endereço ou etiqueta</translation>
+        <translation type="unfinished">Clique com o botão direito para editar o endereço ou a etiqueta</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -27,7 +27,7 @@
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
-        <translation type="unfinished">Excluir os endereços selecionados da lista</translation>
+        <translation type="unfinished">Excluir os endereços atualmente selecionados da lista</translation>
     </message>
     <message>
         <source>Enter address or label to search</source>
@@ -35,7 +35,7 @@
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">Exportar os dados do separador atual para um ficheiro</translation>
+        <translation type="unfinished">Exportar os dados do separador atual para um arquivo</translation>
     </message>
     <message>
         <source>&amp;Export</source>
@@ -311,36 +311,36 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%nsegundo</numerusform>
+            <numerusform>%n segundos</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minuto</numerusform>
+            <numerusform>%n minutos</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hora</numerusform>
+            <numerusform>%n horas</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n dia</numerusform>
+            <numerusform>%n dias</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n semana</numerusform>
+            <numerusform>%n semanas</numerusform>
         </translation>
     </message>
     <message>
@@ -350,8 +350,8 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n ano</numerusform>
+            <numerusform>%n anos</numerusform>
         </translation>
     </message>
     </context>
@@ -389,6 +389,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Erro ao ler arquivo %s! Todas as chaves privadas foram lidas corretamente, mas os dados de transação ou o livro de endereços podem estar faltando ou incorretos.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Erro ao ler %s! Dados de transações podem estar incorretos ou faltando. Reescaneando a carteira.</translation>
+    </message>
     <message>
         <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
         <translation type="unfinished">Erro: A escuta de conexões de entrada falhou (vincular retornou erro %s)</translation>
@@ -401,6 +405,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">Valor inválido para -maxtxfee=&lt;valor&gt;: '%s' (precisa ser pelo menos a taxa de minrelay de %s para prevenir que a transação nunca seja confirmada)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">O arquivo peers.dat (%s) está corrompido ou inválido. Se você acredita se tratar de um bug, por favor reporte para %s. Como solução, você pode mover, renomear ou deletar (%s) para um novo ser criado na próxima inicialização</translation>
+    </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
         <translation type="unfinished">Mais de um endereço onion associado é fornecido. Usando %s para automaticamento criar serviço onion Tor.</translation>
@@ -429,6 +437,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">O banco de dados de blocos contém um bloco que parece ser do futuro. Isso pode ser devido à data e hora do seu computador estarem configuradas incorretamente. Apenas reconstrua o banco de dados de blocos se você estiver certo de que a data e hora de seu computador estão corretas.</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">O banco de dados de índices de bloco contém um 'txindex' antigo. Faça um -reindex completo para liberar espaço em disco, se desejar. Este erro não será exibido novamente.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">A quantia da transação é muito pequena para mandar depois de deduzida a taxa</translation>
@@ -493,6 +505,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">Não foi possível encontrar o endereço de -%s: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">Não é possível definir -forcednsseed para true quando -dnsseed for false.</translation>
+    </message>
     <message>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">Não pode definir -peerblockfilters sem -blockfilterindex.</translation>
@@ -501,6 +517,30 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Não foi possível escrever no diretório '%s': verifique as permissões.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">O processo de atualização do -txindex iniciado por uma versão anterior não foi concluído. Reinicie com a versão antiga ou faça um -reindex completo.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s solicitou abertura da porta %u. Esta porta é considerada "ruim" e é improvável que outros usuários do Bitcoin Core conseguirão se conectar. Veja doc/p2p-bad-ports.md para detalhes e uma lista completa.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Não é possível fornecer conexões específicas e ter addrman procurando conexões ao mesmo tempo.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Erro ao abrir %s: Carteira com assinador externo. Não foi compilado suporte para assinadores externos</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Impossível renomear o arquivo peers.dat (inválido). Por favor mova-o ou delete-o e tente novamente.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Conexões de saída restritas ao Tor (-onlynet=onion), porém o proxy necessário para acessão o Tor não foi especificado (no -proxy= and no -onion= given) ou foi proibido (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">A configuração %s somente é aplicada na rede %s quando na sessão [%s].</translation>
@@ -577,6 +617,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Error: Keypool ran out, please call keypoolrefill first</source>
         <translation type="unfinished">Keypool exaurida, por gentileza execute keypoolrefill primeiro</translation>
     </message>
+    <message>
+        <source>Error: Unable to parse version %u as a uint32_t</source>
+        <translation type="unfinished">Erro: Impossível analisar versão %u como uint32_t</translation>
+    </message>
     <message>
         <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
         <translation type="unfinished">Falha ao escutar em qualquer porta. Use -listen=0 se você quiser isso.</translation>
@@ -609,6 +653,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">O teste de integridade de inicialização falhou. O %s está sendo desligado.</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Entrada não encontrada ou já gasta</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Saldo insuficiente</translation>
@@ -661,6 +709,14 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Loading wallet…</source>
         <translation type="unfinished">Carregando carteira...</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Faltando quantia</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">Não há dados suficientes para estimar o tamanho da transação</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Necessário informar uma porta com -whitebind: '%s'</translation>
@@ -781,6 +837,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">As quantidades nas transações não podem ser negativas.</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Endereço de troco da transação fora da faixa</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">A transação demorou muito na memória</translation>
@@ -817,6 +877,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Unable to generate keys</source>
         <translation type="unfinished">Não foi possível gerar chaves</translation>
     </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">Impossível analisar -maxuploadtarget: '%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Não foi possível iniciar o servidor HTTP. Veja o log de depuração para detaihes.</translation>
@@ -987,7 +1051,7 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     </message>
     <message>
         <source>&amp;Load PSBT from file…</source>
-        <translation type="unfinished">&amp;Carregar 'PSBT' do arquivo...</translation>
+        <translation type="unfinished">&amp;Carregar PSBT do arquivo...</translation>
     </message>
     <message>
         <source>Open &amp;URI…</source>
@@ -1064,8 +1128,8 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n bloco processado do histórico de transação.</numerusform>
+            <numerusform>%n blocos processados do histórico de transação.</numerusform>
         </translation>
     </message>
     <message>
@@ -1186,18 +1250,18 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     </message>
     <message>
         <source>&amp;Hide</source>
-        <translation type="unfinished">&amp;Esconder</translation>
+        <translation type="unfinished">E&amp;sconder</translation>
     </message>
     <message>
         <source>S&amp;how</source>
-        <translation type="unfinished">S&amp;como</translation>
+        <translation type="unfinished">Mo&amp;strar</translation>
     </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n conexão ativa na rede bitcoin.</numerusform>
+            <numerusform>%n conexões ativas na rede bitcoin.</numerusform>
         </translation>
     </message>
     <message>
@@ -1208,7 +1272,7 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     <message>
         <source>Show Peers tab</source>
         <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
-        <translation type="unfinished">Mostrar abas De pares.</translation>
+        <translation type="unfinished">Mostra aba de Pares</translation>
     </message>
     <message>
         <source>Disable network activity</source>
@@ -1680,8 +1744,8 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(suficiente para restaurar backups de %n dia atrás)</numerusform>
+            <numerusform>(suficiente para restaurar backups de %n dias atrás)</numerusform>
         </translation>
     </message>
     <message>
@@ -1935,7 +1999,7 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     <message>
         <source>Whether to set subtract fee from amount as default or not.</source>
         <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
-        <translation type="unfinished">Se deve definir subtrair a taxa do montante como padrão ou não.</translation>
+        <translation type="unfinished">Mostra a quantia com a taxa já subtraída.</translation>
     </message>
     <message>
         <source>Subtract &amp;fee from amount by default</source>
@@ -1966,7 +2030,7 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     <message>
         <source>Whether to show PSBT controls.</source>
         <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
-        <translation type="unfinished">Se os controles PSBT devem ser exibidos.</translation>
+        <translation type="unfinished">Mostrar os controles de PSBT (Transação de Bitcoin Parcialmente Assinada).</translation>
     </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
@@ -2044,6 +2108,14 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Escolha a unidade de subdivisão padrão para exibição na interface ou quando enviando moedas.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">URLs de terceiros (exemplo: explorador de blocos) que aparecem na aba de transações como itens do menu de contexto. %s na URL é substituido pela hash da transação. Múltiplas URLs são separadas pela barra vertical |.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">URLs de transação de &amp;terceiros</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Mostrar ou não opções de controle da moeda.</translation>
@@ -2228,6 +2300,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Falhou ao assinar transação: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Não é possível assinar entradas enquanto a carteira está trancada.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Não foi possível assinar mais nenhuma entrada.</translation>
@@ -2535,16 +2611,39 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
     </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
-        <translation type="unfinished">O sistema autônomo delineado usado para a diversificação de seleção de nós.</translation>
+        <translation type="unfinished">O sistema autônomo de mapeamento usado para a diversificação de seleção de nós.</translation>
     </message>
     <message>
         <source>Mapped AS</source>
         <translation type="unfinished">Mapeado como</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Endereços são retransmitidos para este nó.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Retransmissão de endereços</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Quantidade de endereços processados, excluindo os abandonados pela limitação de taxa.</translation>
+    </message>
     <message>
         <source>Addresses Processed</source>
         <translation type="unfinished">Endereços Processados</translation>
     </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Quantidade de endereços abandonados pela limitação de taxa.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Endereços com limite de taxa</translation>
+    </message>
     <message>
         <source>Node window</source>
         <translation type="unfinished">Janela do Nó</translation>
@@ -2573,6 +2672,10 @@ Somente é possível assinar com endereços do tipo 'legado'.</translation>
         <source>Services</source>
         <translation type="unfinished">Serviços</translation>
     </message>
+    <message>
+        <source>Whether the peer requested us to relay transactions.</source>
+        <translation type="unfinished">O nó solicita retransmissão de transações.</translation>
+    </message>
     <message>
         <source>Connection Time</source>
         <translation type="unfinished">Tempo de conexão</translation>
@@ -3074,7 +3177,7 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kvB" para
     </message>
     <message>
         <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
-        <translation type="unfinished">Cria uma Transação de Bitcoin Parcialmente Assinada (PSBT) para usar com ex: uma carteira %1 offline, ou uma PSBT-compatível hardware wallet.</translation>
+        <translation type="unfinished">Cria uma Transação de Bitcoin Parcialmente Assinada (PSBT) para usar com, por exemplo, uma carteira %1 offline ou uma carteira física compatível com PSBTs.</translation>
     </message>
     <message>
         <source> from wallet '%1'</source>
@@ -3115,13 +3218,18 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kvB" para
     <message>
         <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
-        <translation type="unfinished">Por favor, reveja sua proposta de transação. Será produzido uma Transação de Bitcoin Parcialmente Assinada (PSBT) que você pode copiar e assinar com ex: uma carteira %1 offline, ou uma PSBT-compatível hardware wallet.</translation>
+        <translation type="unfinished">Por favor, revise a transação. Será produzido uma Transação de Bitcoin Parcialmente Assinada (PSBT) que você pode copiar e assinar com, por exemplo, uma carteira %1 offline, ou uma carteira física compatível com PSBTs.</translation>
     </message>
     <message>
         <source>Do you want to create this transaction?</source>
         <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
         <translation type="unfinished">Deseja criar esta transação?</translation>
     </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Por favor, revise a transação. Você pode assinar e enviar a transação ou criar uma Transação de Bitcoin Parcialmente Assinada (PSBT), que você pode copiar e assinar com, por exemplo, uma carteira %1 offline ou uma carteira física compatível com PSBTs.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3182,8 +3290,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kvB" para
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Confirmação estimada em %n bloco.</numerusform>
+            <numerusform>Confirmação estimada em %n blocos.</numerusform>
         </translation>
     </message>
     <message>
@@ -3520,8 +3628,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kvB" para
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>amadurece em mais %n bloco</numerusform>
+            <numerusform>amadurece em mais %n blocos</numerusform>
         </translation>
     </message>
     <message>
@@ -3704,7 +3812,7 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kvB" para
     </message>
     <message>
         <source>Whether or not a watch-only address is involved in this transaction.</source>
-        <translation type="unfinished">Mostrar ou não endereços monitorados na lista de transações.</translation>
+        <translation type="unfinished">Se um endereço monitorado está envolvido nesta transação.</translation>
     </message>
     <message>
         <source>User-defined intent/purpose of the transaction.</source>
@@ -3773,6 +3881,11 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kvB" para
         <source>Range…</source>
         <translation type="unfinished">Alcance...</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Mostrar em %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Exportar histórico de transações</translation>
@@ -3865,7 +3978,7 @@ Go to File &gt; Open Wallet to load a wallet.
     </message>
     <message>
         <source>Unable to decode PSBT</source>
-        <translation type="unfinished">Não foi possível decodificar PSDBT</translation>
+        <translation type="unfinished">Não foi possível decodificar PSBT</translation>
     </message>
 </context>
 <context>
diff --git a/src/qt/locale/bitcoin_ro.ts b/src/qt/locale/bitcoin_ro.ts
index 714a317449c..351e1dd6f65 100644
--- a/src/qt/locale/bitcoin_ro.ts
+++ b/src/qt/locale/bitcoin_ro.ts
@@ -1,30 +1,6 @@
 <TS version="2.1" language="ro">
 <context>
     <name>AddressBookPage</name>
-    <message>
-        <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Click-dreapta pentru a edita adresa sau eticheta</translation>
-    </message>
-    <message>
-        <source>Create a new address</source>
-        <translation type="unfinished">Creează o adresă nouă</translation>
-    </message>
-    <message>
-        <source>&amp;New</source>
-        <translation type="unfinished">&amp;Nou</translation>
-    </message>
-    <message>
-        <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">Copiază adresa selectată curent în clipboard</translation>
-    </message>
-    <message>
-        <source>&amp;Copy</source>
-        <translation type="unfinished">&amp;Copiază</translation>
-    </message>
-    <message>
-        <source>C&amp;lose</source>
-        <translation type="unfinished">Î&amp;nchide</translation>
-    </message>
     <message>
         <source>Delete the currently selected address from the list</source>
         <translation type="unfinished">Şterge adresa selectată curent din listă</translation>
@@ -694,11 +670,7 @@ Semnarea este posibilă numai cu adrese de tip "legacy".</translation>
         <source>User Agent comment (%s) contains unsafe characters.</source>
         <translation type="unfinished">Comentariul (%s) al Agentului Utilizator contine caractere nesigure.</translation>
     </message>
-    <message>
-        <source>Wallet needed to be rewritten: restart %s to complete</source>
-        <translation type="unfinished">Portofelul trebuie rescris: reporneşte %s pentru finalizare</translation>
-    </message>
-</context>
+    </context>
 <context>
     <name>BitcoinGUI</name>
     <message>
diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts
index e709c5bc597..f4b3147ca2f 100644
--- a/src/qt/locale/bitcoin_ru.ts
+++ b/src/qt/locale/bitcoin_ru.ts
@@ -1,18 +1,6 @@
 <TS version="2.1" language="ru">
 <context>
     <name>AddressBookPage</name>
-    <message>
-        <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Нажмите правой кнопкой мыши, чтобы изменить адрес или метку</translation>
-    </message>
-    <message>
-        <source>Create a new address</source>
-        <translation type="unfinished">Создать новый адрес</translation>
-    </message>
-    <message>
-        <source>&amp;New</source>
-        <translation type="unfinished">&amp;Новый</translation>
-    </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
         <translation type="unfinished">Скопировать выбранный адрес в буфер обмена</translation>
@@ -267,7 +255,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
-        <translation type="unfinished">Ошибка: указанный каталог данных "%1" не существует.</translation>
+        <translation type="unfinished">%1</translation>
     </message>
     <message>
         <source>Error: Cannot parse configuration file: %1.</source>
@@ -391,17 +379,17 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n день</numerusform>
+            <numerusform>%n дней</numerusform>
+            <numerusform>%n дней</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n неделя</numerusform>
+            <numerusform>%n недель</numerusform>
+            <numerusform>%n недель</numerusform>
         </translation>
     </message>
     <message>
@@ -411,9 +399,9 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n год</numerusform>
+            <numerusform>%n лет</numerusform>
+            <numerusform>%n лет</numerusform>
         </translation>
     </message>
     <message>
@@ -475,6 +463,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Ошибка чтения %s! Все ключи прочитаны верно, но данные транзакций или записи адресной книги могут отсутствовать или быть неправильными.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Ошибка чтения %s! Данные транзакций отсутствуют или неправильны. Пересмотр кошелька.</translation>
+    </message>
     <message>
         <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
         <translation type="unfinished">Ошибка: запись формата дамп-файла неверна. Обнаружено "%s", ожидалось "format".</translation>
@@ -485,7 +477,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
-        <translation type="unfinished">Ошибка: версия дамп-файла не поддерживается. Эта версия bitcoin-wallet поддерживает только дамп-файлы версии 1. Обнаружено дамп-файл версии %s</translation>
+        <translation type="unfinished">Ошибка: версия дамп-файла не поддерживается. Эта версия биткоин-кошелька поддерживает только дамп-файлы версии 1. Обнаружен дамп-файл версии %s</translation>
+    </message>
+    <message>
+        <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
+        <translation type="unfinished">Ошибка: Устаревшие кошельки поддерживают только "legacy", "p2sh-segwit", и "bech32" типы адресов.</translation>
     </message>
     <message>
         <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
@@ -503,6 +499,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">Неверное значение для -maxtxfee=&lt;amount&gt;: '%s' (должна быть не ниже минимально ретранслируемой комиссии %s для предотвращения зависания транзакций)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">Неверный или поврежденный peers.dat (%s). Если вы считаете что это баг, сообщите об этом %s. Как вариант решения - переместите, переименуйте или удалите файл (%s), новый будет создан при следующем запуске программы.</translation>
+    </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
         <translation type="unfinished">Предоставлен более чем один onion-адрес для привязки. Для автоматически созданного onion-сервиса Tor будет использован %s.</translation>
@@ -543,6 +543,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">В базе данных блоков найден блок из будущего. Это может произойти из-за неверно установленных даты и времени на вашем компьютере. Перестраивайте базу данных блоков только если вы уверены, что дата и время установлены верно.</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">База данных индексации блоков содержит устаревший 'txindex'. Чтобы освободить место на диске, выполните полный -reindex, или игнорируйте эту ошибку. Это сообщение об ошибке больше показано не будет.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">Сумма транзакции за вычетом комиссии слишком мала</translation>
@@ -615,6 +619,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">Не удается разрешить -%s адрес: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">Не удается установить -forcednsseed, отключив -dnsseed.</translation>
+    </message>
     <message>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">Нельзя указывать -peerblockfilters без -blockfilterindex.</translation>
@@ -623,6 +631,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Не удается выполнить запись в каталог данных '%s'; проверьте разрешения.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">Обновление -txindex, запущенное при предыдущей версии не может быть завершено. Перезапустите с предыдущей версией или запустите полную -reindex.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s попытка запуска на порту %u. Этот порт считается "плохим" и маловероятно что узлы Bitcoin Core к нему подключатся. Смотрите дополнительно doc/p2p-bad-ports.md. </translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Не удаётся предоставить определённые соединения, чтобы при этом addrman нашёл в них исходящие соединения.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Ошибка загрузки %s: Эта версия программы Bitcoin Core собрана без поддержки функции внешних кошельков </translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Ошибка переименования файла peers.dat. Пожалуйста переместите или удалите его и попробуйте снова</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Подключение разрешено только через сеть Tor (-onlynet=onion) однако прокси для подключения не указан (нет -proxy или -onion) или прямо запрещен (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Настройка конфигурации %s применяется в сети %s только если находится в разделе [%s].</translation>
@@ -731,6 +763,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: Missing checksum</source>
         <translation type="unfinished">Ошибка: отсутствует контрольная сумма</translation>
     </message>
+    <message>
+        <source>Error: No %s addresses available.</source>
+        <translation type="unfinished">Ошибка: Нет %s доступных адресов</translation>
+    </message>
     <message>
         <source>Error: Unable to parse version %u as a uint32_t</source>
         <translation type="unfinished">Ошибка: невозможно разобрать версию %u как uint32_t</translation>
@@ -771,6 +807,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">Начальная проверка исправности не удалась. %s завершает работу.</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Вход для тразакции не найден или уже использован</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Недостаточно средств</translation>
@@ -827,10 +867,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Loading wallet…</source>
         <translation type="unfinished">Загрузка кошелька...</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Отсутствует сумма</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">Недостаточно данных для оценки размера транзакции</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Необходимо указать порт с -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Нет доступных адресов</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Не указан прокси-сервер. Используйте -proxy=&lt;ip&gt; или -proxy=&lt;ip:port&gt;</translation>
@@ -901,11 +953,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Specified -walletdir "%s" is not a directory</source>
-        <translation type="unfinished">Указанный -walletdir "%s" не является директорией</translation>
+        <translation type="unfinished">Указанный -walletdir "%s" не является каталогом</translation>
     </message>
     <message>
         <source>Specified blocks directory "%s" does not exist.</source>
-        <translation type="unfinished">Указанная директория для блоков "%s" не существует.</translation>
+        <translation type="unfinished">Указанный каталог блоков "%s" не существует.</translation>
     </message>
     <message>
         <source>Starting network threads…</source>
@@ -947,6 +999,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Сумма транзакции не должна быть отрицательной</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Индекс получателя адреса сдачи вне диапазона</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">В транзакции слишком длинная цепочка пула памяти</translation>
@@ -955,6 +1011,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">Транзакция должна иметь хотя бы одного получателя</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Для транзакции требуется адрес сдачи, но сгенерировать его не удалось.</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">Транзакция слишком большая</translation>
@@ -983,6 +1043,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to open %s for writing</source>
         <translation type="unfinished">Не удается открыть %s для записи</translation>
     </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">Ошибка параметра -maxuploadtarget: '%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Невозможно запустить HTTP-сервер. См. подробности в журнале отладки.</translation>
@@ -1003,6 +1067,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unknown network specified in -onlynet: '%s'</source>
         <translation type="unfinished">Неизвестная сеть указана в -onlynet: '%s'</translation>
     </message>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished">Внимание: неизвестные правила вступили в силу (versionbit %i)</translation>
+    </message>
     <message>
         <source>Unsupported logging category %s=%s.</source>
         <translation type="unfinished">Неподдерживаемая категория ведения журнала %s=%s.</translation>
@@ -1082,10 +1150,6 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Minimize</source>
         <translation type="unfinished">&amp;Уменьшить</translation>
     </message>
-    <message>
-        <source>Wallet:</source>
-        <translation type="unfinished">Кошелёк:</translation>
-    </message>
     <message>
         <source>Network activity disabled.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -1101,7 +1165,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Backup wallet to another location</source>
-        <translation type="unfinished">Создать резервную копию кошелька в другом месте</translation>
+        <translation type="unfinished">Создать резервную копию кошелька в другом местеexternal_signer_scriptpubkeyman.cpp</translation>
     </message>
     <message>
         <source>Change the passphrase used for wallet encryption</source>
@@ -1355,13 +1419,17 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Hide</source>
         <translation type="unfinished">&amp;Скрыть</translation>
     </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">&amp;Показать</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n активное подключение к сети Bitcoin.</numerusform>
+            <numerusform>%n активных подключений к сети Bitcoin.</numerusform>
+            <numerusform>%n активных подключений к сети Bitcoin.</numerusform>
         </translation>
     </message>
     <message>
@@ -1840,7 +1908,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <name>FreespaceChecker</name>
     <message>
         <source>A new data directory will be created.</source>
-        <translation type="unfinished">Будет создана новая директория данных.</translation>
+        <translation type="unfinished">Будет создан новый каталог данных.</translation>
     </message>
     <message>
         <source>name</source>
@@ -1848,15 +1916,15 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
-        <translation type="unfinished">Директория уже существует. Добавьте %1, если хотите создать здесь новую директорию.</translation>
+        <translation type="unfinished">Каталог уже существует. Добавьте %1, если хотите создать здесь новый каталог.</translation>
     </message>
     <message>
         <source>Path already exists, and is not a directory.</source>
-        <translation type="unfinished">Данный путь уже существует, и это не директория.</translation>
+        <translation type="unfinished">Данный путь уже существует, и это не каталог.</translation>
     </message>
     <message>
         <source>Cannot create data directory here.</source>
-        <translation type="unfinished">Невозможно создать директорию данных здесь.</translation>
+        <translation type="unfinished">Невозможно создать здесь каталог данных.</translation>
     </message>
 </context>
 <context>
@@ -1879,19 +1947,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
-        <translation type="unfinished">В эту директорию будет сохранено не менее %1 ГБ данных, и со временем их объём будет увеличиваться.</translation>
+        <translation type="unfinished">В этот каталог будет сохранено не менее %1 ГБ данных, и со временем их объём будет увеличиваться.</translation>
     </message>
     <message>
         <source>Approximately %1 GB of data will be stored in this directory.</source>
-        <translation type="unfinished">В эту директорию будет сохранено приблизительно %1 ГБ данных.</translation>
+        <translation type="unfinished">В этот каталог будет сохранено приблизительно %1 ГБ данных.</translation>
     </message>
     <message numerus="yes">
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>(достаточно для восстановления резервных копий %n-дневной давности)</numerusform>
+            <numerusform>(достаточно для восстановления резервных копий %n-дневной давности)</numerusform>
+            <numerusform>(достаточно для восстановления резервных копий %n-дневной давности)</numerusform>
         </translation>
     </message>
     <message>
@@ -1900,11 +1968,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>The wallet will also be stored in this directory.</source>
-        <translation type="unfinished">Кошелёк также будет сохранен в эту директорию.</translation>
+        <translation type="unfinished">Кошелёк также будет сохранён в этот каталог.</translation>
     </message>
     <message>
         <source>Error: Specified data directory "%1" cannot be created.</source>
-        <translation type="unfinished">Ошибка: невозможно создать указанную директорию данных "%1".</translation>
+        <translation type="unfinished">Ошибка: невозможно создать указанный каталог данных "%1".</translation>
     </message>
     <message>
         <source>Error</source>
@@ -1948,11 +2016,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Use the default data directory</source>
-        <translation type="unfinished">Использовать стандартную директорию данных</translation>
+        <translation type="unfinished">Использовать стандартный каталог данных</translation>
     </message>
     <message>
         <source>Use a custom data directory:</source>
-        <translation type="unfinished">Использовать пользовательскую директорию данных</translation>
+        <translation type="unfinished">Использовать пользовательский каталог данных:</translation>
     </message>
 </context>
 <context>
@@ -2096,7 +2164,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Open the %1 configuration file from the working directory.</source>
-        <translation type="unfinished">Открывает файл конфигурации %1 из рабочей директории.</translation>
+        <translation type="unfinished">Открывает файл конфигурации %1 из рабочего каталога.</translation>
     </message>
     <message>
         <source>Open Configuration File</source>
@@ -2135,6 +2203,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>MiB</source>
         <translation type="unfinished">МиБ</translation>
     </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Укажите число тредов проверки/верификации скриптов транзакций. Отрицательные значения указывают число ядер доступных для операционной системы.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = автоматически, &lt;0 = оставить столько ядер свободными)</translation>
@@ -2153,6 +2226,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>W&amp;allet</source>
         <translation type="unfinished">&amp;Кошелёк</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Вычитать комиссию из суммы по умолчанию или нет.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Вычесть &amp;комиссию из суммы</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Экспертные настройки</translation>
@@ -2169,10 +2252,28 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Тратить неподтверждённую сдачу</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Включить управление частично подписанными транзакциями</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Показать элементы управления частично подписанными транзакциями</translation>
+    </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
         <translation type="unfinished">Внешний подписант(например, аппаратный кошелёк)</translation>
     </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">&amp;Внешний скрипт для подписи</translation>
+    </message>
+    <message>
+        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
+        <translation type="unfinished">Путь к скрипту, совместимому с Bitcoin Core (напр. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Внимание: остерегайтесь вредоносных скриптов!</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Автоматически открыть порт биткоин-клиента на маршрутизаторе. Работает, если ваш маршрутизатор поддерживает UPnP, и данная функция на нём включена.</translation>
@@ -2265,6 +2366,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Выберите единицу измерения, которая будет показана по умолчанию в интерфейсе и при отправке монет.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">Сторонние URL-адреса (например, обозреватель блоков), которые будут показаны на вкладке транзакций как элементы контекстного меню. %s в URL будет заменён на хэш транзакции. Несколько URL-адресов разделяются вертикальной чертой |.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;Ссылки на транзакции сторонних сервисов</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Показывать ли параметры управления монетами.</translation>
@@ -2551,6 +2660,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Транзакции требуется по крайней мере ещё одна подпись.</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Кошелек не загружен)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Но этот кошелёк не может подписывать транзакции.)</translation>
@@ -2717,7 +2830,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>To specify a non-default location of the data directory use the '%1' option.</source>
-        <translation type="unfinished">Чтобы указать нестандартное расположение директории для данных, используйте параметр '%1'.</translation>
+        <translation type="unfinished">Чтобы указать нестандартное расположение каталога данных, используйте параметр '%1'.</translation>
     </message>
     <message>
         <source>Blocksdir</source>
@@ -2725,7 +2838,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>To specify a non-default location of the blocks directory use the '%1' option.</source>
-        <translation type="unfinished">Чтобы указать нестандартное расположение директории для блоков, используйте параметр '%1'.</translation>
+        <translation type="unfinished">Чтобы указать нестандартное расположение каталога блоков, используйте параметр '%1'.</translation>
     </message>
     <message>
         <source>Startup time</source>
@@ -2819,6 +2932,33 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>Mapped AS</source>
         <translation type="unfinished">Подключённая АС</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Если мы передаем адреса этому узлу</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Адресный Релей</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Общее число обработанных адресов, за исключением отброшенных ограничением потока</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Обработанные Адреса</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Общее число адресов отброшенных ограничениями потока</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Адреса ограниченные потоком</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Пользовательский агент</translation>
@@ -2833,7 +2973,7 @@ If you are receiving this error you should request the merchant provide a BIP21
     </message>
     <message>
         <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source>
-        <translation type="unfinished">Открыть файл журнала отладки %1 из текущей директории данных. Для больших файлов журнала это может занять несколько секунд.</translation>
+        <translation type="unfinished">Открыть файл журнала отладки %1 из текущего каталога данных. Для больших файлов журнала это может занять несколько секунд.</translation>
     </message>
     <message>
         <source>Decrease font size</source>
@@ -3015,6 +3155,10 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>1 &amp;hour</source>
         <translation type="unfinished">1 &amp;час</translation>
     </message>
+    <message>
+        <source>1 d&amp;ay</source>
+        <translation type="unfinished">1 &amp;день</translation>
+    </message>
     <message>
         <source>1 &amp;week</source>
         <translation type="unfinished">1 &amp;неделя</translation>
@@ -3023,6 +3167,11 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;год</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Копировать IP/Маску подсети</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Разбанить</translation>
@@ -3180,6 +3329,10 @@ For more information on using this console, type %6.
         <source>Copy &amp;label</source>
         <translation type="unfinished">Копировать &amp;метку</translation>
     </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">Копировать &amp;сообщение</translation>
+    </message>
     <message>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">Копировать &amp;сумму</translation>
@@ -3227,6 +3380,14 @@ For more information on using this console, type %6.
         <source>Copy &amp;Address</source>
         <translation type="unfinished">Копировать &amp;адрес</translation>
     </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">&amp;Проверить</translation>
+    </message>
+    <message>
+        <source>Verify this address on e.g. a hardware wallet screen</source>
+        <translation type="unfinished">Проверьте адрес, например на экране аппаратного кошелька</translation>
+    </message>
     <message>
         <source>&amp;Save Image…</source>
         <translation type="unfinished">&amp;Сохранить изображение...</translation>
@@ -3457,10 +3618,20 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>%1 (%2 blocks)</source>
         <translation type="unfinished">%1 (%2 блоков)</translation>
     </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">Подтвердите на устройстве</translation>
+    </message>
     <message>
         <source>Connect your hardware wallet first.</source>
         <translation type="unfinished">Сначала подключите ваш аппаратный кошелёк.</translation>
     </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Укажите внешний скрипт подписи в Настройки -&gt; Кошелек</translation>
+    </message>
     <message>
         <source>Cr&amp;eate Unsigned</source>
         <translation type="unfinished">Создать &amp;без подписи</translation>
@@ -3489,6 +3660,16 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>Sign failed</source>
         <translation type="unfinished">Подписание не удалось.</translation>
     </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Внешний скрипт подписи не найден</translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Ошибка внешнего скрипта подписи</translation>
+    </message>
     <message>
         <source>Save Transaction Data</source>
         <translation type="unfinished">Сохранить данные о транзакции</translation>
@@ -3502,6 +3683,10 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>PSBT saved</source>
         <translation type="unfinished">PSBT сохранена</translation>
     </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">Внешний баланс:</translation>
+    </message>
     <message>
         <source>or</source>
         <translation type="unfinished">или</translation>
@@ -3520,6 +3705,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
         <translation type="unfinished">Вы хотите создать эту транзакцию?</translation>
     </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Пожалуйста, ещё раз просмотрите черновик вашей транзакции. Будет создана частично подписанная биткоин-транзакция (PSBT), которую можно сохранить или скопировать, после чего подписать, например, офлайновым кошельком %1 или PSBT-совместимым аппаратным кошельком.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3580,9 +3770,9 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Начало подтверждения ожидается через %n блок.</numerusform>
+            <numerusform>Начало подтверждения ожидается через %n блок(ов).</numerusform>
+            <numerusform>Начало подтверждения ожидается через %n блок(ов).</numerusform>
         </translation>
     </message>
     <message>
@@ -3907,10 +4097,6 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>unknown</source>
         <translation type="unfinished">неизвестно</translation>
     </message>
-    <message>
-        <source>To</source>
-        <translation type="unfinished">Кому</translation>
-    </message>
     <message>
         <source>own address</source>
         <translation type="unfinished">свой адрес</translation>
@@ -3930,9 +4116,9 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>будет доступно через %n блок</numerusform>
+            <numerusform>будет доступно через %n блоков</numerusform>
+            <numerusform>будет доступно через %n блоков</numerusform>
         </translation>
     </message>
     <message>
@@ -4204,6 +4390,35 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>Copy transaction &amp;ID</source>
         <translation type="unfinished">Копировать транзакцию и &amp;ID</translation>
     </message>
+    <message>
+        <source>Copy &amp;raw transaction</source>
+        <translation type="unfinished">Копировать &amp;исходный код транзакции</translation>
+    </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">Копировать все подробности транзакции</translation>
+    </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">&amp;Показать подробности транзакции</translation>
+    </message>
+    <message>
+        <source>Increase transaction &amp;fee</source>
+        <translation type="unfinished">Увеличить комиссию</translation>
+    </message>
+    <message>
+        <source>A&amp;bandon transaction</source>
+        <translation type="unfinished">Отказ от транзакции</translation>
+    </message>
+    <message>
+        <source>&amp;Edit address label</source>
+        <translation type="unfinished">Изменить метку адреса</translation>
+    </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Показать в %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Экспортировать историю транзакций</translation>
@@ -4360,6 +4575,10 @@ Go to File &gt; Open Wallet to load a wallet.
         <source>Could not commit transaction</source>
         <translation type="unfinished">Не удалось отправить транзакцию</translation>
     </message>
+    <message>
+        <source>Can't display address</source>
+        <translation type="unfinished">Не могу отобразить адрес</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">кошелёк по умолчанию</translation>
diff --git a/src/qt/locale/bitcoin_si.ts b/src/qt/locale/bitcoin_si.ts
index c9367ad9d2a..ff504914944 100644
--- a/src/qt/locale/bitcoin_si.ts
+++ b/src/qt/locale/bitcoin_si.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">ලිපිනය හෝ ලේබලය සංස්කරණය කිරීමට දකුණු මූසික බොත්තම  ක්ලික් කරන්න</translation>
+        <translation type="unfinished">ලිපිනය හෝ නම්පත සංශෝධනයට දකුණු බොත්තම  ඔබන්න</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -15,11 +15,11 @@
     </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">දැනට තෝරාගෙන ඇති ලිපිනය පද්ධති පසුරු පුවරුවට (clipboard) පිටපත් කරන්න</translation>
+        <translation type="unfinished">තෝරාගෙන ඇති ලිපිනය පද්ධතියේ පසුරු පුවරුවට පිටපත් කරන්න</translation>
     </message>
     <message>
         <source>&amp;Copy</source>
-        <translation type="unfinished">&amp;පිටපත් කරන්න</translation>
+        <translation type="unfinished">&amp;පිටපත්</translation>
     </message>
     <message>
         <source>C&amp;lose</source>
@@ -27,15 +27,23 @@
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
-        <translation type="unfinished">දැනට තෝරාගත් ලිපිනය ලැයිස්තුවෙන් ඉවත් කරන්න</translation>
+        <translation type="unfinished">තේරූ ලිපිනය ලේඛනයෙන් මකන්න</translation>
     </message>
     <message>
         <source>Enter address or label to search</source>
-        <translation type="unfinished">සෙවීමට ලිපිනය හෝ ලේබලය ඇතුළත් කරන්න</translation>
+        <translation type="unfinished">සෙවීමට ලිපිනය හෝ නම්පත යොදන්න</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">වත්මන් පටියෙයි දත්ත ගොනුවකට නිර්යාත කරන්න</translation>
     </message>
     <message>
         <source>&amp;Export</source>
-        <translation type="unfinished">&amp;නිර්යාත කරන්න</translation>
+        <translation type="unfinished">&amp;නිර්යාතය</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation type="unfinished">&amp;මකන්න</translation>
     </message>
     <message>
         <source>Choose the address to send coins to</source>
@@ -47,7 +55,7 @@
     </message>
     <message>
         <source>C&amp;hoose</source>
-        <translation type="unfinished">තෝරන්න</translation>
+        <translation type="unfinished">තෝ&amp;රන්න</translation>
     </message>
     <message>
         <source>Sending addresses</source>
@@ -59,11 +67,15 @@
     </message>
     <message>
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
-        <translation type="unfinished">මේවා ඔබගේ ගෙවීම් යැවීම සඳහා වන බිට්කොයින් ලිපින වේ. කාසි යැවීමට පෙර සෑම විටම මුදල සහ ලැබීමේ ලිපිනය පරීක්ෂා කරන්න.</translation>
+        <translation type="unfinished">මේ ඔබගේ ගෙවීම් යැවීම සඳහා වන බිට්කොයින් ලිපින වේ. කාසි යැවීමට පෙර සෑම විටම මුදල සහ ලැබීමේ ලිපිනය පරීක්‍ෂා කරන්න.</translation>
     </message>
     <message>
         <source>&amp;Copy Address</source>
-        <translation type="unfinished">&amp;ලිපිනය පිටපත්</translation>
+        <translation type="unfinished">&amp;ලිපිනයෙහි පිටපතක්</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Label</source>
+        <translation type="unfinished">නම්පතෙහි &amp;පිටපතක්</translation>
     </message>
     <message>
         <source>&amp;Edit</source>
@@ -72,7 +84,7 @@
     <message>
         <source>Comma separated file</source>
         <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
-        <translation type="unfinished">අල්පවිරාම වලින් වෙන්වූ ගොනුව</translation>
+        <translation type="unfinished">අල්පවිරාම යෙදූ ගොනුව</translation>
     </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
@@ -81,14 +93,14 @@
     </message>
     <message>
         <source>Exporting Failed</source>
-        <translation type="unfinished">නිර්යාත වීමට අසමත් විය</translation>
+        <translation type="unfinished">නිර්යාතයට අසමත් විය</translation>
     </message>
 </context>
 <context>
     <name>AddressTableModel</name>
     <message>
         <source>Label</source>
-        <translation type="unfinished">ලේබලය</translation>
+        <translation type="unfinished">නම්පත</translation>
     </message>
     <message>
         <source>Address</source>
@@ -96,7 +108,7 @@
     </message>
     <message>
         <source>(no label)</source>
-        <translation type="unfinished">(ලේබලයක් නැත)</translation>
+        <translation type="unfinished">(නම්පතක් නැත)</translation>
     </message>
 </context>
 <context>
@@ -123,7 +135,7 @@
     </message>
     <message>
         <source>Encrypt wallet</source>
-        <translation type="unfinished">පසුම්බිය සංකේතනය කරන්න</translation>
+        <translation type="unfinished">පසුම්බිය සංකේතනය</translation>
     </message>
     <message>
         <source>This operation needs your wallet passphrase to unlock the wallet.</source>
@@ -151,7 +163,7 @@
     </message>
     <message>
         <source>Wallet encrypted</source>
-        <translation type="unfinished">පසුම්බිය සංකේතනය කර ඇත</translation>
+        <translation type="unfinished">පසුම්බිය සංකේතිතයි</translation>
     </message>
     <message>
         <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
@@ -171,11 +183,11 @@
     </message>
     <message>
         <source>Your wallet is about to be encrypted. </source>
-        <translation type="unfinished">ඔබේ මුදල් පසුම්බිය සංකේතනය කිරීමට ආසන්නයි.</translation>
+        <translation type="unfinished">පසුම්බිය සංකේතනය කිරීමට ආසන්නයි.</translation>
     </message>
     <message>
         <source>Your wallet is now encrypted. </source>
-        <translation type="unfinished">ඔබගේ මුදල් පසුම්බිය දැන් සංකේතනය කර ඇත.</translation>
+        <translation type="unfinished">ඔබගේ මුදල් පසුම්බිය දැන් සංකේතිතයි.</translation>
     </message>
     <message>
         <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
@@ -183,7 +195,7 @@
     </message>
     <message>
         <source>Wallet encryption failed</source>
-        <translation type="unfinished">පසුම්බි සංකේතනය අසාර්ථක විය</translation>
+        <translation type="unfinished">පසුම්බිය සංකේතනයට අසමත්!</translation>
     </message>
     <message>
         <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
@@ -234,43 +246,43 @@
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n second(s)</numerusform>
+            <numerusform>%n second(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minute(s)</numerusform>
+            <numerusform>%n minute(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hour(s)</numerusform>
+            <numerusform>%n hour(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n day(s)</numerusform>
+            <numerusform>%n day(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n week(s)</numerusform>
+            <numerusform>%n week(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n year(s)</numerusform>
+            <numerusform>%n year(s)</numerusform>
         </translation>
     </message>
     </context>
@@ -325,7 +337,7 @@
     </message>
     <message>
         <source>Quit application</source>
-        <translation type="unfinished">යෙදුමෙන් පිටවන්න</translation>
+        <translation type="unfinished">යෙදුම වසන්න</translation>
     </message>
     <message>
         <source>&amp;About %1</source>
@@ -333,7 +345,7 @@
     </message>
     <message>
         <source>Show information about %1</source>
-        <translation type="unfinished">%1 පිළිබඳව තොරතුරු පෙන්වන්න</translation>
+        <translation type="unfinished">%1 ගැන තොරතුරු පෙන්වන්න</translation>
     </message>
     <message>
         <source>About &amp;Qt</source>
@@ -341,12 +353,16 @@
     </message>
     <message>
         <source>Show information about Qt</source>
-        <translation type="unfinished">කියුටී පිළිබඳව තොරතුරු පෙන්වන්න</translation>
+        <translation type="unfinished">කියුටී ගැන තොරතුරු පෙන්වන්න</translation>
     </message>
     <message>
         <source>Create a new wallet</source>
         <translation type="unfinished">නව පසුම්බියක් සාදන්න</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;හකුළන්න</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">පසුම්බිය:</translation>
@@ -358,7 +374,7 @@
     </message>
     <message>
         <source>Send coins to a Bitcoin address</source>
-        <translation type="unfinished">බිට්කොයින් ලිපිනයට කාසි යවන්න</translation>
+        <translation type="unfinished">බිට්කොයින් ලිපිනයකට කාසි යවන්න</translation>
     </message>
     <message>
         <source>Backup wallet to another location</source>
@@ -378,7 +394,7 @@
     </message>
     <message>
         <source>&amp;Backup Wallet…</source>
-        <translation type="unfinished">&amp;පසුම්බිය උපස්ථකරන්න…</translation>
+        <translation type="unfinished">&amp;පසුම්බිය උපස්ථය…</translation>
     </message>
     <message>
         <source>Close Wallet…</source>
@@ -406,7 +422,7 @@
     </message>
     <message>
         <source>Syncing Headers (%1%)…</source>
-        <translation type="unfinished">(%1%) ශීර්ෂ සමමුහූර්ත වෙමින්…</translation>
+        <translation type="unfinished">(%1%) ශ්‍රීර්ෂ සමමුහූර්ත වෙමින්…</translation>
     </message>
     <message>
         <source>Synchronizing with network…</source>
@@ -415,8 +431,8 @@
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
+            <numerusform>Processed %n block(s) of transaction history.</numerusform>
         </translation>
     </message>
     <message>
@@ -431,6 +447,10 @@
         <source>Information</source>
         <translation type="unfinished">තොරතුර</translation>
     </message>
+    <message>
+        <source>Up to date</source>
+        <translation type="unfinished">යාවත්කාලීනයි</translation>
+    </message>
     <message>
         <source>&amp;Sending addresses</source>
         <translation type="unfinished">&amp;යවන ලිපින</translation>
@@ -441,11 +461,11 @@
     </message>
     <message>
         <source>Open Wallet</source>
-        <translation type="unfinished">පසුම්බිය විවෘත කරන්න</translation>
+        <translation type="unfinished">පසුම්බිය බලන්න</translation>
     </message>
     <message>
         <source>Open a wallet</source>
-        <translation type="unfinished">පසුම්බියක් විවෘත කරන්න</translation>
+        <translation type="unfinished">පසුම්බියක් බලන්න</translation>
     </message>
     <message>
         <source>Close wallet</source>
@@ -465,7 +485,7 @@
     </message>
     <message>
         <source>Zoom</source>
-        <translation type="unfinished">විශාල කරන්න</translation>
+        <translation type="unfinished">විශාලනය</translation>
     </message>
     <message>
         <source>Main Window</source>
@@ -475,12 +495,20 @@
         <source>%1 client</source>
         <translation type="unfinished">%1 අනුග්‍රාහකය</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;සඟවන්න</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">පෙ&amp;න්වන්න</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
         </translation>
     </message>
     <message>
@@ -510,6 +538,12 @@
         <source>Date: %1
 </source>
         <translation type="unfinished">දිනය: %1
+</translation>
+    </message>
+    <message>
+        <source>Amount: %1
+</source>
+        <translation type="unfinished">ගණන: %1
 </translation>
     </message>
     <message>
@@ -522,6 +556,12 @@
         <source>Type: %1
 </source>
         <translation type="unfinished">වර්ගය: %1
+</translation>
+    </message>
+    <message>
+        <source>Label: %1
+</source>
+        <translation type="unfinished">නම්පත: %1
 </translation>
     </message>
     <message>
@@ -575,7 +615,7 @@
     </message>
     <message>
         <source>&amp;Copy address</source>
-        <translation type="unfinished">&amp;ලිපිනය පිටපත්</translation>
+        <translation type="unfinished">&amp;ලිපිනයෙහි පිටපතක්</translation>
     </message>
     <message>
         <source>Copy bytes</source>
@@ -700,8 +740,8 @@
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
         </translation>
     </message>
     <message>
@@ -971,8 +1011,8 @@
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
         </translation>
     </message>
     <message>
@@ -1023,8 +1063,8 @@
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts
index fb03b0beb6b..9eed7562a65 100644
--- a/src/qt/locale/bitcoin_sk.ts
+++ b/src/qt/locale/bitcoin_sk.ts
@@ -1,10 +1,6 @@
 <TS version="2.1" language="sk">
 <context>
     <name>AddressBookPage</name>
-    <message>
-        <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Kliknutím pravého tlačidla upraviť adresu alebo popis</translation>
-    </message>
     <message>
         <source>Create a new address</source>
         <translation type="unfinished">Vytvoriť novú adresu</translation>
@@ -49,10 +45,6 @@
         <source>Choose the address to send coins to</source>
         <translation type="unfinished">Zvoľte adresu kam poslať mince</translation>
     </message>
-    <message>
-        <source>Choose the address to receive coins with</source>
-        <translation type="unfinished">Zvoľte adresu na ktorú chcete prijať mince</translation>
-    </message>
     <message>
         <source>C&amp;hoose</source>
         <translation type="unfinished">Vy&amp;brať</translation>
@@ -263,6 +255,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Chcete vrátiť nastavenia na predvolené hodnoty alebo ukončiť bez vykonania zmien?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Nastala kritická chyba. Skontrolujte, že je možné zapisovať do súboru nastavení alebo skúste spustiť s parametrom -nosettings.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Chyba: Zadaný adresár pre dáta „%1“ neexistuje.</translation>
@@ -340,41 +342,41 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n sekunda</numerusform>
+            <numerusform>%n sekundy</numerusform>
+            <numerusform>%n sekúnd</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n minúta</numerusform>
+            <numerusform>%n minúty</numerusform>
+            <numerusform>%n minút</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n hodina</numerusform>
+            <numerusform>%n hodiny</numerusform>
+            <numerusform>%n hodín</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n deň</numerusform>
+            <numerusform>%n dni</numerusform>
+            <numerusform>%n dní</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n týždeň</numerusform>
+            <numerusform>%n týždne</numerusform>
+            <numerusform>%n týždňov</numerusform>
         </translation>
     </message>
     <message>
@@ -384,14 +386,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n rok</numerusform>
+            <numerusform>%n roky</numerusform>
+            <numerusform>%n rokov</numerusform>
         </translation>
     </message>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Súbor nastavení nemohol byť prečítaný</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Súbor nastavení nemohol byť zapísaný</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">Vývojári %s</translation>
@@ -424,6 +434,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">Nastala chyba pri čítaní súboru %s! Všetkz kľúče sa prečítali správne, ale dáta o transakcíách alebo záznamy v adresári môžu chýbať alebo byť nesprávne.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Chyba pri čítaní %s! Transakčné údaje môžu chýbať alebo sú chybné. Znovu prečítam peňaženku.</translation>
+    </message>
     <message>
         <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
         <translation type="unfinished">Chyba: Formát záznamu v súbore dumpu je nesprávny. Obdržaný "%s", očakávaný "format".</translation>
@@ -456,6 +470,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">Neplatná suma pre -maxtxfee=&lt;amount&gt;: '%s' (aby sa transakcia nezasekla, minimálny prenosový poplatok musí byť aspoň %s)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">Chybný alebo poškodený súbor peers.dat (%s). Ak si myslíte, že ide o chybu, prosím nahláste to na %s. Ako dočasné riešenie môžete súbor odsunúť (%s) z umiestnenia (premenovať, presunúť, vymazať), aby sa pri ďalšom spustení vytvoril nový.</translation>
+    </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
         <translation type="unfinished">K dispozícii je viac ako jedna adresa onion. Použitie %s pre automaticky vytvorenú službu Tor.</translation>
@@ -496,6 +514,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">Databáza blokov obsahuje blok, ktorý vyzerá byť z budúcnosti. Toto môže byť spôsobené nesprávnym systémovým časom vášho počítača. Obnovujte databázu blokov len keď ste si istý, že systémový čas je nastavený správne.</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">Databáza indexov blokov obsahuje 'txindex' staršieho typu. Pre uvoľnenie obsadeného miesta spustite s parametrom -reindex, inak môžete ignorovať túto chybu. Táto správa sa už nabudúce nezobrazí.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">Suma je príliš malá pre odoslanie transakcie</translation>
@@ -568,6 +590,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">Nedá preložiť -%s adresu: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">Nie je možné zapnúť -forcednsseed keď je -dnsseed vypnuté.</translation>
+    </message>
     <message>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">Nepodarilo sa určiť -peerblockfilters bez -blockfilterindex.</translation>
@@ -576,6 +602,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Nie je možné zapísať do adresára ' %s'. Skontrolujte povolenia.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">Upgrade -txindex spustený predchádzajúcou verziou nemôže byť dokončený. Reštartujte s prechdádzajúcou verziou programu alebo spustite s parametrom -reindex.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">Požiadavka %s na počúvanie na porte %u. Tento port je považovaný za "zlý" preto je nepravdepodobné, že sa naň pripojí nejaký Bitcoin Core partner. Pozrite doc/p2p-bad-ports.md pre detaily a celý zoznam.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Nie je možné zadať špecifické spojenia a zároveň nechať addrman hľadať odchádzajúce spojenia.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Chyba pri načítaní %s: Načíta sa peňaženka s externým podpisovaním, ale podpora pre externé podpisovanie nebola začlenená do programu</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Nepodarilo sa premenovať chybný súbor peers.dat. Prosím presuňte ho alebo vymažte a skúste znovu.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Odchádzajúce spojenia sú obmedzené na Tor (-onlynet=onion) ale proxy pre dosiahnutie siete Tor nie je zadaný (nie sú zadané parametre -proxy= a -onion=) alebo je výslovne zakázaný (-onion=0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Nastavenie konfigurácie pre %s platí iba v sieti %s a v sekcii [%s].</translation>
@@ -728,6 +778,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">Kontrola čistoty pri inicializácií zlyhala. %s sa vypína.</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Vstup nenájdený alebo už minutý</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Nedostatok prostriedkov</translation>
@@ -784,10 +838,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Loading wallet…</source>
         <translation type="unfinished">Načítavam peňaženku…</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Chýba suma</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">Chýbajú údaje pre odhad veľkosti transakcie</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Je potrebné zadať port s -whitebind: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Nie sú dostupné žiadne adresy</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Nie je špecifikovaný proxy server. Použite -proxy=&lt;ip&gt; alebo -proxy=&lt;ip:port&gt;.</translation>
@@ -904,6 +970,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Sumy transakcií nesmú byť záporné</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Výstupný index transakcie zmeny je mimo rozsahu</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">Transakcia má v transakčnom zásobníku príliš dlhý reťazec</translation>
@@ -912,6 +982,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">Transakcia musí mať aspoň jedného príjemcu</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Transakcia potrebuje adresu na zmenu, ale nemôžeme ju vygenerovať.</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">Transakcia príliš veľká</translation>
@@ -940,6 +1014,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to open %s for writing</source>
         <translation type="unfinished">Nepodarilo sa otvoriť %s pre zapisovanie</translation>
     </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">Nepodarilo sa prečítať -maxuploadtarget: '%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Nepodarilo sa spustiť HTTP server. Pre viac detailov zobrazte debug log.</translation>
@@ -1039,6 +1117,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create a new wallet</source>
         <translation type="unfinished">Vytvoriť novú peňaženku</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Minimalizovať</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Peňaženka:</translation>
@@ -1187,9 +1269,9 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Spracovaný %n blok transakčnej histórie.</numerusform>
+            <numerusform>Spracované %n bloky transakčnej histórie.</numerusform>
+            <numerusform>Spracovaných %n blokov transakčnej histórie.</numerusform>
         </translation>
     </message>
     <message>
@@ -1228,13 +1310,17 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Načítať sčasti podpísanú Bitcoin transakciu</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Načítať PSBT zo s&amp;chránky…</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Načítať čiastočne podpísanú Bitcoin transakciu, ktorú ste skopírovali</translation>
     </message>
     <message>
         <source>Node window</source>
-        <translation type="unfinished">Uzlové okno</translation>
+        <translation type="unfinished">Okno uzlov</translation>
     </message>
     <message>
         <source>Open node debugging and diagnostic console</source>
@@ -1304,13 +1390,21 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 klient</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Skryť</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">Z&amp;obraziť</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>%n aktívne pripojenie do siete Bitcoin</numerusform>
+            <numerusform>%n aktívne pripojenia do siete Bitcoin</numerusform>
+            <numerusform>%n aktívnych pripojení do siete Bitcoin</numerusform>
         </translation>
     </message>
     <message>
@@ -1503,6 +1597,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">Kopírovať &amp;sumu</translation>
     </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Skopírovať &amp;ID transakcie a výstupný index</translation>
+    </message>
     <message>
         <source>L&amp;ock unspent</source>
         <translation type="unfinished">U&amp;zamknúť neminuté</translation>
@@ -1593,6 +1691,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">Nemôžem zobraziť podpisovateľov</translation>
     </message>
 </context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Načítať peňaženky</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Načítavam peňaženky…</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1793,6 +1904,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB voľného miesta</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(z %1 GB potrebných)</translation>
@@ -1813,9 +1928,9 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>(dostatočné pre obnovenie záloh %n deň starých)</numerusform>
+            <numerusform>(dostatočné pre obnovenie záloh %n dni starých)</numerusform>
+            <numerusform>(dostatočné pre obnovenie záloh %n dní starých)</numerusform>
         </translation>
     </message>
     <message>
@@ -2042,14 +2157,44 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Obnovenie tohto nastavenia vyžaduje opätovné stiahnutie celého blockchainu.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Maximálna veľkosť vyrovnávacej pamäte databázy. Väčšia pamäť môže urýchliť synchronizáciu, ale pri ďalšom používaní už nemá efekt. Zmenšenie vyrovnávacej pamäte zníži použitie pamäte. Nevyužitá pamäť mempool je zdieľaná pre túto vyrovnávaciu pamäť.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Nastaví počet vlákien na overenie skriptov. Záporné hodnoty zodpovedajú počtu jadier procesora, ktoré chcete nechať voľné pre systém.</translation>
+    </message>
     <message>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = auto, &lt;0 = toľko jadier nechať  voľných)</translation>
     </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Toto umožňuje vám alebo nástroju tretej strany komunikovať s uzlom pomocou príkazov z príkazového riadka alebo JSON-RPC.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Povoliť server R&amp;PC</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">&amp;Peňaženka</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Nastaviť predvolenie odpočítavania poplatku zo sumy.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Predvolene odpočítavať &amp;poplatok zo sumy</translation>
+    </message>
     <message>
         <source>Enable coin &amp;control features</source>
         <translation type="unfinished">Povoliť možnosti &amp;kontroly mincí</translation>
@@ -2062,6 +2207,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Minúť nepotvrdený výdavok</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Povoliť ovládanie &amp;PSBT</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Zobrazenie ovládania PSBT.</translation>
+    </message>
     <message>
         <source>External Signer (e.g. hardware wallet)</source>
         <translation type="unfinished">Externý podpisovateľ (napr. hardvérová peňaženka)</translation>
@@ -2158,6 +2313,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Zvoľte ako deliť bitcoin pri zobrazovaní pri platbách a užívateľskom rozhraní.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">URL tretích strán (napr. prehliadač blokov), ktoré sa zobrazujú v záložke transakcií ako položky kontextového menu. %s v URL je nahradené hash-om transakcie. Viaceré URL sú oddelené zvislou čiarou |.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">URL &amp;transakcií tretích strán</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Či zobrazovať možnosti kontroly mincí alebo nie.</translation>
@@ -2225,6 +2388,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">Konfiguračný súbor slúži k nastavovaniu užívateľsky pokročilých možností, ktoré majú prednosť pred konfiguráciou z grafického rozhrania. Parametre z príkazového riadka však majú pred konfiguračným súborom prednosť.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Pokračovať</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Zrušiť</translation>
@@ -2359,6 +2526,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Nepodarilo sa podpísať transakciu: %1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Nemôžem podpísať vstupy kým je peňaženka zamknutá.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Nie je možné podpísať žiadne ďalšie vstupy.</translation>
@@ -2432,6 +2603,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction still needs signature(s).</source>
         <translation type="unfinished">Transakcii stále chýbajú podpis(y).</translation>
     </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Ale nie je načítaná žiadna peňaženka.)</translation>
+    </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
         <translation type="unfinished">(Ale táto peňaženka nemôže podpisovať transakcie)</translation>
@@ -2688,6 +2863,10 @@ Ak ste dostali túto chybu mali by ste požiadať obchodníka o URI kompatibiln
         <source>Synced Blocks</source>
         <translation type="unfinished">Zosynchronizované bloky</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Posledná transakcia</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">Mapovaný nezávislý - Autonómny Systém používaný na rozšírenie vzájomného výberu peerov.</translation>
@@ -2696,6 +2875,33 @@ Ak ste dostali túto chybu mali by ste požiadať obchodníka o URI kompatibiln
         <source>Mapped AS</source>
         <translation type="unfinished">Mapovaný AS</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Postupovanie adries tomuto partnerovi.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Postupovanie adries</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Celkový počet spracovaných adries, okrem tých zahodených kvôli obmedzovaniu rýchlosti.</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Spracované adresy</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Celkový počet adries zahodených kvôli obmedzovaniu rýchlosti.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Obmedzené adresy</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Aplikácia</translation>
@@ -2904,6 +3110,11 @@ Ak ste dostali túto chybu mali by ste požiadať obchodníka o URI kompatibiln
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;rok</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Kopírovať IP/Masku siete</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Zrušiť zákaz</translation>
@@ -3432,6 +3643,16 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok pri sadzbe "100 sat
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">Prečítajte si prosím svoj návrh transakcie. Výsledkom bude čiastočne podpísaná bitcoinová transakcia (PSBT), ktorú môžete uložiť alebo skopírovať a potom podpísať napr. cez offline peňaženku %1 alebo hardvérovú peňaženku kompatibilnú s PSBT.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Chcete vytvoriť túto transakciu?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Skontrolujte prosím svoj návrh transakcie. Môžete vytvoriť a odoslať túto transakciu alebo vytvoriť čiastočne podpísanú bitcoinovú transakciu (PSBT), ktorú môžete uložiť alebo skopírovať a potom podpísať napr. cez offline peňaženku %1 alebo hardvérovú peňaženku kompatibilnú s PSBT.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3492,9 +3713,9 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok pri sadzbe "100 sat
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>Odhadované potvrdenie o %n blok.</numerusform>
+            <numerusform>Odhadované potvrdenie o %n bloky.</numerusform>
+            <numerusform>Odhadované potvrdenie o %n blokov.</numerusform>
         </translation>
     </message>
     <message>
@@ -3753,7 +3974,11 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok pri sadzbe "100 sat
         <source>(press q to shutdown and continue later)</source>
         <translation type="unfinished">(stlačte Q pre ukončenie a pokračovanie neskôr)</translation>
     </message>
-    </context>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">stlačte q pre ukončenie</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -3831,9 +4056,9 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok pri sadzbe "100 sat
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-            <numerusform />
+            <numerusform>dozrie o ďalší %n blok</numerusform>
+            <numerusform>dozrie o ďalšie %n bloky</numerusform>
+            <numerusform>dozrie o ďalších %n blokov</numerusform>
         </translation>
     </message>
     <message>
@@ -4125,6 +4350,11 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok pri sadzbe "100 sat
         <source>&amp;Edit address label</source>
         <translation type="unfinished">&amp;Upraviť popis transakcie</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Zobraziť v %1</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Exportovať históriu transakcií</translation>
diff --git a/src/qt/locale/bitcoin_sq.ts b/src/qt/locale/bitcoin_sq.ts
index 0dd48a1cae7..bf8e13bb2bb 100644
--- a/src/qt/locale/bitcoin_sq.ts
+++ b/src/qt/locale/bitcoin_sq.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Kliko me të djathtën për të ndryshuar adresën ose etiketen.</translation>
+        <translation type="unfinished">Kliko me të djathtën për të ndryshuar adresën ose etiketen</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -23,7 +23,7 @@
     </message>
     <message>
         <source>C&amp;lose</source>
-        <translation type="unfinished">afer</translation>
+        <translation type="unfinished">afër</translation>
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts
index 1b3763d0aed..4d17a9a94c1 100644
--- a/src/qt/locale/bitcoin_sr.ts
+++ b/src/qt/locale/bitcoin_sr.ts
@@ -91,6 +91,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Export Address List</source>
         <translation type="unfinished">Извези Листу Адреса</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">CSV фајл</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -240,11 +245,23 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">Изузетак покретања</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">Дошло је до фаталне грешке. 1%1 даље не може безбедно да настави, те ће се угасити.</translation>
+    </message>
     <message>
         <source>Internal error</source>
         <translation type="unfinished">Интерна грешка</translation>
     </message>
-    </context>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">Догодила се интерна грешка. %1 ће покушати да настави безбедно. Ово је неочекивана грешка која може да се пријави као што је објашњено испод.</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
     <message>
@@ -255,6 +272,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: %1</source>
         <translation type="unfinished">Грешка: %1</translation>
     </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">1%1 још увек није изашао безбедно…</translation>
+    </message>
     <message>
         <source>unknown</source>
         <translation type="unfinished">непознато</translation>
@@ -267,6 +288,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Enter a Bitcoin address (e.g. %1)</source>
         <translation type="unfinished">Унеси Биткоин адресу, (нпр %1)</translation>
     </message>
+    <message>
+        <source>Unroutable</source>
+        <translation type="unfinished">Немогуће преусмерити</translation>
+    </message>
+    <message>
+        <source>Internal</source>
+        <translation type="unfinished">Унутрашње</translation>
+    </message>
     <message>
         <source>Inbound</source>
         <extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
@@ -277,6 +306,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>An outbound connection to a peer. An outbound connection is a connection initiated by us.</extracomment>
         <translation type="unfinished">Одлазеће</translation>
     </message>
+    <message>
+        <source>Full Relay</source>
+        <extracomment>Peer connection type that relays all network information.</extracomment>
+        <translation type="unfinished">Потпуна предаја</translation>
+    </message>
+    <message>
+        <source>Block Relay</source>
+        <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">Блокирана предаја</translation>
+    </message>
+    <message>
+        <source>Manual</source>
+        <extracomment>Peer connection type established manually through one of several methods.</extracomment>
+        <translation type="unfinished">Упутство</translation>
+    </message>
+    <message>
+        <source>Feeler</source>
+        <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Сензор</translation>
+    </message>
+    <message>
+        <source>Address Fetch</source>
+        <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
+        <translation type="unfinished">Преузимање адресе</translation>
+    </message>
     <message>
         <source>None</source>
         <translation type="unfinished">Nijedan</translation>
@@ -337,9 +391,21 @@ Signing is only possible with addresses of the type 'legacy'.</source>
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>%1 kB</source>
+        <translation type="unfinished">%1 килобајта</translation>
+    </message>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Фајл са подешавањима се не може прочитати</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Фајл са подешавањима се не може записати</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">%s девелопери</translation>
@@ -836,6 +902,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">Верификуј поруке и утврди да ли су потписане од стране спецификованих Биткоин адреса</translation>
     </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">&amp;Учитава ”PSBT” из датотеке…</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">Отвори &amp;URI</translation>
+    </message>
     <message>
         <source>Close Wallet…</source>
         <translation type="unfinished">Затвори новчаник...</translation>
@@ -868,6 +942,22 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Synchronizing with network…</source>
         <translation type="unfinished">Синхронизација са мрежом...</translation>
     </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Индексирање блокова на диску…</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Процесуирање блокова на диску</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Реиндексирање блокова на диску…</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Повезивање са клијентима...</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">Затражи плаћање (генерише QR кодове и биткоин: URI-е)</translation>
@@ -896,6 +986,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 behind</source>
         <translation type="unfinished">%1 уназад</translation>
     </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Ажурирање у току...</translation>
+    </message>
     <message>
         <source>Last received block was generated %1 ago.</source>
         <translation type="unfinished">Последњи примљени блок је направљен пре %1.</translation>
@@ -920,6 +1014,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Up to date</source>
         <translation type="unfinished">Ажурирано</translation>
     </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">Учитај делимично потписану Bitcoin трансакцију</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">Учитај делимично потписану Bitcoin трансакцију из clipboard-a</translation>
+    </message>
     <message>
         <source>Node window</source>
         <translation type="unfinished">Ноде прозор</translation>
@@ -960,6 +1062,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
         <translation type="unfinished">Прикажи  поруку помоћи %1 за листу са могућим опцијама Биткоин командне линије</translation>
     </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">&amp;Маскирај вредности</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">Филтрирај вредности у картици за преглед</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">подразумевани новчаник</translation>
@@ -980,6 +1090,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 клијент</translation>
     </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">&amp;Прикажи</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -989,6 +1103,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Клик за више акција</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">Прикажи картицу са ”Клијентима”</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">Онемогући мрежне активности</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">Омогући мрежне активности</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">Грешка: %1</translation>
@@ -1147,6 +1281,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy amount</source>
         <translation type="unfinished">Копирај износ</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Копирај адресу</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копирај &amp;означи</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Копирај &amp;износ</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">Закључај непотрошено</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">Откључај непотрошено</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Копирај количину</translation>
@@ -1219,7 +1373,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create wallet warning</source>
         <translation type="unfinished">Направи упозорење за новчаник</translation>
     </message>
-    </context>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Не могу да излистам потписнике</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1239,7 +1397,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
         <translation type="unfinished">Отвори новчаник</translation>
     </message>
-    </context>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">Отвањаре новчаника &lt;b&gt;%1&lt;/b&gt;</translation>
+    </message>
+</context>
 <context>
     <name>WalletController</name>
     <message>
@@ -1285,6 +1448,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Encrypt Wallet</source>
         <translation type="unfinished">Шифрирај новчаник</translation>
     </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">Напредне опције</translation>
+    </message>
     <message>
         <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
         <translation type="unfinished">Онемогући приватни кључ за овај новчаник. Новчаници са онемогућеним приватним кључем неће  имати приватни кључ и не могу имати HD семе или увезени приватни кључ. Ова опција идеална је за новчанике који су искључиво за посматрање.</translation>
@@ -1301,11 +1468,37 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Make Blank Wallet</source>
         <translation type="unfinished">Направи Празан Новчаник</translation>
     </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">Користите дескрипторе за управљање сцриптПубКеи-ом</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">Дескриптор Новчаник</translation>
+    </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Користите спољни уређај за потписивање као што је хардверски новчаник. Прво конфигуришите скрипту спољног потписника у подешавањима новчаника.
+</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Екстерни потписник</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">Направи</translation>
     </message>
-    </context>
+    <message>
+        <source>Compiled without sqlite support (required for descriptor wallets)</source>
+        <translation type="unfinished">Састављено без склите подршке (потребно за новчанике дескриптора)</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Састављено без подршке за спољно потписивање (потребно за спољно потписивање)</translation>
+    </message>
+</context>
 <context>
     <name>EditAddressDialog</name>
     <message>
@@ -1390,6 +1583,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Bitcoin</source>
         <translation type="unfinished">Биткоин</translation>
     </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(од  потребних %1 GB)</translation>
+    </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(%1 гигабајта је потребно за цео ланац)</translation>
+    </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Најмање %1 GB подататака биће складиштен у овај директорјиум који ће временом порасти.</translation>
@@ -1439,10 +1640,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
         <translation type="unfinished">Када кликнете на ОК, %1 ће почети с преузимањем и процесуирањем целокупног ланца блокова %4 (%2GB), почевши од најранијих трансакција у %3 када је %4 покренут.</translation>
     </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">Ограничите складиштење блок ланца на</translation>
+    </message>
     <message>
         <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
         <translation type="unfinished">Враћање ове опције захтева поновно преузимање целокупног блокчејна - ланца блокова. Брже је преузети цели ланац и касније га скратити. Онемогућава неке напредне опције.</translation>
     </message>
+    <message>
+        <source> GB</source>
+        <translation type="unfinished">Гигабајт</translation>
+    </message>
     <message>
         <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
         <translation type="unfinished">Првобитна синхронизација веома је захтевна и може изложити ваш рачунар хардверским проблемима који раније нису били примећени. Сваки пут када покренете %1, преузимање ће се наставити тамо где је било прекинуто.</translation>
@@ -1540,7 +1749,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 is currently syncing.  It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source>
         <translation type="unfinished">%1 се синхронузује. Преузеће заглавља и блокове од клијената и потврдити их док не стигне на крај ланца блокова.</translation>
     </message>
-    </context>
+    <message>
+        <source>Unknown. Syncing Headers (%1, %2%)…</source>
+        <translation type="unfinished">Непознато. Синхронизација заглавља (%1, %2%)...</translation>
+    </message>
+</context>
 <context>
     <name>OpenURIDialog</name>
     <message>
@@ -1571,6 +1784,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Start %1 on system login</source>
         <translation type="unfinished">&amp;Покрени %1 приликом пријаве на систем</translation>
     </message>
+    <message>
+        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">Омогућавање смањења значајно смањује простор на диску потребан за складиштење трансакција. Сви блокови су још увек у потпуности валидирани. Враћање ове поставке захтева поновно преузимање целог блоцкцхаина.</translation>
+    </message>
     <message>
         <source>Size of &amp;database cache</source>
         <translation type="unfinished">Величина кеша базе података</translation>
@@ -1643,6 +1860,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Троши непотврђени кусур</translation>
     </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">Екстерни потписник (нпр. хардверски новчаник)</translation>
+    </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">&amp;Путања скрипте спољног потписника</translation>
+    </message>
+    <message>
+        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
+        <translation type="unfinished">Пуна путања до скрипте компатибилне са Битцоин Цоре (нпр. Ц:\Довнлоадс\хви.еке или /Усерс/иоу/Довнлоадс/хви.пи). Пазите: злонамерни софтвер може украсти ваше новчиће</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Аутоматски отвори Биткоин клијент порт на рутеру. Ова опција ради само уколико твој рутер подржава и има омогућен UPnP.</translation>
@@ -1651,6 +1880,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">Мапирај порт користећи &amp;UPnP</translation>
     </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
+        <translation type="unfinished">Аутоматски отворите порт за Битцоин клијент на рутеру. Ово функционише само када ваш рутер подржава НАТ-ПМП и када је омогућен. Спољни порт би могао бити насумичан.</translation>
+    </message>
+    <message>
+        <source>Map port using NA&amp;T-PMP</source>
+        <translation type="unfinished">Мапирајте порт користећи НА&amp;Т-ПМП</translation>
+    </message>
     <message>
         <source>Accept connections from outside.</source>
         <translation type="unfinished">Прихвати спољашње концекције.</translation>
@@ -1687,6 +1924,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Tor</source>
         <translation type="unfinished">Тор</translation>
     </message>
+    <message>
+        <source>Show the icon in the system tray.</source>
+        <translation type="unfinished">Прикажите икону у системској палети.</translation>
+    </message>
+    <message>
+        <source>&amp;Show tray icon</source>
+        <translation type="unfinished">&amp;Прикажи икону у траци</translation>
+    </message>
     <message>
         <source>Show only a tray icon after minimizing the window.</source>
         <translation type="unfinished">Покажи само иконицу у панелу након минимизирања прозора</translation>
@@ -1723,6 +1968,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Да ли да се прикажу опције контроле новчића или не.</translation>
     </message>
+    <message>
+        <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor onion services.</source>
+        <translation type="unfinished">Повежите се на Битцоин мрежу преко засебног СОЦКС5 проксија за Тор онион услуге.</translation>
+    </message>
+    <message>
+        <source>Use separate SOCKS&amp;5 proxy to reach peers via Tor onion services:</source>
+        <translation type="unfinished">Користите посебан СОЦКС&amp;5 прокси да бисте дошли до вршњака преко услуга Тор онион:</translation>
+    </message>
+    <message>
+        <source>Monospaced font in the Overview tab:</source>
+        <translation type="unfinished">Једноразредни фонт на картици Преглед:</translation>
+    </message>
+    <message>
+        <source>embedded "%1"</source>
+        <translation type="unfinished">уграђено ”%1”</translation>
+    </message>
+    <message>
+        <source>closest matching "%1"</source>
+        <translation type="unfinished">Најближа сличност ”%1”</translation>
+    </message>
     <message>
         <source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
         <translation type="unfinished">Опције постављене у овом диалогу су поништене командном линијом или у конфигурационој датотеци:</translation>
@@ -1735,6 +2000,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Cancel</source>
         <translation type="unfinished">&amp;Откажи</translation>
     </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Састављено без подршке за спољно потписивање (потребно за спољно потписивање)</translation>
+    </message>
     <message>
         <source>default</source>
         <translation type="unfinished">подразумевано</translation>
@@ -1860,7 +2130,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Current total balance in watch-only addresses</source>
         <translation type="unfinished">Тренутни укупни салдо у адресама у опцији само-гледај</translation>
     </message>
-    </context>
+    <message>
+        <source>Privacy mode activated for the Overview tab. To unmask the values, uncheck Settings-&gt;Mask values.</source>
+        <translation type="unfinished">Режим приватности је активиран за картицу Преглед. Да бисте демаскирали вредности, поништите избор Подешавања-&gt;Маск вредности.</translation>
+    </message>
+</context>
 <context>
     <name>PSBTOperationsDialog</name>
     <message>
@@ -1887,10 +2161,67 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Close</source>
         <translation type="unfinished">Затвори</translation>
     </message>
+    <message>
+        <source>Failed to load transaction: %1</source>
+        <translation type="unfinished">Неуспело учитавање трансакције: %1</translation>
+    </message>
+    <message>
+        <source>Failed to sign transaction: %1</source>
+        <translation type="unfinished">Неуспело потписивање трансакције: %1</translation>
+    </message>
+    <message>
+        <source>Could not sign any more inputs.</source>
+        <translation type="unfinished">Није могуће потписати више уноса.</translation>
+    </message>
+    <message>
+        <source>Signed %1 inputs, but more signatures are still required.</source>
+        <translation type="unfinished">Потписано %1 поље, али је потребно још потписа.</translation>
+    </message>
+    <message>
+        <source>Signed transaction successfully. Transaction is ready to broadcast.</source>
+        <translation type="unfinished">Потписана трансакција је успешно. Трансакција је спремна за емитовање.</translation>
+    </message>
+    <message>
+        <source>Unknown error processing transaction.</source>
+        <translation type="unfinished">Непозната грешка у обради трансакције.</translation>
+    </message>
+    <message>
+        <source>Transaction broadcast successfully! Transaction ID: %1</source>
+        <translation type="unfinished">Трансакција је успешно емитована! Идентификација трансакције (ID): %1</translation>
+    </message>
+    <message>
+        <source>Transaction broadcast failed: %1</source>
+        <translation type="unfinished">Неуспело емитовање трансакције: %1</translation>
+    </message>
+    <message>
+        <source>PSBT copied to clipboard.</source>
+        <translation type="unfinished">ПСБТ је копиран у међуспремник.</translation>
+    </message>
     <message>
         <source>Save Transaction Data</source>
         <translation type="unfinished">Сачувај Податке Трансакције</translation>
     </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">Делимично потписана трансакција (бинарна)</translation>
+    </message>
+    <message>
+        <source>PSBT saved to disk.</source>
+        <translation type="unfinished">ПСБТ је сачуван на диску.</translation>
+    </message>
+    <message>
+        <source> * Sends %1 to %2</source>
+        <translation type="unfinished">*Шаље %1 до %2</translation>
+    </message>
+    <message>
+        <source>Unable to calculate transaction fee or total transaction amount.</source>
+        <translation type="unfinished">Није могуће израчунати накнаду за трансакцију или укупан износ трансакције.</translation>
+    </message>
+    <message>
+        <source>Pays transaction fee: </source>
+        <translation type="unfinished">Плаћа накнаду за трансакцију:</translation>
+    </message>
     <message>
         <source>Total Amount</source>
         <translation type="unfinished">Укупан износ</translation>
@@ -1899,6 +2230,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>or</source>
         <translation type="unfinished">или</translation>
     </message>
+    <message>
+        <source>Transaction has %1 unsigned inputs.</source>
+        <translation type="unfinished">Трансакција има %1 непотписана поља.</translation>
+    </message>
+    <message>
+        <source>Transaction is missing some information about inputs.</source>
+        <translation type="unfinished">Трансакцији недостају неке информације о улазима.</translation>
+    </message>
+    <message>
+        <source>Transaction still needs signature(s).</source>
+        <translation type="unfinished">Трансакција и даље треба потпис(е).</translation>
+    </message>
+    <message>
+        <source>(But this wallet cannot sign transactions.)</source>
+        <translation type="unfinished">(Али овај новчаник не може да потписује трансакције.)</translation>
+    </message>
+    <message>
+        <source>(But this wallet does not have the right keys.)</source>
+        <translation type="unfinished">(Али овај новчаник нема праве кључеве.)</translation>
+    </message>
+    <message>
+        <source>Transaction is fully signed and ready for broadcast.</source>
+        <translation type="unfinished">Трансакција је у потпуности потписана и спремна за емитовање.</translation>
+    </message>
     <message>
         <source>Transaction status is unknown.</source>
         <translation type="unfinished">Статус трансакције је непознат.</translation>
@@ -1922,6 +2277,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
         <translation type="unfinished">'bitcoin://' није важећи URI. Уместо тога користити  'bitcoin:'.</translation>
     </message>
+    <message>
+        <source>Cannot process payment request because BIP70 is not supported.
+Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
+If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source>
+        <translation type="unfinished">Није могуће обрадити захтев за плаћање јер БИП70 није подржан.
+Због широко распрострањених безбедносних пропуста у БИП70, топло се препоручује да се игноришу сва упутства трговца за промену новчаника.
+Ако добијете ову грешку, требало би да затражите од трговца да достави УРИ компатибилан са БИП21.</translation>
+    </message>
     <message>
         <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
         <translation type="unfinished">URI се не може рашчланити! Ово може бити проузроковано неважећом Биткоин адресом или погрешно форматираним URI параметрима.</translation>
@@ -1943,6 +2306,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Title of Peers Table column which indicates the current latency of the connection with the peer.</extracomment>
         <translation type="unfinished">Пинг</translation>
     </message>
+    <message>
+        <source>Peer</source>
+        <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
+        <translation type="unfinished">Пеер</translation>
+    </message>
     <message>
         <source>Direction</source>
         <extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
@@ -1986,6 +2354,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>QRImageWidget</name>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;Сачували слику…</translation>
+    </message>
     <message>
         <source>&amp;Copy Image</source>
         <translation type="unfinished">&amp;Копирај Слику</translation>
@@ -2006,7 +2378,12 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Save QR Code</source>
         <translation type="unfinished">Упамти QR Код</translation>
     </message>
-    </context>
+    <message>
+        <source>PNG Image</source>
+        <extracomment>Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics.</extracomment>
+        <translation type="unfinished">ПНГ слика</translation>
+    </message>
+</context>
 <context>
     <name>RPCConsole</name>
     <message>
@@ -2129,6 +2506,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Node window</source>
         <translation type="unfinished">Ноде прозор</translation>
     </message>
+    <message>
+        <source>Current block height</source>
+        <translation type="unfinished">Тренутна висина блока</translation>
+    </message>
     <message>
         <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source>
         <translation type="unfinished">Отворите %1 датотеку са записима о отклоњеним грешкама из тренутног директоријума датотека. Ово може потрајати неколико секунди за велике датотеке записа.</translation>
@@ -2141,14 +2522,59 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Increase font size</source>
         <translation type="unfinished">Увећај величину фонта</translation>
     </message>
+    <message>
+        <source>Permissions</source>
+        <translation type="unfinished">Дозволе</translation>
+    </message>
+    <message>
+        <source>The direction and type of peer connection: %1</source>
+        <translation type="unfinished">Смер и тип конекције клијената: %1</translation>
+    </message>
+    <message>
+        <source>Direction/Type</source>
+        <translation type="unfinished">Смер/Тип</translation>
+    </message>
+    <message>
+        <source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
+        <translation type="unfinished">Мрежни протокол који је овај пеер повезан преко: ИПв4, ИПв6, Онион, И2П или ЦЈДНС.</translation>
+    </message>
     <message>
         <source>Services</source>
         <translation type="unfinished">Услуге</translation>
     </message>
+    <message>
+        <source>Whether the peer requested us to relay transactions.</source>
+        <translation type="unfinished">Да ли је колега тражио од нас да пренесемо трансакције</translation>
+    </message>
+    <message>
+        <source>Wants Tx Relay</source>
+        <translation type="unfinished">Жели Тк Релаciju</translation>
+    </message>
+    <message>
+        <source>High bandwidth BIP152 compact block relay: %1</source>
+        <translation type="unfinished">Висок проток ”BIP152” преноса компактних блокова: %1</translation>
+    </message>
+    <message>
+        <source>High Bandwidth</source>
+        <translation type="unfinished">Висок проток</translation>
+    </message>
     <message>
         <source>Connection Time</source>
         <translation type="unfinished">Време конекције</translation>
     </message>
+    <message>
+        <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
+        <translation type="unfinished">Прошло је време од када је нови блок који је прошао почетне провере валидности примљен од овог равноправног корисника.</translation>
+    </message>
+    <message>
+        <source>Last Block</source>
+        <translation type="unfinished">Последњи блок</translation>
+    </message>
+    <message>
+        <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
+        <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
+        <translation type="unfinished">Прошло је време од када је нова трансакција прихваћена у наш мемпул примљена од овог партнера</translation>
+    </message>
     <message>
         <source>Last Send</source>
         <translation type="unfinished">Последње послато</translation>
@@ -2213,6 +2639,53 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Out:</source>
         <translation type="unfinished">Одлазно:</translation>
     </message>
+    <message>
+        <source>Inbound: initiated by peer</source>
+        <extracomment>Explanatory text for an inbound peer connection.</extracomment>
+        <translation type="unfinished">Долазни: покренут од стране вршњака</translation>
+    </message>
+    <message>
+        <source>Outbound Full Relay: default</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
+        <translation type="unfinished">Одлазни пуни релеј: подразумевано</translation>
+    </message>
+    <message>
+        <source>Outbound Block Relay: does not relay transactions or addresses</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">Оутбоунд Блоцк Релаи: не преноси трансакције или адресе</translation>
+    </message>
+    <message>
+        <source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
+        <extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
+        <translation type="unfinished">Изворно упутство: додато је коришћење ”RPC” %1 или %2 / %3 конфигурационих опција</translation>
+    </message>
+    <message>
+        <source>Outbound Feeler: short-lived, for testing addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">Оутбоунд Феелер: краткотрајан, за тестирање адреса</translation>
+    </message>
+    <message>
+        <source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
+        <translation type="unfinished">Дохваћање излазне адресе: краткотрајно, за тражење адреса</translation>
+    </message>
+    <message>
+        <source>we selected the peer for high bandwidth relay</source>
+        <translation type="unfinished">одабрали смо клијента за висок пренос података</translation>
+    </message>
+    <message>
+        <source>the peer selected us for high bandwidth relay</source>
+        <translation type="unfinished">клијент нас је одабрао за висок пренос података</translation>
+    </message>
+    <message>
+        <source>no high bandwidth relay selected</source>
+        <translation type="unfinished">није одабран проток за висок пренос података</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;Копирај адресу</translation>
+    </message>
     <message>
         <source>&amp;Disconnect</source>
         <translation type="unfinished">&amp;Прекини везу</translation>
@@ -2221,6 +2694,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>1 &amp;hour</source>
         <translation type="unfinished">1 &amp;Сат</translation>
     </message>
+    <message>
+        <source>1 d&amp;ay</source>
+        <translation type="unfinished">1 дан</translation>
+    </message>
     <message>
         <source>1 &amp;week</source>
         <translation type="unfinished">1 &amp;недеља</translation>
@@ -2245,6 +2722,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Executing command using "%1" wallet</source>
         <translation type="unfinished">Извршење команде коришћењем  "%1" новчаника</translation>
     </message>
+    <message>
+        <source>Welcome to the %1 RPC console.
+Use up and down arrows to navigate history, and %2 to clear screen.
+Use %3 and %4 to increase or decrease the font size.
+Type %5 for an overview of available commands.
+For more information on using this console, type %6.
+
+%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8</source>
+        <extracomment>RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally.</extracomment>
+        <translation type="unfinished">Добродошли у %1 "RPC” конзолу.
+Користи тастере за горе и доле да наводиш историју, и %2 да очистиш екран.
+Користи %3 и %4 да увећаш и смањиш величину фонта.
+Унеси %5 за преглед доступних комади.
+За више информација о коришћењу конзоле, притисни %6
+%7 УПОЗОРЕЊЕ: Преваранти су се активирали, говорећи корисницима да уносе команде овде, и тако краду садржај новчаника. Не користи ову конзолу без потпуног схватања комплексности ове команде. %8</translation>
+    </message>
+    <message>
+        <source>Executing…</source>
+        <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
+        <translation type="unfinished">Обрада...</translation>
+    </message>
+    <message>
+        <source>(peer: %1)</source>
+        <translation type="unfinished">(клијент: %1)</translation>
+    </message>
     <message>
         <source>via %1</source>
         <translation type="unfinished">преко %1</translation>
@@ -2269,6 +2771,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Ban for</source>
         <translation type="unfinished">Забрани за</translation>
     </message>
+    <message>
+        <source>Never</source>
+        <translation type="unfinished">Никада</translation>
+    </message>
     <message>
         <source>Unknown</source>
         <translation type="unfinished">Непознато</translation>
@@ -2348,11 +2854,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;URI</source>
         <translation type="unfinished">Копирај &amp;URI</translation>
     </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Копирај адресу</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копирај &amp;означи</translation>
+    </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">Копирај &amp;поруку</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Копирај &amp;износ</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">Новчаник није могуће откључати.</translation>
     </message>
-    </context>
+    <message>
+        <source>Could not generate new %1 address</source>
+        <translation type="unfinished">Немогуће је генерисати нову %1 адресу</translation>
+    </message>
+</context>
 <context>
     <name>ReceiveRequestDialog</name>
     <message>
@@ -2383,6 +2909,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;Address</source>
         <translation type="unfinished">Копирај &amp;Адресу</translation>
     </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">&amp;Верификуј</translation>
+    </message>
+    <message>
+        <source>Verify this address on e.g. a hardware wallet screen</source>
+        <translation type="unfinished">Верификуј ову адресу на пример на екрану хардвер новчаника</translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;Сачували слику…</translation>
+    </message>
     <message>
         <source>Payment information</source>
         <translation type="unfinished">Информације о плаћању</translation>
@@ -2513,14 +3051,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Clear all fields of the form.</source>
         <translation type="unfinished">Очисти сва поља форме.</translation>
     </message>
+    <message>
+        <source>Inputs…</source>
+        <translation type="unfinished">Поља...</translation>
+    </message>
     <message>
         <source>Dust:</source>
         <translation type="unfinished">Прашина:</translation>
     </message>
+    <message>
+        <source>Choose…</source>
+        <translation type="unfinished">Одабери...</translation>
+    </message>
     <message>
         <source>Hide transaction fee settings</source>
         <translation type="unfinished">Сакријте износ накнаде за трансакцију</translation>
     </message>
+    <message>
+        <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size.
+
+Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satoshis per kvB" for a transaction size of 500 virtual bytes (half of 1 kvB) would ultimately yield a fee of only 50 satoshis.</source>
+        <translation type="unfinished">Одредити прилагођену провизију по kB (1,000 битова) виртуелне величине трансакције. 
+
+Напомена: С обзиром да се провизија рачуна на основу броја бајтова, провизија за "100 сатошија по kB" за величину трансакције од 500 бајтова (пола од 1 kB) ће аутоматски износити само 50 сатошија.</translation>
+    </message>
     <message>
         <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
         <translation type="unfinished">Када је мањи обим трансакција од простора у блоку, рудари, као и повезани нодови могу применити минималну провизију. Плаћање само минималне накнаде - провизије је добро, али треба бити свестан да ово може резултовати трансакцијом која неће никада бити потврђена, у случају када је број захтева за биткоин трансакцијама већи од могућности мреже да обради.</translation>
@@ -2529,6 +3083,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
         <translation type="unfinished">Сувише ниска провизија може резултовати да трансакција никада не  буде потврђена (прочитајте опис)</translation>
     </message>
+    <message>
+        <source>(Smart fee not initialized yet. This usually takes a few blocks…)</source>
+        <translation type="unfinished">(Паметна провизија још није покренута. Ово уобичајено траје неколико блокова...)</translation>
+    </message>
     <message>
         <source>Confirmation time target:</source>
         <translation type="unfinished">Циљно време потврде:</translation>
@@ -2589,6 +3147,20 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 (%2 blocks)</source>
         <translation type="unfinished">%1 (%2 блокова)</translation>
     </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">Потпиши на уређају</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">Повежи прво свој хардвер новчаник.</translation>
+    </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Подси екстерну скрипту за потписивање у : Options -&gt; Wallet</translation>
+    </message>
     <message>
         <source>Cr&amp;eate Unsigned</source>
         <translation type="unfinished">Креирај непотписано</translation>
@@ -2609,14 +3181,41 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 to %2</source>
         <translation type="unfinished">%1 до %2</translation>
     </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">Да би сте прегледали листу примаоца кликните на "Прикажи детаље..."</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">Потписивање је неуспело</translation>
+    </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Екстерни потписник није пронађен</translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Грешка при екстерном потписивању</translation>
+    </message>
     <message>
         <source>Save Transaction Data</source>
         <translation type="unfinished">Сачувај Податке Трансакције</translation>
     </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">Делимично потписана трансакција (бинарна)</translation>
+    </message>
     <message>
         <source>PSBT saved</source>
         <translation type="unfinished">PSBT сачуван</translation>
     </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">Екстерни баланс (стање):</translation>
+    </message>
     <message>
         <source>or</source>
         <translation type="unfinished">или</translation>
@@ -2625,6 +3224,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source>
         <translation type="unfinished">Можете повећати провизију касније (сигнали Замени-са-Провизијом, BIP-125).</translation>
     </message>
+    <message>
+        <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
+        <translation type="unfinished">Молимо, проверите ваш предлог трансакције. Ово ће произвести делимично потписану Биткоин трансакцију (PSBT) коју можете копирати и онда потписати са нпр. офлајн %1 новчаником, или PSBT компатибилним хардверским новчаником.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -2792,7 +3396,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Send</source>
         <translation type="unfinished">Пошаљи</translation>
     </message>
-    </context>
+    <message>
+        <source>Create Unsigned</source>
+        <translation type="unfinished">Креирај непотписано</translation>
+    </message>
+</context>
 <context>
     <name>SignVerifyMessageDialog</name>
     <message>
@@ -2932,6 +3540,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">Порука је проверена.</translation>
     </message>
 </context>
+<context>
+    <name>TrafficGraphWidget</name>
+    <message>
+        <source>kB/s</source>
+        <translation type="unfinished">KB/s</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -3255,10 +3870,51 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Min amount</source>
         <translation type="unfinished">Минимални износ</translation>
     </message>
+    <message>
+        <source>Range…</source>
+        <translation type="unfinished">Опсег:</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Копирај адресу</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">Копирај &amp;означи</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Копирај &amp;износ</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">Копирај трансакцију &amp;ID</translation>
+    </message>
+    <message>
+        <source>Copy &amp;raw transaction</source>
+        <translation type="unfinished">Копирајте &amp;необрађену трансакцију</translation>
+    </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">Копирајте све детаље трансакције</translation>
+    </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">&amp;Прикажи детаље транакције</translation>
+    </message>
+    <message>
+        <source>Increase transaction &amp;fee</source>
+        <translation type="unfinished">Повећај провизију трансакције</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Извези Детаље Трансакције</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">CSV фајл</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">Потврђено</translation>
diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts
index fe707c7cec3..13f6a4a7d60 100644
--- a/src/qt/locale/bitcoin_sv.ts
+++ b/src/qt/locale/bitcoin_sv.ts
@@ -69,6 +69,11 @@
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
         <translation type="unfinished">Detta är dina Bitcoin-adresser för att skicka betalningar. Kontrollera alltid belopp och mottagaradress innan du skickar bitcoin.</translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Detta är dina Bitcoinadresser för att ta emot betalningar. Använd knappen 'Skapa ny mottagaradress' i mottagsfliken för att skapa nya adresser. Signering är bara tillgänglig för adresser av typen 'legacy'</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">&amp;Kopiera adress</translation>
@@ -244,9 +249,18 @@ Försök igen.</translation>
         <source>Internal error</source>
         <translation type="unfinished">Internt fel</translation>
     </message>
-    </context>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">Ett internt fel har uppstått. 1%1 kommer försöka att fortsätta. Detta är en oväntad bugg som kan rapporteras enligt nedan beskrivning.</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Ett allvarligt fel skedde. Se att filen för inställningar är möjlig att skriva, eller försök köra med "-nosettings"</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Fel: Angiven datakatalog "%1" finns inte.</translation>
@@ -259,6 +273,10 @@ Försök igen.</translation>
         <source>Error: %1</source>
         <translation type="unfinished">Fel: %1</translation>
     </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 har inte avslutats korrekt än...</translation>
+    </message>
     <message>
         <source>unknown</source>
         <translation type="unfinished">okänd</translation>
@@ -347,6 +365,14 @@ Försök igen.</translation>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Filen för inställningar kunde inte läsas</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Filen för inställningar kunde inte skapas</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">%s-utvecklarna</translation>
@@ -623,14 +649,30 @@ Försök igen.</translation>
         <source>Loading P2P addresses…</source>
         <translation type="unfinished">Laddar P2P-adresser…</translation>
     </message>
+    <message>
+        <source>Loading banlist…</source>
+        <translation type="unfinished">Läser in listan över bannlysningar …</translation>
+    </message>
+    <message>
+        <source>Loading block index…</source>
+        <translation type="unfinished">Läser in blockindex...</translation>
+    </message>
     <message>
         <source>Loading wallet…</source>
         <translation type="unfinished">Laddar plånboken…</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Saknat belopp</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">Port måste anges med -whitelist: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Inga adresser tillgängliga</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Ingen proxy-server vald. Använd -proxy=&lt;ip&gt; eller -proxy=&lt;ip:port&gt;.</translation>
@@ -647,6 +689,10 @@ Försök igen.</translation>
         <source>Prune mode is incompatible with -txindex.</source>
         <translation type="unfinished">Gallringsläge är inkompatibelt med -txindex.</translation>
     </message>
+    <message>
+        <source>Pruning blockstore…</source>
+        <translation type="unfinished">Rensar blockstore...</translation>
+    </message>
     <message>
         <source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
         <translation type="unfinished">Minskar -maxconnections från %d till %d, på grund av systembegränsningar.</translation>
@@ -763,6 +809,10 @@ Försök igen.</translation>
         <source>Unable to generate keys</source>
         <translation type="unfinished">Det gick inte att skapa nycklar</translation>
     </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">Det går inte att öppna %s för skrivning</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">Kunde inte starta HTTP-server. Se felsökningsloggen för detaljer.</translation>
@@ -858,6 +908,10 @@ Försök igen.</translation>
         <source>Create a new wallet</source>
         <translation type="unfinished">Skapa ny plånbok</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Minimera</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Plånbok:</translation>
@@ -903,6 +957,10 @@ Försök igen.</translation>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">Kryptera de privata nycklar som tillhör din plånbok</translation>
     </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;Säkerhetskopiera plånbok...</translation>
+    </message>
     <message>
         <source>&amp;Change Passphrase…</source>
         <translation type="unfinished">&amp;Ändra lösenordsfras…</translation>
@@ -959,10 +1017,30 @@ Försök igen.</translation>
         <source>Tabs toolbar</source>
         <translation type="unfinished">Verktygsfält för flikar</translation>
     </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">Synkar huvuden (%1%)...</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">Synkroniserar med nätverket...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Indexerar block på disken...</translation>
+    </message>
     <message>
         <source>Processing blocks on disk…</source>
         <translation type="unfinished">Behandlar block på disken…</translation>
     </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Indexerar om block på disken...</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Ansluter till noder...</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">Begär betalningar (skapar QR-koder och bitcoin: -URIer)</translation>
@@ -982,8 +1060,8 @@ Försök igen.</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>Bearbetade %n block av transaktionshistoriken.</numerusform>
+            <numerusform>Bearbetade %n block av transaktionshistoriken.</numerusform>
         </translation>
     </message>
     <message>
@@ -1018,6 +1096,10 @@ Försök igen.</translation>
         <source>Load Partially Signed Bitcoin Transaction</source>
         <translation type="unfinished">Läs in Delvis signerad Bitcoin transaktion (PSBT)</translation>
     </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Ladda PSBT från &amp;urklipp...</translation>
+    </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
         <translation type="unfinished">Läs in Delvis signerad Bitcoin transaktion (PSBT) från urklipp</translation>
@@ -1094,19 +1176,33 @@ Försök igen.</translation>
         <source>%1 client</source>
         <translation type="unfinished">%1-klient</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">och göm</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n aktiva anslutningar till Bitcoin-nätverket.</numerusform>
+            <numerusform>%n aktiva anslutningar till Bitcoin-nätverket.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Klicka för fler alternativ</translation>
+    </message>
     <message>
         <source>Disable network activity</source>
         <extracomment>A context menu item.</extracomment>
         <translation type="unfinished">Stäng av nätverksaktivitet</translation>
     </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">Aktivera nätverksaktivitet</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">Fel: %1</translation>
@@ -1359,6 +1455,19 @@ Försök igen.</translation>
         <translation type="unfinished">Kan inte lista signerare</translation>
     </message>
 </context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Ladda plånböcker</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Laddar plånböcker…</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1378,7 +1487,12 @@ Försök igen.</translation>
         <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
         <translation type="unfinished">Öppna plånbok</translation>
     </message>
-    </context>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">Öppnar Plånboken &lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+</context>
 <context>
     <name>WalletController</name>
     <message>
@@ -1529,10 +1643,18 @@ Försök igen.</translation>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1GB lagringsplats tillgängligt</translation>
+    </message>
     <message>
         <source>(of %1 GB needed)</source>
         <translation type="unfinished">(av %1 GB krävs)</translation>
     </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(%1 GB behövs för hela kedjan)</translation>
+    </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Minst %1 GB data kommer att sparas i den här katalogen, och de växer över tiden.</translation>
@@ -1581,6 +1703,10 @@ Försök igen.</translation>
         <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
         <translation type="unfinished">När du trycker OK kommer %1 att börja ladda ner och bearbeta den fullständiga %4-blockkedjan (%2 GB), med början vid de första transaktionerna %3 när %4 först lanserades.</translation>
     </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">Begränsa lagringsplats för blockkedjan till </translation>
+    </message>
     <message>
         <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
         <translation type="unfinished">Att återställa detta alternativ påbörjar en omstart av nedladdningen av hela blockkedjan. Det går snabbare att ladda ner hela kedjan först, och gallra den senare. Detta alternativ stänger av vissa avancerade funktioner.</translation>
@@ -1757,10 +1883,20 @@ Försök igen.</translation>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = auto, &lt;0 = lämna så många kärnor lediga)</translation>
     </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Aktivera R&amp;PC-server</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">&amp;Plånbok</translation>
     </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Ta bort avgift från summa som standard</translation>
+    </message>
     <message>
         <source>Enable coin &amp;control features</source>
         <translation type="unfinished">Aktivera mynt&amp;kontrollfunktioner</translation>
@@ -1773,6 +1909,11 @@ Försök igen.</translation>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp;Spendera obekräftad växel</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Aktivera &amp;PSBT-kontroll</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Öppna automatiskt Bitcoin-klientens port på routern. Detta fungerar endast om din router stödjer UPnP och det är är aktiverat.</translation>
@@ -1781,6 +1922,10 @@ Försök igen.</translation>
         <source>Map port using &amp;UPnP</source>
         <translation type="unfinished">Tilldela port med hjälp av &amp;UPnP</translation>
     </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
+        <translation type="unfinished">Öppna automatiskt Bitcoin-klientens port på routern. Detta fungerar endast om din router stödjer NAT-PMP och det är är aktiverat. Den externa porten kan vara slumpmässig.</translation>
+    </message>
     <message>
         <source>Accept connections from outside.</source>
         <translation type="unfinished">Acceptera anslutningar utifrån.</translation>
@@ -1895,6 +2040,10 @@ Försök igen.</translation>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">Konfigurationsfilen används för att ange avancerade användaralternativ som åsidosätter inställningar i GUI. Dessutom kommer alla kommandoradsalternativ att åsidosätta denna konfigurationsfil.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Fortsätt</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Avbryt</translation>
@@ -2033,6 +2182,10 @@ Försök igen.</translation>
         <source>Unknown error processing transaction.</source>
         <translation type="unfinished">Ett fel uppstod när transaktionen behandlades.</translation>
     </message>
+    <message>
+        <source>PSBT copied to clipboard.</source>
+        <translation type="unfinished">PSBT kopierad till urklipp.</translation>
+    </message>
     <message>
         <source>Save Transaction Data</source>
         <translation type="unfinished">Spara transaktionsdetaljer</translation>
@@ -2299,6 +2452,10 @@ Försök igen.</translation>
         <source>Synced Blocks</source>
         <translation type="unfinished">Synkade block</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Senaste Transaktion</translation>
+    </message>
     <message>
         <source>Mapped AS</source>
         <translation type="unfinished">Kartlagd AS</translation>
@@ -2571,6 +2728,10 @@ Försök igen.</translation>
 </context>
 <context>
     <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Request payment to …</source>
+        <translation type="unfinished">Begär betalning till ...</translation>
+    </message>
     <message>
         <source>Address:</source>
         <translation type="unfinished">Adress</translation>
@@ -3688,6 +3849,11 @@ Gå till Fil &gt; Öppna plånbok för att läsa in en plånbok.
         <source>Backup Wallet</source>
         <translation type="unfinished">Säkerhetskopiera Plånbok</translation>
     </message>
+    <message>
+        <source>Wallet Data</source>
+        <extracomment>Name of the wallet data file format.</extracomment>
+        <translation type="unfinished">Plånboksdata</translation>
+    </message>
     <message>
         <source>Backup Failed</source>
         <translation type="unfinished">Säkerhetskopiering misslyckades</translation>
diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/bitcoin_ta.ts
index 85b7bb4691b..b752eab9eb9 100644
--- a/src/qt/locale/bitcoin_ta.ts
+++ b/src/qt/locale/bitcoin_ta.ts
@@ -91,6 +91,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Export Address List</source>
         <translation type="unfinished">முகவரி பட்டியல் ஏக்ஸ்போர்ட் செய்க </translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">கமா பிரிக்கப்பட்ட கோப்பு</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -234,6 +239,21 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">வரை தடை செய்யப்பட்டது</translation>
     </message>
 </context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">ரனவே எக்ஸெப்ஷன்</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">ஒரு அபாயகரமான ஏரற் ஏற்பட்டது. %1 இனி பாதுகாப்பாக தொடர முடியாது மற்றும் வெளியேறும்</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">உள் எறர்</translation>
+    </message>
+    </context>
 <context>
     <name>QObject</name>
     <message>
@@ -248,6 +268,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: %1</source>
         <translation type="unfinished">பிழை: %1</translation>
     </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1இன்னும் பாதுகாப்பாக வெளியேரவில்லை ...</translation>
+    </message>
     <message>
         <source>unknown</source>
         <translation type="unfinished">தெரியாத</translation>
@@ -399,6 +423,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">தீர்க்க முடியாது -%s முகவரி: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
+        <translation type="unfinished">-blockfiltersindex இல்லாத -peerblockfilters அமைப்பு முடியாது </translation>
+    </message>
     <message>
         <source>Copyright (C) %i-%i</source>
         <translation type="unfinished">பதிப்புரிமை (ப) %i-%i</translation>
@@ -654,6 +682,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create a new wallet</source>
         <translation type="unfinished">புதிய வாலட்டை உருவாக்கு</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;குறைத்தல்</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">கைப்பை:</translation>
@@ -691,6 +723,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">உங்கள் பணப்பைச் சேர்ந்த தனிப்பட்ட விசைகளை குறியாக்குக</translation>
     </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;பேக்கப் வாலட்...</translation>
+    </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
         <translation type="unfinished">உங்கள் பிட்டினின் முகவரியுடன் செய்திகளை உங்களிடம் வைத்திருப்பதை நிரூபிக்க</translation>
@@ -699,6 +735,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">குறிப்பிடப்பட்ட விக்கிபீடியா முகவர்களுடன் கையொப்பமிடப்பட்டதை உறுதிப்படுத்த, செய்திகளை சரிபார்க்கவும்</translation>
     </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">திறந்த &amp;URI...</translation>
+    </message>
     <message>
         <source>&amp;File</source>
         <translation type="unfinished">&amp;கோப்பு</translation>
@@ -1696,6 +1736,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </context>
 <context>
     <name>PSBTOperationsDialog</name>
+    <message>
+        <source>Sign Tx</source>
+        <translation type="unfinished">கையெழுத்து Tx</translation>
+    </message>
     <message>
         <source>Close</source>
         <translation type="unfinished">நெருக்கமான</translation>
@@ -2664,6 +2708,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">செய்தி சரிபார்க்கப்பட்டது.</translation>
     </message>
 </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">ஷட்டவுன் செய்ய, "q" ஐ அழுத்தவும்</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -2982,6 +3033,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Export Transaction History</source>
         <translation type="unfinished">பரிவர்த்தனையின் வரலாற்றை எக்ஸ்போர்ட் செய்</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">கமா பிரிக்கப்பட்ட கோப்பு</translation>
+    </message>
     <message>
         <source>Confirmed</source>
         <translation type="unfinished">உறுதியாக</translation>
diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/bitcoin_th.ts
index 723a2843d40..5af8f8c9e50 100644
--- a/src/qt/locale/bitcoin_th.ts
+++ b/src/qt/locale/bitcoin_th.ts
@@ -65,13 +65,23 @@
         <source>Receiving addresses</source>
         <translation type="unfinished">แอดเดรส การรับ</translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">&amp;คัดลอก แอดเดรส</translation>
     </message>
     <message>
         <source>Copy &amp;Label</source>
-        <translation type="unfinished">&amp;คัดลอก เลเบล</translation>
+        <translation type="unfinished">คัดลอก &amp;เลเบล</translation>
     </message>
     <message>
         <source>&amp;Edit</source>
@@ -79,21 +89,21 @@
     </message>
     <message>
         <source>Export Address List</source>
-        <translation type="unfinished">ส่งออก รายการ แอดเดรส</translation>
+        <translation type="unfinished">ส่งออกรายการแอดเดรส</translation>
     </message>
     <message>
         <source>Comma separated file</source>
         <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
-        <translation type="unfinished">Comma(,) เพื่อแยก ไฟล์</translation>
+        <translation type="unfinished">เครื่องหมายจุลภาค (Comma) เพื่อแยกไฟล์</translation>
     </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
-        <translation type="unfinished">เกิด ข้อผิดพลาด ขณะพยายาม บันทึก รายการ แอดเดรส ไปยัง %1 โปรด ลอง อีกครั้ง</translation>
+        <translation type="unfinished">เกิดข้อผิดพลาดขณะพยายามบันทึกรายการแอดเดรสไปยัง %1 โปรดลองอีกครั้ง</translation>
     </message>
     <message>
         <source>Exporting Failed</source>
-        <translation type="unfinished">การส่งออก ล้มเหลว</translation>
+        <translation type="unfinished">การส่งออกล้มเหลว</translation>
     </message>
 </context>
 <context>
@@ -131,11 +141,11 @@
     </message>
     <message>
         <source>Show passphrase</source>
-        <translation type="unfinished">แสดง พาสเฟส</translation>
+        <translation type="unfinished">แสดงพาสเฟส</translation>
     </message>
     <message>
         <source>Encrypt wallet</source>
-        <translation type="unfinished">เข้ารหัส วอลเล็ต</translation>
+        <translation type="unfinished">เข้ารหัสวอลเล็ต</translation>
     </message>
     <message>
         <source>This operation needs your wallet passphrase to unlock the wallet.</source>
@@ -143,15 +153,15 @@
     </message>
     <message>
         <source>Unlock wallet</source>
-        <translation type="unfinished">ปลดล็อค วอลเล็ต</translation>
+        <translation type="unfinished">ปลดล็อควอลเล็ต</translation>
     </message>
     <message>
         <source>Change passphrase</source>
-        <translation type="unfinished">เปลี่ยน พาสเฟส</translation>
+        <translation type="unfinished">เปลี่ยนพาสเฟส</translation>
     </message>
     <message>
         <source>Confirm wallet encryption</source>
-        <translation type="unfinished">ยืนยัน การเข้ารหัส วอลเล็ต</translation>
+        <translation type="unfinished">ยืนยันการเข้ารหัสวอลเล็ต</translation>
     </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
@@ -163,7 +173,7 @@
     </message>
     <message>
         <source>Wallet encrypted</source>
-        <translation type="unfinished">เข้ารหัส วอลเล็ต เรียบร้อย</translation>
+        <translation type="unfinished">เข้ารหัสวอลเล็ตเรียบร้อย</translation>
     </message>
     <message>
         <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
@@ -171,7 +181,7 @@
     </message>
     <message>
         <source>Enter the old passphrase and new passphrase for the wallet.</source>
-        <translation type="unfinished">ป้อน พาสเฟส เก่า และ พาสเฟส ใหม่ สำหรับ วอลเล็ต</translation>
+        <translation type="unfinished">ป้อนพาสเฟสเก่าและพาสเฟสใหม่สำหรับวอลเล็ต</translation>
     </message>
     <message>
         <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
@@ -179,15 +189,15 @@
     </message>
     <message>
         <source>Wallet to be encrypted</source>
-        <translation type="unfinished">วอลเล็ต ที่ จะ เข้ารหัส</translation>
+        <translation type="unfinished">วอลเล็ตที่จะเข้ารหัส</translation>
     </message>
     <message>
         <source>Your wallet is about to be encrypted. </source>
-        <translation type="unfinished">วอลเล็ต ของคุณ กำลัง ถูก เข้ารหัส</translation>
+        <translation type="unfinished">วอลเล็ตของคุณกำลังถูกเข้ารหัส</translation>
     </message>
     <message>
         <source>Your wallet is now encrypted. </source>
-        <translation type="unfinished">วอลเล็ต ของคุณ ถูกเข้ารหัส เรียบร้อยแล้ว</translation>
+        <translation type="unfinished">วอลเล็ตของคุณถูกเข้ารหัสเรียบร้อยแล้ว</translation>
     </message>
     <message>
         <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
@@ -195,7 +205,7 @@
     </message>
     <message>
         <source>Wallet encryption failed</source>
-        <translation type="unfinished">การเข้ารหัส วอลเล็ต ล้มเหลว</translation>
+        <translation type="unfinished">การเข้ารหัสวอลเล็ตล้มเหลว</translation>
     </message>
     <message>
         <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
@@ -203,11 +213,11 @@
     </message>
     <message>
         <source>The supplied passphrases do not match.</source>
-        <translation type="unfinished">พาสเฟส ที่ป้อน ไม่ ถูก ต้อง</translation>
+        <translation type="unfinished">พาสเฟสที่ป้อนไม่ถูกต้อง</translation>
     </message>
     <message>
         <source>Wallet unlock failed</source>
-        <translation type="unfinished">การปลดล็อค วอลเล็ต ล้มเหลว</translation>
+        <translation type="unfinished">การปลดล็อควอลเล็ตล้มเหลว</translation>
     </message>
     <message>
         <source>The passphrase entered for the wallet decryption was incorrect.</source>
@@ -215,11 +225,11 @@
     </message>
     <message>
         <source>Wallet passphrase was successfully changed.</source>
-        <translation type="unfinished">เปลี่ยน พาสเฟส วอลเล็ต สำเร็จแล้ว</translation>
+        <translation type="unfinished">เปลี่ยนพาสเฟสวอลเล็ตสำเร็จแล้ว</translation>
     </message>
     <message>
         <source>Warning: The Caps Lock key is on!</source>
-        <translation type="unfinished">คำเตือน: Caps Lock คีย์ ถูก เปิด!</translation>
+        <translation type="unfinished">คำเตือน:แป้นคีย์ตัวอักษรพิมพ์ใหญ่ (Cap Lock) ถูกเปิด!</translation>
     </message>
 </context>
 <context>
@@ -231,6 +241,10 @@
 </context>
 <context>
     <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">ข้อยกเว้นการหลบหนี</translation>
+    </message>
     <message>
         <source>Internal error</source>
         <translation type="unfinished">ข้อผิดพลาดภายใน</translation>
@@ -343,10 +357,22 @@
         <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
         <translation type="unfinished">ข้อผิดพลาด: เลกาซี วอลเล็ต เพียง สนับสนุน "legacy", "p2sh-segwit", และ "bech32" ชนิด แอดเดรส</translation>
     </message>
+    <message>
+        <source>The transaction amount is too small to send after the fee has been deducted</source>
+        <translation type="unfinished">จำนวนเงินที่ทำธุรกรรมน้อยเกินไปที่จะส่งหลังจากหักค่าธรรมเนียมแล้ว</translation>
+    </message>
     <message>
         <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
         <translation type="unfinished">ไม่สามารถตั้ง -forcednsseed เป็น true ได้เมื่อการตั้งค่า -dnsseed เป็น false</translation>
     </message>
+    <message>
+        <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
+        <translation type="unfinished">ไม่สามารถตั้งค่า -peerblockfilters โดยที่ไม่มี -blockfilterindex</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%sขอฟังความเห็นเรื่องพอร์ต%u พอร์ตนี้ถือว่า "ไม่ดี" ดังนั้นจึงไม่น่าเป็นไปได้ที่ Bitcoin Core จะเชื่อมต่อกับพอร์ตนี้ ดู doc/p2p-bad-ports.md สำหรับรายละเอียดและรายการทั้งหมด</translation>
+    </message>
     <message>
         <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
         <translation type="unfinished">เกิดข้อผิดพลาดในการโหลด %s: กำลังโหลดวอลเล็ตผู้ลงนามภายนอกโดยไม่มีการรวบรวมการสนับสนุนผู้ลงนามภายนอก</translation>
@@ -355,6 +381,10 @@
         <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
         <translation type="unfinished">ไม่สามารถเปลี่ยนชื่อไฟล์ peers.dat ที่ไม่ถูกต้อง โปรดย้ายหรือลบแล้วลองอีกครั้ง</translation>
     </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">การเชื่อมต่อขาออก จำกัด ไว้ที่ Tor (-onlynet=onion) แต่ไม่มีพร็อกซีสำหรับการเข้าถึงเครือข่าย Tor (ไม่มี -proxy= และไม่มี -onion= กำหนด) หรือถูกห้ามอย่างชัดแจ้ง (-onion=0)</translation>
+    </message>
     <message>
         <source>Could not find asmap file %s</source>
         <translation type="unfinished">ไม่ ตรวจพบ ไฟล์ asmap %s</translation>
@@ -471,6 +501,18 @@
         <source>Insufficient funds</source>
         <translation type="unfinished">เงินทุน ไม่เพียงพอ</translation>
     </message>
+    <message>
+        <source>Loading P2P addresses…</source>
+        <translation type="unfinished">กำลังโหลด P2P addresses…</translation>
+    </message>
+    <message>
+        <source>Loading banlist…</source>
+        <translation type="unfinished">กำลังโหลด banlist…</translation>
+    </message>
+    <message>
+        <source>Loading block index…</source>
+        <translation type="unfinished">กำลังโหลด block index…</translation>
+    </message>
     <message>
         <source>Loading wallet…</source>
         <translation type="unfinished">กำลังโหลด วอลเล็ต...</translation>
@@ -479,14 +521,34 @@
         <source>Missing amount</source>
         <translation type="unfinished">จำนวน ที่หายไป</translation>
     </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">ไม่มีข้อมูลการแก้ไขสำหรับการประมาณค่าขนาดธุรกรรม</translation>
+    </message>
     <message>
         <source>No addresses available</source>
         <translation type="unfinished">ไม่มี แอดเดรส ที่ใช้งานได้</translation>
     </message>
+    <message>
+        <source>Not enough file descriptors available.</source>
+        <translation type="unfinished">มีตัวอธิบายไฟล์ไม่เพียงพอ</translation>
+    </message>
+    <message>
+        <source>Prune cannot be configured with a negative value.</source>
+        <translation type="unfinished">ไม่สามารถกำหนดค่าพรุนด้วยค่าลบ</translation>
+    </message>
+    <message>
+        <source>Prune mode is incompatible with -txindex.</source>
+        <translation type="unfinished">โหมดพรุนเข้ากันไม่ได้กับ -txindex</translation>
+    </message>
     <message>
         <source>Rescanning…</source>
         <translation type="unfinished">ทำการสแกนซ้ำ…</translation>
     </message>
+    <message>
+        <source>Section [%s] is not recognized.</source>
+        <translation type="unfinished">ส่วน [%s] ไม่เป็นที่รู้จัก</translation>
+    </message>
     <message>
         <source>Specified -walletdir "%s" does not exist</source>
         <translation type="unfinished">Specified -walletdir "%s" ไม่มีอยู่</translation>
@@ -559,6 +621,10 @@
         <source>Transaction too large</source>
         <translation type="unfinished">ธุรกรรมใหญ่เกินไป</translation>
     </message>
+    <message>
+        <source>Unable to bind to %s on this computer. %s is probably already running.</source>
+        <translation type="unfinished">ไม่สามารถผูก %s บนคอมพิวเตอร์นี้ %s อาจเนื่องมาจากเคยใช้แล้ว</translation>
+    </message>
     <message>
         <source>Unable to create the PID file '%s': %s</source>
         <translation type="unfinished">ไม่สามารถสร้างไฟล์ PID '%s': %s</translation>
@@ -575,6 +641,10 @@
         <source>Unable to open %s for writing</source>
         <translation type="unfinished">ไม่สามารถเปิด %s สำหรับการเขียนข้อมูล</translation>
     </message>
+    <message>
+        <source>Unknown -blockfilterindex value %s.</source>
+        <translation type="unfinished">ไม่รู้จัก -ค่า blockfilterindex value %s</translation>
+    </message>
     <message>
         <source>Unknown address type '%s'</source>
         <translation type="unfinished">ไม่รู้จัก ประเภท แอดเดรส '%s'</translation>
@@ -587,10 +657,18 @@
         <source>Unknown network specified in -onlynet: '%s'</source>
         <translation type="unfinished">ไม่รู้จัก เครือข่าย ที่ระบุ ใน -onlynet: '%s'</translation>
     </message>
+    <message>
+        <source>Unsupported logging category %s=%s.</source>
+        <translation type="unfinished">หมวดหมู่การบันทึกที่ไม่รองรับ %s=%s</translation>
+    </message>
     <message>
         <source>Upgrading UTXO database</source>
         <translation type="unfinished">กำลังอัพเกรด ฐานข้อมูล UTXO</translation>
     </message>
+    <message>
+        <source>User Agent comment (%s) contains unsafe characters.</source>
+        <translation type="unfinished">ความคิดเห็นของ User Agent (%s) มีอักขระที่ไม่ปลอดภัย</translation>
+    </message>
     <message>
         <source>Verifying blocks…</source>
         <translation type="unfinished">กำลังตรวจสอบ บล็อก…</translation>
@@ -599,7 +677,11 @@
         <source>Verifying wallet(s)…</source>
         <translation type="unfinished">กำลังตรวจสอบ วอลเล็ต…</translation>
     </message>
-    </context>
+    <message>
+        <source>Wallet needed to be rewritten: restart %s to complete</source>
+        <translation type="unfinished">ต้องเขียน Wallet ใหม่: restart %s เพื่อให้เสร็จสิ้น</translation>
+    </message>
+</context>
 <context>
     <name>BitcoinGUI</name>
     <message>
@@ -673,7 +755,7 @@
     </message>
     <message>
         <source>Backup wallet to another location</source>
-        <translation type="unfinished">สำรองข้อมูล วอลเล็ต ไปยัง ตำแหน่ง ที่ตั้ง อื่น</translation>
+        <translation type="unfinished">แบ็คอัพวอลเล็ตไปยังตำแหน่งที่ตั้งอื่น</translation>
     </message>
     <message>
         <source>Change the passphrase used for wallet encryption</source>
@@ -701,7 +783,7 @@
     </message>
     <message>
         <source>&amp;Backup Wallet…</source>
-        <translation type="unfinished">&amp;สำรองข้อมูล วอลเล็ต...</translation>
+        <translation type="unfinished">&amp;แบ็คอัพวอลเล็ต…</translation>
     </message>
     <message>
         <source>&amp;Change Passphrase…</source>
@@ -1188,6 +1270,10 @@
         <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
         <translation type="unfinished">คุณ แน่ใจ หรือไม่ว่า ต้องการ ปิด วอลเล็ต &lt;i&gt;%1&lt;/i&gt;?</translation>
     </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled</translation>
+    </message>
     <message>
         <source>Close all wallets</source>
         <translation type="unfinished">ปิด วอลเล็ต ทั้งหมด</translation>
@@ -1223,10 +1309,18 @@
         <source>Advanced Options</source>
         <translation type="unfinished">ตัวเลือก ขั้นสูง</translation>
     </message>
+    <message>
+        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
+        <translation type="unfinished">Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets</translation>
+    </message>
     <message>
         <source>Disable Private Keys</source>
         <translation type="unfinished">ปิดใช้งาน คีย์ ส่วนตัว</translation>
     </message>
+    <message>
+        <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
+        <translation type="unfinished">Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time</translation>
+    </message>
     <message>
         <source>Make Blank Wallet</source>
         <translation type="unfinished">ทำ วอลเล็ต ให้ว่างเปล่า</translation>
@@ -1235,6 +1329,10 @@
         <source>Descriptor Wallet</source>
         <translation type="unfinished">ตัวอธิบาย วอลเล็ต</translation>
     </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">สร้าง</translation>
@@ -1278,6 +1376,14 @@
         <source>The entered address "%1" is not a valid Bitcoin address.</source>
         <translation type="unfinished">แอดเดรส ที่ป้อน "%1" เป็น Bitcoin แอดเดรส ที่ ไม่ ถูกต้อง</translation>
     </message>
+    <message>
+        <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source>
+        <translation type="unfinished">Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is already in the address book with label "%2".</source>
+        <translation type="unfinished">The entered address "%1" is already in the address book with label "%2"</translation>
+    </message>
     <message>
         <source>Could not unlock wallet.</source>
         <translation type="unfinished">ไม่สามารถปลดล็อควอลเล็ต</translation>
@@ -1316,6 +1422,10 @@
         <source>%1 GB of space available</source>
         <translation type="unfinished">มีพื้นที่ว่าง %1 GB ที่ใช้งานได้</translation>
     </message>
+    <message>
+        <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
+        <translation type="unfinished">At least %1 GB of data will be stored in this directory, and it will grow over time</translation>
+    </message>
     <message>
         <source>Approximately %1 GB of data will be stored in this directory.</source>
         <translation type="unfinished">ประมาณ %1 GB ของข้อมูลจะเก็บในไดเร็กทอรี่</translation>
@@ -1351,6 +1461,22 @@
         <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source>
         <translation type="unfinished">นี่เป็นการรันโปรแกรมครั้งแรก ท่านสามารถเลือก ว่าจะเก็บข้อมูลไว้ที่ %1</translation>
     </message>
+    <message>
+        <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
+        <translation type="unfinished">When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
+        <translation type="unfinished">Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features</translation>
+    </message>
+    <message>
+        <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
+        <translation type="unfinished">This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off</translation>
+    </message>
+    <message>
+        <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
+        <translation type="unfinished">If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low</translation>
+    </message>
     <message>
         <source>Use the default data directory</source>
         <translation type="unfinished">ใช้ ไดเรกทอรี ข้อมูล เริ่มต้น</translation>
@@ -1663,6 +1789,10 @@
         <source>Cannot sign inputs while wallet is locked.</source>
         <translation type="unfinished">ไม่สามารถลงนามอินพุตในขณะที่วอลเล็ตถูกล็อค</translation>
     </message>
+    <message>
+        <source>Unknown error processing transaction.</source>
+        <translation type="unfinished">ข้อผิดพลาดที่ไม่รู้จักของการประมวลผลธุรกรรม</translation>
+    </message>
     <message>
         <source>Total Amount</source>
         <translation type="unfinished">จำนวนทั้งหมด</translation>
@@ -2522,6 +2652,10 @@
         <source>Copy full transaction &amp;details</source>
         <translation type="unfinished">คัดลอก full transaction &amp;details</translation>
     </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">&amp;แสดงรายละเอียดการทำธุรกรรม</translation>
+    </message>
     <message>
         <source>&amp;Edit address label</source>
         <translation type="unfinished">&amp;แก้ไข แอดเดรส เลเบล</translation>
@@ -2602,6 +2736,19 @@
         <source>Send Coins</source>
         <translation type="unfinished">ส่ง คอยน์</translation>
     </message>
+    <message>
+        <source>Increasing transaction fee failed</source>
+        <translation type="unfinished">ค่าธรรมเนียมการทำธุรกรรมที่เพิ่มขึ้นล้มเหลว</translation>
+    </message>
+    <message>
+        <source>Do you want to increase the fee?</source>
+        <extracomment>Asks a user if they would like to manually increase the fee of a transaction that has already been created.</extracomment>
+        <translation type="unfinished">คุณต้องการเพิ่มค่าธรรมเนียมหรือไม่?</translation>
+    </message>
+    <message>
+        <source>Current fee:</source>
+        <translation type="unfinished">ค่าธรรมเนียมปัจจุบัน:</translation>
+    </message>
     <message>
         <source>Increase:</source>
         <translation type="unfinished">เพิ่มขึ้น:</translation>
@@ -2610,10 +2757,22 @@
         <source>New fee:</source>
         <translation type="unfinished">ค่าธรรมเนียม ใหม่:</translation>
     </message>
+    <message>
+        <source>Can't draft transaction.</source>
+        <translation type="unfinished">ไม่สามารถร่างธุรกรรมได้</translation>
+    </message>
     <message>
         <source>PSBT copied</source>
         <translation type="unfinished">คัดลอก PSBT แล้ว</translation>
     </message>
+    <message>
+        <source>Can't sign transaction.</source>
+        <translation type="unfinished">ไม่สามารถลงนามในการทำธุรกรรม</translation>
+    </message>
+    <message>
+        <source>Could not commit transaction</source>
+        <translation type="unfinished">ไม่สามารถทำธุรกรรมได้</translation>
+    </message>
     <message>
         <source>Can't display address</source>
         <translation type="unfinished">ไม่สามารถ แสดง แอดเดรส</translation>
@@ -2635,7 +2794,7 @@
     </message>
     <message>
         <source>Backup Wallet</source>
-        <translation type="unfinished">สำรองข้อมูล วอลเล็ต</translation>
+        <translation type="unfinished">แบ็คอัพวอลเล็ต</translation>
     </message>
     <message>
         <source>Wallet Data</source>
@@ -2650,6 +2809,10 @@
         <source>Backup Successful</source>
         <translation type="unfinished">สำรองข้อมูล สำเร็จแล้ว</translation>
     </message>
+    <message>
+        <source>The wallet data was successfully saved to %1.</source>
+        <translation type="unfinished">บันทึกข้อมูลวอลเล็ตไว้ที่ %1 เรียบร้อยแล้ว</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">ยกเลิก</translation>
diff --git a/src/qt/locale/bitcoin_tl.ts b/src/qt/locale/bitcoin_tl.ts
new file mode 100644
index 00000000000..692d7a30e5b
--- /dev/null
+++ b/src/qt/locale/bitcoin_tl.ts
@@ -0,0 +1,1501 @@
+<TS version="2.1" language="tl">
+<context>
+    <name>AddressBookPage</name>
+    <message>
+        <source>Right-click to edit address or label</source>
+        <translation type="unfinished">I-right-click upang i-edit ang address o label</translation>
+    </message>
+    <message>
+        <source>Create a new address</source>
+        <translation type="unfinished">Gumawa ng bagong ♦address♦</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation type="unfinished">&amp;Bago</translation>
+    </message>
+    <message>
+        <source>Copy the currently selected address to the system clipboard</source>
+        <translation type="unfinished">Kopyahin ang pinipiling ♦address♦ sa kasalakuyan sa ♦clipboard♦ ng sistema</translation>
+    </message>
+    <message>
+        <source>C&amp;lose</source>
+        <translation type="unfinished">Isara</translation>
+    </message>
+    <message>
+        <source>Delete the currently selected address from the list</source>
+        <translation type="unfinished">Tanggalin ang kasalukuyang napiling ♦address♦ sa listahan</translation>
+    </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">Ilagay ang ♦address♦ o label na hahanapin</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">I-export ang datos sa kasalukuyang ♦tab♦ sa isang file</translation>
+    </message>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;I-export</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation type="unfinished">&amp;Tanggalin</translation>
+    </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">Piliin ang ♦address♦ kung saan ipapadala ang mga coin</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">Piliin ang ♦address♦ kung saan tatanggap ng mga coin</translation>
+    </message>
+    <message>
+        <source>C&amp;hoose</source>
+        <translation type="unfinished">&amp;Pumili</translation>
+    </message>
+    <message>
+        <source>Sending addresses</source>
+        <translation type="unfinished">Pinapadala ang mga ♦address♦</translation>
+    </message>
+    <message>
+        <source>Receiving addresses</source>
+        <translation type="unfinished">Tinatanggap ang mga ♦address♦</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">Ito ang mga ♦address♦ ng ♦Bitcoin♦ mo para pagpapadala ng mga bayad. Palaging suriin mo ang halaga at address kung saan tatanggap bago magpadala ka ng mga ♦coin.</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Ito ang mga address ng ♦Bitcoin♦ para sa pagtanggap ng mga baya. Gamitin ang 'Create new receiving address' na button sa receive tab para gumawa ng bagong mga address. Ang pag-sign ay posible lamang sa uri ng mga address na 'legacy'.</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Address</source>
+        <translation type="unfinished">&amp;Kopyahin ang ♦Address♦</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Label</source>
+        <translation type="unfinished">Kopyahin ang &amp;♦Label♦</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation type="unfinished">&amp;I-edit</translation>
+    </message>
+    <message>
+        <source>Export Address List</source>
+        <translation type="unfinished">I-Export ang Listahan ng ♦Address♦</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Kuwit hiwalay na ♦file♦</translation>
+    </message>
+    <message>
+        <source>There was an error trying to save the address list to %1. Please try again.</source>
+        <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
+        <translation type="unfinished">May mali sa pagsubok na i-save ang listahan ng address  sa 1%1. Pakisubukan ulit.</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">Ang pag-export ay Nabigo</translation>
+    </message>
+</context>
+<context>
+    <name>AddressTableModel</name>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">♦Label♦</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">♦Address♦</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(walang tatak)</translation>
+    </message>
+</context>
+<context>
+    <name>AskPassphraseDialog</name>
+    <message>
+        <source>Passphrase Dialog</source>
+        <translation type="unfinished">♦Passphrase♦ na ♦Dialog♦</translation>
+    </message>
+    <message>
+        <source>Enter passphrase</source>
+        <translation type="unfinished">Ilagay ang ♦passphrase♦</translation>
+    </message>
+    <message>
+        <source>New passphrase</source>
+        <translation type="unfinished">Bagong ♦passphrase♦</translation>
+    </message>
+    <message>
+        <source>Repeat new passphrase</source>
+        <translation type="unfinished">Ulitin ang bagong ♦passphrase♦</translation>
+    </message>
+    <message>
+        <source>Show passphrase</source>
+        <translation type="unfinished">Ipakita ang ♦passphrase♦</translation>
+    </message>
+    <message>
+        <source>Encrypt wallet</source>
+        <translation type="unfinished">I-encrypt ang pitaka</translation>
+    </message>
+    <message>
+        <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+        <translation type="unfinished">Ang operasyon na ito ay nangangailangan ng iyong pitaka ♦passphrase♦ para i-unlock ang pitaka.</translation>
+    </message>
+    <message>
+        <source>Unlock wallet</source>
+        <translation type="unfinished">I-unlock ang pitaka</translation>
+    </message>
+    <message>
+        <source>Change passphrase</source>
+        <translation type="unfinished">Palitan ang ♦passphrase♦</translation>
+    </message>
+    <message>
+        <source>Confirm wallet encryption</source>
+        <translation type="unfinished">Kumpirmahin ang ♦encryption♦ ng pitaka</translation>
+    </message>
+    <message>
+        <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
+        <translation type="unfinished">Babala: IKung i-encrypt mo ang iyong pitaka at mawawala ang ♦passphrase♦,  &lt;b&gt;MAWAWALA MO ANG LAHAT NG IYONG MGA BITCOIN&lt;/b&gt;!</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to encrypt your wallet?</source>
+        <translation type="unfinished">Sigurado ka ba na gusto mong i-encrypt ang iyong pitaka?</translation>
+    </message>
+    <message>
+        <source>Wallet encrypted</source>
+        <translation type="unfinished">Ang pitaka ay na-encrypt na</translation>
+    </message>
+    <message>
+        <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+        <translation type="unfinished">Ilagay ang bagong ♦passphrase♦ para sa pitaka.&lt;br/&gt;Pakigamit ang ♦passphrase♦ of &lt;b&gt;sampu o higit pa na mga ♦random♦ na mga karakter&lt;/b&gt;, o &lt;b&gt;walo o higit pang mga salita&lt;/b&gt;.</translation>
+    </message>
+    <message>
+        <source>Enter the old passphrase and new passphrase for the wallet.</source>
+        <translation type="unfinished">Ilagay ang lumang ♦passphrase♦ at ang bagong ♦passphrase♦ para sa pitaka.</translation>
+    </message>
+    <message>
+        <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+        <translation type="unfinished">Tandaan na ang pag-encrypt sa iyong pitaka ay hindi ganap na mapoprotektahan ang mga ♦bitcoin♦ sa pagnanakaw ng ♦malware♦ na makakahawa sa iyong kompyuter.</translation>
+    </message>
+    <message>
+        <source>Wallet to be encrypted</source>
+        <translation type="unfinished">Ang pitaka ay i-encrypt</translation>
+    </message>
+    <message>
+        <source>Your wallet is about to be encrypted. </source>
+        <translation type="unfinished">Ang iyong pitaka ay mae-encrypt na.</translation>
+    </message>
+    <message>
+        <source>Your wallet is now encrypted. </source>
+        <translation type="unfinished">Ang iyong pitaka ay na-encrypt na.</translation>
+    </message>
+    <message>
+        <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+        <translation type="unfinished">MAHALAGA: Kahit anong dating mga ♦backup♦ na ginawa mo sa ♦file♦ ng pitaka mo ay dapat na mapalitan ng bagong gawang, na-encrypt na ♦file♦ ng pitaka. Para sa mga rason ng seguridad, dating mga ♦backup♦ sa hindi na-encrypt na ♦file♦ ng pitaka ay magiging walang silbi sa lalong madaling panahon na sisimulan mong gamitin ang bago, na na-encrypt na pitaka.</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed</source>
+        <translation type="unfinished">Ang pag-encrypt sa pitaka ay nabigo</translation>
+    </message>
+    <message>
+        <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+        <translation type="unfinished">Nabigo ang pag-encrypt sa pitaka dahil sa panloob na pagkakamali. Ang iyong pitaka ay hindi na-encrypt.</translation>
+    </message>
+    <message>
+        <source>The supplied passphrases do not match.</source>
+        <translation type="unfinished">Ang mga ibinigay na mga ♦passphrase♦ ay hindi nagtugma.</translation>
+    </message>
+    <message>
+        <source>Wallet unlock failed</source>
+        <translation type="unfinished">Ang pag-unlock sa pitaka ay nabigo</translation>
+    </message>
+    <message>
+        <source>The passphrase entered for the wallet decryption was incorrect.</source>
+        <translation type="unfinished">Ang ♦passphrase♦ na ipinasok sa ♦decryption♦ sa pitaka ay hindi tama.</translation>
+    </message>
+    <message>
+        <source>Wallet passphrase was successfully changed.</source>
+        <translation type="unfinished">Ang ♦passphrase♦ ng pitaka ay matagumpay na nabago.</translation>
+    </message>
+    <message>
+        <source>Warning: The Caps Lock key is on!</source>
+        <translation type="unfinished">Babala: Ang ♦Caps Lock Key♦ ay naka-on!</translation>
+    </message>
+</context>
+<context>
+    <name>BanTableModel</name>
+    <message>
+        <source>IP/Netmask</source>
+        <translation type="unfinished">♦IP/Netmask♦</translation>
+    </message>
+    <message>
+        <source>Banned Until</source>
+        <translation type="unfinished">Ipinagbabawal Hanggang</translation>
+    </message>
+</context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">Pagbubukod sa pagtakbo papalayo </translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">Malubhang pagkakamali ay naganap. 1%1 hindi na pwedeng magpatuloy ng ligtas at ihihinto na.</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">Panloob na pagkakamali</translation>
+    </message>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">May panloob na pagkakamali ang naganap. 1%1 ay magtatangkang ituloy na ligtas. Ito ay hindi inaasahan na problema na maaaring i-ulat katulad ng pagkalarawan sa ibaba.</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Gusto mo bang i-reset ang mga ♦setting♦ sa ♦default♦ na mga ♦value♦, o itigil na hindi gumagawa ng mga pagbabago?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Isang malubhang pagkakamali ang naganap. Suriin ang mga ♦setting♦ ng ♦file♦ na ♦writable♦, o subukan na patakbuhin sa ♦-nosettings♦.</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" does not exist.</source>
+        <translation type="unfinished">Pagkakamali: Ang natukoy na datos na ♦directory♦ "1%1" ay wala.</translation>
+    </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">Pagkakamali: Hindi ma-parse ang ♦configuration file♦: %1.</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">Pagkakamali: 1%1</translation>
+    </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">1%1 hindi pa nag-exit ng ligtas...</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Halaga</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n second(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n minute(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n hour(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n day(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n week(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n year(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Ang mga ♦setting file♦ ay hindi mabasa</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Ang mga ♦settings file♦ ay hindi maisulat</translation>
+    </message>
+    </context>
+<context>
+    <name>BitcoinGUI</name>
+    <message>
+        <source>&amp;Overview</source>
+        <translation type="unfinished">&amp;Pangkalahatang ideya</translation>
+    </message>
+    <message>
+        <source>Show general overview of wallet</source>
+        <translation type="unfinished">Ipakita ang pangkalahatang ideya ng pitaka</translation>
+    </message>
+    <message>
+        <source>&amp;Transactions</source>
+        <translation type="unfinished">&amp;Mga transaksyon</translation>
+    </message>
+    <message>
+        <source>Browse transaction history</source>
+        <translation type="unfinished">Tignan ang kasaysayan ng transaksyon</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation type="unfinished">♦E&amp;xit</translation>
+    </message>
+    <message>
+        <source>Quit application</source>
+        <translation type="unfinished">Ihinto ang aplikasyon</translation>
+    </message>
+    <message>
+        <source>&amp;About %1</source>
+        <translation type="unfinished">&amp;Tungkol sa 1%1</translation>
+    </message>
+    <message>
+        <source>Show information about %1</source>
+        <translation type="unfinished">Ipakita ang impormasyon tungkol sa 1%1</translation>
+    </message>
+    <message>
+        <source>About &amp;Qt</source>
+        <translation type="unfinished">Patungkol sa &amp;♦Qt♦</translation>
+    </message>
+    <message>
+        <source>Modify configuration options for %1</source>
+        <translation type="unfinished">Baguhin ang mga pagpipilian sa ♦configuration♦ para sa 1%1</translation>
+    </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Gumawa ng bagong pitaka</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">Pitaka:</translation>
+    </message>
+    <message>
+        <source>Network activity disabled.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">Na-disable ang aktibidad ng ♦network♦</translation>
+    </message>
+    <message>
+        <source>Send coins to a Bitcoin address</source>
+        <translation type="unfinished">Magpadala ng mga ♦coin♦ sa ♦address♦ ng Bitcoin</translation>
+    </message>
+    <message>
+        <source>Backup wallet to another location</source>
+        <translation type="unfinished">I-backup ang pitaka sa ibang lokasyon</translation>
+    </message>
+    <message>
+        <source>Change the passphrase used for wallet encryption</source>
+        <translation type="unfinished">Palitan ang ♦passphrase♦ na ginamit para sa pag-encrypt sa pitaka</translation>
+    </message>
+    <message>
+        <source>&amp;Send</source>
+        <translation type="unfinished">&amp;Ipadala</translation>
+    </message>
+    <message>
+        <source>&amp;Receive</source>
+        <translation type="unfinished">&amp;Tumanggap</translation>
+    </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;Mga pagpipilian...</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;I-encrypt ang pitaka</translation>
+    </message>
+    <message>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">I-encrypt ang mga pribadong mga susi na nabibilang sa iyong pitaka</translation>
+    </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;I-backup ang Pitaka...</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;Palitan ang ♦Passphrase♦...</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">Pirmahan &amp;magmensahe...</translation>
+    </message>
+    <message>
+        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
+        <translation type="unfinished">Tanda na mga mensahe sa mga ♦address♦ ng iyong ♦Bitcoin♦ para patunayan na pagmamay-ari mo sila</translation>
+    </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;Patunayan ang mensahe...</translation>
+    </message>
+    <message>
+        <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
+        <translation type="unfinished">Patunayan ang mga mensahe para matiyak na sila ay napirmahan ng may tinukoy na mga ♦Bitcoin address♦</translation>
+    </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">&amp;I-load ang PSBT mula sa ♦file♦...</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">Buksan ang &amp;♦URL♦...</translation>
+    </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">Isara ang Pitaka...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">Gumawa ng Pitaka...</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">Isara ang Lahat ng mga Pitaka...</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation type="unfinished">&amp;♦File♦</translation>
+    </message>
+    <message>
+        <source>&amp;Settings</source>
+        <translation type="unfinished">Mga &amp;♦Setting♦</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation type="unfinished">&amp;Tulungan</translation>
+    </message>
+    <message>
+        <source>Tabs toolbar</source>
+        <translation type="unfinished">♦Tabs toolbar♦</translation>
+    </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">♦Syncing Headers♦ (%1%)…</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">Sini-siynchronize sa ♦network♦...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Ini-index ang mga bloke sa ♦disk♦...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Pinoproseso ang mga bloke sa ♦disk♦...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Ni-rereindex ang mga bloke sa ♦disk♦</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Kumokonekta sa mga ♦peers♦...</translation>
+    </message>
+    <message>
+        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
+        <translation type="unfinished">Humiling ng mga bayad (gumagawa ng ♦QR codes♦ at ♦bitcoin: URIs♦)</translation>
+    </message>
+    <message>
+        <source>Show the list of used sending addresses and labels</source>
+        <translation type="unfinished">Ipakita ang listahan ng mga nagamit na pagpapadalhan na mga ♦address♦ at mga tatak</translation>
+    </message>
+    <message>
+        <source>Show the list of used receiving addresses and labels</source>
+        <translation type="unfinished">Ipakita ang listahan ng nagamit na pagtatanggapan na mga ♦address♦ at mga tatak</translation>
+    </message>
+    <message>
+        <source>&amp;Command-line options</source>
+        <translation type="unfinished">&amp;♦Command-line♦ na mga pagpipilian</translation>
+    </message>
+    <message numerus="yes">
+        <source>Processed %n block(s) of transaction history.</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>%1 behind</source>
+        <translation type="unfinished">%1 sa likod</translation>
+    </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Humahabol...</translation>
+    </message>
+    <message>
+        <source>Last received block was generated %1 ago.</source>
+        <translation type="unfinished">Ang huling natanggap na bloke ay nagawa %1kanina.</translation>
+    </message>
+    <message>
+        <source>Transactions after this will not yet be visible.</source>
+        <translation type="unfinished">Ang mga transaksyon pagkatapos nito ay hindi pa muna makikita.</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">Nagkamali</translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished">Babala</translation>
+    </message>
+    <message>
+        <source>Information</source>
+        <translation type="unfinished">Impormasyon</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">Ang ♦Load♦ ay Bahagyang Napirmahan na Transaksyon sa ♦Bitcoin♦</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">Ang ♦Load♦ ay Bahagyang Napirmahan na Transaksyon sa ♦Bitcoin♦ mula sa ♦clipboard♦</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">♦Node window♦</translation>
+    </message>
+    <message>
+        <source>Open node debugging and diagnostic console</source>
+        <translation type="unfinished">Bukas na ♦node debugging♦ at ♦diagnostic console♦</translation>
+    </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">&amp;Pagpapadalhan na mga ♦address♦</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">&amp;Pagtatanggapan na mga ♦address♦</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">Buksan ang ♦bitcoin: URI♦</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <translation type="unfinished">Buksan ang pitaka</translation>
+    </message>
+    <message>
+        <source>Open a wallet</source>
+        <translation type="unfinished">Buksan ang pitaka</translation>
+    </message>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">Isarado ang pitaka</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">Isarado ang lahat na mga pitaka</translation>
+    </message>
+    <message>
+        <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
+        <translation type="unfinished">Ipakita ang %1 tumulong sa mensahe na kumuha ng listahan ng posibleng ♦Bitcoin command-line♦ na mga pagpipilian</translation>
+    </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">&amp;♦Mask♦ na mga halaga</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">I-mask ang  mga halaga sa loob ng ♦Overview tab♦</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">pitaka na ♦default♦</translation>
+    </message>
+    <message>
+        <source>No wallets available</source>
+        <translation type="unfinished">Walang pitaka na mayroon</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;♦Window♦</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation type="unfinished">I-zoom</translation>
+    </message>
+    <message>
+        <source>Main Window</source>
+        <translation type="unfinished">Pangunahing ♦Window♦</translation>
+    </message>
+    <message>
+        <source>%1 client</source>
+        <translation type="unfinished">%1 na kliyente</translation>
+    </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Itago</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Mag-click para sa marami pang gagawin.</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">Ipakita ang ♦Peers tab♦</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">I-disable ang aktibidad ng ♦network♦</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">I-enable ang aktibidad ng ♦network♦</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">Pagkakamali: 1%1</translation>
+    </message>
+    <message>
+        <source>Warning: %1</source>
+        <translation type="unfinished">Babala: %1</translation>
+    </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished">Petsa: %1
+</translation>
+    </message>
+    <message>
+        <source>Amount: %1
+</source>
+        <translation type="unfinished">Halaga: %1
+</translation>
+    </message>
+    <message>
+        <source>Wallet: %1
+</source>
+        <translation type="unfinished">Pitaka: %1
+</translation>
+    </message>
+    <message>
+        <source>Type: %1
+</source>
+        <translation type="unfinished">Uri: %1
+</translation>
+    </message>
+    <message>
+        <source>Label: %1
+</source>
+        <translation type="unfinished">Tatak: %1
+</translation>
+    </message>
+    <message>
+        <source>Address: %1
+</source>
+        <translation type="unfinished">♦Address♦: %1
+</translation>
+    </message>
+    <message>
+        <source>Sent transaction</source>
+        <translation type="unfinished">Ipinadalang transaksyon</translation>
+    </message>
+    <message>
+        <source>Incoming transaction</source>
+        <translation type="unfinished">Paparating na transaksyon</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
+        <translation type="unfinished">♦HD key♦ na henerasyon ay &lt;b&gt;na-enable&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD key na henerasyon ay &lt;b&gt;na-disabled&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">Pribadong susi &lt;b&gt;na-disable&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+        <translation type="unfinished">Ang pitaka ay &lt;b&gt;na-encrypt&lt;/b&gt; at kasalukuyang &lt;b&gt;na-unlock&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+        <translation type="unfinished">Ang pitaka ay &lt;b&gt;na-encrypt&lt;/b&gt; at kasalukuyang &lt;b&gt;na-lock&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Original message:</source>
+        <translation type="unfinished">Orihinal na mensahe</translation>
+    </message>
+</context>
+<context>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">Yunit na ipakita sa mga halaga. Mag-click para pumili ng ibang yunit.</translation>
+    </message>
+</context>
+<context>
+    <name>CoinControlDialog</name>
+    <message>
+        <source>Coin Selection</source>
+        <translation type="unfinished">Pagpipilian ng ♦coin♦</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">Dami:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">♦Bytes♦:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">Halaga:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">Bayad:</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">Alikabok:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">Pagkatapos na Bayad:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">Sukli:</translation>
+    </message>
+    <message>
+        <source>(un)select all</source>
+        <translation type="unfinished">i-(un)select lahat</translation>
+    </message>
+    <message>
+        <source>Tree mode</source>
+        <translation type="unfinished">♦Tree mode♦</translation>
+    </message>
+    <message>
+        <source>List mode</source>
+        <translation type="unfinished">Listajhan na ♦mode♦</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Halaga</translation>
+    </message>
+    <message>
+        <source>Received with label</source>
+        <translation type="unfinished">Natanggap na may kasamang ♦tatak♦</translation>
+    </message>
+    <message>
+        <source>Received with address</source>
+        <translation type="unfinished">Natanggap na may ♦address♦</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Petsa</translation>
+    </message>
+    <message>
+        <source>Confirmations</source>
+        <translation type="unfinished">Mga kumpirmasyon</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">Nakumpirma</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">Kopyahin ang halaga</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopyahin ang ♦address♦</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Kopyahin ang &amp;tatak</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopyahin ang &amp;halaga</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">&amp;I-lock ang hindi nagastos</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">&amp;I-unlock ang hindi nagastos</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">Kopyahin ang dami</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Bayad sa pagkopya</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Kopyahin pagkatapos ang bayad</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">Kopyahin ang ♦bytes♦</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">Kopyahin ang ♦dust♦</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">Kopyahin ang pagbabago</translation>
+    </message>
+    <message>
+        <source>(%1 locked)</source>
+        <translation type="unfinished">(%1 naka-lock)</translation>
+    </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">oo</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation type="unfinished">hindi</translation>
+    </message>
+    <message>
+        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
+        <translation type="unfinished">Ang tatak na ito ay nagiging pula kung ang sinomang tatanggap ay tatanggap ng halaga na mas maliit  sa kasalukuyang ♦dust threshold♦</translation>
+    </message>
+    <message>
+        <source>Can vary +/- %1 satoshi(s) per input.</source>
+        <translation type="unfinished">Maaaring magbago ng +/- %1♦4satoshi(s)♦ kada ♦input♦.</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(walang tatak)</translation>
+    </message>
+    <message>
+        <source>change from %1 (%2)</source>
+        <translation type="unfinished">ang pagbabago ay mula sa %1 (%2)</translation>
+    </message>
+    <message>
+        <source>(change)</source>
+        <translation type="unfinished">(pagbabago)</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletActivity</name>
+    <message>
+        <source>Create Wallet</source>
+        <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
+        <translation type="unfinished">Gumawa ng pitaka</translation>
+    </message>
+    <message>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">Paggawa ng Pitaka &lt;b&gt;%1&lt;/b&gt;…</translation>
+    </message>
+    <message>
+        <source>Create wallet failed</source>
+        <translation type="unfinished">Ang paggawa ng pitaka ay nabigo</translation>
+    </message>
+    <message>
+        <source>Create wallet warning</source>
+        <translation type="unfinished">Babala sa paggawa ng pitaka</translation>
+    </message>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">Hindi mailista ang mga tagapirma</translation>
+    </message>
+</context>
+<context>
+    <name>OpenWalletActivity</name>
+    <message>
+        <source>Open wallet failed</source>
+        <translation type="unfinished">Pagbukas ng pitaka ay nabigo</translation>
+    </message>
+    <message>
+        <source>Open wallet warning</source>
+        <translation type="unfinished">Babala sa pagbukas ng pitaka</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">pitaka na ♦default♦</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
+        <translation type="unfinished">Buksan ang pitaka</translation>
+    </message>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">Pagbukas sa Pitaka &lt;b&gt;%1&lt;/b&gt;…</translation>
+    </message>
+</context>
+<context>
+    <name>WalletController</name>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">Isarado ang pitaka</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
+        <translation type="unfinished">Sigurado ka ba na gusto mong isarado ang pitaka &lt;i&gt;%1&lt;/i&gt;?</translation>
+    </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">Ang pagsasarod sa pitaka sa matagal ay maaaring humantong sa pag-resync ng kabuuang ♦chain♦ kung ang pagputol ay na-enable.</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">Isarado ang lahat na mga pitaka</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">Sigurado ka ba na gusto mong isarado lahat ng mga pitaka?
+</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletDialog</name>
+    <message>
+        <source>Create Wallet</source>
+        <translation type="unfinished">Gumawa ng pitaka</translation>
+    </message>
+    <message>
+        <source>Wallet Name</source>
+        <translation type="unfinished">Pangalan ng pitaka</translation>
+    </message>
+    <message>
+        <source>Wallet</source>
+        <translation type="unfinished">Pitaka</translation>
+    </message>
+    <message>
+        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
+        <translation type="unfinished">I-encrypt ang pitaka. Ang pitaka ay mae-encrypt na may ♦passphrase♦ ng iyong mapipili.</translation>
+    </message>
+    <message>
+        <source>Encrypt Wallet</source>
+        <translation type="unfinished">I-encrypt ang pitaka</translation>
+    </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">Mga pagpipilian sa pagsulong</translation>
+    </message>
+    <message>
+        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
+        <translation type="unfinished">I-disable ang mga pribadong mga susi para sa pitaka na ito. Ang mga pitaka na may mga pribadong mga susi na na-disable ay mawawalng ng pribadong mga susi at hindi magkakaroon ng ♦HD seed♦ o mga na-import na pribadong mga susi. Ito ay perpekto lamang para sa mga ♦watch-only♦ na mga pitaka.</translation>
+    </message>
+    <message>
+        <source>Disable Private Keys</source>
+        <translation type="unfinished">I-disable ang Pribadong mga Susi</translation>
+    </message>
+    <message>
+        <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
+        <translation type="unfinished">Gumawa ng blankong pitaka. Ang blankong mga pitaka hindi muna nagkakaroon ng pribadong mga susi o mga ♦script♦. Ang pribadong mga susi at mga ♦address♦ ay pwedeng ma-import, o ang ♦HD seed♦ ay pwedeng mai-set, mamaya.</translation>
+    </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">Gumawa ng Blankong Pitaka</translation>
+    </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">Gumawa ng  mga ♦descriptors♦ para sa pamamahala sa ♦scriptPubKey♦</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">♦Descriptor♦ na pitaka</translation>
+    </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Gumamit ng panlabas na pagpirmang ♦device♦ katulad ng ♦hardware♦ na pitaka. I-configure ang panlabas na ♦signer script♦ sa loob ng ♦preferences♦ ng pitaka n listahan. </translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Panlabas na ♦signer♦</translation>
+    </message>
+    <message>
+        <source>Create</source>
+        <translation type="unfinished">Gumawa</translation>
+    </message>
+    <message>
+        <source>Compiled without sqlite support (required for descriptor wallets)</source>
+        <translation type="unfinished">Pinagsama-smaa na walang suporta ng ♦sqlite♦ (kailangan para sa ♦descriptot♦ na pitaka)</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Pinagsama-sama na walang suporta ng ♦pag-pirma♦ (kailangan para sa panlabasna pagpirma)</translation>
+    </message>
+</context>
+<context>
+    <name>EditAddressDialog</name>
+    <message>
+        <source>Edit Address</source>
+        <translation type="unfinished">I-edit ang ♦address♦</translation>
+    </message>
+    <message>
+        <source>&amp;Label</source>
+        <translation type="unfinished">&amp;Tatak</translation>
+    </message>
+    <message>
+        <source>The label associated with this address list entry</source>
+        <translation type="unfinished">Ang tatak na nauugnay sa ♦entry♦ ng listahan ng ♦address♦</translation>
+    </message>
+    <message>
+        <source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
+        <translation type="unfinished">Ang ♦address♦ na may kaugnayan sa ipinasok sa listahan ng ♦address♦. Ito ay maaari lamang ng mabago para sa pagpapadalhan na mga ♦address♦.</translation>
+    </message>
+    <message>
+        <source>&amp;Address</source>
+        <translation type="unfinished">&amp;♦Address♦</translation>
+    </message>
+    <message>
+        <source>New sending address</source>
+        <translation type="unfinished">Bagong pagpapadalhan na ♦address♦</translation>
+    </message>
+    <message>
+        <source>Edit receiving address</source>
+        <translation type="unfinished">I-edit ang pagtatanggapang ♦address♦</translation>
+    </message>
+    <message>
+        <source>Edit sending address</source>
+        <translation type="unfinished">I-edit ang pagpapadalhan na ♦address♦</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is not a valid Bitcoin address.</source>
+        <translation type="unfinished">Ang naipasok na ♦address♦ "%1" ay hindi wasto na ♦Bitcoin address♦.</translation>
+    </message>
+    <message>
+        <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source>
+        <translation type="unfinished">Ang ♦Address♦ "%1" ay mayroon na bilang pagtatanggapang ♦address♦ na may tatak "%2" kaya hindi na maaaring maidagdag bilang pagpapadalhan na ♦address♦.</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is already in the address book with label "%2".</source>
+        <translation type="unfinished">Ang naipasok na ♦address♦ "%1" ay nasa aklat na ng ♦address♦ na may tatak "%2".</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">Hindi maaaring ma-unlock ang pitaka.</translation>
+    </message>
+    <message>
+        <source>New key generation failed.</source>
+        <translation type="unfinished">Ang Bagong susi sa ♦generation♦ ay nabigo.</translation>
+    </message>
+</context>
+<context>
+    <name>FreespaceChecker</name>
+    <message>
+        <source>A new data directory will be created.</source>
+        <translation type="unfinished">May bagong datos na ♦directory♦ ay magagawa.</translation>
+    </message>
+    <message>
+        <source>name</source>
+        <translation type="unfinished">pangalan</translation>
+    </message>
+    <message>
+        <source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
+        <translation type="unfinished">Ang ♦directory♦ ay mayroon na. Magdagdag ng%1kung balak mong gumawa ng bagong ♦directory♦ dito.</translation>
+    </message>
+    <message>
+        <source>Path already exists, and is not a directory.</source>
+        <translation type="unfinished">Ang ♦path♦ ay mayroon na, at hindi ♦directory♦.</translation>
+    </message>
+    <message>
+        <source>Cannot create data directory here.</source>
+        <translation type="unfinished">Hindi makakagawa ng datos na ♦directory♦ dito.</translation>
+    </message>
+</context>
+<context>
+    <name>Intro</name>
+    <message>
+        <source>Bitcoin</source>
+        <translation type="unfinished">♦Bitcoin♦</translation>
+    </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(ng %1♦GB♦ na kailangan)</translation>
+    </message>
+    <message>
+        <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
+        <translation type="unfinished">Hindi bababa sa %1 ng ♦GB♦ na dato ay mai-instore sa ♦directory♦, at lalaki sa paglipas ng panahon.</translation>
+    </message>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">Nagkamali</translation>
+    </message>
+    <message>
+        <source>Welcome</source>
+        <translation type="unfinished">Maligayang Pagdating</translation>
+    </message>
+    </context>
+<context>
+    <name>HelpMessageDialog</name>
+    <message>
+        <source>version</source>
+        <translation type="unfinished">bersyon</translation>
+    </message>
+    </context>
+<context>
+    <name>ShutdownWindow</name>
+    <message>
+        <source>Do not shut down the computer until this window disappears.</source>
+        <translation type="unfinished">Huwag Patayin ang inyong kompyuter hanggang mawala ang window na ito.</translation>
+    </message>
+</context>
+<context>
+    <name>OptionsDialog</name>
+    <message>
+        <source>&amp;Main</source>
+        <translation type="unfinished">&amp;Pangunahin</translation>
+    </message>
+    <message>
+        <source>&amp;Start %1 on system login</source>
+        <translation type="unfinished">&amp;Simulan %1 sa pag-login sa sistema</translation>
+    </message>
+    <message>
+        <source>Size of &amp;database cache</source>
+        <translation type="unfinished">Laki ng &amp;♦database cache♦</translation>
+    </message>
+    <message>
+        <source>Number of script &amp;verification threads</source>
+        <translation type="unfinished">Bilang ng ♦script♦ &amp;pagpapatunay na mga ♦threads♦</translation>
+    </message>
+    <message>
+        <source>&amp;Reset Options</source>
+        <translation type="unfinished">Mga pagpipilian sa &amp;Pag-reset</translation>
+    </message>
+    <message>
+        <source>&amp;Network</source>
+        <translation type="unfinished">&amp;♦Network♦</translation>
+    </message>
+    <message>
+        <source>Prune &amp;block storage to</source>
+        <translation type="unfinished">Putulan &amp;i-block ang imbakan sa</translation>
+    </message>
+    <message>
+        <source>W&amp;allet</source>
+        <translation type="unfinished">&amp;Pitaka</translation>
+    </message>
+    <message>
+        <source>Enable coin &amp;control features</source>
+        <translation type="unfinished">I-enable ang pag-control na mga tampok ng ♦coin♦ </translation>
+    </message>
+    <message>
+        <source>&amp;Spend unconfirmed change</source>
+        <translation type="unfinished">&amp;Gumastos ng hindi nakumpirmang pagbabago</translation>
+    </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">&amp;Panlabas na ♦signer script♦ na daanan</translation>
+    </message>
+    <message>
+        <source>Map port using &amp;UPnP</source>
+        <translation type="unfinished">♦Port♦ ng mapa gamit ang &amp;♦UPnP♦</translation>
+    </message>
+    <message>
+        <source>Map port using NA&amp;T-PMP</source>
+        <translation type="unfinished">♦Port♦ ng mapa gamit ang NA&amp;T-PMP</translation>
+    </message>
+    <message>
+        <source>Allow incomin&amp;g connections</source>
+        <translation type="unfinished">Pahintulutan ang paparating na mga &amp;koneksyon</translation>
+    </message>
+    <message>
+        <source>&amp;Connect through SOCKS5 proxy (default proxy):</source>
+        <translation type="unfinished">&amp;Kumonketa sa pamamagitan ng ♦SOCKS5 proxy (default proxy)♦:</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;♦Window♦</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Pinagsama-sama na walang suporta ng ♦pag-pirma♦ (kailangan para sa panlabasna pagpirma)</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">Nagkamali</translation>
+    </message>
+    </context>
+<context>
+    <name>PeerTableModel</name>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">♦Address♦</translation>
+    </message>
+    </context>
+<context>
+    <name>RPCConsole</name>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">♦Node window♦</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;Kopyahin ang ♦address♦</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveCoinsDialog</name>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopyahin ang ♦address♦</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Kopyahin ang &amp;tatak</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopyahin ang &amp;halaga</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">Hindi maaaring ma-unlock ang pitaka.</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">Halaga:</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">Pitaka:</translation>
+    </message>
+    </context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Petsa</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">♦Label♦</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(walang tatak)</translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">Dami:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">♦Bytes♦:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">Halaga:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">Bayad:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">Pagkatapos na Bayad:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">Sukli:</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">Alikabok:</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">Kopyahin ang dami</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">Kopyahin ang halaga</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">Bayad sa pagkopya</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">Kopyahin pagkatapos ang bayad</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">Kopyahin ang ♦bytes♦</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">Kopyahin ang ♦dust♦</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">Kopyahin ang pagbabago</translation>
+    </message>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(walang tatak)</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDesc</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Petsa</translation>
+    </message>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">Halaga</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Petsa</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">♦Label♦</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(walang tatak)</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;Kopyahin ang ♦address♦</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">&amp;Kopyahin ang &amp;tatak</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">Kopyahin ang &amp;halaga</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">Kopyahin ang transaksyon  ng &amp;♦ID♦</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Comma hiwalay na file</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">Nakumpirma</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">Petsa</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">♦Label♦</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">♦Address♦</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">Ang pag-export ay Nabigo</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletFrame</name>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">Gumawa ng bagong pitaka</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">Nagkamali</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletModel</name>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">pitaka na ♦default♦</translation>
+    </message>
+</context>
+<context>
+    <name>WalletView</name>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;I-export</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">I-export ang datos sa kasalukuyang tab sa isang file</translation>
+    </message>
+    </context>
+</TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts
index 9ad308aa70c..9c6b89a2a15 100644
--- a/src/qt/locale/bitcoin_tr.ts
+++ b/src/qt/locale/bitcoin_tr.ts
@@ -49,10 +49,6 @@
         <source>Choose the address to send coins to</source>
         <translation type="unfinished">Coin gönderilecek adresi seçiniz</translation>
     </message>
-    <message>
-        <source>Choose the address to receive coins with</source>
-        <translation type="unfinished">Coinleri alacağınız adresi seçin</translation>
-    </message>
     <message>
         <source>C&amp;hoose</source>
         <translation type="unfinished">S&amp;ç</translation>
@@ -410,6 +406,10 @@ Cüzdan kilidini aç.</translation>
         <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
         <translation type="unfinished">%s dosyasının okunması sırasında bir hata meydana geldi! Tüm anahtarlar doğru bir şekilde okundu, ancak işlem verileri ya da adres defteri ögeleri hatalı veya eksik olabilir.</translation>
     </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">%s okuma hatası! İşlem verileri eksik veya yanlış olabilir. Cüzdan yeniden taranıyor.</translation>
+    </message>
     <message>
         <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
         <translation type="unfinished">Hata: İçeri gelen bağlantıların dinlenmesi başarısız oldu (dinleme %s hatasını verdi)</translation>
@@ -418,6 +418,10 @@ Cüzdan kilidini aç.</translation>
         <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
         <translation type="unfinished">-maxtxfee=&lt;tutar&gt; için geçersiz tutar: '%s' (Sıkışmış işlemleri önlemek için en az %s değerinde en düşük aktarım ücretine eşit olmalıdır)</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">Geçersiz veya bozuk peers.dat (%s). Bunun bir hata olduğunu düşünüyorsanız, lütfen %s'e bildirin. Geçici bir çözüm olarak, bir sonraki başlangıçta yeni bir dosya oluşturmak için dosyayı (%s) yoldan çekebilirsiniz (yeniden adlandırabilir, taşıyabilir veya silebilirsiniz).</translation>
+    </message>
     <message>
         <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
         <translation type="unfinished">Lütfen bilgisayarınızın tarih ve saatinin doğruluğunu kontrol edin. Hata varsa %s doğru çalışmayacaktır.</translation>
@@ -438,6 +442,10 @@ Cüzdan kilidini aç.</translation>
         <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
         <translation type="unfinished">Blok veritabanı gelecekten gibi görünen bir blok içermektedir. Bu, bilgisayarınızın saat ve tarihinin yanlış ayarlanmış olmasından kaynaklanabilir. Blok veritabanını sadece bilgisayarınızın tarih ve saatinin doğru olduğundan eminseniz yeniden derleyin.</translation>
     </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">Blok dizini db, eski bir 'txindex' içerir. Dolu disk alanını temizlemek için full -reindex çalıştırın, aksi takdirde bu hatayı yok sayın. Bu hata mesajı tekrar görüntülenmeyecek.</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to send after the fee has been deducted</source>
         <translation type="unfinished">Bu işlem, tutar düşüldükten sonra göndermek için çok düşük</translation>
@@ -474,10 +482,38 @@ Cüzdan kilidini aç.</translation>
         <source>Cannot resolve -%s address: '%s'</source>
         <translation type="unfinished">Çözümlenemedi - %s adres: '%s'</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">-dnsseed false olarak ayarlanırken -forcednsseed true olarak ayarlanamıyor.</translation>
+    </message>
     <message>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Veriler '%s' klasörüne yazılamıyor ; yetkilendirmeyi kontrol edin.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">Önceki bir sürüm tarafından başlatılan -txindex yükseltmesi tamamlanamaz. Önceki sürümle yeniden başlatın veya full -reindex çalıştırın.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s, %u bağlantı noktasında dinleme isteğinde bulunur. Bu bağlantı noktası "kötü" olarak kabul edilir ve bu nedenle, herhangi bir Bitcoin Core eşinin ona bağlanması olası değildir. Ayrıntılar ve tam liste için doc/p2p-bad-ports.md'ye bakın.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Belirli bağlantılar sağlayamaz ve aynı anda addrman'ın giden bağlantıları bulmasını sağlayamaz.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">%s yüklenirken hata oluştu: Harici imzalayan cüzdanı derlenmiş harici imzalayan desteği olmadan yükleniyor</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Geçersiz peers.dat dosyası yeniden adlandırılamadı. Lütfen taşıyın veya silin ve tekrar deneyin.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Giden bağlantılar Tor ile sınırlıdır (-onlynet=onion) ancak Tor ağına ulaşmak için proxy sağlanmaz (-proxy= ve -onion= verilmez) veya açıkça yasaktır (-onion=0)</translation>
+    </message>
     <message>
         <source>Copyright (C) %i-%i</source>
         <translation type="unfinished">Telif Hakkı (C) %i-%i</translation>
@@ -558,6 +594,10 @@ Cüzdan kilidini aç.</translation>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">Başlatma sınaması başarısız oldu. %s kapatılıyor.</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Girdi bulunamadı veya zaten harcandı</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Yetersiz bakiye</translation>
@@ -610,6 +650,10 @@ Cüzdan kilidini aç.</translation>
         <source>Missing amount</source>
         <translation type="unfinished">Eksik tutar</translation>
     </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">İşlem boyutunu tahmin etmek için çözümleme verileri eksik</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">-whitebind: '%s' ile bir port belirtilmesi lazımdır</translation>
@@ -686,6 +730,10 @@ Cüzdan kilidini aç.</translation>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">İşlem tutarı negatif olmamalıdır.</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">İşlem değişikliği çıktı endeksi aralık dışında</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">İşlem çok uzun bir mempool zincirine sahip</translation>
@@ -694,6 +742,10 @@ Cüzdan kilidini aç.</translation>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">İşlem en az bir adet alıcıya sahip olmalı.</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">İşlemin bir değişiklik adresine ihtiyacı var, ancak bunu oluşturamıyoruz.</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">İşlem çok büyük</translation>
@@ -714,6 +766,10 @@ Cüzdan kilidini aç.</translation>
         <source>Unable to generate keys</source>
         <translation type="unfinished">Anahtarlar oluşturulamıyor</translation>
     </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">-maxuploadtarget ayrıştırılamıyor: '%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">HTTP sunucusu başlatılamadı. Ayrıntılar için debug.log dosyasına bakınız.</translation>
@@ -941,7 +997,7 @@ Cüzdan kilidini aç.</translation>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>İşlem geçmişinin %nbloğu işlendi.</numerusform>
         </translation>
     </message>
     <message>
@@ -1064,7 +1120,7 @@ Cüzdan kilidini aç.</translation>
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>Bitcoin ağına %n etkin bağlantı.</numerusform>
         </translation>
     </message>
     <message>
@@ -1538,7 +1594,7 @@ Cüzdan kilidini aç.</translation>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>(%n günlük yedekleri geri yüklemek için yeterli)</numerusform>
         </translation>
     </message>
     <message>
@@ -1748,10 +1804,25 @@ Cüzdan kilidini aç.</translation>
         <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
         <translation type="unfinished">Bu, sizin veya bir üçüncü taraf aracının komut satırı ve JSON-RPC komutları aracılığıyla düğümle iletişim kurmasına olanak tanır.</translation>
     </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">R&amp;PC sunucusunu etkinleştir</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">&amp;Cüzdan</translation>
     </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Tutardan çıkarma ücretinin varsayılan olarak ayarlanıp ayarlanmayacağı.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Varsayılan olarak ücreti tutardan düş</translation>
+    </message>
     <message>
         <source>Expert</source>
         <translation type="unfinished">Gelişmiş</translation>
@@ -1768,6 +1839,16 @@ Cüzdan kilidini aç.</translation>
         <source>&amp;Spend unconfirmed change</source>
         <translation type="unfinished">&amp; Onaylanmamış bozuk parayı harcayın</translation>
     </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">PSBT kontrollerini etkinleştir</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">PSBT kontrollerinin gösterilip gösterilmeyeceği.</translation>
+    </message>
     <message>
         <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
         <translation type="unfinished">Yönlendiricide Bitcoin istemci portlarını otomatik olarak açar. Bu, sadece yönlendiricinizin UPnP desteği bulunuyorsa ve etkinse çalışabilir.</translation>
@@ -1840,6 +1921,10 @@ Cüzdan kilidini aç.</translation>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Bitcoin gönderildiğinde arayüzde gösterilecek varsayılan alt birimi seçiniz.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">İşlemler sekmesinde bağlam menüsü unsurları olarak görünen üçüncü taraf bağlantıları (mesela bir blok tarayıcısı). URL'deki %s, işlem hash değeri ile değiştirilecektir. Birden çok bağlantılar düşey çubuklar | ile ayrılacaktır.</translation>
+    </message>
     <message>
         <source>&amp;Third-party transaction URLs</source>
         <translation type="unfinished">&amp;Üçüncü parti işlem URL'leri</translation>
@@ -2311,14 +2396,33 @@ Cüzdan kilidini aç.</translation>
         <source>Last Transaction</source>
         <translation type="unfinished">Son İşlem</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Adresleri bu eşe iletip iletemeyeceğimiz.</translation>
+    </message>
     <message>
         <source>Address Relay</source>
         <translation type="unfinished">Adres Aktarımı</translation>
     </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Hız sınırlaması nedeniyle düşürülenler hariç, işlenen toplam adres sayısı.</translation>
+    </message>
     <message>
         <source>Addresses Processed</source>
         <translation type="unfinished">Adresler İşlendi</translation>
     </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Hız sınırlaması nedeniyle toplam adres sayısı düştü.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Adresler Oran-Sınırlı</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">Kullanıcı Yazılımı</translation>
@@ -2854,6 +2958,11 @@ Cüzdan kilidini aç.</translation>
         <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
         <translation type="unfinished">Bu işlemi oluşturmak ister misiniz?</translation>
     </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Lütfen işleminizi gözden geçirin. Bu işlemi oluşturabilir ve gönderebilir veya örneğin çevrimdışı bir %1 cüzdanı veya PSBT uyumlu bir donanım cüzdanı gibi kaydedebileceğiniz veya kopyalayabileceğiniz ve ardından imzalayabileceğiniz bir Kısmen İmzalı Bitcoin İşlemi (PSBT) oluşturabilirsiniz.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -2902,7 +3011,7 @@ Cüzdan kilidini aç.</translation>
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>Tahmini %n blok içinde doğrulamaya başlanacaktır.</numerusform>
         </translation>
     </message>
     <message>
@@ -3235,7 +3344,7 @@ Cüzdan kilidini aç.</translation>
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n ek blok sonrasında olgunlaşacak</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_ur.ts b/src/qt/locale/bitcoin_ur.ts
index 54e090a69fb..754b8eb9987 100644
--- a/src/qt/locale/bitcoin_ur.ts
+++ b/src/qt/locale/bitcoin_ur.ts
@@ -284,10 +284,27 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 didn't yet exit safely…</source>
         <translation type="unfinished">%1ابھی تک سلامتی سے باہر نہیں نکلا…</translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished">نامعلوم</translation>
+    </message>
     <message>
         <source>Amount</source>
         <translation type="unfinished">رقم</translation>
     </message>
+    <message>
+        <source>Unroutable</source>
+        <translation type="unfinished">ناقابل استعمال</translation>
+    </message>
+    <message>
+        <source>Internal</source>
+        <translation type="unfinished">اندرونی</translation>
+    </message>
+    <message>
+        <source>Address Fetch</source>
+        <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
+        <translation type="unfinished">پتہ بازیافت کریں۔</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
@@ -465,6 +482,66 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create Wallet…</source>
         <translation type="unfinished">والیٹ بنائیں…</translation>
     </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">تمام والیٹس بند کردیں</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation type="unfinished">اور فائل</translation>
+    </message>
+    <message>
+        <source>&amp;Settings</source>
+        <translation type="unfinished">اور ترتیبات</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation type="unfinished">اور مدد</translation>
+    </message>
+    <message>
+        <source>Tabs toolbar</source>
+        <translation type="unfinished">ٹیبز ٹول بار</translation>
+    </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished"> '%1%' ہیڈرز کی مطابقت پذیری</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">نیٹ ورک کے ساتھ ہم آہنگ ہو کر</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">ڈسک پر بلاکس کو انڈیکس کرنا</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">ڈسک پر بلاکس کو پراسیس کرنا</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">ڈسک پر بلاکس کو دوبارہ ترتیب دینا</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">ساتھیوں سے منسلک کرنے</translation>
+    </message>
+    <message>
+        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
+        <translation type="unfinished">ادائیگی کی درخواست کریں: ( کوئیک رسپانس ( کیو۔آر ) کوڈ اور بٹ کوائن ( یونیورسل ادائیگیوں کا نظام) کے ذریعے سے</translation>
+    </message>
+    <message>
+        <source>Show the list of used sending addresses and labels</source>
+        <translation type="unfinished">استعمال شدہ بھیجنے والے پتے اور لیبلز کی فہرست دکھائیں۔</translation>
+    </message>
+    <message>
+        <source>Show the list of used receiving addresses and labels</source>
+        <translation type="unfinished">استعمال شدہ وصول کرنے والے پتوں اور لیبلز کی فہرست دکھائیں۔</translation>
+    </message>
+    <message>
+        <source>&amp;Command-line options</source>
+        <translation type="unfinished">اور کمانڈ لائن اختیارات</translation>
+    </message>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
@@ -472,10 +549,106 @@ Signing is only possible with addresses of the type 'legacy'.</source>
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">پکڑنا</translation>
+    </message>
+    <message>
+        <source>Transactions after this will not yet be visible.</source>
+        <translation type="unfinished">اس کے بعد کی لین دین ابھی نظر نہیں آئے گی۔</translation>
+    </message>
     <message>
         <source>Error</source>
         <translation type="unfinished">نقص</translation>
     </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished">انتباہ</translation>
+    </message>
+    <message>
+        <source>Information</source>
+        <translation type="unfinished">معلومات</translation>
+    </message>
+    <message>
+        <source>Up to date</source>
+        <translation type="unfinished">سب سے نیا</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">جزوی طور پر دستخط شدہ بٹ کوائن ٹرانزیکشن لوڈ کریں۔</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">کلپ بورڈ سے جزوی طور پر دستخط شدہ بٹ کوائن ٹرانزیکشن لوڈ کریں۔</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">نوڈ ونڈو</translation>
+    </message>
+    <message>
+        <source>Open node debugging and diagnostic console</source>
+        <translation type="unfinished">نوڈ ڈیبگنگ اور تشخیصی کنسول کھولیں۔</translation>
+    </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">اور بھیجنے والے پتے</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">اور پتے وصول کرنا</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">بٹ کوائن کا یو۔آر۔آئی۔ کھولیں</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <translation type="unfinished">والیٹ کھولیں</translation>
+    </message>
+    <message>
+        <source>Open a wallet</source>
+        <translation type="unfinished">والیٹ کھولیں</translation>
+    </message>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">والیٹ بند کریں</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">تمام والیٹس بند کریں</translation>
+    </message>
+    <message>
+        <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
+        <translation type="unfinished">ممکنہ بٹ کوائن کمانڈ لائن اختیارات کے ساتھ فہرست حاصل کرنے کے لیے 1%1 مدد کا پیغام دکھائیں۔</translation>
+    </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">قدروں کو چھپائیں</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">جائزہ ٹیب میں اقدار کو ماسک کریں۔</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">پہلے سے طے شدہ والیٹ</translation>
+    </message>
+    <message>
+        <source>No wallets available</source>
+        <translation type="unfinished">کوئی والیٹ دستیاب نہیں ہیں۔</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">براؤزر ونڈو</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation type="unfinished">بغور جائزہ لینا</translation>
+    </message>
+    <message>
+        <source>Main Window</source>
+        <translation type="unfinished">مین ونڈو</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
@@ -484,195 +657,1647 @@ Signing is only possible with addresses of the type 'legacy'.</source>
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">مزید کارروائی کے لیے کلک کریں۔</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">پیئرز ٹیب دکھائیں۔</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">نیٹ ورک کی سرگرمی کو غیر فعال کریں۔</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">نیٹ ورک کی سرگرمی کو فعال کریں۔</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">خرابی:%1</translation>
     </message>
-    </context>
-<context>
-    <name>CoinControlDialog</name>
     <message>
-        <source>Amount:</source>
-        <translation type="unfinished">رقم:</translation>
+        <source>Wallet: %1
+</source>
+        <translation type="unfinished">1%1' والیٹ
+</translation>
     </message>
     <message>
-        <source>Amount</source>
-        <translation type="unfinished">رقم</translation>
+        <source>Type: %1
+</source>
+        <translation type="unfinished">1 %1'قسم
+</translation>
     </message>
     <message>
-        <source>Date</source>
-        <translation type="unfinished">تاریخ</translation>
+        <source>Label: %1
+</source>
+        <translation type="unfinished">1%1'لیبل
+</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(کوئی لیبل نہیں)</translation>
+        <source>Address: %1
+</source>
+        <translation type="unfinished">1%1' پتہ</translation>
     </message>
-    </context>
-<context>
-    <name>EditAddressDialog</name>
     <message>
-        <source>&amp;Label</source>
-        <translation type="unfinished">چٹ</translation>
+        <source>Sent transaction</source>
+        <translation type="unfinished">بھیجی گئی ٹرانزیکشن</translation>
     </message>
     <message>
-        <source>&amp;Address</source>
-        <translation type="unfinished">پتہ</translation>
+        <source>Incoming transaction</source>
+        <translation type="unfinished">آنے والی ٹرانزیکشن</translation>
     </message>
-    </context>
-<context>
-    <name>Intro</name>
-    <message numerus="yes">
-        <source>(sufficient to restore backups %n day(s) old)</source>
-        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <message>
+        <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
+        <translation type="unfinished">درجہ بندی کا تعین کرنے والی چابی فعال ہے</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="unfinished">نقص</translation>
+        <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">درجہ بندی کا تعین کرنے والی ایچ۔ ڈی کلیدی جنریشن&lt;b&gt; غیر فعال&lt;/b&gt; ہے</translation>
     </message>
-    </context>
-<context>
-    <name>OptionsDialog</name>
     <message>
-        <source>Error</source>
-        <translation type="unfinished">نقص</translation>
+        <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">نجی کلید غیر فعال ہے۔</translation>
     </message>
-    </context>
+    <message>
+        <source>Original message:</source>
+        <translation type="unfinished">اصل پیغام:</translation>
+    </message>
+</context>
 <context>
-    <name>PeerTableModel</name>
+    <name>UnitDisplayStatusBarControl</name>
     <message>
-        <source>Address</source>
-        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
-        <translation type="unfinished">پتہ</translation>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">رقم ظاہر کرنے کے لیے یونٹ۔ دوسری اکائی کو منتخب کرنے کے لیے کلک کریں۔</translation>
     </message>
-    </context>
+</context>
 <context>
-    <name>ReceiveRequestDialog</name>
+    <name>CoinControlDialog</name>
+    <message>
+        <source>Coin Selection</source>
+        <translation type="unfinished">سکے کا انتخاب</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">مقدار:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">بائٹس:</translation>
+    </message>
     <message>
         <source>Amount:</source>
         <translation type="unfinished">رقم:</translation>
     </message>
     <message>
-        <source>Wallet:</source>
-        <translation type="unfinished">پرس:</translation>
+        <source>Fee:</source>
+        <translation type="unfinished">فیس:</translation>
     </message>
     <message>
-        <source>Copy &amp;Address</source>
-        <translation type="unfinished">کاپی پتہ</translation>
+        <source>Dust:</source>
+        <translation type="unfinished">نہ ہونے کے برابر</translation>
     </message>
-    </context>
-<context>
-    <name>RecentRequestsTableModel</name>
     <message>
-        <source>Date</source>
-        <translation type="unfinished">تاریخ</translation>
+        <source>After Fee:</source>
+        <translation type="unfinished">فیس کے بعد:</translation>
     </message>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">لیبل</translation>
+        <source>Change:</source>
+        <translation type="unfinished">تبدیلی:</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(کوئی لیبل نہیں)</translation>
+        <source>(un)select all</source>
+        <translation type="unfinished">سب کو غیر منتخب کریں</translation>
     </message>
-    </context>
-<context>
-    <name>SendCoinsDialog</name>
     <message>
-        <source>Insufficient funds!</source>
-        <translation type="unfinished">ناکافی فنڈز</translation>
+        <source>Tree mode</source>
+        <translation type="unfinished">ٹری موڈ</translation>
     </message>
     <message>
-        <source>Amount:</source>
-        <translation type="unfinished">رقم:</translation>
+        <source>List mode</source>
+        <translation type="unfinished">فہرست موڈ</translation>
     </message>
     <message>
-        <source>Balance:</source>
-        <translation type="unfinished">بیلنس:</translation>
+        <source>Amount</source>
+        <translation type="unfinished">رقم</translation>
     </message>
-    <message numerus="yes">
-        <source>Estimated to begin confirmation within %n block(s).</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <message>
+        <source>Received with label</source>
+        <translation type="unfinished">لیبل کے ساتھ موصول ہوا۔</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(کوئی لیبل نہیں)</translation>
+        <source>Received with address</source>
+        <translation type="unfinished">پتے کے ساتھ موصول ہوا۔</translation>
     </message>
-</context>
-<context>
-    <name>TransactionDesc</name>
     <message>
         <source>Date</source>
         <translation type="unfinished">تاریخ</translation>
     </message>
-    <message numerus="yes">
-        <source>matures in %n more block(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <message>
+        <source>Confirmations</source>
+        <translation type="unfinished">تصدیقات</translation>
     </message>
     <message>
-        <source>Amount</source>
-        <translation type="unfinished">رقم</translation>
+        <source>Confirmed</source>
+        <translation type="unfinished">تصدیق شدہ</translation>
     </message>
-    </context>
-<context>
-    <name>TransactionTableModel</name>
     <message>
-        <source>Date</source>
-        <translation type="unfinished">تاریخ</translation>
+        <source>Copy amount</source>
+        <translation type="unfinished">رقم کاپی کریں۔</translation>
     </message>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">لیبل</translation>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">ایڈریس کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">کاپی اور لیبل</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">کاپی اور رقم</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">غیر خرچ شدہ تالا</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">غیر خرچ شدہ کھولیں</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">مقدار کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">فیس کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">فیس کے بعد کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">بائٹس کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">باقی شدہ کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">تبدیلی کاپی کریں</translation>
+    </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">جی ہاں</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation type="unfinished">نہیں</translation>
+    </message>
+    <message>
+        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
+        <translation type="unfinished">یہ لیبل سرخ ہو جاتا ہے اگر کوئی وصول کنندہ موجودہ کم سے کم مقرر کردہ حد سے کم رقم وصول کرتا ہے۔</translation>
     </message>
     <message>
         <source>(no label)</source>
         <translation type="unfinished">(کوئی لیبل نہیں)</translation>
     </message>
-    </context>
+    <message>
+        <source>change from %1 (%2)</source>
+        <translation type="unfinished">1%1 (2%2)سے تبدیل کریں</translation>
+    </message>
+    <message>
+        <source>(change)</source>
+        <translation type="unfinished">تبدیل کریں</translation>
+    </message>
+</context>
 <context>
-    <name>TransactionView</name>
+    <name>CreateWalletActivity</name>
     <message>
-        <source>Comma separated file</source>
-        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
-        <translation type="unfinished">کوما سے الگ فائل</translation>
+        <source>Create Wallet</source>
+        <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
+        <translation type="unfinished">والیٹ بنائیں</translation>
     </message>
     <message>
-        <source>Date</source>
-        <translation type="unfinished">تاریخ</translation>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">والیٹ بنانا &lt;b&gt;1 %1&lt;/b&gt;</translation>
     </message>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">لیبل</translation>
+        <source>Create wallet failed</source>
+        <translation type="unfinished">والیٹ بنانا ناکام ہوگیا۔</translation>
     </message>
     <message>
-        <source>Address</source>
-        <translation type="unfinished">پتہ</translation>
+        <source>Create wallet warning</source>
+        <translation type="unfinished">والیٹ بنانے کےلئے انتباہ</translation>
     </message>
     <message>
-        <source>Exporting Failed</source>
-        <translation type="unfinished">ایکسپورٹ ناکام ہوا</translation>
+        <source>Can't list signers</source>
+        <translation type="unfinished">دستخط کنندگان کی فہرست نہیں بن سکتی</translation>
     </message>
-    </context>
+</context>
 <context>
-    <name>WalletFrame</name>
+    <name>OpenWalletActivity</name>
     <message>
-        <source>Create a new wallet</source>
-        <translation type="unfinished">ایک نیا پرس بنائیں</translation>
+        <source>Open wallet failed</source>
+        <translation type="unfinished">والیٹ کھولنا ناکام ہو گیا</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="unfinished">نقص</translation>
+        <source>Open wallet warning</source>
+        <translation type="unfinished">والیٹ کھولنے کی انتباہ</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">پہلے سے طے شدہ والیٹ</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
+        <translation type="unfinished">والیٹ کھولیں</translation>
     </message>
     </context>
+<context>
+    <name>WalletController</name>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">والیٹ بند کریں</translation>
+    </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">والیٹ کو زیادہ دیر تک بند کرنے کے نتیجے میں اگر کانٹ چھانٹ کو فعال کیا جاتا ہے تو پوری چین کو دوبارہ ہم آہنگ کرنا پڑ سکتا ہے۔</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">تمام والیٹس بند کریں</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">کیا آپ واقعی تمام والیٹس بند کرنا چاہتے ہیں؟</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletDialog</name>
+    <message>
+        <source>Create Wallet</source>
+        <translation type="unfinished">والیٹ بنائیں</translation>
+    </message>
+    <message>
+        <source>Wallet Name</source>
+        <translation type="unfinished">والیٹ کا نام</translation>
+    </message>
+    <message>
+        <source>Wallet</source>
+        <translation type="unfinished">والیٹ</translation>
+    </message>
+    <message>
+        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
+        <translation type="unfinished">والیٹ کو خفیہ کریں۔ والیٹ کو آپ کی پسند کے پاسفریز کے ساتھ خفیہ کیا جائے گا۔</translation>
+    </message>
+    <message>
+        <source>Encrypt Wallet</source>
+        <translation type="unfinished">والیٹ کو خفیہ کریں۔</translation>
+    </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">اعلی درجے کے اختیارات</translation>
+    </message>
+    <message>
+        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
+        <translation type="unfinished">اس والیٹ کے لیے نجی چابیوں کو غیر فعال کریں۔ غیر فعال نجی چابیوں والے والیٹ میں کوئی نجی چابیاں نہیں ہوں گی اور اس میں HD بیج یا درآمد شدہ نجی چابیاں نہیں ہو سکتیں۔ یہ صرف دیکھنے والے والیٹ کے لیے مثالی ہے۔</translation>
+    </message>
+    <message>
+        <source>Disable Private Keys</source>
+        <translation type="unfinished">نجی چابیاں غیر فعال کریں۔</translation>
+    </message>
+    <message>
+        <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
+        <translation type="unfinished">ایک خالی والیٹ ضبنائیں۔ خالی والیٹ میں ابتدائی طور پر نجی چابیاں یا اسکرپٹ نہیں ہوتے ہیں۔ نجی چابیاں اور پتے درآمد کیے جا سکتے ہیں، یا بعد میں ایک HD بیج سیٹ کیا جا سکتا ہے۔</translation>
+    </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">خالی والیٹ بنائیں</translation>
+    </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">ScriptPubKeys کے انتظام کے لیے وضاحت کنندگان کا استعمال کریں۔</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">وضاحتی والیٹ</translation>
+    </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">بیرونی دستخط کرنے والا آلہ استعمال کریں جیسے ہارڈ ویئر والیٹ۔ پہلے والیٹ کی ترجیحات میں بیرونی دستخط کنندہ اسکرپٹ کو ترتیب دیں۔</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">بیرونی دستخط کنندہ</translation>
+    </message>
+    <message>
+        <source>Create</source>
+        <translation type="unfinished">بنائیں</translation>
+    </message>
+    <message>
+        <source>Compiled without sqlite support (required for descriptor wallets)</source>
+        <translation type="unfinished"> SQliteسپورٹ کے بغیر مرتب کیا گیا (ڈسکرپٹر والیٹس کے لیے درکار)</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">بیرونی دستخطی معاونت کے بغیر مرتب کیا گیا (بیرونی دستخط کے لیے درکار)</translation>
+    </message>
+</context>
+<context>
+    <name>EditAddressDialog</name>
+    <message>
+        <source>Edit Address</source>
+        <translation type="unfinished">ایڈریس میں ترمیم کریں۔</translation>
+    </message>
+    <message>
+        <source>&amp;Label</source>
+        <translation type="unfinished">چٹ</translation>
+    </message>
+    <message>
+        <source>The label associated with this address list entry</source>
+        <translation type="unfinished">اس ایڈریس لسٹ کے اندراج سے وابستہ لیبل</translation>
+    </message>
+    <message>
+        <source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
+        <translation type="unfinished">اس ایڈریس لسٹ کے اندراج سے وابستہ پتہ۔ اس میں صرف ایڈریس بھیجنے کے لیے ترمیم کی جا سکتی ہے۔</translation>
+    </message>
+    <message>
+        <source>&amp;Address</source>
+        <translation type="unfinished">پتہ</translation>
+    </message>
+    <message>
+        <source>New sending address</source>
+        <translation type="unfinished">نیا بھیجنے کا پتہ</translation>
+    </message>
+    <message>
+        <source>Edit receiving address</source>
+        <translation type="unfinished">وصول کنندہ ایڈریس میں ترمیم کریں۔</translation>
+    </message>
+    <message>
+        <source>Edit sending address</source>
+        <translation type="unfinished">بھیجنے کے پتے میں ترمیم کریں۔</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">والیٹ کو غیر مقفل نہیں کیا جا سکا۔</translation>
+    </message>
+    <message>
+        <source>New key generation failed.</source>
+        <translation type="unfinished">نئی چابی بننا ناکام ہوگیا</translation>
+    </message>
+</context>
+<context>
+    <name>FreespaceChecker</name>
+    <message>
+        <source>A new data directory will be created.</source>
+        <translation type="unfinished">ایک نئی ڈیٹا ڈائرکٹری بنائی جائے گی۔</translation>
+    </message>
+    <message>
+        <source>name</source>
+        <translation type="unfinished">نام</translation>
+    </message>
+    <message>
+        <source>Path already exists, and is not a directory.</source>
+        <translation type="unfinished">پاتھ پہلے سے موجود ہے، اور ڈائرکٹری نہیں ہے۔</translation>
+    </message>
+    <message>
+        <source>Cannot create data directory here.</source>
+        <translation type="unfinished">یہاں ڈیٹا ڈائرکٹری نہیں بن سکتی۔</translation>
+    </message>
+</context>
+<context>
+    <name>Intro</name>
+    <message>
+        <source>Bitcoin</source>
+        <translation type="unfinished">بٹ کوائن</translation>
+    </message>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>The wallet will also be stored in this directory.</source>
+        <translation type="unfinished">والیٹ بھی اس ڈائرکٹری میں محفوظ کیا جائے گا۔</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">نقص</translation>
+    </message>
+    <message>
+        <source>Welcome</source>
+        <translation type="unfinished">خوش آمدید</translation>
+    </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">بلاک چین اسٹوریج کو محدود کریں۔</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
+        <translation type="unfinished">اس ترتیب کو واپس کرنے کے لیے پورے بلاکچین کو دوبارہ ڈاؤن لوڈ کرنے کی ضرورت ہے۔ پہلے پوری چین کو ڈاؤن لوڈ کرنا اور بعد میں اسے کاٹنا تیز تر ہے۔ کچھ جدید خصوصیات کو غیر فعال کرتا ہے۔</translation>
+    </message>
+    <message>
+        <source> GB</source>
+        <translation type="unfinished">جی بی</translation>
+    </message>
+    <message>
+        <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
+        <translation type="unfinished">اگر آپ نے بلاک چین اسٹوریج کو محدود کرنے کا انتخاب کیا ہے (کاٹنا)، تو تاریخی ڈیٹا کو ابھی بھی ڈاؤن لوڈ اور پروسیس کیا جانا چاہیے، لیکن آپ کے ڈسک کے استعمال کو کم رکھنے کے لیے اسے بعد میں حذف کر دیا جائے گا۔</translation>
+    </message>
+    <message>
+        <source>Use the default data directory</source>
+        <translation type="unfinished">پہلے سے طے شدہ ڈیٹا ڈائرکٹری استعمال کریں۔</translation>
+    </message>
+    <message>
+        <source>Use a custom data directory:</source>
+        <translation type="unfinished">اپنی مرضی کے مطابق ڈیٹا ڈائرکٹری کا استعمال کریں:</translation>
+    </message>
+</context>
+<context>
+    <name>HelpMessageDialog</name>
+    <message>
+        <source>version</source>
+        <translation type="unfinished">ورژن</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation type="unfinished">کے بارے میں 1%1</translation>
+    </message>
+    <message>
+        <source>Command-line options</source>
+        <translation type="unfinished">کمانڈ لائن کے اختیارات</translation>
+    </message>
+</context>
+<context>
+    <name>ShutdownWindow</name>
+    <message>
+        <source>Do not shut down the computer until this window disappears.</source>
+        <translation type="unfinished">جب تک یہ ونڈو غائب نہ ہوجائے کمپیوٹر کو بند نہ کریں۔</translation>
+    </message>
+</context>
+<context>
+    <name>ModalOverlay</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">فارم</translation>
+    </message>
+    <message>
+        <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
+        <translation type="unfinished">ہو سکتا ہے حالیہ لین دین ابھی تک نظر نہ آئے، اور اس وجہ سے آپ کے والیٹ کا بیلنس غلط ہو سکتا ہے۔ یہ معلومات درست ہوں گی جب آپ کے والیٹ نے بٹ کوائن نیٹ ورک کے ساتھ مطابقت پذیری مکمل کر لی ہے، جیسا کہ ذیل میں تفصیل ہے۔</translation>
+    </message>
+    <message>
+        <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source>
+        <translation type="unfinished">ایسے بٹ کوائنز خرچ کرنے کی کوشش کرنا جو ابھی تک ظاہر نہ ہونے والے لین دین سے متاثر ہوں نیٹ ورک کے ذریعے قبول نہیں کیا جائے گا۔</translation>
+    </message>
+    <message>
+        <source>Number of blocks left</source>
+        <translation type="unfinished">باقی بلاکس کی تعداد</translation>
+    </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">نامعلوم</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">حساب لگانا</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">آخری بلاک کا وقت</translation>
+    </message>
+    <message>
+        <source>Progress</source>
+        <translation type="unfinished">پیش رفت</translation>
+    </message>
+    <message>
+        <source>Progress increase per hour</source>
+        <translation type="unfinished">فی گھنٹہ پیش رفت میں اضافہ</translation>
+    </message>
+    <message>
+        <source>Estimated time left until synced</source>
+        <translation type="unfinished">مطابقت پذیر ہونے میں تخمینی وقت باقی ہے۔</translation>
+    </message>
+    <message>
+        <source>Hide</source>
+        <translation type="unfinished">چھپائیں</translation>
+    </message>
+    </context>
+<context>
+    <name>OpenURIDialog</name>
+    <message>
+        <source>Open bitcoin URI</source>
+        <translation type="unfinished">بٹ کوائن URI کھولیں۔</translation>
+    </message>
+    <message>
+        <source>URI:</source>
+        <translation type="unfinished">URI</translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
+        <translation type="unfinished">کلپ بورڈ سے پتہ چسپاں کریں۔</translation>
+    </message>
+</context>
+<context>
+    <name>OptionsDialog</name>
+    <message>
+        <source>Options</source>
+        <translation type="unfinished">اختیارات</translation>
+    </message>
+    <message>
+        <source>&amp;Main</source>
+        <translation type="unfinished">&amp; مرکزی</translation>
+    </message>
+    <message>
+        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">کٹائی کو فعال کرنا لین دین کو ذخیرہ کرنے کے لیے درکار ڈسک کی جگہ کو نمایاں طور پر کم کرتا ہے۔ تمام بلاکس اب بھی مکمل طور پر درست ہیں۔ اس ترتیب کو واپس کرنے کے لیے پورے بلاکچین کو دوبارہ ڈاؤن لوڈ کرنے کی ضرورت ہے۔</translation>
+    </message>
+    <message>
+        <source>Size of &amp;database cache</source>
+        <translation type="unfinished">ڈیٹا بیس کیشے کا سائز</translation>
+    </message>
+    <message>
+        <source>Number of script &amp;verification threads</source>
+        <translation type="unfinished">اسکرپٹ اور تصدیقی دھاگوں کی تعداد</translation>
+    </message>
+    <message>
+        <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
+        <translation type="unfinished">پراکسی کا IP پتہ (جیسے IPv4: 127.0.0.1 / IPv6: ::1)</translation>
+    </message>
+    <message>
+        <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source>
+        <translation type="unfinished">یہ دکھاتا ہے کہ کیا فراہم کردہ ڈیفالٹ SOCKS5 پراکسی اس نیٹ ورک کی قسم کے ذریعے ساتھی تک پہنچنے کے لیے استعمال ہوتی ہے۔</translation>
+    </message>
+    <message>
+        <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source>
+        <translation type="unfinished">ونڈو بند ہونے پر ایپلیکیشن سے باہر نکلنے کے بجائے چھوٹا کریں۔ جب یہ آپشن فعال ہو جائے گا تو مینو میں ایگزٹ کو منتخب کرنے کے بعد ہی ایپلیکیشن بند ہو جائے گی۔</translation>
+    </message>
+    <message>
+        <source>Open Configuration File</source>
+        <translation type="unfinished">ترتیب والی فائل کھولیں۔</translation>
+    </message>
+    <message>
+        <source>Reset all client options to default.</source>
+        <translation type="unfinished">کلائنٹ کے تمام اختیارات کو ڈیفالٹ پر دوبارہ ترتیب دیں۔</translation>
+    </message>
+    <message>
+        <source>&amp;Reset Options</source>
+        <translation type="unfinished">اور دوبارہ ترتیب دینے کے اختیارات</translation>
+    </message>
+    <message>
+        <source>&amp;Network</source>
+        <translation type="unfinished">اور نیٹ ورک</translation>
+    </message>
+    <message>
+        <source>GB</source>
+        <translation type="unfinished">جی بی</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">اس ترتیب کو واپس کرنے کے لیے پورے بلاکچین کو دوبارہ ڈاؤن لوڈ کرنے کی ضرورت ہے۔</translation>
+    </message>
+    <message>
+        <source>Expert</source>
+        <translation type="unfinished">ماہر</translation>
+    </message>
+    <message>
+        <source>Enable coin &amp;control features</source>
+        <translation type="unfinished">سکے اور کنٹرول کی خصوصیات کو فعال کریں۔</translation>
+    </message>
+    <message>
+        <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source>
+        <translation type="unfinished">اگر آپ غیر مصدقہ تبدیلی کے اخراجات کو غیر فعال کرتے ہیں، تو کسی لین دین کی تبدیلی کو اس وقت تک استعمال نہیں کیا جا سکتا جب تک کہ اس لین دین کی کم از کم ایک تصدیق نہ ہو۔ اس سے یہ بھی متاثر ہوتا ہے کہ آپ کے بیلنس کا حساب کیسے لیا جاتا ہے۔</translation>
+    </message>
+    <message>
+        <source>&amp;Spend unconfirmed change</source>
+        <translation type="unfinished">اور غیر مصدقہ تبدیلی خرچ کریں۔</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">براؤزر ونڈو</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">بیرونی دستخطی معاونت کے بغیر مرتب کیا گیا (بیرونی دستخط کے لیے درکار)</translation>
+    </message>
+    <message>
+        <source>default</source>
+        <translation type="unfinished">پہلے سے طے شدہ</translation>
+    </message>
+    <message>
+        <source>none</source>
+        <translation type="unfinished">کوئی نہیں</translation>
+    </message>
+    <message>
+        <source>Confirm options reset</source>
+        <translation type="unfinished">اختیارات کو دوبارہ ترتیب دینے کی تصدیق کریں۔</translation>
+    </message>
+    <message>
+        <source>Client restart required to activate changes.</source>
+        <translation type="unfinished">تبدیلیوں کو چالو کرنے کے لیے کلائنٹ کو دوبارہ شروع کرنا ضروری ہے۔</translation>
+    </message>
+    <message>
+        <source>Client will be shut down. Do you want to proceed?</source>
+        <translation type="unfinished">کلائنٹ کو بند کر دیا جائے گا۔ کیا آپ آگے بڑھنا چاہتے ہیں؟</translation>
+    </message>
+    <message>
+        <source>Configuration options</source>
+        <extracomment>Window title text of pop-up box that allows opening up of configuration file.</extracomment>
+        <translation type="unfinished">کنفیگریشن کے اختیارات</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">نقص</translation>
+    </message>
+    <message>
+        <source>This change would require a client restart.</source>
+        <translation type="unfinished">اس تبدیلی کو کلائنٹ کو دوبارہ شروع کرنے کی ضرورت ہوگی۔</translation>
+    </message>
+    <message>
+        <source>The supplied proxy address is invalid.</source>
+        <translation type="unfinished">فراہم کردہ پراکسی پتہ غلط ہے۔</translation>
+    </message>
+</context>
+<context>
+    <name>OverviewPage</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">فارم</translation>
+    </message>
+    <message>
+        <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
+        <translation type="unfinished">ظاہر کی گئی معلومات پرانی ہو سکتی ہے۔ کنکشن قائم ہونے کے بعد آپ کا والیٹ خود بخود بٹ کوائن نیٹ ورک کے ساتھ ہم آہنگ ہوجاتا ہے، لیکن یہ عمل ابھی مکمل نہیں ہوا ہے۔</translation>
+    </message>
+    <message>
+        <source>Watch-only:</source>
+        <translation type="unfinished">صرف دیکھنے کے لیے:</translation>
+    </message>
+    <message>
+        <source>Available:</source>
+        <translation type="unfinished">دستیاب:</translation>
+    </message>
+    <message>
+        <source>Your current spendable balance</source>
+        <translation type="unfinished">آپ کا موجودہ قابل خرچ بیلنس</translation>
+    </message>
+    <message>
+        <source>Pending:</source>
+        <translation type="unfinished">زیر التواء</translation>
+    </message>
+    <message>
+        <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
+        <translation type="unfinished">کل ٹرانزیکشنز جن کی تصدیق ہونا باقی ہے، اور ابھی تک قابل خرچ بیلنس میں شمار نہیں ہوتے </translation>
+    </message>
+    <message>
+        <source>Immature:</source>
+        <translation type="unfinished">Immature</translation>
+    </message>
+    <message>
+        <source>Mined balance that has not yet matured</source>
+        <translation type="unfinished">کان کنی کا توازن جو ابھی پختہ نہیں ہوا ہے۔</translation>
+    </message>
+    <message>
+        <source>Balances</source>
+        <translation type="unfinished">بیلنس</translation>
+    </message>
+    <message>
+        <source>Total:</source>
+        <translation type="unfinished">کل:</translation>
+    </message>
+    <message>
+        <source>Your current total balance</source>
+        <translation type="unfinished">آپ کا کل موجودہ بیلنس</translation>
+    </message>
+    <message>
+        <source>Your current balance in watch-only addresses</source>
+        <translation type="unfinished">صرف دیکھنے والے ایڈریسز میں آپ کا موجودہ بیلنس</translation>
+    </message>
+    <message>
+        <source>Spendable:</source>
+        <translation type="unfinished">قابل خرچ:</translation>
+    </message>
+    <message>
+        <source>Recent transactions</source>
+        <translation type="unfinished">حالیہ لین دین</translation>
+    </message>
+    <message>
+        <source>Unconfirmed transactions to watch-only addresses</source>
+        <translation type="unfinished">صرف دیکھنے والے پتوں پر غیر تصدیق شدہ لین دین</translation>
+    </message>
+    <message>
+        <source>Current total balance in watch-only addresses</source>
+        <translation type="unfinished">صرف دیکھنے کے پتوں میں کل موجودہ بیلنس</translation>
+    </message>
+    <message>
+        <source>Privacy mode activated for the Overview tab. To unmask the values, uncheck Settings-&gt;Mask values.</source>
+        <translation type="unfinished">جائزہ ٹیب کے لیے پرائیویسی موڈ کو فعال کر دیا گیا ہے۔ اقدار کو ہٹانے کے لیے، سیٹنگز-&gt;ماسک ویلیوز کو غیر چیک کریں۔</translation>
+    </message>
+</context>
+<context>
+    <name>PSBTOperationsDialog</name>
+    <message>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished">کلپ بورڈ پر کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">محفوظ کریں۔</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished">بند کریں</translation>
+    </message>
+    <message>
+        <source>Could not sign any more inputs.</source>
+        <translation type="unfinished">مزید ان پٹ پر دستخط نہیں ہو سکے۔</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">لین دین کا ڈیٹا محفوظ کریں۔</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">کل رقم</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">یا</translation>
+    </message>
+    <message>
+        <source>Transaction still needs signature(s).</source>
+        <translation type="unfinished">لین دین کو ابھی بھی دستخط کی ضرورت ہے۔</translation>
+    </message>
+    <message>
+        <source>(But this wallet cannot sign transactions.)</source>
+        <translation type="unfinished">(لیکن یہ والیٹ لین دین پر دستخط نہیں کر سکتا۔)</translation>
+    </message>
+    <message>
+        <source>Transaction status is unknown.</source>
+        <translation type="unfinished">لین دین کی حیثیت نامعلوم ہے۔</translation>
+    </message>
+</context>
+<context>
+    <name>PaymentServer</name>
+    <message>
+        <source>Payment request error</source>
+        <translation type="unfinished">ادائیگی کی درخواست کی خرابی۔</translation>
+    </message>
+    <message>
+        <source>Cannot process payment request because BIP70 is not supported.
+Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
+If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source>
+        <translation type="unfinished">ادائیگی کی درخواست پر کارروائی نہیں کی جا سکتی کیونکہ BIP70 تعاون یافتہ نہیں ہے۔ BIP70 میں سیکورٹی کی وسیع خامیوں کی وجہ سے یہ پرزور مشورہ دیا جاتا ہے کہ والیٹ کو تبدیل کرنے کے لیے کسی بھی تاجر کی ہدایات کو نظر انداز کر دیا جائے۔ اگر آپ کو یہ خرابی موصول ہو رہی ہے تو آپ کو مرچنٹ سے BIP21 مطابقت پذیر URI فراہم کرنے کی درخواست کرنی چاہیے۔</translation>
+    </message>
+    </context>
+<context>
+    <name>PeerTableModel</name>
+    <message>
+        <source>User Agent</source>
+        <extracomment>Title of Peers Table column which contains the peer's User Agent string.</extracomment>
+        <translation type="unfinished">صارف ایجنٹ</translation>
+    </message>
+    <message>
+        <source>Ping</source>
+        <extracomment>Title of Peers Table column which indicates the current latency of the connection with the peer.</extracomment>
+        <translation type="unfinished">فریق</translation>
+    </message>
+    <message>
+        <source>Peer</source>
+        <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
+        <translation type="unfinished">فریق</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
+        <translation type="unfinished">بھیجا</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have received from the peer.</extracomment>
+        <translation type="unfinished">موصول ہوا۔</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">پتہ</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <extracomment>Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists.</extracomment>
+        <translation type="unfinished">قسم</translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <extracomment>Title of Peers Table column which states the network the peer connected through.</extracomment>
+        <translation type="unfinished">نیٹ ورک</translation>
+    </message>
+    </context>
+<context>
+    <name>QRImageWidget</name>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">اور تصویر محفوظ کریں…</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Image</source>
+        <translation type="unfinished">اور تصویر کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Save QR Code</source>
+        <translation type="unfinished">کیو آر کوڈ محفوظ کریں۔</translation>
+    </message>
+    </context>
+<context>
+    <name>RPCConsole</name>
+    <message>
+        <source>&amp;Information</source>
+        <translation type="unfinished">اور معلومات</translation>
+    </message>
+    <message>
+        <source>Startup time</source>
+        <translation type="unfinished">آغاز کا وقت</translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">نیٹ ورک</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">نام</translation>
+    </message>
+    <message>
+        <source>Number of connections</source>
+        <translation type="unfinished">رابطوں کی تعداد</translation>
+    </message>
+    <message>
+        <source>Block chain</source>
+        <translation type="unfinished">بلاک چین</translation>
+    </message>
+    <message>
+        <source>Current number of transactions</source>
+        <translation type="unfinished">لین دین کی موجودہ تعداد</translation>
+    </message>
+    <message>
+        <source>Memory usage</source>
+        <translation type="unfinished">استعمال یاد داشت</translation>
+    </message>
+    <message>
+        <source>Wallet: </source>
+        <translation type="unfinished">والیٹ</translation>
+    </message>
+    <message>
+        <source>(none)</source>
+        <translation type="unfinished">(کوئی نہیں)</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <translation type="unfinished">موصول ہوا۔</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <translation type="unfinished">بھیجا</translation>
+    </message>
+    <message>
+        <source>&amp;Peers</source>
+        <translation type="unfinished">اور فریق</translation>
+    </message>
+    <message>
+        <source>Banned peers</source>
+        <translation type="unfinished">ممنوعہ فریقوں</translation>
+    </message>
+    <message>
+        <source>Select a peer to view detailed information.</source>
+        <translation type="unfinished">تفصیلی معلومات دیکھنے کے لیے فریق کا انتخاب کریں۔</translation>
+    </message>
+    <message>
+        <source>Starting Block</source>
+        <translation type="unfinished">شروع ہونے والا بلاک</translation>
+    </message>
+    <message>
+        <source>Synced Blocks</source>
+        <translation type="unfinished">مطابقت پذیر بلاکس</translation>
+    </message>
+    <message>
+        <source>User Agent</source>
+        <translation type="unfinished">صارف ایجنٹ</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">نوڈ ونڈو</translation>
+    </message>
+    <message>
+        <source>Current block height</source>
+        <translation type="unfinished">موجودہ بلاک کی اونچائی</translation>
+    </message>
+    <message>
+        <source>Decrease font size</source>
+        <translation type="unfinished">فونٹ کا سائز کم کریں۔</translation>
+    </message>
+    <message>
+        <source>Increase font size</source>
+        <translation type="unfinished">فونٹ سائز میں اضافہ کریں</translation>
+    </message>
+    <message>
+        <source>Permissions</source>
+        <translation type="unfinished">اجازتیں</translation>
+    </message>
+    <message>
+        <source>Services</source>
+        <translation type="unfinished">خدمات</translation>
+    </message>
+    <message>
+        <source>Connection Time</source>
+        <translation type="unfinished">کنکشن کا وقت</translation>
+    </message>
+    <message>
+        <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
+        <translation type="unfinished">اس فریق کی جانب سے ابتدائی درستگی کی جانچ پڑتال کرنے والا ایک نیا بلاک موصول ہونے کے بعد گزرا ہوا وقت۔</translation>
+    </message>
+    <message>
+        <source>Last Block</source>
+        <translation type="unfinished">آخری بلاک</translation>
+    </message>
+    <message>
+        <source>Last Send</source>
+        <translation type="unfinished">آخری بھیجا۔</translation>
+    </message>
+    <message>
+        <source>Last Receive</source>
+        <translation type="unfinished">آخری موصول</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">آخری بلاک کا وقت</translation>
+    </message>
+    <message>
+        <source>Totals</source>
+        <translation type="unfinished">کل</translation>
+    </message>
+    <message>
+        <source>Clear console</source>
+        <translation type="unfinished">کنسول صاف کریں۔</translation>
+    </message>
+    <message>
+        <source>In:</source>
+        <translation type="unfinished">میں:</translation>
+    </message>
+    <message>
+        <source>Out:</source>
+        <translation type="unfinished">باہر:</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">ایڈریس کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>&amp;Disconnect</source>
+        <translation type="unfinished">اور منقطع کریں۔</translation>
+    </message>
+    <message>
+        <source>Network activity disabled</source>
+        <translation type="unfinished">نیٹ ورک کی سرگرمی غیر فعال ہے۔</translation>
+    </message>
+    <message>
+        <source>Yes</source>
+        <translation type="unfinished">جی ہاں</translation>
+    </message>
+    <message>
+        <source>No</source>
+        <translation type="unfinished">نہیں</translation>
+    </message>
+    <message>
+        <source>To</source>
+        <translation type="unfinished">کو</translation>
+    </message>
+    <message>
+        <source>From</source>
+        <translation type="unfinished">سے</translation>
+    </message>
+    <message>
+        <source>Ban for</source>
+        <translation type="unfinished">کے لیے پابندی</translation>
+    </message>
+    <message>
+        <source>Never</source>
+        <translation type="unfinished">کبھی نہیں</translation>
+    </message>
+    <message>
+        <source>Unknown</source>
+        <translation type="unfinished">نامعلوم</translation>
+    </message>
+</context>
+<context>
+    <name>ReceiveCoinsDialog</name>
+    <message>
+        <source>&amp;Amount:</source>
+        <translation type="unfinished">اور لیبل</translation>
+    </message>
+    <message>
+        <source>&amp;Label:</source>
+        <translation type="unfinished">اور لیبل</translation>
+    </message>
+    <message>
+        <source>&amp;Message:</source>
+        <translation type="unfinished">اور پیغام</translation>
+    </message>
+    <message>
+        <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source>
+        <translation type="unfinished">ادائیگی کی درخواست کے ساتھ منسلک کرنے کے لیے ایک اختیاری پیغام، جو درخواست کے کھلنے پر ظاہر ہوگا۔ نوٹ: پیغام بٹ کوائن نیٹ ورک پر ادائیگی کے ساتھ نہیں بھیجا جائے گا۔</translation>
+    </message>
+    <message>
+        <source>An optional label to associate with the new receiving address.</source>
+        <translation type="unfinished">نئے وصول کنندہ پتے کے ساتھ منسلک کرنے کے لیے ایک اختیاری لیبل۔</translation>
+    </message>
+    <message>
+        <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source>
+        <translation type="unfinished">درخواست کرنے کے لیے ایک اختیاری رقم۔ کسی مخصوص رقم کی درخواست نہ کرنے کے لیے اسے خالی یا صفر چھوڑ دیں۔</translation>
+    </message>
+    <message>
+        <source>An optional label to associate with the new receiving address (used by you to identify an invoice).  It is also attached to the payment request.</source>
+        <translation type="unfinished">وصول کرنے والے نئے پتے کے ساتھ منسلک کرنے کے لیے ایک اختیاری لیبل (آپ کی طرف سے رسید کی شناخت کے لیے استعمال کیا جاتا ہے)۔ یہ ادائیگی کی درخواست کے ساتھ بھی منسلک ہے۔</translation>
+    </message>
+    <message>
+        <source>An optional message that is attached to the payment request and may be displayed to the sender.</source>
+        <translation type="unfinished">ایک اختیاری پیغام جو ادائیگی کی درخواست کے ساتھ منسلک ہے اور بھیجنے والے کو دکھایا جا سکتا ہے۔</translation>
+    </message>
+    <message>
+        <source>&amp;Create new receiving address</source>
+        <translation type="unfinished">اور وصول کرنے کا نیا پتہ بنائیں</translation>
+    </message>
+    <message>
+        <source>Clear</source>
+        <translation type="unfinished">صاف</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">ایڈریس کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">کاپی اور لیبل</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">کاپی اور رقم</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">والیٹ کو غیر مقفل نہیں کیا جا سکا۔</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Request payment to …</source>
+        <translation type="unfinished">ادائیگی کی درخواست کریں…</translation>
+    </message>
+    <message>
+        <source>Address:</source>
+        <translation type="unfinished">پتہ:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">رقم:</translation>
+    </message>
+    <message>
+        <source>Label:</source>
+        <translation type="unfinished">لیبل</translation>
+    </message>
+    <message>
+        <source>Message:</source>
+        <translation type="unfinished">پیغام</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">پرس:</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Address</source>
+        <translation type="unfinished">کاپی پتہ</translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">اور تصویر محفوظ کریں…</translation>
+    </message>
+    </context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">تاریخ</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">لیبل</translation>
+    </message>
+    <message>
+        <source>Message</source>
+        <translation type="unfinished">پیغام</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(کوئی لیبل نہیں)</translation>
+    </message>
+    <message>
+        <source>Requested</source>
+        <translation type="unfinished">درخواست کی۔</translation>
+    </message>
+</context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message>
+        <source>Send Coins</source>
+        <translation type="unfinished">سکے بھیجیں۔</translation>
+    </message>
+    <message>
+        <source>Coin Control Features</source>
+        <translation type="unfinished">سکوں کے کنٹرول کی خصوصیات</translation>
+    </message>
+    <message>
+        <source>automatically selected</source>
+        <translation type="unfinished">خود بخود منتخب</translation>
+    </message>
+    <message>
+        <source>Insufficient funds!</source>
+        <translation type="unfinished">ناکافی فنڈز</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">مقدار:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">بائٹس:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">رقم:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">فیس:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">فیس کے بعد:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">تبدیلی:</translation>
+    </message>
+    <message>
+        <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source>
+        <translation type="unfinished">اگر یہ فعال ہے، لیکن تبدیلی کا پتہ خالی یا غلط ہے، تبدیلی کو نئے پیدا کردہ پتے پر بھیج دیا جائے گا۔</translation>
+    </message>
+    <message>
+        <source>Transaction Fee:</source>
+        <translation type="unfinished">ٹرانزیکشن فیس:</translation>
+    </message>
+    <message>
+        <source>Warning: Fee estimation is currently not possible.</source>
+        <translation type="unfinished">انتباہ: فیس کا تخمینہ فی الحال ممکن نہیں ہے۔</translation>
+    </message>
+    <message>
+        <source>per kilobyte</source>
+        <translation type="unfinished">فی کلو بائٹ(kb)</translation>
+    </message>
+    <message>
+        <source>Hide</source>
+        <translation type="unfinished">چھپائیں</translation>
+    </message>
+    <message>
+        <source>Recommended:</source>
+        <translation type="unfinished">تجویز کردہ:</translation>
+    </message>
+    <message>
+        <source>Custom:</source>
+        <translation type="unfinished">اپنی مرضی کے مطابق:</translation>
+    </message>
+    <message>
+        <source>Send to multiple recipients at once</source>
+        <translation type="unfinished">ایک ساتھ متعدد وصول کنندگان کو بھیجیں۔</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">نہ ہونے کے برابر</translation>
+    </message>
+    <message>
+        <source>Choose…</source>
+        <translation type="unfinished">منتخب کریں…</translation>
+    </message>
+    <message>
+        <source>Hide transaction fee settings</source>
+        <translation type="unfinished">لین دین کی فیس کی ترتیبات چھپائیں۔</translation>
+    </message>
+    <message>
+        <source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
+        <translation type="unfinished">بہت کم فیس کے نتیجے میں کبھی بھی تصدیق نہ ہونے والی لین دین ہو سکتی ہے (ٹول ٹپ پڑھیں)</translation>
+    </message>
+    <message>
+        <source>Confirmation time target:</source>
+        <translation type="unfinished">تصدیقی وقت کا ہدف:</translation>
+    </message>
+    <message>
+        <source>Balance:</source>
+        <translation type="unfinished">بیلنس:</translation>
+    </message>
+    <message>
+        <source>Confirm the send action</source>
+        <translation type="unfinished">بھیجنے کی کارروائی کی تصدیق کریں۔</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">مقدار کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">رقم کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">فیس کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">فیس کے بعد کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">بائٹس کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">باقی شدہ کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">تبدیلی کاپی کریں</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">پہلے اپنے ہارڈویئر والیٹ کو جوڑیں۔</translation>
+    </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">وصول کنندگان کی فہرست کا جائزہ لینے کے لیے "تفصیلات دکھائیں..." پر کلک کریں۔</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">دستخط ناکام ہوگیا</translation>
+    </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">بیرونی دستخط کنندہ نہیں ملا</translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">بیرونی دستخط کی ناکامی۔</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">لین دین کا ڈیٹا محفوظ کریں۔</translation>
+    </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">بیرونی توازن:</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">یا</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction.</source>
+        <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
+        <translation type="unfinished">براہ کرم، اپنے لین دین کا جائزہ لیں۔</translation>
+    </message>
+    <message>
+        <source>Transaction fee</source>
+        <translation type="unfinished">ٹرانزیکشن فیس</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">کل رقم</translation>
+    </message>
+    <message>
+        <source>Confirm send coins</source>
+        <translation type="unfinished">سکے بھیجنے کی تصدیق کریں۔</translation>
+    </message>
+    <message>
+        <source>The recipient address is not valid. Please recheck.</source>
+        <translation type="unfinished">وصول کنندہ کا پتہ درست نہیں ہے۔ براہ کرم دوبارہ چیک کریں۔</translation>
+    </message>
+    <message>
+        <source>The amount to pay must be larger than 0.</source>
+        <translation type="unfinished">ادا کرنے کی رقم 0 سے زیادہ ہونی چاہیے۔</translation>
+    </message>
+    <message>
+        <source>The amount exceeds your balance.</source>
+        <translation type="unfinished">رقم آپ کے بیلنس سے زیادہ ہے۔</translation>
+    </message>
+    <message>
+        <source>Duplicate address found: addresses should only be used once each.</source>
+        <translation type="unfinished">ڈپلیکیٹ پتہ ملا: پتے صرف ایک بار استعمال کیے جائیں۔</translation>
+    </message>
+    <message>
+        <source>Transaction creation failed!</source>
+        <translation type="unfinished">لین دین کی تخلیق ناکام ہو گئی!</translation>
+    </message>
+    <message>
+        <source>Payment request expired.</source>
+        <translation type="unfinished">ادائیگی کی درخواست کی میعاد ختم ہوگئی۔</translation>
+    </message>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Warning: Invalid Bitcoin address</source>
+        <translation type="unfinished">انتباہ: غلط بٹ کوائن ایڈریس</translation>
+    </message>
+    <message>
+        <source>Warning: Unknown change address</source>
+        <translation type="unfinished">انتباہ: نامعلوم تبدیلی کا پتہ</translation>
+    </message>
+    <message>
+        <source>Confirm custom change address</source>
+        <translation type="unfinished">اپنی مرضی کے مطابق ایڈریس کی تبدیلی کی تصدیق کریں۔</translation>
+    </message>
+    <message>
+        <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source>
+        <translation type="unfinished">آپ نے تبدیلی کے لیے جو پتہ منتخب کیا ہے وہ اس والیٹ کا حصہ نہیں ہے۔ آپ کے والیٹ میں موجود کوئی بھی یا تمام فنڈز اس پتے پر بھیجے جا سکتے ہیں۔ کیا آپ یقین ہے؟</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(کوئی لیبل نہیں)</translation>
+    </message>
+</context>
+<context>
+    <name>SendCoinsEntry</name>
+    <message>
+        <source>&amp;Label:</source>
+        <translation type="unfinished">اور لیبل</translation>
+    </message>
+    <message>
+        <source>Choose previously used address</source>
+        <translation type="unfinished">پہلے استعمال شدہ پتہ کا انتخاب کریں۔</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address to send the payment to</source>
+        <translation type="unfinished">ادائیگی بھیجنے کے لیے بٹ کوائن کا پتہ</translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">کلپ بورڈ سے پتہ چسپاں کریں۔</translation>
+    </message>
+    <message>
+        <source>Remove this entry</source>
+        <translation type="unfinished">اس اندراج کو ہٹا دیں۔</translation>
+    </message>
+    <message>
+        <source>The amount to send in the selected unit</source>
+        <translation type="unfinished">منتخب یونٹ میں بھیجی جانے والی رقم</translation>
+    </message>
+    <message>
+        <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source>
+        <translation type="unfinished">بھیجی جانے والی رقم سے فیس کاٹی جائے گی۔ وصول کنندہ کو اس سے کم بٹ کوائنز موصول ہوں گے جو آپ رقم کے خانے میں داخل کریں گے۔ اگر متعدد وصول کنندگان کو منتخب کیا جاتا ہے، تو فیس کو برابر تقسیم کیا جاتا ہے۔</translation>
+    </message>
+    <message>
+        <source>Use available balance</source>
+        <translation type="unfinished">دستیاب بیلنس استعمال کریں۔</translation>
+    </message>
+    <message>
+        <source>Message:</source>
+        <translation type="unfinished">پیغام</translation>
+    </message>
+    <message>
+        <source>This is an unauthenticated payment request.</source>
+        <translation type="unfinished">یہ ایک غیر مستند ادائیگی کی درخواست ہے۔</translation>
+    </message>
+    <message>
+        <source>This is an authenticated payment request.</source>
+        <translation type="unfinished">یہ ایک تصدیق شدہ ادائیگی کی درخواست ہے۔</translation>
+    </message>
+    <message>
+        <source>Enter a label for this address to add it to the list of used addresses</source>
+        <translation type="unfinished">استعمال شدہ پتوں کی فہرست میں شامل کرنے کے لیے اس پتے کے لیے ایک لیبل درج کریں۔</translation>
+    </message>
+    <message>
+        <source>Pay To:</source>
+        <translation type="unfinished">ادائیگی کریں:</translation>
+    </message>
+    </context>
+<context>
+    <name>SignVerifyMessageDialog</name>
+    <message>
+        <source>Signatures - Sign / Verify a Message</source>
+        <translation type="unfinished">دستخط - ایک پیغام پر دستخط / تصدیق کریں۔</translation>
+    </message>
+    <message>
+        <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
+        <translation type="unfinished">آپ یہ ثابت کرنے کے لیے اپنے پتوں کے ساتھ پیغامات/معاہدوں پر دستخط کر سکتے ہیں کہ آپ ان پر بھیجے گئے بٹ کوائنز وصول کر سکتے ہیں۔ ہوشیار رہیں کہ کسی بھی مبہم یا بے ترتیب پر دستخط نہ کریں، کیونکہ فریب دہی کے حملے آپ کو اپنی شناخت پر دستخط کرنے کے لیے دھوکہ دینے کی کوشش کر سکتے ہیں۔ صرف مکمل تفصیلی بیانات پر دستخط کریں جن سے آپ اتفاق کرتے ہیں۔</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address to sign the message with</source>
+        <translation type="unfinished">پیغام پر دستخط کرنے کے لیے بٹ کوائن کا پتہ</translation>
+    </message>
+    <message>
+        <source>Choose previously used address</source>
+        <translation type="unfinished">پہلے استعمال شدہ پتہ کا انتخاب کریں۔</translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">کلپ بورڈ سے پتہ چسپاں کریں۔</translation>
+    </message>
+    <message>
+        <source>Enter the message you want to sign here</source>
+        <translation type="unfinished">وہ پیغام درج کریں جس پر آپ دستخط کرنا چاہتے ہیں۔</translation>
+    </message>
+    <message>
+        <source>Signature</source>
+        <translation type="unfinished">دستخط</translation>
+    </message>
+    <message>
+        <source>The entered address is invalid.</source>
+        <translation type="unfinished">درج کیا گیا پتہ غلط ہے۔</translation>
+    </message>
+    <message>
+        <source>Please check the address and try again.</source>
+        <translation type="unfinished">براہ کرم پتہ چیک کریں اور دوبارہ کوشش کریں۔</translation>
+    </message>
+    <message>
+        <source>No error</source>
+        <translation type="unfinished">کوئی غلطی نہیں۔</translation>
+    </message>
+    <message>
+        <source>Message signing failed.</source>
+        <translation type="unfinished">پیغام پر دستخط ناکام ہو گئے۔</translation>
+    </message>
+    <message>
+        <source>The signature could not be decoded.</source>
+        <translation type="unfinished">دستخط کو ڈی کوڈ نہیں کیا جا سکا۔</translation>
+    </message>
+    <message>
+        <source>Please check the signature and try again.</source>
+        <translation type="unfinished">براہ کرم دستخط چیک کریں اور دوبارہ کوشش کریں۔</translation>
+    </message>
+    <message>
+        <source>Message verification failed.</source>
+        <translation type="unfinished">پیغام کی تصدیق ناکام ہو گئی۔</translation>
+    </message>
+    <message>
+        <source>Message verified.</source>
+        <translation type="unfinished">پیغام کی تصدیق ہو گئی۔</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDesc</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">تاریخ</translation>
+    </message>
+    <message>
+        <source>From</source>
+        <translation type="unfinished">سے</translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished">نامعلوم</translation>
+    </message>
+    <message>
+        <source>To</source>
+        <translation type="unfinished">کو</translation>
+    </message>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>Transaction fee</source>
+        <translation type="unfinished">ٹرانزیکشن فیس</translation>
+    </message>
+    <message>
+        <source>Message</source>
+        <translation type="unfinished">پیغام</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">رقم</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">تاریخ</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">قسم</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">لیبل</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(کوئی لیبل نہیں)</translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">ایڈریس کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">کاپی اور لیبل</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">کاپی اور رقم</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">لین دین اور شناخت کی تفصیلات(ID) کاپی کریں۔</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">کوما سے الگ فائل</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">تصدیق شدہ</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">تاریخ</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">قسم</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">لیبل</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">پتہ</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">ایکسپورٹ ناکام ہوا</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletFrame</name>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">ایک نیا پرس بنائیں</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">نقص</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletModel</name>
+    <message>
+        <source>Send Coins</source>
+        <translation type="unfinished">سکے بھیجیں۔</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">پہلے سے طے شدہ والیٹ</translation>
+    </message>
+</context>
 <context>
     <name>WalletView</name>
     <message>
diff --git a/src/qt/locale/bitcoin_uz.ts b/src/qt/locale/bitcoin_uz.ts
new file mode 100644
index 00000000000..2da4f25448e
--- /dev/null
+++ b/src/qt/locale/bitcoin_uz.ts
@@ -0,0 +1,204 @@
+<TS version="2.1" language="uz">
+<context>
+    <name>AddressBookPage</name>
+    <message>
+        <source>Right-click to edit address or label</source>
+        <translation type="unfinished">Manzil yoki yorliqni o'zgartirish uchun o'ng tugmani bosing</translation>
+    </message>
+    <message>
+        <source>Create a new address</source>
+        <translation type="unfinished">Yangi manzil yarating</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation type="unfinished">&amp;Yangi</translation>
+    </message>
+    <message>
+        <source>Copy the currently selected address to the system clipboard</source>
+        <translation type="unfinished">Tanlangan manzilni tizim vaqtinchalik hotirasida saqlash</translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">&amp;Nusxalash</translation>
+    </message>
+    <message>
+        <source>C&amp;lose</source>
+        <translation type="unfinished">Y&amp;opish</translation>
+    </message>
+    <message>
+        <source>Delete the currently selected address from the list</source>
+        <translation type="unfinished">Tanlangan manzilni ro'yhatdan o'chiring</translation>
+    </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">Qidirish uchun manzil yoki yorliqni kiriting</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Joriy ichki oynaning ichidagi malumotlarni faylga yuklab olish</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation type="unfinished">o'chirish</translation>
+    </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">Tangalarni jo'natish uchun addressni tanlash</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">Tangalarni qabul qilib olish uchun manzilni tanlang</translation>
+    </message>
+    <message>
+        <source>C&amp;hoose</source>
+        <translation type="unfinished">tanlamoq</translation>
+    </message>
+    <message>
+        <source>Sending addresses</source>
+        <translation type="unfinished">Yuboriladigan manzillar</translation>
+    </message>
+    <message>
+        <source>Receiving addresses</source>
+        <translation type="unfinished">Qabul qilinadigan manzillar</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">Quyidagilar to'lovlarni yuborish uchun Bitcoin manzillaringizdir. Har doim yuborishdan oldin yuborilayotgan tangalar sonini va qabul qiluvchi manzilni tekshirib ko'ring.</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">Bular to'lovlarni qabul qilishingiz uchun sizning Bitcoin manzillaringizdir. Yangi qabul qiluvchi manzil yaratish uchun qabul qilish varag'idagi ''Yangi qabul qilish manzilini yaratish'' ustiga bosing. Faqat 'legacy' turdagi manzillar bilan xisobga kirish mumkin.</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Address</source>
+        <translation type="unfinished">&amp;manzildan nusxa olish</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Label</source>
+        <translation type="unfinished">Yorliqni ko'chirish</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation type="unfinished">O'zgartirmoq</translation>
+    </message>
+    <message>
+        <source>Export Address List</source>
+        <translation type="unfinished">Manzil ro'yhatini yuklab olish</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Vergul bilan ajratilgan fayl</translation>
+    </message>
+    </context>
+<context>
+    <name>QObject</name>
+    <message numerus="yes">
+        <source>%n second(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n minute(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n hour(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n day(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n week(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n year(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>BitcoinGUI</name>
+    <message numerus="yes">
+        <source>Processed %n block(s) of transaction history.</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>Intro</name>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionDesc</name>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    </context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">Vergul bilan ajratilgan fayl</translation>
+    </message>
+    </context>
+<context>
+    <name>WalletView</name>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Joriy ichki oynaning ichidagi malumotlarni faylga yuklab olish</translation>
+    </message>
+    </context>
+</TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_uz@Latn.ts b/src/qt/locale/bitcoin_uz@Latn.ts
index d18d84231ff..7e64e930481 100644
--- a/src/qt/locale/bitcoin_uz@Latn.ts
+++ b/src/qt/locale/bitcoin_uz@Latn.ts
@@ -13,6 +13,10 @@
         <source>&amp;New</source>
         <translation type="unfinished">&amp;Yangi</translation>
     </message>
+    <message>
+        <source>Copy the currently selected address to the system clipboard</source>
+        <translation type="unfinished">Tanlangan manzilni tizim buferiga nusxalash</translation>
+    </message>
     <message>
         <source>&amp;Copy</source>
         <translation type="unfinished">&amp;Nusxalash</translation>
@@ -21,10 +25,50 @@
         <source>C&amp;lose</source>
         <translation type="unfinished">Yo&amp;pish</translation>
     </message>
+    <message>
+        <source>Delete the currently selected address from the list</source>
+        <translation type="unfinished">Ro'yxatdan hozir tanlangan manzilni o'chiring</translation>
+    </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">Qidirish uchun manzil yoki yorliqni kiriting</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Joriy yorliqdagi ma'lumotlarni faylga eksport qilish</translation>
+    </message>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;Eksport</translation>
+    </message>
     <message>
         <source>&amp;Delete</source>
         <translation type="unfinished">&amp;O'chirish</translation>
     </message>
+    <message>
+        <source>Choose the address to send coins to</source>
+        <translation type="unfinished">Coin yuborish uchun manzilni tanlang</translation>
+    </message>
+    <message>
+        <source>Choose the address to receive coins with</source>
+        <translation type="unfinished">Coinlarni qabul qilish uchun manzilni tanlang</translation>
+    </message>
+    <message>
+        <source>C&amp;hoose</source>
+        <translation type="unfinished">&amp;Tanlash</translation>
+    </message>
+    <message>
+        <source>Sending addresses</source>
+        <translation type="unfinished">Manzillarni yuborish</translation>
+    </message>
+    <message>
+        <source>Receiving addresses</source>
+        <translation type="unfinished">Qabul qiluvchi manzillari</translation>
+    </message>
+    <message>
+        <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
+        <translation type="unfinished">Quyida to'lovlarni yuborish uchun Bitcoin manzillaringiz. Coinlarni yuborishdan oldin har doim miqdor va qabul qilish manzilini tekshiring.</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">&amp;Manzillarni nusxalash</translation>
@@ -41,6 +85,17 @@
         <translation type="unfinished">Manzil</translation>
     </message>
     </context>
+<context>
+    <name>AskPassphraseDialog</name>
+    <message>
+        <source>Are you sure you wish to encrypt your wallet?</source>
+        <translation type="unfinished">Haqiqatan ham hamyoningizni shifrlamoqchimisiz?</translation>
+    </message>
+    <message>
+        <source>Wallet encrypted</source>
+        <translation type="unfinished">Hamyon shifrlangan</translation>
+    </message>
+    </context>
 <context>
     <name>QObject</name>
     <message numerus="yes">
@@ -86,6 +141,25 @@
         </translation>
     </message>
     </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Unable to start HTTP server. See debug log for details.</source>
+        <translation type="unfinished">HTTP serverni ishga tushirib bo'lmadi. Tafsilotlar uchun disk raskadrovka jurnaliga qarang.</translation>
+    </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">Bloklar tekshirilmoqda…</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">Hamyon(lar) tekshirilmoqda…</translation>
+    </message>
+    <message>
+        <source>Wallet needed to be rewritten: restart %s to complete</source>
+        <translation type="unfinished">Hamyonni qayta yozish kerak: bajarish uchun 1%s ni qayta ishga tushiring</translation>
+    </message>
+</context>
 <context>
     <name>BitcoinGUI</name>
     <message numerus="yes">
@@ -168,4 +242,15 @@
         <translation type="unfinished">Manzil</translation>
     </message>
     </context>
+<context>
+    <name>WalletView</name>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">&amp;Eksport</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">Joriy yorliqdagi ma'lumotlarni faylga eksport qilish</translation>
+    </message>
+    </context>
 </TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts
index 6d9ac3e8959..387d3b82533 100644
--- a/src/qt/locale/bitcoin_vi.ts
+++ b/src/qt/locale/bitcoin_vi.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">Nhấp chuột phải để sửa địa chỉ hoặc nhãn</translation>
+        <translation type="unfinished">Nhấn chuột phải để sửa địa chỉ hoặc nhãn</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -29,6 +29,10 @@
         <source>Delete the currently selected address from the list</source>
         <translation type="unfinished">Xóa địa chỉ đang chọn từ danh sách</translation>
     </message>
+    <message>
+        <source>Enter address or label to search</source>
+        <translation type="unfinished">Nhập địa chỉ hoặc nhãn để tìm kiếm</translation>
+    </message>
     <message>
         <source>Export the data in the current tab to a file</source>
         <translation type="unfinished">Xuất dữ liệu trong thẻ hiện tại ra file</translation>
@@ -78,9 +82,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;Label</source>
         <translation type="unfinished">Copy &amp;Nhãn</translation>
     </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation type="unfinished">&amp;Chỉnh sửa</translation>
+    </message>
     <message>
         <source>Export Address List</source>
-        <translation type="unfinished">Xuất List Địa Chỉ</translation>
+        <translation type="unfinished">Xuất danh sách địa chỉ</translation>
     </message>
     <message>
         <source>Comma separated file</source>
@@ -116,7 +124,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <name>AskPassphraseDialog</name>
     <message>
         <source>Passphrase Dialog</source>
-        <translation type="unfinished">Log Cụm Mật Khẩu</translation>
+        <translation type="unfinished">Hộp thoại cụm mật khẩu</translation>
     </message>
     <message>
         <source>Enter passphrase</source>
@@ -150,9 +158,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Change passphrase</source>
         <translation type="unfinished">Đổi cụm mật khẩu</translation>
     </message>
+    <message>
+        <source>Confirm wallet encryption</source>
+        <translation type="unfinished">Xác nhận mã hóa ví</translation>
+    </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
-        <translation type="unfinished">Cảnh báo: Nếu bạn mã hóa ví và mất cụm mật khẩu, bạn sẽ &lt;b&gt;MẤT TẤT CẢ BITCOIN&lt;/b&gt;!</translation>
+        <translation type="unfinished">Cảnh báo: Nếu bạn mã hóa ví và mất cụm mật khẩu, bạn sẽ &lt;b&gt;MẤT TẤT CẢ CÁC BITCOIN&lt;/b&gt;!</translation>
     </message>
     <message>
         <source>Are you sure you wish to encrypt your wallet?</source>
@@ -164,7 +176,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
-        <translation type="unfinished">Nhập cụm từ mật khẩu mới cho ví điện tử. Hãy sử dụng cụm mật khẩu với mười hoặc nhiều hơn các ký tự ngẫu nhiên, hoặc nhiều hơn tám từ.</translation>
+        <translation type="unfinished">Nhập cụm mật khẩu mới cho ví.&lt;br/&gt;Vui lòng sử dụng cụm mật khẩu gồm &lt;b&gt;mười ký tự ngẫu nhiên trở lên&lt;/b&gt;, hoặc &lt;b&gt;tám từ trở lên&lt;/b&gt;.</translation>
     </message>
     <message>
         <source>Enter the old passphrase and new passphrase for the wallet.</source>
@@ -232,9 +244,23 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
         <translation type="unfinished">Lỗi nghiêm trong. %1 không thể tiếp tục và sẽ thoát ra</translation>
     </message>
-    </context>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">Đã xảy ra lỗi nội bộ. %1 sẽ cố gắng tiếp tục một cách an toàn. Đây là một lỗi không mong muốn có thể được báo cáo như mô tả bên dưới.</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Bạn muốn đặt lại cài đặt về giá trị mặc định hay hủy bỏ mà không thực hiện thay đổi?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">Đã xảy ra lỗi nghiêm trọng. Kiểm tra xem tệp cài đặt có thể ghi được không hoặc thử chạy với -nosettings.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Error: Xác định data directory "%1" không tồn tại.</translation>
@@ -243,6 +269,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: Cannot parse configuration file: %1.</source>
         <translation type="unfinished">Lỗi: không thể  phân giải tệp cài đặt cấu hình: %1.</translation>
     </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">Lỗi: %1</translation>
+    </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 vẫn chưa thoát ra một cách an toàn…</translation>
+    </message>
     <message>
         <source>Amount</source>
         <translation type="unfinished">Số lượng</translation>
@@ -266,31 +300,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n giây</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n phút</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n giờ</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n ngày</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n tuần</numerusform>
         </translation>
     </message>
     <message>
@@ -300,16 +334,36 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n năm</numerusform>
         </translation>
     </message>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">Không thể đọc tệp cài đặt</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">Không thể ghi tệp cài đặt</translation>
+    </message>
+    <message>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">Lỗi khi đọc%s! Dữ liệu giao dịch có thể bị thiếu hoặc không chính xác. Đang quét lại ví.</translation>
+    </message>
     <message>
         <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
         <translation type="unfinished">Dự toán phí không thành công. Fallbackfee bị vô hiệu hóa. Đợi sau một vài khối hoặc kích hoạt -fallbackfee.</translation>
     </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">peers.dat (%s) không hợp lệ hoặc bị hỏng. Nếu bạn cho rằng đây là lỗi, vui lòng báo cáo cho %s. Để giải quyết vấn đề này, bạn có thể di chuyển tệp (%s) ra khỏi (đổi tên, di chuyển hoặc xóa) để tạo tệp mới vào lần bắt đầu tiếp theo.</translation>
+    </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">Chỉ mục khối db chứa một 'txindex' kế thừa. Để xóa dung lượng ổ đĩa bị chiếm dụng, hãy chạy -reindex đầy đủ, nếu không, hãy bỏ qua lỗi này. Thông báo lỗi này sẽ không được hiển thị lại.</translation>
+    </message>
     <message>
         <source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
         <translation type="unfinished">Đây là phí giao dịch tối đa bạn phải trả (ngoài phí thông thường) để ưu tiên việc tránh chi xài một phần (partial spend) so với việc lựa chọn đồng coin thông thường.</translation>
@@ -322,6 +376,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>A fatal internal error occurred, see debug.log for details</source>
         <translation type="unfinished">Lỗi nghiêm trọng xảy ra, xem debug.log để biết chi tiết</translation>
     </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">Không thể đặt -forcednsseed thành true khi đặt -dnsseed thành false.</translation>
+    </message>
     <message>
         <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
         <translation type="unfinished">Không thể đặt -peerblockfilters mà không có -blockfilterindex.</translation>
@@ -330,6 +388,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Cannot write to data directory '%s'; check permissions.</source>
         <translation type="unfinished">Không thể ghi vào thư mục dữ liệu  '%s'; kiểm tra lại quyền.</translation>
     </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">Không thể hoàn tất nâng cấp -txindex được bắt đầu bởi phiên bản trước. Khởi động lại với phiên bản trước đó hoặc chạy -reindex đầy đủ.</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s yêu cầu lắng nghe trên cổng %u. Cổng này được coi là "xấu" và do đó không có khả năng bất kỳ ngang hàng Bitcoin Core nào kết nối với nó. Xem doc/p2p-bad-ports.md để biết chi tiết và danh sách đầy đủ.</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">Không thể cung cấp các kết nối cụ thể và yêu cầu addrman tìm các kết nối gửi đi cùng một lúc.</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">Lỗi khi tải %s: Ví người ký bên ngoài đang được tải mà không có hỗ trợ người ký bên ngoài được biên dịch</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">Không thể đổi tên tệp ngang hàng không hợp lệ. Vui lòng di chuyển hoặc xóa nó và thử lại.</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">Các kết nối đi bị hạn chế đối với Tor (-onlynet =onion) nhưng proxy để truy cập mạng Tor không được cung cấp (no -proxy = và no -onion = given) hoặc nó bị cấm rõ ràng (-onion = 0)</translation>
+    </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
         <translation type="unfinished">Cài  dặt thuộc tính cho %s chỉ có thể áp dụng cho  mạng %s trong khi  [%s] .</translation>
@@ -366,6 +448,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to verify database</source>
         <translation type="unfinished">Lỗi xác nhận dữ liệu</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">Đầu vào không được tìm thấy hoặc đã được sử dụng</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">Không đủ tiền</translation>
@@ -374,6 +460,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Invalid P2P permission: '%s'</source>
         <translation type="unfinished">Quyền P2P không hợp lệ: '%s'</translation>
     </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">Số tiền còn thiếu</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">Thiếu dữ liệu giải quyết để ước tính quy mô giao dịch</translation>
+    </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">Không có địa chỉ</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">Không có máy chủ proxy nào được chỉ định. Sử dụng -proxy =&lt;ip&gt; hoặc -proxy =&lt;ip:port&gt;.</translation>
@@ -414,6 +512,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">Transaction amounts phải không âm</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">Chỉ số đầu ra thay đổi giao dịch nằm ngoài phạm vi</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">Transaction có chuỗi mempool chain quá dài</translation>
@@ -422,6 +524,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">Transaction phải có ít nhất một người nhận</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">Giao dịch cần thay đổi địa chỉ, nhưng chúng tôi không thể tạo địa chỉ đó.</translation>
+    </message>
     <message>
         <source>Unable to create the PID file '%s': %s</source>
         <translation type="unfinished">Không thể tạo tệp PID '%s': %s</translation>
@@ -434,6 +540,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to generate keys</source>
         <translation type="unfinished">Không thể tạo khóa</translation>
     </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">Không thể parse -maxuploadtarget '%s</translation>
+    </message>
     <message>
         <source>Unknown -blockfilterindex value %s.</source>
         <translation type="unfinished">Không rõ giá trị  -blockfilterindex  %s.</translation>
@@ -501,6 +611,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create a new wallet</source>
         <translation type="unfinished">Tạo một ví mới</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Thu nhỏ</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Ví tiền</translation>
@@ -534,22 +648,82 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Receive</source>
         <translation type="unfinished">&amp;Nhận</translation>
     </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;Mã hóa ví…</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">Mã hóa private key thuộc về ví của bạn</translation>
     </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;Thay dổi Passphrase…</translation>
+    </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
         <translation type="unfinished">Đăng ký lời nhắn với địa chỉ Bitcoin của bạn để chứng minh quyền sở hữu chúng</translation>
     </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;Xác minh tin nhắn…</translation>
+    </message>
     <message>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">Xác minh lời nhắn để chắc chắn đã được đăng ký với địa chỉ Bitcoin xác định</translation>
     </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">Đóng ví…</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">Tạo ví…</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">Đóng tất cả các ví…</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation type="unfinished">&amp;Tệp</translation>
+    </message>
+    <message>
+        <source>&amp;Settings</source>
+        <translation type="unfinished">&amp;Cài đặt</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation type="unfinished">&amp;Giúp đỡ</translation>
+    </message>
     <message>
         <source>Tabs toolbar</source>
         <translation type="unfinished">Các thanh công cụ</translation>
     </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">Đồng bộ hóa tiêu đề (%1%)...</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">Đồng bộ hóa với network...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">Lập chỉ mục các khối trên đĩa…</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">Xử lý khối trên đĩa…</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">Lập chỉ mục lại các khối trên đĩa…</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">Kết nối với các peer…</translation>
+    </message>
     <message>
         <source>Request payments (generates QR codes and bitcoin: URIs)</source>
         <translation type="unfinished">Yêu cầu thanh toán (tạo QR code và bitcoin: URIs)</translation>
@@ -569,13 +743,17 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>Đã xử lý %n khối lịch sử giao dịch.</numerusform>
         </translation>
     </message>
     <message>
         <source>%1 behind</source>
         <translation type="unfinished">%1 phia sau</translation>
     </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">Đang bắt kịp...</translation>
+    </message>
     <message>
         <source>Last received block was generated %1 ago.</source>
         <translation type="unfinished">Khối nhận cuối cùng đã được tạo %1.</translation>
@@ -602,7 +780,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction</source>
-        <translation type="unfinished">Kết nối với mạng Bitcoin thông qua một proxy SOCKS5 riêng cho các dịch vụ Tor hành.</translation>
+        <translation type="unfinished">Tải một phần giao dịch Bitcoin đã ký</translation>
+    </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">Tải PSBT từ &amp;khay nhớ tạm…</translation>
     </message>
     <message>
         <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
@@ -618,11 +800,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>&amp;Sending addresses</source>
-        <translation type="unfinished">&amp;Các địa chỉ đang gửi</translation>
+        <translation type="unfinished">Các địa chỉ đang &amp;gửi</translation>
     </message>
     <message>
         <source>&amp;Receiving addresses</source>
-        <translation type="unfinished">&amp;Các địa chỉ đang nhận</translation>
+        <translation type="unfinished">Các địa chỉ đang &amp;nhận</translation>
     </message>
     <message>
         <source>Open a bitcoin: URI</source>
@@ -648,6 +830,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
         <translation type="unfinished">Hiển thị %1 tin nhắn hỗ trợ để nhận được danh sách Bitcoin command-line khả dụng</translation>
     </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">&amp;Giá trị mặt nạ</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">Che các giá trị trong tab Tổng quan</translation>
+    </message>
     <message>
         <source>default wallet</source>
         <translation type="unfinished">ví mặc định</translation>
@@ -668,13 +858,45 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 khách</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Ẩn</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">Trìn&amp;h diễn</translation>
+    </message>
     <message numerus="yes">
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n kết nối đang hoạt động với mạng Bitcoin.</numerusform>
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">Nhấp để có thêm hành động.</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">Hiển thị tab ngang hàng</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">Tắt hoạt động mạng</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">Bật hoạt động mạng</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">Lỗi: %1</translation>
+    </message>
     <message>
         <source>Warning: %1</source>
         <translation type="unfinished">Cảnh báo: %1</translation>
@@ -733,21 +955,28 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
-        <translation type="unfinished">Khóa riên tư &lt;b&gt;đã tắt&lt;/b&gt;</translation>
+        <translation type="unfinished">Khóa riêng tư &lt;b&gt;đã tắt&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
-        <translation type="unfinished">Ví thì &lt;b&gt;encrypted&lt;/b&gt; và hiện tại &lt;b&gt;unlocked&lt;/b&gt;</translation>
+        <translation type="unfinished">Ví thì &lt;b&gt;được mã hóa &lt;/b&gt; và hiện tại &lt;b&gt;đã khóa&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
-        <translation type="unfinished">Ví thì &lt;b&gt;encrypted&lt;/b&gt; và hiện tại &lt;b&gt;locked&lt;/b&gt;</translation>
+        <translation type="unfinished">Ví thì &lt;b&gt;được mã hóa &lt;/b&gt; và hiện tại &lt;b&gt;đã khóa&lt;/b&gt;</translation>
     </message>
     <message>
         <source>Original message:</source>
         <translation type="unfinished">Tin nhắn ban đầu:</translation>
     </message>
 </context>
+<context>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">Đơn vị để hiển thị số tiền. Nhấp để chọn đơn vị khác.</translation>
+    </message>
+</context>
 <context>
     <name>CoinControlDialog</name>
     <message>
@@ -782,6 +1011,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(un)select all</source>
         <translation type="unfinished">(không)chọn tất cả</translation>
     </message>
+    <message>
+        <source>Tree mode</source>
+        <translation type="unfinished">Chế độ Tree</translation>
+    </message>
+    <message>
+        <source>List mode</source>
+        <translation type="unfinished">Chế độ List</translation>
+    </message>
     <message>
         <source>Amount</source>
         <translation type="unfinished">Số lượng</translation>
@@ -810,6 +1047,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy amount</source>
         <translation type="unfinished">Sao chép số lượng</translation>
     </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">Sao chép giao dịch &amp;ID và chỉ mục đầu ra</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">Sao chép số lượng</translation>
@@ -879,6 +1120,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">Cảnh báo khi tạo ví</translation>
     </message>
     </context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Tải ví</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Đang tải ví…</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -907,7 +1161,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
-        <translation type="unfinished">Bạn có chắc bạn muốn đóng ví %1 ?</translation>
+        <translation type="unfinished">Bạn có chắc chắn muốn đóng ví không &lt;i&gt;%1&lt;/i&gt;?</translation>
     </message>
     <message>
         <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
@@ -966,12 +1220,20 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Use descriptors for scriptPubKey management</source>
-        <translation type="unfinished">Không có máy chủ proxy nào được chỉ định. Sử dụng -proxy = &lt;ip&gt; hoặc -proxy = &lt;ip: port&gt;.</translation>
+        <translation type="unfinished">Sử dụng bộ mô tả để quản lý scriptPubKey</translation>
     </message>
     <message>
         <source>Descriptor Wallet</source>
         <translation type="unfinished">Mô tả ví</translation>
     </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">Sử dụng thiết bị ký bên ngoài chẳng hạn như ví phần cứng. Trước tiên, hãy định cấu hình tập lệnh người ký bên ngoài trong tùy chọn ví.</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">Người ký tên bên ngoài</translation>
+    </message>
     <message>
         <source>Create</source>
         <translation type="unfinished">Tạo</translation>
@@ -980,9 +1242,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Compiled without sqlite support (required for descriptor wallets)</source>
         <translation type="unfinished">Biên dịch cần hỗ trợ SQLite(Bắt buộc đối với mô tả ví)</translation>
     </message>
-    </context>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">Được biên dịch mà không có hỗ trợ ký bên ngoài (bắt buộc đối với ký bên ngoài)</translation>
+    </message>
+</context>
 <context>
     <name>EditAddressDialog</name>
+    <message>
+        <source>Edit Address</source>
+        <translation type="unfinished">Sửa địa chỉ</translation>
+    </message>
     <message>
         <source>&amp;Label</source>
         <translation type="unfinished">Nhãn dữ liệu</translation>
@@ -1005,11 +1276,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Edit receiving address</source>
-        <translation type="unfinished">Edit address đang nhận</translation>
+        <translation type="unfinished">Chỉnh sửa địa chỉ nhận</translation>
     </message>
     <message>
         <source>Edit sending address</source>
-        <translation type="unfinished">Edit address đang gửi</translation>
+        <translation type="unfinished">Chỉnh sửa địa chỉ gửi</translation>
     </message>
     <message>
         <source>The entered address "%1" is not a valid Bitcoin address.</source>
@@ -1057,6 +1328,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>Intro</name>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB dung lượng khả dụng</translation>
+    </message>
     <message>
         <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
         <translation type="unfinished">Ít nhất %1 GB data sẽ được trữ tại danh mục này, và nó sẽ lớn theo thời gian.</translation>
@@ -1069,7 +1344,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>(đủ để khôi phục các bản sao lưu trong %n ngày)</numerusform>
         </translation>
     </message>
     <message>
@@ -1082,23 +1357,35 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Error: Specified data directory "%1" cannot be created.</source>
-        <translation type="unfinished">Error: Danh mục data xác định "%1" không thể được tạo.</translation>
+        <translation type="unfinished">Lỗi: Danh mục data xác định "%1" không thể được tạo.</translation>
     </message>
     <message>
         <source>Error</source>
         <translation type="unfinished">Lỗi</translation>
     </message>
+    <message>
+        <source>Welcome</source>
+        <translation type="unfinished">Chào mừng</translation>
+    </message>
+    <message>
+        <source>Welcome to %1.</source>
+        <translation type="unfinished">Chào mừng bạn đến %1.</translation>
+    </message>
     <message>
         <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source>
-        <translation type="unfinished">Đây là lần đầu chương trình khởi chạy, bạn có thể chọn nơi %1 sẽ lưu trữ data.</translation>
+        <translation type="unfinished">Đây là lần đầu chương trình khởi chạy, bạn có thể chọn nơi %1 sẽ lưu trữ dữ liệu.</translation>
     </message>
     <message>
         <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
-        <translation type="unfinished">Khi bạn click OK, %1 sẽ bắt đầu download và process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</translation>
+        <translation type="unfinished">Khi bạn click OK, %1 sẽ bắt đầu tải về và xử lý tất cả %4 chuỗi khối (%2GB) bắt đầu với các giao dịch sớm nhất trong %3 khi %4 được khởi chạy ban đầu.</translation>
+    </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">Giới hạn lưu trữ chuỗi khối thành</translation>
     </message>
     <message>
         <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
-        <translation type="unfinished">Đảo ngược lại thiết lập này yêu cầu download lại toàn bộ blockchain. Download toàn bộ blockchain trước và loại nó sau đó sẽ nhanh hơn. Vô hiệu hóa một số tính năng nâng cao.</translation>
+        <translation type="unfinished">Đảo ngược lại thiết lập này yêu cầu tại lại toàn bộ chuỗi khối. Tải về toàn bộ chuỗi khối trước và loại nó sau đó sẽ nhanh hơn. Vô hiệu hóa một số tính năng nâng cao.</translation>
     </message>
     <message>
         <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
@@ -1123,9 +1410,21 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>version</source>
         <translation type="unfinished">phiên bản</translation>
     </message>
-    </context>
+    <message>
+        <source>About %1</source>
+        <translation type="unfinished">Về %1</translation>
+    </message>
+    <message>
+        <source>Command-line options</source>
+        <translation type="unfinished">Tùy chọn dòng lệnh</translation>
+    </message>
+</context>
 <context>
     <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1 đang tắt…</translation>
+    </message>
     <message>
         <source>Do not shut down the computer until this window disappears.</source>
         <translation type="unfinished">Đừng tắt máy tính đến khi cửa sổ này đóng.</translation>
@@ -1145,6 +1444,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Number of blocks left</source>
         <translation type="unfinished">Số của blocks còn lại</translation>
     </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">Không xác định…</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">đang tính toán…</translation>
+    </message>
     <message>
         <source>Last block time</source>
         <translation type="unfinished">Thời gian block cuối cùng</translation>
@@ -1169,7 +1476,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 is currently syncing.  It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source>
         <translation type="unfinished">%1 đang được đồng bộ. Header và block sẽ được download từ các nốt lân cận và thẩm định tới khi đạt đỉnh của blockchain.</translation>
     </message>
-    </context>
+    <message>
+        <source>Unknown. Syncing Headers (%1, %2%)…</source>
+        <translation type="unfinished">Không xác định. Đồng bộ hóa tiêu đề (%1, %2%)…</translation>
+    </message>
+</context>
 <context>
     <name>OpenURIDialog</name>
     <message>
@@ -1179,7 +1490,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message>
         <source>Paste address from clipboard</source>
         <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
-        <translation type="unfinished">Paste address từ clipboard</translation>
+        <translation type="unfinished">Dán địa chỉ từ khay nhớ tạm</translation>
     </message>
 </context>
 <context>
@@ -1194,11 +1505,27 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Automatically start %1 after logging in to the system.</source>
-        <translation type="unfinished">Tự động bắt đầu %1 sau khi đăng nhập vào system.</translation>
+        <translation type="unfinished">Tự động bắt đầu %1 sau khi đăng nhập vào hệ thống.</translation>
     </message>
     <message>
         <source>&amp;Start %1 on system login</source>
-        <translation type="unfinished">&amp;Bắt đầu %1 trên đăng nhập system</translation>
+        <translation type="unfinished">&amp;Bắt đầu %1 trên đăng nhập hệ thống</translation>
+    </message>
+    <message>
+        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">Cho phép cắt bớt làm giảm đáng kể không gian đĩa cần thiết để lưu trữ các giao dịch. Tất cả các khối vẫn được xác nhận đầy đủ. Hoàn nguyên cài đặt này yêu cầu tải xuống lại toàn bộ chuỗi khối.</translation>
+    </message>
+    <message>
+        <source>Size of &amp;database cache</source>
+        <translation type="unfinished">Kích thước bộ nhớ cache của &amp;cơ sở dữ liệu</translation>
+    </message>
+    <message>
+        <source>Number of script &amp;verification threads</source>
+        <translation type="unfinished">Số lượng tập lệnh và chuỗi &amp;xác minh</translation>
+    </message>
+    <message>
+        <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
+        <translation type="unfinished">Địa chỉ IP của proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</translation>
     </message>
     <message>
         <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source>
@@ -1218,12 +1545,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Reset all client options to default.</source>
-        <translation type="unfinished">Reset tất cả client options to default.</translation>
+        <translation type="unfinished">Đặt lại tất cả các tùy chọn máy khách về mặc định.</translation>
     </message>
     <message>
         <source>&amp;Reset Options</source>
         <translation type="unfinished">&amp;Reset Tùy chọn</translation>
     </message>
+    <message>
+        <source>&amp;Network</source>
+        <translation type="unfinished">&amp;Mạng</translation>
+    </message>
     <message>
         <source>Prune &amp;block storage to</source>
         <translation type="unfinished">Cắt tỉa và lưu trữ khối tới</translation>
@@ -1232,6 +1563,62 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Reverting this setting requires re-downloading the entire blockchain.</source>
         <translation type="unfinished">Hoàn nguyên cài đặt này yêu cầu tải xuống lại toàn bộ blockchain.</translation>
     </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">Kích thước bộ đệm cơ sở dữ liệu tối đa. Bộ nhớ đệm lớn hơn có thể góp phần đồng bộ hóa nhanh hơn, sau đó lợi ích ít rõ rệt hơn đối với hầu hết các trường hợp sử dụng. Giảm kích thước bộ nhớ cache sẽ làm giảm mức sử dụng bộ nhớ. Bộ nhớ mempool không sử dụng được chia sẻ cho bộ nhớ cache này.</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">Đặt số lượng chuỗi xác minh tập lệnh. Giá trị âm tương ứng với số lõi bạn muốn để lại miễn phí cho hệ thống.</translation>
+    </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">Điều này cho phép bạn hoặc công cụ của bên thứ ba giao tiếp với nút thông qua các lệnh dòng lệnh và JSON-RPC.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Bật máy chủ R&amp;PC</translation>
+    </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Có đặt trừ phí khỏi số tiền làm mặc định hay không.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">Trừ &amp;phí khỏi số tiền theo mặc định</translation>
+    </message>
+    <message>
+        <source>Expert</source>
+        <translation type="unfinished">Chuyên gia</translation>
+    </message>
+    <message>
+        <source>Enable coin &amp;control features</source>
+        <translation type="unfinished">Bật tính năng &amp;kiểm soát và tiền xu</translation>
+    </message>
+    <message>
+        <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source>
+        <translation type="unfinished">Nếu bạn vô hiệu hóa chi tiêu của thay đổi chưa được xác nhận, thay đổi từ một giao dịch sẽ không thể được sử dụng cho đến khi giao dịch đó có ít nhất một xác nhận. Điều này cũng ảnh hưởng đến cách tính số dư của bạn.</translation>
+    </message>
+    <message>
+        <source>&amp;Spend unconfirmed change</source>
+        <translation type="unfinished">&amp;Chi tiêu thay đổi chưa được xác nhận</translation>
+    </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">Bật điều khiển &amp;PSBT</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">Có hiển thị các điều khiển PSBT hay không.</translation>
+    </message>
     <message>
         <source>Accept connections from outside.</source>
         <translation type="unfinished">Chấp nhận kết nối từ bên ngoài</translation>
@@ -1276,6 +1663,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
         <translation type="unfinished">Chọn default đơn vị phân chia để hiện giao diện và đang gửi coins.</translation>
     </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">URL của bên thứ ba (ví dụ: trình khám phá khối) xuất hiện trong tab giao dịch dưới dạng các mục menu ngữ cảnh. %s trong URL được thay thế bằng mã băm giao dịch. Nhiều URL được phân tách bằng thanh dọc |. </translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;URL giao dịch của bên thứ ba</translation>
+    </message>
     <message>
         <source>Whether to show coin control features or not.</source>
         <translation type="unfinished">Cho hiển thị tính năng coin control hoặc không.</translation>
@@ -1322,6 +1717,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">File cấu hình được sử dụng để chỉ định các tùy chọn nâng cao của người dùng mà ghi đè GUI settings. Ngoài ra, bất kỳ tùy chọn dòng lệnh sẽ ghi đè lên tập tin cấu hình này.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Tiếp tục</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Hủy</translation>
@@ -1444,6 +1843,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to sign transaction: %1</source>
         <translation type="unfinished">Đăng ký giao dịch thất bại :%1</translation>
     </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">Không thể ký đầu vào khi ví bị khóa.</translation>
+    </message>
     <message>
         <source>Could not sign any more inputs.</source>
         <translation type="unfinished">Không thể thêm bất cứ nguồn vào nào.</translation>
@@ -1496,13 +1899,21 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>or</source>
         <translation type="unfinished">hoặc</translation>
     </message>
+    <message>
+        <source>Transaction has %1 unsigned inputs.</source>
+        <translation type="unfinished">Giao dịch có %1 đầu vào chưa được ký.</translation>
+    </message>
     <message>
         <source>Transaction is missing some information about inputs.</source>
         <translation type="unfinished">Giao dịch thiếu một số thông tin về đầu vào.</translation>
     </message>
     <message>
         <source>Transaction still needs signature(s).</source>
-        <translation type="unfinished">Giao dịch cần chữ ký</translation>
+        <translation type="unfinished">Giao dịch vẫn cần (các) chữ ký.</translation>
+    </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(Nhưng không có ví nào được tải.)</translation>
     </message>
     <message>
         <source>(But this wallet cannot sign transactions.)</source>
@@ -1677,6 +2088,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Synced Blocks</source>
         <translation type="unfinished">Blocks đã được đồng bộ</translation>
     </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">Giao dịch cuối cùng</translation>
+    </message>
     <message>
         <source>The mapped Autonomous System used for diversifying peer selection.</source>
         <translation type="unfinished">Hệ thống tự động ánh xạ được sử dụng để đa dạng hóa lựa chọn ngang hàng.</translation>
@@ -1685,6 +2100,33 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Mapped AS</source>
         <translation type="unfinished">AS đã được map</translation>
     </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">Cho dù chúng tôi chuyển tiếp địa chỉ đến đồng đẳng này.</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">Chuyển tiếp địa chỉ</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">Tổng số địa chỉ được xử lý, không bao gồm những địa chỉ bị giảm do giới hạn tỷ lệ.</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">Các địa chỉ đã được xử lý</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">Tổng số địa chỉ bị giảm do giới hạn tỷ lệ.</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">Tỷ lệ địa chỉ có giới hạn</translation>
+    </message>
     <message>
         <source>User Agent</source>
         <translation type="unfinished">User Đặc Vụ</translation>
@@ -1761,6 +2203,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Clear console</source>
         <translation type="unfinished">Xóa console</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Sao chép IP/Netmask</translation>
+    </message>
     <message>
         <source>Executing command without any wallet</source>
         <translation type="unfinished">Đang chạy lệnh khi không có ví nào</translation>
@@ -2085,6 +2532,16 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source>
         <translation type="unfinished">Bạn có thể tăng phí sau khi gửi( với tín hiệu Phí Thay Thế, BIP-125)</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Bạn có muốn tạo giao dịch này không?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">Vui lòng xem lại giao dịch của bạn. Bạn có thể tạo và gửi giao dịch này hoặc tạo Giao dịch Bitcoin được ký một phần (PSBT), bạn có thể lưu hoặc sao chép và sau đó ký bằng, ví dụ: ví %1 ngoại tuyến hoặc ví phần cứng tương thích với PSBT.</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -2141,7 +2598,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>Ước tính sẽ bắt đầu xác nhận trong %n khối.</numerusform>
         </translation>
     </message>
     <message>
@@ -2326,6 +2783,13 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">Private key cho address đã nhập thì không có sẵn.</translation>
     </message>
     </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">nhấn q để tắt máy</translation>
+    </message>
+</context>
 <context>
     <name>TransactionDesc</name>
     <message>
@@ -2335,7 +2799,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>sẽ trưởng thành sau%n khối nữa </numerusform>
         </translation>
     </message>
     <message>
@@ -2408,6 +2872,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Enter address, transaction id, or label to search</source>
         <translation type="unfinished">Nhập địa chỉ, số id giao dịch, hoặc nhãn để tìm kiếm</translation>
     </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">Hiển thị trong %1</translation>
+    </message>
     <message>
         <source>Comma separated file</source>
         <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
diff --git a/src/qt/locale/bitcoin_zh-Hans.ts b/src/qt/locale/bitcoin_zh-Hans.ts
index 455cdf958ac..20aa9babdd1 100644
--- a/src/qt/locale/bitcoin_zh-Hans.ts
+++ b/src/qt/locale/bitcoin_zh-Hans.ts
@@ -1,96 +1,105 @@
 <TS version="2.1" language="zh_Hans">
 <context>
     <name>AddressBookPage</name>
+    <message>
+        <source>Right-click to edit address or label</source>
+        <translation type="unfinished">鼠标右击编辑地址或标签</translation>
+    </message>
     <message>
         <source>Create a new address</source>
-        <translation type="unfinished">创建一个新的地址</translation>
+        <translation type="unfinished">创建新地址</translation>
     </message>
     <message>
         <source>&amp;New</source>
-        <translation type="unfinished">新建</translation>
+        <translation type="unfinished">新建(&amp;N)</translation>
     </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">复制选定的地址到系统剪切板</translation>
+        <translation type="unfinished">复制当前选中的地址到系统剪贴板</translation>
     </message>
     <message>
         <source>&amp;Copy</source>
-        <translation type="unfinished">复制</translation>
+        <translation type="unfinished">复制(&amp;C)</translation>
     </message>
     <message>
         <source>C&amp;lose</source>
-        <translation type="unfinished">关闭</translation>
+        <translation type="unfinished">关闭(&amp;L)</translation>
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
-        <translation type="unfinished">从列表删除选定的地址</translation>
+        <translation type="unfinished">从列表中删除选中的地址</translation>
     </message>
     <message>
         <source>Enter address or label to search</source>
-        <translation type="unfinished">输入地址或者标签进行搜索</translation>
+        <translation type="unfinished">输入地址或标签来搜索</translation>
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
-        <translation type="unfinished">导出当前数据到文件</translation>
+        <translation type="unfinished">将当前标签页数据导出到文件</translation>
     </message>
     <message>
         <source>&amp;Export</source>
-        <translation type="unfinished">导出</translation>
+        <translation type="unfinished">导出(&amp;E)</translation>
     </message>
     <message>
         <source>&amp;Delete</source>
-        <translation type="unfinished">删除</translation>
+        <translation type="unfinished">删除(&amp;D)</translation>
     </message>
     <message>
         <source>Choose the address to send coins to</source>
-        <translation type="unfinished">选择发送比特币地址</translation>
+        <translation type="unfinished">选择要发币给哪些地址</translation>
     </message>
     <message>
         <source>Choose the address to receive coins with</source>
-        <translation type="unfinished">选择接收比特币地址</translation>
+        <translation type="unfinished">选择要用哪些地址收币</translation>
     </message>
     <message>
         <source>C&amp;hoose</source>
-        <translation type="unfinished">选择</translation>
+        <translation type="unfinished">选择(&amp;H)</translation>
     </message>
     <message>
         <source>Sending addresses</source>
-        <translation type="unfinished">发送地址</translation>
+        <translation type="unfinished">付款地址</translation>
     </message>
     <message>
         <source>Receiving addresses</source>
-        <translation type="unfinished">接收地址</translation>
+        <translation type="unfinished">收款地址</translation>
     </message>
     <message>
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
-        <translation type="unfinished">这是你的比特币发币地址。发送前请确认发送数量和接收地址</translation>
+        <translation type="unfinished">您可以给这些比特币地址付款。在付款之前，务必要检查金额和收款地址是否正确。</translation>
     </message>
     <message>
         <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
 Signing is only possible with addresses of the type 'legacy'.</source>
-        <translation type="unfinished">这是你的比特币接收地址。点击接收选项卡中“创建新的接收地址”按钮来创建新的地址。
-签名只能使用“传统”类型的地址。</translation>
+        <translation type="unfinished">这是您用来收款的比特币地址。使用“接收”标签页中的“创建新收款地址”按钮来创建新的收款地址。
+只有“传统（legacy）”类型的地址支持签名。</translation>
     </message>
     <message>
         <source>&amp;Copy Address</source>
-        <translation type="unfinished">复制地址</translation>
+        <translation type="unfinished">复制地址(&amp;C)</translation>
     </message>
     <message>
         <source>Copy &amp;Label</source>
-        <translation type="unfinished">复制标签</translation>
+        <translation type="unfinished">复制标签(&amp;L)</translation>
     </message>
     <message>
         <source>&amp;Edit</source>
-        <translation type="unfinished">编辑</translation>
+        <translation type="unfinished">编辑(&amp;E)</translation>
     </message>
     <message>
         <source>Export Address List</source>
         <translation type="unfinished">导出地址列表</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">逗号分隔文件</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
-        <translation type="unfinished">保存地址列表至%1时发生错误，请重试。</translation>
+        <translation type="unfinished">尝试保存地址列表到 %1 时发生错误。请再试一次。</translation>
     </message>
     <message>
         <source>Exporting Failed</source>
@@ -128,7 +137,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Repeat new passphrase</source>
-        <translation type="unfinished">重复输入新密码</translation>
+        <translation type="unfinished">重复新密码</translation>
     </message>
     <message>
         <source>Show passphrase</source>
@@ -140,7 +149,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>This operation needs your wallet passphrase to unlock the wallet.</source>
-        <translation type="unfinished">此操作需要您的钱包密码用来解锁钱包。</translation>
+        <translation type="unfinished">这个操作需要你的钱包密码来解锁钱包。</translation>
     </message>
     <message>
         <source>Unlock wallet</source>
@@ -156,11 +165,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
-        <translation type="unfinished">注意:如果你加密了钱包又忘记了密码，你将会丢失所有的比特币！</translation>
+        <translation type="unfinished">警告: 如果把钱包加密后又忘记密码，你就会从此&lt;b&gt;失去其中所有的比特币了&lt;/b&gt;！</translation>
     </message>
     <message>
         <source>Are you sure you wish to encrypt your wallet?</source>
-        <translation type="unfinished">你确定要将钱包加密吗？</translation>
+        <translation type="unfinished">你确定要把钱包加密吗？</translation>
     </message>
     <message>
         <source>Wallet encrypted</source>
@@ -168,177 +177,4418 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Enter the new passphrase for the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
-        <translation type="unfinished">输入钱包的新密码。&lt;br/&gt;密码中请使用&lt;b&gt;10个或更多随机字符&lt;/b&gt;，或&lt;b&gt;8个或更多的单词&lt;/b&gt;。</translation>
+        <translation type="unfinished">为此钱包输入新密码。&lt;br/&gt;请使用由&lt;b&gt;十个或更多的随机字符&lt;/b&gt;，或者&lt;b&gt;八个或更多单词&lt;/b&gt;组成的密码。</translation>
     </message>
     <message>
         <source>Enter the old passphrase and new passphrase for the wallet.</source>
-        <translation type="unfinished">输入钱包的旧密码和新密码。</translation>
+        <translation type="unfinished">输入此钱包的旧密码和新密码。</translation>
+    </message>
+    <message>
+        <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+        <translation type="unfinished">请注意，当您的计算机感染恶意软件时，加密钱包并不能完全规避您的比特币被偷窃的可能。</translation>
     </message>
     <message>
         <source>Wallet to be encrypted</source>
-        <translation type="unfinished">需要加密的钱包</translation>
+        <translation type="unfinished">要加密的钱包</translation>
     </message>
     <message>
         <source>Your wallet is about to be encrypted. </source>
-        <translation type="unfinished">你的钱包将要被加密</translation>
+        <translation type="unfinished">您的钱包将要被加密。</translation>
     </message>
     <message>
         <source>Your wallet is now encrypted. </source>
-        <translation type="unfinished">你的钱包已被加密</translation>
+        <translation type="unfinished">您的钱包现在已被加密。</translation>
+    </message>
+    <message>
+        <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+        <translation type="unfinished">重要: 请用新生成的、已加密的钱包备份文件取代你之前留的钱包文件备份。出于安全方面的原因，一旦你开始使用新的已加密钱包，旧的未加密钱包文件备份就失效了。</translation>
     </message>
     <message>
         <source>Wallet encryption failed</source>
         <translation type="unfinished">钱包加密失败</translation>
     </message>
+    <message>
+        <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+        <translation type="unfinished">因为内部错误导致钱包加密失败。你的钱包还是没加密。</translation>
+    </message>
+    <message>
+        <source>The supplied passphrases do not match.</source>
+        <translation type="unfinished">提供的密码不一致。</translation>
+    </message>
     <message>
         <source>Wallet unlock failed</source>
         <translation type="unfinished">钱包解锁失败</translation>
     </message>
-    </context>
+    <message>
+        <source>The passphrase entered for the wallet decryption was incorrect.</source>
+        <translation type="unfinished">输入的钱包解锁密码不正确。</translation>
+    </message>
+    <message>
+        <source>Wallet passphrase was successfully changed.</source>
+        <translation type="unfinished">钱包密码修改成功。</translation>
+    </message>
+    <message>
+        <source>Warning: The Caps Lock key is on!</source>
+        <translation type="unfinished">警告: 大写字母锁定已开启！</translation>
+    </message>
+</context>
+<context>
+    <name>BanTableModel</name>
+    <message>
+        <source>IP/Netmask</source>
+        <translation type="unfinished">IP/网络掩码</translation>
+    </message>
+    <message>
+        <source>Banned Until</source>
+        <translation type="unfinished">在此之前保持封禁:</translation>
+    </message>
+</context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">未捕获的异常</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">发生致命错误。%1 已经无法继续安全运行并即将退出。</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">内部错误</translation>
+    </message>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">发生了一个内部错误。%1将会尝试安全地继续运行。关于这个未知的错误我们有以下的描述信息用于参考。</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">要将设置重置为默认值，还是要放弃更改并中止？</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">出现致命错误。请检查设置文件是否可写，或者尝试带 -nosettings 参数运行。</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" does not exist.</source>
+        <translation type="unfinished">错误:指定的数据目录“%1”不存在。</translation>
+    </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">错误:无法解析配置文件: %1</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">错误: %1</translation>
+    </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 还没有安全退出...</translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished">未知</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">金额</translation>
+    </message>
+    <message>
+        <source>Enter a Bitcoin address (e.g. %1)</source>
+        <translation type="unfinished">请输入一个比特币地址 (例如 %1)</translation>
+    </message>
+    <message>
+        <source>Unroutable</source>
+        <translation type="unfinished">不可路由</translation>
+    </message>
+    <message>
+        <source>Internal</source>
+        <translation type="unfinished">内部</translation>
+    </message>
+    <message>
+        <source>Inbound</source>
+        <extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
+        <translation type="unfinished">传入</translation>
+    </message>
+    <message>
+        <source>Outbound</source>
+        <extracomment>An outbound connection to a peer. An outbound connection is a connection initiated by us.</extracomment>
+        <translation type="unfinished">传出</translation>
+    </message>
+    <message>
+        <source>Full Relay</source>
+        <extracomment>Peer connection type that relays all network information.</extracomment>
+        <translation type="unfinished">完整转发</translation>
+    </message>
+    <message>
+        <source>Block Relay</source>
+        <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">区块转发</translation>
+    </message>
+    <message>
+        <source>Manual</source>
+        <extracomment>Peer connection type established manually through one of several methods.</extracomment>
+        <translation type="unfinished">手册</translation>
+    </message>
+    <message>
+        <source>Feeler</source>
+        <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">触须</translation>
+    </message>
+    <message>
+        <source>Address Fetch</source>
+        <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
+        <translation type="unfinished">地址取回</translation>
+    </message>
+    <message>
+        <source>%1 d</source>
+        <translation type="unfinished">%1 天</translation>
+    </message>
+    <message>
+        <source>%1 h</source>
+        <translation type="unfinished">%1 小时</translation>
+    </message>
+    <message>
+        <source>%1 m</source>
+        <translation type="unfinished">%1 分钟</translation>
+    </message>
+    <message>
+        <source>%1 s</source>
+        <translation type="unfinished">%1 秒</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation type="unfinished">无</translation>
+    </message>
+    <message>
+        <source>N/A</source>
+        <translation type="unfinished">不可用</translation>
+    </message>
+    <message>
+        <source>%1 ms</source>
+        <translation type="unfinished">%1 毫秒</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n second(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n minute(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n hour(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n day(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n week(s)</numerusform>
         </translation>
     </message>
+    <message>
+        <source>%1 and %2</source>
+        <translation type="unfinished">%1 和 %2</translation>
+    </message>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform />
+            <numerusform>%n year(s)</numerusform>
         </translation>
     </message>
+    <message>
+        <source>%1 B</source>
+        <translation type="unfinished">%1 字节</translation>
+    </message>
     </context>
 <context>
-    <name>BitcoinGUI</name>
-    <message numerus="yes">
-        <source>Processed %n block(s) of transaction history.</source>
-        <translation type="unfinished">
-            <numerusform />
-        </translation>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">无法读取设置文件</translation>
     </message>
-    <message numerus="yes">
-        <source>%n active connection(s) to Bitcoin network.</source>
-        <extracomment>A substring of the tooltip.</extracomment>
-        <translation type="unfinished">
-            <numerusform />
-        </translation>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">无法写入设置文件</translation>
     </message>
-    </context>
-<context>
-    <name>CoinControlDialog</name>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(无标签)</translation>
+        <source>The %s developers</source>
+        <translation type="unfinished">%s 开发者</translation>
     </message>
-    </context>
-<context>
-    <name>Intro</name>
-    <message numerus="yes">
-        <source>(sufficient to restore backups %n day(s) old)</source>
-        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
-        <translation type="unfinished">
-            <numerusform />
-        </translation>
+    <message>
+        <source>%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring a backup.</source>
+        <translation type="unfinished">%s损坏。请尝试用bitcoin-wallet钱包工具来对其进行急救。或者用一个备份进行还原。</translation>
     </message>
-    </context>
-<context>
-    <name>PeerTableModel</name>
     <message>
-        <source>Address</source>
-        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
-        <translation type="unfinished">地址</translation>
+        <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
+        <translation type="unfinished">参数 -maxtxfee 被设置得非常高！即使是单笔交易也可能付出如此之大的手续费。</translation>
     </message>
-    </context>
-<context>
-    <name>RecentRequestsTableModel</name>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">标签</translation>
+        <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
+        <translation type="unfinished">无法把钱包版本从%i降级到%i。钱包版本未改变。</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(无标签)</translation>
+        <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source>
+        <translation type="unfinished">无法锁定数据目录 %s。%s 可能已经在运行。</translation>
     </message>
-    </context>
-<context>
-    <name>SendCoinsDialog</name>
-    <message numerus="yes">
-        <source>Estimated to begin confirmation within %n block(s).</source>
-        <translation type="unfinished">
-            <numerusform />
-        </translation>
+    <message>
+        <source>Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified.</source>
+        <translation type="unfinished">无法在不支持“拆分前的密钥池”（pre split keypool）的情况下把“非拆分HD钱包”（non HD split wallet）从版本%i升级到%i。请使用版本号%i，或者压根不要指定版本号。</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(无标签)</translation>
+        <source>Distributed under the MIT software license, see the accompanying file %s or %s</source>
+        <translation type="unfinished">在MIT协议下分发，参见附带的 %s 或 %s 文件</translation>
     </message>
-</context>
-<context>
-    <name>TransactionDesc</name>
-    <message numerus="yes">
-        <source>matures in %n more block(s)</source>
-        <translation type="unfinished">
-            <numerusform />
-        </translation>
+    <message>
+        <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source>
+        <translation type="unfinished">读取 %s 时发生错误！所有的密钥都可以正确读取，但是交易记录或地址簿数据可能已经丢失或出错。</translation>
     </message>
-    </context>
-<context>
-    <name>TransactionTableModel</name>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">标签</translation>
+        <source>Error reading %s! Transaction data may be missing or incorrect. Rescanning wallet.</source>
+        <translation type="unfinished">读取%s出错！交易数据可能丢失或有误。重新扫描钱包中。</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">(无标签)</translation>
+        <source>Error: Dumpfile format record is incorrect. Got "%s", expected "format".</source>
+        <translation type="unfinished">错误: 转储文件格式不正确。得到是"%s"，而预期本应得到的是 "format"。</translation>
     </message>
-    </context>
-<context>
-    <name>TransactionView</name>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">标签</translation>
+        <source>Error: Dumpfile identifier record is incorrect. Got "%s", expected "%s".</source>
+        <translation type="unfinished">错误: 转储文件标识符记录不正确。得到的是 "%s"，而预期本应得到的是 "%s"。</translation>
     </message>
     <message>
-        <source>Address</source>
-        <translation type="unfinished">地址</translation>
+        <source>Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version %s</source>
+        <translation type="unfinished">错误: 转储文件版本不被支持。这个版本的 bitcoin-wallet 只支持版本为 1 的转储文件。得到的转储文件版本却是%s</translation>
     </message>
     <message>
-        <source>Exporting Failed</source>
-        <translation type="unfinished">导出失败</translation>
+        <source>Error: Legacy wallets only support the "legacy", "p2sh-segwit", and "bech32" address types</source>
+        <translation type="unfinished">错误: 传统钱包只支持 "legacy", "p2sh-segwit", 和 "bech32" 这三种地址类型</translation>
     </message>
-    </context>
-<context>
-    <name>WalletView</name>
     <message>
-        <source>&amp;Export</source>
-        <translation type="unfinished">导出</translation>
+        <source>Error: Listening for incoming connections failed (listen returned error %s)</source>
+        <translation type="unfinished">错误：监听外部连接失败 (listen函数返回了错误 %s)</translation>
     </message>
-    </context>
+    <message>
+        <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
+        <translation type="unfinished">手续费估计失败。而且备用手续费估计（fallbackfee）已被禁用。请再等一些区块，或者通过-fallbackfee参数启用备用手续费估计。</translation>
+    </message>
+    <message>
+        <source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
+        <translation type="unfinished">文件%s已经存在。如果你确定这就是你想做的，先把这个文件挪开。</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
+        <translation type="unfinished">参数 -maxtxfee=&lt;amount&gt;: '%s' 指定了非法的金额 (手续费必须至少达到最小转发费率(minrelay fee) %s 以避免交易卡着发不出去)</translation>
+    </message>
+    <message>
+        <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
+        <translation type="unfinished">无效或损坏的peers.dat (%s)。如果你确信这是一个bug，请反馈到%s。作为变通办法，你可以把现有文件 (%s) 移开(重命名、移动或删除)，这样就可以在下次启动时创建一个新文件了。</translation>
+    </message>
+    <message>
+        <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
+        <translation type="unfinished">提供多个洋葱路由绑定地址。对自动创建的洋葱服务用%s</translation>
+    </message>
+    <message>
+        <source>No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">没有提供转储文件。要使用 createfromdump ，必须提供 -dumpfile=&lt;filename&gt;。</translation>
+    </message>
+    <message>
+        <source>No dump file provided. To use dump, -dumpfile=&lt;filename&gt; must be provided.</source>
+        <translation type="unfinished">没有提供转储文件。要使用 dump ，必须提供 -dumpfile=&lt;filename&gt;。</translation>
+    </message>
+    <message>
+        <source>No wallet file format provided. To use createfromdump, -format=&lt;format&gt; must be provided.</source>
+        <translation type="unfinished">没有提供钱包格式。要使用 createfromdump ，必须提供 -format=&lt;format&gt;</translation>
+    </message>
+    <message>
+        <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source>
+        <translation type="unfinished">请检查电脑的日期时间设置是否正确！时间错误可能会导致 %s 运行异常。</translation>
+    </message>
+    <message>
+        <source>Please contribute if you find %s useful. Visit %s for further information about the software.</source>
+        <translation type="unfinished">如果你认为%s对你比较有用的话，请对我们进行一些自愿贡献。请访问%s网站来获取有关这个软件的更多信息。</translation>
+    </message>
+    <message>
+        <source>Prune configured below the minimum of %d MiB.  Please use a higher number.</source>
+        <translation type="unfinished">修剪被设置得太小，已经低于最小值%d MiB，请使用更大的数值。</translation>
+    </message>
+    <message>
+        <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source>
+        <translation type="unfinished">修剪:上次同步钱包的位置已经超出（落后于）现有修剪后数据的范围。你需要进行-reindex（对于已经启用修剪节点，就需要重新下载整个区块链）</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Unknown sqlite wallet schema version %d. Only version %d is supported</source>
+        <translation type="unfinished">SQLiteDatabase: SQLite钱包schema版本%d未知。只支持%d版本</translation>
+    </message>
+    <message>
+        <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source>
+        <translation type="unfinished">区块数据库包含未来的交易，这可能是由本机错误的日期时间引起。若确认本机日期时间正确，请重新建立区块数据库。</translation>
+    </message>
+    <message>
+        <source>The block index db contains a legacy 'txindex'. To clear the occupied disk space, run a full -reindex, otherwise ignore this error. This error message will not be displayed again.</source>
+        <translation type="unfinished">区块索引数据库含有历史遗留的 'txindex' 。可以运行完整的 -reindex 来清理被占用的磁盘空间；也可以忽略这个错误。这个错误消息将不会再次显示。</translation>
+    </message>
+    <message>
+        <source>The transaction amount is too small to send after the fee has been deducted</source>
+        <translation type="unfinished">这笔交易在扣除手续费后的金额太小，以至于无法送出</translation>
+    </message>
+    <message>
+        <source>This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet</source>
+        <translation type="unfinished">如果这个钱包之前没有正确关闭，而且上一次是被新版的Berkeley DB加载过，就会发生这个错误。如果是这样，请使用上次加载过这个钱包的那个软件。</translation>
+    </message>
+    <message>
+        <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
+        <translation type="unfinished">这是测试用的预发布版本 - 请谨慎使用 - 不要用来挖矿，或者在正式商用环境下使用</translation>
+    </message>
+    <message>
+        <source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
+        <translation type="unfinished">为了在常规选币过程中优先考虑避免“只花出一个地址上的一部分币”（partial spend）这种情况，您最多还需要（在常规手续费之外）付出的交易手续费。</translation>
+    </message>
+    <message>
+        <source>This is the transaction fee you may discard if change is smaller than dust at this level</source>
+        <translation type="unfinished">找零低于当前粉尘阈值时会被舍弃，并计入手续费，这些交易手续费就是在这种情况下产生的。</translation>
+    </message>
+    <message>
+        <source>This is the transaction fee you may pay when fee estimates are not available.</source>
+        <translation type="unfinished">不能估计手续费时，你会付出这个手续费金额。</translation>
+    </message>
+    <message>
+        <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source>
+        <translation type="unfinished">网络版本字符串的总长度 (%i) 超过最大长度 (%i) 了。请减少 uacomment 参数的数目或长度。</translation>
+    </message>
+    <message>
+        <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
+        <translation type="unfinished">无法重放区块。你需要先用-reindex-chainstate参数来重建数据库。</translation>
+    </message>
+    <message>
+        <source>Unknown wallet file format "%s" provided. Please provide one of "bdb" or "sqlite".</source>
+        <translation type="unfinished">提供了未知的钱包格式 "%s" 。请使用 "bdb" 或 "sqlite" 中的一种。</translation>
+    </message>
+    <message>
+        <source>Warning: Dumpfile wallet format "%s" does not match command line specified format "%s".</source>
+        <translation type="unfinished">警告: 转储文件的钱包格式 "%s" 与命令行指定的格式 "%s" 不符。</translation>
+    </message>
+    <message>
+        <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source>
+        <translation type="unfinished">警告：在已经禁用私钥的钱包 {%s} 中仍然检测到私钥</translation>
+    </message>
+    <message>
+        <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source>
+        <translation type="unfinished">警告：我们和其他节点似乎没达成共识！您可能需要升级，或者就是其他节点可能需要升级。</translation>
+    </message>
+    <message>
+        <source>Witness data for blocks after height %d requires validation. Please restart with -reindex.</source>
+        <translation type="unfinished">需要验证高度在%d之后的区块见证数据。请使用 -reindex 重新启动。</translation>
+    </message>
+    <message>
+        <source>You need to rebuild the database using -reindex to go back to unpruned mode.  This will redownload the entire blockchain</source>
+        <translation type="unfinished">您需要使用 -reindex 重新构建数据库以回到未修剪模式。这将重新下载整个区块链</translation>
+    </message>
+    <message>
+        <source>%s is set very high!</source>
+        <translation type="unfinished">%s非常高！</translation>
+    </message>
+    <message>
+        <source>-maxmempool must be at least %d MB</source>
+        <translation type="unfinished">-maxmempool 最小为%d MB</translation>
+    </message>
+    <message>
+        <source>A fatal internal error occurred, see debug.log for details</source>
+        <translation type="unfinished">发生了致命的内部错误，请在debug.log中查看详情</translation>
+    </message>
+    <message>
+        <source>Cannot resolve -%s address: '%s'</source>
+        <translation type="unfinished">无法解析 - %s 地址: '%s'</translation>
+    </message>
+    <message>
+        <source>Cannot set -forcednsseed to true when setting -dnsseed to false.</source>
+        <translation type="unfinished">在 -dnsseed 被设为 false 时无法将 -forcednsseed 设为 true 。</translation>
+    </message>
+    <message>
+        <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
+        <translation type="unfinished">没有启用-blockfilterindex，就不能启用-peerblockfilters。</translation>
+    </message>
+    <message>
+        <source>Cannot write to data directory '%s'; check permissions.</source>
+        <translation type="unfinished">不能写入到数据目录'%s'；请检查文件权限。</translation>
+    </message>
+    <message>
+        <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
+        <translation type="unfinished">无法完成由之前版本启动的 -txindex 升级。请用之前的版本重新启动，或者进行一次完整的 -reindex 。</translation>
+    </message>
+    <message>
+        <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
+        <translation type="unfinished">%s请求监听端口 %u。这个端口被认为是“坏的”，所以不太可能有Bitcoin Core节点会连接到它。有关详细信息和完整列表，请参见 doc/p2p-bad-ports.md 。</translation>
+    </message>
+    <message>
+        <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
+        <translation type="unfinished">在使用地址管理器(addrman)寻找出站连接时，无法同时提供特定的连接。</translation>
+    </message>
+    <message>
+        <source>Error loading %s: External signer wallet being loaded without external signer support compiled</source>
+        <translation type="unfinished">加载%s时出错: 编译时未启用外部签名器支持，却仍然试图加载外部签名器钱包</translation>
+    </message>
+    <message>
+        <source>Failed to rename invalid peers.dat file. Please move or delete it and try again.</source>
+        <translation type="unfinished">无法重命名无效的 peers.dat 文件。 请移动或删除它，然后重试。</translation>
+    </message>
+    <message>
+        <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
+        <translation type="unfinished">出站连接被限制为仅使用 Tor (-onlynet=onion)，但是未提供到达 Tor 网络的代理（没有提供 -proxy= 和 -onion= 参数）或者被显式禁止 (-onion=0)</translation>
+    </message>
+    <message>
+        <source>Config setting for %s only applied on %s network when in [%s] section.</source>
+        <translation type="unfinished">对 %s 的配置设置只对 %s 网络生效，如果它位于配置的 [%s] 章节的话。</translation>
+    </message>
+    <message>
+        <source>Copyright (C) %i-%i</source>
+        <translation type="unfinished">版权所有 (C) %i-%i</translation>
+    </message>
+    <message>
+        <source>Corrupted block database detected</source>
+        <translation type="unfinished">检测到区块数据库损坏</translation>
+    </message>
+    <message>
+        <source>Could not find asmap file %s</source>
+        <translation type="unfinished">找不到asmap文件%s</translation>
+    </message>
+    <message>
+        <source>Could not parse asmap file %s</source>
+        <translation type="unfinished">无法解析asmap文件%s</translation>
+    </message>
+    <message>
+        <source>Disk space is too low!</source>
+        <translation type="unfinished">磁盘空间太低!</translation>
+    </message>
+    <message>
+        <source>Do you want to rebuild the block database now?</source>
+        <translation type="unfinished">你想现在就重建区块数据库吗？</translation>
+    </message>
+    <message>
+        <source>Done loading</source>
+        <translation type="unfinished">加载完成</translation>
+    </message>
+    <message>
+        <source>Dump file %s does not exist.</source>
+        <translation type="unfinished">转储文件 %s 不存在</translation>
+    </message>
+    <message>
+        <source>Error creating %s</source>
+        <translation type="unfinished">创建%s时出错</translation>
+    </message>
+    <message>
+        <source>Error initializing block database</source>
+        <translation type="unfinished">初始化区块数据库时出错</translation>
+    </message>
+    <message>
+        <source>Error initializing wallet database environment %s!</source>
+        <translation type="unfinished">初始化钱包数据库环境错误 %s!</translation>
+    </message>
+    <message>
+        <source>Error loading %s</source>
+        <translation type="unfinished">载入 %s 时发生错误</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Private keys can only be disabled during creation</source>
+        <translation type="unfinished">加载 %s 时出错：只能在创建钱包时禁用私钥。</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Wallet corrupted</source>
+        <translation type="unfinished">%s 加载出错:钱包损坏</translation>
+    </message>
+    <message>
+        <source>Error loading %s: Wallet requires newer version of %s</source>
+        <translation type="unfinished">%s 加载错误:请升级到最新版 %s</translation>
+    </message>
+    <message>
+        <source>Error loading block database</source>
+        <translation type="unfinished">加载区块数据库时出错</translation>
+    </message>
+    <message>
+        <source>Error opening block database</source>
+        <translation type="unfinished">打开区块数据库时出错</translation>
+    </message>
+    <message>
+        <source>Error reading from database, shutting down.</source>
+        <translation type="unfinished">读取数据库出错，关闭中。</translation>
+    </message>
+    <message>
+        <source>Error reading next record from wallet database</source>
+        <translation type="unfinished">从钱包数据库读取下一条记录时出错</translation>
+    </message>
+    <message>
+        <source>Error upgrading chainstate database</source>
+        <translation type="unfinished">升级链状态(chainstate)数据库出错</translation>
+    </message>
+    <message>
+        <source>Error: Couldn't create cursor into database</source>
+        <translation type="unfinished">错误: 无法在数据库中创建指针</translation>
+    </message>
+    <message>
+        <source>Error: Disk space is low for %s</source>
+        <translation type="unfinished">错误： %s 所在的磁盘空间低。</translation>
+    </message>
+    <message>
+        <source>Error: Dumpfile checksum does not match. Computed %s, expected %s</source>
+        <translation type="unfinished">错误: 转储文件的校验和不符。计算得到%s，预料中本应该得到%s</translation>
+    </message>
+    <message>
+        <source>Error: Got key that was not hex: %s</source>
+        <translation type="unfinished">错误: 得到了不是十六进制的键:%s</translation>
+    </message>
+    <message>
+        <source>Error: Got value that was not hex: %s</source>
+        <translation type="unfinished">错误: 得到了不是十六进制的数值:%s</translation>
+    </message>
+    <message>
+        <source>Error: Keypool ran out, please call keypoolrefill first</source>
+        <translation type="unfinished">错误: 密钥池已被耗尽，请先调用keypoolrefill</translation>
+    </message>
+    <message>
+        <source>Error: Missing checksum</source>
+        <translation type="unfinished">错误：跳过检查检验和</translation>
+    </message>
+    <message>
+        <source>Error: No %s addresses available.</source>
+        <translation type="unfinished">错误: 没有可用的%s地址。</translation>
+    </message>
+    <message>
+        <source>Error: Unable to parse version %u as a uint32_t</source>
+        <translation type="unfinished">错误：无法把版本号%u作为unit32_t解析</translation>
+    </message>
+    <message>
+        <source>Error: Unable to write record to new wallet</source>
+        <translation type="unfinished">错误: 无法写入记录到新钱包</translation>
+    </message>
+    <message>
+        <source>Failed to listen on any port. Use -listen=0 if you want this.</source>
+        <translation type="unfinished">监听端口失败。如果你愿意的话，请使用 -listen=0 参数。</translation>
+    </message>
+    <message>
+        <source>Failed to rescan the wallet during initialization</source>
+        <translation type="unfinished">初始化时重扫描钱包失败</translation>
+    </message>
+    <message>
+        <source>Failed to verify database</source>
+        <translation type="unfinished">校验数据库失败</translation>
+    </message>
+    <message>
+        <source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
+        <translation type="unfinished">手续费率 (%s) 低于最大手续费率设置 (%s)</translation>
+    </message>
+    <message>
+        <source>Ignoring duplicate -wallet %s.</source>
+        <translation type="unfinished">忽略重复的 -wallet %s。</translation>
+    </message>
+    <message>
+        <source>Importing…</source>
+        <translation type="unfinished">导入...</translation>
+    </message>
+    <message>
+        <source>Incorrect or no genesis block found. Wrong datadir for network?</source>
+        <translation type="unfinished">没有找到创世区块，或者创世区块不正确。是否把数据目录错误地设成了另一个网络（比如测试网络）的？</translation>
+    </message>
+    <message>
+        <source>Initialization sanity check failed. %s is shutting down.</source>
+        <translation type="unfinished">初始化完整性检查失败。%s 即将关闭。</translation>
+    </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">找不到交易输入项，可能已经被花掉了</translation>
+    </message>
+    <message>
+        <source>Insufficient funds</source>
+        <translation type="unfinished">金额不足</translation>
+    </message>
+    <message>
+        <source>Invalid -i2psam address or hostname: '%s'</source>
+        <translation type="unfinished">无效的 -i2psam 地址或主机名: '%s'</translation>
+    </message>
+    <message>
+        <source>Invalid -onion address or hostname: '%s'</source>
+        <translation type="unfinished">无效的 -onion 地址: '%s'</translation>
+    </message>
+    <message>
+        <source>Invalid -proxy address or hostname: '%s'</source>
+        <translation type="unfinished">无效的 -proxy 地址或主机名: '%s'</translation>
+    </message>
+    <message>
+        <source>Invalid P2P permission: '%s'</source>
+        <translation type="unfinished">无效的 P2P 权限：'%s'</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -%s=&lt;amount&gt;: '%s'</source>
+        <translation type="unfinished">参数 -%s=&lt;amount&gt;: '%s' 指定了无效的金额</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -discardfee=&lt;amount&gt;: '%s'</source>
+        <translation type="unfinished">参数 -discardfee=&lt;amount&gt;: '%s' 指定了无效的金额</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -fallbackfee=&lt;amount&gt;: '%s'</source>
+        <translation type="unfinished">参数 -fallbackfee=&lt;amount&gt;: '%s' 指定了无效的金额</translation>
+    </message>
+    <message>
+        <source>Invalid amount for -paytxfee=&lt;amount&gt;: '%s' (must be at least %s)</source>
+        <translation type="unfinished">参数 -paytxfee=&lt;amount&gt; 指定了非法的金额: '%s' (必须至少达到 %s)</translation>
+    </message>
+    <message>
+        <source>Invalid netmask specified in -whitelist: '%s'</source>
+        <translation type="unfinished">参数 -whitelist: '%s' 指定了无效的网络掩码</translation>
+    </message>
+    <message>
+        <source>Loading P2P addresses…</source>
+        <translation type="unfinished">加载P2P地址...</translation>
+    </message>
+    <message>
+        <source>Loading banlist…</source>
+        <translation type="unfinished">加载封禁列表...</translation>
+    </message>
+    <message>
+        <source>Loading block index…</source>
+        <translation type="unfinished">加载区块索引...</translation>
+    </message>
+    <message>
+        <source>Loading wallet…</source>
+        <translation type="unfinished">加载钱包...</translation>
+    </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">找不到金额</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">找不到用于估计交易大小的解答数据</translation>
+    </message>
+    <message>
+        <source>Need to specify a port with -whitebind: '%s'</source>
+        <translation type="unfinished">-whitebind: '%s' 需要指定一个端口</translation>
+    </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">没有可用的地址</translation>
+    </message>
+    <message>
+        <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
+        <translation type="unfinished">未指定代理服务器。请使用 -proxy=&lt;ip&gt; 或 -proxy=&lt;ip:port&gt; 。</translation>
+    </message>
+    <message>
+        <source>Not enough file descriptors available.</source>
+        <translation type="unfinished">没有足够的文件描述符可用。</translation>
+    </message>
+    <message>
+        <source>Prune cannot be configured with a negative value.</source>
+        <translation type="unfinished">不能把修剪配置成一个负数。</translation>
+    </message>
+    <message>
+        <source>Prune mode is incompatible with -coinstatsindex.</source>
+        <translation type="unfinished">区块修剪模式与 coinstatsindex 不兼容。</translation>
+    </message>
+    <message>
+        <source>Prune mode is incompatible with -txindex.</source>
+        <translation type="unfinished">修剪模式与 -txindex 不兼容。</translation>
+    </message>
+    <message>
+        <source>Pruning blockstore…</source>
+        <translation type="unfinished">修剪区块存储...</translation>
+    </message>
+    <message>
+        <source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
+        <translation type="unfinished">因为系统的限制，将 -maxconnections 参数从 %d 降到了 %d</translation>
+    </message>
+    <message>
+        <source>Replaying blocks…</source>
+        <translation type="unfinished">重放区块...</translation>
+    </message>
+    <message>
+        <source>Rescanning…</source>
+        <translation type="unfinished">重扫描...</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Failed to execute statement to verify database: %s</source>
+        <translation type="unfinished">SQLiteDatabase: 执行校验数据库语句时失败: %s</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Failed to prepare statement to verify database: %s</source>
+        <translation type="unfinished">SQLiteDatabase: 预处理用于校验数据库的语句时失败: %s</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Failed to read database verification error: %s</source>
+        <translation type="unfinished">SQLiteDatabase: 读取数据库失败，校验错误: %s</translation>
+    </message>
+    <message>
+        <source>SQLiteDatabase: Unexpected application id. Expected %u, got %u</source>
+        <translation type="unfinished">SQLiteDatabase: 意料之外的应用ID。预期为%u，实际为%u</translation>
+    </message>
+    <message>
+        <source>Section [%s] is not recognized.</source>
+        <translation type="unfinished">无法识别配置章节 [%s]。</translation>
+    </message>
+    <message>
+        <source>Signing transaction failed</source>
+        <translation type="unfinished">签名交易失败</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" does not exist</source>
+        <translation type="unfinished">参数 -walletdir "%s" 指定了不存在的路径</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" is a relative path</source>
+        <translation type="unfinished">参数 -walletdir "%s" 指定了相对路径</translation>
+    </message>
+    <message>
+        <source>Specified -walletdir "%s" is not a directory</source>
+        <translation type="unfinished">参数 -walletdir "%s" 指定的路径不是目录</translation>
+    </message>
+    <message>
+        <source>Specified blocks directory "%s" does not exist.</source>
+        <translation type="unfinished">指定的区块目录"%s"不存在。</translation>
+    </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">启动网络线程...</translation>
+    </message>
+    <message>
+        <source>The source code is available from %s.</source>
+        <translation type="unfinished">可以从 %s 获取源代码。</translation>
+    </message>
+    <message>
+        <source>The specified config file %s does not exist</source>
+        <translation type="unfinished">指定的配置文件%s不存在</translation>
+    </message>
+    <message>
+        <source>The transaction amount is too small to pay the fee</source>
+        <translation type="unfinished">交易金额太小，不足以支付交易费</translation>
+    </message>
+    <message>
+        <source>The wallet will avoid paying less than the minimum relay fee.</source>
+        <translation type="unfinished">钱包会避免让手续费低于最小转发费率(minrelay fee)。</translation>
+    </message>
+    <message>
+        <source>This is experimental software.</source>
+        <translation type="unfinished">这是实验性的软件。</translation>
+    </message>
+    <message>
+        <source>This is the minimum transaction fee you pay on every transaction.</source>
+        <translation type="unfinished">这是你每次交易付款时最少要付的手续费。</translation>
+    </message>
+    <message>
+        <source>This is the transaction fee you will pay if you send a transaction.</source>
+        <translation type="unfinished">如果发送交易，这将是你要支付的手续费。</translation>
+    </message>
+    <message>
+        <source>Transaction amount too small</source>
+        <translation type="unfinished">交易金额太小</translation>
+    </message>
+    <message>
+        <source>Transaction amounts must not be negative</source>
+        <translation type="unfinished">交易金额不不可为负数</translation>
+    </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">交易找零输出项编号超出范围</translation>
+    </message>
+    <message>
+        <source>Transaction has too long of a mempool chain</source>
+        <translation type="unfinished">此交易在内存池中的存在过长的链条</translation>
+    </message>
+    <message>
+        <source>Transaction must have at least one recipient</source>
+        <translation type="unfinished">交易必须包含至少一个收款人</translation>
+    </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">交易需要一个找零地址，但是我们无法生成它。</translation>
+    </message>
+    <message>
+        <source>Transaction too large</source>
+        <translation type="unfinished">交易过大</translation>
+    </message>
+    <message>
+        <source>Unable to bind to %s on this computer (bind returned error %s)</source>
+        <translation type="unfinished">无法在本机绑定%s端口 (bind函数返回了错误 %s)</translation>
+    </message>
+    <message>
+        <source>Unable to bind to %s on this computer. %s is probably already running.</source>
+        <translation type="unfinished">无法在本机绑定 %s 端口。%s 可能已经在运行。</translation>
+    </message>
+    <message>
+        <source>Unable to create the PID file '%s': %s</source>
+        <translation type="unfinished">无法创建PID文件'%s': %s</translation>
+    </message>
+    <message>
+        <source>Unable to generate initial keys</source>
+        <translation type="unfinished">无法生成初始密钥</translation>
+    </message>
+    <message>
+        <source>Unable to generate keys</source>
+        <translation type="unfinished">无法生成密钥</translation>
+    </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">无法打开%s用于写入</translation>
+    </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">无法解析 -maxuploadtarget: '%s'</translation>
+    </message>
+    <message>
+        <source>Unable to start HTTP server. See debug log for details.</source>
+        <translation type="unfinished">无法启动HTTP服务，查看日志获取更多信息</translation>
+    </message>
+    <message>
+        <source>Unknown -blockfilterindex value %s.</source>
+        <translation type="unfinished">未知的 -blockfilterindex 数值 %s。</translation>
+    </message>
+    <message>
+        <source>Unknown address type '%s'</source>
+        <translation type="unfinished">未知的地址类型 '%s'</translation>
+    </message>
+    <message>
+        <source>Unknown change type '%s'</source>
+        <translation type="unfinished">未知的找零类型 '%s'</translation>
+    </message>
+    <message>
+        <source>Unknown network specified in -onlynet: '%s'</source>
+        <translation type="unfinished">-onlynet 指定的是未知网络: %s</translation>
+    </message>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished">不明的交易规则已经激活 (versionbit %i)</translation>
+    </message>
+    <message>
+        <source>Unsupported logging category %s=%s.</source>
+        <translation type="unfinished">不支持的日志分类 %s=%s。</translation>
+    </message>
+    <message>
+        <source>Upgrading UTXO database</source>
+        <translation type="unfinished">正在升级UTXO数据库</translation>
+    </message>
+    <message>
+        <source>User Agent comment (%s) contains unsafe characters.</source>
+        <translation type="unfinished">用户代理备注(%s)包含不安全的字符。</translation>
+    </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">验证区块...</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">验证钱包...</translation>
+    </message>
+    <message>
+        <source>Wallet needed to be rewritten: restart %s to complete</source>
+        <translation type="unfinished">钱包需要被重写：请重新启动%s来完成</translation>
+    </message>
+</context>
+<context>
+    <name>BitcoinGUI</name>
+    <message>
+        <source>&amp;Overview</source>
+        <translation type="unfinished">概况(&amp;O)</translation>
+    </message>
+    <message>
+        <source>Show general overview of wallet</source>
+        <translation type="unfinished">显示钱包概况</translation>
+    </message>
+    <message>
+        <source>&amp;Transactions</source>
+        <translation type="unfinished">交易记录(&amp;T)</translation>
+    </message>
+    <message>
+        <source>Browse transaction history</source>
+        <translation type="unfinished">浏览交易历史</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation type="unfinished">退出(&amp;X)</translation>
+    </message>
+    <message>
+        <source>Quit application</source>
+        <translation type="unfinished">退出程序</translation>
+    </message>
+    <message>
+        <source>&amp;About %1</source>
+        <translation type="unfinished">关于 %1 (&amp;A)</translation>
+    </message>
+    <message>
+        <source>Show information about %1</source>
+        <translation type="unfinished">显示 %1 的相关信息</translation>
+    </message>
+    <message>
+        <source>About &amp;Qt</source>
+        <translation type="unfinished">关于 &amp;Qt</translation>
+    </message>
+    <message>
+        <source>Show information about Qt</source>
+        <translation type="unfinished">显示 Qt 相关信息</translation>
+    </message>
+    <message>
+        <source>Modify configuration options for %1</source>
+        <translation type="unfinished">修改%1的配置选项</translation>
+    </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">创建一个新的钱包</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">最小化(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">钱包:</translation>
+    </message>
+    <message>
+        <source>Network activity disabled.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">网络活动已禁用。</translation>
+    </message>
+    <message>
+        <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
+        <translation type="unfinished">代理服务器已&lt;b&gt;启用&lt;/b&gt;: %1</translation>
+    </message>
+    <message>
+        <source>Send coins to a Bitcoin address</source>
+        <translation type="unfinished">向一个比特币地址发币</translation>
+    </message>
+    <message>
+        <source>Backup wallet to another location</source>
+        <translation type="unfinished">备份钱包到其他位置</translation>
+    </message>
+    <message>
+        <source>Change the passphrase used for wallet encryption</source>
+        <translation type="unfinished">修改钱包加密密码</translation>
+    </message>
+    <message>
+        <source>&amp;Send</source>
+        <translation type="unfinished">发送(&amp;S)</translation>
+    </message>
+    <message>
+        <source>&amp;Receive</source>
+        <translation type="unfinished">接收(&amp;R)</translation>
+    </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">选项(&amp;O)</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">加密钱包(&amp;E)</translation>
+    </message>
+    <message>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">把你钱包中的私钥加密</translation>
+    </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">备份钱包(&amp;B)</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">修改密码(&amp;C)</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">签名消息(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
+        <translation type="unfinished">用比特币地址关联的私钥为消息签名，以证明您拥有这个比特币地址</translation>
+    </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">验证消息(&amp;V)</translation>
+    </message>
+    <message>
+        <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
+        <translation type="unfinished">校验消息，确保该消息是由指定的比特币地址所有者签名的</translation>
+    </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">从文件加载PSBT(&amp;L)...</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">打开&amp;URI...</translation>
+    </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">关闭钱包...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">创建钱包...</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">关闭所有钱包...</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation type="unfinished">文件(&amp;F)</translation>
+    </message>
+    <message>
+        <source>&amp;Settings</source>
+        <translation type="unfinished">设置(&amp;S)</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation type="unfinished">帮助(&amp;H)</translation>
+    </message>
+    <message>
+        <source>Tabs toolbar</source>
+        <translation type="unfinished">标签页工具栏</translation>
+    </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">同步区块头 (%1%)…</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">与网络同步...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">对磁盘上的区块进行索引...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">处理磁盘上的区块...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">重新索引磁盘上的区块...</translation>
+    </message>
+    <message>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">连接到节点...</translation>
+    </message>
+    <message>
+        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
+        <translation type="unfinished">请求支付 (生成二维码和 bitcoin: URI)</translation>
+    </message>
+    <message>
+        <source>Show the list of used sending addresses and labels</source>
+        <translation type="unfinished">显示用过的付款地址和标签的列表</translation>
+    </message>
+    <message>
+        <source>Show the list of used receiving addresses and labels</source>
+        <translation type="unfinished">显示用过的收款地址和标签的列表</translation>
+    </message>
+    <message>
+        <source>&amp;Command-line options</source>
+        <translation type="unfinished">命令行选项(&amp;C)</translation>
+    </message>
+    <message numerus="yes">
+        <source>Processed %n block(s) of transaction history.</source>
+        <translation type="unfinished">
+            <numerusform>已处理%n个区块的交易历史。</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>%1 behind</source>
+        <translation type="unfinished">落后 %1</translation>
+    </message>
+    <message>
+        <source>Catching up…</source>
+        <translation type="unfinished">正在追上进度...</translation>
+    </message>
+    <message>
+        <source>Last received block was generated %1 ago.</source>
+        <translation type="unfinished">最新收到的区块产生于 %1 之前。</translation>
+    </message>
+    <message>
+        <source>Transactions after this will not yet be visible.</source>
+        <translation type="unfinished">在此之后的交易尚不可见</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">错误</translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished">警告</translation>
+    </message>
+    <message>
+        <source>Information</source>
+        <translation type="unfinished">信息</translation>
+    </message>
+    <message>
+        <source>Up to date</source>
+        <translation type="unfinished">已是最新</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">加载部分签名比特币交易（PSBT）</translation>
+    </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">从剪贴板加载PSBT(&amp;C)...</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">从剪贴板中加载部分签名比特币交易（PSBT）</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">节点窗口</translation>
+    </message>
+    <message>
+        <source>Open node debugging and diagnostic console</source>
+        <translation type="unfinished">打开节点调试与诊断控制台</translation>
+    </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">付款地址(&amp;S)</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">收款地址(&amp;R)</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">打开bitcoin:开头的URI</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <translation type="unfinished">打开钱包</translation>
+    </message>
+    <message>
+        <source>Open a wallet</source>
+        <translation type="unfinished">打开一个钱包</translation>
+    </message>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">卸载钱包</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">关闭所有钱包</translation>
+    </message>
+    <message>
+        <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source>
+        <translation type="unfinished">显示 %1 帮助信息，获取可用命令行选项列表</translation>
+    </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">遮住数值(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">在“概况”标签页中不明文显示数值、只显示掩码</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">默认钱包</translation>
+    </message>
+    <message>
+        <source>No wallets available</source>
+        <translation type="unfinished">没有可用的钱包</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">窗口(&amp;W)</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation type="unfinished">缩放</translation>
+    </message>
+    <message>
+        <source>Main Window</source>
+        <translation type="unfinished">主窗口</translation>
+    </message>
+    <message>
+        <source>%1 client</source>
+        <translation type="unfinished">%1 客户端</translation>
+    </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">隐藏(&amp;H)</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">显示(&amp;H)</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">点击查看更多操作。</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">显示节点标签</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">禁用网络活动</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">启用网络活动</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">错误: %1</translation>
+    </message>
+    <message>
+        <source>Warning: %1</source>
+        <translation type="unfinished">警告: %1</translation>
+    </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished">日期: %1
+</translation>
+    </message>
+    <message>
+        <source>Amount: %1
+</source>
+        <translation type="unfinished">金额: %1
+</translation>
+    </message>
+    <message>
+        <source>Wallet: %1
+</source>
+        <translation type="unfinished">钱包: %1
+</translation>
+    </message>
+    <message>
+        <source>Type: %1
+</source>
+        <translation type="unfinished">类型: %1
+</translation>
+    </message>
+    <message>
+        <source>Label: %1
+</source>
+        <translation type="unfinished">标签: %1
+</translation>
+    </message>
+    <message>
+        <source>Address: %1
+</source>
+        <translation type="unfinished">地址: %1
+</translation>
+    </message>
+    <message>
+        <source>Sent transaction</source>
+        <translation type="unfinished">送出交易</translation>
+    </message>
+    <message>
+        <source>Incoming transaction</source>
+        <translation type="unfinished">流入交易</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD密钥生成&lt;b&gt;启用&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD密钥生成&lt;b&gt;禁用&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">私钥&lt;b&gt;禁用&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+        <translation type="unfinished">钱包已被&lt;b&gt;加密&lt;/b&gt;，当前为&lt;b&gt;解锁&lt;/b&gt;状态</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+        <translation type="unfinished">钱包已被&lt;b&gt;加密&lt;/b&gt;，当前为&lt;b&gt;锁定&lt;/b&gt;状态</translation>
+    </message>
+    <message>
+        <source>Original message:</source>
+        <translation type="unfinished">原消息:</translation>
+    </message>
+</context>
+<context>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">金额单位。单击选择别的单位。</translation>
+    </message>
+</context>
+<context>
+    <name>CoinControlDialog</name>
+    <message>
+        <source>Coin Selection</source>
+        <translation type="unfinished">手动选币</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">总量:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">字节数:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">金额:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">费用:</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">粉尘:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">加上交易费用后:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">找零:</translation>
+    </message>
+    <message>
+        <source>(un)select all</source>
+        <translation type="unfinished">全(不)选</translation>
+    </message>
+    <message>
+        <source>Tree mode</source>
+        <translation type="unfinished">树状模式</translation>
+    </message>
+    <message>
+        <source>List mode</source>
+        <translation type="unfinished">列表模式</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">金额</translation>
+    </message>
+    <message>
+        <source>Received with label</source>
+        <translation type="unfinished">收款标签</translation>
+    </message>
+    <message>
+        <source>Received with address</source>
+        <translation type="unfinished">收款地址</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">日期</translation>
+    </message>
+    <message>
+        <source>Confirmations</source>
+        <translation type="unfinished">确认</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">已确认</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">复制金额</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">复制地址(&amp;C)</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">复制标签(&amp;L)</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">复制金额(&amp;A)</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">复制交易&amp;ID和输出序号</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">锁定未花费(&amp;O)</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">解锁未花费(&amp;U)</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">复制数目</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">复制手续费</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">复制含交易费的金额</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">复制字节数</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">复制粉尘金额</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">复制找零金额</translation>
+    </message>
+    <message>
+        <source>(%1 locked)</source>
+        <translation type="unfinished">(%1已锁定)</translation>
+    </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">是</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation type="unfinished">否</translation>
+    </message>
+    <message>
+        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
+        <translation type="unfinished">当任何一个收款金额小于目前的粉尘金额阈值时，文字会变红色。</translation>
+    </message>
+    <message>
+        <source>Can vary +/- %1 satoshi(s) per input.</source>
+        <translation type="unfinished">每个输入可能有 +/- %1 聪 (satoshi) 的误差。</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(无标签)</translation>
+    </message>
+    <message>
+        <source>change from %1 (%2)</source>
+        <translation type="unfinished">来自 %1 的找零 (%2)</translation>
+    </message>
+    <message>
+        <source>(change)</source>
+        <translation type="unfinished">(找零)</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletActivity</name>
+    <message>
+        <source>Create Wallet</source>
+        <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
+        <translation type="unfinished">创建钱包</translation>
+    </message>
+    <message>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">创建钱包&lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+    <message>
+        <source>Create wallet failed</source>
+        <translation type="unfinished">创建钱包失败</translation>
+    </message>
+    <message>
+        <source>Create wallet warning</source>
+        <translation type="unfinished">创建钱包警告</translation>
+    </message>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">无法列出签名器</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">加载钱包</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">加载钱包...</translation>
+    </message>
+</context>
+<context>
+    <name>OpenWalletActivity</name>
+    <message>
+        <source>Open wallet failed</source>
+        <translation type="unfinished">打开钱包失败</translation>
+    </message>
+    <message>
+        <source>Open wallet warning</source>
+        <translation type="unfinished">打开钱包警告</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">默认钱包</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
+        <translation type="unfinished">打开钱包</translation>
+    </message>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">打开钱包&lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+</context>
+<context>
+    <name>WalletController</name>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">卸载钱包</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
+        <translation type="unfinished">您确定想要关闭钱包&lt;i&gt;%1&lt;/i&gt;吗？</translation>
+    </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">启用修剪时，如果一个钱包被卸载太久，就必须重新同步整条区块链才能再次加载它。</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">关闭所有钱包</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">您确定想要关闭所有钱包吗?</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletDialog</name>
+    <message>
+        <source>Create Wallet</source>
+        <translation type="unfinished">创建钱包</translation>
+    </message>
+    <message>
+        <source>Wallet Name</source>
+        <translation type="unfinished">钱包名称</translation>
+    </message>
+    <message>
+        <source>Wallet</source>
+        <translation type="unfinished">钱包</translation>
+    </message>
+    <message>
+        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
+        <translation type="unfinished">加密钱包。将会使用您指定的密码将钱包加密。</translation>
+    </message>
+    <message>
+        <source>Encrypt Wallet</source>
+        <translation type="unfinished">加密钱包</translation>
+    </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">进阶设定</translation>
+    </message>
+    <message>
+        <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source>
+        <translation type="unfinished">禁用此钱包的私钥。被禁用私钥的钱包将不会含有任何私钥，而且也不能含有HD种子或导入的私钥。作为仅观察钱包，这是比较理想的。</translation>
+    </message>
+    <message>
+        <source>Disable Private Keys</source>
+        <translation type="unfinished">禁用私钥</translation>
+    </message>
+    <message>
+        <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source>
+        <translation type="unfinished">创建一个空白的钱包。空白钱包最初不含有任何私钥或脚本。可以以后再导入私钥和地址，或设置HD种子。</translation>
+    </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">创建空白钱包</translation>
+    </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">使用输出描述符进行scriptPubKey管理</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">输出描述符钱包</translation>
+    </message>
+    <message>
+        <source>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</source>
+        <translation type="unfinished">使用像是硬件钱包这样的外部签名设备。请在钱包偏好设置中先配置号外部签名器脚本。</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">外部签名器</translation>
+    </message>
+    <message>
+        <source>Create</source>
+        <translation type="unfinished">创建</translation>
+    </message>
+    <message>
+        <source>Compiled without sqlite support (required for descriptor wallets)</source>
+        <translation type="unfinished">编译时未启用SQLite支持（输出描述符钱包需要它）</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">编译时未启用外部签名支持 (外部签名需要这个功能)</translation>
+    </message>
+</context>
+<context>
+    <name>EditAddressDialog</name>
+    <message>
+        <source>Edit Address</source>
+        <translation type="unfinished">编辑地址</translation>
+    </message>
+    <message>
+        <source>&amp;Label</source>
+        <translation type="unfinished">标签(&amp;L)</translation>
+    </message>
+    <message>
+        <source>The label associated with this address list entry</source>
+        <translation type="unfinished">与此地址关联的标签</translation>
+    </message>
+    <message>
+        <source>The address associated with this address list entry. This can only be modified for sending addresses.</source>
+        <translation type="unfinished">与这个列表项关联的地址。只有付款地址才能被修改（收款地址不能被修改）。</translation>
+    </message>
+    <message>
+        <source>&amp;Address</source>
+        <translation type="unfinished">地址(&amp;A)</translation>
+    </message>
+    <message>
+        <source>New sending address</source>
+        <translation type="unfinished">新建付款地址</translation>
+    </message>
+    <message>
+        <source>Edit receiving address</source>
+        <translation type="unfinished">编辑收款地址</translation>
+    </message>
+    <message>
+        <source>Edit sending address</source>
+        <translation type="unfinished">编辑付款地址</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is not a valid Bitcoin address.</source>
+        <translation type="unfinished">输入的地址 %1 并不是有效的比特币地址。</translation>
+    </message>
+    <message>
+        <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source>
+        <translation type="unfinished">地址“%1”已经存在，它是一个收款地址，标签为“%2”，所以它不能作为一个付款地址被添加进来。</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is already in the address book with label "%2".</source>
+        <translation type="unfinished">输入的地址“%1”已经存在于地址簿中，标签为“%2”。</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">无法解锁钱包。</translation>
+    </message>
+    <message>
+        <source>New key generation failed.</source>
+        <translation type="unfinished">生成新密钥失败。</translation>
+    </message>
+</context>
+<context>
+    <name>FreespaceChecker</name>
+    <message>
+        <source>A new data directory will be created.</source>
+        <translation type="unfinished">一个新的数据目录将被创建。</translation>
+    </message>
+    <message>
+        <source>name</source>
+        <translation type="unfinished">名称</translation>
+    </message>
+    <message>
+        <source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
+        <translation type="unfinished">目录已存在。如果您打算在这里创建一个新目录，请添加 %1。</translation>
+    </message>
+    <message>
+        <source>Path already exists, and is not a directory.</source>
+        <translation type="unfinished">路径已存在，并且不是一个目录。</translation>
+    </message>
+    <message>
+        <source>Cannot create data directory here.</source>
+        <translation type="unfinished">无法在此创建数据目录。</translation>
+    </message>
+</context>
+<context>
+    <name>Intro</name>
+    <message>
+        <source>Bitcoin</source>
+        <translation type="unfinished">比特币</translation>
+    </message>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">可用空间 %1 GB</translation>
+    </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(需要 %1 GB)</translation>
+    </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(完整区块链需要 %1 GB)</translation>
+    </message>
+    <message>
+        <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
+        <translation type="unfinished">此目录中至少会保存 %1 GB 的数据，并且大小还会随着时间增长。</translation>
+    </message>
+    <message>
+        <source>Approximately %1 GB of data will be stored in this directory.</source>
+        <translation type="unfinished">会在此目录中存储约 %1 GB 的数据。</translation>
+    </message>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>%1 will download and store a copy of the Bitcoin block chain.</source>
+        <translation type="unfinished">%1 将会下载并存储比特币区块链。</translation>
+    </message>
+    <message>
+        <source>The wallet will also be stored in this directory.</source>
+        <translation type="unfinished">钱包也会被保存在这个目录中。</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" cannot be created.</source>
+        <translation type="unfinished">错误:无法创建指定的数据目录 "%1"</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">错误</translation>
+    </message>
+    <message>
+        <source>Welcome</source>
+        <translation type="unfinished">欢迎</translation>
+    </message>
+    <message>
+        <source>Welcome to %1.</source>
+        <translation type="unfinished">欢迎使用 %1</translation>
+    </message>
+    <message>
+        <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source>
+        <translation type="unfinished">由于这是第一次启动此程序，您可以选择%1存储数据的位置</translation>
+    </message>
+    <message>
+        <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
+        <translation type="unfinished">当你单击确认后，%1 将会从%4在 %3 年创始时最早的交易开始，下载并处理完整的 %4 区块链 (%2GB)。</translation>
+    </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">将区块链存储限制到</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source>
+        <translation type="unfinished">取消此设置需要重新下载整个区块链。先完整下载整条链再进行修剪会更快。这会禁用一些高级功能。</translation>
+    </message>
+    <message>
+        <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source>
+        <translation type="unfinished">初始化同步过程是非常吃力的，同时可能会暴露您之前没有注意到的电脑硬件问题。你每次启动%1时，它都会从之前中断的地方继续下载。</translation>
+    </message>
+    <message>
+        <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source>
+        <translation type="unfinished">如果你选择限制区块链存储大小（区块链裁剪模式），程序依然会下载并处理全部历史数据，只是不必须的部分会在使用后被删除，以占用最少的存储空间。</translation>
+    </message>
+    <message>
+        <source>Use the default data directory</source>
+        <translation type="unfinished">使用默认的数据目录</translation>
+    </message>
+    <message>
+        <source>Use a custom data directory:</source>
+        <translation type="unfinished">使用自定义的数据目录:</translation>
+    </message>
+</context>
+<context>
+    <name>HelpMessageDialog</name>
+    <message>
+        <source>version</source>
+        <translation type="unfinished">版本</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation type="unfinished">关于 %1</translation>
+    </message>
+    <message>
+        <source>Command-line options</source>
+        <translation type="unfinished">命令行选项</translation>
+    </message>
+</context>
+<context>
+    <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1正在关闭...</translation>
+    </message>
+    <message>
+        <source>Do not shut down the computer until this window disappears.</source>
+        <translation type="unfinished">在此窗口消失前不要关闭计算机。</translation>
+    </message>
+</context>
+<context>
+    <name>ModalOverlay</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">窗体</translation>
+    </message>
+    <message>
+        <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source>
+        <translation type="unfinished">近期交易可能尚未显示，因此当前余额可能不准确。以上信息将在与比特币网络完全同步后更正。详情如下</translation>
+    </message>
+    <message>
+        <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source>
+        <translation type="unfinished">尝试使用受未可见交易影响的余额将不被网络接受。</translation>
+    </message>
+    <message>
+        <source>Number of blocks left</source>
+        <translation type="unfinished">剩余区块数量</translation>
+    </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">未知...</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">计算中...</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">上一区块时间</translation>
+    </message>
+    <message>
+        <source>Progress</source>
+        <translation type="unfinished">进度</translation>
+    </message>
+    <message>
+        <source>Progress increase per hour</source>
+        <translation type="unfinished">每小时进度增加</translation>
+    </message>
+    <message>
+        <source>Estimated time left until synced</source>
+        <translation type="unfinished">预计剩余同步时间</translation>
+    </message>
+    <message>
+        <source>Hide</source>
+        <translation type="unfinished">隐藏</translation>
+    </message>
+    <message>
+        <source>%1 is currently syncing.  It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source>
+        <translation type="unfinished">%1目前正在同步中。它会从其他节点下载区块头和区块数据并进行验证，直到抵达区块链尖端。</translation>
+    </message>
+    <message>
+        <source>Unknown. Syncing Headers (%1, %2%)…</source>
+        <translation type="unfinished">未知。同步区块头(%1, %2%)...</translation>
+    </message>
+</context>
+<context>
+    <name>OpenURIDialog</name>
+    <message>
+        <source>Open bitcoin URI</source>
+        <translation type="unfinished">打开比特币URI</translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
+        <translation type="unfinished">从剪贴板粘贴地址</translation>
+    </message>
+</context>
+<context>
+    <name>OptionsDialog</name>
+    <message>
+        <source>Options</source>
+        <translation type="unfinished">选项</translation>
+    </message>
+    <message>
+        <source>&amp;Main</source>
+        <translation type="unfinished">主要(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Automatically start %1 after logging in to the system.</source>
+        <translation type="unfinished">在登入系统后自动启动 %1</translation>
+    </message>
+    <message>
+        <source>&amp;Start %1 on system login</source>
+        <translation type="unfinished">系统登入时启动 %1 (&amp;S)</translation>
+    </message>
+    <message>
+        <source>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">启用区块修剪会显著减小存储交易对磁盘空间的需求。所有的区块仍然会被完整校验。取消这个设置需要重新下载整条区块链。</translation>
+    </message>
+    <message>
+        <source>Size of &amp;database cache</source>
+        <translation type="unfinished">数据库缓存大小(&amp;D)</translation>
+    </message>
+    <message>
+        <source>Number of script &amp;verification threads</source>
+        <translation type="unfinished">脚本验证线程数(&amp;V)</translation>
+    </message>
+    <message>
+        <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
+        <translation type="unfinished">代理服务器 IP 地址 (例如 IPv4: 127.0.0.1 / IPv6: ::1)</translation>
+    </message>
+    <message>
+        <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source>
+        <translation type="unfinished">显示默认的SOCKS5代理是否被用于在该类型的网络下连接同伴。</translation>
+    </message>
+    <message>
+        <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source>
+        <translation type="unfinished">窗口被关闭时最小化程序而不是退出。当此选项启用时，只有在菜单中选择“退出”时才会让程序退出。</translation>
+    </message>
+    <message>
+        <source>Open the %1 configuration file from the working directory.</source>
+        <translation type="unfinished">从工作目录下打开配置文件 %1。</translation>
+    </message>
+    <message>
+        <source>Open Configuration File</source>
+        <translation type="unfinished">打开配置文件</translation>
+    </message>
+    <message>
+        <source>Reset all client options to default.</source>
+        <translation type="unfinished">恢复客户端的缺省设置</translation>
+    </message>
+    <message>
+        <source>&amp;Reset Options</source>
+        <translation type="unfinished">恢复缺省设置(&amp;R)</translation>
+    </message>
+    <message>
+        <source>&amp;Network</source>
+        <translation type="unfinished">网络(&amp;N)</translation>
+    </message>
+    <message>
+        <source>Prune &amp;block storage to</source>
+        <translation type="unfinished">将区块存储修剪至(&amp;B)</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">警告:还原此设置需要重新下载整个区块链。</translation>
+    </message>
+    <message>
+        <source>Maximum database cache size. A larger cache can contribute to faster sync, after which the benefit is less pronounced for most use cases. Lowering the cache size will reduce memory usage. Unused mempool memory is shared for this cache.</source>
+        <extracomment>Tooltip text for Options window setting that sets the size of the database cache. Explains the corresponding effects of increasing/decreasing this value.</extracomment>
+        <translation type="unfinished">数据库缓存的最大大小。加大缓存有助于加快同步，但对于大多数使用场景来说，继续加大后收效会越来越不明显。降低缓存大小将会减小内存使用量。内存池中尚未被使用的那部分内存也会被共享用于这里的数据库缓存。</translation>
+    </message>
+    <message>
+        <source>Set the number of script verification threads. Negative values correspond to the number of cores you want to leave free to the system.</source>
+        <extracomment>Tooltip text for Options window setting that sets the number of script verification threads. Explains that negative values mean to leave these many cores free to the system.</extracomment>
+        <translation type="unfinished">设置脚本验证线程的数量。负值则表示你想要保留给系统的核心数量。</translation>
+    </message>
+    <message>
+        <source>(0 = auto, &lt;0 = leave that many cores free)</source>
+        <translation type="unfinished">(0 = 自动, &lt;0 = 保持指定数量的CPU核心空闲)</translation>
+    </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">这允许作为用户的你或第三方工具通过命令行和JSON-RPC命令行与节点通信。</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">启用R&amp;PC服务器</translation>
+    </message>
+    <message>
+        <source>W&amp;allet</source>
+        <translation type="unfinished">钱包(&amp;A)</translation>
+    </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">是否要默认从金额中减去手续费。</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">默认从金额中减去交易手续费(&amp;F)</translation>
+    </message>
+    <message>
+        <source>Expert</source>
+        <translation type="unfinished">专家</translation>
+    </message>
+    <message>
+        <source>Enable coin &amp;control features</source>
+        <translation type="unfinished">启用手动选币功能(&amp;C)</translation>
+    </message>
+    <message>
+        <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source>
+        <translation type="unfinished">如果您禁止动用尚未确认的找零资金，则一笔交易的找零资金至少需要有1个确认后才能动用。这同时也会影响账户余额的计算。</translation>
+    </message>
+    <message>
+        <source>&amp;Spend unconfirmed change</source>
+        <translation type="unfinished">动用尚未确认的找零资金(&amp;S)</translation>
+    </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">启用&amp;PSBT控件</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">是否要显示PSBT控件</translation>
+    </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">外部签名器(例如硬件钱包)</translation>
+    </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">外部签名器脚本路径(&amp;E)</translation>
+    </message>
+    <message>
+        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
+        <translation type="unfinished">指向兼容Bitcoin Core的脚本的完整路径 (例如 C:\Downloads\hwi.exe 或者 /Users/you/Downloads/hwi.py )。注意: 恶意软件可能会偷窃您的币！</translation>
+    </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+        <translation type="unfinished">自动在路由器中为比特币客户端打开端口。只有当您的路由器开启了 UPnP 选项时此功能才会有用。</translation>
+    </message>
+    <message>
+        <source>Map port using &amp;UPnP</source>
+        <translation type="unfinished">使用 &amp;UPnP 映射端口</translation>
+    </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports NAT-PMP and it is enabled. The external port could be random.</source>
+        <translation type="unfinished">自动在路由器中为比特币客户端打开端口。只有当您的路由器支持 NAT-PMP 功能并开启它，这个功能才会正常工作。外边端口可以是随机的。</translation>
+    </message>
+    <message>
+        <source>Map port using NA&amp;T-PMP</source>
+        <translation type="unfinished">使用 NA&amp;T-PMP 映射端口</translation>
+    </message>
+    <message>
+        <source>Accept connections from outside.</source>
+        <translation type="unfinished">接受外部连接。</translation>
+    </message>
+    <message>
+        <source>Allow incomin&amp;g connections</source>
+        <translation type="unfinished">允许传入连接(&amp;G)</translation>
+    </message>
+    <message>
+        <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
+        <translation type="unfinished">通过 SOCKS5 代理连接比特币网络。</translation>
+    </message>
+    <message>
+        <source>&amp;Connect through SOCKS5 proxy (default proxy):</source>
+        <translation type="unfinished">通过 SO&amp;CKS5 代理连接(默认代理):</translation>
+    </message>
+    <message>
+        <source>Proxy &amp;IP:</source>
+        <translation type="unfinished">代理服务器 &amp;IP:</translation>
+    </message>
+    <message>
+        <source>&amp;Port:</source>
+        <translation type="unfinished">端口(&amp;P):</translation>
+    </message>
+    <message>
+        <source>Port of the proxy (e.g. 9050)</source>
+        <translation type="unfinished">代理服务器端口（例如 9050）</translation>
+    </message>
+    <message>
+        <source>Used for reaching peers via:</source>
+        <translation type="unfinished">在走这些途径连接到节点的时候启用:</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">窗口(&amp;W)</translation>
+    </message>
+    <message>
+        <source>Show the icon in the system tray.</source>
+        <translation type="unfinished">在通知区域显示图标。</translation>
+    </message>
+    <message>
+        <source>&amp;Show tray icon</source>
+        <translation type="unfinished">显示通知区域图标(&amp;S)</translation>
+    </message>
+    <message>
+        <source>Show only a tray icon after minimizing the window.</source>
+        <translation type="unfinished">最小化窗口后仅显示托盘图标</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize to the tray instead of the taskbar</source>
+        <translation type="unfinished">最小化到托盘(&amp;M)</translation>
+    </message>
+    <message>
+        <source>M&amp;inimize on close</source>
+        <translation type="unfinished">单击关闭按钮时最小化(&amp;I)</translation>
+    </message>
+    <message>
+        <source>&amp;Display</source>
+        <translation type="unfinished">显示(&amp;D)</translation>
+    </message>
+    <message>
+        <source>User Interface &amp;language:</source>
+        <translation type="unfinished">用户界面语言(&amp;L):</translation>
+    </message>
+    <message>
+        <source>The user interface language can be set here. This setting will take effect after restarting %1.</source>
+        <translation type="unfinished">可以在这里设定用户界面的语言。这个设定在重启 %1 后才会生效。</translation>
+    </message>
+    <message>
+        <source>&amp;Unit to show amounts in:</source>
+        <translation type="unfinished">比特币金额单位(&amp;U):</translation>
+    </message>
+    <message>
+        <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
+        <translation type="unfinished">选择显示及发送比特币时使用的最小单位。</translation>
+    </message>
+    <message>
+        <source>Third-party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source>
+        <translation type="unfinished">这个第三方网址（比如区块浏览器）会出现在交易选项卡的右键菜单中。 网址中的%s代表交易哈希。多个网址需要用竖线 | 相互分隔。</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">第三方交易网址(&amp;T)</translation>
+    </message>
+    <message>
+        <source>Whether to show coin control features or not.</source>
+        <translation type="unfinished">是否显示手动选币功能。</translation>
+    </message>
+    <message>
+        <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor onion services.</source>
+        <translation type="unfinished">连接比特币网络时专门为Tor onion服务使用另一个 SOCKS5 代理。</translation>
+    </message>
+    <message>
+        <source>Use separate SOCKS&amp;5 proxy to reach peers via Tor onion services:</source>
+        <translation type="unfinished">连接Tor onion服务节点时使用另一个SOCKS&amp;5代理：</translation>
+    </message>
+    <message>
+        <source>Monospaced font in the Overview tab:</source>
+        <translation type="unfinished">在概览标签页的等宽字体:</translation>
+    </message>
+    <message>
+        <source>embedded "%1"</source>
+        <translation type="unfinished">嵌入了 “%1”</translation>
+    </message>
+    <message>
+        <source>closest matching "%1"</source>
+        <translation type="unfinished">与 "%1" 最接近的匹配</translation>
+    </message>
+    <message>
+        <source>Options set in this dialog are overridden by the command line or in the configuration file:</source>
+        <translation type="unfinished">这个对话框中的设置已被如下命令行选项或配置文件项覆盖:</translation>
+    </message>
+    <message>
+        <source>&amp;OK</source>
+        <translation type="unfinished">确定(&amp;O)</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation type="unfinished">取消(&amp;C)</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">编译时未启用外部签名支持 (外部签名需要这个功能)</translation>
+    </message>
+    <message>
+        <source>default</source>
+        <translation type="unfinished">默认</translation>
+    </message>
+    <message>
+        <source>none</source>
+        <translation type="unfinished">无</translation>
+    </message>
+    <message>
+        <source>Confirm options reset</source>
+        <translation type="unfinished">确认恢复默认设置</translation>
+    </message>
+    <message>
+        <source>Client restart required to activate changes.</source>
+        <translation type="unfinished">需要重启客户端才能使更改生效。</translation>
+    </message>
+    <message>
+        <source>Client will be shut down. Do you want to proceed?</source>
+        <translation type="unfinished">客户端即将关闭，您想继续吗？</translation>
+    </message>
+    <message>
+        <source>Configuration options</source>
+        <extracomment>Window title text of pop-up box that allows opening up of configuration file.</extracomment>
+        <translation type="unfinished">配置选项</translation>
+    </message>
+    <message>
+        <source>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</source>
+        <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
+        <translation type="unfinished">配置文件可以用来设置高级选项。配置文件会覆盖设置界面窗口中的选项。此外，命令行会覆盖配置文件指定的选项。</translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">继续</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">取消</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">错误</translation>
+    </message>
+    <message>
+        <source>The configuration file could not be opened.</source>
+        <translation type="unfinished">无法打开配置文件。</translation>
+    </message>
+    <message>
+        <source>This change would require a client restart.</source>
+        <translation type="unfinished">此更改需要重启客户端。</translation>
+    </message>
+    <message>
+        <source>The supplied proxy address is invalid.</source>
+        <translation type="unfinished">提供的代理服务器地址无效。</translation>
+    </message>
+</context>
+<context>
+    <name>OverviewPage</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">窗体</translation>
+    </message>
+    <message>
+        <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
+        <translation type="unfinished">现在显示的消息可能是过期的。在连接上比特币网络节点后，您的钱包将自动与网络同步，但是这个过程还没有完成。</translation>
+    </message>
+    <message>
+        <source>Watch-only:</source>
+        <translation type="unfinished">仅观察:</translation>
+    </message>
+    <message>
+        <source>Available:</source>
+        <translation type="unfinished">可使用的余额:</translation>
+    </message>
+    <message>
+        <source>Your current spendable balance</source>
+        <translation type="unfinished">您当前可使用的余额</translation>
+    </message>
+    <message>
+        <source>Pending:</source>
+        <translation type="unfinished">等待中的余额:</translation>
+    </message>
+    <message>
+        <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
+        <translation type="unfinished">尚未确认的交易总额，未计入当前余额</translation>
+    </message>
+    <message>
+        <source>Immature:</source>
+        <translation type="unfinished">未成熟的:</translation>
+    </message>
+    <message>
+        <source>Mined balance that has not yet matured</source>
+        <translation type="unfinished">尚未成熟的挖矿收入余额</translation>
+    </message>
+    <message>
+        <source>Balances</source>
+        <translation type="unfinished">余额</translation>
+    </message>
+    <message>
+        <source>Total:</source>
+        <translation type="unfinished">总额:</translation>
+    </message>
+    <message>
+        <source>Your current total balance</source>
+        <translation type="unfinished">您当前的总余额</translation>
+    </message>
+    <message>
+        <source>Your current balance in watch-only addresses</source>
+        <translation type="unfinished">您当前在仅观察观察地址中的余额</translation>
+    </message>
+    <message>
+        <source>Spendable:</source>
+        <translation type="unfinished">可动用:</translation>
+    </message>
+    <message>
+        <source>Recent transactions</source>
+        <translation type="unfinished">最近交易</translation>
+    </message>
+    <message>
+        <source>Unconfirmed transactions to watch-only addresses</source>
+        <translation type="unfinished">仅观察地址的未确认交易</translation>
+    </message>
+    <message>
+        <source>Mined balance in watch-only addresses that has not yet matured</source>
+        <translation type="unfinished">仅观察地址中尚未成熟的挖矿收入余额:</translation>
+    </message>
+    <message>
+        <source>Current total balance in watch-only addresses</source>
+        <translation type="unfinished">仅观察地址中的当前总余额</translation>
+    </message>
+    <message>
+        <source>Privacy mode activated for the Overview tab. To unmask the values, uncheck Settings-&gt;Mask values.</source>
+        <translation type="unfinished">“概况”标签页已启用隐私模式。要明文显示数值，请在设置中取消勾选“不明文显示数值”。</translation>
+    </message>
+</context>
+<context>
+    <name>PSBTOperationsDialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation type="unfinished">会话</translation>
+    </message>
+    <message>
+        <source>Sign Tx</source>
+        <translation type="unfinished">签名交易</translation>
+    </message>
+    <message>
+        <source>Broadcast Tx</source>
+        <translation type="unfinished">广播交易</translation>
+    </message>
+    <message>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished">复制到剪贴板</translation>
+    </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">保存...</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished">关闭</translation>
+    </message>
+    <message>
+        <source>Failed to load transaction: %1</source>
+        <translation type="unfinished">加载交易失败: %1</translation>
+    </message>
+    <message>
+        <source>Failed to sign transaction: %1</source>
+        <translation type="unfinished">签名交易失败: %1</translation>
+    </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">钱包已锁定，无法签名交易输入项。</translation>
+    </message>
+    <message>
+        <source>Could not sign any more inputs.</source>
+        <translation type="unfinished">没有交易输入项可供签名了。</translation>
+    </message>
+    <message>
+        <source>Signed %1 inputs, but more signatures are still required.</source>
+        <translation type="unfinished">已签名 %1 个交易输入项，但是仍然还有余下的项目需要签名。</translation>
+    </message>
+    <message>
+        <source>Signed transaction successfully. Transaction is ready to broadcast.</source>
+        <translation type="unfinished">成功签名交易。交易已经可以广播。</translation>
+    </message>
+    <message>
+        <source>Unknown error processing transaction.</source>
+        <translation type="unfinished">处理交易时遇到未知错误。</translation>
+    </message>
+    <message>
+        <source>Transaction broadcast successfully! Transaction ID: %1</source>
+        <translation type="unfinished">已成功广播交易！交易ID: %1</translation>
+    </message>
+    <message>
+        <source>Transaction broadcast failed: %1</source>
+        <translation type="unfinished">交易广播失败: %1</translation>
+    </message>
+    <message>
+        <source>PSBT copied to clipboard.</source>
+        <translation type="unfinished">已复制PSBT到剪贴板</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">保存交易数据</translation>
+    </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">部分签名交易(二进制)</translation>
+    </message>
+    <message>
+        <source>PSBT saved to disk.</source>
+        <translation type="unfinished">PSBT已保存到硬盘</translation>
+    </message>
+    <message>
+        <source> * Sends %1 to %2</source>
+        <translation type="unfinished"> * 发送 %1 至 %2</translation>
+    </message>
+    <message>
+        <source>Unable to calculate transaction fee or total transaction amount.</source>
+        <translation type="unfinished">无法计算交易费用或总交易金额。</translation>
+    </message>
+    <message>
+        <source>Pays transaction fee: </source>
+        <translation type="unfinished">支付交易费用:</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">总额</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">或</translation>
+    </message>
+    <message>
+        <source>Transaction has %1 unsigned inputs.</source>
+        <translation type="unfinished">交易中含有%1个未签名输入项。</translation>
+    </message>
+    <message>
+        <source>Transaction is missing some information about inputs.</source>
+        <translation type="unfinished">交易中有输入项缺失某些信息。</translation>
+    </message>
+    <message>
+        <source>Transaction still needs signature(s).</source>
+        <translation type="unfinished">交易仍然需要签名。</translation>
+    </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(但没有加载钱包。)</translation>
+    </message>
+    <message>
+        <source>(But this wallet cannot sign transactions.)</source>
+        <translation type="unfinished">(但这个钱包不能签名交易)</translation>
+    </message>
+    <message>
+        <source>(But this wallet does not have the right keys.)</source>
+        <translation type="unfinished">(但这个钱包没有正确的密钥)</translation>
+    </message>
+    <message>
+        <source>Transaction is fully signed and ready for broadcast.</source>
+        <translation type="unfinished">交易已经完全签名，可以广播。</translation>
+    </message>
+    <message>
+        <source>Transaction status is unknown.</source>
+        <translation type="unfinished">交易状态未知。</translation>
+    </message>
+</context>
+<context>
+    <name>PaymentServer</name>
+    <message>
+        <source>Payment request error</source>
+        <translation type="unfinished">支付请求出错</translation>
+    </message>
+    <message>
+        <source>Cannot start bitcoin: click-to-pay handler</source>
+        <translation type="unfinished">无法启动 bitcoin: 协议的“一键支付”处理程序</translation>
+    </message>
+    <message>
+        <source>URI handling</source>
+        <translation type="unfinished">URI 处理</translation>
+    </message>
+    <message>
+        <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
+        <translation type="unfinished">‘bitcoin://’不是合法的URI。请改用'bitcoin:'。</translation>
+    </message>
+    <message>
+        <source>Cannot process payment request because BIP70 is not supported.
+Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.
+If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source>
+        <translation type="unfinished">因为不支持BIP70，无法处理付款请求。
+由于BIP70具有广泛的安全缺陷，无论哪个商家指引要求您更换钱包，我们都强烈建议您不要听信。
+如果您看到了这个错误，您应该要求商家提供兼容BIP21的URI。</translation>
+    </message>
+    <message>
+        <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
+        <translation type="unfinished">无法解析 URI 地址！可能是因为比特币地址无效，或是 URI 参数格式错误。</translation>
+    </message>
+    <message>
+        <source>Payment request file handling</source>
+        <translation type="unfinished">支付请求文件处理</translation>
+    </message>
+</context>
+<context>
+    <name>PeerTableModel</name>
+    <message>
+        <source>User Agent</source>
+        <extracomment>Title of Peers Table column which contains the peer's User Agent string.</extracomment>
+        <translation type="unfinished">用户代理</translation>
+    </message>
+    <message>
+        <source>Peer</source>
+        <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
+        <translation type="unfinished">节点</translation>
+    </message>
+    <message>
+        <source>Direction</source>
+        <extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
+        <translation type="unfinished">方向</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
+        <translation type="unfinished">已发送</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have received from the peer.</extracomment>
+        <translation type="unfinished">已接收</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">地址</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <extracomment>Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists.</extracomment>
+        <translation type="unfinished">类型</translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <extracomment>Title of Peers Table column which states the network the peer connected through.</extracomment>
+        <translation type="unfinished">网络</translation>
+    </message>
+    <message>
+        <source>Inbound</source>
+        <extracomment>An Inbound Connection from a Peer.</extracomment>
+        <translation type="unfinished">传入</translation>
+    </message>
+    <message>
+        <source>Outbound</source>
+        <extracomment>An Outbound Connection to a Peer.</extracomment>
+        <translation type="unfinished">传出</translation>
+    </message>
+</context>
+<context>
+    <name>QRImageWidget</name>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">保存图像(&amp;S)...</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Image</source>
+        <translation type="unfinished">复制图像(&amp;C)</translation>
+    </message>
+    <message>
+        <source>Resulting URI too long, try to reduce the text for label / message.</source>
+        <translation type="unfinished">URI 太长，请试着精简标签或消息文本。</translation>
+    </message>
+    <message>
+        <source>Error encoding URI into QR Code.</source>
+        <translation type="unfinished">把 URI 编码成二维码时发生错误。</translation>
+    </message>
+    <message>
+        <source>QR code support not available.</source>
+        <translation type="unfinished">不支持二维码。</translation>
+    </message>
+    <message>
+        <source>Save QR Code</source>
+        <translation type="unfinished">保存二维码</translation>
+    </message>
+    <message>
+        <source>PNG Image</source>
+        <extracomment>Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics.</extracomment>
+        <translation type="unfinished">PNG图像</translation>
+    </message>
+</context>
+<context>
+    <name>RPCConsole</name>
+    <message>
+        <source>N/A</source>
+        <translation type="unfinished">不可用</translation>
+    </message>
+    <message>
+        <source>Client version</source>
+        <translation type="unfinished">客户端版本</translation>
+    </message>
+    <message>
+        <source>&amp;Information</source>
+        <translation type="unfinished">信息(&amp;I)</translation>
+    </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">常规</translation>
+    </message>
+    <message>
+        <source>Datadir</source>
+        <translation type="unfinished">数据目录</translation>
+    </message>
+    <message>
+        <source>To specify a non-default location of the data directory use the '%1' option.</source>
+        <translation type="unfinished">如果不想用默认的数据目录位置，请用 '%1' 这个选项来指定新的位置。</translation>
+    </message>
+    <message>
+        <source>Blocksdir</source>
+        <translation type="unfinished">区块存储目录</translation>
+    </message>
+    <message>
+        <source>To specify a non-default location of the blocks directory use the '%1' option.</source>
+        <translation type="unfinished">如果要自定义区块存储目录的位置，请用 '%1' 这个选项来指定新的位置。</translation>
+    </message>
+    <message>
+        <source>Startup time</source>
+        <translation type="unfinished">启动时间</translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">网络</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">名称</translation>
+    </message>
+    <message>
+        <source>Number of connections</source>
+        <translation type="unfinished">连接数</translation>
+    </message>
+    <message>
+        <source>Block chain</source>
+        <translation type="unfinished">区块链</translation>
+    </message>
+    <message>
+        <source>Memory Pool</source>
+        <translation type="unfinished">内存池</translation>
+    </message>
+    <message>
+        <source>Current number of transactions</source>
+        <translation type="unfinished">当前交易数量</translation>
+    </message>
+    <message>
+        <source>Memory usage</source>
+        <translation type="unfinished">内存使用</translation>
+    </message>
+    <message>
+        <source>Wallet: </source>
+        <translation type="unfinished">钱包:</translation>
+    </message>
+    <message>
+        <source>(none)</source>
+        <translation type="unfinished">(无)</translation>
+    </message>
+    <message>
+        <source>&amp;Reset</source>
+        <translation type="unfinished">重置(&amp;R)</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <translation type="unfinished">已接收</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <translation type="unfinished">已发送</translation>
+    </message>
+    <message>
+        <source>&amp;Peers</source>
+        <translation type="unfinished">节点(&amp;P)</translation>
+    </message>
+    <message>
+        <source>Banned peers</source>
+        <translation type="unfinished">已封禁节点</translation>
+    </message>
+    <message>
+        <source>Select a peer to view detailed information.</source>
+        <translation type="unfinished">选择节点查看详细信息。</translation>
+    </message>
+    <message>
+        <source>Version</source>
+        <translation type="unfinished">版本</translation>
+    </message>
+    <message>
+        <source>Starting Block</source>
+        <translation type="unfinished">起步区块</translation>
+    </message>
+    <message>
+        <source>Synced Headers</source>
+        <translation type="unfinished">已同步区块头</translation>
+    </message>
+    <message>
+        <source>Synced Blocks</source>
+        <translation type="unfinished">已同步区块</translation>
+    </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">最近交易</translation>
+    </message>
+    <message>
+        <source>The mapped Autonomous System used for diversifying peer selection.</source>
+        <translation type="unfinished">映射到的自治系统，被用来多样化选择节点</translation>
+    </message>
+    <message>
+        <source>Mapped AS</source>
+        <translation type="unfinished">映射到的AS</translation>
+    </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">是否把地址转发给这个节点。</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">地址转发</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">除了因为受到频率限制而被丢弃的余下所有已处理地址总数。</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">已处理地址</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">因为受到频率限制而被丢弃的地址总数。</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">被频率限制丢弃的地址</translation>
+    </message>
+    <message>
+        <source>User Agent</source>
+        <translation type="unfinished">用户代理</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">节点窗口</translation>
+    </message>
+    <message>
+        <source>Current block height</source>
+        <translation type="unfinished">当前区块高度</translation>
+    </message>
+    <message>
+        <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source>
+        <translation type="unfinished">打开当前数据目录中的 %1 调试日志文件。日志文件大的话可能要等上几秒钟。</translation>
+    </message>
+    <message>
+        <source>Decrease font size</source>
+        <translation type="unfinished">缩小字体大小</translation>
+    </message>
+    <message>
+        <source>Increase font size</source>
+        <translation type="unfinished">放大字体大小</translation>
+    </message>
+    <message>
+        <source>Permissions</source>
+        <translation type="unfinished">权限</translation>
+    </message>
+    <message>
+        <source>The direction and type of peer connection: %1</source>
+        <translation type="unfinished">节点连接的方向和类型: %1</translation>
+    </message>
+    <message>
+        <source>Direction/Type</source>
+        <translation type="unfinished">方向/类型</translation>
+    </message>
+    <message>
+        <source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
+        <translation type="unfinished">这个节点是通过这种网络协议连接到的: IPv4, IPv6, Onion, I2P, 或 CJDNS.</translation>
+    </message>
+    <message>
+        <source>Services</source>
+        <translation type="unfinished">服务</translation>
+    </message>
+    <message>
+        <source>Whether the peer requested us to relay transactions.</source>
+        <translation type="unfinished">这个节点是否要求我们转发交易。</translation>
+    </message>
+    <message>
+        <source>Wants Tx Relay</source>
+        <translation type="unfinished">要求交易转发</translation>
+    </message>
+    <message>
+        <source>High bandwidth BIP152 compact block relay: %1</source>
+        <translation type="unfinished">高带宽BIP152密实区块转发: %1</translation>
+    </message>
+    <message>
+        <source>High Bandwidth</source>
+        <translation type="unfinished">高带宽</translation>
+    </message>
+    <message>
+        <source>Connection Time</source>
+        <translation type="unfinished">连接时间</translation>
+    </message>
+    <message>
+        <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
+        <translation type="unfinished">自从这个节点上一次发来可通过初始有效性检查的新区块以来到现在经过的时间</translation>
+    </message>
+    <message>
+        <source>Last Block</source>
+        <translation type="unfinished">上一个区块</translation>
+    </message>
+    <message>
+        <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
+        <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
+        <translation type="unfinished">自从这个节点上一次发来被我们的内存池接受的新交易到现在经过的时间</translation>
+    </message>
+    <message>
+        <source>Last Send</source>
+        <translation type="unfinished">上次发送</translation>
+    </message>
+    <message>
+        <source>Last Receive</source>
+        <translation type="unfinished">上次接收</translation>
+    </message>
+    <message>
+        <source>Ping Time</source>
+        <translation type="unfinished">Ping 延时</translation>
+    </message>
+    <message>
+        <source>The duration of a currently outstanding ping.</source>
+        <translation type="unfinished">目前这一次 ping 已经过去的时间。</translation>
+    </message>
+    <message>
+        <source>Ping Wait</source>
+        <translation type="unfinished">Ping 等待</translation>
+    </message>
+    <message>
+        <source>Min Ping</source>
+        <translation type="unfinished">最小 Ping 值</translation>
+    </message>
+    <message>
+        <source>Time Offset</source>
+        <translation type="unfinished">时间偏移</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">上一区块时间</translation>
+    </message>
+    <message>
+        <source>&amp;Open</source>
+        <translation type="unfinished">打开(&amp;O)</translation>
+    </message>
+    <message>
+        <source>&amp;Console</source>
+        <translation type="unfinished">控制台(&amp;C)</translation>
+    </message>
+    <message>
+        <source>&amp;Network Traffic</source>
+        <translation type="unfinished">网络流量(&amp;N)</translation>
+    </message>
+    <message>
+        <source>Totals</source>
+        <translation type="unfinished">总数</translation>
+    </message>
+    <message>
+        <source>Debug log file</source>
+        <translation type="unfinished">调试日志文件</translation>
+    </message>
+    <message>
+        <source>Clear console</source>
+        <translation type="unfinished">清空控制台</translation>
+    </message>
+    <message>
+        <source>In:</source>
+        <translation type="unfinished">传入:</translation>
+    </message>
+    <message>
+        <source>Out:</source>
+        <translation type="unfinished">传出:</translation>
+    </message>
+    <message>
+        <source>Inbound: initiated by peer</source>
+        <extracomment>Explanatory text for an inbound peer connection.</extracomment>
+        <translation type="unfinished">入站: 由对端发起</translation>
+    </message>
+    <message>
+        <source>Outbound Full Relay: default</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
+        <translation type="unfinished">出站完整转发: 默认</translation>
+    </message>
+    <message>
+        <source>Outbound Block Relay: does not relay transactions or addresses</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">出站区块转发: 不转发交易和地址</translation>
+    </message>
+    <message>
+        <source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
+        <extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
+        <translation type="unfinished">出站手动: 加入使用RPC %1 或 %2/%3 配置选项</translation>
+    </message>
+    <message>
+        <source>Outbound Feeler: short-lived, for testing addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">出站触须: 短暂，用于测试地址</translation>
+    </message>
+    <message>
+        <source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
+        <translation type="unfinished">出站地址取回: 短暂，用于请求取回地址</translation>
+    </message>
+    <message>
+        <source>we selected the peer for high bandwidth relay</source>
+        <translation type="unfinished">我们选择了用于高带宽转发的节点</translation>
+    </message>
+    <message>
+        <source>the peer selected us for high bandwidth relay</source>
+        <translation type="unfinished">对端选择了我们用于高带宽转发</translation>
+    </message>
+    <message>
+        <source>no high bandwidth relay selected</source>
+        <translation type="unfinished">未选择高带宽转发</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">复制地址(&amp;C)</translation>
+    </message>
+    <message>
+        <source>&amp;Disconnect</source>
+        <translation type="unfinished">断开(&amp;D)</translation>
+    </message>
+    <message>
+        <source>1 &amp;hour</source>
+        <translation type="unfinished">1 小时(&amp;H)</translation>
+    </message>
+    <message>
+        <source>1 d&amp;ay</source>
+        <translation type="unfinished">1 天(&amp;A)</translation>
+    </message>
+    <message>
+        <source>1 &amp;week</source>
+        <translation type="unfinished">1 周(&amp;W)</translation>
+    </message>
+    <message>
+        <source>1 &amp;year</source>
+        <translation type="unfinished">1 年(&amp;Y)</translation>
+    </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">复制IP/网络掩码(&amp;C)</translation>
+    </message>
+    <message>
+        <source>&amp;Unban</source>
+        <translation type="unfinished">解封(&amp;U)</translation>
+    </message>
+    <message>
+        <source>Network activity disabled</source>
+        <translation type="unfinished">网络活动已禁用</translation>
+    </message>
+    <message>
+        <source>Executing command without any wallet</source>
+        <translation type="unfinished">不使用任何钱包执行命令</translation>
+    </message>
+    <message>
+        <source>Executing command using "%1" wallet</source>
+        <translation type="unfinished">使用“%1”钱包执行命令</translation>
+    </message>
+    <message>
+        <source>Welcome to the %1 RPC console.
+Use up and down arrows to navigate history, and %2 to clear screen.
+Use %3 and %4 to increase or decrease the font size.
+Type %5 for an overview of available commands.
+For more information on using this console, type %6.
+
+%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8</source>
+        <extracomment>RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally.</extracomment>
+        <translation type="unfinished">欢迎来到 %1 RPC 控制台。
+使用上与下箭头以进行历史导航，%2 以清除屏幕。
+使用%3 和 %4 以增加或减小字体大小。
+输入 %5 以显示可用命令的概览。
+查看更多关于此控制台的信息，输入 %6。
+
+%7 警告：骗子们很活跃，告诉用户在这里输入命令，偷走他们钱包中的内容。不要在不完全了解一个命令的后果的情况下使用此控制台。%8</translation>
+    </message>
+    <message>
+        <source>Executing…</source>
+        <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
+        <translation type="unfinished">执行中……</translation>
+    </message>
+    <message>
+        <source>(peer: %1)</source>
+        <translation type="unfinished">(节点: %1)</translation>
+    </message>
+    <message>
+        <source>via %1</source>
+        <translation type="unfinished">通过 %1</translation>
+    </message>
+    <message>
+        <source>Yes</source>
+        <translation type="unfinished">是</translation>
+    </message>
+    <message>
+        <source>No</source>
+        <translation type="unfinished">否</translation>
+    </message>
+    <message>
+        <source>To</source>
+        <translation type="unfinished">到</translation>
+    </message>
+    <message>
+        <source>From</source>
+        <translation type="unfinished">来自</translation>
+    </message>
+    <message>
+        <source>Ban for</source>
+        <translation type="unfinished">封禁时长</translation>
+    </message>
+    <message>
+        <source>Never</source>
+        <translation type="unfinished">永不</translation>
+    </message>
+    <message>
+        <source>Unknown</source>
+        <translation type="unfinished">未知</translation>
+    </message>
+</context>
+<context>
+    <name>ReceiveCoinsDialog</name>
+    <message>
+        <source>&amp;Amount:</source>
+        <translation type="unfinished">金额(&amp;A):</translation>
+    </message>
+    <message>
+        <source>&amp;Label:</source>
+        <translation type="unfinished">标签(&amp;L):</translation>
+    </message>
+    <message>
+        <source>&amp;Message:</source>
+        <translation type="unfinished">消息(&amp;M):</translation>
+    </message>
+    <message>
+        <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source>
+        <translation type="unfinished">可在支付请求上备注一条信息，在打开支付请求时可以看到。注意:该消息不是通过比特币网络传送。</translation>
+    </message>
+    <message>
+        <source>An optional label to associate with the new receiving address.</source>
+        <translation type="unfinished">可为新建的收款地址添加一个标签。</translation>
+    </message>
+    <message>
+        <source>Use this form to request payments. All fields are &lt;b&gt;optional&lt;/b&gt;.</source>
+        <translation type="unfinished">使用此表单请求付款。所有字段都是&lt;b&gt;可选&lt;/b&gt;的。</translation>
+    </message>
+    <message>
+        <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source>
+        <translation type="unfinished">可选的请求金额。留空或填零为不要求具体金额。</translation>
+    </message>
+    <message>
+        <source>An optional label to associate with the new receiving address (used by you to identify an invoice).  It is also attached to the payment request.</source>
+        <translation type="unfinished">一个关联到新收款地址（被您用来识别发票）的可选标签。它也会被附加到付款请求中。</translation>
+    </message>
+    <message>
+        <source>An optional message that is attached to the payment request and may be displayed to the sender.</source>
+        <translation type="unfinished">一条附加到付款请求中的可选消息，可以显示给付款方。</translation>
+    </message>
+    <message>
+        <source>&amp;Create new receiving address</source>
+        <translation type="unfinished">新建收款地址(&amp;C)</translation>
+    </message>
+    <message>
+        <source>Clear all fields of the form.</source>
+        <translation type="unfinished">清除此表单的所有字段。</translation>
+    </message>
+    <message>
+        <source>Clear</source>
+        <translation type="unfinished">清除</translation>
+    </message>
+    <message>
+        <source>Requested payments history</source>
+        <translation type="unfinished">付款请求历史</translation>
+    </message>
+    <message>
+        <source>Show the selected request (does the same as double clicking an entry)</source>
+        <translation type="unfinished">显示选中的请求 (直接双击项目也可以显示)</translation>
+    </message>
+    <message>
+        <source>Show</source>
+        <translation type="unfinished">显示</translation>
+    </message>
+    <message>
+        <source>Remove the selected entries from the list</source>
+        <translation type="unfinished">从列表中移除选中的条目</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished">移除</translation>
+    </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">复制 &amp;URI</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">复制地址(&amp;C)</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">复制标签(&amp;L)</translation>
+    </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">复制消息(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">复制金额(&amp;A)</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">无法解锁钱包。</translation>
+    </message>
+    <message>
+        <source>Could not generate new %1 address</source>
+        <translation type="unfinished">无法生成新的%1地址</translation>
+    </message>
+</context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Request payment to …</source>
+        <translation type="unfinished">请求支付至...</translation>
+    </message>
+    <message>
+        <source>Address:</source>
+        <translation type="unfinished">地址:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">金额:</translation>
+    </message>
+    <message>
+        <source>Label:</source>
+        <translation type="unfinished">标签：</translation>
+    </message>
+    <message>
+        <source>Message:</source>
+        <translation type="unfinished">消息:</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">钱包:</translation>
+    </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">复制 &amp;URI</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Address</source>
+        <translation type="unfinished">复制地址(&amp;A)</translation>
+    </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">验证(&amp;V)</translation>
+    </message>
+    <message>
+        <source>Verify this address on e.g. a hardware wallet screen</source>
+        <translation type="unfinished">在像是硬件钱包屏幕的地方检验这个地址</translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">保存图像(&amp;S)...</translation>
+    </message>
+    <message>
+        <source>Payment information</source>
+        <translation type="unfinished">付款信息</translation>
+    </message>
+    <message>
+        <source>Request payment to %1</source>
+        <translation type="unfinished">请求付款到 %1</translation>
+    </message>
+</context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">日期</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">标签</translation>
+    </message>
+    <message>
+        <source>Message</source>
+        <translation type="unfinished">消息</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(无标签)</translation>
+    </message>
+    <message>
+        <source>(no message)</source>
+        <translation type="unfinished">(无消息)</translation>
+    </message>
+    <message>
+        <source>(no amount requested)</source>
+        <translation type="unfinished">(未填写请求金额)</translation>
+    </message>
+    <message>
+        <source>Requested</source>
+        <translation type="unfinished">请求金额</translation>
+    </message>
+</context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message>
+        <source>Send Coins</source>
+        <translation type="unfinished">发币</translation>
+    </message>
+    <message>
+        <source>Coin Control Features</source>
+        <translation type="unfinished">手动选币功能</translation>
+    </message>
+    <message>
+        <source>automatically selected</source>
+        <translation type="unfinished">自动选择</translation>
+    </message>
+    <message>
+        <source>Insufficient funds!</source>
+        <translation type="unfinished">金额不足！</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">总量:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">字节数:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">金额:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">费用:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">加上交易费用后:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">找零:</translation>
+    </message>
+    <message>
+        <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source>
+        <translation type="unfinished">在激活该选项后，如果填写了无效的找零地址，或者干脆没填找零地址，找零资金将会被转入新生成的地址。</translation>
+    </message>
+    <message>
+        <source>Custom change address</source>
+        <translation type="unfinished">自定义找零地址</translation>
+    </message>
+    <message>
+        <source>Transaction Fee:</source>
+        <translation type="unfinished">交易手续费:</translation>
+    </message>
+    <message>
+        <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source>
+        <translation type="unfinished">如果使用备用手续费设置，有可能会导致交易经过几个小时、几天（甚至永远）无法被确认。请考虑手动选择手续费，或等待整个链完成验证。</translation>
+    </message>
+    <message>
+        <source>Warning: Fee estimation is currently not possible.</source>
+        <translation type="unfinished">警告: 目前无法进行手续费估计。</translation>
+    </message>
+    <message>
+        <source>per kilobyte</source>
+        <translation type="unfinished">每KB</translation>
+    </message>
+    <message>
+        <source>Hide</source>
+        <translation type="unfinished">隐藏</translation>
+    </message>
+    <message>
+        <source>Recommended:</source>
+        <translation type="unfinished">推荐:</translation>
+    </message>
+    <message>
+        <source>Custom:</source>
+        <translation type="unfinished">自定义:</translation>
+    </message>
+    <message>
+        <source>Send to multiple recipients at once</source>
+        <translation type="unfinished">一次发送给多个收款人</translation>
+    </message>
+    <message>
+        <source>Add &amp;Recipient</source>
+        <translation type="unfinished">添加收款人(&amp;R)</translation>
+    </message>
+    <message>
+        <source>Clear all fields of the form.</source>
+        <translation type="unfinished">清除此表单的所有字段。</translation>
+    </message>
+    <message>
+        <source>Inputs…</source>
+        <translation type="unfinished">输入...</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">粉尘:</translation>
+    </message>
+    <message>
+        <source>Choose…</source>
+        <translation type="unfinished">选择...</translation>
+    </message>
+    <message>
+        <source>Hide transaction fee settings</source>
+        <translation type="unfinished">隐藏交易手续费设置</translation>
+    </message>
+    <message>
+        <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size.
+
+Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satoshis per kvB" for a transaction size of 500 virtual bytes (half of 1 kvB) would ultimately yield a fee of only 50 satoshis.</source>
+        <translation type="unfinished">指定交易虚拟大小的每kB (1,000字节) 自定义费率。
+
+附注：因为矿工费是按字节计费的，所以如果费率是“每kvB支付100聪”，那么对于一笔500虚拟字节 (1kvB的一半) 的交易，最终将只会产生50聪的矿工费。（译注：这里就是提醒单位是字节，而不是千字节，如果搞错的话，矿工费会过低，导致交易长时间无法确认，或者压根无法发出）</translation>
+    </message>
+    <message>
+        <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
+        <translation type="unfinished">当交易量小于可用区块空间时，矿工和中继节点可能会执行最低手续费率限制。按照这个最低费率来支付手续费也是可以的，但请注意，一旦交易需求超出比特币网络能处理的限度，你的交易可能永远也无法确认。</translation>
+    </message>
+    <message>
+        <source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
+        <translation type="unfinished">过低的手续费率可能导致交易永远无法确认（请阅读工具提示）</translation>
+    </message>
+    <message>
+        <source>(Smart fee not initialized yet. This usually takes a few blocks…)</source>
+        <translation type="unfinished">(智能矿工费尚未被初始化。这一般需要几个区块...)</translation>
+    </message>
+    <message>
+        <source>Confirmation time target:</source>
+        <translation type="unfinished">确认时间目标:</translation>
+    </message>
+    <message>
+        <source>Enable Replace-By-Fee</source>
+        <translation type="unfinished">启用手续费追加</translation>
+    </message>
+    <message>
+        <source>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</source>
+        <translation type="unfinished">手续费追加（Replace-By-Fee，BIP-125）可以让你在送出交易后继续追加手续费。不用这个功能的话，建议付比较高的手续费来降低交易延迟的风险。</translation>
+    </message>
+    <message>
+        <source>Clear &amp;All</source>
+        <translation type="unfinished">清除所有(&amp;A)</translation>
+    </message>
+    <message>
+        <source>Balance:</source>
+        <translation type="unfinished">余额:</translation>
+    </message>
+    <message>
+        <source>Confirm the send action</source>
+        <translation type="unfinished">确认发送操作</translation>
+    </message>
+    <message>
+        <source>S&amp;end</source>
+        <translation type="unfinished">发送(&amp;E)</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">复制数目</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">复制金额</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">复制手续费</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">复制含交易费的金额</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">复制字节数</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">复制粉尘金额</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">复制找零金额</translation>
+    </message>
+    <message>
+        <source>%1 (%2 blocks)</source>
+        <translation type="unfinished">%1 (%2个块)</translation>
+    </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">在设备上签名</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">请先连接您的硬件钱包。</translation>
+    </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">在 选项 -&gt; 钱包 中设置外部签名器脚本路径</translation>
+    </message>
+    <message>
+        <source>Cr&amp;eate Unsigned</source>
+        <translation type="unfinished">创建未签名交易(&amp;E)</translation>
+    </message>
+    <message>
+        <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <translation type="unfinished">创建一个“部分签名比特币交易”（PSBT），以用于诸如离线%1钱包，或是兼容PSBT的硬件钱包这类用途。</translation>
+    </message>
+    <message>
+        <source> from wallet '%1'</source>
+        <translation type="unfinished">从钱包%1</translation>
+    </message>
+    <message>
+        <source>%1 to '%2'</source>
+        <translation type="unfinished">%1 到 '%2'</translation>
+    </message>
+    <message>
+        <source>%1 to %2</source>
+        <translation type="unfinished">%1 到 %2</translation>
+    </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">点击“查看详情”以审核收款人列表</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">签名失败</translation>
+    </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">未找到外部签名器</translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">外部签名器失败</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">保存交易数据</translation>
+    </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">部分签名交易(二进制)</translation>
+    </message>
+    <message>
+        <source>PSBT saved</source>
+        <translation type="unfinished">已保存PSBT</translation>
+    </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">外部余额:</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">或</translation>
+    </message>
+    <message>
+        <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source>
+        <translation type="unfinished">你可以后来再追加手续费（打上支持BIP-125手续费追加的标记）</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
+        <translation type="unfinished">请务必仔细检查您的交易请求。这会产生一个部分签名比特币交易(PSBT)，可以把保存下来或复制出去，然后就可以对它进行签名，比如用离线%1钱包，或是用兼容PSBT的硬件钱包。</translation>
+    </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">要创建这笔交易吗？</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">请务必仔细检查您的交易。你可以创建并发送这笔交易；也可以创建一个“部分签名比特币交易(PSBT)”，它可以被保存下来或被复制出去，然后就可以对它进行签名，比如用离线%1钱包，或是用兼容PSBT的硬件钱包。</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction.</source>
+        <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
+        <translation type="unfinished">请检查您的交易。</translation>
+    </message>
+    <message>
+        <source>Transaction fee</source>
+        <translation type="unfinished">交易手续费</translation>
+    </message>
+    <message>
+        <source>Not signalling Replace-By-Fee, BIP-125.</source>
+        <translation type="unfinished">没有打上BIP-125手续费追加的标记。</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">总额</translation>
+    </message>
+    <message>
+        <source>Confirm send coins</source>
+        <translation type="unfinished">确认发币</translation>
+    </message>
+    <message>
+        <source>Watch-only balance:</source>
+        <translation type="unfinished">仅观察余额:</translation>
+    </message>
+    <message>
+        <source>The recipient address is not valid. Please recheck.</source>
+        <translation type="unfinished">接收人地址无效。请重新检查。</translation>
+    </message>
+    <message>
+        <source>The amount to pay must be larger than 0.</source>
+        <translation type="unfinished">支付金额必须大于0。</translation>
+    </message>
+    <message>
+        <source>The amount exceeds your balance.</source>
+        <translation type="unfinished">金额超出您的余额。</translation>
+    </message>
+    <message>
+        <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+        <translation type="unfinished">计入 %1 手续费后，金额超出了您的余额。</translation>
+    </message>
+    <message>
+        <source>Duplicate address found: addresses should only be used once each.</source>
+        <translation type="unfinished">发现重复地址:每个地址应该只使用一次。</translation>
+    </message>
+    <message>
+        <source>Transaction creation failed!</source>
+        <translation type="unfinished">交易创建失败！</translation>
+    </message>
+    <message>
+        <source>A fee higher than %1 is considered an absurdly high fee.</source>
+        <translation type="unfinished">超过 %1 的手续费被视为高得离谱。</translation>
+    </message>
+    <message>
+        <source>Payment request expired.</source>
+        <translation type="unfinished">支付请求已过期。</translation>
+    </message>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Warning: Invalid Bitcoin address</source>
+        <translation type="unfinished">警告: 比特币地址无效</translation>
+    </message>
+    <message>
+        <source>Warning: Unknown change address</source>
+        <translation type="unfinished">警告:未知的找零地址</translation>
+    </message>
+    <message>
+        <source>Confirm custom change address</source>
+        <translation type="unfinished">确认自定义找零地址</translation>
+    </message>
+    <message>
+        <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source>
+        <translation type="unfinished">你选择的找零地址未被包含在本钱包中，你钱包中的部分或全部金额将被发送至该地址。你确定要这样做吗？</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(无标签)</translation>
+    </message>
+</context>
+<context>
+    <name>SendCoinsEntry</name>
+    <message>
+        <source>A&amp;mount:</source>
+        <translation type="unfinished">金额(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Pay &amp;To:</source>
+        <translation type="unfinished">付给(&amp;T):</translation>
+    </message>
+    <message>
+        <source>&amp;Label:</source>
+        <translation type="unfinished">标签(&amp;L):</translation>
+    </message>
+    <message>
+        <source>Choose previously used address</source>
+        <translation type="unfinished">选择以前用过的地址</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address to send the payment to</source>
+        <translation type="unfinished">付款目的地址</translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">从剪贴板粘贴地址</translation>
+    </message>
+    <message>
+        <source>Remove this entry</source>
+        <translation type="unfinished">移除此项</translation>
+    </message>
+    <message>
+        <source>The amount to send in the selected unit</source>
+        <translation type="unfinished">用被选单位表示的待发送金额</translation>
+    </message>
+    <message>
+        <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source>
+        <translation type="unfinished">交易费将从发送金额中扣除。接收人收到的比特币将会比您在金额框中输入的更少。如果选中了多个收件人，交易费平分。</translation>
+    </message>
+    <message>
+        <source>S&amp;ubtract fee from amount</source>
+        <translation type="unfinished">从金额中减去交易费(&amp;U)</translation>
+    </message>
+    <message>
+        <source>Use available balance</source>
+        <translation type="unfinished">使用全部可用余额</translation>
+    </message>
+    <message>
+        <source>Message:</source>
+        <translation type="unfinished">消息:</translation>
+    </message>
+    <message>
+        <source>This is an unauthenticated payment request.</source>
+        <translation type="unfinished">这是一个未经验证的支付请求。</translation>
+    </message>
+    <message>
+        <source>This is an authenticated payment request.</source>
+        <translation type="unfinished">这是一个已经验证的支付请求。</translation>
+    </message>
+    <message>
+        <source>Enter a label for this address to add it to the list of used addresses</source>
+        <translation type="unfinished">请为此地址输入一个标签以将它加入已用地址列表</translation>
+    </message>
+    <message>
+        <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source>
+        <translation type="unfinished">bitcoin: URI 附带的备注信息，将会和交易一起存储，备查。 注意：该消息不会通过比特币网络传输。</translation>
+    </message>
+    <message>
+        <source>Pay To:</source>
+        <translation type="unfinished">支付给:</translation>
+    </message>
+    <message>
+        <source>Memo:</source>
+        <translation type="unfinished">附言:</translation>
+    </message>
+</context>
+<context>
+    <name>SendConfirmationDialog</name>
+    <message>
+        <source>Send</source>
+        <translation type="unfinished">发送</translation>
+    </message>
+    <message>
+        <source>Create Unsigned</source>
+        <translation type="unfinished">创建未签名交易</translation>
+    </message>
+</context>
+<context>
+    <name>SignVerifyMessageDialog</name>
+    <message>
+        <source>Signatures - Sign / Verify a Message</source>
+        <translation type="unfinished">签名 - 为消息签名/验证签名消息</translation>
+    </message>
+    <message>
+        <source>&amp;Sign Message</source>
+        <translation type="unfinished">消息签名(&amp;S)</translation>
+    </message>
+    <message>
+        <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
+        <translation type="unfinished">您可以用你的地址对消息/协议进行签名，以证明您可以接收发送到该地址的比特币。注意不要对任何模棱两可或者随机的消息进行签名，以免遭受钓鱼式攻击。请确保消息内容准确的表达了您的真实意愿。</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address to sign the message with</source>
+        <translation type="unfinished">用来对消息签名的地址</translation>
+    </message>
+    <message>
+        <source>Choose previously used address</source>
+        <translation type="unfinished">选择以前用过的地址</translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">从剪贴板粘贴地址</translation>
+    </message>
+    <message>
+        <source>Enter the message you want to sign here</source>
+        <translation type="unfinished">在这里输入您想要签名的消息</translation>
+    </message>
+    <message>
+        <source>Signature</source>
+        <translation type="unfinished">签名</translation>
+    </message>
+    <message>
+        <source>Copy the current signature to the system clipboard</source>
+        <translation type="unfinished">复制当前签名至剪贴板</translation>
+    </message>
+    <message>
+        <source>Sign the message to prove you own this Bitcoin address</source>
+        <translation type="unfinished">签名消息，以证明这个地址属于您</translation>
+    </message>
+    <message>
+        <source>Sign &amp;Message</source>
+        <translation type="unfinished">签名消息(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Reset all sign message fields</source>
+        <translation type="unfinished">清空所有签名消息栏</translation>
+    </message>
+    <message>
+        <source>Clear &amp;All</source>
+        <translation type="unfinished">清除所有(&amp;A)</translation>
+    </message>
+    <message>
+        <source>&amp;Verify Message</source>
+        <translation type="unfinished">消息验证(&amp;V)</translation>
+    </message>
+    <message>
+        <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source>
+        <translation type="unfinished">请在下面输入接收者地址、消息（确保换行符、空格符、制表符等完全相同）和签名以验证消息。请仔细核对签名信息，以提防中间人攻击。请注意，这只是证明接收方可以用这个地址签名，它不能证明任何交易的发送人身份！</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address the message was signed with</source>
+        <translation type="unfinished">用来签名消息的地址</translation>
+    </message>
+    <message>
+        <source>The signed message to verify</source>
+        <translation type="unfinished">待验证的已签名消息</translation>
+    </message>
+    <message>
+        <source>The signature given when the message was signed</source>
+        <translation type="unfinished">对消息进行签署得到的签名数据</translation>
+    </message>
+    <message>
+        <source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
+        <translation type="unfinished">验证消息，确保消息是由指定的比特币地址签名过的。</translation>
+    </message>
+    <message>
+        <source>Verify &amp;Message</source>
+        <translation type="unfinished">验证消息签名(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Reset all verify message fields</source>
+        <translation type="unfinished">清空所有验证消息栏</translation>
+    </message>
+    <message>
+        <source>Click "Sign Message" to generate signature</source>
+        <translation type="unfinished">单击“签名消息“产生签名。</translation>
+    </message>
+    <message>
+        <source>The entered address is invalid.</source>
+        <translation type="unfinished">输入的地址无效。</translation>
+    </message>
+    <message>
+        <source>Please check the address and try again.</source>
+        <translation type="unfinished">请检查地址后重试。</translation>
+    </message>
+    <message>
+        <source>The entered address does not refer to a key.</source>
+        <translation type="unfinished">找不到与输入地址相关的密钥。</translation>
+    </message>
+    <message>
+        <source>Wallet unlock was cancelled.</source>
+        <translation type="unfinished">已取消解锁钱包。</translation>
+    </message>
+    <message>
+        <source>No error</source>
+        <translation type="unfinished">没有错误</translation>
+    </message>
+    <message>
+        <source>Private key for the entered address is not available.</source>
+        <translation type="unfinished">找不到输入地址关联的私钥。</translation>
+    </message>
+    <message>
+        <source>Message signing failed.</source>
+        <translation type="unfinished">消息签名失败。</translation>
+    </message>
+    <message>
+        <source>Message signed.</source>
+        <translation type="unfinished">消息已签名。</translation>
+    </message>
+    <message>
+        <source>The signature could not be decoded.</source>
+        <translation type="unfinished">签名无法解码。</translation>
+    </message>
+    <message>
+        <source>Please check the signature and try again.</source>
+        <translation type="unfinished">请检查签名后重试。</translation>
+    </message>
+    <message>
+        <source>The signature did not match the message digest.</source>
+        <translation type="unfinished">签名与消息摘要不匹配。</translation>
+    </message>
+    <message>
+        <source>Message verification failed.</source>
+        <translation type="unfinished">消息验证失败。</translation>
+    </message>
+    <message>
+        <source>Message verified.</source>
+        <translation type="unfinished">消息验证成功。</translation>
+    </message>
+</context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>(press q to shutdown and continue later)</source>
+        <translation type="unfinished">(按q退出并在以后继续)</translation>
+    </message>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">按q键关闭并退出</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDesc</name>
+    <message>
+        <source>conflicted with a transaction with %1 confirmations</source>
+        <translation type="unfinished">与一个有 %1 个确认的交易冲突</translation>
+    </message>
+    <message>
+        <source>0/unconfirmed, %1</source>
+        <translation type="unfinished">0/未确认，%1</translation>
+    </message>
+    <message>
+        <source>in memory pool</source>
+        <translation type="unfinished">在内存池中</translation>
+    </message>
+    <message>
+        <source>not in memory pool</source>
+        <translation type="unfinished">不在内存池中</translation>
+    </message>
+    <message>
+        <source>abandoned</source>
+        <translation type="unfinished">已丢弃</translation>
+    </message>
+    <message>
+        <source>%1/unconfirmed</source>
+        <translation type="unfinished">%1/未确认</translation>
+    </message>
+    <message>
+        <source>%1 confirmations</source>
+        <translation type="unfinished">%1 个确认</translation>
+    </message>
+    <message>
+        <source>Status</source>
+        <translation type="unfinished">状态</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">日期</translation>
+    </message>
+    <message>
+        <source>Source</source>
+        <translation type="unfinished">来源</translation>
+    </message>
+    <message>
+        <source>Generated</source>
+        <translation type="unfinished">挖矿生成</translation>
+    </message>
+    <message>
+        <source>From</source>
+        <translation type="unfinished">来自</translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished">未知</translation>
+    </message>
+    <message>
+        <source>To</source>
+        <translation type="unfinished">到</translation>
+    </message>
+    <message>
+        <source>own address</source>
+        <translation type="unfinished">自己的地址</translation>
+    </message>
+    <message>
+        <source>watch-only</source>
+        <translation type="unfinished">仅观察:</translation>
+    </message>
+    <message>
+        <source>label</source>
+        <translation type="unfinished">标签</translation>
+    </message>
+    <message>
+        <source>Credit</source>
+        <translation type="unfinished">收入</translation>
+    </message>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform>matures in %n more block(s)</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>not accepted</source>
+        <translation type="unfinished">未被接受</translation>
+    </message>
+    <message>
+        <source>Debit</source>
+        <translation type="unfinished">支出</translation>
+    </message>
+    <message>
+        <source>Total debit</source>
+        <translation type="unfinished">总支出</translation>
+    </message>
+    <message>
+        <source>Total credit</source>
+        <translation type="unfinished">总收入</translation>
+    </message>
+    <message>
+        <source>Transaction fee</source>
+        <translation type="unfinished">交易手续费</translation>
+    </message>
+    <message>
+        <source>Net amount</source>
+        <translation type="unfinished">净额</translation>
+    </message>
+    <message>
+        <source>Message</source>
+        <translation type="unfinished">消息</translation>
+    </message>
+    <message>
+        <source>Comment</source>
+        <translation type="unfinished">备注</translation>
+    </message>
+    <message>
+        <source>Transaction ID</source>
+        <translation type="unfinished">交易 ID</translation>
+    </message>
+    <message>
+        <source>Transaction total size</source>
+        <translation type="unfinished">交易总大小</translation>
+    </message>
+    <message>
+        <source>Transaction virtual size</source>
+        <translation type="unfinished">交易虚拟大小</translation>
+    </message>
+    <message>
+        <source>Output index</source>
+        <translation type="unfinished">输出索引</translation>
+    </message>
+    <message>
+        <source> (Certificate was not verified)</source>
+        <translation type="unfinished">(证书未被验证)</translation>
+    </message>
+    <message>
+        <source>Merchant</source>
+        <translation type="unfinished">商家</translation>
+    </message>
+    <message>
+        <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+        <translation type="unfinished">新挖出的比特币在可以使用前必须经过 %1 个区块确认的成熟过程。当您挖出此区块后，它将被广播到网络中以加入区块链。如果它未成功进入区块链，其状态将变更为“不接受”并且不可使用。这可能偶尔会发生，在另一个节点比你早几秒钟成功挖出一个区块时就会这样。</translation>
+    </message>
+    <message>
+        <source>Debug information</source>
+        <translation type="unfinished">调试信息</translation>
+    </message>
+    <message>
+        <source>Transaction</source>
+        <translation type="unfinished">交易</translation>
+    </message>
+    <message>
+        <source>Inputs</source>
+        <translation type="unfinished">输入</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">金额</translation>
+    </message>
+    <message>
+        <source>true</source>
+        <translation type="unfinished">是</translation>
+    </message>
+    <message>
+        <source>false</source>
+        <translation type="unfinished">否</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDescDialog</name>
+    <message>
+        <source>This pane shows a detailed description of the transaction</source>
+        <translation type="unfinished">当前面板显示了交易的详细信息</translation>
+    </message>
+    <message>
+        <source>Details for %1</source>
+        <translation type="unfinished">%1 详情</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">日期</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">类型</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">标签</translation>
+    </message>
+    <message>
+        <source>Unconfirmed</source>
+        <translation type="unfinished">未确认</translation>
+    </message>
+    <message>
+        <source>Abandoned</source>
+        <translation type="unfinished">已丢弃</translation>
+    </message>
+    <message>
+        <source>Confirming (%1 of %2 recommended confirmations)</source>
+        <translation type="unfinished">确认中 (推荐 %2个确认，已经有 %1个确认)</translation>
+    </message>
+    <message>
+        <source>Confirmed (%1 confirmations)</source>
+        <translation type="unfinished">已确认 (%1 个确认)</translation>
+    </message>
+    <message>
+        <source>Conflicted</source>
+        <translation type="unfinished">有冲突</translation>
+    </message>
+    <message>
+        <source>Immature (%1 confirmations, will be available after %2)</source>
+        <translation type="unfinished">未成熟 (%1 个确认，将在 %2 个后可用)</translation>
+    </message>
+    <message>
+        <source>Generated but not accepted</source>
+        <translation type="unfinished">已生成但未被接受</translation>
+    </message>
+    <message>
+        <source>Received with</source>
+        <translation type="unfinished">接收到</translation>
+    </message>
+    <message>
+        <source>Received from</source>
+        <translation type="unfinished">接收自</translation>
+    </message>
+    <message>
+        <source>Sent to</source>
+        <translation type="unfinished">发送到</translation>
+    </message>
+    <message>
+        <source>Payment to yourself</source>
+        <translation type="unfinished">支付给自己</translation>
+    </message>
+    <message>
+        <source>Mined</source>
+        <translation type="unfinished">挖矿所得</translation>
+    </message>
+    <message>
+        <source>watch-only</source>
+        <translation type="unfinished">仅观察:</translation>
+    </message>
+    <message>
+        <source>(n/a)</source>
+        <translation type="unfinished">(不可用)</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(无标签)</translation>
+    </message>
+    <message>
+        <source>Transaction status. Hover over this field to show number of confirmations.</source>
+        <translation type="unfinished">交易状态。 鼠标移到此区域可显示确认数。</translation>
+    </message>
+    <message>
+        <source>Date and time that the transaction was received.</source>
+        <translation type="unfinished">交易被接收的时间和日期。</translation>
+    </message>
+    <message>
+        <source>Type of transaction.</source>
+        <translation type="unfinished">交易类型。</translation>
+    </message>
+    <message>
+        <source>Whether or not a watch-only address is involved in this transaction.</source>
+        <translation type="unfinished">该交易中是否涉及仅观察地址。</translation>
+    </message>
+    <message>
+        <source>User-defined intent/purpose of the transaction.</source>
+        <translation type="unfinished">用户自定义的该交易的意图/目的。</translation>
+    </message>
+    <message>
+        <source>Amount removed from or added to balance.</source>
+        <translation type="unfinished">从余额增加或移除的金额。</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionView</name>
+    <message>
+        <source>All</source>
+        <translation type="unfinished">全部</translation>
+    </message>
+    <message>
+        <source>Today</source>
+        <translation type="unfinished">今天</translation>
+    </message>
+    <message>
+        <source>This week</source>
+        <translation type="unfinished">本周</translation>
+    </message>
+    <message>
+        <source>This month</source>
+        <translation type="unfinished">本月</translation>
+    </message>
+    <message>
+        <source>Last month</source>
+        <translation type="unfinished">上个月</translation>
+    </message>
+    <message>
+        <source>This year</source>
+        <translation type="unfinished">今年</translation>
+    </message>
+    <message>
+        <source>Received with</source>
+        <translation type="unfinished">接收到</translation>
+    </message>
+    <message>
+        <source>Sent to</source>
+        <translation type="unfinished">发送到</translation>
+    </message>
+    <message>
+        <source>To yourself</source>
+        <translation type="unfinished">给自己</translation>
+    </message>
+    <message>
+        <source>Mined</source>
+        <translation type="unfinished">挖矿所得</translation>
+    </message>
+    <message>
+        <source>Other</source>
+        <translation type="unfinished">其它</translation>
+    </message>
+    <message>
+        <source>Enter address, transaction id, or label to search</source>
+        <translation type="unfinished">输入地址、交易ID或标签进行搜索</translation>
+    </message>
+    <message>
+        <source>Min amount</source>
+        <translation type="unfinished">最小金额</translation>
+    </message>
+    <message>
+        <source>Range…</source>
+        <translation type="unfinished">范围...</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">复制地址(&amp;C)</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">复制标签(&amp;L)</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">复制金额(&amp;A)</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">复制交易 &amp;ID</translation>
+    </message>
+    <message>
+        <source>Copy &amp;raw transaction</source>
+        <translation type="unfinished">复制原始交易(&amp;R)</translation>
+    </message>
+    <message>
+        <source>Copy full transaction &amp;details</source>
+        <translation type="unfinished">复制完整交易详情(&amp;D)</translation>
+    </message>
+    <message>
+        <source>&amp;Show transaction details</source>
+        <translation type="unfinished">显示交易详情(&amp;S)</translation>
+    </message>
+    <message>
+        <source>Increase transaction &amp;fee</source>
+        <translation type="unfinished">增加矿工费(&amp;F)</translation>
+    </message>
+    <message>
+        <source>A&amp;bandon transaction</source>
+        <translation type="unfinished">放弃交易(&amp;B)</translation>
+    </message>
+    <message>
+        <source>&amp;Edit address label</source>
+        <translation type="unfinished">编辑地址标签(&amp;E)</translation>
+    </message>
+    <message>
+        <source>Show in %1</source>
+        <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
+        <translation type="unfinished">在 %1中显示</translation>
+    </message>
+    <message>
+        <source>Export Transaction History</source>
+        <translation type="unfinished">导出交易历史</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">逗号分隔文件</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">已确认</translation>
+    </message>
+    <message>
+        <source>Watch-only</source>
+        <translation type="unfinished">仅观察</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">日期</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">类型</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">标签</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation type="unfinished">地址</translation>
+    </message>
+    <message>
+        <source>Exporting Failed</source>
+        <translation type="unfinished">导出失败</translation>
+    </message>
+    <message>
+        <source>There was an error trying to save the transaction history to %1.</source>
+        <translation type="unfinished">尝试把交易历史保存到 %1 时发生了错误。</translation>
+    </message>
+    <message>
+        <source>Exporting Successful</source>
+        <translation type="unfinished">导出成功</translation>
+    </message>
+    <message>
+        <source>The transaction history was successfully saved to %1.</source>
+        <translation type="unfinished">已成功将交易历史保存到 %1。</translation>
+    </message>
+    <message>
+        <source>Range:</source>
+        <translation type="unfinished">范围:</translation>
+    </message>
+    <message>
+        <source>to</source>
+        <translation type="unfinished">到</translation>
+    </message>
+</context>
+<context>
+    <name>WalletFrame</name>
+    <message>
+        <source>No wallet has been loaded.
+Go to File &gt; Open Wallet to load a wallet.
+- OR -</source>
+        <translation type="unfinished">未加载钱包。
+请转到“文件”菜单 &gt; “打开钱包”来加载一个钱包。
+- 或者 -</translation>
+    </message>
+    <message>
+        <source>Create a new wallet</source>
+        <translation type="unfinished">创建一个新的钱包</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">错误</translation>
+    </message>
+    <message>
+        <source>Unable to decode PSBT from clipboard (invalid base64)</source>
+        <translation type="unfinished">无法从剪贴板解码PSBT(Base64值无效)</translation>
+    </message>
+    <message>
+        <source>Load Transaction Data</source>
+        <translation type="unfinished">加载交易数据</translation>
+    </message>
+    <message>
+        <source>Partially Signed Transaction (*.psbt)</source>
+        <translation type="unfinished">部分签名交易 (*.psbt)</translation>
+    </message>
+    <message>
+        <source>PSBT file must be smaller than 100 MiB</source>
+        <translation type="unfinished">PSBT文件必须小于100MiB</translation>
+    </message>
+    <message>
+        <source>Unable to decode PSBT</source>
+        <translation type="unfinished">无法解码PSBT</translation>
+    </message>
+</context>
+<context>
+    <name>WalletModel</name>
+    <message>
+        <source>Send Coins</source>
+        <translation type="unfinished">发币</translation>
+    </message>
+    <message>
+        <source>Fee bump error</source>
+        <translation type="unfinished">追加手续费出错</translation>
+    </message>
+    <message>
+        <source>Increasing transaction fee failed</source>
+        <translation type="unfinished">追加交易手续费失败</translation>
+    </message>
+    <message>
+        <source>Do you want to increase the fee?</source>
+        <extracomment>Asks a user if they would like to manually increase the fee of a transaction that has already been created.</extracomment>
+        <translation type="unfinished">您想追加手续费吗？</translation>
+    </message>
+    <message>
+        <source>Current fee:</source>
+        <translation type="unfinished">当前手续费:</translation>
+    </message>
+    <message>
+        <source>Increase:</source>
+        <translation type="unfinished">增加量:</translation>
+    </message>
+    <message>
+        <source>New fee:</source>
+        <translation type="unfinished">新交易费:</translation>
+    </message>
+    <message>
+        <source>Warning: This may pay the additional fee by reducing change outputs or adding inputs, when necessary. It may add a new change output if one does not already exist. These changes may potentially leak privacy.</source>
+        <translation type="unfinished">警告: 因为在必要的时候会减少找零输出个数或增加输入个数，这可能要付出额外的费用。在没有找零输出的情况下可能会新增一个。这些变更可能会导致潜在的隐私泄露。</translation>
+    </message>
+    <message>
+        <source>Confirm fee bump</source>
+        <translation type="unfinished">确认手续费追加</translation>
+    </message>
+    <message>
+        <source>Can't draft transaction.</source>
+        <translation type="unfinished">无法起草交易。</translation>
+    </message>
+    <message>
+        <source>PSBT copied</source>
+        <translation type="unfinished">已复制PSBT</translation>
+    </message>
+    <message>
+        <source>Can't sign transaction.</source>
+        <translation type="unfinished">无法签名交易</translation>
+    </message>
+    <message>
+        <source>Could not commit transaction</source>
+        <translation type="unfinished">无法提交交易</translation>
+    </message>
+    <message>
+        <source>Can't display address</source>
+        <translation type="unfinished">无法显示地址</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">默认钱包</translation>
+    </message>
+</context>
+<context>
+    <name>WalletView</name>
+    <message>
+        <source>&amp;Export</source>
+        <translation type="unfinished">导出(&amp;E)</translation>
+    </message>
+    <message>
+        <source>Export the data in the current tab to a file</source>
+        <translation type="unfinished">将当前标签页数据导出到文件</translation>
+    </message>
+    <message>
+        <source>Backup Wallet</source>
+        <translation type="unfinished">备份钱包</translation>
+    </message>
+    <message>
+        <source>Wallet Data</source>
+        <extracomment>Name of the wallet data file format.</extracomment>
+        <translation type="unfinished">钱包数据</translation>
+    </message>
+    <message>
+        <source>Backup Failed</source>
+        <translation type="unfinished">备份失败</translation>
+    </message>
+    <message>
+        <source>There was an error trying to save the wallet data to %1.</source>
+        <translation type="unfinished">尝试保存钱包数据至 %1 时发生了错误。</translation>
+    </message>
+    <message>
+        <source>Backup Successful</source>
+        <translation type="unfinished">备份成功</translation>
+    </message>
+    <message>
+        <source>The wallet data was successfully saved to %1.</source>
+        <translation type="unfinished">已成功保存钱包数据至 %1。</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">取消</translation>
+    </message>
+</context>
 </TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_zh.ts b/src/qt/locale/bitcoin_zh.ts
index a91486f7571..e1352c12749 100644
--- a/src/qt/locale/bitcoin_zh.ts
+++ b/src/qt/locale/bitcoin_zh.ts
@@ -1,6 +1,16 @@
 <TS version="2.1" language="zh">
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">要将设置重置为默认值，还是不做任何更改就中止?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">发生了一个致命错误。检查设置文件是否可写，或者尝试使用-nosettings运行。</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
@@ -38,6 +48,17 @@
         </translation>
     </message>
     </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">无法读取设置文件</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">无法写入设置文件</translation>
+    </message>
+    </context>
 <context>
     <name>BitcoinGUI</name>
     <message>
diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts
index 0713c3c0c23..67fbfc44435 100644
--- a/src/qt/locale/bitcoin_zh_CN.ts
+++ b/src/qt/locale/bitcoin_zh_CN.ts
@@ -3,11 +3,11 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">鼠标右击编辑地址或标签</translation>
+        <translation type="unfinished">单击鼠标右键编辑地址或标签</translation>
     </message>
     <message>
         <source>Create a new address</source>
-        <translation type="unfinished">创建新地址</translation>
+        <translation type="unfinished">添加新地址</translation>
     </message>
     <message>
         <source>&amp;New</source>
@@ -27,11 +27,11 @@
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
-        <translation type="unfinished">从列表中删除选中的地址</translation>
+        <translation type="unfinished">从列表中删除当前选中的地址</translation>
     </message>
     <message>
         <source>Enter address or label to search</source>
-        <translation type="unfinished">输入地址或标签来搜索</translation>
+        <translation type="unfinished">输入地址或标签用来搜索</translation>
     </message>
     <message>
         <source>Export the data in the current tab to a file</source>
@@ -73,7 +73,7 @@
         <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
 Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">这是您用来收款的比特币地址。使用“接收”标签页中的“创建新收款地址”按钮来创建新的收款地址。
-只有“传统（legacy）”类型的地址支持签名。</translation>
+只有“合法”类型的地址支持签名。</translation>
     </message>
     <message>
         <source>&amp;Copy Address</source>
@@ -376,31 +376,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
-            <numerusform>%n秒</numerusform>
+            <numerusform>%n second(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n minute(s)</source>
         <translation type="unfinished">
-            <numerusform>%n分钟</numerusform>
+            <numerusform>%n minute(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n hour(s)</source>
         <translation type="unfinished">
-            <numerusform>%n小时</numerusform>
+            <numerusform>%n hour(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n day(s)</source>
         <translation type="unfinished">
-            <numerusform>%n天</numerusform>
+            <numerusform>%n day(s)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>%n week(s)</source>
         <translation type="unfinished">
-            <numerusform>%n周</numerusform>
+            <numerusform>%n week(s)</numerusform>
         </translation>
     </message>
     <message>
@@ -410,7 +410,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
-            <numerusform>%n年</numerusform>
+            <numerusform>%n year(s)</numerusform>
         </translation>
     </message>
     <message>
@@ -502,7 +502,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>More than one onion bind address is provided. Using %s for the automatically created Tor onion service.</source>
-        <translation type="unfinished">提供了多个 onion (洋葱路由)绑定地址。将对自动创建的Tor onion服务使用%s。</translation>
+        <translation type="unfinished">提供多个洋葱路由绑定地址。对自动创建的洋葱服务用%s</translation>
     </message>
     <message>
         <source>No dump file provided. To use createfromdump, -dumpfile=&lt;filename&gt; must be provided.</source>
@@ -554,7 +554,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source>
-        <translation type="unfinished">这是测试用的预发布版本 - 请谨慎使用 - 不要在挖矿或正式商用环境下使用</translation>
+        <translation type="unfinished">这是测试用的预发布版本 - 请谨慎使用 - 不要用来挖矿，或者在正式商用环境下使用</translation>
     </message>
     <message>
         <source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source>
@@ -634,7 +634,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>%s request to listen on port %u. This port is considered "bad" and thus it is unlikely that any Bitcoin Core peers connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
-        <translation type="unfinished">%s请求监听端口%u。这个端口被认为是“坏的”，因此任何比特币核心节点都不太可能连接到它。有关详细信息和完整列表，请参见 doc/p2p-bad-ports.md</translation>
+        <translation type="unfinished">%s请求监听端口 %u。这个端口被认为是“坏的”，所以不太可能有Bitcoin Core节点会连接到它。有关详细信息和完整列表，请参见 doc/p2p-bad-ports.md 。</translation>
     </message>
     <message>
         <source>Cannot provide specific connections and have addrman find outgoing connections at the same time.</source>
@@ -650,7 +650,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided (no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)</source>
-        <translation type="unfinished">出站连接仅限于 Tor (-onlynet=onion)，但是未提供到达 Tor 网络的代理（no -proxy= and no -onion= given）或者被明确禁止 (-onion=0)</translation>
+        <translation type="unfinished">出站连接被限制为仅使用 Tor (-onlynet=onion)，但是未提供到达 Tor 网络的代理（没有提供 -proxy= 和 -onion= 参数）或者被显式禁止 (-onion=0)</translation>
     </message>
     <message>
         <source>Config setting for %s only applied on %s network when in [%s] section.</source>
@@ -1430,7 +1430,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform>%n 条到比特币网络的活动连接。</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
         </translation>
     </message>
     <message>
@@ -1958,7 +1958,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(sufficient to restore backups %n day(s) old)</source>
         <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
         <translation type="unfinished">
-            <numerusform>(足以恢复 %n 天之内的备份)</numerusform>
+            <numerusform>(sufficient to restore backups %n day(s) old)</numerusform>
         </translation>
     </message>
     <message>
@@ -1991,7 +1991,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source>
-        <translation type="unfinished">当你单击确认后，%1 将会在 %4 启动时从  %3 中最早的交易开始，下载并处理完整的 %4 区块链 (%2GB)。</translation>
+        <translation type="unfinished">当你单击确认后，%1 将会从%4在 %3 年创始时最早的交易开始，下载并处理完整的 %4 区块链 (%2GB)。</translation>
     </message>
     <message>
         <source>Limit block chain storage to</source>
@@ -3748,7 +3748,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">
-            <numerusform>预计可在%n个区块内开始确认。</numerusform>
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
         </translation>
     </message>
     <message>
@@ -3918,7 +3918,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     </message>
     <message>
         <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source>
-        <translation type="unfinished">请在下面输入接收者地址、消息（确保换行符、空格符、制表符等完全相同）和签名以验证消息。请仔细核对签名信息，以提防中间人攻击。请注意，这只是证明接收方可以用这个地址签名，它不能证明任何交易！</translation>
+        <translation type="unfinished">请在下面输入接收者地址、消息（确保换行符、空格符、制表符等完全相同）和签名以验证消息。请仔细核对签名信息，以提防中间人攻击。请注意，这只是证明接收方可以用这个地址签名，它不能证明任何交易的发送人身份！</translation>
     </message>
     <message>
         <source>The Bitcoin address the message was signed with</source>
@@ -4089,7 +4089,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message numerus="yes">
         <source>matures in %n more block(s)</source>
         <translation type="unfinished">
-            <numerusform>还差 %n 个区块才能成熟</numerusform>
+            <numerusform>matures in %n more block(s)</numerusform>
         </translation>
     </message>
     <message>
@@ -4388,7 +4388,7 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
     <message>
         <source>Show in %1</source>
         <extracomment>Transactions table context menu action to show the selected transaction in a third-party block explorer. %1 is a stand-in argument for the URL of the explorer.</extracomment>
-        <translation type="unfinished">在%1中显示</translation>
+        <translation type="unfinished">在 %1中显示</translation>
     </message>
     <message>
         <source>Export Transaction History</source>
diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts
index 3154b58d909..9d186230c2c 100644
--- a/src/qt/locale/bitcoin_zh_TW.ts
+++ b/src/qt/locale/bitcoin_zh_TW.ts
@@ -35,7 +35,7 @@
     </message>
     <message>
         <source>&amp;Export</source>
-        <translation type="unfinished">匯出(&amp;E)</translation>
+        <translation type="unfinished">&amp;匯出</translation>
     </message>
     <message>
         <source>&amp;Delete</source>
@@ -236,13 +236,31 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">失控異常</translation>
+    </message>
     <message>
         <source>Internal error</source>
         <translation type="unfinished">內部錯誤</translation>
     </message>
-    </context>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">發生了內部錯誤%1 將嘗試安全地繼續。 這是一個意外錯誤，可以按如下所述進行報告。</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">您想將設置重置為預設值，還是在不進行更改的情況下中止？</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">發生致命錯誤。檢查設置文件是否可寫入，或嘗試運行 -nosettings</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">错误：指定的数据目录“%1”不存在。</translation>
@@ -255,6 +273,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Error: %1</source>
         <translation type="unfinished">错误：%1</translation>
     </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1還沒有安全退出……</translation>
+    </message>
     <message>
         <source>unknown</source>
         <translation type="unfinished">未知</translation>
@@ -364,6 +386,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">設定檔案無法讀取</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">設定檔案無法寫入</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">%s 開發人員</translation>
@@ -564,6 +594,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Failed to rescan the wallet during initialization</source>
         <translation type="unfinished">初始化時重新掃描錢包失敗了</translation>
     </message>
+    <message>
+        <source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source>
+        <translation type="unfinished">手續費費率(%s) 低於最低費率設置（%s)</translation>
+    </message>
+    <message>
+        <source>Importing…</source>
+        <translation type="unfinished">匯入中...</translation>
+    </message>
     <message>
         <source>Incorrect or no genesis block found. Wrong datadir for network?</source>
         <translation type="unfinished">創世區塊不正確或找不到。資料目錄錯了嗎？</translation>
@@ -572,6 +610,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Initialization sanity check failed. %s is shutting down.</source>
         <translation type="unfinished">初始化時的基本檢查失敗了。%s 就要關閉了。</translation>
     </message>
+    <message>
+        <source>Input not found or already spent</source>
+        <translation type="unfinished">找不到交易項，或可能已經花掉了</translation>
+    </message>
     <message>
         <source>Insufficient funds</source>
         <translation type="unfinished">累積金額不足</translation>
@@ -590,28 +632,56 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>Invalid amount for -%s=&lt;amount&gt;: '%s'</source>
-        <translation type="unfinished">參數 -%s=&lt;金額&gt; 指定的金額無效: '%s'</translation>
+        <translation type="unfinished">無效金額給 -%s=&lt;amount&gt;:'%s'</translation>
     </message>
     <message>
         <source>Invalid amount for -discardfee=&lt;amount&gt;: '%s'</source>
-        <translation type="unfinished">設定 -discardfee=&lt;金額&gt; 的金額無效: '%s'</translation>
+        <translation type="unfinished">無效金額給 -丟棄費=&lt;amount&gt;; '%s' </translation>
     </message>
     <message>
         <source>Invalid amount for -fallbackfee=&lt;amount&gt;: '%s'</source>
-        <translation type="unfinished">設定 -fallbackfee=&lt;金額&gt; 的金額無效: '%s'</translation>
+        <translation type="unfinished">無效金額給 -後備費用=&lt;amount&gt;: '%s'</translation>
     </message>
     <message>
         <source>Invalid amount for -paytxfee=&lt;amount&gt;: '%s' (must be at least %s)</source>
-        <translation type="unfinished">設定 -paytxfee=&lt;金額&gt; 的金額無效: '%s' (至少要有 %s)</translation>
+        <translation type="unfinished">無效金額給 -支付費用&lt;amount&gt;:'%s' (必須至少%s)</translation>
     </message>
     <message>
         <source>Invalid netmask specified in -whitelist: '%s'</source>
         <translation type="unfinished">指定在 -whitelist 的網段無效: '%s'</translation>
     </message>
+    <message>
+        <source>Loading P2P addresses…</source>
+        <translation type="unfinished">載入P2P地址中...</translation>
+    </message>
+    <message>
+        <source>Loading banlist…</source>
+        <translation type="unfinished">正在載入黑名單中...</translation>
+    </message>
+    <message>
+        <source>Loading block index…</source>
+        <translation type="unfinished">載入區塊索引中...</translation>
+    </message>
+    <message>
+        <source>Loading wallet…</source>
+        <translation type="unfinished">載入錢包中...</translation>
+    </message>
+    <message>
+        <source>Missing amount</source>
+        <translation type="unfinished">缺少金額</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">缺少用於估計交易規模的求解數據</translation>
+    </message>
     <message>
         <source>Need to specify a port with -whitebind: '%s'</source>
         <translation type="unfinished">指定 -whitebind 時必須包含通訊埠: '%s'</translation>
     </message>
+    <message>
+        <source>No addresses available</source>
+        <translation type="unfinished">沒有可用的地址</translation>
+    </message>
     <message>
         <source>No proxy server specified. Use -proxy=&lt;ip&gt; or -proxy=&lt;ip:port&gt;.</source>
         <translation type="unfinished">未指定代理伺服器。使用-proxy = &lt;ip&gt;或-proxy = &lt;ip:port&gt;。</translation>
@@ -624,14 +694,30 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Prune cannot be configured with a negative value.</source>
         <translation type="unfinished">修剪值不能設定為負的。</translation>
     </message>
+    <message>
+        <source>Prune mode is incompatible with -coinstatsindex.</source>
+        <translation type="unfinished">修剪模式和 -硬幣統計指數 不相容</translation>
+    </message>
     <message>
         <source>Prune mode is incompatible with -txindex.</source>
         <translation type="unfinished">修剪模式和 -txindex 參數不相容。</translation>
     </message>
+    <message>
+        <source>Pruning blockstore…</source>
+        <translation type="unfinished">修剪區塊資料庫中...</translation>
+    </message>
     <message>
         <source>Reducing -maxconnections from %d to %d, because of system limitations.</source>
         <translation type="unfinished">因為系統的限制，將 -maxconnections 參數從 %d 降到了 %d</translation>
     </message>
+    <message>
+        <source>Replaying blocks…</source>
+        <translation type="unfinished">正在對區塊進行重新計算...</translation>
+    </message>
+    <message>
+        <source>Rescanning…</source>
+        <translation type="unfinished">重新掃描中...</translation>
+    </message>
     <message>
         <source>Section [%s] is not recognized.</source>
         <translation type="unfinished">无法识别配置章节 [%s]。</translation>
@@ -656,10 +742,18 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Specified blocks directory "%s" does not exist.</source>
         <translation type="unfinished">指定的區塊目錄 "%s" 不存在。</translation>
     </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">正在開始網路線程...</translation>
+    </message>
     <message>
         <source>The source code is available from %s.</source>
         <translation type="unfinished">原始碼可以在 %s 取得。</translation>
     </message>
+    <message>
+        <source>The specified config file %s does not exist</source>
+        <translation type="unfinished">這個指定的配置檔案%s不存在</translation>
+    </message>
     <message>
         <source>The transaction amount is too small to pay the fee</source>
         <translation type="unfinished">交易金額太少而付不起手續費</translation>
@@ -688,6 +782,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction amounts must not be negative</source>
         <translation type="unfinished">交易金額不能是負的</translation>
     </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">交易尋找零輸出項超出範圍</translation>
+    </message>
     <message>
         <source>Transaction has too long of a mempool chain</source>
         <translation type="unfinished">交易造成記憶池中的交易鏈太長</translation>
@@ -696,6 +794,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Transaction must have at least one recipient</source>
         <translation type="unfinished">交易必須至少有一個收款人</translation>
     </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">需要交易一個找零地址，但是我們無法生成它。</translation>
+    </message>
     <message>
         <source>Transaction too large</source>
         <translation type="unfinished">交易位元量太大</translation>
@@ -720,6 +822,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unable to generate keys</source>
         <translation type="unfinished">沒辦法產生密鑰</translation>
     </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">無法開啟%s來寫入</translation>
+    </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">無法解析-最大上傳目標:'%s'</translation>
+    </message>
     <message>
         <source>Unable to start HTTP server. See debug log for details.</source>
         <translation type="unfinished">無法啟動 HTTP 伺服器。詳情請看除錯紀錄。</translation>
@@ -740,6 +850,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Unknown network specified in -onlynet: '%s'</source>
         <translation type="unfinished">在 -onlynet 指定了不明的網路別: '%s'</translation>
     </message>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished">未知的交易已經有新規則激活 (versionbit %i)</translation>
+    </message>
     <message>
         <source>Unsupported logging category %s=%s.</source>
         <translation type="unfinished">不支援的紀錄類別 %s=%s。</translation>
@@ -752,6 +866,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>User Agent comment (%s) contains unsafe characters.</source>
         <translation type="unfinished">使用者代理註解(%s)中含有不安全的字元。</translation>
     </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">正在驗證區塊數據...</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">正在驗證錢包...</translation>
+    </message>
     <message>
         <source>Wallet needed to be rewritten: restart %s to complete</source>
         <translation type="unfinished">錢包需要重寫: 請重新啓動 %s 來完成</translation>
@@ -832,22 +954,51 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Receive</source>
         <translation type="unfinished">&amp;接收</translation>
     </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;選項...</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;加密錢包...</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">將錢包中之密鑰加密</translation>
     </message>
     <message>
         <source>&amp;Backup Wallet…</source>
-        <translation type="unfinished">&amp;备用钱包...</translation>
+        <translation type="unfinished">&amp;備用錢包</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;更改密碼短語...</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">簽名 &amp;信息…</translation>
     </message>
     <message>
         <source>Sign messages with your Bitcoin addresses to prove you own them</source>
         <translation type="unfinished">用比特幣地址簽名訊息來證明位址是你的</translation>
     </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;驗證
+訊息...</translation>
+    </message>
     <message>
         <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
         <translation type="unfinished">驗證訊息是用來確定訊息是用指定的比特幣地址簽名的</translation>
     </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">&amp;從檔案載入PSBT...</translation>
+    </message>
+    <message>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">開啟 &amp;URI...</translation>
+    </message>
     <message>
         <source>Close Wallet…</source>
         <translation type="unfinished">关钱包...</translation>
@@ -876,6 +1027,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Tabs toolbar</source>
         <translation type="unfinished">分頁工具列</translation>
     </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">同步區塊頭 (%1%)…</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">正在與網絡同步…</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">索引磁盤上的索引塊中...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">處理磁碟裡的區塊中...</translation>
+    </message>
+    <message>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">正在重新索引磁盤上的區塊...</translation>
+    </message>
     <message>
         <source>Connecting to peers…</source>
         <translation type="unfinished">连到同行...</translation>
@@ -1000,7 +1171,7 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     <message>
         <source>&amp;Window</source>
-        <translation type="unfinished">視窗(&amp;W)</translation>
+        <translation type="unfinished">&amp;視窗</translation>
     </message>
     <message>
         <source>Zoom</source>
@@ -1025,6 +1196,26 @@ Signing is only possible with addresses of the type 'legacy'.</source>
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">點擊查看更多操作</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">顯示節點選項卡</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">關閉網路紀錄</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">關閉網路紀錄</translation>
+    </message>
     <message>
         <source>Error: %1</source>
         <translation type="unfinished">错误：%1</translation>
@@ -1195,6 +1386,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">复制和数量</translation>
     </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">鎖定未消費金額額</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">解鎖未花費金額</translation>
+    </message>
     <message>
         <source>Copy quantity</source>
         <translation type="unfinished">複製數目</translation>
@@ -1259,6 +1458,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
         <translation type="unfinished">新增錢包</translation>
     </message>
+    <message>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">正在創建錢包&lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
     <message>
         <source>Create wallet failed</source>
         <translation type="unfinished">創建錢包失敗&lt;br&gt;</translation>
@@ -3430,6 +3634,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Copy &amp;amount</source>
         <translation type="unfinished">复制和数量</translation>
     </message>
+    <message>
+        <source>Copy transaction &amp;ID</source>
+        <translation type="unfinished">复制交易 &amp;ID</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">匯出交易記錄</translation>
diff --git a/src/qt/locale/bitcoin_zu.ts b/src/qt/locale/bitcoin_zu.ts
index bcae817b161..6aba8e24493 100644
--- a/src/qt/locale/bitcoin_zu.ts
+++ b/src/qt/locale/bitcoin_zu.ts
@@ -71,6 +71,13 @@
         </translation>
     </message>
     </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Error: Missing checksum</source>
+        <translation type="unfinished">Iphutha: iChecksum engekho</translation>
+    </message>
+    </context>
 <context>
     <name>BitcoinGUI</name>
     <message>
@@ -166,6 +173,10 @@
     </context>
 <context>
     <name>SendCoinsDialog</name>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">Uphawu lwehlulekile</translation>
+    </message>
     <message numerus="yes">
         <source>Estimated to begin confirmation within %n block(s).</source>
         <translation type="unfinished">

From 0f4583e5c114e13c3c937f1832ab0c39751cf38c Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Wed, 17 Aug 2022 12:18:57 +0100
Subject: [PATCH 076/187] guix: use --build={arch}-guix-linux-gnu in cross
 toolchain

Technically we are always cross-compiling, so make that explicit.

Fixes: #22458.

Github-Pull: #25861
Rebased-From: 56e79fe683d36c1944e52326fae3bcc4cb7deec7
---
 contrib/guix/manifest.scm | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index b1de5330b99..0dcff1e43ea 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -78,6 +78,11 @@ http://www.linuxfromscratch.org/hlfs/view/development/chapter05/gcc-pass1.html"
                  (("-rpath=") "-rpath-link="))
                #t))))))))
 
+(define building-on (string-append (list-ref (string-split (%current-system) #\-) 0) "-guix-linux-gnu"))
+
+(define (explicit-cross-configure package)
+  (package-with-extra-configure-variable package "--build" building-on))
+
 (define (make-cross-toolchain target
                               base-gcc-for-libc
                               base-kernel-headers
@@ -87,9 +92,9 @@ http://www.linuxfromscratch.org/hlfs/view/development/chapter05/gcc-pass1.html"
   (let* ((xbinutils (cross-binutils target))
          ;; 1. Build a cross-compiling gcc without targeting any libc, derived
          ;; from BASE-GCC-FOR-LIBC
-         (xgcc-sans-libc (cross-gcc target
-                                    #:xgcc base-gcc-for-libc
-                                    #:xbinutils xbinutils))
+         (xgcc-sans-libc (explicit-cross-configure (cross-gcc target
+                                                              #:xgcc base-gcc-for-libc
+                                                              #:xbinutils xbinutils)))
          ;; 2. Build cross-compiled kernel headers with XGCC-SANS-LIBC, derived
          ;; from BASE-KERNEL-HEADERS
          (xkernel (cross-kernel-headers target
@@ -98,17 +103,17 @@ http://www.linuxfromscratch.org/hlfs/view/development/chapter05/gcc-pass1.html"
                                         xbinutils))
          ;; 3. Build a cross-compiled libc with XGCC-SANS-LIBC and XKERNEL,
          ;; derived from BASE-LIBC
-         (xlibc (cross-libc target
-                            base-libc
-                            xgcc-sans-libc
-                            xbinutils
-                            xkernel))
+         (xlibc (explicit-cross-configure (cross-libc target
+                                                      base-libc
+                                                      xgcc-sans-libc
+                                                      xbinutils
+                                                      xkernel)))
          ;; 4. Build a cross-compiling gcc targeting XLIBC, derived from
          ;; BASE-GCC
-         (xgcc (cross-gcc target
-                          #:xgcc base-gcc
-                          #:xbinutils xbinutils
-                          #:libc xlibc)))
+         (xgcc (explicit-cross-configure (cross-gcc target
+                                                    #:xgcc base-gcc
+                                                    #:xbinutils xbinutils
+                                                    #:libc xlibc))))
     ;; Define a meta-package that propagates the resulting XBINUTILS, XLIBC, and
     ;; XGCC
     (package

From e54a4deff85d079099c76fb63c128fa597834f75 Mon Sep 17 00:00:00 2001
From: John Moffett <john.moff@gmail.com>
Date: Tue, 15 Nov 2022 10:41:03 -0500
Subject: [PATCH 077/187] Fixes bitcoin#26490 by preventing notifications

MacOS 13 sends a window focus change notification after the main
window has been destroyed but before the QTApplication has been
destroyed. This results in the menu bar receiving a notification
despite it no longer existing. The solution is to pass the main
window as context when subscribing to the notifications. Qt
automatically unsubscribes to notifications if the sender OR
context is destroyed.

Github-Pull: bitcoin-core/gui#680
Rebased-From: 8a5014cd8a05b3ab86ae34a47653a82ce11bdf17
---
 src/qt/bitcoingui.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 548f77c74d1..9d730a40a57 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -476,7 +476,7 @@ void BitcoinGUI::createMenuBar()
     connect(minimize_action, &QAction::triggered, [] {
         QApplication::activeWindow()->showMinimized();
     });
-    connect(qApp, &QApplication::focusWindowChanged, [minimize_action] (QWindow* window) {
+    connect(qApp, &QApplication::focusWindowChanged, this, [minimize_action] (QWindow* window) {
         minimize_action->setEnabled(window != nullptr && (window->flags() & Qt::Dialog) != Qt::Dialog && window->windowState() != Qt::WindowMinimized);
     });
 
@@ -491,7 +491,7 @@ void BitcoinGUI::createMenuBar()
         }
     });
 
-    connect(qApp, &QApplication::focusWindowChanged, [zoom_action] (QWindow* window) {
+    connect(qApp, &QApplication::focusWindowChanged, this, [zoom_action] (QWindow* window) {
         zoom_action->setEnabled(window != nullptr);
     });
 #endif

From a1fcd565fff85f5652bf86504b416a615a2cb6d5 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 21 Nov 2022 10:19:41 +0000
Subject: [PATCH 078/187] doc: add 23.0 relase notes

---
 doc/release-notes/release-notes-23.0.md | 373 ++++++++++++++++++++++++
 1 file changed, 373 insertions(+)
 create mode 100644 doc/release-notes/release-notes-23.0.md

diff --git a/doc/release-notes/release-notes-23.0.md b/doc/release-notes/release-notes-23.0.md
new file mode 100644
index 00000000000..b1467a0f711
--- /dev/null
+++ b/doc/release-notes/release-notes-23.0.md
@@ -0,0 +1,373 @@
+23.0 Release Notes
+==================
+
+Bitcoin Core version 23.0 is now available from:
+
+  <https://bitcoincore.org/bin/bitcoin-core-23.0/>
+
+This release includes new features, various bug fixes and performance
+improvements, as well as updated translations.
+
+Please report bugs using the issue tracker at GitHub:
+
+  <https://github.com/bitcoin/bitcoin/issues>
+
+To receive security and update notifications, please subscribe to:
+
+  <https://bitcoincore.org/en/list/announcements/join/>
+
+How to Upgrade
+==============
+
+If you are running an older version, shut it down. Wait until it has completely
+shut down (which might take a few minutes in some cases), then run the
+installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac)
+or `bitcoind`/`bitcoin-qt` (on Linux).
+
+Upgrading directly from a version of Bitcoin Core that has reached its EOL is
+possible, but it might take some time if the data directory needs to be migrated. Old
+wallet versions of Bitcoin Core are generally supported.
+
+Compatibility
+==============
+
+Bitcoin Core is supported and extensively tested on operating systems
+using the Linux kernel, macOS 10.15+, and Windows 7 and newer.  Bitcoin
+Core should also work on most other Unix-like systems but is not as
+frequently tested on them.  It is not recommended to use Bitcoin Core on
+unsupported systems.
+
+Notable changes
+===============
+
+P2P and network changes
+-----------------------
+
+- A bitcoind node will no longer rumour addresses to inbound peers by default.
+  They will become eligible for address gossip after sending an ADDR, ADDRV2,
+  or GETADDR message. (#21528)
+
+- Before this release, Bitcoin Core had a strong preference to try to connect only to peers that listen on port 8333. As a result of that, Bitcoin nodes listening on non-standard ports would likely not get any Bitcoin Core peers connecting to them. This preference has been removed. (#23542)
+
+- Full support has been added for the CJDNS network. See the new option `-cjdnsreachable` and [doc/cjdns.md](https://github.com/bitcoin/bitcoin/tree/23.x/doc/cjdns.md) (#23077)
+
+Fee estimation changes
+----------------------
+
+- Fee estimation now takes the feerate of replacement (RBF) transactions into
+  account. (#22539)
+
+Rescan startup parameter removed
+--------------------------------
+
+The `-rescan` startup parameter has been removed. Wallets which require
+rescanning due to corruption will still be rescanned on startup.
+Otherwise, please use the `rescanblockchain` RPC to trigger a rescan. (#23123)
+
+Tracepoints and Userspace, Statically Defined Tracing support
+-------------------------------------------------------------
+
+Bitcoin Core release binaries for Linux now include experimental tracepoints which
+act as an interface for process-internal events. These can be used for review,
+debugging, monitoring, and more. The tracepoint API is semi-stable. While the API
+is tested, process internals might change between releases requiring changes to the
+tracepoints. Information about the existing tracepoints can be found under
+[doc/tracing.md](https://github.com/bitcoin/bitcoin/blob/23.x/doc/tracing.md) and
+usage examples are provided in [contrib/tracing/](https://github.com/bitcoin/bitcoin/tree/23.x/contrib/tracing).
+
+Updated RPCs
+------------
+
+- The `validateaddress` RPC now returns an `error_locations` array for invalid
+  addresses, with the indices of invalid character locations in the address (if
+  known). For example, this will attempt to locate up to two Bech32 errors, and
+  return their locations if successful. Success and correctness are only guaranteed
+  if fewer than two substitution errors have been made.
+  The error message returned in the `error` field now also returns more specific
+  errors when decoding fails. (#16807)
+
+- The `-deprecatedrpc=addresses` configuration option has been removed.  RPCs
+  `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`,
+  `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`,
+  `/rest/block` no longer return the `addresses` and `reqSigs` fields, which
+  were previously deprecated in 22.0. (#22650)
+- The `getblock` RPC command now supports verbosity level 3 containing transaction inputs'
+  `prevout` information.  The existing `/rest/block/` REST endpoint is modified to contain
+  this information too. Every `vin` field will contain an additional `prevout` subfield
+  describing the spent output. `prevout` contains the following keys:
+  - `generated` - true if the spent coins was a coinbase.
+  - `height`
+  - `value`
+  - `scriptPubKey`
+
+- The top-level fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees`
+  returned by RPCs `getmempoolentry`,`getrawmempool(verbose=true)`,
+  `getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)`
+  are deprecated and will be removed in the next major version (use
+  `-deprecated=fees` if needed in this version). The same fee fields can be accessed
+  through the `fees` object in the result. WARNING: deprecated
+  fields `ancestorfees` and `descendantfees` are denominated in sats, whereas all
+  fields in the `fees` object are denominated in BTC. (#22689)
+
+- Both `createmultisig` and `addmultisigaddress` now include a `warnings`
+  field, which will show a warning if a non-legacy address type is requested
+  when using uncompressed public keys. (#23113)
+
+Changes to wallet related RPCs can be found in the Wallet section below.
+
+New RPCs
+--------
+
+- Information on soft fork status has been moved from `getblockchaininfo`
+  to the new `getdeploymentinfo` RPC which allows querying soft fork status at any
+  block, rather than just at the chain tip. Inclusion of soft fork
+  status in `getblockchaininfo` can currently be restored using the
+  configuration `-deprecatedrpc=softforks`, but this will be removed in
+  a future release. Note that in either case, the `status` field
+  now reflects the status of the current block rather than the next
+  block. (#23508)
+
+Files
+-----
+
+* On startup, the list of banned hosts and networks (via `setban` RPC) in
+  `banlist.dat` is ignored and only `banlist.json` is considered. Bitcoin Core
+  version 22.x is the only version that can read `banlist.dat` and also write
+  it to `banlist.json`. If `banlist.json` already exists, version 22.x will not
+  try to translate the `banlist.dat` into json. After an upgrade, `listbanned`
+  can be used to double check the parsed entries. (#22570)
+
+Updated settings
+----------------
+
+- In previous releases, the meaning of the command line option
+  `-persistmempool` (without a value provided) incorrectly disabled mempool
+  persistence.  `-persistmempool` is now treated like other boolean options to
+  mean `-persistmempool=1`. Passing `-persistmempool=0`, `-persistmempool=1`
+  and `-nopersistmempool` is unaffected. (#23061)
+
+- `-maxuploadtarget` now allows human readable byte units [k|K|m|M|g|G|t|T].
+  E.g. `-maxuploadtarget=500g`. No whitespace, +- or fractions allowed.
+  Default is `M` if no suffix provided. (#23249)
+
+- If `-proxy=` is given together with `-noonion` then the provided proxy will
+  not be set as a proxy for reaching the Tor network. So it will not be
+  possible to open manual connections to the Tor network for example with the
+  `addnode` RPC. To mimic the old behavior use `-proxy=` together with
+  `-onlynet=` listing all relevant networks except `onion`. (#22834)
+
+Tools and Utilities
+-------------------
+
+- Update `-getinfo` to return data in a user-friendly format that also reduces vertical space. (#21832)
+
+- CLI `-addrinfo` now returns a single field for the number of `onion` addresses
+  known to the node instead of separate `torv2` and `torv3` fields, as support
+  for Tor V2 addresses was removed from Bitcoin Core in 22.0. (#22544)
+
+Wallet
+------
+
+- Descriptor wallets are now the default wallet type. Newly created wallets
+  will use descriptors unless `descriptors=false` is set during `createwallet`, or
+  the `Descriptor wallet` checkbox is unchecked in the GUI.
+
+  Note that wallet RPC commands like `importmulti` and `dumpprivkey` cannot be
+  used with descriptor wallets, so if your client code relies on these commands
+  without specifying `descriptors=false` during wallet creation, you will need
+  to update your code.
+
+- Newly created descriptor wallets will contain an automatically generated `tr()`
+  descriptor which allows for creating single key Taproot receiving addresses.
+
+- `upgradewallet` will now automatically flush the keypool if upgrading
+  from a non-HD wallet to an HD wallet, to immediately start using the
+  newly-generated HD keys. (#23093)
+
+- a new RPC `newkeypool` has been added, which will flush (entirely
+  clear and refill) the keypool. (#23093)
+
+- `listunspent` now includes `ancestorcount`, `ancestorsize`, and
+  `ancestorfees` for each transaction output that is still in the mempool.
+  (#12677)
+
+- `lockunspent` now optionally takes a third parameter, `persistent`, which
+  causes the lock to be written persistently to the wallet database. This
+  allows UTXOs to remain locked even after node restarts or crashes. (#23065)
+
+- `receivedby` RPCs now include coinbase transactions. Previously, the
+  following wallet RPCs excluded coinbase transactions: `getreceivedbyaddress`,
+  `getreceivedbylabel`, `listreceivedbyaddress`, `listreceivedbylabel`. This
+  release changes this behaviour and returns results accounting for received
+  coins from coinbase outputs. The previous behaviour can be restored using the
+  configuration `-deprecatedrpc=exclude_coinbase`, but may be removed in a
+  future release. (#14707)
+
+- A new option in the same `receivedby` RPCs, `include_immature_coinbase`
+  (default=`false`), determines whether to account for immature coinbase
+  transactions. Immature coinbase transactions are coinbase transactions that
+  have 100 or fewer confirmations, and are not spendable. (#14707)
+
+GUI changes
+-----------
+
+- UTXOs which are locked via the GUI are now stored persistently in the
+  wallet database, so are not lost on node shutdown or crash. (#23065)
+
+- The Bech32 checkbox has been replaced with a dropdown for all address types, including the new Bech32m (BIP-350) standard for Taproot enabled wallets.
+
+Low-level changes
+=================
+
+RPC
+---
+
+- `getblockchaininfo` now returns a new `time` field, that provides the chain tip time. (#22407)
+
+Tests
+-----
+
+- For the `regtest` network the activation heights of several softforks were
+  set to block height 1. They can be changed by the runtime setting
+  `-testactivationheight=name@height`. (#22818)
+
+Credits
+=======
+
+Thanks to everyone who directly contributed to this release:
+
+- 0xb10c
+- 0xree
+- Aaron Clauson
+- Adrian-Stefan Mares
+- agroce
+- aitorjs
+- Alex Groce
+- amadeuszpawlik
+- Amiti Uttarwar
+- Andrew Chow
+- Andrew Poelstra
+- Andrew Toth
+- anouar kappitou
+- Anthony Towns
+- Antoine Poinsot
+- Arnab Sen
+- Ben Woosley
+- benthecarman
+- Bitcoin Hodler
+- BitcoinTsunami
+- brianddk
+- Bruno Garcia
+- CallMeMisterOwl
+- Calvin Kim
+- Carl Dong
+- Cory Fields
+- Cuong V. Nguyen
+- Darius Parvin
+- Dhruv Mehta
+- Dimitri Deijs
+- Dimitris Apostolou
+- Dmitry Goncharov
+- Douglas Chimento
+- eugene
+- Fabian Jahr
+- fanquake
+- Florian Baumgartl
+- fyquah
+- Gleb Naumenko
+- glozow
+- Gregory Sanders
+- Heebs
+- Hennadii Stepanov
+- hg333
+- HiLivin
+- Igor Cota
+- Jadi
+- James O'Beirne
+- Jameson Lopp
+- Jarol Rodriguez
+- Jeremy Rand
+- Jeremy Rubin
+- Joan Karadimov
+- John Newbery
+- Jon Atack
+- João Barbosa
+- josibake
+- junderw
+- Karl-Johan Alm
+- katesalazar
+- Kennan Mell
+- Kiminuo
+- Kittywhiskers Van Gogh
+- Klement Tan
+- Kristaps Kaupe
+- Kuro
+- Larry Ruane
+- lsilva01
+- lucash-dev
+- Luke Dashjr
+- MarcoFalke
+- Martin Leitner-Ankerl
+- Martin Zumsande
+- Matt Corallo
+- Matt Whitlock
+- MeshCollider
+- Michael Dietz
+- Murch
+- naiza
+- Nathan Garabedian
+- Nelson Galdeman
+- NikhilBartwal
+- Niklas Gögge
+- node01
+- nthumann
+- Pasta
+- Patrick Kamin
+- Pavel Safronov
+- Pavol Rusnak
+- Perlover
+- Pieter Wuille
+- practicalswift
+- pradumnasaraf
+- pranabp-bit
+- Prateek Sancheti
+- Prayank
+- Rafael Sadowski
+- rajarshimaitra
+- randymcmillan
+- ritickgoenka
+- Rob Fielding
+- Rojar Smith
+- Russell Yanofsky
+- S3RK
+- Saibato
+- Samuel Dobson
+- sanket1729
+- seaona
+- Sebastian Falbesoner
+- sh15h4nk
+- Shashwat
+- Shorya
+- ShubhamPalriwala
+- Shubhankar Gambhir
+- Sjors Provoost
+- sogoagain
+- sstone
+- stratospher
+- Suriyaa Rocky Sundararuban
+- Taeik Lim
+- TheCharlatan
+- Tim Ruffing
+- Tobin Harding
+- Troy Giorshev
+- Tyler Chambers
+- Vasil Dimov
+- W. J. van der Laan
+- w0xlt
+- willcl-ark
+- William Casarin
+- zealsham
+- Zero-1729
+
+As well as to everyone that helped with translations on
+[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

From a02ae0745b01b33158d916d3d71107da77026bcb Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 21 Nov 2022 10:24:28 +0000
Subject: [PATCH 079/187] build: Bump version to 23.1rc2

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 1d4f26e200e..d424c49b571 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 1)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 5b2c99e24cd7b653c9b9931509d3901ad17badc1 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 21 Nov 2022 10:41:53 +0000
Subject: [PATCH 080/187] doc: Update manual pages for 23.1rc2

---
 doc/man/bitcoin-cli.1    | 6 +++---
 doc/man/bitcoin-qt.1     | 6 +++---
 doc/man/bitcoin-tx.1     | 6 +++---
 doc/man/bitcoin-util.1   | 6 +++---
 doc/man/bitcoin-wallet.1 | 6 +++---
 doc/man/bitcoind.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index af952908ab0..bb529517563 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-CLI "1" "November 2022" "bitcoin-cli v23.1.0rc1" "User Commands"
+.TH BITCOIN-CLI "1" "November 2022" "bitcoin-cli v23.1.0rc2" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.1.0rc1
+bitcoin-cli \- manual page for bitcoin-cli v23.1.0rc2
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.1.0rc1
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.1.0rc1
+Bitcoin Core RPC client version v23.1.0rc2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index 0ef72009bb4..41fe2104b87 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-QT "1" "November 2022" "bitcoin-qt v23.1.0rc1" "User Commands"
+.TH BITCOIN-QT "1" "November 2022" "bitcoin-qt v23.1.0rc2" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.1.0rc1
+bitcoin-qt \- manual page for bitcoin-qt v23.1.0rc2
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.1.0rc1
+Bitcoin Core version v23.1.0rc2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index 1da154313db..1ed7d7f4b64 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-TX "1" "November 2022" "bitcoin-tx v23.1.0rc1" "User Commands"
+.TH BITCOIN-TX "1" "November 2022" "bitcoin-tx v23.1.0rc2" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.1.0rc1
+bitcoin-tx \- manual page for bitcoin-tx v23.1.0rc2
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.1.0rc1
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.1.0rc1
+Bitcoin Core bitcoin\-tx utility version v23.1.0rc2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index 690b2a7bccd..b366096b1f7 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-UTIL "1" "November 2022" "bitcoin-util v23.1.0rc1" "User Commands"
+.TH BITCOIN-UTIL "1" "November 2022" "bitcoin-util v23.1.0rc2" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.1.0rc1
+bitcoin-util \- manual page for bitcoin-util v23.1.0rc2
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.1.0rc1
+Bitcoin Core bitcoin\-util utility version v23.1.0rc2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 41225969762..49fb5d10289 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-WALLET "1" "November 2022" "bitcoin-wallet v23.1.0rc1" "User Commands"
+.TH BITCOIN-WALLET "1" "November 2022" "bitcoin-wallet v23.1.0rc2" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.1.0rc1
+bitcoin-wallet \- manual page for bitcoin-wallet v23.1.0rc2
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.1.0rc1
+Bitcoin Core bitcoin\-wallet version v23.1.0rc2
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index 14fbc603d3a..ed24afde863 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIND "1" "November 2022" "bitcoind v23.1.0rc1" "User Commands"
+.TH BITCOIND "1" "November 2022" "bitcoind v23.1.0rc2" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.1.0rc1
+bitcoind \- manual page for bitcoind v23.1.0rc2
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.1.0rc1
+Bitcoin Core version v23.1.0rc2
 .SH OPTIONS
 .HP
 \-?

From 87c2ff80e45113b056b3d0af83cf78e3ce95a693 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 21 Nov 2022 11:01:10 +0000
Subject: [PATCH 081/187] doc: add release notes for 23.1rc2

---
 doc/release-notes.md | 218 ++++++++-----------------------------------
 1 file changed, 38 insertions(+), 180 deletions(-)

diff --git a/doc/release-notes.md b/doc/release-notes.md
index 5d1aa85593c..257df52955e 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,23 +1,9 @@
-*After branching off for a major version release of Bitcoin Core, use this
-template to create the initial release notes draft.*
-
-*The release notes draft is a temporary file that can be added to by anyone. See
-[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes)
-for the process.*
-
-*Create the draft, named* "*version* Release Notes Draft"
-*(e.g. "22.0 Release Notes Draft"), as a collaborative wiki in:*
-
-https://github.com/bitcoin-core/bitcoin-devwiki/wiki/
-
-*Before the final release, move the notes back to this git repository.*
-
-*version* Release Notes Draft
+23.1rc2 Release Notes Draft
 ===============================
 
-Bitcoin Core version *version* is now available from:
+Bitcoin Core version 23.1rc2 is now available from:
 
-  <https://bitcoincore.org/bin/bitcoin-core-*version*/>
+  <https://bitcoincore.org/bin/bitcoin-core-23.1/>
 
 This release includes new features, various bug fixes and performance
 improvements, as well as updated translations.
@@ -35,7 +21,7 @@ How to Upgrade
 
 If you are running an older version, shut it down. Wait until it has completely
 shut down (which might take a few minutes in some cases), then run the
-installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac)
+installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
 or `bitcoind`/`bitcoin-qt` (on Linux).
 
 Upgrading directly from a version of Bitcoin Core that has reached its EOL is
@@ -51,182 +37,54 @@ Core should also work on most other Unix-like systems but is not as
 frequently tested on them.  It is not recommended to use Bitcoin Core on
 unsupported systems.
 
-Notable changes
-===============
-
-P2P and network changes
------------------------
-
-- A bitcoind node will no longer rumour addresses to inbound peers by default.
-  They will become eligible for address gossip after sending an ADDR, ADDRV2,
-  or GETADDR message. (#21528)
-
-Fee estimation changes
-----------------------
-
-- Fee estimation now takes the feerate of replacement (RBF) transactions into
-  account. (#22539)
-
-Rescan startup parameter removed
---------------------------------
-
-The `-rescan` startup parameter has been removed. Wallets which require
-rescanning due to corruption will still be rescanned on startup.
-Otherwise, please use the `rescanblockchain` RPC to trigger a rescan. (#23123)
-
-Updated RPCs
-------------
-
-- The `validateaddress` RPC now returns an `error_locations` array for invalid
-  addresses, with the indices of invalid character locations in the address (if
-  known). For example, this will attempt to locate up to two Bech32 errors, and
-  return their locations if successful. Success and correctness are only guaranteed
-  if fewer than two substitution errors have been made.
-  The error message returned in the `error` field now also returns more specific
-  errors when decoding fails. (#16807)
-
-- The `-deprecatedrpc=addresses` configuration option has been removed.  RPCs
-  `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`,
-  `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`,
-  `/rest/block` no longer return the `addresses` and `reqSigs` fields, which
-  were previously deprecated in 22.0. (#22650)
-- The `getblock` RPC command now supports verbosity level 3 containing transaction inputs'
-  `prevout` information.  The existing `/rest/block/` REST endpoint is modified to contain
-  this information too. Every `vin` field will contain an additional `prevout` subfield
-  describing the spent output. `prevout` contains the following keys:
-  - `generated` - true if the spent coins was a coinbase.
-  - `height`
-  - `value`
-  - `scriptPubKey`
-
-- The top-level fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees`
-  returned by RPCs `getmempoolentry`,`getrawmempool(verbose=true)`,
-  `getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)`
-  are deprecated and will be removed in the next major version (use
-  `-deprecated=fees` if needed in this version). The same fee fields can be accessed
-  through the `fees` object in the result. WARNING: deprecated
-  fields `ancestorfees` and `descendantfees` are denominated in sats, whereas all
-  fields in the `fees` object are denominated in BTC. (#22689)
-
-- Both `createmultisig` and `addmultisigaddress` now include a `warnings`
-  field, which will show a warning if a non-legacy address type is requested
-  when using uncompressed public keys. (#23113)
-
-New RPCs
---------
-
-- Information on soft fork status has been moved from `getblockchaininfo`
-  to the new `getdeploymentinfo` RPC which allows querying soft fork status at any
-  block, rather than just at the chain tip. Inclusion of soft fork
-  status in `getblockchaininfo` can currently be restored using the
-  configuration `-deprecatedrpc=softforks`, but this will be removed in
-  a future release. Note that in either case, the `status` field
-  now reflects the status of the current block rather than the next
-  block. (#23508)
-
-Build System
-------------
-
-Files
------
-
-* On startup, the list of banned hosts and networks (via `setban` RPC) in
-  `banlist.dat` is ignored and only `banlist.json` is considered. Bitcoin Core
-  version 22.x is the only version that can read `banlist.dat` and also write
-  it to `banlist.json`. If `banlist.json` already exists, version 22.x will not
-  try to translate the `banlist.dat` into json. After an upgrade, `listbanned`
-  can be used to double check the parsed entries. (#22570)
-
-New settings
-------------
-
-Updated settings
-----------------
-
-- In previous releases, the meaning of the command line option
-  `-persistmempool` (without a value provided) incorrectly disabled mempool
-  persistence.  `-persistmempool` is now treated like other boolean options to
-  mean `-persistmempool=1`. Passing `-persistmempool=0`, `-persistmempool=1`
-  and `-nopersistmempool` is unaffected. (#23061)
-
-- `-maxuploadtarget` now allows human readable byte units [k|K|m|M|g|G|t|T].
-  E.g. `-maxuploadtarget=500g`. No whitespace, +- or fractions allowed.
-  Default is `M` if no suffix provided. (#23249)
-
-- If `-proxy=` is given together with `-noonion` then the provided proxy will
-  not be set as a proxy for reaching the Tor network. So it will not be
-  possible to open manual connections to the Tor network for example with the
-  `addnode` RPC. To mimic the old behavior use `-proxy=` together with
-  `-onlynet=` listing all relevant networks except `onion`. (#22834)
-
-Tools and Utilities
--------------------
-
-- Update `-getinfo` to return data in a user-friendly format that also reduces vertical space. (#21832)
-
-- CLI `-addrinfo` now returns a single field for the number of `onion` addresses
-  known to the node instead of separate `torv2` and `torv3` fields, as support
-  for Tor V2 addresses was removed from Bitcoin Core in 22.0. (#22544)
-
-Wallet
-------
-
-- `upgradewallet` will now automatically flush the keypool if upgrading
-  from a non-HD wallet to an HD wallet, to immediately start using the
-  newly-generated HD keys. (#23093)
-
-- a new RPC `newkeypool` has been added, which will flush (entirely
-  clear and refill) the keypool. (#23093)
-
-- `listunspent` now includes `ancestorcount`, `ancestorsize`, and
-  `ancestorfees` for each transaction output that is still in the mempool.
-  (#12677)
-
-- `lockunspent` now optionally takes a third parameter, `persistent`, which
-  causes the lock to be written persistently to the wallet database. This
-  allows UTXOs to remain locked even after node restarts or crashes. (#23065)
-
-- `receivedby` RPCs now include coinbase transactions. Previously, the
-  following wallet RPCs excluded coinbase transactions: `getreceivedbyaddress`,
-  `getreceivedbylabel`, `listreceivedbyaddress`, `listreceivedbylabel`. This
-  release changes this behaviour and returns results accounting for received
-  coins from coinbase outputs. The previous behaviour can be restored using the
-  configuration `-deprecatedrpc=exclude_coinbase`, but may be removed in a
-  future release. (#14707)
-
-- A new option in the same `receivedby` RPCs, `include_immature_coinbase`
-  (default=`false`), determines whether to account for immature coinbase
-  transactions. Immature coinbase transactions are coinbase transactions that
-  have 100 or fewer confirmations, and are not spendable. (#14707)
+### P2P
+
+- #25314 p2p: always set nTime for self-advertisements
+
+### RPC and other APIs
+
+- #25220 rpc: fix incorrect warning for address type p2sh-segwit in createmultisig
+- #25237 rpc: Capture UniValue by ref for rpcdoccheck
+- #25983 Prevent data race for pathHandlers
+- #26275 Fix crash on deriveaddresses when index is 2147483647 (2^31-1)
 
-GUI changes
------------
+### Build system
 
-- UTXOs which are locked via the GUI are now stored persistently in the
-  wallet database, so are not lost on node shutdown or crash. (#23065)
+- #25201 windeploy: Renewed windows code signing certificate
+- #25788 guix: patch NSIS to remove .reloc sections from installer stubs
+- #25861 guix: use --build={arch}-guix-linux-gnu in cross toolchain
+- #25985 Revert "build: Use Homebrew's sqlite package if it is available"
 
-- The Bech32 checkbox has been replaced with a dropdown for all address types, including the new Bech32m (BIP-350) standard for Taproot enabled wallets.
+### GUI
 
-Low-level changes
-=================
+- #24668 build, qt: bump Qt5 version to 5.15.3
+- gui#631 Disallow encryption of watchonly wallets
+- gui#680 Fixes MacOS 13 segfault by preventing certain notifications
 
-RPC
----
+### Tests
 
-- `getblockchaininfo` now returns a new `time` field, that provides the chain tip time. (#22407)
+- #24454 tests: Fix calculation of external input weights
 
-Tests
------
+### Miscellaneous
 
-- For the `regtest` network the activation heights of several softforks were
-  set to block height 1. They can be changed by the runtime setting
-  `-testactivationheight=name@height`. (#22818)
+- #26321 Adjust .tx/config for new Transifex CLI
 
 Credits
 =======
 
 Thanks to everyone who directly contributed to this release:
 
+Andrew Chow
+brunoerg
+Hennadii Stepanov
+John Moffett
+MacroFake
+Martin Zumsande
+Michael Ford
+muxator
+Pavol Rusnak
+Sebastian Falbesoner
+W. J. van der Laan
 
 As well as to everyone that helped with translations on
 [Transifex](https://www.transifex.com/bitcoin/bitcoin/).

From 38d90bc3e38bdf40b61d42b5db7b48c7fa0ef17b Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Mon, 21 Nov 2022 11:11:03 +0000
Subject: [PATCH 082/187] qt: 23.1rc2 translations update

---
 src/qt/locale/bitcoin_el.ts    |    4 +-
 src/qt/locale/bitcoin_hi.ts    | 1456 +++++++++++++++++++-
 src/qt/locale/bitcoin_mr_IN.ts |  145 ++
 src/qt/locale/bitcoin_sr.ts    |   56 +
 src/qt/locale/bitcoin_ta.ts    |   34 +-
 src/qt/locale/bitcoin_te.ts    | 2283 ++++++++++++++++++++++++++++++--
 6 files changed, 3844 insertions(+), 134 deletions(-)

diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts
index 16b8e7325f8..338f77ddd46 100644
--- a/src/qt/locale/bitcoin_el.ts
+++ b/src/qt/locale/bitcoin_el.ts
@@ -1236,8 +1236,8 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%n active connection(s) to Bitcoin network.</source>
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
+            <numerusform>%n active connection(s) to Bitcoin network.</numerusform>
         </translation>
     </message>
     <message>
diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/bitcoin_hi.ts
index d25c2a980fc..6ebb1af10dc 100644
--- a/src/qt/locale/bitcoin_hi.ts
+++ b/src/qt/locale/bitcoin_hi.ts
@@ -11,8 +11,7 @@
     </message>
     <message>
         <source>&amp;New</source>
-        <translation type="unfinished">&amp;न्यू
- </translation>
+        <translation type="unfinished">नया </translation>
     </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
@@ -24,7 +23,7 @@
     </message>
     <message>
         <source>C&amp;lose</source>
-        <translation type="unfinished">&amp;क्लोज़</translation>
+        <translation type="unfinished">बंद करें</translation>
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
@@ -756,23 +755,1444 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </message>
     </context>
 <context>
-    <name>SendCoinsDialog</name>
-    <message numerus="yes">
-        <source>Estimated to begin confirmation within %n block(s).</source>
-        <translation type="unfinished">
-            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
-            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
-        </translation>
+    <name>RPCConsole</name>
+    <message>
+        <source>To specify a non-default location of the data directory use the '%1' option.</source>
+        <translation type="unfinished">डेटा निर्देशिका का गैर-डिफ़ॉल्ट स्थान निर्दिष्ट करने के लिए '%1' विकल्प का उपयोग करें।</translation>
     </message>
-    </context>
+    <message>
+        <source>Blocksdir</source>
+        <translation type="unfinished">ब्लॉकडिर</translation>
+    </message>
+    <message>
+        <source>To specify a non-default location of the blocks directory use the '%1' option.</source>
+        <translation type="unfinished">ब्लॉक निर्देशिका का गैर-डिफ़ॉल्ट स्थान निर्दिष्ट करने के लिए '%1' विकल्प का उपयोग करें।</translation>
+    </message>
+    <message>
+        <source>Startup time</source>
+        <translation type="unfinished">स्टार्टअप का समय</translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">नेटवर्क</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">नाम</translation>
+    </message>
+    <message>
+        <source>Number of connections</source>
+        <translation type="unfinished">कनेक्शन की संख्या</translation>
+    </message>
+    <message>
+        <source>Block chain</source>
+        <translation type="unfinished">ब्लॉक चेन</translation>
+    </message>
+    <message>
+        <source>Memory Pool</source>
+        <translation type="unfinished">मेमोरी पूल</translation>
+    </message>
+    <message>
+        <source>Current number of transactions</source>
+        <translation type="unfinished">लेनदेन की वर्तमान संख्या</translation>
+    </message>
+    <message>
+        <source>Memory usage</source>
+        <translation type="unfinished">स्मृति प्रयोग</translation>
+    </message>
+    <message>
+        <source>Wallet: </source>
+        <translation type="unfinished">बटुआ</translation>
+    </message>
+    <message>
+        <source>(none)</source>
+        <translation type="unfinished">(कोई भी नहीं)</translation>
+    </message>
+    <message>
+        <source>&amp;Reset</source>
+        <translation type="unfinished">रीसेट</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <translation type="unfinished">प्राप्त हुआ</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <translation type="unfinished">भेज दिया</translation>
+    </message>
+    <message>
+        <source>&amp;Peers</source>
+        <translation type="unfinished">समकक्ष लोग</translation>
+    </message>
+    <message>
+        <source>Banned peers</source>
+        <translation type="unfinished">प्रतिबंधित साथियों</translation>
+    </message>
+    <message>
+        <source>Select a peer to view detailed information.</source>
+        <translation type="unfinished">विस्तृत जानकारी देखने के लिए किसी सहकर्मी का चयन करें।</translation>
+    </message>
+    <message>
+        <source>Version</source>
+        <translation type="unfinished">संस्करण</translation>
+    </message>
+    <message>
+        <source>Starting Block</source>
+        <translation type="unfinished">प्रारम्भिक खण्ड</translation>
+    </message>
+    <message>
+        <source>Synced Headers</source>
+        <translation type="unfinished">सिंक किए गए हेडर</translation>
+    </message>
+    <message>
+        <source>Synced Blocks</source>
+        <translation type="unfinished">सिंक किए गए ब्लॉक</translation>
+    </message>
+    <message>
+        <source>Last Transaction</source>
+        <translation type="unfinished">अंतिम लेनदेन</translation>
+    </message>
+    <message>
+        <source>The mapped Autonomous System used for diversifying peer selection.</source>
+        <translation type="unfinished">सहकर्मी चयन में विविधता लाने के लिए उपयोग की गई मैप की गई स्वायत्त प्रणाली।</translation>
+    </message>
+    <message>
+        <source>Mapped AS</source>
+        <translation type="unfinished">मैप किए गए AS</translation>
+    </message>
+    <message>
+        <source>Whether we relay addresses to this peer.</source>
+        <extracomment>Tooltip text for the Address Relay field in the peer details area.</extracomment>
+        <translation type="unfinished">क्या हम इस सहकर्मी को पते रिले करते हैं।</translation>
+    </message>
+    <message>
+        <source>Address Relay</source>
+        <translation type="unfinished">पता रिले</translation>
+    </message>
+    <message>
+        <source>Addresses Processed</source>
+        <translation type="unfinished">संसाधित पते</translation>
+    </message>
+    <message>
+        <source>Total number of addresses dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Rate-Limited field in the peer details area.</extracomment>
+        <translation type="unfinished">दर-सीमित करने के कारण पतों की कुल संख्या गिर गई।</translation>
+    </message>
+    <message>
+        <source>Addresses Rate-Limited</source>
+        <translation type="unfinished">पते दर-सीमित</translation>
+    </message>
+    <message>
+        <source>User Agent</source>
+        <translation type="unfinished">उपभोक्ता अभिकर्ता</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">नोड विंडो</translation>
+    </message>
+    <message>
+        <source>Current block height</source>
+        <translation type="unfinished">वर्तमान ब्लॉक ऊंचाई</translation>
+    </message>
+    <message>
+        <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source>
+        <translation type="unfinished">वर्तमान डेटा निर्देशिका से %1 डीबग लॉग फ़ाइल खोलें। बड़ी लॉग फ़ाइलों के लिए इसमें कुछ सेकंड लग सकते हैं।</translation>
+    </message>
+    <message>
+        <source>Decrease font size</source>
+        <translation type="unfinished">फ़ॉन्ट आकार घटाएं</translation>
+    </message>
+    <message>
+        <source>Increase font size</source>
+        <translation type="unfinished">फ़ॉन्ट आकार बढ़ाएँ</translation>
+    </message>
+    <message>
+        <source>Permissions</source>
+        <translation type="unfinished">अनुमतियां</translation>
+    </message>
+    <message>
+        <source>The direction and type of peer connection: %1</source>
+        <translation type="unfinished">पीयर कनेक्शन की दिशा और प्रकार: %1</translation>
+    </message>
+    <message>
+        <source>Direction/Type</source>
+        <translation type="unfinished">दिशा / प्रकार</translation>
+    </message>
+    <message>
+        <source>The network protocol this peer is connected through: IPv4, IPv6, Onion, I2P, or CJDNS.</source>
+        <translation type="unfinished">यह पीयर नेटवर्क प्रोटोकॉल के माध्यम से जुड़ा हुआ है: आईपीवी 4, आईपीवी 6, प्याज, आई 2 पी, या सीजेडीएनएस।</translation>
+    </message>
+    <message>
+        <source>Services</source>
+        <translation type="unfinished">सेवाएं</translation>
+    </message>
+    <message>
+        <source>Whether the peer requested us to relay transactions.</source>
+        <translation type="unfinished">क्या सहकर्मी ने हमसे लेन-देन रिले करने का अनुरोध किया है।</translation>
+    </message>
+    <message>
+        <source>Wants Tx Relay</source>
+        <translation type="unfinished">टीएक्स रिले चाहता है</translation>
+    </message>
+    <message>
+        <source>High bandwidth BIP152 compact block relay: %1</source>
+        <translation type="unfinished">उच्च बैंडविड्थ BIP152 कॉम्पैक्ट ब्लॉक रिले: %1</translation>
+    </message>
+    <message>
+        <source>High Bandwidth</source>
+        <translation type="unfinished">उच्च बैंडविड्थ</translation>
+    </message>
+    <message>
+        <source>Connection Time</source>
+        <translation type="unfinished">कनेक्शन का समय</translation>
+    </message>
+    <message>
+        <source>Elapsed time since a novel block passing initial validity checks was received from this peer.</source>
+        <translation type="unfinished">इस सहकर्मी से प्रारंभिक वैधता जांच प्राप्त करने वाले एक उपन्यास ब्लॉक के बाद से बीता हुआ समय।</translation>
+    </message>
+    <message>
+        <source>Last Block</source>
+        <translation type="unfinished">अंतिम ब्लॉक</translation>
+    </message>
+    <message>
+        <source>Elapsed time since a novel transaction accepted into our mempool was received from this peer.</source>
+        <extracomment>Tooltip text for the Last Transaction field in the peer details area.</extracomment>
+        <translation type="unfinished">हमारे मेमपूल में स्वीकार किए गए एक उपन्यास लेनदेन के बाद से इस सहकर्मी से प्राप्त हुआ समय बीत चुका है।</translation>
+    </message>
+    <message>
+        <source>Last Send</source>
+        <translation type="unfinished">अंतिम भेजें</translation>
+    </message>
+    <message>
+        <source>Last Receive</source>
+        <translation type="unfinished">अंतिम प्राप्ति</translation>
+    </message>
+    <message>
+        <source>Ping Time</source>
+        <translation type="unfinished">पिंग टाइम</translation>
+    </message>
+    <message>
+        <source>The duration of a currently outstanding ping.</source>
+        <translation type="unfinished">वर्तमान में बकाया पिंग की अवधि।</translation>
+    </message>
+    <message>
+        <source>Ping Wait</source>
+        <translation type="unfinished">पिंग रुको</translation>
+    </message>
+    <message>
+        <source>Min Ping</source>
+        <translation type="unfinished">मिन पिंग</translation>
+    </message>
+    <message>
+        <source>Time Offset</source>
+        <translation type="unfinished">समय का निर्धारण</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">अंतिम ब्लॉक समय</translation>
+    </message>
+    <message>
+        <source>&amp;Open</source>
+        <translation type="unfinished">खुला हुआ</translation>
+    </message>
+    <message>
+        <source>&amp;Console</source>
+        <translation type="unfinished">कंसोल</translation>
+    </message>
+    <message>
+        <source>&amp;Network Traffic</source>
+        <translation type="unfinished">&amp;प्रसार यातायात</translation>
+    </message>
+    <message>
+        <source>Totals</source>
+        <translation type="unfinished">योग</translation>
+    </message>
+    <message>
+        <source>Debug log file</source>
+        <translation type="unfinished">डीबग लॉग फ़ाइल</translation>
+    </message>
+    <message>
+        <source>Clear console</source>
+        <translation type="unfinished">साफ़ कंसोल</translation>
+    </message>
+    <message>
+        <source>In:</source>
+        <translation type="unfinished">में</translation>
+    </message>
+    <message>
+        <source>Out:</source>
+        <translation type="unfinished">बाहर:</translation>
+    </message>
+    <message>
+        <source>Inbound: initiated by peer</source>
+        <extracomment>Explanatory text for an inbound peer connection.</extracomment>
+        <translation type="unfinished">इनबाउंड: सहकर्मी द्वारा शुरू किया गया</translation>
+    </message>
+    <message>
+        <source>Outbound Full Relay: default</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays all network information. This is the default behavior for outbound connections.</extracomment>
+        <translation type="unfinished">आउटबाउंड पूर्ण रिले: डिफ़ॉल्ट</translation>
+    </message>
+    <message>
+        <source>Outbound Block Relay: does not relay transactions or addresses</source>
+        <extracomment>Explanatory text for an outbound peer connection that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">आउटबाउंड ब्लॉक रिले: लेनदेन या पते को रिले नहीं करता है</translation>
+    </message>
+    <message>
+        <source>Outbound Manual: added using RPC %1 or %2/%3 configuration options</source>
+        <extracomment>Explanatory text for an outbound peer connection that was established manually through one of several methods. The numbered arguments are stand-ins for the methods available to establish manual connections.</extracomment>
+        <translation type="unfinished">आउटबाउंड मैनुअल: RPC %1 या %2/ %3 कॉन्फ़िगरेशन विकल्पों का उपयोग करके जोड़ा गया</translation>
+    </message>
+    <message>
+        <source>Outbound Feeler: short-lived, for testing addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to test the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">आउटबाउंड फीलर: अल्पकालिक, परीक्षण पतों के लिए</translation>
+    </message>
+    <message>
+        <source>Outbound Address Fetch: short-lived, for soliciting addresses</source>
+        <extracomment>Explanatory text for a short-lived outbound peer connection that is used to request addresses from a peer.</extracomment>
+        <translation type="unfinished">आउटबाउंड एड्रेस फ़ेच: अल्पकालिक, याचना पतों के लिए</translation>
+    </message>
+    <message>
+        <source>we selected the peer for high bandwidth relay</source>
+        <translation type="unfinished">हमने उच्च बैंडविड्थ रिले के लिए पीयर का चयन किया</translation>
+    </message>
+    <message>
+        <source>the peer selected us for high bandwidth relay</source>
+        <translation type="unfinished">सहकर्मी ने हमें उच्च बैंडविड्थ रिले के लिए चुना</translation>
+    </message>
+    <message>
+        <source>no high bandwidth relay selected</source>
+        <translation type="unfinished">कोई उच्च बैंडविड्थ रिले नहीं चुना गया</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;कॉपी पता</translation>
+    </message>
+    <message>
+        <source>&amp;Disconnect</source>
+        <translation type="unfinished">&amp;डिस्कनेक्ट</translation>
+    </message>
+    <message>
+        <source>1 &amp;hour</source>
+        <translation type="unfinished">1 घंटा</translation>
+    </message>
+    <message>
+        <source>1 d&amp;ay</source>
+        <translation type="unfinished">1 दिन</translation>
+    </message>
+    <message>
+        <source>1 &amp;week</source>
+        <translation type="unfinished">1 सप्ताह</translation>
+    </message>
+    <message>
+        <source>1 &amp;year</source>
+        <translation type="unfinished">1 साल</translation>
+    </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;कॉपी आईपी/नेटमास्क</translation>
+    </message>
+    <message>
+        <source>&amp;Unban</source>
+        <translation type="unfinished">अप्रतिबंधित करें</translation>
+    </message>
+    <message>
+        <source>Network activity disabled</source>
+        <translation type="unfinished">नेटवर्क गतिविधि अक्षम</translation>
+    </message>
+    <message>
+        <source>Executing command without any wallet</source>
+        <translation type="unfinished">बिना किसी वॉलेट के कमांड निष्पादित करना</translation>
+    </message>
+    <message>
+        <source>Executing command using "%1" wallet</source>
+        <translation type="unfinished">"%1" वॉलेट का प्रयोग कर कमांड निष्पादित करना</translation>
+    </message>
+    <message>
+        <source>Welcome to the %1 RPC console.
+Use up and down arrows to navigate history, and %2 to clear screen.
+Use %3 and %4 to increase or decrease the font size.
+Type %5 for an overview of available commands.
+For more information on using this console, type %6.
+
+%7WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.%8</source>
+        <extracomment>RPC console welcome message. Placeholders %7 and %8 are style tags for the warning content, and they are not space separated from the rest of the text intentionally.</extracomment>
+        <translation type="unfinished">%1 आरपीसी कंसोल में आपका स्वागत है।
+इतिहास नेविगेट करने के लिए ऊपर और नीचे तीरों का उपयोग करें, और स्क्रीन को साफ़ करने के लिए %2 का उपयोग करें।
+फॉन्ट साइज बढ़ाने या घटाने के लिए %3 और %4 का प्रयोग करें।
+उपलब्ध कमांड के ओवरव्यू के लिए %5 टाइप करें।
+इस कंसोल का उपयोग करने के बारे में अधिक जानकारी के लिए %6 टाइप करें।
+
+%7 चेतावनी: स्कैमर्स सक्रिय हैं, उपयोगकर्ताओं को यहां कमांड टाइप करने के लिए कह रहे हैं, उनके वॉलेट सामग्री को चुरा रहे हैं। कमांड के प्रभाव को पूरी तरह समझे बिना इस कंसोल का उपयोग न करें। %8</translation>
+    </message>
+    <message>
+        <source>Executing…</source>
+        <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
+        <translation type="unfinished">निष्पादित किया जा रहा है…</translation>
+    </message>
+    <message>
+        <source>Yes</source>
+        <translation type="unfinished">हाँ</translation>
+    </message>
+    <message>
+        <source>No</source>
+        <translation type="unfinished">नहीं</translation>
+    </message>
+    <message>
+        <source>To</source>
+        <translation type="unfinished">प्रति</translation>
+    </message>
+    <message>
+        <source>From</source>
+        <translation type="unfinished">से</translation>
+    </message>
+    <message>
+        <source>Ban for</source>
+        <translation type="unfinished">के लिए प्रतिबंध</translation>
+    </message>
+    <message>
+        <source>Never</source>
+        <translation type="unfinished">कभी नहीँ</translation>
+    </message>
+    <message>
+        <source>Unknown</source>
+        <translation type="unfinished">अनजान</translation>
+    </message>
+</context>
 <context>
-    <name>TransactionDesc</name>
-    <message numerus="yes">
-        <source>matures in %n more block(s)</source>
-        <translation type="unfinished">
-            <numerusform>matures in %n more block(s)</numerusform>
-            <numerusform>matures in %n more block(s)</numerusform>
-        </translation>
+    <name>ReceiveCoinsDialog</name>
+    <message>
+        <source>&amp;Amount:</source>
+        <translation type="unfinished">&amp;राशि:</translation>
+    </message>
+    <message>
+        <source>&amp;Label:</source>
+        <translation type="unfinished">&amp;लेबल:</translation>
+    </message>
+    <message>
+        <source>&amp;Message:</source>
+        <translation type="unfinished">&amp;संदेश:</translation>
+    </message>
+    <message>
+        <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source>
+        <translation type="unfinished">भुगतान अनुरोध के साथ संलग्न करने के लिए एक वैकल्पिक संदेश, जिसे अनुरोध खोले जाने पर प्रदर्शित किया जाएगा। नोट: बिटकॉइन नेटवर्क पर भुगतान के साथ संदेश नहीं भेजा जाएगा।</translation>
+    </message>
+    <message>
+        <source>An optional label to associate with the new receiving address.</source>
+        <translation type="unfinished">नए प्राप्तकर्ता पते के साथ संबद्ध करने के लिए एक वैकल्पिक लेबल।</translation>
+    </message>
+    <message>
+        <source>Use this form to request payments. All fields are &lt;b&gt;optional&lt;/b&gt;.</source>
+        <translation type="unfinished">भुगतान का अनुरोध करने के लिए इस फ़ॉर्म का उपयोग करें। सभी फ़ील्ड &lt;b&gt;वैकल्पिक&lt;/b&gt;हैं।</translation>
+    </message>
+    <message>
+        <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source>
+        <translation type="unfinished">अनुरोध करने के लिए एक वैकल्पिक राशि। किसी विशिष्ट राशि का अनुरोध न करने के लिए इसे खाली या शून्य छोड़ दें।</translation>
+    </message>
+    <message>
+        <source>An optional label to associate with the new receiving address (used by you to identify an invoice).  It is also attached to the payment request.</source>
+        <translation type="unfinished">नए प्राप्तकर्ता पते के साथ संबद्ध करने के लिए एक वैकल्पिक लेबल (इनवॉइस की पहचान करने के लिए आपके द्वारा उपयोग किया जाता है)। यह भुगतान अनुरोध से भी जुड़ा हुआ है।</translation>
+    </message>
+    <message>
+        <source>An optional message that is attached to the payment request and may be displayed to the sender.</source>
+        <translation type="unfinished">एक वैकल्पिक संदेश जो भुगतान अनुरोध से जुड़ा होता है और प्रेषक को प्रदर्शित किया जा सकता है।</translation>
+    </message>
+    <message>
+        <source>&amp;Create new receiving address</source>
+        <translation type="unfinished">&amp;नया प्राप्तकर्ता पता बनाएं</translation>
+    </message>
+    <message>
+        <source>Clear all fields of the form.</source>
+        <translation type="unfinished">फार्म के सभी फ़ील्ड क्लिअर करें।</translation>
+    </message>
+    <message>
+        <source>Clear</source>
+        <translation type="unfinished">क्लिअर </translation>
+    </message>
+    <message>
+        <source>Requested payments history</source>
+        <translation type="unfinished">अनुरोधित भुगतान इतिहास</translation>
+    </message>
+    <message>
+        <source>Show the selected request (does the same as double clicking an entry)</source>
+        <translation type="unfinished">चयनित अनुरोध दिखाएं (यह एक प्रविष्टि पर डबल क्लिक करने जैसा ही है)</translation>
+    </message>
+    <message>
+        <source>Show</source>
+        <translation type="unfinished">शो</translation>
+    </message>
+    <message>
+        <source>Remove the selected entries from the list</source>
+        <translation type="unfinished">सूची से चयनित प्रविष्टियों को हटा दें</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished">रिमूव</translation>
+    </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">कॉपी &amp; यूआरआई</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;कॉपी अड्रेस</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">कॉपी  &amp;लेबल</translation>
+    </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">कॉपी  &amp;मेसेज</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">कॉपी &amp;अमाउंट</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">वॉलेट अनलॉक नहीं किया जा सकता |</translation>
+    </message>
+    <message>
+        <source>Could not generate new %1 address</source>
+        <translation type="unfinished">नया पता उत्पन्न नहीं कर सका %1 </translation>
+    </message>
+</context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Request payment to …</source>
+        <translation type="unfinished">भुगतान का अनुरोध करें …</translation>
+    </message>
+    <message>
+        <source>Address:</source>
+        <translation type="unfinished">अड्रेस:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">अमाउंट:</translation>
+    </message>
+    <message>
+        <source>Label:</source>
+        <translation type="unfinished">लेबल:</translation>
+    </message>
+    <message>
+        <source>Message:</source>
+        <translation type="unfinished">मेसेज:</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">वॉलेट:</translation>
+    </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">कॉपी &amp; यूआरआई</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Address</source>
+        <translation type="unfinished">कॉपी  &amp;अड्रेस</translation>
+    </message>
+    <message>
+        <source>&amp;Verify</source>
+        <translation type="unfinished">&amp;वेरीफाय</translation>
+    </message>
+    <message>
+        <source>Verify this address on e.g. a hardware wallet screen</source>
+        <translation type="unfinished">इस पते को वेरीफाय करें उदा.  एक हार्डवेयर वॉलेट स्क्रीन</translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;सेव इमेज…</translation>
+    </message>
+    <message>
+        <source>Payment information</source>
+        <translation type="unfinished">भुगतान की जानकारी</translation>
+    </message>
+    <message>
+        <source>Request payment to %1</source>
+        <translation type="unfinished">भुगतान का अनुरोध करें %1</translation>
+    </message>
+</context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">डेट</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">लेबल</translation>
+    </message>
+    <message>
+        <source>Message</source>
+        <translation type="unfinished">मेसेज</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(नो लेबल)</translation>
+    </message>
+    <message>
+        <source>(no message)</source>
+        <translation type="unfinished">(नो मेसेज)</translation>
+    </message>
+    <message>
+        <source>(no amount requested)</source>
+        <translation type="unfinished">(कोई अमाउंट नहीं मांगी गई)</translation>
+    </message>
+    <message>
+        <source>Requested</source>
+        <translation type="unfinished">रिक्वेस्टेड</translation>
+    </message>
+</context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message>
+        <source>Send Coins</source>
+        <translation type="unfinished">सेन्ड कॉइन्स</translation>
+    </message>
+    <message>
+        <source>Coin Control Features</source>
+        <translation type="unfinished">कॉइन कंट्रोल फिचर्स</translation>
+    </message>
+    <message>
+        <source>automatically selected</source>
+        <translation type="unfinished">स्वचालित रूप से चयनित</translation>
+    </message>
+    <message>
+        <source>Insufficient funds!</source>
+        <translation type="unfinished">अपर्याप्त कोष!</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">क्वांटिटी:</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">बाइट्स:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">अमाउंट:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">फी:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">आफ़्टर फी:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">चेइन्ज:</translation>
+    </message>
+    <message>
+        <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source>
+        <translation type="unfinished">यदि यह सक्रिय है, लेकिन परिवर्तन का पता खाली या अमान्य है, तो परिवर्तन नए जनरेट किए गए पते पर भेजा जाएगा।</translation>
+    </message>
+    <message>
+        <source>Custom change address</source>
+        <translation type="unfinished">कस्टम परिवर्तन पता</translation>
+    </message>
+    <message>
+        <source>Transaction Fee:</source>
+        <translation type="unfinished">लेनदेन शुल्क:</translation>
+    </message>
+    <message>
+        <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source>
+        <translation type="unfinished">फ़ॉलबैक शुल्क का उपयोग करने से एक लेन-देन भेजा जा सकता है जिसकी पुष्टि करने में कई घंटे या दिन (या कभी नहीं) लगेंगे। अपना शुल्क मैन्युअल रूप से चुनने पर विचार करें या तब तक प्रतीक्षा करें जब तक आप पूरी श्रृंखला को मान्य नहीं कर लेते।</translation>
+    </message>
+    <message>
+        <source>Warning: Fee estimation is currently not possible.</source>
+        <translation type="unfinished">चेतावनी: शुल्क का अनुमान फिलहाल संभव नहीं है।</translation>
+    </message>
+    <message>
+        <source>per kilobyte</source>
+        <translation type="unfinished">प्रति किलोबाइट</translation>
+    </message>
+    <message>
+        <source>Hide</source>
+        <translation type="unfinished">हाइड</translation>
+    </message>
+    <message>
+        <source>Recommended:</source>
+        <translation type="unfinished">रेकमेन्डेड:</translation>
+    </message>
+    <message>
+        <source>Custom:</source>
+        <translation type="unfinished">कस्टम:</translation>
+    </message>
+    <message>
+        <source>Send to multiple recipients at once</source>
+        <translation type="unfinished">एक साथ कई प्राप्तकर्ताओं को भेजें</translation>
+    </message>
+    <message>
+        <source>Add &amp;Recipient</source>
+        <translation type="unfinished">अड &amp;रिसिपिएंट</translation>
+    </message>
+    <message>
+        <source>Clear all fields of the form.</source>
+        <translation type="unfinished">फार्म के सभी फ़ील्ड क्लिअर करें।</translation>
+    </message>
+    <message>
+        <source>Inputs…</source>
+        <translation type="unfinished">इनपुट्स…</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">डस्ट:</translation>
+    </message>
+    <message>
+        <source>Choose…</source>
+        <translation type="unfinished">चुज…</translation>
+    </message>
+    <message>
+        <source>Hide transaction fee settings</source>
+        <translation type="unfinished">लेनदेन शुल्क सेटिंग छुपाएं</translation>
+    </message>
+    <message>
+        <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size.
+
+Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satoshis per kvB" for a transaction size of 500 virtual bytes (half of 1 kvB) would ultimately yield a fee of only 50 satoshis.</source>
+        <translation type="unfinished">लेन-देन के आभासी आकार के प्रति kB (1,000 बाइट्स) के लिए एक कस्टम शुल्क निर्दिष्ट करें।
+
+नोट: चूंकि शुल्क की गणना प्रति-बाइट के आधार पर की जाती है, इसलिए 500 वर्चुअल बाइट्स (1 केवीबी का आधा) के लेन-देन के आकार के लिए "100 सतोशी प्रति केवीबी" की शुल्क दर अंततः केवल 50 सतोशी का शुल्क देगी।</translation>
+    </message>
+    <message>
+        <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source>
+        <translation type="unfinished">जब ब्लॉक में स्थान की तुलना में कम लेन-देन की मात्रा होती है, तो खनिकों के साथ-साथ रिलेइंग नोड्स न्यूनतम शुल्क लागू कर सकते हैं। केवल इस न्यूनतम शुल्क का भुगतान करना ठीक है, लेकिन ध्यान रखें कि नेटवर्क की प्रक्रिया की तुलना में बिटकॉइन लेनदेन की अधिक मांग होने पर इसका परिणाम कभी भी पुष्टिकरण लेनदेन में नहीं हो सकता है।</translation>
+    </message>
+    <message>
+        <source>A too low fee might result in a never confirming transaction (read the tooltip)</source>
+        <translation type="unfinished">बहुत कम शुल्क के परिणामस्वरूप कभी भी पुष्टिकरण लेनदेन नहीं हो सकता है (टूलटिप पढ़ें)</translation>
+    </message>
+    <message>
+        <source>(Smart fee not initialized yet. This usually takes a few blocks…)</source>
+        <translation type="unfinished">(स्मार्ट शुल्क अभी शुरू नहीं हुआ है। इसमें आमतौर पर कुछ ब्लॉक लगते हैं…)</translation>
+    </message>
+    <message>
+        <source>Confirmation time target:</source>
+        <translation type="unfinished">पुष्टि समय लक्ष्य:</translation>
+    </message>
+    <message>
+        <source>Enable Replace-By-Fee</source>
+        <translation type="unfinished">प्रतिस्थापन-दर-शुल्क सक्षम करें</translation>
+    </message>
+    <message>
+        <source>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</source>
+        <translation type="unfinished">प्रतिस्थापन-दर-शुल्क (बीआईपी-125) के साथ आप लेनदेन के शुल्क को भेजने के बाद बढ़ा सकते हैं। इसके बिना, बढ़े हुए लेन-देन में देरी के जोखिम की भरपाई के लिए एक उच्च शुल्क की सिफारिश की जा सकती है।</translation>
+    </message>
+    <message>
+        <source>Clear &amp;All</source>
+        <translation type="unfinished">क्लीयर &amp;अल</translation>
+    </message>
+    <message>
+        <source>Balance:</source>
+        <translation type="unfinished">बेलेंस:</translation>
+    </message>
+    <message>
+        <source>Confirm the send action</source>
+        <translation type="unfinished">भेजें कार्रवाई की पुष्टि करें</translation>
+    </message>
+    <message>
+        <source>S&amp;end</source>
+        <translation type="unfinished">सेन्ड&amp;</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">कॉपी क्वांटिटी</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">कॉपी अमाउंट</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">कॉपी फी</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">कॉपी आफ़्टर फी</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">कॉपी बाइट्स</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">कॉपी डस्ट</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">कॉपी चैंज</translation>
+    </message>
+    <message>
+        <source>%1 (%2 blocks)</source>
+        <translation type="unfinished">%1 (%2 ब्लाकस)</translation>
+    </message>
+    <message>
+        <source>Sign on device</source>
+        <extracomment>"device" usually means a hardware wallet.</extracomment>
+        <translation type="unfinished">डिवाइस पर साइन करें</translation>
+    </message>
+    <message>
+        <source>Connect your hardware wallet first.</source>
+        <translation type="unfinished">पहले अपना हार्डवेयर वॉलेट कनेक्ट करें।</translation>
+    </message>
+    <message>
+        <source>Set external signer script path in Options -&gt; Wallet</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">विकल्प में बाहरी हस्ताक्षरकर्ता स्क्रिप्ट पथ सेट करें -&gt; वॉलेट </translation>
+    </message>
+    <message>
+        <source>Cr&amp;eate Unsigned</source>
+        <translation type="unfinished">&amp;अहस्ताक्षरित बनाएं</translation>
+    </message>
+    <message>
+        <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <translation type="unfinished">उदाहरण के लिए उपयोग के लिए आंशिक रूप से हस्ताक्षरित बिटकॉइन लेनदेन (PSBT) बनाता है। एक ऑफ़लाइन% 1 %1  वॉलेट, या एक PSBT-संगत हार्डवेयर वॉलेट।</translation>
+    </message>
+    <message>
+        <source> from wallet '%1'</source>
+        <translation type="unfinished">वॉलिट से '%1'</translation>
+    </message>
+    <message>
+        <source>%1 to '%2'</source>
+        <translation type="unfinished">%1टु '%2'</translation>
+    </message>
+    <message>
+        <source>%1 to %2</source>
+        <translation type="unfinished">%1 टु %2</translation>
+    </message>
+    <message>
+        <source>To review recipient list click "Show Details…"</source>
+        <translation type="unfinished">प्राप्तकर्ता सूची की समीक्षा करने के लिए "शो डिटैइल्स ..." पर क्लिक करें।</translation>
+    </message>
+    <message>
+        <source>Sign failed</source>
+        <translation type="unfinished">साइन फेल्ड</translation>
+    </message>
+    <message>
+        <source>External signer not found</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">बाहरी हस्ताक्षरकर्ता नहीं मिला</translation>
+    </message>
+    <message>
+        <source>External signer failure</source>
+        <extracomment>"External signer" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">बाहरी हस्ताक्षरकर्ता विफलता</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">लेन-देन डेटा सहेजें</translation>
+    </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">आंशिक रूप से हस्ताक्षरित लेनदेन (बाइनरी)</translation>
+    </message>
+    <message>
+        <source>PSBT saved</source>
+        <translation type="unfinished">पीएसबीटी सहेजा गया
+ </translation>
+    </message>
+    <message>
+        <source>External balance:</source>
+        <translation type="unfinished">बाहरी संतुलन:</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">और</translation>
+    </message>
+    <message>
+        <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source>
+        <translation type="unfinished">आप बाद में शुल्क बढ़ा सकते हैं (सिग्नलस रिप्लेसमेंट-बाय-फी, बीआईपी-125)।</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
+        <translation type="unfinished">कृपया, अपने लेनदेन प्रस्ताव की समीक्षा करें। यह एक आंशिक रूप से हस्ताक्षरित बिटकॉइन लेनदेन (PSBT) का उत्पादन करेगा जिसे आप सहेज सकते हैं या कॉपी कर सकते हैं और फिर उदा। एक ऑफ़लाइन %1  वॉलेट, या एक PSBT-संगत हार्डवेयर वॉलेट।</translation>
+    </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">क्या आप यह लेन-देन बनाना चाहते हैं?</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction. You can create and send this transaction or create a Partially Signed Bitcoin Transaction (PSBT), which you can save or copy and then sign with, e.g., an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
+        <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can send their transaction or create a PSBT. This string is displayed when both private keys and PSBT controls are enabled.</extracomment>
+        <translation type="unfinished">कृपया, अपने लेन-देन की समीक्षा करें। आप इस लेन-देन को बना और भेज सकते हैं या आंशिक रूप से हस्ताक्षरित बिटकॉइन लेनदेन (पीएसबीटी) बना सकते हैं, जिसे आप सहेज सकते हैं या कॉपी कर सकते हैं और फिर हस्ताक्षर कर सकते हैं, उदाहरण के लिए, ऑफ़लाइन %1 वॉलेट, या पीएसबीटी-संगत हार्डवेयर वॉलेट।</translation>
+    </message>
+    <message>
+        <source>Please, review your transaction.</source>
+        <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
+        <translation type="unfinished">कृपया, अपने लेन-देन की समीक्षा करें।</translation>
+    </message>
+    <message>
+        <source>Transaction fee</source>
+        <translation type="unfinished">लेनदेन शुल्क</translation>
+    </message>
+    <message>
+        <source>Not signalling Replace-By-Fee, BIP-125.</source>
+        <translation type="unfinished">रिप्लेसमेंट-बाय-फी, बीआईपी-125 सिग्नलिंग नहीं।</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">कुल राशि</translation>
+    </message>
+    <message>
+        <source>Confirm send coins</source>
+        <translation type="unfinished">सिक्के भेजने की पुष्टि करें</translation>
+    </message>
+    <message>
+        <source>Watch-only balance:</source>
+        <translation type="unfinished">केवल देखने के लिए शेष राशि</translation>
+    </message>
+    <message>
+        <source>The recipient address is not valid. Please recheck.</source>
+        <translation type="unfinished">प्राप्तकर्ता का पता मान्य नहीं है। कृपया पुनः जाँच करें</translation>
+    </message>
+    <message>
+        <source>The amount to pay must be larger than 0.</source>
+        <translation type="unfinished">भुगतान की जाने वाली राशि 0 से अधिक होनी चाहिए।</translation>
+    </message>
+    <message>
+        <source>The amount exceeds your balance.</source>
+        <translation type="unfinished">राशि आपकी शेष राशि से अधिक है।</translation>
+    </message>
+    <message>
+        <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+        <translation type="unfinished"> %1 जब लेन-देन शुल्क शामिल किया जाता है, तो कुल आपकी शेष राशि से अधिक हो जाती है।</translation>
+    </message>
+    <message>
+        <source>Duplicate address found: addresses should only be used once each.</source>
+        <translation type="unfinished">डुप्लिकेट पता मिला: पतों का उपयोग केवल एक बार किया जाना चाहिए।</translation>
+    </message>
+    <message>
+        <source>Transaction creation failed!</source>
+        <translation type="unfinished">लेन-देन निर्माण विफल!</translation>
+    </message>
+    <message>
+        <source>A fee higher than %1 is considered an absurdly high fee.</source>
+        <translation type="unfinished"> %1 से अधिक शुल्क एक बेतुका उच्च शुल्क माना जाता है।</translation>
+    </message>
+    <message>
+        <source>Payment request expired.</source>
+        <translation type="unfinished">भुगतान अनुरोध समाप्त हो गया।</translation>
+    </message>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform>Estimated to begin confirmation within %n block(s).</numerusform>
+            <numerusform> %n ब्लॉक (ब्लॉकों) के भीतर पुष्टि शुरू करने का अनुमान है।</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Warning: Invalid Bitcoin address</source>
+        <translation type="unfinished">चेतावनी: अमान्य बिटकॉइन पता</translation>
+    </message>
+    <message>
+        <source>Warning: Unknown change address</source>
+        <translation type="unfinished">चेतावनी: अज्ञात परिवर्तन पता</translation>
+    </message>
+    <message>
+        <source>Confirm custom change address</source>
+        <translation type="unfinished">कस्टम परिवर्तन पते की पुष्टि करें</translation>
+    </message>
+    <message>
+        <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source>
+        <translation type="unfinished">आपके द्वारा परिवर्तन के लिए चुना गया पता इस वॉलेट का हिस्सा नहीं है। आपके वॉलेट में कोई भी या सभी धनराशि इस पते पर भेजी जा सकती है। क्या आपको यकीन है?</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">(नो लेबल)</translation>
+    </message>
+</context>
+<context>
+    <name>SendCoinsEntry</name>
+    <message>
+        <source>A&amp;mount:</source>
+        <translation type="unfinished">&amp;अमौंट</translation>
+    </message>
+    <message>
+        <source>Pay &amp;To:</source>
+        <translation type="unfinished">पें &amp;टु:</translation>
+    </message>
+    <message>
+        <source>&amp;Label:</source>
+        <translation type="unfinished">&amp;लेबल:</translation>
+    </message>
+    <message>
+        <source>Choose previously used address</source>
+        <translation type="unfinished">पहले इस्तेमाल किया गया पता चुनें</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address to send the payment to</source>
+        <translation type="unfinished">भुगतान भेजने के लिए बिटकॉइन पता</translation>
+    </message>
+    <message>
+        <source>Alt+A</source>
+        <translation type="unfinished">Alt+A </translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">क्लिपबोर्ड से पता चिपकाएं</translation>
+    </message>
+    <message>
+        <source>Alt+P</source>
+        <translation type="unfinished">Alt+P </translation>
+    </message>
+    <message>
+        <source>Remove this entry</source>
+        <translation type="unfinished">इस प्रविष्टि को हटाएं</translation>
+    </message>
+    <message>
+        <source>The amount to send in the selected unit</source>
+        <translation type="unfinished">चयनित इकाई में भेजने के लिए राशि</translation>
+    </message>
+    <message>
+        <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source>
+        <translation type="unfinished">भेजी जाने वाली राशि से शुल्क की कटौती की जाएगी। प्राप्तकर्ता को आपके द्वारा राशि फ़ील्ड में दर्ज किए जाने से कम बिटकॉइन प्राप्त होंगे। यदि कई प्राप्तकर्ताओं का चयन किया जाता है, तो शुल्क समान रूप से विभाजित किया जाता है।</translation>
+    </message>
+    <message>
+        <source>S&amp;ubtract fee from amount</source>
+        <translation type="unfinished">&amp;राशि से शुल्क घटाएं</translation>
+    </message>
+    <message>
+        <source>Use available balance</source>
+        <translation type="unfinished">उपलब्ध शेष राशि का उपयोग करें</translation>
+    </message>
+    <message>
+        <source>Message:</source>
+        <translation type="unfinished">मेसेज:</translation>
+    </message>
+    <message>
+        <source>This is an unauthenticated payment request.</source>
+        <translation type="unfinished">यह एक अनधिकृत भुगतान अनुरोध है।</translation>
+    </message>
+    <message>
+        <source>This is an authenticated payment request.</source>
+        <translation type="unfinished">यह एक प्रमाणित भुगतान अनुरोध है।</translation>
+    </message>
+    <message>
+        <source>Enter a label for this address to add it to the list of used addresses</source>
+        <translation type="unfinished">इस पते के लिए उपयोग किए गए पतों की सूची में जोड़ने के लिए एक लेबल दर्ज करें</translation>
+    </message>
+    <message>
+        <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source>
+        <translation type="unfinished">एक संदेश जो बिटकॉइन से जुड़ा था: यूआरआई जो आपके संदर्भ के लिए लेनदेन के साथ संग्रहीत किया जाएगा। नोट: यह संदेश बिटकॉइन नेटवर्क पर नहीं भेजा जाएगा।</translation>
+    </message>
+    <message>
+        <source>Pay To:</source>
+        <translation type="unfinished">पे टु:</translation>
+    </message>
+    <message>
+        <source>Memo:</source>
+        <translation type="unfinished">मेमो:</translation>
+    </message>
+</context>
+<context>
+    <name>SendConfirmationDialog</name>
+    <message>
+        <source>Send</source>
+        <translation type="unfinished">सेइंड</translation>
+    </message>
+    <message>
+        <source>Create Unsigned</source>
+        <translation type="unfinished">अहस्ताक्षरित बनाएं</translation>
+    </message>
+</context>
+<context>
+    <name>SignVerifyMessageDialog</name>
+    <message>
+        <source>Signatures - Sign / Verify a Message</source>
+        <translation type="unfinished">हस्ताक्षर - एक संदेश पर हस्ताक्षर करें / सत्यापित करें</translation>
+    </message>
+    <message>
+        <source>&amp;Sign Message</source>
+        <translation type="unfinished">&amp;संदेश पर हस्ताक्षर करें</translation>
+    </message>
+    <message>
+        <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
+        <translation type="unfinished">आप अपने पते के साथ संदेशों/समझौतों पर हस्ताक्षर करके यह साबित कर सकते हैं कि आप उन्हें भेजे गए बिटकॉइन प्राप्त कर सकते हैं। सावधान रहें कि कुछ भी अस्पष्ट या यादृच्छिक पर हस्ताक्षर न करें, क्योंकि फ़िशिंग हमले आपको अपनी पहचान पर हस्ताक्षर करने के लिए छल करने का प्रयास कर सकते हैं। केवल पूरी तरह से विस्तृत बयानों पर हस्ताक्षर करें जिनसे आप सहमत हैं।</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address to sign the message with</source>
+        <translation type="unfinished">संदेश पर हस्ताक्षर करने के लिए बिटकॉइन पता</translation>
+    </message>
+    <message>
+        <source>Choose previously used address</source>
+        <translation type="unfinished">पहले इस्तेमाल किया गया पता चुनें</translation>
+    </message>
+    <message>
+        <source>Alt+A</source>
+        <translation type="unfinished">Alt+A </translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">क्लिपबोर्ड से पता चिपकाएं</translation>
+    </message>
+    <message>
+        <source>Alt+P</source>
+        <translation type="unfinished">Alt+P </translation>
+    </message>
+    <message>
+        <source>Enter the message you want to sign here</source>
+        <translation type="unfinished">वह संदेश दर्ज करें जिस पर आप हस्ताक्षर करना चाहते हैं</translation>
+    </message>
+    <message>
+        <source>Signature</source>
+        <translation type="unfinished">हस्ताक्षर</translation>
+    </message>
+    <message>
+        <source>Copy the current signature to the system clipboard</source>
+        <translation type="unfinished">वर्तमान हस्ताक्षर को सिस्टम क्लिपबोर्ड पर कॉपी करें</translation>
+    </message>
+    <message>
+        <source>Sign the message to prove you own this Bitcoin address</source>
+        <translation type="unfinished">यह साबित करने के लिए संदेश पर हस्ताक्षर करें कि आप इस बिटकॉइन पते के स्वामी हैं</translation>
+    </message>
+    <message>
+        <source>Sign &amp;Message</source>
+        <translation type="unfinished">साइन &amp; मैसेज</translation>
+    </message>
+    <message>
+        <source>Reset all sign message fields</source>
+        <translation type="unfinished">सभी साइन संदेश फ़ील्ड रीसेट करें</translation>
+    </message>
+    <message>
+        <source>Clear &amp;All</source>
+        <translation type="unfinished">&amp;सभी साफ करें</translation>
+    </message>
+    <message>
+        <source>&amp;Verify Message</source>
+        <translation type="unfinished">&amp;संदेश सत्यापित करें</translation>
+    </message>
+    <message>
+        <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source>
+        <translation type="unfinished">संदेश को सत्यापित करने के लिए नीचे प्राप्तकर्ता का पता, संदेश (सुनिश्चित करें कि आप लाइन ब्रेक, रिक्त स्थान, टैब आदि की प्रतिलिपि बनाते हैं) और हस्ताक्षर दर्ज करें। सावधान रहें कि हस्ताक्षरित संदेश में जो लिखा है, उससे अधिक हस्ताक्षर में न पढ़ें, ताकि बीच-बीच में किसी व्यक्ति द्वारा छल किए जाने से बचा जा सके। ध्यान दें कि यह केवल यह साबित करता है कि हस्ताक्षर करने वाला पक्ष पते के साथ प्राप्त करता है, यह किसी भी लेनदेन की प्रेषकता साबित नहीं कर सकता है!</translation>
+    </message>
+    <message>
+        <source>The Bitcoin address the message was signed with</source>
+        <translation type="unfinished">संदेश के साथ हस्ताक्षर किए गए बिटकॉइन पते</translation>
+    </message>
+    <message>
+        <source>The signed message to verify</source>
+        <translation type="unfinished">सत्यापित करने के लिए हस्ताक्षरित संदेश</translation>
+    </message>
+    <message>
+        <source>The signature given when the message was signed</source>
+        <translation type="unfinished">संदेश पर हस्ताक्षर किए जाने पर दिए गए हस्ताक्षर</translation>
+    </message>
+    <message>
+        <source>Verify the message to ensure it was signed with the specified Bitcoin address</source>
+        <translation type="unfinished">यह सुनिश्चित करने के लिए संदेश सत्यापित करें कि यह निर्दिष्ट बिटकॉइन पते के साथ हस्ताक्षरित था</translation>
+    </message>
+    <message>
+        <source>Verify &amp;Message</source>
+        <translation type="unfinished">सत्यापित करें और संदेश</translation>
+    </message>
+    <message>
+        <source>Reset all verify message fields</source>
+        <translation type="unfinished">सभी सत्यापित संदेश फ़ील्ड रीसेट करें</translation>
+    </message>
+    <message>
+        <source>Click "Sign Message" to generate signature</source>
+        <translation type="unfinished">हस्ताक्षर उत्पन्न करने के लिए "साईन मेसेज" पर क्लिक करें</translation>
+    </message>
+    <message>
+        <source>The entered address is invalid.</source>
+        <translation type="unfinished">दर्ज किया गया पता अमान्य है।</translation>
+    </message>
+    <message>
+        <source>Please check the address and try again.</source>
+        <translation type="unfinished">कृपया पते की जांच करें और पुनः प्रयास करें।</translation>
+    </message>
+    <message>
+        <source>The entered address does not refer to a key.</source>
+        <translation type="unfinished">दर्ज किया गया पता एक कुंजी को संदर्भित नहीं करता है।</translation>
+    </message>
+    <message>
+        <source>Wallet unlock was cancelled.</source>
+        <translation type="unfinished">वॉलेट अनलॉक रद्द कर दिया गया था।
+ </translation>
+    </message>
+    <message>
+        <source>No error</source>
+        <translation type="unfinished">कोई त्रुटि नहीं</translation>
+    </message>
+    <message>
+        <source>Private key for the entered address is not available.</source>
+        <translation type="unfinished">दर्ज पते के लिए निजी कुंजी उपलब्ध नहीं है।</translation>
+    </message>
+    <message>
+        <source>Message signing failed.</source>
+        <translation type="unfinished">संदेश हस्ताक्षर विफल।</translation>
+    </message>
+    <message>
+        <source>Message signed.</source>
+        <translation type="unfinished">संदेश पर हस्ताक्षर किए।</translation>
+    </message>
+    <message>
+        <source>The signature could not be decoded.</source>
+        <translation type="unfinished">हस्ताक्षर को डिकोड नहीं किया जा सका।</translation>
+    </message>
+    <message>
+        <source>Please check the signature and try again.</source>
+        <translation type="unfinished">कृपया हस्ताक्षर जांचें और पुन: प्रयास करें।</translation>
+    </message>
+    <message>
+        <source>The signature did not match the message digest.</source>
+        <translation type="unfinished">हस्ताक्षर संदेश डाइजेस्ट से मेल नहीं खाते।</translation>
+    </message>
+    <message>
+        <source>Message verification failed.</source>
+        <translation type="unfinished">संदेश सत्यापन विफल।</translation>
+    </message>
+    <message>
+        <source>Message verified.</source>
+        <translation type="unfinished">संदेश सत्यापित।</translation>
+    </message>
+</context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>(press q to shutdown and continue later)</source>
+        <translation type="unfinished">(बंद करने के लिए q दबाएं और बाद में जारी रखें)</translation>
+    </message>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">शटडाउन करने के लिए q दबाएं</translation>
+    </message>
+</context>
+<context>
+    <name>TrafficGraphWidget</name>
+    <message>
+        <source>kB/s</source>
+        <translation type="unfinished">kB/s </translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDesc</name>
+    <message>
+        <source>conflicted with a transaction with %1 confirmations</source>
+        <translation type="unfinished"> %1 पुष्टिकरण के साथ लेन-देन के साथ विरोधाभासी</translation>
+    </message>
+    <message>
+        <source>0/unconfirmed, %1</source>
+        <translation type="unfinished">0/अपुष्ट, %1</translation>
+    </message>
+    <message>
+        <source>in memory pool</source>
+        <translation type="unfinished">&lt;div&gt;मेमोरी पूल में&lt;/div&gt;</translation>
+    </message>
+    <message>
+        <source>not in memory pool</source>
+        <translation type="unfinished">मेमोरी पूल में नहीं</translation>
+    </message>
+    <message>
+        <source>abandoned</source>
+        <translation type="unfinished">अबॅन्डन्ड</translation>
+    </message>
+    <message>
+        <source>%1/unconfirmed</source>
+        <translation type="unfinished">%1/अपुष्ट</translation>
+    </message>
+    <message>
+        <source>%1 confirmations</source>
+        <translation type="unfinished">%1 पुष्टियों</translation>
+    </message>
+    <message>
+        <source>Status</source>
+        <translation type="unfinished">दर्जा</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">डेट</translation>
+    </message>
+    <message>
+        <source>Source</source>
+        <translation type="unfinished">सॉSस</translation>
+    </message>
+    <message>
+        <source>Generated</source>
+        <translation type="unfinished">जनरेट किया गया</translation>
+    </message>
+    <message>
+        <source>From</source>
+        <translation type="unfinished">से</translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished">अनजान</translation>
+    </message>
+    <message>
+        <source>To</source>
+        <translation type="unfinished">प्रति</translation>
+    </message>
+    <message>
+        <source>own address</source>
+        <translation type="unfinished">खुद का पता</translation>
+    </message>
+    <message>
+        <source>watch-only</source>
+        <translation type="unfinished">निगरानी-केवल</translation>
+    </message>
+    <message>
+        <source>label</source>
+        <translation type="unfinished">लेबल</translation>
+    </message>
+    <message>
+        <source>Credit</source>
+        <translation type="unfinished">श्रेय</translation>
+    </message>
+    <message numerus="yes">
+        <source>matures in %n more block(s)</source>
+        <translation type="unfinished">
+            <numerusform>matures in %n more block(s)</numerusform>
+            <numerusform> %nअधिक ब्लॉक (ब्लॉकों) में परिपक्व</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>not accepted</source>
+        <translation type="unfinished">मंजूर नहीं</translation>
+    </message>
+    <message>
+        <source>Debit</source>
+        <translation type="unfinished">जमा</translation>
+    </message>
+    <message>
+        <source>Total debit</source>
+        <translation type="unfinished">कुल डेबिट</translation>
+    </message>
+    <message>
+        <source>Total credit</source>
+        <translation type="unfinished">कुल क्रेडिट</translation>
+    </message>
+    <message>
+        <source>Transaction fee</source>
+        <translation type="unfinished">लेनदेन शुल्क</translation>
+    </message>
+    <message>
+        <source>Net amount</source>
+        <translation type="unfinished">निवल राशि</translation>
+    </message>
+    <message>
+        <source>Message</source>
+        <translation type="unfinished">मेसेज</translation>
+    </message>
+    <message>
+        <source>Comment</source>
+        <translation type="unfinished">कमेंट</translation>
+    </message>
+    <message>
+        <source>Transaction ID</source>
+        <translation type="unfinished">लेन-देन आईडी</translation>
+    </message>
+    <message>
+        <source>Transaction total size</source>
+        <translation type="unfinished">लेन-देन कुल आकार</translation>
+    </message>
+    <message>
+        <source>Transaction virtual size</source>
+        <translation type="unfinished">लेनदेन आभासी आकार</translation>
+    </message>
+    <message>
+        <source>Output index</source>
+        <translation type="unfinished">आउटपुट इंडेक्स</translation>
+    </message>
+    <message>
+        <source> (Certificate was not verified)</source>
+        <translation type="unfinished">(प्रमाणपत्र सत्यापित नहीं किया गया था)</translation>
+    </message>
+    <message>
+        <source>Merchant</source>
+        <translation type="unfinished">सौदागर</translation>
+    </message>
+    <message>
+        <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+        <translation type="unfinished"> %1 सृजित सिक्कों को खर्च करने से पहले ब्लॉक में परिपक्व होना चाहिए। जब आपने इस ब्लॉक को जनरेट किया था, तो इसे नेटवर्क में प्रसारित किया गया था ताकि इसे ब्लॉक चेन में जोड़ा जा सके। यदि यह श्रृंखला में शामिल होने में विफल रहता है, तो इसकी स्थिति "स्वीकृत नहीं" में बदल जाएगी और यह खर्च करने योग्य नहीं होगी। यह कभी-कभी हो सकता है यदि कोई अन्य नोड आपके कुछ सेकंड के भीतर एक ब्लॉक उत्पन्न करता है।</translation>
+    </message>
+    <message>
+        <source>Debug information</source>
+        <translation type="unfinished">डीबग जानकारी</translation>
+    </message>
+    <message>
+        <source>Transaction</source>
+        <translation type="unfinished">लेन-देन</translation>
+    </message>
+    <message>
+        <source>Inputs</source>
+        <translation type="unfinished">इनपुट</translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">राशि</translation>
+    </message>
+    <message>
+        <source>true</source>
+        <translation type="unfinished">सच</translation>
+    </message>
+    <message>
+        <source>false</source>
+        <translation type="unfinished">असत्य</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDescDialog</name>
+    <message>
+        <source>This pane shows a detailed description of the transaction</source>
+        <translation type="unfinished">यह फलक लेन-देन का विस्तृत विवरण दिखाता है</translation>
+    </message>
+    <message>
+        <source>Details for %1</source>
+        <translation type="unfinished">के लिए विवरण %1</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">डेट</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">टाइप</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">लेबल</translation>
+    </message>
+    <message>
+        <source>Unconfirmed</source>
+        <translation type="unfinished">अपुष्ट</translation>
+    </message>
+    <message>
+        <source>Abandoned</source>
+        <translation type="unfinished">अबॅन्डन्ड</translation>
+    </message>
+    <message>
+        <source>Confirming (%1 of %2 recommended confirmations)</source>
+        <translation type="unfinished">पुष्टिकरण (%1 में से  %2 अनुशंसित पुष्टिकरण)</translation>
+    </message>
+    <message>
+        <source>Confirmed (%1 confirmations)</source>
+        <translation type="unfinished">की पुष्टि की (%1 पुष्टिकरण)</translation>
+    </message>
+    <message>
+        <source>Conflicted</source>
+        <translation type="unfinished">विरोध हुआ</translation>
+    </message>
+    <message>
+        <source>Immature (%1 confirmations, will be available after %2)</source>
+        <translation type="unfinished">अपरिपक्व (%1 पुष्टिकरण, %2के बाद उपलब्ध होंगे)</translation>
+    </message>
+    <message>
+        <source>Generated but not accepted</source>
+        <translation type="unfinished">जनरेट किया गया लेकिन स्वीकार नहीं किया गया</translation>
     </message>
     </context>
 </TS>
\ No newline at end of file
diff --git a/src/qt/locale/bitcoin_mr_IN.ts b/src/qt/locale/bitcoin_mr_IN.ts
index d06e977f938..61efb77db6a 100644
--- a/src/qt/locale/bitcoin_mr_IN.ts
+++ b/src/qt/locale/bitcoin_mr_IN.ts
@@ -85,6 +85,16 @@
         <source>Export Address List</source>
         <translation type="unfinished">पत्त्याची निर्यात करा</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">कॉमा सेपरेटेड फ़ाइल</translation>
+    </message>
+    <message>
+        <source>There was an error trying to save the address list to %1. Please try again.</source>
+        <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
+        <translation type="unfinished">पत्ता सूची  वर जतन करण्याचा प्रयत्न करताना त्रुटी आली. कृपया पुन्हा प्रयत्न करा.%1</translation>
+    </message>
     <message>
         <source>Exporting Failed</source>
         <translation type="unfinished">निर्यात अयशस्वी</translation>
@@ -105,8 +115,67 @@
         <translation type="unfinished">(लेबल नाही)</translation>
     </message>
 </context>
+<context>
+    <name>AskPassphraseDialog</name>
+    <message>
+        <source>Passphrase Dialog</source>
+        <translation type="unfinished">पासफ़्रेज़ डाएलोग</translation>
+    </message>
+    <message>
+        <source>Enter passphrase</source>
+        <translation type="unfinished">पासफ़्रेज़  प्रविष्ट करा</translation>
+    </message>
+    <message>
+        <source>New passphrase</source>
+        <translation type="unfinished">नवीन पासफ़्रेज़ </translation>
+    </message>
+    <message>
+        <source>Repeat new passphrase</source>
+        <translation type="unfinished">नवीन पासफ़्रेज़  पुनरावृत्ती करा</translation>
+    </message>
+    <message>
+        <source>Show passphrase</source>
+        <translation type="unfinished">पासफ़्रेज़ दाखवा</translation>
+    </message>
+    <message>
+        <source>Encrypt wallet</source>
+        <translation type="unfinished">वॉलेट एनक्रिप्ट करा</translation>
+    </message>
+    <message>
+        <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+        <translation type="unfinished">वॉलेट अनलॉक करण्यासाठी या ऑपरेशनला तुमच्या वॉलेट पासफ़्रेज़ची आवश्यकता आहे.</translation>
+    </message>
+    <message>
+        <source>Unlock wallet</source>
+        <translation type="unfinished">वॉलेट अनलॉक करा</translation>
+    </message>
+    <message>
+        <source>Change passphrase</source>
+        <translation type="unfinished">पासफ़्रेज़ बदला</translation>
+    </message>
+    <message>
+        <source>Confirm wallet encryption</source>
+        <translation type="unfinished">वॉलेट एन्क्रिप्शनची पुष्टी करा
+ </translation>
+    </message>
+    </context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">एक गंभीर त्रुटी आली. %1यापुढे सुरक्षितपणे सुरू ठेवू शकत नाही आणि संपेल.</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">अंतर्गत त्रुटी</translation>
+    </message>
+    </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1अजून सुरक्षितपणे बाहेर पडलो नाही...</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
@@ -150,8 +219,79 @@
         </translation>
     </message>
     </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">सेटिंग्ज फाइल वाचता आली नाही</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">सेटिंग्ज फाइल लिहिता आली नाही</translation>
+    </message>
+    </context>
 <context>
     <name>BitcoinGUI</name>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;मिनीमाइज़</translation>
+    </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;पर्याय</translation>
+    </message>
+    <message>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;एनक्रिप्ट वॉलेट</translation>
+    </message>
+    <message>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;बॅकअप वॉलेट...</translation>
+    </message>
+    <message>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;पासफ्रेज बदला...</translation>
+    </message>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">स्वाक्षरी आणि संदेश...</translation>
+    </message>
+    <message>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;संदेश सत्यापित करा...</translation>
+    </message>
+    <message>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">फाइलमधून PSBT &amp;लोड करा...</translation>
+    </message>
+    <message>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">वॉलेट बंद करा...</translation>
+    </message>
+    <message>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">वॉलेट तयार करा...</translation>
+    </message>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">सर्व वॉलेट बंद करा...</translation>
+    </message>
+    <message>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">शीर्षलेख समक्रमित करत आहे (%1%)…</translation>
+    </message>
+    <message>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">नेटवर्कसह सिंक्रोनाइझ करत आहे...</translation>
+    </message>
+    <message>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">डिस्कवर ब्लॉक अनुक्रमित करत आहे...</translation>
+    </message>
+    <message>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">डिस्कवर ब्लॉक्सवर प्रक्रिया करत आहे...</translation>
+    </message>
     <message numerus="yes">
         <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
@@ -242,6 +382,11 @@
     </context>
 <context>
     <name>TransactionView</name>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">कॉमा सेपरेटेड फ़ाइल</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">लेबल</translation>
diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts
index 4d17a9a94c1..d8ae5cdb18e 100644
--- a/src/qt/locale/bitcoin_sr.ts
+++ b/src/qt/locale/bitcoin_sr.ts
@@ -264,6 +264,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
 </context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">Da li želiš da poništiš podešavanja na početne vrednosti, ili da prekineš bez promena?</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">Грешка: Одабрани директорјиум датотеке "%1" не постоји.</translation>
@@ -833,6 +838,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Create a new wallet</source>
         <translation type="unfinished">Направи нови ночаник</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;Minimalizuj</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">Новчаник:</translation>
@@ -1090,6 +1099,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>%1 client</source>
         <translation type="unfinished">%1 клијент</translation>
     </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;Sakrij</translation>
+    </message>
     <message>
         <source>S&amp;how</source>
         <translation type="unfinished">&amp;Прикажи</translation>
@@ -1378,6 +1391,19 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <translation type="unfinished">Не могу да излистам потписнике</translation>
     </message>
 </context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">Učitaj Novčanik</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">Učitavanje Novčanika...</translation>
+    </message>
+</context>
 <context>
     <name>OpenWalletActivity</name>
     <message>
@@ -1840,6 +1866,11 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>(0 = auto, &lt;0 = leave that many cores free)</source>
         <translation type="unfinished">(0 = аутоматски одреди, &lt;0 = остави слободно толико језгара)</translation>
     </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">Omogući R&amp;PC server</translation>
+    </message>
     <message>
         <source>W&amp;allet</source>
         <translation type="unfinished">Н&amp;овчаник</translation>
@@ -2035,6 +2066,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
         <translation type="unfinished">Конфигурациона датотека се користи да одреди напредне корисничке опције које поништају подешавања у графичком корисничком интерфејсу.</translation>
     </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">Nastavi</translation>
+    </message>
     <message>
         <source>Cancel</source>
         <translation type="unfinished">Откажи</translation>
@@ -2706,6 +2741,11 @@ If you are receiving this error you should request the merchant provide a BIP21
         <source>1 &amp;year</source>
         <translation type="unfinished">1 &amp;година</translation>
     </message>
+    <message>
+        <source>&amp;Copy IP/Netmask</source>
+        <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment>
+        <translation type="unfinished">&amp;Kopiraj IP/Netmask</translation>
+    </message>
     <message>
         <source>&amp;Unban</source>
         <translation type="unfinished">&amp;Уклони забрану</translation>
@@ -3229,6 +3269,11 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
         <translation type="unfinished">Молимо, проверите ваш предлог трансакције. Ово ће произвести делимично потписану Биткоин трансакцију (PSBT) коју можете копирати и онда потписати са нпр. офлајн %1 новчаником, или PSBT компатибилним хардверским новчаником.</translation>
     </message>
+    <message>
+        <source>Do you want to create this transaction?</source>
+        <extracomment>Message displayed when attempting to create a transaction. Cautionary text to prompt the user to verify that the displayed transaction details represent the transaction the user intends to create.</extracomment>
+        <translation type="unfinished">Da li želite da napravite ovu transakciju?</translation>
+    </message>
     <message>
         <source>Please, review your transaction.</source>
         <extracomment>Text to prompt a user to review the details of the transaction they are attempting to send.</extracomment>
@@ -3540,6 +3585,13 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <translation type="unfinished">Порука је проверена.</translation>
     </message>
 </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">pritisni q za gašenje</translation>
+    </message>
+</context>
 <context>
     <name>TrafficGraphWidget</name>
     <message>
@@ -3906,6 +3958,10 @@ Note:  Since the fee is calculated on a per-byte basis, a fee rate of "100 satos
         <source>Increase transaction &amp;fee</source>
         <translation type="unfinished">Повећај провизију трансакције</translation>
     </message>
+    <message>
+        <source>&amp;Edit address label</source>
+        <translation type="unfinished">&amp;Promeni adresu etikete</translation>
+    </message>
     <message>
         <source>Export Transaction History</source>
         <translation type="unfinished">Извези Детаље Трансакције</translation>
diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/bitcoin_ta.ts
index b752eab9eb9..7ccf037447a 100644
--- a/src/qt/locale/bitcoin_ta.ts
+++ b/src/qt/locale/bitcoin_ta.ts
@@ -15,16 +15,12 @@
     </message>
     <message>
         <source>Copy the currently selected address to the system clipboard</source>
-        <translation type="unfinished">தற்போது தேர்ந்தெடுக்கப்பட்ட முகவரியை கணினி கிளிப்போர்டுக்கு காபி செய்யவும்.</translation>
+        <translation type="unfinished">தற்போது தேர்ந்தெடுக்கப்பட்ட முகவரியை கணினி கிளிப்போர்டுக்கு காபி செய்யவும்</translation>
     </message>
     <message>
         <source>&amp;Copy</source>
         <translation type="unfinished">&amp;காபி</translation>
     </message>
-    <message>
-        <source>C&amp;lose</source>
-        <translation type="unfinished">&amp;மூடு</translation>
-    </message>
     <message>
         <source>Delete the currently selected address from the list</source>
         <translation type="unfinished">பட்டியலிலிருந்து தற்போது தேர்ந்தெடுக்கப்பட்ட முகவரி நீக்கவும்</translation>
@@ -253,9 +249,23 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>Internal error</source>
         <translation type="unfinished">உள் எறர்</translation>
     </message>
-    </context>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">உள் பிழை ஏற்பட்டது. 1%1  தொடர முயற்சிக்கும். இது எதிர்பாராத பிழை, கீழே விவரிக்கப்பட்டுள்ளபடி புகாரளிக்கலாம்.</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">அமைப்புகளை இயல்புநிலை மதிப்புகளுக்கு மீட்டமைக்க வேண்டுமா அல்லது மாற்றங்களைச் செய்யாமல் நிறுத்த வேண்டுமா?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">ஒரு அபாயகரமான பிழை ஏற்பட்டது. அமைப்புகள் கோப்பு எழுதக்கூடியதா என்பதைச் சரிபார்க்கவும் அல்லது -nosettings மூலம் இயக்க முயற்சிக்கவும்.</translation>
+    </message>
     <message>
         <source>Error: Specified data directory "%1" does not exist.</source>
         <translation type="unfinished">பிழை: குறிப்பிட்ட தரவு அடைவு "%1" இல்லை.</translation>
@@ -347,6 +357,14 @@ Signing is only possible with addresses of the type 'legacy'.</source>
     </context>
 <context>
     <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">அமைப்புகள் கோப்பைப் படிக்க முடியவில்லை</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">அமைப்புகள் கோப்பை எழுத முடியவில்லை</translation>
+    </message>
     <message>
         <source>The %s developers</source>
         <translation type="unfinished">%s டெவலப்பர்கள்</translation>
@@ -719,6 +737,10 @@ Signing is only possible with addresses of the type 'legacy'.</source>
         <source>&amp;Receive</source>
         <translation type="unfinished">&amp;பெறு</translation>
     </message>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;விருப்பங்கள்</translation>
+    </message>
     <message>
         <source>Encrypt the private keys that belong to your wallet</source>
         <translation type="unfinished">உங்கள் பணப்பைச் சேர்ந்த தனிப்பட்ட விசைகளை குறியாக்குக</translation>
diff --git a/src/qt/locale/bitcoin_te.ts b/src/qt/locale/bitcoin_te.ts
index 38e49ee98a9..123532d4233 100644
--- a/src/qt/locale/bitcoin_te.ts
+++ b/src/qt/locale/bitcoin_te.ts
@@ -3,7 +3,7 @@
     <name>AddressBookPage</name>
     <message>
         <source>Right-click to edit address or label</source>
-        <translation type="unfinished">చిరునామా లేదా లేబుల్ సవరించు -క్లిక్ చేయండి</translation>
+        <translation type="unfinished">చిరునామా లేదా లేబుల్ సవరించడానికి రైట్-క్లిక్ చేయండి</translation>
     </message>
     <message>
         <source>Create a new address</source>
@@ -23,7 +23,7 @@
     </message>
     <message>
         <source>C&amp;lose</source>
-        <translation type="unfinished">C&amp;కోల్పోవు</translation>
+        <translation type="unfinished">క్లో&amp;జ్</translation>
     </message>
     <message>
         <source>Delete the currently selected address from the list</source>
@@ -55,7 +55,7 @@
     </message>
     <message>
         <source>C&amp;hoose</source>
-        <translation type="unfinished">ఎంచుకోండి</translation>
+        <translation type="unfinished">ఎం&amp;చుకోండి</translation>
     </message>
     <message>
         <source>Sending addresses</source>
@@ -69,6 +69,11 @@
         <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source>
         <translation type="unfinished">ఇవి మీరు పంపే చెల్లింపుల బిట్‌కాయిన్ చిరునామాలు. నాణేలు పంపే ముందు ప్రతిసారి అందుకునే చిరునామా మరియు చెల్లింపు మొత్తం సరిచూసుకోండి.</translation>
     </message>
+    <message>
+        <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.
+Signing is only possible with addresses of the type 'legacy'.</source>
+        <translation type="unfinished">చెల్లింపులను స్వీకరించడానికి ఇవి మీ బిట్‌కాయిన్ చిరునామాలు. కొత్త చిరునామాలను సృష్టించడానికి స్వీకరించే ట్యాబ్‌లోని 'కొత్త స్వీకరించే చిరునామాను సృష్టించు' బటన్‌ను ఉపయోగించండి. 'లెగసీ' రకం చిరునామాలతో మాత్రమే సంతకం చేయడం సాధ్యమవుతుంది.</translation>
+    </message>
     <message>
         <source>&amp;Copy Address</source>
         <translation type="unfinished">చిరునామాను కాపీ చెయ్యండి</translation>
@@ -85,6 +90,11 @@
         <source>Export Address List</source>
         <translation type="unfinished">చిరునామా జాబితాను ఎగుమతి చేయండి</translation>
     </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">కామాతో వేరు చేయబడిన ఫైల్</translation>
+    </message>
     <message>
         <source>There was an error trying to save the address list to %1. Please try again.</source>
         <extracomment>An error message. %1 is a stand-in argument for the name of the file we attempted to save to.</extracomment>
@@ -228,8 +238,53 @@
         <translation type="unfinished">వరకు నిషేధించబడింది</translation>
     </message>
 </context>
+<context>
+    <name>BitcoinApplication</name>
+    <message>
+        <source>Runaway exception</source>
+        <translation type="unfinished">రన్అవే మినహాయింపు</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source>
+        <translation type="unfinished">ఘోరమైన లోపం సంభవించింది. 1 %1 ఇకపై సురక్షితంగా కొనసాగదు మరియు నిష్క్రమిస్తుంది.</translation>
+    </message>
+    <message>
+        <source>Internal error</source>
+        <translation type="unfinished">అంతర్గత లోపం</translation>
+    </message>
+    <message>
+        <source>An internal error occurred. %1 will attempt to continue safely. This is an unexpected bug which can be reported as described below.</source>
+        <translation type="unfinished">అంతర్గత లోపం సంభవించింది. 1 %1 సురక్షితంగా కొనసాగించడానికి ప్రయత్నిస్తుంది. ఇది ఊహించని బగ్, దీనిని దిగువ వివరించిన విధంగా నివేదించవచ్చు.</translation>
+    </message>
+</context>
 <context>
     <name>QObject</name>
+    <message>
+        <source>Do you want to reset settings to default values, or to abort without making changes?</source>
+        <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
+        <translation type="unfinished">మీరు సెట్టింగ్‌లను డిఫాల్ట్ విలువలకు రీసెట్ చేయాలనుకుంటున్నారా లేదా మార్పులు చేయకుండానే నిలిపివేయాలనుకుంటున్నారా?</translation>
+    </message>
+    <message>
+        <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
+        <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
+        <translation type="unfinished">ఘోరమైన లోపం సంభవించింది. సెట్టింగుల ఫైల్ వ్రాయదగినదో లేదో తనిఖీ చేయండి లేదా - నోసెట్టింగ్స్ తో అమలు చేయడానికి ప్రయత్నించండి.</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" does not exist.</source>
+        <translation type="unfinished">లోపం: పేర్కొన్న డేటా డైరెక్టరీ " %1 " లేదు.</translation>
+    </message>
+    <message>
+        <source>Error: Cannot parse configuration file: %1.</source>
+        <translation type="unfinished">లోపం: కాన్ఫిగరేషన్ ఫైల్‌ను అన్వయించలేరు: %1 .</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">లోపం: %1</translation>
+    </message>
+    <message>
+        <source>%1 didn't yet exit safely…</source>
+        <translation type="unfinished">%1 ఇంకా సురక్షితంగా బయటకు రాలేదు...</translation>
+    </message>
     <message>
         <source>unknown</source>
         <translation type="unfinished">తెలియదు</translation>
@@ -238,6 +293,61 @@
         <source>Amount</source>
         <translation type="unfinished">మొత్తం</translation>
     </message>
+    <message>
+        <source>Enter a Bitcoin address (e.g. %1)</source>
+        <translation type="unfinished">బిట్‌కాయిన్ చిరునామాను నమోదు చేయండి (ఉదా. %1)</translation>
+    </message>
+    <message>
+        <source>Unroutable</source>
+        <translation type="unfinished">రూట్ చేయలేనిది</translation>
+    </message>
+    <message>
+        <source>Internal</source>
+        <translation type="unfinished">అంతర్గత</translation>
+    </message>
+    <message>
+        <source>Inbound</source>
+        <extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
+        <translation type="unfinished">ఇన్‌బౌండ్</translation>
+    </message>
+    <message>
+        <source>Outbound</source>
+        <extracomment>An outbound connection to a peer. An outbound connection is a connection initiated by us.</extracomment>
+        <translation type="unfinished">అవుట్ బౌండ్</translation>
+    </message>
+    <message>
+        <source>Full Relay</source>
+        <extracomment>Peer connection type that relays all network information.</extracomment>
+        <translation type="unfinished">పూర్తిగా  ఏర్పరచుట</translation>
+    </message>
+    <message>
+        <source>Block Relay</source>
+        <extracomment>Peer connection type that relays network information about blocks and not transactions or addresses.</extracomment>
+        <translation type="unfinished">ఏర్పాటు చేయుటను నిరోధించండి</translation>
+    </message>
+    <message>
+        <source>Manual</source>
+        <extracomment>Peer connection type established manually through one of several methods.</extracomment>
+        <translation type="unfinished">మానవీయంగా</translation>
+    </message>
+    <message>
+        <source>Feeler</source>
+        <extracomment>Short-lived peer connection type that tests the aliveness of known addresses.</extracomment>
+        <translation type="unfinished">అనుభూతి</translation>
+    </message>
+    <message>
+        <source>Address Fetch</source>
+        <extracomment>Short-lived peer connection type that solicits known addresses from a peer.</extracomment>
+        <translation type="unfinished">చిరునామా పొందండి</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation type="unfinished">ఏదీ లేదు</translation>
+    </message>
+    <message>
+        <source>N/A</source>
+        <translation type="unfinished">వర్తించదు</translation>
+    </message>
     <message numerus="yes">
         <source>%n second(s)</source>
         <translation type="unfinished">
@@ -273,6 +383,10 @@
             <numerusform />
         </translation>
     </message>
+    <message>
+        <source>%1 and %2</source>
+        <translation type="unfinished">%1 మరియు %2</translation>
+    </message>
     <message numerus="yes">
         <source>%n year(s)</source>
         <translation type="unfinished">
@@ -281,6 +395,177 @@
         </translation>
     </message>
     </context>
+<context>
+    <name>bitcoin-core</name>
+    <message>
+        <source>Settings file could not be read</source>
+        <translation type="unfinished">సెట్టింగ్‌ల ఫైల్ చదవడం సాధ్యం కాలేదు</translation>
+    </message>
+    <message>
+        <source>Settings file could not be written</source>
+        <translation type="unfinished">సెట్టింగుల ఫైల్ వ్రాయబడదు</translation>
+    </message>
+    <message>
+        <source>Cannot set -peerblockfilters without -blockfilterindex.</source>
+        <translation type="unfinished">-blockfilterindex లేకుండా -peerblockfilters సెట్ చేయలేము.</translation>
+    </message>
+    <message>
+        <source>Error reading from database, shutting down.</source>
+        <translation type="unfinished">డేటాబేస్ నుండి చదవడంలో లోపం, షట్ డౌన్.</translation>
+    </message>
+    <message>
+        <source>Missing solving data for estimating transaction size</source>
+        <translation type="unfinished">లావాదేవీ పరిమాణాన్ని అంచనా వేయడానికి పరిష్కార డేటా లేదు</translation>
+    </message>
+    <message>
+        <source>Prune cannot be configured with a negative value.</source>
+        <translation type="unfinished">ప్రూనే ప్రతికూల విలువతో కాన్ఫిగర్ చేయబడదు.</translation>
+    </message>
+    <message>
+        <source>Prune mode is incompatible with -txindex.</source>
+        <translation type="unfinished">ప్రూన్ మోడ్ -txindexకి అనుకూలంగా లేదు.</translation>
+    </message>
+    <message>
+        <source>Section [%s] is not recognized.</source>
+        <translation type="unfinished">విభాగం [%s] గుర్తించబడలేదు.</translation>
+    </message>
+    <message>
+        <source>Specified blocks directory "%s" does not exist.</source>
+        <translation type="unfinished">పేర్కొన్న బ్లాక్‌ల డైరెక్టరీ "%s" ఉనికిలో లేదు.</translation>
+    </message>
+    <message>
+        <source>Starting network threads…</source>
+        <translation type="unfinished">నెట్‌వర్క్ థ్రెడ్‌లను ప్రారంభిస్తోంది…</translation>
+    </message>
+    <message>
+        <source>The source code is available from %s.</source>
+        <translation type="unfinished">%s నుండి సోర్స్ కోడ్ అందుబాటులో ఉంది.</translation>
+    </message>
+    <message>
+        <source>The specified config file %s does not exist</source>
+        <translation type="unfinished">పేర్కొన్న కాన్ఫిగర్ ఫైల్ %s ఉనికిలో లేదు</translation>
+    </message>
+    <message>
+        <source>The transaction amount is too small to pay the fee</source>
+        <translation type="unfinished">రుసుము చెల్లించడానికి లావాదేవీ మొత్తం చాలా చిన్నది</translation>
+    </message>
+    <message>
+        <source>The wallet will avoid paying less than the minimum relay fee.</source>
+        <translation type="unfinished">వాలెట్ కనీస రిలే రుసుము కంటే తక్కువ చెల్లించడాన్ని నివారిస్తుంది.</translation>
+    </message>
+    <message>
+        <source>This is experimental software.</source>
+        <translation type="unfinished">ఇది ప్రయోగాత్మక సాఫ్ట్‌వేర్.</translation>
+    </message>
+    <message>
+        <source>This is the minimum transaction fee you pay on every transaction.</source>
+        <translation type="unfinished">ఇది ప్రతి లావాదేవీకి మీరు చెల్లించే కనీస లావాదేవీ రుసుము.</translation>
+    </message>
+    <message>
+        <source>This is the transaction fee you will pay if you send a transaction.</source>
+        <translation type="unfinished">మీరు లావాదేవీని పంపితే మీరు చెల్లించే లావాదేవీ రుసుము ఇది.</translation>
+    </message>
+    <message>
+        <source>Transaction amount too small</source>
+        <translation type="unfinished">లావాదేవీ మొత్తం చాలా చిన్నది</translation>
+    </message>
+    <message>
+        <source>Transaction amounts must not be negative</source>
+        <translation type="unfinished">లావాదేవీ మొత్తాలు ప్రతికూలంగా ఉండకూడదు</translation>
+    </message>
+    <message>
+        <source>Transaction change output index out of range</source>
+        <translation type="unfinished">లావాదేవీ మార్పు అవుట్‌పుట్ సూచిక పరిధి వెలుపల ఉంది</translation>
+    </message>
+    <message>
+        <source>Transaction has too long of a mempool chain</source>
+        <translation type="unfinished">లావాదేవీ మెంపూల్ చైన్‌లో చాలా పొడవుగా ఉంది</translation>
+    </message>
+    <message>
+        <source>Transaction must have at least one recipient</source>
+        <translation type="unfinished">లావాదేవీకి కనీసం ఒక గ్రహీత ఉండాలి</translation>
+    </message>
+    <message>
+        <source>Transaction needs a change address, but we can't generate it.</source>
+        <translation type="unfinished">లావాదేవీకి చిరునామా మార్పు అవసరం, కానీ మేము దానిని రూపొందించలేము.</translation>
+    </message>
+    <message>
+        <source>Transaction too large</source>
+        <translation type="unfinished">లావాదేవీ చాలా పెద్దది</translation>
+    </message>
+    <message>
+        <source>Unable to bind to %s on this computer (bind returned error %s)</source>
+        <translation type="unfinished">బైండ్ చేయడం సాధ్యపడలేదు %s ఈ కంప్యూటర్‌లో  (బైండ్ రిటర్న్ ఎర్రర్ %s)</translation>
+    </message>
+    <message>
+        <source>Unable to bind to %s on this computer. %s is probably already running.</source>
+        <translation type="unfinished">బైండ్ చేయడం సాధ్యపడలేదు %s ఈ కంప్యూటర్‌లో. %s బహుశా ఇప్పటికే అమలులో ఉంది.</translation>
+    </message>
+    <message>
+        <source>Unable to create the PID file '%s': %s</source>
+        <translation type="unfinished">PID ఫైల్‌ని సృష్టించడం సాధ్యం కాలేదు '%s': %s</translation>
+    </message>
+    <message>
+        <source>Unable to generate initial keys</source>
+        <translation type="unfinished">ప్రారంభ కీలను రూపొందించడం సాధ్యం కాలేదు</translation>
+    </message>
+    <message>
+        <source>Unable to generate keys</source>
+        <translation type="unfinished">కీలను రూపొందించడం సాధ్యం కాలేదు</translation>
+    </message>
+    <message>
+        <source>Unable to open %s for writing</source>
+        <translation type="unfinished">తెరవడం సాధ్యం కాదు %s రాయడం కోసం</translation>
+    </message>
+    <message>
+        <source>Unable to parse -maxuploadtarget: '%s'</source>
+        <translation type="unfinished">-maxuploadtarget అన్వయించడం సాధ్యం కాలేదు: '%s'</translation>
+    </message>
+    <message>
+        <source>Unable to start HTTP server. See debug log for details.</source>
+        <translation type="unfinished">HTTP సర్వర్‌ని ప్రారంభించడం సాధ్యం కాలేదు. వివరాల కోసం డీబగ్ లాగ్ చూడండి.</translation>
+    </message>
+    <message>
+        <source>Unknown -blockfilterindex value %s.</source>
+        <translation type="unfinished">తెలియని -blockfilterindex విలువ %s.</translation>
+    </message>
+    <message>
+        <source>Unknown address type '%s'</source>
+        <translation type="unfinished">తెలియని చిరునామా రకం '%s'</translation>
+    </message>
+    <message>
+        <source>Unknown change type '%s'</source>
+        <translation type="unfinished">తెలియని మార్పు రకం '%s'</translation>
+    </message>
+    <message>
+        <source>Unknown network specified in -onlynet: '%s'</source>
+        <translation type="unfinished">తెలియని నెట్‌వర్క్ -onlynetలో పేర్కొనబడింది: '%s'</translation>
+    </message>
+    <message>
+        <source>Unknown new rules activated (versionbit %i)</source>
+        <translation type="unfinished">తెలియని కొత్త నియమాలు (వెర్షన్‌బిట్‌ %i)ని యాక్టివేట్ చేశాయి</translation>
+    </message>
+    <message>
+        <source>Unsupported logging category %s=%s.</source>
+        <translation type="unfinished">మద్దతు లేని లాగింగ్ వర్గం %s=%s</translation>
+    </message>
+    <message>
+        <source>User Agent comment (%s) contains unsafe characters.</source>
+        <translation type="unfinished">వినియోగదారు ఏజెంట్ వ్యాఖ్య (%s)లో అసురక్షిత అక్షరాలు ఉన్నాయి.</translation>
+    </message>
+    <message>
+        <source>Verifying blocks…</source>
+        <translation type="unfinished">బ్లాక్‌లను ధృవీకరిస్తోంది…</translation>
+    </message>
+    <message>
+        <source>Verifying wallet(s)…</source>
+        <translation type="unfinished">వాలెట్(ల)ని ధృవీకరిస్తోంది...</translation>
+    </message>
+    <message>
+        <source>Wallet needed to be rewritten: restart %s to complete</source>
+        <translation type="unfinished">వాలెట్‌ని మళ్లీ వ్రాయాలి: పూర్తి చేయడానికి పునఃప్రారంభించండి %s</translation>
+    </message>
+</context>
 <context>
     <name>BitcoinGUI</name>
     <message>
@@ -331,6 +616,10 @@
         <source>Create a new wallet</source>
         <translation type="unfinished">&lt;div&gt;&lt;/div&gt;</translation>
     </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished">&amp;తగ్గించడానికి</translation>
+    </message>
     <message>
         <source>Wallet:</source>
         <translation type="unfinished">ధనమును తీసుకొనిపోవు సంచి</translation>
@@ -340,6 +629,10 @@
         <extracomment>A substring of the tooltip.</extracomment>
         <translation type="unfinished">నెట్‌వర్క్ కార్యాచరణ నిలిపివేయబడింది.</translation>
     </message>
+    <message>
+        <source>Proxy is &lt;b&gt;enabled&lt;/b&gt;: %1</source>
+        <translation type="unfinished">ప్రాక్సీ &lt;b&gt;ప్రారంభించబడింది&lt;/b&gt;: %1</translation>
+    </message>
     <message>
         <source>Send coins to a Bitcoin address</source>
         <translation type="unfinished">బిట్‌కాయిన్ చిరునామాకు నాణేలను పంపండి</translation>
@@ -360,166 +653,1891 @@
         <source>&amp;Receive</source>
         <translation type="unfinished">స్వీకరించండి</translation>
     </message>
-    <message numerus="yes">
-        <source>Processed %n block(s) of transaction history.</source>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <message>
+        <source>&amp;Options…</source>
+        <translation type="unfinished">&amp;ఎంపికలు...</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="unfinished">లోపం</translation>
+        <source>&amp;Encrypt Wallet…</source>
+        <translation type="unfinished">&amp;వాలెట్‌ని ఎన్‌క్రిప్ట్ చేయండి...</translation>
     </message>
     <message>
-        <source>Warning</source>
-        <translation type="unfinished">హెచ్చరిక</translation>
+        <source>Encrypt the private keys that belong to your wallet</source>
+        <translation type="unfinished">మీ వాలెట్‌కు చెందిన ప్రైవేట్ కీలను గుప్తీకరించండి</translation>
     </message>
     <message>
-        <source>Information</source>
-        <translation type="unfinished">వర్తమానము</translation>
+        <source>&amp;Backup Wallet…</source>
+        <translation type="unfinished">&amp;బ్యాకప్ వాలెట్...</translation>
     </message>
     <message>
-        <source>Up to date</source>
-        <translation type="unfinished">తాజాగా ఉంది</translation>
+        <source>&amp;Change Passphrase…</source>
+        <translation type="unfinished">&amp;సంకేతపదం మార్చండి</translation>
     </message>
-    <message numerus="yes">
-        <source>%n active connection(s) to Bitcoin network.</source>
-        <extracomment>A substring of the tooltip.</extracomment>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <message>
+        <source>Sign &amp;message…</source>
+        <translation type="unfinished">సంతకం &amp;సందేశం...</translation>
     </message>
-    </context>
-<context>
-    <name>CoinControlDialog</name>
     <message>
-        <source>Coin Selection</source>
-        <translation type="unfinished">నాణెం ఎంపిక</translation>
+        <source>Sign messages with your Bitcoin addresses to prove you own them</source>
+        <translation type="unfinished">మీ బిట్‌కాయిన్ చిరునామాలు మీ స్వంతమని నిరూపించుకోవడానికి వాటితో సందేశాలను సంతకం చేయండి</translation>
     </message>
     <message>
-        <source>Quantity:</source>
-        <translation type="unfinished">పరిమాణం</translation>
+        <source>&amp;Verify message…</source>
+        <translation type="unfinished">&amp;సందేశాన్ని ధృవీకరించండి...</translation>
     </message>
     <message>
-        <source>Amount</source>
-        <translation type="unfinished">మొత్తం</translation>
+        <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source>
+        <translation type="unfinished">సందేశాలు పేర్కొన్న బిట్‌కాయిన్ చిరునామాలతో సంతకం చేసినట్లు నిర్ధారించుకోవడానికి వాటిని ధృవీకరించండి</translation>
     </message>
     <message>
-        <source>Date</source>
-        <translation type="unfinished">తేదీ</translation>
+        <source>&amp;Load PSBT from file…</source>
+        <translation type="unfinished">&amp;ఫైల్ నుండి PSBTని లోడ్ చేయండి...</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">( ఉల్లాకు లేదు )</translation>
+        <source>Open &amp;URI…</source>
+        <translation type="unfinished">&amp;URI ని తెరవండి...</translation>
     </message>
-    </context>
-<context>
-    <name>CreateWalletDialog</name>
     <message>
-        <source>Wallet</source>
-        <translation type="unfinished">వాలెట్</translation>
+        <source>Close Wallet…</source>
+        <translation type="unfinished">వాలెట్ ని మూసివేయి...</translation>
     </message>
-    </context>
-<context>
-    <name>Intro</name>
     <message>
-        <source>Bitcoin</source>
-        <translation type="unfinished">బిట్కోయిన్</translation>
+        <source>Create Wallet…</source>
+        <translation type="unfinished">వాలెట్ ని సృష్టించండి...</translation>
     </message>
-    <message numerus="yes">
-        <source>(sufficient to restore backups %n day(s) old)</source>
-        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
-        <translation type="unfinished">
-            <numerusform />
-            <numerusform />
-        </translation>
+    <message>
+        <source>Close All Wallets…</source>
+        <translation type="unfinished">అన్ని వాలెట్లను మూసివేయి…</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="unfinished">లోపం</translation>
+        <source>&amp;File</source>
+        <translation type="unfinished">&amp;ఫైల్</translation>
     </message>
-    </context>
-<context>
-    <name>OptionsDialog</name>
     <message>
-        <source>Error</source>
-        <translation type="unfinished">లోపం</translation>
+        <source>&amp;Settings</source>
+        <translation type="unfinished">&amp;సెట్టింగ్‌లు</translation>
     </message>
-    </context>
-<context>
-    <name>PeerTableModel</name>
     <message>
-        <source>Address</source>
-        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
-        <translation type="unfinished">చిరునామా</translation>
+        <source>&amp;Help</source>
+        <translation type="unfinished">&amp;సహాయం</translation>
     </message>
-    </context>
-<context>
-    <name>RPCConsole</name>
     <message>
-        <source>To</source>
-        <translation type="unfinished">కు</translation>
+        <source>Tabs toolbar</source>
+        <translation type="unfinished">ట్యాబ్‌ల టూల్‌బార్</translation>
     </message>
     <message>
-        <source>From</source>
-        <translation type="unfinished">నుండి</translation>
+        <source>Syncing Headers (%1%)…</source>
+        <translation type="unfinished">శీర్షికలను సమకాలీకరించడం (%1%)...</translation>
     </message>
-    </context>
-<context>
-    <name>ReceiveRequestDialog</name>
     <message>
-        <source>Wallet:</source>
-        <translation type="unfinished">ధనమును తీసుకొనిపోవు సంచి</translation>
+        <source>Synchronizing with network…</source>
+        <translation type="unfinished">నెట్‌వర్క్‌తో సమకాలీకరించబడుతోంది...</translation>
     </message>
-    </context>
-<context>
-    <name>RecentRequestsTableModel</name>
     <message>
-        <source>Date</source>
-        <translation type="unfinished">తేదీ</translation>
+        <source>Indexing blocks on disk…</source>
+        <translation type="unfinished">డిస్క్‌లో బ్లాక్‌లను సూచిక చేస్తోంది…</translation>
     </message>
     <message>
-        <source>Label</source>
-        <translation type="unfinished">ఉల్లాకు</translation>
+        <source>Processing blocks on disk…</source>
+        <translation type="unfinished">డిస్క్‌లో బ్లాక్‌లను ప్రాసెస్ చేస్తోంది...</translation>
     </message>
     <message>
-        <source>Message</source>
-        <translation type="unfinished">సందేశం</translation>
+        <source>Reindexing blocks on disk…</source>
+        <translation type="unfinished">డిస్క్‌లోని బ్లాక్‌లను రీఇండెక్సింగ్ చేస్తోంది...</translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">( ఉల్లాకు లేదు )</translation>
+        <source>Connecting to peers…</source>
+        <translation type="unfinished">తోటివారితో కలుస్తుంది…</translation>
     </message>
-    </context>
-<context>
-    <name>SendCoinsDialog</name>
     <message>
-        <source>Quantity:</source>
-        <translation type="unfinished">పరిమాణం</translation>
+        <source>Request payments (generates QR codes and bitcoin: URIs)</source>
+        <translation type="unfinished">చెల్లింపులను అభ్యర్థించండి (QR కోడ్‌లు మరియు బిట్‌కాయిన్‌లను ఉత్పత్తి చేస్తుంది: URIలు)</translation>
+    </message>
+    <message>
+        <source>Show the list of used sending addresses and labels</source>
+        <translation type="unfinished">ఉపయోగించిన పంపే చిరునామాలు మరియు లేబుల్‌ల జాబితాను చూపండి</translation>
+    </message>
+    <message>
+        <source>Show the list of used receiving addresses and labels</source>
+        <translation type="unfinished">ఉపయోగించిన స్వీకరించే చిరునామాలు మరియు లేబుల్‌ల జాబితాను చూపండి</translation>
+    </message>
+    <message>
+        <source>&amp;Command-line options</source>
+        <translation type="unfinished">&amp;కమాండ్-లైన్ ఎంపికలు</translation>
     </message>
     <message numerus="yes">
-        <source>Estimated to begin confirmation within %n block(s).</source>
+        <source>Processed %n block(s) of transaction history.</source>
         <translation type="unfinished">
-            <numerusform />
-            <numerusform />
+            <numerusform>లావాదేవీ చరిత్ర యొక్క %n బ్లాక్(లు) ప్రాసెస్ చేయబడింది.</numerusform>
+            <numerusform>లావాదేవీ చరిత్ర యొక్క %n బ్లాక్(లు) ప్రాసెస్ చేయబడింది.</numerusform>
         </translation>
     </message>
     <message>
-        <source>(no label)</source>
-        <translation type="unfinished">( ఉల్లాకు లేదు )</translation>
+        <source>%1 behind</source>
+        <translation type="unfinished">%1 వెనుక</translation>
     </message>
-</context>
-<context>
-    <name>TransactionDesc</name>
     <message>
-        <source>Status</source>
-        <translation type="unfinished">స్థితి</translation>
+        <source>Catching up…</source>
+        <translation type="unfinished">పట్టుకోవడం...</translation>
     </message>
     <message>
-        <source>Date</source>
-        <translation type="unfinished">తేదీ</translation>
+        <source>Last received block was generated %1 ago.</source>
+        <translation type="unfinished">చివరిగా అందుకున్న బ్లాక్ రూపొందించబడింది %1 క్రితం</translation>
+    </message>
+    <message>
+        <source>Transactions after this will not yet be visible.</source>
+        <translation type="unfinished">దీని తర్వాత లావాదేవీలు ఇంకా కనిపించవు.</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">లోపం</translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished">హెచ్చరిక</translation>
+    </message>
+    <message>
+        <source>Information</source>
+        <translation type="unfinished">వర్తమానము</translation>
+    </message>
+    <message>
+        <source>Up to date</source>
+        <translation type="unfinished">తాజాగా ఉంది</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction</source>
+        <translation type="unfinished">పాక్షికంగా సంతకం చేసిన బిట్‌కాయిన్ లావాదేవీని లోడ్ చేయండి</translation>
+    </message>
+    <message>
+        <source>Load PSBT from &amp;clipboard…</source>
+        <translation type="unfinished">&amp;క్లిప్‌బోర్డ్ నుండి PSBTని లోడ్ చేయండి...</translation>
+    </message>
+    <message>
+        <source>Load Partially Signed Bitcoin Transaction from clipboard</source>
+        <translation type="unfinished">క్లిప్‌బోర్డ్ నుండి పాక్షికంగా సంతకం చేసిన బిట్‌కాయిన్ లావాదేవీని లోడ్ చేయండి</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">నోడ్ విండో</translation>
+    </message>
+    <message>
+        <source>Open node debugging and diagnostic console</source>
+        <translation type="unfinished">నోడ్ డీబగ్గింగ్ మరియు డయాగ్నస్టిక్ కన్సోల్ తెరవండి</translation>
+    </message>
+    <message>
+        <source>&amp;Sending addresses</source>
+        <translation type="unfinished">&amp;చిరునామా పంపుతోంది</translation>
+    </message>
+    <message>
+        <source>&amp;Receiving addresses</source>
+        <translation type="unfinished">&amp;చిరునామాలను స్వీకరిస్తోంది</translation>
+    </message>
+    <message>
+        <source>Open a bitcoin: URI</source>
+        <translation type="unfinished">బిట్‌కాయిన్‌ను తెరవండి: URI</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <translation type="unfinished">వాలెట్ తెరవండి</translation>
+    </message>
+    <message>
+        <source>Open a wallet</source>
+        <translation type="unfinished">ఒక వాలెట్ తెరవండి</translation>
+    </message>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">వాలెట్‌ని మూసివేయండి</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">అన్ని వాలెట్లను మూసివేయండి</translation>
+    </message>
+    <message>
+        <source>&amp;Mask values</source>
+        <translation type="unfinished">&amp;విలువలను కప్పిపుచ్చు</translation>
+    </message>
+    <message>
+        <source>Mask the values in the Overview tab</source>
+        <translation type="unfinished">ఓవర్‌వ్యూ ట్యాబ్‌లోని విలువలను కప్పిపుచ్చడం చేయండి</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">డిఫాల్ట్ వాలెట్</translation>
+    </message>
+    <message>
+        <source>No wallets available</source>
+        <translation type="unfinished">వాలెట్లు అందుబాటులో లేవు</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;విండో</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation type="unfinished">జూమ్ చేయండి</translation>
+    </message>
+    <message>
+        <source>Main Window</source>
+        <translation type="unfinished">ప్రధాన విండో</translation>
+    </message>
+    <message>
+        <source>%1 client</source>
+        <translation type="unfinished">%1 క్లయింట్</translation>
+    </message>
+    <message>
+        <source>&amp;Hide</source>
+        <translation type="unfinished">&amp;దాచు</translation>
+    </message>
+    <message>
+        <source>S&amp;how</source>
+        <translation type="unfinished">&amp;చూపించు</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n active connection(s) to Bitcoin network.</source>
+        <extracomment>A substring of the tooltip.</extracomment>
+        <translation type="unfinished">
+            <numerusform>%n బిట్‌కాయిన్ నెట్‌వర్క్‌కు క్రియాశీల కనెక్షన్(లు).</numerusform>
+            <numerusform>%n బిట్‌కాయిన్ నెట్‌వర్క్‌కు క్రియాశీల కనెక్షన్(లు).</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Click for more actions.</source>
+        <extracomment>A substring of the tooltip. "More actions" are available via the context menu.</extracomment>
+        <translation type="unfinished">మరిన్ని చర్యల కోసం క్లిక్ చేయండి.</translation>
+    </message>
+    <message>
+        <source>Show Peers tab</source>
+        <extracomment>A context menu item. The "Peers tab" is an element of the "Node window".</extracomment>
+        <translation type="unfinished">పీర్స్ ట్యాబ్‌ని చూపించు</translation>
+    </message>
+    <message>
+        <source>Disable network activity</source>
+        <extracomment>A context menu item.</extracomment>
+        <translation type="unfinished">నెట్‌వర్క్ కార్యాచరణను నిలిపివేయండి</translation>
+    </message>
+    <message>
+        <source>Enable network activity</source>
+        <extracomment>A context menu item. The network activity was disabled previously.</extracomment>
+        <translation type="unfinished">నెట్‌వర్క్ కార్యాచరణను ప్రారంభించండి</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation type="unfinished">లోపం: %1</translation>
+    </message>
+    <message>
+        <source>Warning: %1</source>
+        <translation type="unfinished">హెచ్చరిక: %1</translation>
+    </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished">తేదీ: %1
+</translation>
+    </message>
+    <message>
+        <source>Amount: %1
+</source>
+        <translation type="unfinished">మొత్తం: %1
+</translation>
+    </message>
+    <message>
+        <source>Wallet: %1
+</source>
+        <translation type="unfinished">వాలెట్: %1
+</translation>
+    </message>
+    <message>
+        <source>Type: %1
+</source>
+        <translation type="unfinished">రకం: %1
+</translation>
+    </message>
+    <message>
+        <source>Label: %1
+</source>
+        <translation type="unfinished">లేబుల్: %1
+</translation>
+    </message>
+    <message>
+        <source>Address: %1
+</source>
+        <translation type="unfinished">చిరునామా: %1
+</translation>
+    </message>
+    <message>
+        <source>Sent transaction</source>
+        <translation type="unfinished">పంపిన లావాదేవీ</translation>
+    </message>
+    <message>
+        <source>Incoming transaction</source>
+        <translation type="unfinished"> వచ్చే లావాదేవీ</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;enabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD కీ ఉత్పత్తి &lt;b&gt;ప్రారంభించబడింది&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>HD key generation is &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">HD కీ ఉత్పత్తి &lt;b&gt;నిలిపివేయబడింది&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Private key &lt;b&gt;disabled&lt;/b&gt;</source>
+        <translation type="unfinished">ప్రైవేట్ కీ &lt;b&gt;నిలిపివేయబడింది&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+        <translation type="unfinished">వాలెట్ &lt;b&gt;ఎన్‌క్రిప్ట్ చేయబడింది&lt;/b&gt; మరియు ప్రస్తుతం &lt;b&gt;అన్‌లాక్ చేయబడింది&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+        <translation type="unfinished">వాలెట్ &lt;b&gt;ఎన్‌క్రిప్ట్ చేయబడింది&lt;/b&gt; మరియు ప్రస్తుతం &lt;b&gt;లాక్ చేయబడింది&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Original message:</source>
+        <translation type="unfinished">అసలు సందేశం:</translation>
+    </message>
+</context>
+<context>
+    <name>UnitDisplayStatusBarControl</name>
+    <message>
+        <source>Unit to show amounts in. Click to select another unit.</source>
+        <translation type="unfinished">అమౌంట్ ని చూపించడానికి యూనిట్. మరొక యూనిట్‌ని ఎంచుకోవడానికి క్లిక్ చేయండి.</translation>
+    </message>
+</context>
+<context>
+    <name>CoinControlDialog</name>
+    <message>
+        <source>Coin Selection</source>
+        <translation type="unfinished">నాణెం ఎంపిక</translation>
+    </message>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">పరిమాణం</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">బైట్‌లు:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">మొత్తం:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">రుసుము:</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">దుమ్ము:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">రుసుము తర్వాత:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">మార్చు:</translation>
+    </message>
+    <message>
+        <source>(un)select all</source>
+        <translation type="unfinished">ఎంచుకున్నవన్నీ తొలగించు</translation>
+    </message>
+    <message>
+        <source>Tree mode</source>
+        <translation type="unfinished">చెట్టు విధానం</translation>
+    </message>
+    <message>
+        <source>List mode</source>
+        <translation type="unfinished">జాబితా </translation>
+    </message>
+    <message>
+        <source>Amount</source>
+        <translation type="unfinished">మొత్తం</translation>
+    </message>
+    <message>
+        <source>Received with label</source>
+        <translation type="unfinished">లేబుల్‌తో స్వీకరించబడింది</translation>
+    </message>
+    <message>
+        <source>Received with address</source>
+        <translation type="unfinished">చిరునామాతో స్వీకరించబడింది</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">తేదీ</translation>
+    </message>
+    <message>
+        <source>Confirmations</source>
+        <translation type="unfinished">నిర్ధారణలు</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">నిర్ధారించబడినది</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">కాపీ అమౌంట్</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;కాపీ చిరునామా</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">కాపీ &amp;లేబుల్</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">కాపీ &amp;అమౌంట్</translation>
+    </message>
+    <message>
+        <source>Copy transaction &amp;ID and output index</source>
+        <translation type="unfinished">లావాదేవీ &amp;ID మరియు అవుట్‌పుట్ సూచికను కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>L&amp;ock unspent</source>
+        <translation type="unfinished">ఖర్చు చేయని లాక్</translation>
+    </message>
+    <message>
+        <source>&amp;Unlock unspent</source>
+        <translation type="unfinished">&amp;ఖర్చు చేయనిది విడిపించండి</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">కాపీ పరిమాణం</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">రుసుము కాపీ</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">రుసుము తర్వాత కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">బైట్‌లను కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">దుమ్మును కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">మార్పుని కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>(%1 locked)</source>
+        <translation type="unfinished">(%1 లాక్ చేయబడింది)</translation>
+    </message>
+    <message>
+        <source>yes</source>
+        <translation type="unfinished">అవును</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation type="unfinished">లేదు</translation>
+    </message>
+    <message>
+        <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source>
+        <translation type="unfinished">ఏదైనా గ్రహీత ప్రస్తుత ధూళి థ్రెషోల్డ్ కంటే చిన్న మొత్తాన్ని స్వీకరిస్తే ఈ లేబుల్ ఎరుపు రంగులోకి మారుతుంది.</translation>
+    </message>
+    <message>
+        <source>Can vary +/- %1 satoshi(s) per input.</source>
+        <translation type="unfinished">ఒక్కో ఇన్‌పుట్‌కు +/- %1 సతోషి(లు) మారవచ్చు.</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">( ఉల్లాకు లేదు )</translation>
+    </message>
+    <message>
+        <source>change from %1 (%2)</source>
+        <translation type="unfinished">నుండి మార్చండి %1 (%2)</translation>
+    </message>
+    <message>
+        <source>(change)</source>
+        <translation type="unfinished">(మార్పు)</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletActivity</name>
+    <message>
+        <source>Create Wallet</source>
+        <extracomment>Title of window indicating the progress of creation of a new wallet.</extracomment>
+        <translation type="unfinished">వాలెట్‌ని సృష్టించండి</translation>
+    </message>
+    <message>
+        <source>Creating Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the create wallet progress window which indicates to the user which wallet is currently being created.</extracomment>
+        <translation type="unfinished">వాలెట్‌ని సృష్టించండి &lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+    <message>
+        <source>Create wallet failed</source>
+        <translation type="unfinished">వాలెట్‌ని సృష్టించడం విఫలమైంది</translation>
+    </message>
+    <message>
+        <source>Create wallet warning</source>
+        <translation type="unfinished">వాలెట్ హెచ్చరికను సృష్టించండి</translation>
+    </message>
+    <message>
+        <source>Can't list signers</source>
+        <translation type="unfinished">సంతకం చేసేవారిని జాబితా చేయలేరు</translation>
+    </message>
+</context>
+<context>
+    <name>LoadWalletsActivity</name>
+    <message>
+        <source>Load Wallets</source>
+        <extracomment>Title of progress window which is displayed when wallets are being loaded.</extracomment>
+        <translation type="unfinished">వాలెట్లను లోడ్ చేయండి</translation>
+    </message>
+    <message>
+        <source>Loading wallets…</source>
+        <extracomment>Descriptive text of the load wallets progress window which indicates to the user that wallets are currently being loaded.</extracomment>
+        <translation type="unfinished">వాలెట్లను లోడ్ చేస్తోంది…</translation>
+    </message>
+</context>
+<context>
+    <name>OpenWalletActivity</name>
+    <message>
+        <source>Open wallet failed</source>
+        <translation type="unfinished">ఓపెన్ వాలెట్ విఫలమైంది</translation>
+    </message>
+    <message>
+        <source>Open wallet warning</source>
+        <translation type="unfinished">ఓపెన్ వాలెట్ హెచ్చరిక</translation>
+    </message>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">డిఫాల్ట్ వాలెట్</translation>
+    </message>
+    <message>
+        <source>Open Wallet</source>
+        <extracomment>Title of window indicating the progress of opening of a wallet.</extracomment>
+        <translation type="unfinished">వాలెట్ తెరవండి</translation>
+    </message>
+    <message>
+        <source>Opening Wallet &lt;b&gt;%1&lt;/b&gt;…</source>
+        <extracomment>Descriptive text of the open wallet progress window which indicates to the user which wallet is currently being opened.</extracomment>
+        <translation type="unfinished">వాలెట్‌ని తెరుస్తోంది &lt;b&gt;%1&lt;/b&gt;...</translation>
+    </message>
+</context>
+<context>
+    <name>WalletController</name>
+    <message>
+        <source>Close wallet</source>
+        <translation type="unfinished">వాలెట్‌ని మూసివేయండి</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close the wallet &lt;i&gt;%1&lt;/i&gt;?</source>
+        <translation type="unfinished">మీరు ఖచ్చితంగా వాలెట్‌ని మూసివేయాలనుకుంటున్నారా &lt;i&gt;%1&lt;/i&gt;?</translation>
+    </message>
+    <message>
+        <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source>
+        <translation type="unfinished">కత్తిరింపు ప్రారంభించబడితే, వాలెట్‌ను ఎక్కువసేపు మూసివేయడం వలన మొత్తం గొలుసును మళ్లీ సమకాలీకరించవలసి ఉంటుంది.</translation>
+    </message>
+    <message>
+        <source>Close all wallets</source>
+        <translation type="unfinished">అన్ని వాలెట్లను మూసివేయండి</translation>
+    </message>
+    <message>
+        <source>Are you sure you wish to close all wallets?</source>
+        <translation type="unfinished">మీరు ఖచ్చితంగా అన్ని వాలెట్లను మూసివేయాలనుకుంటున్నారా?</translation>
+    </message>
+</context>
+<context>
+    <name>CreateWalletDialog</name>
+    <message>
+        <source>Create Wallet</source>
+        <translation type="unfinished">వాలెట్‌ని సృష్టించండి</translation>
+    </message>
+    <message>
+        <source>Wallet Name</source>
+        <translation type="unfinished">వాలెట్ పేరు</translation>
+    </message>
+    <message>
+        <source>Wallet</source>
+        <translation type="unfinished">వాలెట్</translation>
+    </message>
+    <message>
+        <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source>
+        <translation type="unfinished">వాలెట్‌ని ఎన్‌క్రిప్ట్ చేయండి. వాలెట్ మీకు నచ్చిన పాస్‌ఫ్రేజ్‌తో ఎన్‌క్రిప్ట్ చేయబడుతుంది.</translation>
+    </message>
+    <message>
+        <source>Encrypt Wallet</source>
+        <translation type="unfinished">వాలెట్‌ని గుప్తీకరించండి</translation>
+    </message>
+    <message>
+        <source>Advanced Options</source>
+        <translation type="unfinished">అధునాతన ఎంపికలు</translation>
+    </message>
+    <message>
+        <source>Disable Private Keys</source>
+        <translation type="unfinished">ప్రైవేట్ కీలను నిలిపివేయండి</translation>
+    </message>
+    <message>
+        <source>Make Blank Wallet</source>
+        <translation type="unfinished">ఖాళీ వాలెట్‌ని తయారు చేయండి</translation>
+    </message>
+    <message>
+        <source>Use descriptors for scriptPubKey management</source>
+        <translation type="unfinished">scriptPubKey నిర్వహణ కోసం డిస్క్రిప్టర్‌లను ఉపయోగించండి</translation>
+    </message>
+    <message>
+        <source>Descriptor Wallet</source>
+        <translation type="unfinished">డిస్క్రిప్టర్ వాలెట్</translation>
+    </message>
+    <message>
+        <source>External signer</source>
+        <translation type="unfinished">బాహ్య సంతకందారు</translation>
+    </message>
+    <message>
+        <source>Create</source>
+        <translation type="unfinished">సృష్టించు</translation>
+    </message>
+    <message>
+        <source>Compiled without sqlite support (required for descriptor wallets)</source>
+        <translation type="unfinished">Sqlite మద్దతు లేకుండా కంపైల్ చేయబడింది (డిస్క్రిప్టర్ వాలెట్‌లకు అవసరం)</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">బాహ్య సంతకం మద్దతు లేకుండా సంకలనం చేయబడింది (బాహ్య సంతకం కోసం అవసరం)</translation>
+    </message>
+</context>
+<context>
+    <name>EditAddressDialog</name>
+    <message>
+        <source>Edit Address</source>
+        <translation type="unfinished">చిరునామాను సవరించండి</translation>
+    </message>
+    <message>
+        <source>&amp;Label</source>
+        <translation type="unfinished">&amp;లేబుల్</translation>
+    </message>
+    <message>
+        <source>The label associated with this address list entry</source>
+        <translation type="unfinished">ఈ చిరునామా జాబితా నమోదుతో అనుబంధించబడిన లేబుల్</translation>
+    </message>
+    <message>
+        <source>&amp;Address</source>
+        <translation type="unfinished">&amp;చిరునామా</translation>
+    </message>
+    <message>
+        <source>New sending address</source>
+        <translation type="unfinished">కొత్త పంపే చిరునామా</translation>
+    </message>
+    <message>
+        <source>Edit receiving address</source>
+        <translation type="unfinished">స్వీకరించే చిరునామాను సవరించండి</translation>
+    </message>
+    <message>
+        <source>Edit sending address</source>
+        <translation type="unfinished">పంపే చిరునామాను సవరించండి</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is not a valid Bitcoin address.</source>
+        <translation type="unfinished">నమోదు చేసిన చిరునామా "%1" చెల్లుబాటు అయ్యే బిట్‌కాయిన్ చిరునామా కాదు.</translation>
+    </message>
+    <message>
+        <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source>
+        <translation type="unfinished">చిరునామా "%1" ఇప్పటికే "%2" లేబుల్‌తో స్వీకరించే చిరునామాగా ఉంది మరియు పంపే చిరునామాగా జోడించబడదు.</translation>
+    </message>
+    <message>
+        <source>The entered address "%1" is already in the address book with label "%2".</source>
+        <translation type="unfinished">నమోదు చేసిన చిరునామా "%1" ఇప్పటికే చిరునామా పుస్తకంలో "%2" లేబుల్‌తో ఉంది.</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">వాలెట్‌ని అన్‌లాక్ చేయడం సాధ్యపడలేదు.</translation>
+    </message>
+    <message>
+        <source>New key generation failed.</source>
+        <translation type="unfinished">కొత్త కీ జనరేషన్ విఫలమైంది.</translation>
+    </message>
+</context>
+<context>
+    <name>FreespaceChecker</name>
+    <message>
+        <source>A new data directory will be created.</source>
+        <translation type="unfinished">కొత్త డేటా డైరెక్టరీ సృష్టించబడుతుంది.</translation>
+    </message>
+    <message>
+        <source>name</source>
+        <translation type="unfinished">పేరు</translation>
+    </message>
+    <message>
+        <source>Directory already exists. Add %1 if you intend to create a new directory here.</source>
+        <translation type="unfinished">డైరెక్టరీ ఇప్పటికే ఉంది. %1 మీరు ఇక్కడ కొత్త డైరెక్టరీని సృష్టించాలనుకుంటే జోడించండి.</translation>
+    </message>
+    <message>
+        <source>Path already exists, and is not a directory.</source>
+        <translation type="unfinished">మార్గం ఇప్పటికే ఉంది మరియు ఇది డైరెక్టరీ కాదు.</translation>
+    </message>
+    <message>
+        <source>Cannot create data directory here.</source>
+        <translation type="unfinished">ఇక్కడ డేటా డైరెక్టరీని సృష్టించలేరు.</translation>
+    </message>
+</context>
+<context>
+    <name>Intro</name>
+    <message>
+        <source>Bitcoin</source>
+        <translation type="unfinished">బిట్కోయిన్</translation>
+    </message>
+    <message>
+        <source>%1 GB of space available</source>
+        <translation type="unfinished">%1 GB స్థలం అందుబాటులో ఉంది</translation>
+    </message>
+    <message>
+        <source>(of %1 GB needed)</source>
+        <translation type="unfinished">(అవసరమైన %1 GB)</translation>
+    </message>
+    <message>
+        <source>(%1 GB needed for full chain)</source>
+        <translation type="unfinished">(పూర్తి గొలుసు కోసం %1 GB అవసరం)</translation>
+    </message>
+    <message>
+        <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
+        <translation type="unfinished">ఈ డైరెక్టరీలో కనీసం %1 GB డేటా నిల్వ చేయబడుతుంది మరియు ఇది కాలక్రమేణా పెరుగుతుంది.</translation>
+    </message>
+    <message>
+        <source>Approximately %1 GB of data will be stored in this directory.</source>
+        <translation type="unfinished">ఈ డైరెక్టరీలో సుమారు %1 GB డేటా నిల్వ చేయబడుతుంది.</translation>
+    </message>
+    <message numerus="yes">
+        <source>(sufficient to restore backups %n day(s) old)</source>
+        <extracomment>Explanatory text on the capability of the current prune target.</extracomment>
+        <translation type="unfinished">
+            <numerusform>(బ్యాకప్ %n రోజులను పునరుద్ధరించడానికి సరిపోతుంది) పాతది)</numerusform>
+            <numerusform>(బ్యాకప్ %n రోజులను పునరుద్ధరించడానికి సరిపోతుంది) పాతది)</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>%1 will download and store a copy of the Bitcoin block chain.</source>
+        <translation type="unfinished">%1 బిట్‌కాయిన్ బ్లాక్ చైన్ కాపీని డౌన్‌లోడ్ చేసి నిల్వ చేస్తుంది.</translation>
+    </message>
+    <message>
+        <source>The wallet will also be stored in this directory.</source>
+        <translation type="unfinished">వాలెట్ కూడా ఈ డైరెక్టరీలో నిల్వ చేయబడుతుంది.</translation>
+    </message>
+    <message>
+        <source>Error: Specified data directory "%1" cannot be created.</source>
+        <translation type="unfinished">లోపం: పేర్కొన్న డేటా డైరెక్టరీ "%1" సృష్టించబడదు.</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">లోపం</translation>
+    </message>
+    <message>
+        <source>Welcome</source>
+        <translation type="unfinished">స్వాగతం</translation>
+    </message>
+    <message>
+        <source>Welcome to %1.</source>
+        <translation type="unfinished">%1 కు స్వాగతం</translation>
+    </message>
+    <message>
+        <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source>
+        <translation type="unfinished">ప్రోగ్రామ్ ప్రారంభించబడటం ఇదే మొదటిసారి కాబట్టి, %1 దాని డేటాను ఎక్కడ నిల్వ చేయాలో మీరు ఎంచుకోవచ్చు.</translation>
+    </message>
+    <message>
+        <source>Limit block chain storage to</source>
+        <translation type="unfinished">బ్లాక్ చైన్ నిల్వను పరిమితం చేయండి</translation>
+    </message>
+    <message>
+        <source> GB</source>
+        <translation type="unfinished">GB</translation>
+    </message>
+    <message>
+        <source>Use the default data directory</source>
+        <translation type="unfinished">డిఫాల్ట్ డేటా డైరెక్టరీని ఉపయోగించండి</translation>
+    </message>
+    <message>
+        <source>Use a custom data directory:</source>
+        <translation type="unfinished">అనుకూల డేటా డైరెక్టరీని ఉపయోగించండి:</translation>
+    </message>
+</context>
+<context>
+    <name>HelpMessageDialog</name>
+    <message>
+        <source>version</source>
+        <translation type="unfinished">సంస్కరణ</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation type="unfinished">గురించి %1</translation>
+    </message>
+    <message>
+        <source>Command-line options</source>
+        <translation type="unfinished">కమాండ్ లైన్ ఎంపికలు</translation>
+    </message>
+</context>
+<context>
+    <name>ShutdownWindow</name>
+    <message>
+        <source>%1 is shutting down…</source>
+        <translation type="unfinished">%1 షట్ డౌన్ అవుతోంది…</translation>
+    </message>
+    <message>
+        <source>Do not shut down the computer until this window disappears.</source>
+        <translation type="unfinished">ఈ విండో అదృశ్యమయ్యే వరకు కంప్యూటర్‌ను ఆపివేయవద్దు.</translation>
+    </message>
+</context>
+<context>
+    <name>ModalOverlay</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">రూపం</translation>
+    </message>
+    <message>
+        <source>Number of blocks left</source>
+        <translation type="unfinished">మిగిలి ఉన్న బ్లాక్‌ల సంఖ్య</translation>
+    </message>
+    <message>
+        <source>Unknown…</source>
+        <translation type="unfinished">తెలియని…</translation>
+    </message>
+    <message>
+        <source>calculating…</source>
+        <translation type="unfinished">లెక్కిస్తోంది...</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">చివరి బ్లాక్ సమయం</translation>
+    </message>
+    <message>
+        <source>Progress</source>
+        <translation type="unfinished">పురోగతి</translation>
+    </message>
+    <message>
+        <source>Progress increase per hour</source>
+        <translation type="unfinished">గంటకు పురోగతి పెరుగుతుంది</translation>
+    </message>
+    <message>
+        <source>Estimated time left until synced</source>
+        <translation type="unfinished">సమకాలీకరించబడే వరకు అంచనా సమయం మిగిలి ఉంది</translation>
+    </message>
+    <message>
+        <source>Hide</source>
+        <translation type="unfinished">దాచు</translation>
+    </message>
+    <message>
+        <source>Unknown. Syncing Headers (%1, %2%)…</source>
+        <translation type="unfinished">తెలియదు. శీర్షికలను సమకాలీకరించడం (%1, %2%)...</translation>
+    </message>
+</context>
+<context>
+    <name>OpenURIDialog</name>
+    <message>
+        <source>Open bitcoin URI</source>
+        <translation type="unfinished">బిట్‌కాయిన్ URIని తెరవండి</translation>
+    </message>
+    <message>
+        <source>Paste address from clipboard</source>
+        <extracomment>Tooltip text for button that allows you to paste an address that is in your clipboard.</extracomment>
+        <translation type="unfinished">క్లిప్‌బోర్డ్ నుండి చిరునామాను అతికించండి</translation>
+    </message>
+</context>
+<context>
+    <name>OptionsDialog</name>
+    <message>
+        <source>Options</source>
+        <translation type="unfinished">ఎంపికలు</translation>
+    </message>
+    <message>
+        <source>&amp;Main</source>
+        <translation type="unfinished">&amp;ప్రధాన</translation>
+    </message>
+    <message>
+        <source>Automatically start %1 after logging in to the system.</source>
+        <translation type="unfinished">సిస్టమ్‌కు లాగిన్ అయిన తర్వాత స్వయంచాలకంగా "%1" ని ప్రారంభించండి.</translation>
+    </message>
+    <message>
+        <source>&amp;Start %1 on system login</source>
+        <translation type="unfinished">సిస్టమ్ లాగిన్‌లో "%1" ని &amp;ప్రారంభించండి</translation>
+    </message>
+    <message>
+        <source>Size of &amp;database cache</source>
+        <translation type="unfinished">డేటాబేస్ కాష్ యొక్క పరిమాణం</translation>
+    </message>
+    <message>
+        <source>Number of script &amp;verification threads</source>
+        <translation type="unfinished">స్క్రిప్ట్ &amp; ధృవీకరణ థ్రెడ్‌ల సంఖ్య</translation>
+    </message>
+    <message>
+        <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
+        <translation type="unfinished">ప్రాక్సీ యొక్క IP చిరునామా (ఉదా. IPv4: 127.0.0.1 / IPv6: ::1)</translation>
+    </message>
+    <message>
+        <source>Open Configuration File</source>
+        <translation type="unfinished">కాన్ఫిగరేషన్ ఫైల్‌ని తెరవండి</translation>
+    </message>
+    <message>
+        <source>Reset all client options to default.</source>
+        <translation type="unfinished">అన్ని క్లయింట్ ఎంపికలను డిఫాల్ట్‌గా రీసెట్ చేయండి.</translation>
+    </message>
+    <message>
+        <source>&amp;Reset Options</source>
+        <translation type="unfinished">&amp;రీసెట్ ఎంపికలు</translation>
+    </message>
+    <message>
+        <source>&amp;Network</source>
+        <translation type="unfinished">&amp;నెట్‌వర్క్</translation>
+    </message>
+    <message>
+        <source>Prune &amp;block storage to</source>
+        <translation type="unfinished">స్టోరేజ్‌ను కత్తిరించు &amp; బ్లాక్ చేయండి</translation>
+    </message>
+    <message>
+        <source>Reverting this setting requires re-downloading the entire blockchain.</source>
+        <translation type="unfinished">ఈ సెట్టింగ్‌ని తిరిగి మార్చడానికి మొత్తం బ్లాక్‌చెయిన్‌ను మళ్లీ డౌన్‌లోడ్ చేయడం అవసరం.</translation>
+    </message>
+    <message>
+        <source>(0 = auto, &lt;0 = leave that many cores free)</source>
+        <translation type="unfinished">(0 = ఆటో, &lt;0 = చాలా కోర్లను ఉచితంగా వదిలివేయండి)</translation>
+    </message>
+    <message>
+        <source>This allows you or a third party tool to communicate with the node through command-line and JSON-RPC commands.</source>
+        <extracomment>Tooltip text for Options window setting that enables the RPC server.</extracomment>
+        <translation type="unfinished">కమాండ్-లైన్ మరియు JSON-RPC ఆదేశాల ద్వారా నోడ్‌తో కమ్యూనికేట్ చేయడానికి ఇది మిమ్మల్ని లేదా మూడవ పక్షం సాధనాన్ని అనుమతిస్తుంది.</translation>
+    </message>
+    <message>
+        <source>Enable R&amp;PC server</source>
+        <extracomment>An Options window setting to enable the RPC server.</extracomment>
+        <translation type="unfinished">R&amp;PC సర్వర్‌ని ప్రారంభించండి</translation>
+    </message>
+    <message>
+        <source>W&amp;allet</source>
+        <translation type="unfinished">వా&amp;లెట్</translation>
+    </message>
+    <message>
+        <source>Whether to set subtract fee from amount as default or not.</source>
+        <extracomment>Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">డిఫాల్ట్‌గా మొత్తం నుండి రుసుమును తీసివేయాలా లేదా అని సెట్ చేయాలా.</translation>
+    </message>
+    <message>
+        <source>Subtract &amp;fee from amount by default</source>
+        <extracomment>An Options window setting to set subtracting the fee from a sending amount as default.</extracomment>
+        <translation type="unfinished">డిఫాల్ట్‌గా మొత్తం నుండి &amp;ఫీజును తీసివేయండి</translation>
+    </message>
+    <message>
+        <source>Expert</source>
+        <translation type="unfinished">నిపుణుడు</translation>
+    </message>
+    <message>
+        <source>Enable coin &amp;control features</source>
+        <translation type="unfinished">నాణెం &amp;నియంత్రణ లక్షణాలను ప్రారంభించండి</translation>
+    </message>
+    <message>
+        <source>&amp;Spend unconfirmed change</source>
+        <translation type="unfinished">&amp;ధృవీకరించబడని మార్పును ఖర్చు చేయండి</translation>
+    </message>
+    <message>
+        <source>Enable &amp;PSBT controls</source>
+        <extracomment>An options window setting to enable PSBT controls.</extracomment>
+        <translation type="unfinished">&amp;PSBT నియంత్రణలను ప్రారంభించండి</translation>
+    </message>
+    <message>
+        <source>Whether to show PSBT controls.</source>
+        <extracomment>Tooltip text for options window setting that enables PSBT controls.</extracomment>
+        <translation type="unfinished">PSBT నియంత్రణలను చూపాలా వద్దా.</translation>
+    </message>
+    <message>
+        <source>External Signer (e.g. hardware wallet)</source>
+        <translation type="unfinished">బాహ్య సంతకం (ఉదా. హార్డ్‌వేర్ వాలెట్)</translation>
+    </message>
+    <message>
+        <source>&amp;External signer script path</source>
+        <translation type="unfinished">&amp;బాహ్య సంతకం స్క్రిప్ట్ మార్గం</translation>
+    </message>
+    <message>
+        <source>Full path to a Bitcoin Core compatible script (e.g. C:\Downloads\hwi.exe or /Users/you/Downloads/hwi.py). Beware: malware can steal your coins!</source>
+        <translation type="unfinished">బిట్‌కాయిన్ కోర్ అనుకూల స్క్రిప్ట్‌కి పూర్తి మార్గం (ఉదా. C:\Downloads\hwi.exe లేదా /Users/you/Downloads/hwi.py). జాగ్రత్త: మాల్వేర్ మీ నాణేలను దొంగిలించగలదు!</translation>
+    </message>
+    <message>
+        <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+        <translation type="unfinished">రౌటర్‌లో బిట్‌కాయిన్ క్లయింట్ పోర్ట్‌ను స్వయంచాలకంగా తెరవండి. ఇది మీ రూటర్ UPnPకి మద్దతు ఇచ్చినప్పుడు మరియు అది ప్రారంభించబడినప్పుడు మాత్రమే పని చేస్తుంది.</translation>
+    </message>
+    <message>
+        <source>Map port using &amp;UPnP</source>
+        <translation type="unfinished">&amp;UPnPని ఉపయోగించి మ్యాప్ పోర్ట్</translation>
+    </message>
+    <message>
+        <source>Map port using NA&amp;T-PMP</source>
+        <translation type="unfinished">NA&amp;T-PMPని ఉపయోగించి మ్యాప్ పోర్ట్</translation>
+    </message>
+    <message>
+        <source>Accept connections from outside.</source>
+        <translation type="unfinished">బయటి నుండి కనెక్షన్లను అంగీకరించండి.</translation>
+    </message>
+    <message>
+        <source>Allow incomin&amp;g connections</source>
+        <translation type="unfinished">&amp;ఇన్‌కమింగ్ కనెక్షన్‌లను అనుమతించండి</translation>
+    </message>
+    <message>
+        <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source>
+        <translation type="unfinished">SOCKS5 ప్రాక్సీ ద్వారా బిట్‌కాయిన్ నెట్‌వర్క్‌కు కనెక్ట్ చేయండి.</translation>
+    </message>
+    <message>
+        <source>&amp;Connect through SOCKS5 proxy (default proxy):</source>
+        <translation type="unfinished">&amp;SOCKS5 ప్రాక్సీ ద్వారా కనెక్ట్ చేయండి (డిఫాల్ట్ ప్రాక్సీ):</translation>
+    </message>
+    <message>
+        <source>Proxy &amp;IP:</source>
+        <translation type="unfinished">ప్రాక్సీ &amp;IP:</translation>
+    </message>
+    <message>
+        <source>&amp;Port:</source>
+        <translation type="unfinished">&amp;పోర్ట్:</translation>
+    </message>
+    <message>
+        <source>Port of the proxy (e.g. 9050)</source>
+        <translation type="unfinished">ప్రాక్సీ పోర్ట్ (ఉదా. 9050)</translation>
+    </message>
+    <message>
+        <source>Used for reaching peers via:</source>
+        <translation type="unfinished">దీని ద్వారా సహచరులను చేరుకోవడానికి ఉపయోగించబడుతుంది:</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation type="unfinished">&amp;విండో</translation>
+    </message>
+    <message>
+        <source>Show the icon in the system tray.</source>
+        <translation type="unfinished">సిస్టమ్ ట్రేలో చిహ్నాన్ని చూపించు.</translation>
+    </message>
+    <message>
+        <source>&amp;Show tray icon</source>
+        <translation type="unfinished">&amp;ట్రే చిహ్నాన్ని చూపు</translation>
+    </message>
+    <message>
+        <source>Show only a tray icon after minimizing the window.</source>
+        <translation type="unfinished">విండోను కనిష్టీకరించిన తర్వాత ట్రే చిహ్నాన్ని మాత్రమే చూపించు.</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize to the tray instead of the taskbar</source>
+        <translation type="unfinished">&amp;టాస్క్‌బార్‌కు బదులుగా ట్రేకి కనిష్టీకరించండి</translation>
+    </message>
+    <message>
+        <source>M&amp;inimize on close</source>
+        <translation type="unfinished">ద&amp;గ్గరగా కనిష్టీకరించండి</translation>
+    </message>
+    <message>
+        <source>&amp;Display</source>
+        <translation type="unfinished">&amp;ప్రదర్శన</translation>
+    </message>
+    <message>
+        <source>User Interface &amp;language:</source>
+        <translation type="unfinished">వినియోగదారు ఇంటర్‌ఫేస్ &amp;భాష:</translation>
+    </message>
+    <message>
+        <source>The user interface language can be set here. This setting will take effect after restarting %1.</source>
+        <translation type="unfinished">వినియోగదారు ఇంటర్‌ఫేస్ భాషను ఇక్కడ సెట్ చేయవచ్చు. పునఃప్రారంభించిన తర్వాత ఈ సెట్టింగ్ ప్రభావం చూపుతుంది %1.</translation>
+    </message>
+    <message>
+        <source>&amp;Unit to show amounts in:</source>
+        <translation type="unfinished">&amp;యూనిట్‌లో మొత్తాలను చూపడానికి:</translation>
+    </message>
+    <message>
+        <source>Choose the default subdivision unit to show in the interface and when sending coins.</source>
+        <translation type="unfinished">ఇంటర్‌ఫేస్‌లో మరియు నాణేలను పంపేటప్పుడు చూపించడానికి డిఫాల్ట్ సబ్‌డివిజన్ యూనిట్‌ని ఎంచుకోండి.</translation>
+    </message>
+    <message>
+        <source>&amp;Third-party transaction URLs</source>
+        <translation type="unfinished">&amp;మూడవ పక్షం లావాదేవీ URLలు</translation>
+    </message>
+    <message>
+        <source>Whether to show coin control features or not.</source>
+        <translation type="unfinished">కాయిన్ కంట్రోల్ ఫీచర్‌లను చూపించాలా వద్దా.</translation>
+    </message>
+    <message>
+        <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor onion services.</source>
+        <translation type="unfinished">Tor onion సేవల కోసం ప్రత్యేక SOCKS5 ప్రాక్సీ ద్వారా బిట్‌కాయిన్ నెట్‌వర్క్‌కు కనెక్ట్ చేయండి.</translation>
+    </message>
+    <message>
+        <source>Use separate SOCKS&amp;5 proxy to reach peers via Tor onion services:</source>
+        <translation type="unfinished">Tor onion సేవల ద్వారా సహచరులను చేరుకోవడానికి ప్రత్యేక సాక్స్&amp;5 ప్రాక్సీని ఉపయోగించండి:</translation>
+    </message>
+    <message>
+        <source>Monospaced font in the Overview tab:</source>
+        <translation type="unfinished">ఓవర్‌వ్యూ ట్యాబ్‌లో మోనోస్పేస్డ్ ఫాంట్:</translation>
+    </message>
+    <message>
+        <source>embedded "%1"</source>
+        <translation type="unfinished">పొందుపరిచారు "%1"</translation>
+    </message>
+    <message>
+        <source>closest matching "%1"</source>
+        <translation type="unfinished">సన్నిహిత సరిపోలిక "%1"</translation>
+    </message>
+    <message>
+        <source>&amp;OK</source>
+        <translation type="unfinished">&amp;అలాగే</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation type="unfinished">&amp;రద్దు చేయండి</translation>
+    </message>
+    <message>
+        <source>Compiled without external signing support (required for external signing)</source>
+        <extracomment>"External signing" means using devices such as hardware wallets.</extracomment>
+        <translation type="unfinished">బాహ్య సంతకం మద్దతు లేకుండా సంకలనం చేయబడింది (బాహ్య సంతకం కోసం అవసరం)</translation>
+    </message>
+    <message>
+        <source>default</source>
+        <translation type="unfinished">డిఫాల్ట్</translation>
+    </message>
+    <message>
+        <source>none</source>
+        <translation type="unfinished">ఏదీ లేదు</translation>
+    </message>
+    <message>
+        <source>Confirm options reset</source>
+        <translation type="unfinished">ఎంపికల రీసెట్‌ని నిర్ధారించండి</translation>
+    </message>
+    <message>
+        <source>Client restart required to activate changes.</source>
+        <translation type="unfinished">మార్పులను సక్రియం చేయడానికి క్లయింట్ పునఃప్రారంభించాల్సిన అవసరం ఉంది.</translation>
+    </message>
+    <message>
+        <source>Client will be shut down. Do you want to proceed?</source>
+        <translation type="unfinished">క్లయింట్ మూసివేయబడుతుంది. మీరు కొనసాగించాలనుకుంటున్నారా?</translation>
+    </message>
+    <message>
+        <source>Configuration options</source>
+        <extracomment>Window title text of pop-up box that allows opening up of configuration file.</extracomment>
+        <translation type="unfinished">కాన్ఫిగరేషన్ ఎంపికలు</translation>
+    </message>
+    <message>
+        <source>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</source>
+        <extracomment>Explanatory text about the priority order of instructions considered by client. The order from high to low being: command-line, configuration file, GUI settings.</extracomment>
+        <translation type="unfinished">GUI సెట్టింగ్‌లను భర్తీ చేసే అధునాతన వినియోగదారు ఎంపికలను పేర్కొనడానికి కాన్ఫిగరేషన్ ఫైల్ ఉపయోగించబడుతుంది. అదనంగా, ఏదైనా కమాండ్-లైన్ ఎంపికలు ఈ కాన్ఫిగరేషన్ ఫైల్‌ను భర్తీ చేస్తాయి.</translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation type="unfinished">కొనసాగించు</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">రద్దు చేయండి</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation type="unfinished">లోపం</translation>
+    </message>
+    <message>
+        <source>The configuration file could not be opened.</source>
+        <translation type="unfinished">కాన్ఫిగరేషన్ ఫైల్ తెరవబడలేదు.</translation>
+    </message>
+    <message>
+        <source>This change would require a client restart.</source>
+        <translation type="unfinished">ఈ మార్పుకు క్లయింట్ పునఃప్రారంభం అవసరం.</translation>
+    </message>
+    <message>
+        <source>The supplied proxy address is invalid.</source>
+        <translation type="unfinished">సరఫరా చేయబడిన ప్రాక్సీ చిరునామా చెల్లదు.</translation>
+    </message>
+</context>
+<context>
+    <name>OverviewPage</name>
+    <message>
+        <source>Form</source>
+        <translation type="unfinished">రూపం</translation>
+    </message>
+    <message>
+        <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
+        <translation type="unfinished">ప్రదర్శించబడిన సమాచారం పాతది కావచ్చు. కనెక్షన్ స్థాపించబడిన తర్వాత మీ వాలెట్ స్వయంచాలకంగా బిట్‌కాయిన్ నెట్‌వర్క్‌తో సమకాలీకరించబడుతుంది, కానీ ఈ ప్రక్రియ ఇంకా పూర్తి కాలేదు.</translation>
+    </message>
+    <message>
+        <source>Watch-only:</source>
+        <translation type="unfinished">చూడటానికి మాత్రమే:</translation>
+    </message>
+    <message>
+        <source>Available:</source>
+        <translation type="unfinished">అందుబాటులో ఉంది:</translation>
+    </message>
+    <message>
+        <source>Your current spendable balance</source>
+        <translation type="unfinished">మీ ప్రస్తుత ఖర్చు చేయదగిన బ్యాలెన్స్</translation>
+    </message>
+    <message>
+        <source>Pending:</source>
+        <translation type="unfinished">పెండింగ్‌లో ఉంది:</translation>
+    </message>
+    <message>
+        <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source>
+        <translation type="unfinished">ఇంకా ధృవీకరించబడని లావాదేవీల మొత్తం మరియు ఇంకా ఖర్చు చేయదగిన బ్యాలెన్స్‌లో లెక్కించబడదు</translation>
+    </message>
+    <message>
+        <source>Immature:</source>
+        <translation type="unfinished">పరిపక్వత లేని:</translation>
+    </message>
+    <message>
+        <source>Mined balance that has not yet matured</source>
+        <translation type="unfinished">ఇంకా పరిపక్వం చెందని సంతులనం తవ్వబడింది</translation>
+    </message>
+    <message>
+        <source>Balances</source>
+        <translation type="unfinished">బ్యాలెన్స్‌లు</translation>
+    </message>
+    <message>
+        <source>Total:</source>
+        <translation type="unfinished">మొత్తం:</translation>
+    </message>
+    <message>
+        <source>Your current total balance</source>
+        <translation type="unfinished">మీ ప్రస్తుత మొత్తం బ్యాలెన్స్</translation>
+    </message>
+    <message>
+        <source>Your current balance in watch-only addresses</source>
+        <translation type="unfinished">వీక్షణ-మాత్రమే చిరునామాలలో మీ ప్రస్తుత బ్యాలెన్స్</translation>
+    </message>
+    <message>
+        <source>Spendable:</source>
+        <translation type="unfinished">ఖర్చు చేయదగినది:</translation>
+    </message>
+    <message>
+        <source>Recent transactions</source>
+        <translation type="unfinished">ఇటీవలి లావాదేవీలు</translation>
+    </message>
+    <message>
+        <source>Unconfirmed transactions to watch-only addresses</source>
+        <translation type="unfinished">వీక్షణ-మాత్రమే చిరునామాలకు ధృవీకరించబడని లావాదేవీలు</translation>
+    </message>
+    <message>
+        <source>Mined balance in watch-only addresses that has not yet matured</source>
+        <translation type="unfinished">ఇంకా మెచ్యూర్ కాని వాచ్-ఓన్లీ అడ్రస్‌లలో మైన్ చేయబడిన బ్యాలెన్స్</translation>
+    </message>
+    <message>
+        <source>Current total balance in watch-only addresses</source>
+        <translation type="unfinished">వీక్షణ-మాత్రమే చిరునామాలలో ప్రస్తుత మొత్తం బ్యాలెన్స్</translation>
+    </message>
+    <message>
+        <source>Privacy mode activated for the Overview tab. To unmask the values, uncheck Settings-&gt;Mask values.</source>
+        <translation type="unfinished">అవలోకనం ట్యాబ్ కోసం గోప్యతా మోడ్ సక్రియం చేయబడింది. విలువలను అన్‌మాస్క్ చేయడానికి, సెట్టింగ్‌లు-&gt;మాస్క్ విలువల ఎంపికను తీసివేయండి.</translation>
+    </message>
+</context>
+<context>
+    <name>PSBTOperationsDialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation type="unfinished">డైలాగ్</translation>
+    </message>
+    <message>
+        <source>Sign Tx</source>
+        <translation type="unfinished">Txపై సంతకం చేయండి</translation>
+    </message>
+    <message>
+        <source>Broadcast Tx</source>
+        <translation type="unfinished">ప్రసారం చేయు లావాదేవీ</translation>
+    </message>
+    <message>
+        <source>Copy to Clipboard</source>
+        <translation type="unfinished">క్లిప్‌బోర్డ్‌కి కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>Save…</source>
+        <translation type="unfinished">సేవ్ చేయి...</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished">మూసివేయి</translation>
+    </message>
+    <message>
+        <source>Failed to load transaction: %1</source>
+        <translation type="unfinished">లావాదేవీని లోడ్ చేయడంలో విఫలమైంది: %1</translation>
+    </message>
+    <message>
+        <source>Cannot sign inputs while wallet is locked.</source>
+        <translation type="unfinished">వాలెట్ లాక్ చేయబడినప్పుడు ఇన్‌పుట్‌లపై సంతకం చేయలేరు.</translation>
+    </message>
+    <message>
+        <source>Could not sign any more inputs.</source>
+        <translation type="unfinished">మరిన్ని ఇన్‌పుట్‌లపై సంతకం చేయడం సాధ్యపడలేదు.</translation>
+    </message>
+    <message>
+        <source>Signed %1 inputs, but more signatures are still required.</source>
+        <translation type="unfinished">సంతకం చేయబడిన %1 ఇన్‌పుట్‌లు, కానీ మరిన్ని సంతకాలు ఇంకా అవసరం.</translation>
+    </message>
+    <message>
+        <source>Signed transaction successfully. Transaction is ready to broadcast.</source>
+        <translation type="unfinished">లావాదేవీ విజయవంతంగా సంతకం చేయబడింది. లావాదేవీ ప్రసారానికి సిద్ధంగా ఉంది.</translation>
+    </message>
+    <message>
+        <source>Unknown error processing transaction.</source>
+        <translation type="unfinished">లావాదేవీని ప్రాసెస్ చేయడంలో తెలియని లోపం.</translation>
+    </message>
+    <message>
+        <source>Transaction broadcast successfully! Transaction ID: %1</source>
+        <translation type="unfinished">లావాదేవీ విజయవంతంగా ప్రసారం చేయబడింది! లావాదేవి ఐడి: %1</translation>
+    </message>
+    <message>
+        <source>Transaction broadcast failed: %1</source>
+        <translation type="unfinished">లావాదేవీ ప్రసారం విఫలమైంది: %1</translation>
+    </message>
+    <message>
+        <source>PSBT copied to clipboard.</source>
+        <translation type="unfinished">PSBT క్లిప్‌బోర్డ్‌కి కాపీ చేయబడింది.</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">లావాదేవీ డేటాను సేవ్ చేయండి</translation>
+    </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">పాక్షికంగా సంతకం చేసిన లావాదేవీ (బైనరీ)</translation>
+    </message>
+    <message>
+        <source>PSBT saved to disk.</source>
+        <translation type="unfinished">PSBT డిస్క్‌లో సేవ్ చేయబడింది.</translation>
+    </message>
+    <message>
+        <source> * Sends %1 to %2</source>
+        <translation type="unfinished">* %1 ని %2 కి పంపుతుంది</translation>
+    </message>
+    <message>
+        <source>Unable to calculate transaction fee or total transaction amount.</source>
+        <translation type="unfinished">లావాదేవీ రుసుము లేదా మొత్తం లావాదేవీ మొత్తాన్ని లెక్కించడం సాధ్యం కాలేదు.</translation>
+    </message>
+    <message>
+        <source>Pays transaction fee: </source>
+        <translation type="unfinished">లావాదేవీ రుసుము చెల్లిస్తుంది:</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">పూర్తి మొత్తము</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">లేదా</translation>
+    </message>
+    <message>
+        <source>Transaction has %1 unsigned inputs.</source>
+        <translation type="unfinished">లావాదేవీ %1 సంతకం చేయని ఇన్‌పుట్‌లను కలిగి ఉంది.</translation>
+    </message>
+    <message>
+        <source>Transaction is missing some information about inputs.</source>
+        <translation type="unfinished">లావాదేవీ ఇన్‌పుట్‌ల గురించి కొంత సమాచారం లేదు.</translation>
+    </message>
+    <message>
+        <source>Transaction still needs signature(s).</source>
+        <translation type="unfinished">లావాదేవీకి ఇంకా సంతకం(లు) అవసరం.</translation>
+    </message>
+    <message>
+        <source>(But no wallet is loaded.)</source>
+        <translation type="unfinished">(కానీ వాలెట్ లోడ్ చేయబడలేదు.)</translation>
+    </message>
+    <message>
+        <source>(But this wallet cannot sign transactions.)</source>
+        <translation type="unfinished">(కానీ ఈ వాలెట్ లావాదేవీలపై సంతకం చేయదు.)</translation>
+    </message>
+    <message>
+        <source>(But this wallet does not have the right keys.)</source>
+        <translation type="unfinished">(కానీ ఈ వాలెట్‌లో సరైన కీలు లేవు.)</translation>
+    </message>
+    <message>
+        <source>Transaction is fully signed and ready for broadcast.</source>
+        <translation type="unfinished">లావాదేవీ పూర్తిగా సంతకం చేయబడింది మరియు ప్రసారానికి సిద్ధంగా ఉంది.</translation>
+    </message>
+    <message>
+        <source>Transaction status is unknown.</source>
+        <translation type="unfinished">లావాదేవీ స్థితి తెలియదు.</translation>
+    </message>
+</context>
+<context>
+    <name>PaymentServer</name>
+    <message>
+        <source>Payment request error</source>
+        <translation type="unfinished">చెల్లింపు అభ్యర్ధన లోపం</translation>
+    </message>
+    <message>
+        <source>Cannot start bitcoin: click-to-pay handler</source>
+        <translation type="unfinished">బిట్‌కాయిన్‌ను ప్రారంభించడం సాధ్యం కాదు: క్లిక్-టు-పే హ్యాండ్లర్</translation>
+    </message>
+    <message>
+        <source>URI handling</source>
+        <translation type="unfinished">URI నిర్వహణ</translation>
+    </message>
+    <message>
+        <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source>
+        <translation type="unfinished">'bitcoin://' చెల్లుబాటు అయ్యే URI కాదు. బదులుగా 'bitcoin:' ఉపయోగించండి.</translation>
+    </message>
+    <message>
+        <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source>
+        <translation type="unfinished">URI అన్వయించబడదు! ఇది చెల్లని బిట్‌కాయిన్ చిరునామా లేదా తప్పుగా రూపొందించబడిన URI పారామీటర్‌ల వల్ల సంభవించవచ్చు.</translation>
+    </message>
+    <message>
+        <source>Payment request file handling</source>
+        <translation type="unfinished">చెల్లింపు అభ్యర్థన ఫైల్ నిర్వహణ</translation>
+    </message>
+</context>
+<context>
+    <name>PeerTableModel</name>
+    <message>
+        <source>User Agent</source>
+        <extracomment>Title of Peers Table column which contains the peer's User Agent string.</extracomment>
+        <translation type="unfinished">వినియోగదారు ఏజెంట్</translation>
+    </message>
+    <message>
+        <source>Ping</source>
+        <extracomment>Title of Peers Table column which indicates the current latency of the connection with the peer.</extracomment>
+        <translation type="unfinished">పింగ్</translation>
+    </message>
+    <message>
+        <source>Peer</source>
+        <extracomment>Title of Peers Table column which contains a unique number used to identify a connection.</extracomment>
+        <translation type="unfinished">పీర్</translation>
+    </message>
+    <message>
+        <source>Direction</source>
+        <extracomment>Title of Peers Table column which indicates the direction the peer connection was initiated from.</extracomment>
+        <translation type="unfinished">దిశ</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have sent to the peer.</extracomment>
+        <translation type="unfinished">పంపారు</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <extracomment>Title of Peers Table column which indicates the total amount of network information we have received from the peer.</extracomment>
+        <translation type="unfinished">స్వీకరించబడింది</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <extracomment>Title of Peers Table column which contains the IP/Onion/I2P address of the connected peer.</extracomment>
+        <translation type="unfinished">చిరునామా</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <extracomment>Title of Peers Table column which describes the type of peer connection. The "type" describes why the connection exists.</extracomment>
+        <translation type="unfinished">రకము</translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <extracomment>Title of Peers Table column which states the network the peer connected through.</extracomment>
+        <translation type="unfinished">నెట్‌వర్క్</translation>
+    </message>
+    <message>
+        <source>Inbound</source>
+        <extracomment>An Inbound Connection from a Peer.</extracomment>
+        <translation type="unfinished">ఇన్‌బౌండ్</translation>
+    </message>
+    <message>
+        <source>Outbound</source>
+        <extracomment>An Outbound Connection to a Peer.</extracomment>
+        <translation type="unfinished">అవుట్ బౌండ్</translation>
+    </message>
+</context>
+<context>
+    <name>QRImageWidget</name>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;చిత్రాన్ని సేవ్ చేయి...</translation>
+    </message>
+    <message>
+        <source>&amp;Copy Image</source>
+        <translation type="unfinished">&amp;ఇమేజ్ కాపీ చేయి</translation>
+    </message>
+    <message>
+        <source>Resulting URI too long, try to reduce the text for label / message.</source>
+        <translation type="unfinished">URI చాలా పొడవుగా ఉంది, లేబుల్ / సందేశం కోసం వచనాన్ని తగ్గించడానికి ప్రయత్నించండి.</translation>
+    </message>
+    <message>
+        <source>Error encoding URI into QR Code.</source>
+        <translation type="unfinished">URIని QR కోడ్‌లోకి ఎన్‌కోడ్ చేయడంలో లోపం.</translation>
+    </message>
+    <message>
+        <source>QR code support not available.</source>
+        <translation type="unfinished">QR కోడ్ మద్దతు అందుబాటులో లేదు.</translation>
+    </message>
+    <message>
+        <source>Save QR Code</source>
+        <translation type="unfinished">QR కోడ్‌ని సేవ్ చేయండి</translation>
+    </message>
+    <message>
+        <source>PNG Image</source>
+        <extracomment>Expanded name of the PNG file format. See: https://en.wikipedia.org/wiki/Portable_Network_Graphics.</extracomment>
+        <translation type="unfinished">PNG చిత్రం</translation>
+    </message>
+</context>
+<context>
+    <name>RPCConsole</name>
+    <message>
+        <source>N/A</source>
+        <translation type="unfinished">వర్తించదు</translation>
+    </message>
+    <message>
+        <source>Client version</source>
+        <translation type="unfinished">క్లయింట్ వెర్షన్</translation>
+    </message>
+    <message>
+        <source>&amp;Information</source>
+        <translation type="unfinished">&amp;సమాచారం</translation>
+    </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">సాధారణ</translation>
+    </message>
+    <message>
+        <source>Datadir</source>
+        <translation type="unfinished">సమాచార డైరెక్టరీ</translation>
+    </message>
+    <message>
+        <source>To specify a non-default location of the data directory use the '%1' option.</source>
+        <translation type="unfinished">డేటా డైరెక్టరీ యొక్క నాన్-డిఫాల్ట్ స్థానాన్ని పేర్కొనడానికి '%1' ఎంపికను ఉపయోగించండి.</translation>
+    </message>
+    <message>
+        <source>Blocksdir</source>
+        <translation type="unfinished">బ్లాక్స్ డైరెక్టరీ</translation>
+    </message>
+    <message>
+        <source>To specify a non-default location of the blocks directory use the '%1' option.</source>
+        <translation type="unfinished">బ్లాక్స్ డైరెక్టరీ యొక్క నాన్-డిఫాల్ట్ స్థానాన్ని పేర్కొనడానికి '%1' ఎంపికను ఉపయోగించండి.</translation>
+    </message>
+    <message>
+        <source>Startup time</source>
+        <translation type="unfinished">ప్రారంభ సమయం</translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">నెట్‌వర్క్</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">పేరు</translation>
+    </message>
+    <message>
+        <source>Number of connections</source>
+        <translation type="unfinished">కనెక్షన్ల సంఖ్య</translation>
+    </message>
+    <message>
+        <source>Block chain</source>
+        <translation type="unfinished">బ్లాక్ చైన్</translation>
+    </message>
+    <message>
+        <source>Memory Pool</source>
+        <translation type="unfinished">మెమరీ పూల్</translation>
+    </message>
+    <message>
+        <source>Current number of transactions</source>
+        <translation type="unfinished">ప్రస్తుత లావాదేవీల సంఖ్య</translation>
+    </message>
+    <message>
+        <source>Memory usage</source>
+        <translation type="unfinished">మెమరీ వినియోగం</translation>
+    </message>
+    <message>
+        <source>(none)</source>
+        <translation type="unfinished">(ఏదీ లేదు)</translation>
+    </message>
+    <message>
+        <source>&amp;Reset</source>
+        <translation type="unfinished">&amp;రీసెట్</translation>
+    </message>
+    <message>
+        <source>Received</source>
+        <translation type="unfinished">స్వీకరించబడింది</translation>
+    </message>
+    <message>
+        <source>Sent</source>
+        <translation type="unfinished">పంపారు</translation>
+    </message>
+    <message>
+        <source>&amp;Peers</source>
+        <translation type="unfinished">&amp;తోటివారి</translation>
+    </message>
+    <message>
+        <source>Banned peers</source>
+        <translation type="unfinished">సహచరులను నిషేధించారు</translation>
+    </message>
+    <message>
+        <source>Select a peer to view detailed information.</source>
+        <translation type="unfinished">వివరణాత్మక సమాచారాన్ని వీక్షించడానికి పీర్‌ని ఎంచుకోండి.</translation>
+    </message>
+    <message>
+        <source>Total number of addresses processed, excluding those dropped due to rate-limiting.</source>
+        <extracomment>Tooltip text for the Addresses Processed field in the peer details area.</extracomment>
+        <translation type="unfinished">రేటు-పరిమితి కారణంగా తొలగించబడిన చిరునామాలను మినహాయించి, ప్రాసెస్ చేయబడిన మొత్తం చిరునామాల సంఖ్య.</translation>
+    </message>
+    <message>
+        <source>User Agent</source>
+        <translation type="unfinished">వినియోగదారు ఏజెంట్</translation>
+    </message>
+    <message>
+        <source>Node window</source>
+        <translation type="unfinished">నోడ్ విండో</translation>
+    </message>
+    <message>
+        <source>Last block time</source>
+        <translation type="unfinished">చివరి బ్లాక్ సమయం</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <extracomment>Context menu action to copy the address of a peer.</extracomment>
+        <translation type="unfinished">&amp;కాపీ చిరునామా</translation>
+    </message>
+    <message>
+        <source>To</source>
+        <translation type="unfinished">కు</translation>
+    </message>
+    <message>
+        <source>From</source>
+        <translation type="unfinished">నుండి</translation>
+    </message>
+    </context>
+<context>
+    <name>ReceiveCoinsDialog</name>
+    <message>
+        <source>Remove the selected entries from the list</source>
+        <translation type="unfinished">జాబితా నుండి ఎంచుకున్న ఎంట్రీలను తీసివేయండి</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished">తొలగించు</translation>
+    </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">కాపీ &amp;URI</translation>
+    </message>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;కాపీ చిరునామా</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">కాపీ &amp;లేబుల్</translation>
+    </message>
+    <message>
+        <source>Copy &amp;message</source>
+        <translation type="unfinished">కాపీ &amp;సందేశం</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">కాపీ &amp;అమౌంట్</translation>
+    </message>
+    <message>
+        <source>Could not unlock wallet.</source>
+        <translation type="unfinished">వాలెట్‌ని అన్‌లాక్ చేయడం సాధ్యపడలేదు.</translation>
+    </message>
+    <message>
+        <source>Could not generate new %1 address</source>
+        <translation type="unfinished">కొత్త %1 చిరునామాను రూపొందించడం సాధ్యం కాలేదు</translation>
+    </message>
+</context>
+<context>
+    <name>ReceiveRequestDialog</name>
+    <message>
+        <source>Request payment to …</source>
+        <translation type="unfinished">దీనికి చెల్లింపును అభ్యర్థించండి…</translation>
+    </message>
+    <message>
+        <source>Address:</source>
+        <translation type="unfinished">చిరునామా:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">మొత్తం:</translation>
+    </message>
+    <message>
+        <source>Label:</source>
+        <translation type="unfinished">లేబుల్:</translation>
+    </message>
+    <message>
+        <source>Message:</source>
+        <translation type="unfinished">సందేశం:</translation>
+    </message>
+    <message>
+        <source>Wallet:</source>
+        <translation type="unfinished">ధనమును తీసుకొనిపోవు సంచి</translation>
+    </message>
+    <message>
+        <source>Copy &amp;URI</source>
+        <translation type="unfinished">కాపీ &amp;URI</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Address</source>
+        <translation type="unfinished">కాపీ &amp;చిరునామా </translation>
+    </message>
+    <message>
+        <source>&amp;Save Image…</source>
+        <translation type="unfinished">&amp;చిత్రాన్ని సేవ్ చేయి...</translation>
+    </message>
+    </context>
+<context>
+    <name>RecentRequestsTableModel</name>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">తేదీ</translation>
+    </message>
+    <message>
+        <source>Label</source>
+        <translation type="unfinished">ఉల్లాకు</translation>
+    </message>
+    <message>
+        <source>Message</source>
+        <translation type="unfinished">సందేశం</translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">( ఉల్లాకు లేదు )</translation>
+    </message>
+    </context>
+<context>
+    <name>SendCoinsDialog</name>
+    <message>
+        <source>Quantity:</source>
+        <translation type="unfinished">పరిమాణం</translation>
+    </message>
+    <message>
+        <source>Bytes:</source>
+        <translation type="unfinished">బైట్‌లు:</translation>
+    </message>
+    <message>
+        <source>Amount:</source>
+        <translation type="unfinished">మొత్తం:</translation>
+    </message>
+    <message>
+        <source>Fee:</source>
+        <translation type="unfinished">రుసుము:</translation>
+    </message>
+    <message>
+        <source>After Fee:</source>
+        <translation type="unfinished">రుసుము తర్వాత:</translation>
+    </message>
+    <message>
+        <source>Change:</source>
+        <translation type="unfinished">మార్చు:</translation>
+    </message>
+    <message>
+        <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source>
+        <translation type="unfinished">ఫాల్‌బ్యాక్‌ఫీని ఉపయోగించడం వలన లావాదేవీని పంపడం ద్వారా నిర్ధారించడానికి చాలా గంటలు లేదా రోజులు (లేదా ఎప్పుడూ) పట్టవచ్చు. మీ రుసుమును మాన్యువల్‌గా ఎంచుకోవడాన్ని పరిగణించండి లేదా మీరు పూర్తి గొలుసును ధృవీకరించే వరకు వేచి ఉండండి.</translation>
+    </message>
+    <message>
+        <source>Hide</source>
+        <translation type="unfinished">దాచు</translation>
+    </message>
+    <message>
+        <source>Dust:</source>
+        <translation type="unfinished">దుమ్ము:</translation>
+    </message>
+    <message>
+        <source>Copy quantity</source>
+        <translation type="unfinished">కాపీ పరిమాణం</translation>
+    </message>
+    <message>
+        <source>Copy amount</source>
+        <translation type="unfinished">కాపీ అమౌంట్</translation>
+    </message>
+    <message>
+        <source>Copy fee</source>
+        <translation type="unfinished">రుసుము కాపీ</translation>
+    </message>
+    <message>
+        <source>Copy after fee</source>
+        <translation type="unfinished">రుసుము తర్వాత కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>Copy bytes</source>
+        <translation type="unfinished">బైట్‌లను కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>Copy dust</source>
+        <translation type="unfinished">దుమ్మును కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>Copy change</source>
+        <translation type="unfinished">మార్పుని కాపీ చేయండి</translation>
+    </message>
+    <message>
+        <source>%1 (%2 blocks)</source>
+        <translation type="unfinished">%1 (%2 బ్లాక్‌లు)</translation>
+    </message>
+    <message>
+        <source> from wallet '%1'</source>
+        <translation type="unfinished">వాలెట్ నుండి '%1'</translation>
+    </message>
+    <message>
+        <source>%1 to '%2'</source>
+        <translation type="unfinished">%1 కు '%2'</translation>
+    </message>
+    <message>
+        <source>%1 to %2</source>
+        <translation type="unfinished">%1 కు %2</translation>
+    </message>
+    <message>
+        <source>Save Transaction Data</source>
+        <translation type="unfinished">లావాదేవీ డేటాను సేవ్ చేయండి</translation>
+    </message>
+    <message>
+        <source>Partially Signed Transaction (Binary)</source>
+        <extracomment>Expanded name of the binary PSBT file format. See: BIP 174.</extracomment>
+        <translation type="unfinished">పాక్షికంగా సంతకం చేసిన లావాదేవీ (బైనరీ)</translation>
+    </message>
+    <message>
+        <source>or</source>
+        <translation type="unfinished">లేదా</translation>
+    </message>
+    <message>
+        <source>Total Amount</source>
+        <translation type="unfinished">పూర్తి మొత్తము</translation>
+    </message>
+    <message numerus="yes">
+        <source>Estimated to begin confirmation within %n block(s).</source>
+        <translation type="unfinished">
+            <numerusform />
+            <numerusform />
+        </translation>
+    </message>
+    <message>
+        <source>(no label)</source>
+        <translation type="unfinished">( ఉల్లాకు లేదు )</translation>
+    </message>
+</context>
+<context>
+    <name>SendCoinsEntry</name>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">క్లిప్‌బోర్డ్ నుండి చిరునామాను అతికించండి</translation>
+    </message>
+    <message>
+        <source>Message:</source>
+        <translation type="unfinished">సందేశం:</translation>
+    </message>
+    </context>
+<context>
+    <name>SignVerifyMessageDialog</name>
+    <message>
+        <source>Paste address from clipboard</source>
+        <translation type="unfinished">క్లిప్‌బోర్డ్ నుండి చిరునామాను అతికించండి</translation>
+    </message>
+    <message>
+        <source>Enter the message you want to sign here</source>
+        <translation type="unfinished">మీరు సంతకం చేయాలనుకుంటున్న సందేశాన్ని ఇక్కడ నమోదు చేయండి</translation>
+    </message>
+    <message>
+        <source>Signature</source>
+        <translation type="unfinished">సంతకం</translation>
+    </message>
+    </context>
+<context>
+    <name>SplashScreen</name>
+    <message>
+        <source>press q to shutdown</source>
+        <translation type="unfinished">షట్‌డౌన్ చేయడానికి q నొక్కండి</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionDesc</name>
+    <message>
+        <source>Status</source>
+        <translation type="unfinished">స్థితి</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation type="unfinished">తేదీ</translation>
     </message>
     <message>
         <source>From</source>
@@ -559,6 +2577,10 @@
         <source>Date</source>
         <translation type="unfinished">తేదీ</translation>
     </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">రకము</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">ఉల్లాకు</translation>
@@ -570,10 +2592,35 @@
     </context>
 <context>
     <name>TransactionView</name>
+    <message>
+        <source>&amp;Copy address</source>
+        <translation type="unfinished">&amp;కాపీ చిరునామా</translation>
+    </message>
+    <message>
+        <source>Copy &amp;label</source>
+        <translation type="unfinished">కాపీ &amp;లేబుల్</translation>
+    </message>
+    <message>
+        <source>Copy &amp;amount</source>
+        <translation type="unfinished">కాపీ &amp;అమౌంట్</translation>
+    </message>
+    <message>
+        <source>Comma separated file</source>
+        <extracomment>Expanded name of the CSV file format. See: https://en.wikipedia.org/wiki/Comma-separated_values.</extracomment>
+        <translation type="unfinished">కామాతో వేరు చేయబడిన ఫైల్</translation>
+    </message>
+    <message>
+        <source>Confirmed</source>
+        <translation type="unfinished">నిర్ధారించబడినది</translation>
+    </message>
     <message>
         <source>Date</source>
         <translation type="unfinished">తేదీ</translation>
     </message>
+    <message>
+        <source>Type</source>
+        <translation type="unfinished">రకము</translation>
+    </message>
     <message>
         <source>Label</source>
         <translation type="unfinished">ఉల్లాకు</translation>
@@ -602,6 +2649,13 @@
         <translation type="unfinished">లోపం</translation>
     </message>
     </context>
+<context>
+    <name>WalletModel</name>
+    <message>
+        <source>default wallet</source>
+        <translation type="unfinished">డిఫాల్ట్ వాలెట్</translation>
+    </message>
+</context>
 <context>
     <name>WalletView</name>
     <message>
@@ -612,5 +2666,18 @@
         <source>Export the data in the current tab to a file</source>
         <translation type="unfinished">ప్రస్తుతం ఉన్న సమాచారాన్ని ఫైల్ లోనికి ఎగుమతి చేసుకోండి</translation>
     </message>
-    </context>
+    <message>
+        <source>Backup Wallet</source>
+        <translation type="unfinished">బ్యాకప్ వాలెట్</translation>
+    </message>
+    <message>
+        <source>Wallet Data</source>
+        <extracomment>Name of the wallet data file format.</extracomment>
+        <translation type="unfinished">వాలెట్ సమాచారం</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">రద్దు చేయండి</translation>
+    </message>
+</context>
 </TS>
\ No newline at end of file

From 93713654ef65b3353394b0efd653beba1826a0f8 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Thu, 8 Dec 2022 12:32:22 +0000
Subject: [PATCH 083/187] build: bump version to 23.1 final

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index d424c49b571..313b8477931 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 1)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 2)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 58478261de77035f90b758e4f03a6d2fdc0fa516 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Thu, 8 Dec 2022 12:36:04 +0000
Subject: [PATCH 084/187] doc: update manual pages for 23.1

---
 doc/man/bitcoin-cli.1    | 6 +++---
 doc/man/bitcoin-qt.1     | 6 +++---
 doc/man/bitcoin-tx.1     | 6 +++---
 doc/man/bitcoin-util.1   | 6 +++---
 doc/man/bitcoin-wallet.1 | 6 +++---
 doc/man/bitcoind.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index bb529517563..1ee6f42118d 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-CLI "1" "November 2022" "bitcoin-cli v23.1.0rc2" "User Commands"
+.TH BITCOIN-CLI "1" "December 2022" "bitcoin-cli v23.1.0" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.1.0rc2
+bitcoin-cli \- manual page for bitcoin-cli v23.1.0
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.1.0rc2
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.1.0rc2
+Bitcoin Core RPC client version v23.1.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index 41fe2104b87..9536929fdec 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-QT "1" "November 2022" "bitcoin-qt v23.1.0rc2" "User Commands"
+.TH BITCOIN-QT "1" "December 2022" "bitcoin-qt v23.1.0" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.1.0rc2
+bitcoin-qt \- manual page for bitcoin-qt v23.1.0
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.1.0rc2
+Bitcoin Core version v23.1.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index 1ed7d7f4b64..e2a4417a2b5 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-TX "1" "November 2022" "bitcoin-tx v23.1.0rc2" "User Commands"
+.TH BITCOIN-TX "1" "December 2022" "bitcoin-tx v23.1.0" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.1.0rc2
+bitcoin-tx \- manual page for bitcoin-tx v23.1.0
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.1.0rc2
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.1.0rc2
+Bitcoin Core bitcoin\-tx utility version v23.1.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index b366096b1f7..e9ec7b427cb 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-UTIL "1" "November 2022" "bitcoin-util v23.1.0rc2" "User Commands"
+.TH BITCOIN-UTIL "1" "December 2022" "bitcoin-util v23.1.0" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.1.0rc2
+bitcoin-util \- manual page for bitcoin-util v23.1.0
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.1.0rc2
+Bitcoin Core bitcoin\-util utility version v23.1.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 49fb5d10289..028f0a753f2 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-WALLET "1" "November 2022" "bitcoin-wallet v23.1.0rc2" "User Commands"
+.TH BITCOIN-WALLET "1" "December 2022" "bitcoin-wallet v23.1.0" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.1.0rc2
+bitcoin-wallet \- manual page for bitcoin-wallet v23.1.0
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.1.0rc2
+Bitcoin Core bitcoin\-wallet version v23.1.0
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index ed24afde863..63be12b2df7 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIND "1" "November 2022" "bitcoind v23.1.0rc2" "User Commands"
+.TH BITCOIND "1" "December 2022" "bitcoind v23.1.0" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.1.0rc2
+bitcoind \- manual page for bitcoind v23.1.0
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.1.0rc2
+Bitcoin Core version v23.1.0
 .SH OPTIONS
 .HP
 \-?

From 8a16391c91acd1ab7c49370b7b5fd979375c94c7 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Thu, 8 Dec 2022 12:37:23 +0000
Subject: [PATCH 085/187] doc: update release notes for 23.1

---
 doc/release-notes.md | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/doc/release-notes.md b/doc/release-notes.md
index 257df52955e..31d9b7f068d 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,7 +1,7 @@
-23.1rc2 Release Notes Draft
-===============================
+23.1 Release Notes
+==================
 
-Bitcoin Core version 23.1rc2 is now available from:
+Bitcoin Core version 23.1 is now available from:
 
   <https://bitcoincore.org/bin/bitcoin-core-23.1/>
 
@@ -74,17 +74,17 @@ Credits
 
 Thanks to everyone who directly contributed to this release:
 
-Andrew Chow
-brunoerg
-Hennadii Stepanov
-John Moffett
-MacroFake
-Martin Zumsande
-Michael Ford
-muxator
-Pavol Rusnak
-Sebastian Falbesoner
-W. J. van der Laan
+- Andrew Chow
+- brunoerg
+- Hennadii Stepanov
+- John Moffett
+- MacroFake
+- Martin Zumsande
+- Michael Ford
+- muxator
+- Pavol Rusnak
+- Sebastian Falbesoner
+- W. J. van der Laan
 
 As well as to everyone that helped with translations on
 [Transifex](https://www.transifex.com/bitcoin/bitcoin/).

From 192759eb7bfc329e7d31f46d06986515e38af0b4 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 17 May 2022 13:10:42 +0200
Subject: [PATCH 086/187] ci, refactor: Add `MACOS_NATIVE_TASK_TEMPLATE`

A native macOS task does not aware of Linux container settings, and it
does not use the `depends_built_cache`.

Github-Pull: #25444
Rebased-From: 8e017f32889e9536a436f40c91f34f24bfd10525
---
 .cirrus.yml | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index 2e81177d3a6..50a347c97d0 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -34,22 +34,30 @@ base_template: &BASE_TEMPLATE
 
 main_template: &MAIN_TEMPLATE
   timeout_in: 120m  # https://cirrus-ci.org/faq/#instance-timed-out
+  ccache_cache:
+    folder: "/tmp/ccache_dir"
+  ci_script:
+    - ./ci/test_run_all.sh
+
+global_task_template: &GLOBAL_TASK_TEMPLATE
+  << : *BASE_TEMPLATE
   container:
     # https://cirrus-ci.org/faq/#are-there-any-limits
     # Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel
     cpu: 2
     greedy: true
     memory: 8G  # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
-  ccache_cache:
-    folder: "/tmp/ccache_dir"
   depends_built_cache:
     folder: "depends/built"
     fingerprint_script: echo $CIRRUS_TASK_NAME $(git rev-list -1 HEAD ./depends)
-  ci_script:
-    - ./ci/test_run_all.sh
+  << : *MAIN_TEMPLATE
 
-global_task_template: &GLOBAL_TASK_TEMPLATE
+macos_native_task_template: &MACOS_NATIVE_TASK_TEMPLATE
   << : *BASE_TEMPLATE
+  check_clang_script:
+    - clang --version
+  brew_install_script:
+    - brew install boost libevent qt@5 miniupnpc libnatpmp ccache zeromq qrencode libtool automake gnu-getopt
   << : *MAIN_TEMPLATE
 
 compute_credits_template: &CREDITS_TEMPLATE
@@ -282,12 +290,10 @@ task:
 
 task:
   name: 'macOS 12 native [gui, system sqlite only] [no depends]'
-  brew_install_script:
-    - brew install boost libevent qt@5 miniupnpc libnatpmp ccache zeromq qrencode libtool automake gnu-getopt
-  << : *GLOBAL_TASK_TEMPLATE
   macos_instance:
     # Use latest image, but hardcode version to avoid silent upgrades (and breaks)
-    image: monterey-xcode-13.2  # https://cirrus-ci.org/guide/macOS
+    image: monterey-xcode-13.3  # https://cirrus-ci.org/guide/macOS
+  << : *MACOS_NATIVE_TASK_TEMPLATE
   env:
     << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
     CI_USE_APT_INSTALL: "no"

From 6a5bb10da9d4ea87d94089ca260d278da9b889c0 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 17 May 2022 20:57:55 +0200
Subject: [PATCH 087/187] ci: Improve naming related to "macOS 12 native
 x86_64" task

Github-Pull: #25444
Rebased-From: 0bb7a1f71db1d986ab824d114534fb7671024990
---
 .cirrus.yml                                                   | 4 ++--
 ...etup_env_mac_host.sh => 00_setup_env_mac_native_x86_64.sh} | 0
 2 files changed, 2 insertions(+), 2 deletions(-)
 rename ci/test/{00_setup_env_mac_host.sh => 00_setup_env_mac_native_x86_64.sh} (100%)

diff --git a/.cirrus.yml b/.cirrus.yml
index 50a347c97d0..1f7c28381e6 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -289,7 +289,7 @@ task:
     FILE_ENV: "./ci/test/00_setup_env_mac.sh"
 
 task:
-  name: 'macOS 12 native [gui, system sqlite only] [no depends]'
+  name: 'macOS 12 native x86_64 [gui, system sqlite] [no depends]'
   macos_instance:
     # Use latest image, but hardcode version to avoid silent upgrades (and breaks)
     image: monterey-xcode-13.3  # https://cirrus-ci.org/guide/macOS
@@ -298,7 +298,7 @@ task:
     << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
     CI_USE_APT_INSTALL: "no"
     PACKAGE_MANAGER_INSTALL: "echo"  # Nothing to do
-    FILE_ENV: "./ci/test/00_setup_env_mac_host.sh"
+    FILE_ENV: "./ci/test/00_setup_env_mac_native_x86_64.sh"
 
 task:
   name: 'ARM64 Android APK [focal]'
diff --git a/ci/test/00_setup_env_mac_host.sh b/ci/test/00_setup_env_mac_native_x86_64.sh
similarity index 100%
rename from ci/test/00_setup_env_mac_host.sh
rename to ci/test/00_setup_env_mac_native_x86_64.sh

From 53fd827883f9649f091999b59b0d916e0199c796 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 25 Oct 2022 09:48:35 +0100
Subject: [PATCH 088/187] ci: Make `getopt` path architecture agnostic

Github-Pull: #26388
Rebased-From: 702836530ffa351e863b1b1300fd2e559a14ef23
---
 ci/test/04_install.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh
index e409df62ebb..2ee5868b408 100755
--- a/ci/test/04_install.sh
+++ b/ci/test/04_install.sh
@@ -13,7 +13,7 @@ fi
 if [ "$CI_OS_NAME" == "macos" ]; then
   sudo -H pip3 install --upgrade pip
   # shellcheck disable=SC2086
-  IN_GETOPT_BIN="/usr/local/opt/gnu-getopt/bin/getopt" ${CI_RETRY_EXE} pip3 install --user $PIP_PACKAGES
+  IN_GETOPT_BIN="$(brew --prefix gnu-getopt)/bin/getopt" ${CI_RETRY_EXE} pip3 install --user $PIP_PACKAGES
 fi
 
 # Create folders that are mounted into the docker

From a3db8bd7cad8562347d88006fd8e0149ee6a1e4d Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 25 Oct 2022 09:49:16 +0100
Subject: [PATCH 089/187] ci: Use `macos-ventura-xcode:14.1` image for "macOS
 native" task

Github-Pull: #26388
Rebased-From: da168934741b776bce07d5503ca2344d300723b3
---
 .cirrus.yml                                                | 6 +++---
 ...c_native_x86_64.sh => 00_setup_env_mac_native_arm64.sh} | 7 +++----
 2 files changed, 6 insertions(+), 7 deletions(-)
 rename ci/test/{00_setup_env_mac_native_x86_64.sh => 00_setup_env_mac_native_arm64.sh} (69%)

diff --git a/.cirrus.yml b/.cirrus.yml
index 1f7c28381e6..b9e590a1c3e 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -289,16 +289,16 @@ task:
     FILE_ENV: "./ci/test/00_setup_env_mac.sh"
 
 task:
-  name: 'macOS 12 native x86_64 [gui, system sqlite] [no depends]'
+  name: 'macOS 13 native arm64 [gui, sqlite only] [no depends]'
   macos_instance:
     # Use latest image, but hardcode version to avoid silent upgrades (and breaks)
-    image: monterey-xcode-13.3  # https://cirrus-ci.org/guide/macOS
+    image: ghcr.io/cirruslabs/macos-ventura-xcode:14.1  # https://cirrus-ci.org/guide/macOS
   << : *MACOS_NATIVE_TASK_TEMPLATE
   env:
     << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
     CI_USE_APT_INSTALL: "no"
     PACKAGE_MANAGER_INSTALL: "echo"  # Nothing to do
-    FILE_ENV: "./ci/test/00_setup_env_mac_native_x86_64.sh"
+    FILE_ENV: "./ci/test/00_setup_env_mac_native_arm64.sh"
 
 task:
   name: 'ARM64 Android APK [focal]'
diff --git a/ci/test/00_setup_env_mac_native_x86_64.sh b/ci/test/00_setup_env_mac_native_arm64.sh
similarity index 69%
rename from ci/test/00_setup_env_mac_native_x86_64.sh
rename to ci/test/00_setup_env_mac_native_arm64.sh
index d176296e769..cb0e13e77c7 100755
--- a/ci/test/00_setup_env_mac_native_x86_64.sh
+++ b/ci/test/00_setup_env_mac_native_arm64.sh
@@ -6,12 +6,11 @@
 
 export LC_ALL=C.UTF-8
 
-export HOST=x86_64-apple-darwin
-export PIP_PACKAGES="zmq lief"
+export HOST=arm64-apple-darwin
+export PIP_PACKAGES="zmq"
 export GOAL="install"
-export BITCOIN_CONFIG="--with-gui --enable-reduce-exports"
+export BITCOIN_CONFIG="--with-gui --with-miniupnpc --with-natpmp --enable-reduce-exports"
 export CI_OS_NAME="macos"
 export NO_DEPENDS=1
 export OSX_SDK=""
 export CCACHE_SIZE=300M
-export RUN_SECURITY_TESTS="true"

From fd94befbc62e5f6b93f87979cc2011508378043d Mon Sep 17 00:00:00 2001
From: Martin Zumsande <mzumsande@gmail.com>
Date: Sun, 15 Jan 2023 20:18:11 -0500
Subject: [PATCH 090/187] hash: add HashedSourceWriter

This class is the counterpart to CHashVerifier, in that it
writes data to an underlying source stream,
while keeping a hash of the written data.

Github-Pull: #26909
Rebased-From: da6c7aeca38e1d0ab5839a374c26af0504d603fc
---
 src/hash.h                 | 24 ++++++++++++++++++++++++
 src/test/streams_tests.cpp | 14 ++++++++++++++
 2 files changed, 38 insertions(+)

diff --git a/src/hash.h b/src/hash.h
index 9f582842c1f..7515fc45a62 100644
--- a/src/hash.h
+++ b/src/hash.h
@@ -188,6 +188,30 @@ class CHashVerifier : public CHashWriter
     }
 };
 
+/** Writes data to an underlying source stream, while hashing the written data. */
+template <typename Source>
+class HashedSourceWriter : public CHashWriter
+{
+private:
+    Source& m_source;
+
+public:
+    explicit HashedSourceWriter(Source& source LIFETIMEBOUND) : CHashWriter{source.GetType(), source.GetVersion()}, m_source{source} {}
+
+    void write(Span<const std::byte> src)
+    {
+        m_source.write(src);
+        CHashWriter::write(src);
+    }
+
+    template <typename T>
+    HashedSourceWriter& operator<<(const T& obj)
+    {
+        ::Serialize(*this, obj);
+        return *this;
+    }
+};
+
 /** Compute the 256-bit hash of an object's serialization. */
 template<typename T>
 uint256 SerializeHash(const T& obj, int nType=SER_GETHASH, int nVersion=PROTOCOL_VERSION)
diff --git a/src/test/streams_tests.cpp b/src/test/streams_tests.cpp
index 0925e2e9ee4..e30ae845ef0 100644
--- a/src/test/streams_tests.cpp
+++ b/src/test/streams_tests.cpp
@@ -441,4 +441,18 @@ BOOST_AUTO_TEST_CASE(streams_buffered_file_rand)
     fs::remove(streams_test_filename);
 }
 
+BOOST_AUTO_TEST_CASE(streams_hashed)
+{
+    CDataStream stream(SER_NETWORK, INIT_PROTO_VERSION);
+    HashedSourceWriter hash_writer{stream};
+    const std::string data{"bitcoin"};
+    hash_writer << data;
+
+    CHashVerifier hash_verifier{&stream};
+    std::string result;
+    hash_verifier >> result;
+    BOOST_CHECK_EQUAL(data, result);
+    BOOST_CHECK_EQUAL(hash_writer.GetHash(), hash_verifier.GetHash());
+}
+
 BOOST_AUTO_TEST_SUITE_END()

From 412cd1a34e035c1a2f35f4b4ac14eb192835950c Mon Sep 17 00:00:00 2001
From: Martin Zumsande <mzumsande@gmail.com>
Date: Fri, 13 Jan 2023 14:12:25 -0500
Subject: [PATCH 091/187] addrdb: Only call Serialize() once

The previous logic would call it once for serializing into the filestream,
and then again for serializing into the hasher. If AddrMan was changed
in between these calls by another thread, the resulting peers.dat would
be corrupt with non-matching checksum and data.
Fix this by using HashedSourceWriter, which writes the data
to the underlying stream and keeps track of the hash in one go.

Github-Pull: #26909
Rebased-From: 5eabb61b2386d00e93e6bbb2f493a56d1b326ad9
---
 src/addrdb.cpp  | 7 +++----
 src/addrman.cpp | 3 +--
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/addrdb.cpp b/src/addrdb.cpp
index 0fa8f3c3da9..0d687194789 100644
--- a/src/addrdb.cpp
+++ b/src/addrdb.cpp
@@ -33,10 +33,9 @@ bool SerializeDB(Stream& stream, const Data& data)
 {
     // Write and commit header, data
     try {
-        CHashWriter hasher(stream.GetType(), stream.GetVersion());
-        stream << Params().MessageStart() << data;
-        hasher << Params().MessageStart() << data;
-        stream << hasher.GetHash();
+        HashedSourceWriter hashwriter{stream};
+        hashwriter << Params().MessageStart() << data;
+        stream << hashwriter.GetHash();
     } catch (const std::exception& e) {
         return error("%s: Serialize or I/O error - %s", __func__, e.what());
     }
diff --git a/src/addrman.cpp b/src/addrman.cpp
index f91a9799346..64137e15231 100644
--- a/src/addrman.cpp
+++ b/src/addrman.cpp
@@ -1171,8 +1171,7 @@ void AddrMan::Unserialize(Stream& s_)
 }
 
 // explicit instantiation
-template void AddrMan::Serialize(CHashWriter& s) const;
-template void AddrMan::Serialize(CAutoFile& s) const;
+template void AddrMan::Serialize(HashedSourceWriter<CAutoFile>& s) const;
 template void AddrMan::Serialize(CDataStream& s) const;
 template void AddrMan::Unserialize(CAutoFile& s);
 template void AddrMan::Unserialize(CHashVerifier<CAutoFile>& s);

From 398768769f85cc1b6ff212ed931646b59fa1acd6 Mon Sep 17 00:00:00 2001
From: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
Date: Thu, 19 Jan 2023 19:35:43 +0100
Subject: [PATCH 092/187] Add missing includes to fix gcc-13 compile error

Github-Pull: #26924
Rebased-From: fadeb6b103cb441e0e91ef506ef29febabb10715
---
 src/support/lockedpool.cpp | 3 +++
 src/support/lockedpool.h   | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/support/lockedpool.cpp b/src/support/lockedpool.cpp
index 6965f402536..2ad3161563f 100644
--- a/src/support/lockedpool.cpp
+++ b/src/support/lockedpool.cpp
@@ -22,6 +22,9 @@
 #endif
 
 #include <algorithm>
+#include <limits>
+#include <stdexcept>
+#include <utility>
 #ifdef ARENA_DEBUG
 #include <iomanip>
 #include <iostream>
diff --git a/src/support/lockedpool.h b/src/support/lockedpool.h
index 03e4e371a3a..66fbc218abf 100644
--- a/src/support/lockedpool.h
+++ b/src/support/lockedpool.h
@@ -5,11 +5,11 @@
 #ifndef BITCOIN_SUPPORT_LOCKEDPOOL_H
 #define BITCOIN_SUPPORT_LOCKEDPOOL_H
 
-#include <stdint.h>
+#include <cstddef>
 #include <list>
 #include <map>
-#include <mutex>
 #include <memory>
+#include <mutex>
 #include <unordered_map>
 
 /**

From af862661654966d5de614755ab9bd1b5913e0959 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Fri, 20 Jan 2023 11:55:29 +0000
Subject: [PATCH 093/187] 23.x Add missing includes to fix gcc-13 compile error

Additional include fixes are required to make the 23.x branch compile
using GCC 13.
---
 src/util/bip32.h  | 1 +
 src/util/string.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/util/bip32.h b/src/util/bip32.h
index 8f86f2aaa64..b1d53616a4f 100644
--- a/src/util/bip32.h
+++ b/src/util/bip32.h
@@ -6,6 +6,7 @@
 #define BITCOIN_UTIL_BIP32_H
 
 #include <attributes.h>
+#include <cstdint>
 #include <string>
 #include <vector>
 
diff --git a/src/util/string.h b/src/util/string.h
index a3b8df8d78e..5f4859f1d79 100644
--- a/src/util/string.h
+++ b/src/util/string.h
@@ -9,6 +9,7 @@
 
 #include <algorithm>
 #include <array>
+#include <cstdint>
 #include <cstring>
 #include <locale>
 #include <sstream>

From 52376d9217060ce84e992e374d5dc2beae40bb06 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Sun, 22 Jan 2023 15:58:04 +0000
Subject: [PATCH 094/187] depends: fix systemtap download URL

Github-Pull: #26944
Rebased-From: d81ca6619a5d05472af7f59e36cd100dd04a3a01
---
 depends/packages/systemtap.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/depends/packages/systemtap.mk b/depends/packages/systemtap.mk
index 833e75b9786..498db4982fb 100644
--- a/depends/packages/systemtap.mk
+++ b/depends/packages/systemtap.mk
@@ -1,6 +1,6 @@
 package=systemtap
 $(package)_version=4.5
-$(package)_download_path=https://sourceware.org/systemtap/ftp/releases/
+$(package)_download_path=https://sourceware.org/ftp/systemtap/releases/
 $(package)_file_name=$(package)-$($(package)_version).tar.gz
 $(package)_sha256_hash=75078ed37e0dd2a769c9d1f9394170b2d9f4d7daa425f43ca80c13bad6cfc925
 $(package)_patches=remove_SDT_ASM_SECTION_AUTOGROUP_SUPPORT_check.patch

From ec7a8839a2b5313ad50b14605a9b1e227b290fd5 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Tue, 21 Jun 2022 10:06:15 +0100
Subject: [PATCH 095/187] build: suppress array-bounds errors in libxkbcommon

These occur when building with GCC 12.1.

It might be the case that these would be suppressed by updating the
package, but that would also require installing new build tools (meson),
as well as potentially more dependencies (wayland).

```bash
In function 'ExprCreateBoolean',
    inlined from 'BoolVarCreate' at src/xkbcomp/ast-build.c:316:19:
src/xkbcomp/ast-build.c:119:23: error: array subscript 'ExprDef[0]' is partly outside array bounds of 'unsigned char[32]' [-Werror=array-bounds]
  119 |     expr->boolean.set = set;
      |     ~~~~~~~~~~~~~~~~~~^~~~~
In function 'ExprCreate',
    inlined from 'ExprCreateBoolean' at src/xkbcomp/ast-build.c:118:5,
    inlined from 'BoolVarCreate' at src/xkbcomp/ast-build.c:316:19:
src/xkbcomp/ast-build.c:75:21: note: object of size 32 allocated by 'malloc'
   75 |     ExprDef *expr = malloc(size);
      |                     ^~~~~~~~~~~~
```

Github-Pull: #25436
Rebased-From: 1bdbbbdc46c4e50bf07bc362e7e391ea1a53ea2f
---
 depends/packages/libxkbcommon.mk | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/depends/packages/libxkbcommon.mk b/depends/packages/libxkbcommon.mk
index 8c6c56545f0..bcdcf671f71 100644
--- a/depends/packages/libxkbcommon.mk
+++ b/depends/packages/libxkbcommon.mk
@@ -5,9 +5,14 @@ $(package)_file_name=$(package)-$($(package)_version).tar.xz
 $(package)_sha256_hash=60ddcff932b7fd352752d51a5c4f04f3d0403230a584df9a2e0d5ed87c486c8b
 $(package)_dependencies=libxcb
 
+# This package explicitly enables -Werror=array-bounds, which causes build failures
+# with GCC 12.1+. Work around that by turning errors back into warnings.
+# This workaround would be dropped if the package was updated, as that would require
+# a different build system (Meson)
 define $(package)_set_vars
 $(package)_config_opts = --enable-option-checking --disable-dependency-tracking
 $(package)_config_opts += --disable-static --disable-docs
+$(package)_cflags += -Wno-error=array-bounds
 endef
 
 define $(package)_preprocess_cmds

From c14f3b3905211cf87f80ee320c580779411ad1aa Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 1 Aug 2022 12:06:07 +0100
Subject: [PATCH 096/187] bdb: disable Werror for format-security

This is causing build failures in some build environments, like NixOS.
I don't think we are going to patch bdb at this point, and this warning
has existed for as long as we've used bdb.

Fixes #25211.

Tested (in Docker) with:
```bash
docker run -it nixos/nix
nix-shell -p gitMinimal gcc12 libtool pkg-config curl gnumake patch autoconf automake
git clone https://github.com/bitcoin/bitcoin
make -C bitcoin/depends bdb
```

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

Github-Pull: #25763
Rebased-From: b46c6ec52e1501b8c4337cead0301ef2c3777dd6
---
 depends/packages/bdb.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk
index dc536fd3991..b69276cb154 100644
--- a/depends/packages/bdb.mk
+++ b/depends/packages/bdb.mk
@@ -14,7 +14,7 @@ $(package)_config_opts_freebsd=--with-pic
 $(package)_config_opts_netbsd=--with-pic
 $(package)_config_opts_openbsd=--with-pic
 $(package)_config_opts_android=--with-pic
-$(package)_cflags+=-Wno-error=implicit-function-declaration
+$(package)_cflags+=-Wno-error=implicit-function-declaration -Wno-error=format-security
 $(package)_cxxflags+=-std=c++17
 $(package)_cppflags_mingw32=-DUNICODE -D_UNICODE
 endef

From f0919339bfd983975fe3b85f51423302a1d8a5a0 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Fri, 14 Apr 2023 10:45:34 +0100
Subject: [PATCH 097/187] depends: fix compiling bdb with clang-16 on aarch64

Compiling bdb with clang-16 on aarch64 (hardware) currently fails:
```bash
make -C depends/ bdb CC=clang CXX=clang++
...
checking for mutexes... UNIX/fcntl
configure: WARNING: NO SHARED LATCH IMPLEMENTATION FOUND FOR THIS PLATFORM.
configure: error: Unable to find a mutex implementation
```

Looking at config.log we've got:
```bash
configure:18704: checking for mutexes
configure:18815: clang -o conftest -pipe -std=c11 -O2 -Wno-error=implicit-function-declaration -Wno-error=format-security    -I/bitcoin/depends/aarch64-unknown-linux-gnu/include -D_GNU_SOURCE -D_REENTRANT   -L/bitcoin/depends/aarch64-unknown-linux-gnu/lib conftest.c  -lpthread >&5
conftest.c:45:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
main() {
^
int
conftest.c:50:2: warning: call to undeclared library function 'exit' with type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
        exit (
        ^
conftest.c:50:2: note: include the header <stdlib.h> or explicitly provide a declaration for 'exit'
1 warning and 1 error generated.
```

Clang-16 changed `-Wimplicit-function-declaration` and `-Wimplicit-int`
warnings into errors, see:
https://releases.llvm.org/16.0.0/tools/clang/docs/ReleaseNotes.html#potentially-breaking-changes.

> The -Wimplicit-function-declaration and -Wimplicit-int warnings now
> default to an error in C99, C11, and C17. As of C2x, support for implicit
> function declarations and implicit int has been removed, and the
> warning options will have no effect. Specifying -Wimplicit-int in
> C89 mode will now issue warnings instead of being a noop.

Github-Pull: #27462
Rebased-From: f8b8458276983f8fc1e2a47c4d00c1e30633067d
---
 depends/packages/bdb.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk
index b69276cb154..62c462620bb 100644
--- a/depends/packages/bdb.mk
+++ b/depends/packages/bdb.mk
@@ -14,7 +14,7 @@ $(package)_config_opts_freebsd=--with-pic
 $(package)_config_opts_netbsd=--with-pic
 $(package)_config_opts_openbsd=--with-pic
 $(package)_config_opts_android=--with-pic
-$(package)_cflags+=-Wno-error=implicit-function-declaration -Wno-error=format-security
+$(package)_cflags+=-Wno-error=implicit-function-declaration -Wno-error=format-security -Wno-error=implicit-int
 $(package)_cxxflags+=-std=c++17
 $(package)_cppflags_mingw32=-DUNICODE -D_UNICODE
 endef

From ce8f812b0ac0905c26edd826c57886a08079b4a7 Mon Sep 17 00:00:00 2001
From: Suhas Daftuar <sdaftuar@chaincode.com>
Date: Tue, 9 May 2023 11:58:07 -0400
Subject: [PATCH 098/187] p2p: Avoid prematurely clearing download state for
 other peers

Github-Pull: #27608
Rebased-From: 52e52071e01f4e98d87a47e1d5f3c5c3cc6dbaf4
---
 src/net_processing.cpp | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index aee1e4c30c8..78521a8d21d 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -541,8 +541,11 @@ class PeerManagerImpl final : public PeerManager
     /** Remove this block from our tracked requested blocks. Called if:
      *  - the block has been received from a peer
      *  - the request for the block has timed out
+     * If "from_peer" is specified, then only remove the block if it is in
+     * flight from that peer (to avoid one peer's network traffic from
+     * affecting another's state).
      */
-    void RemoveBlockRequest(const uint256& hash) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
+    void RemoveBlockRequest(const uint256& hash, std::optional<NodeId> from_peer) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
 
     /* Mark a block as in flight
      * Returns false, still setting pit, if the block was already in flight from the same peer
@@ -853,7 +856,7 @@ bool PeerManagerImpl::IsBlockRequested(const uint256& hash)
     return mapBlocksInFlight.find(hash) != mapBlocksInFlight.end();
 }
 
-void PeerManagerImpl::RemoveBlockRequest(const uint256& hash)
+void PeerManagerImpl::RemoveBlockRequest(const uint256& hash, std::optional<NodeId> from_peer)
 {
     auto it = mapBlocksInFlight.find(hash);
     if (it == mapBlocksInFlight.end()) {
@@ -862,6 +865,12 @@ void PeerManagerImpl::RemoveBlockRequest(const uint256& hash)
     }
 
     auto [node_id, list_it] = it->second;
+
+    if (from_peer && node_id != *from_peer) {
+        // Block was requested by another peer
+        return;
+    }
+
     CNodeState *state = State(node_id);
     assert(state != nullptr);
 
@@ -897,7 +906,7 @@ bool PeerManagerImpl::BlockRequested(NodeId nodeid, const CBlockIndex& block, st
     }
 
     // Make sure it's not listed somewhere already.
-    RemoveBlockRequest(hash);
+    RemoveBlockRequest(hash, std::nullopt);
 
     std::list<QueuedBlock>::iterator it = state->vBlocksInFlight.insert(state->vBlocksInFlight.end(),
             {&block, std::unique_ptr<PartiallyDownloadedBlock>(pit ? new PartiallyDownloadedBlock(&m_mempool) : nullptr)});
@@ -2545,6 +2554,11 @@ void PeerManagerImpl::ProcessBlock(CNode& node, const std::shared_ptr<const CBlo
     m_chainman.ProcessNewBlock(m_chainparams, block, force_processing, &new_block);
     if (new_block) {
         node.m_last_block_time = GetTime<std::chrono::seconds>();
+        // In case this block came from a different peer than we requested
+        // from, we can erase the block request now anyway (as we just stored
+        // this block to disk).
+        LOCK(cs_main);
+        RemoveBlockRequest(block->GetHash(), std::nullopt);
     } else {
         LOCK(cs_main);
         mapBlockSource.erase(block->GetHash());
@@ -3604,7 +3618,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
                 PartiallyDownloadedBlock& partialBlock = *(*queuedBlockIt)->partialBlock;
                 ReadStatus status = partialBlock.InitData(cmpctblock, vExtraTxnForCompact);
                 if (status == READ_STATUS_INVALID) {
-                    RemoveBlockRequest(pindex->GetBlockHash()); // Reset in-flight state in case Misbehaving does not result in a disconnect
+                    RemoveBlockRequest(pindex->GetBlockHash(), pfrom.GetId()); // Reset in-flight state in case Misbehaving does not result in a disconnect
                     Misbehaving(pfrom.GetId(), 100, "invalid compact block");
                     return;
                 } else if (status == READ_STATUS_FAILED) {
@@ -3699,7 +3713,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
                 // process from some other peer.  We do this after calling
                 // ProcessNewBlock so that a malleated cmpctblock announcement
                 // can't be used to interfere with block relay.
-                RemoveBlockRequest(pblock->GetHash());
+                RemoveBlockRequest(pblock->GetHash(), std::nullopt);
             }
         }
         return;
@@ -3731,7 +3745,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
             PartiallyDownloadedBlock& partialBlock = *it->second.second->partialBlock;
             ReadStatus status = partialBlock.FillBlock(*pblock, resp.txn);
             if (status == READ_STATUS_INVALID) {
-                RemoveBlockRequest(resp.blockhash); // Reset in-flight state in case Misbehaving does not result in a disconnect
+                RemoveBlockRequest(resp.blockhash, pfrom.GetId()); // Reset in-flight state in case Misbehaving does not result in a disconnect
                 Misbehaving(pfrom.GetId(), 100, "invalid compact block/non-matching block transactions");
                 return;
             } else if (status == READ_STATUS_FAILED) {
@@ -3757,7 +3771,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
                 // though the block was successfully read, and rely on the
                 // handling in ProcessNewBlock to ensure the block index is
                 // updated, etc.
-                RemoveBlockRequest(resp.blockhash); // it is now an empty pointer
+                RemoveBlockRequest(resp.blockhash, pfrom.GetId()); // it is now an empty pointer
                 fBlockRead = true;
                 // mapBlockSource is used for potentially punishing peers and
                 // updating which peers send us compact blocks, so the race
@@ -3825,7 +3839,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
             // Always process the block if we requested it, since we may
             // need it even when it's not a candidate for a new best tip.
             forceProcessing = IsBlockRequested(hash);
-            RemoveBlockRequest(hash);
+            RemoveBlockRequest(hash, pfrom.GetId());
             // mapBlockSource is only used for punishing peers and setting
             // which peers send us compact blocks, so the race between here and
             // cs_main in ProcessNewBlock is fine.

From d0a2c87214d2a8ad350c86fd4a3202695569ca99 Mon Sep 17 00:00:00 2001
From: Anthony Towns <aj@erisian.com.au>
Date: Mon, 8 May 2023 15:37:11 +1000
Subject: [PATCH 099/187] txmempool: have CompareDepthAndScore sort missing txs
 first

We use CompareDepthAndScore to choose an order of txs to inv. Rather
than sorting txs that have been evicted from the mempool at the end
of the list, sort them at the beginning so they are removed from
the queue immediately.

Github-Pull: #27610
Rebased-From: 228e9201efb5574b1b96bb924de1d2e8dd1317f3
---
 src/txmempool.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/txmempool.cpp b/src/txmempool.cpp
index fb5652d0a0a..e78969c69df 100644
--- a/src/txmempool.cpp
+++ b/src/txmempool.cpp
@@ -831,11 +831,16 @@ void CTxMemPool::check(const CCoinsViewCache& active_coins_tip, int64_t spendhei
 
 bool CTxMemPool::CompareDepthAndScore(const uint256& hasha, const uint256& hashb, bool wtxid)
 {
+    /* Return `true` if hasha should be considered sooner than hashb. Namely when:
+     *   a is not in the mempool, but b is
+     *   both are in the mempool and a has fewer ancestors than b
+     *   both are in the mempool and a has a higher score than b
+     */
     LOCK(cs);
-    indexed_transaction_set::const_iterator i = wtxid ? get_iter_from_wtxid(hasha) : mapTx.find(hasha);
-    if (i == mapTx.end()) return false;
     indexed_transaction_set::const_iterator j = wtxid ? get_iter_from_wtxid(hashb) : mapTx.find(hashb);
-    if (j == mapTx.end()) return true;
+    if (j == mapTx.end()) return false;
+    indexed_transaction_set::const_iterator i = wtxid ? get_iter_from_wtxid(hasha) : mapTx.find(hasha);
+    if (i == mapTx.end()) return true;
     uint64_t counta = i->GetCountWithAncestors();
     uint64_t countb = j->GetCountWithAncestors();
     if (counta == countb) {

From 06731d19bc00820037961138c79cf3d3677e39ba Mon Sep 17 00:00:00 2001
From: Anthony Towns <aj@erisian.com.au>
Date: Mon, 8 May 2023 17:14:53 +1000
Subject: [PATCH 100/187] net_processing: Boost inv trickle rate

If transactions are being added to the mempool at a rate faster than 7tx/s
(INVENTORY_BROADCAST_PER_SECOND) then peers' inventory_to_send queue can
become relatively large. If this happens, increase the number of txids
we include in an INV message (normally capped at 35) by 5 for each 1000
txids in the queue.

This will tend to clear a temporary excess out reasonably quickly; an
excess of 4000 invs to send will be cleared down to 1000 in about 30
minutes, while an excess of 20000 invs would be cleared down to 1000 in
about 60 minutes.

Github-Pull: #27610
Rebased-From: 5b3406094f2679dfb3763de4414257268565b943
---
 src/net_processing.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 78521a8d21d..0e75ec99ec2 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -4890,7 +4890,9 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
                     // especially since we have many peers and some will draw much shorter delays.
                     unsigned int nRelayedTransactions = 0;
                     LOCK(pto->m_tx_relay->cs_filter);
-                    while (!vInvTx.empty() && nRelayedTransactions < INVENTORY_BROADCAST_MAX) {
+                    size_t broadcast_max{INVENTORY_BROADCAST_MAX + (pto->m_tx_relay->setInventoryTxToSend.size()/1000)*5};
+                    broadcast_max = std::min<size_t>(1000, broadcast_max);
+                    while (!vInvTx.empty() && nRelayedTransactions < broadcast_max) {
                         // Fetch the top element from the heap
                         std::pop_heap(vInvTx.begin(), vInvTx.end(), compareInvMempoolOrder);
                         std::set<uint256>::iterator it = vInvTx.back();

From 67bbe6d371fc33e0b17f2dc0a6a7faa5ab64dad0 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Thu, 11 May 2023 17:24:26 +0100
Subject: [PATCH 101/187] build: bump version to v23.2rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 313b8477931..bde64da9fb7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
-define(_CLIENT_VERSION_MINOR, 1)
+define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From b93814b234e4cf5ec95017b3cd54ce59c0aa59e8 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Thu, 11 May 2023 17:24:59 +0100
Subject: [PATCH 102/187] doc: update version in bips.md to v23.2

---
 doc/bips.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/bips.md b/doc/bips.md
index 8a7ceaf7b3d..95db722f8db 100644
--- a/doc/bips.md
+++ b/doc/bips.md
@@ -1,4 +1,4 @@
-BIPs that are implemented by Bitcoin Core (up-to-date up to **v23.1**):
+BIPs that are implemented by Bitcoin Core (up-to-date up to **v23.2**):
 
 * [`BIP 9`](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki): The changes allowing multiple soft-forks to be deployed in parallel have been implemented since **v0.12.1**  ([PR #7575](https://github.com/bitcoin/bitcoin/pull/7575))
 * [`BIP 11`](https://github.com/bitcoin/bips/blob/master/bip-0011.mediawiki): Multisig outputs are standard since **v0.6.0** ([PR #669](https://github.com/bitcoin/bitcoin/pull/669)).

From 60edfd57f1334497041655384238c43d3fc76184 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Thu, 11 May 2023 17:29:50 +0100
Subject: [PATCH 103/187] doc: update manual pages for v23.2rc1

---
 doc/man/bitcoin-cli.1    |  8 ++++----
 doc/man/bitcoin-qt.1     | 10 +++++-----
 doc/man/bitcoin-tx.1     |  8 ++++----
 doc/man/bitcoin-util.1   |  8 ++++----
 doc/man/bitcoin-wallet.1 |  8 ++++----
 doc/man/bitcoind.1       | 10 +++++-----
 6 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index 1ee6f42118d..fe5abadfbd6 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-CLI "1" "December 2022" "bitcoin-cli v23.1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH BITCOIN-CLI "1" "May 2023" "bitcoin-cli v23.2.0rc1" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.1.0
+bitcoin-cli \- manual page for bitcoin-cli v23.2.0rc1
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.1.0
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.1.0
+Bitcoin Core RPC client version v23.2.0rc1
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index 9536929fdec..60b7981d0f5 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-QT "1" "December 2022" "bitcoin-qt v23.1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH BITCOIN-QT "1" "May 2023" "bitcoin-qt v23.2.0rc1" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.1.0
+bitcoin-qt \- manual page for bitcoin-qt v23.2.0rc1
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.1.0
+Bitcoin Core version v23.2.0rc1
 .SH OPTIONS
 .HP
 \-?
@@ -115,7 +115,7 @@ Do not keep transactions in the mempool longer than <n> hours (default:
 .HP
 \fB\-par=\fR<n>
 .IP
-Set the number of script verification threads (\fB\-6\fR to 15, 0 = auto, <0 =
+Set the number of script verification threads (\fB\-10\fR to 15, 0 = auto, <0 =
 leave that many cores free, default: 0)
 .HP
 \fB\-persistmempool\fR
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index e2a4417a2b5..fd2540c5aaa 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-TX "1" "December 2022" "bitcoin-tx v23.1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH BITCOIN-TX "1" "May 2023" "bitcoin-tx v23.2.0rc1" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.1.0
+bitcoin-tx \- manual page for bitcoin-tx v23.2.0rc1
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.1.0
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.1.0
+Bitcoin Core bitcoin\-tx utility version v23.2.0rc1
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index e9ec7b427cb..15bac7951be 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-UTIL "1" "December 2022" "bitcoin-util v23.1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH BITCOIN-UTIL "1" "May 2023" "bitcoin-util v23.2.0rc1" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.1.0
+bitcoin-util \- manual page for bitcoin-util v23.2.0rc1
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.1.0
+Bitcoin Core bitcoin\-util utility version v23.2.0rc1
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 028f0a753f2..2b5f08e301d 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIN-WALLET "1" "December 2022" "bitcoin-wallet v23.1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH BITCOIN-WALLET "1" "May 2023" "bitcoin-wallet v23.2.0rc1" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.1.0
+bitcoin-wallet \- manual page for bitcoin-wallet v23.2.0rc1
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.1.0
+Bitcoin Core bitcoin\-wallet version v23.2.0rc1
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index 63be12b2df7..f8591c45672 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.2.
-.TH BITCOIND "1" "December 2022" "bitcoind v23.1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH BITCOIND "1" "May 2023" "bitcoind v23.2.0rc1" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.1.0
+bitcoind \- manual page for bitcoind v23.2.0rc1
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.1.0
+Bitcoin Core version v23.2.0rc1
 .SH OPTIONS
 .HP
 \-?
@@ -115,7 +115,7 @@ Do not keep transactions in the mempool longer than <n> hours (default:
 .HP
 \fB\-par=\fR<n>
 .IP
-Set the number of script verification threads (\fB\-6\fR to 15, 0 = auto, <0 =
+Set the number of script verification threads (\fB\-10\fR to 15, 0 = auto, <0 =
 leave that many cores free, default: 0)
 .HP
 \fB\-persistmempool\fR

From a26ff204f0f0355749a1b61136437623b325f8fb Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Thu, 11 May 2023 17:40:15 +0100
Subject: [PATCH 104/187] doc: add initial release notes for v23.2

Move historical 23.1 to doc/release-notes.
---
 doc/release-notes.md                    | 48 +++++--------
 doc/release-notes/release-notes-23.1.md | 90 +++++++++++++++++++++++++
 2 files changed, 105 insertions(+), 33 deletions(-)
 create mode 100644 doc/release-notes/release-notes-23.1.md

diff --git a/doc/release-notes.md b/doc/release-notes.md
index 31d9b7f068d..4b1d0f00403 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,9 +1,9 @@
-23.1 Release Notes
+23.2rc1 Release Notes
 ==================
 
-Bitcoin Core version 23.1 is now available from:
+Bitcoin Core version 23.2rc1 is now available from:
 
-  <https://bitcoincore.org/bin/bitcoin-core-23.1/>
+  <https://bitcoincore.org/bin/bitcoin-core-23.2/test.rc1/>
 
 This release includes new features, various bug fixes and performance
 improvements, as well as updated translations.
@@ -39,52 +39,34 @@ unsupported systems.
 
 ### P2P
 
-- #25314 p2p: always set nTime for self-advertisements
-
-### RPC and other APIs
-
-- #25220 rpc: fix incorrect warning for address type p2sh-segwit in createmultisig
-- #25237 rpc: Capture UniValue by ref for rpcdoccheck
-- #25983 Prevent data race for pathHandlers
-- #26275 Fix crash on deriveaddresses when index is 2147483647 (2^31-1)
+- #26909 net: prevent peers.dat corruptions by only serializing once
+- #27608 p2p: Avoid prematurely clearing download state for other peers
+- #27610 Improve performance of p2p inv to send queues
 
 ### Build system
 
-- #25201 windeploy: Renewed windows code signing certificate
-- #25788 guix: patch NSIS to remove .reloc sections from installer stubs
-- #25861 guix: use --build={arch}-guix-linux-gnu in cross toolchain
-- #25985 Revert "build: Use Homebrew's sqlite package if it is available"
-
-### GUI
-
-- #24668 build, qt: bump Qt5 version to 5.15.3
-- gui#631 Disallow encryption of watchonly wallets
-- gui#680 Fixes MacOS 13 segfault by preventing certain notifications
-
-### Tests
-
-- #24454 tests: Fix calculation of external input weights
+- #25436 build: suppress array-bounds errors in libxkbcommon
+- #25763 bdb: disable Werror for format-security
+- #26944 depends: fix systemtap download URL
+- #27462 depends: fix compiling bdb with clang-16 on aarch64
 
 ### Miscellaneous
 
-- #26321 Adjust .tx/config for new Transifex CLI
+- #25444 ci: macOS task imrovements
+- #26388 ci: Use macos-ventura-xcode:14.1 image for "macOS native" task
+- #26924 refactor: Add missing includes to fix gcc-13 compile error
 
 Credits
 =======
 
 Thanks to everyone who directly contributed to this release:
 
-- Andrew Chow
-- brunoerg
+- Anthony Towns
 - Hennadii Stepanov
-- John Moffett
 - MacroFake
 - Martin Zumsande
 - Michael Ford
-- muxator
-- Pavol Rusnak
-- Sebastian Falbesoner
-- W. J. van der Laan
+- Suhas Daftuar
 
 As well as to everyone that helped with translations on
 [Transifex](https://www.transifex.com/bitcoin/bitcoin/).
diff --git a/doc/release-notes/release-notes-23.1.md b/doc/release-notes/release-notes-23.1.md
new file mode 100644
index 00000000000..31d9b7f068d
--- /dev/null
+++ b/doc/release-notes/release-notes-23.1.md
@@ -0,0 +1,90 @@
+23.1 Release Notes
+==================
+
+Bitcoin Core version 23.1 is now available from:
+
+  <https://bitcoincore.org/bin/bitcoin-core-23.1/>
+
+This release includes new features, various bug fixes and performance
+improvements, as well as updated translations.
+
+Please report bugs using the issue tracker at GitHub:
+
+  <https://github.com/bitcoin/bitcoin/issues>
+
+To receive security and update notifications, please subscribe to:
+
+  <https://bitcoincore.org/en/list/announcements/join/>
+
+How to Upgrade
+==============
+
+If you are running an older version, shut it down. Wait until it has completely
+shut down (which might take a few minutes in some cases), then run the
+installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
+or `bitcoind`/`bitcoin-qt` (on Linux).
+
+Upgrading directly from a version of Bitcoin Core that has reached its EOL is
+possible, but it might take some time if the data directory needs to be migrated. Old
+wallet versions of Bitcoin Core are generally supported.
+
+Compatibility
+==============
+
+Bitcoin Core is supported and extensively tested on operating systems
+using the Linux kernel, macOS 10.15+, and Windows 7 and newer.  Bitcoin
+Core should also work on most other Unix-like systems but is not as
+frequently tested on them.  It is not recommended to use Bitcoin Core on
+unsupported systems.
+
+### P2P
+
+- #25314 p2p: always set nTime for self-advertisements
+
+### RPC and other APIs
+
+- #25220 rpc: fix incorrect warning for address type p2sh-segwit in createmultisig
+- #25237 rpc: Capture UniValue by ref for rpcdoccheck
+- #25983 Prevent data race for pathHandlers
+- #26275 Fix crash on deriveaddresses when index is 2147483647 (2^31-1)
+
+### Build system
+
+- #25201 windeploy: Renewed windows code signing certificate
+- #25788 guix: patch NSIS to remove .reloc sections from installer stubs
+- #25861 guix: use --build={arch}-guix-linux-gnu in cross toolchain
+- #25985 Revert "build: Use Homebrew's sqlite package if it is available"
+
+### GUI
+
+- #24668 build, qt: bump Qt5 version to 5.15.3
+- gui#631 Disallow encryption of watchonly wallets
+- gui#680 Fixes MacOS 13 segfault by preventing certain notifications
+
+### Tests
+
+- #24454 tests: Fix calculation of external input weights
+
+### Miscellaneous
+
+- #26321 Adjust .tx/config for new Transifex CLI
+
+Credits
+=======
+
+Thanks to everyone who directly contributed to this release:
+
+- Andrew Chow
+- brunoerg
+- Hennadii Stepanov
+- John Moffett
+- MacroFake
+- Martin Zumsande
+- Michael Ford
+- muxator
+- Pavol Rusnak
+- Sebastian Falbesoner
+- W. J. van der Laan
+
+As well as to everyone that helped with translations on
+[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

From 5fbb86e1552f55adf4c9662938d6cedbbb801e80 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 15 May 2023 14:31:06 +0100
Subject: [PATCH 105/187] build: bump version to 23.2 final

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index bde64da9fb7..c53fc3799b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 6c5781e3cbd523a96930257147ad8b8ead67a159 Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 15 May 2023 14:33:19 +0100
Subject: [PATCH 106/187] doc: update manual pages for 23.2

---
 doc/man/bitcoin-cli.1    | 6 +++---
 doc/man/bitcoin-qt.1     | 6 +++---
 doc/man/bitcoin-tx.1     | 6 +++---
 doc/man/bitcoin-util.1   | 6 +++---
 doc/man/bitcoin-wallet.1 | 6 +++---
 doc/man/bitcoind.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index fe5abadfbd6..6977236933b 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH BITCOIN-CLI "1" "May 2023" "bitcoin-cli v23.2.0rc1" "User Commands"
+.TH BITCOIN-CLI "1" "May 2023" "bitcoin-cli v23.2.0" "User Commands"
 .SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v23.2.0rc1
+bitcoin-cli \- manual page for bitcoin-cli v23.2.0
 .SH SYNOPSIS
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v23.2.0rc1
 .B bitcoin-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Bitcoin Core RPC client version v23.2.0rc1
+Bitcoin Core RPC client version v23.2.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index 60b7981d0f5..b0201898305 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH BITCOIN-QT "1" "May 2023" "bitcoin-qt v23.2.0rc1" "User Commands"
+.TH BITCOIN-QT "1" "May 2023" "bitcoin-qt v23.2.0" "User Commands"
 .SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v23.2.0rc1
+bitcoin-qt \- manual page for bitcoin-qt v23.2.0
 .SH SYNOPSIS
 .B bitcoin-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Bitcoin Core version v23.2.0rc1
+Bitcoin Core version v23.2.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index fd2540c5aaa..125fc88850a 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH BITCOIN-TX "1" "May 2023" "bitcoin-tx v23.2.0rc1" "User Commands"
+.TH BITCOIN-TX "1" "May 2023" "bitcoin-tx v23.2.0" "User Commands"
 .SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v23.2.0rc1
+bitcoin-tx \- manual page for bitcoin-tx v23.2.0
 .SH SYNOPSIS
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v23.2.0rc1
 .B bitcoin-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v23.2.0rc1
+Bitcoin Core bitcoin\-tx utility version v23.2.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index 15bac7951be..557ef854b79 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH BITCOIN-UTIL "1" "May 2023" "bitcoin-util v23.2.0rc1" "User Commands"
+.TH BITCOIN-UTIL "1" "May 2023" "bitcoin-util v23.2.0" "User Commands"
 .SH NAME
-bitcoin-util \- manual page for bitcoin-util v23.2.0rc1
+bitcoin-util \- manual page for bitcoin-util v23.2.0
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v23.2.0rc1
+Bitcoin Core bitcoin\-util utility version v23.2.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index 2b5f08e301d..f45054cef54 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH BITCOIN-WALLET "1" "May 2023" "bitcoin-wallet v23.2.0rc1" "User Commands"
+.TH BITCOIN-WALLET "1" "May 2023" "bitcoin-wallet v23.2.0" "User Commands"
 .SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v23.2.0rc1
+bitcoin-wallet \- manual page for bitcoin-wallet v23.2.0
 .SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet version v23.2.0rc1
+Bitcoin Core bitcoin\-wallet version v23.2.0
 .PP
 bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
 By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index f8591c45672..f02c06f5675 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH BITCOIND "1" "May 2023" "bitcoind v23.2.0rc1" "User Commands"
+.TH BITCOIND "1" "May 2023" "bitcoind v23.2.0" "User Commands"
 .SH NAME
-bitcoind \- manual page for bitcoind v23.2.0rc1
+bitcoind \- manual page for bitcoind v23.2.0
 .SH SYNOPSIS
 .B bitcoind
 [\fI\,options\/\fR]                     \fI\,Start Bitcoin Core\/\fR
 .SH DESCRIPTION
-Bitcoin Core version v23.2.0rc1
+Bitcoin Core version v23.2.0
 .SH OPTIONS
 .HP
 \-?

From 7ae937326ae009aa825c5d855b20e79ab1a7e5dc Mon Sep 17 00:00:00 2001
From: fanquake <fanquake@gmail.com>
Date: Mon, 15 May 2023 14:34:52 +0100
Subject: [PATCH 107/187] doc: update release notes for 23.2

---
 doc/release-notes.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/doc/release-notes.md b/doc/release-notes.md
index 4b1d0f00403..a8827acce38 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,11 +1,11 @@
-23.2rc1 Release Notes
+23.2 Release Notes
 ==================
 
-Bitcoin Core version 23.2rc1 is now available from:
+Bitcoin Core version 23.2 is now available from:
 
-  <https://bitcoincore.org/bin/bitcoin-core-23.2/test.rc1/>
+  <https://bitcoincore.org/bin/bitcoin-core-23.2/>
 
-This release includes new features, various bug fixes and performance
+This release includes various bug fixes and performance
 improvements, as well as updated translations.
 
 Please report bugs using the issue tracker at GitHub:

From 6041e74c750f8788aae5b2bc728cf6398d357efc Mon Sep 17 00:00:00 2001
From: Byron Hambly <bhambly@blockstream.com>
Date: Wed, 27 Sep 2023 10:02:33 +0200
Subject: [PATCH 108/187] lint: fix trailing windows whitespace in
 win-codesign.cert

---
 contrib/windeploy/win-codesign.cert | 84 ++++++++++++++---------------
 1 file changed, 42 insertions(+), 42 deletions(-)

diff --git a/contrib/windeploy/win-codesign.cert b/contrib/windeploy/win-codesign.cert
index 22f17296b6a..4372ff01bec 100644
--- a/contrib/windeploy/win-codesign.cert
+++ b/contrib/windeploy/win-codesign.cert
@@ -1,45 +1,45 @@
------BEGIN CERTIFICATE-----
-MIIHfDCCBWSgAwIBAgIQCmVvdQal72U2QxbUTT3SRTANBgkqhkiG9w0BAQsFADBp
-MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
-OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0
-IDIwMjEgQ0ExMB4XDTIyMDUyNDAwMDAwMFoXDTI0MDUyOTIzNTk1OVowgYAxCzAJ
-BgNVBAYTAlVTMREwDwYDVQQIEwhEZWxhd2FyZTEOMAwGA1UEBxMFTGV3ZXMxJjAk
-BgNVBAoTHUJpdGNvaW4gQ29yZSBDb2RlIFNpZ25pbmcgTExDMSYwJAYDVQQDEx1C
-aXRjb2luIENvcmUgQ29kZSBTaWduaW5nIExMQzCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBALewxfjztuRTDNAGf7zkqqWNEt28CZmVJHoYltVRxtE1BP45
-BfmptH5eM1JC/XosTPytHRFeOkO4YVAtiELxK9S/82OZlKA7Mx7PW6vv1184u8+m
-P3WpTN/KAZTaW9fB0ELTSCuqsvXq2crM2T7NudJnSyWh2VBjLfPPCAcYwzyGKQbl
-jQWjFEJDJWFK83t9mK/v0WQgA3jGJeaz+V6CYXMS7UgpdG8dUhg9o63gYJZAW5pY
-RIsNRcJCM5LHhwEMW5329UsTmYCfP7/53emepbQ0n8ijVZjgaJ+LZ8NspBLSeCiF
-9UPCKX82uWiQAUTbYHCfSi3I0f3wQidXL9ZY+PXmalM7BMuQ+c2xEcl97CnhrDzx
-EBwZvvOC9wGoG+8+epV4TjUZWf+7QN1ZYeg1rai7c7c8u9ILogE8su2xVoz333TH
-CDvScIgnQXmk+cbKMBtg9kM0F+aLWsN2xVf0uAj3U7sdXLrfJeW0DZIktWtTBQzX
-O/OE4Ka+1WFnDg0HJIih0cTjl9YYvfe53L4pCGy+qGt/XGBRqCMfXp3g+H9FGR5r
-pensVVcsrv3GbTfYdlpdmp9OHH5G57GTAZueobCZg7r7RKK0zPU9EiTLJxzyXuai
-v/Ksd8eIhHRjewMaQuAtQM1tO+oKAbLF0v2M7v7/aVT76X32JllYAizm3zjvAgMB
-AAGjggIGMIICAjAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNV
-HQ4EFgQUvCpU58PIuofv0kHJ3Ty0YDKEy3cwDgYDVR0PAQH/BAQDAgeAMBMGA1Ud
-JQQMMAoGCCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwz
-LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5
-NlNIQTM4NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5j
-b20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIx
-Q0ExLmNybDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsGAQUFBwIBFhtodHRw
-Oi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsG
-AQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYBBQUHMAKGUGh0
-dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVT
-aWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAwGA1UdEwEB/wQCMAAwDQYJ
-KoZIhvcNAQELBQADggIBABhpTZufRws1vrtI0xB1/UWrSEJxdPHivfpXE708dzum
-Jh3TFzpsEUCQX5BJJet1l7x92sKNeAL7votA+8O8YvMD64Kim7VKA2BB8AOHKQbp
-r1c2iZBwwofInviRYvsrvQta6KBy2KOe1L/l0KnpUazL9Tv4VKvuWAw/Qc0/eTQr
-NZRsmADORxnZ1qW+SpF+/WbazIYjod/Oqb1U3on+PzyiGD3SjzNhsdFRptqzrIaY
-UVV+2XHG4fN6A8wkyQL5NIVXGiK7rqS5VrRAv58Lf1ZZTghdAL+5SySE0OsR9t0K
-W73ZB9pxbuZZ6Zfxjotjw+IilCEm3ADbc7Eb2ijI4x8mix0XWMUrhL34s7/jRyDi
-P+30aSgjWp611tp/EYRW5kpIaFR8AesDdM0DSSCCRXOMwQG2Tq2+CnqItB5oLNPp
-2XySwlIWvmjbzsREfIpE3yh3bxmHY+vFIc2R0nNkbWNIT6AGtaEQ7oWkgpK8YMkA
-QCf4EUC4Qa7qHiH6YSmYJhjApBLC7UDwevgwxuDrwimWAj+tDkzdnENMcBp4SAy6
-LwUuDi2IU6HRSXWdh2YEkDbc3FdwknnnEWaB4dlRL85YjHyLXN0KiE7SKTj1LfR4
-dGeDqVUlDj9D5+X4a7F89wLP/um40/52HUQv5t5WcNr/47r9aVkx9DHs1b8oUnLg
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHfDCCBWSgAwIBAgIQCmVvdQal72U2QxbUTT3SRTANBgkqhkiG9w0BAQsFADBp
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
+OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0
+IDIwMjEgQ0ExMB4XDTIyMDUyNDAwMDAwMFoXDTI0MDUyOTIzNTk1OVowgYAxCzAJ
+BgNVBAYTAlVTMREwDwYDVQQIEwhEZWxhd2FyZTEOMAwGA1UEBxMFTGV3ZXMxJjAk
+BgNVBAoTHUJpdGNvaW4gQ29yZSBDb2RlIFNpZ25pbmcgTExDMSYwJAYDVQQDEx1C
+aXRjb2luIENvcmUgQ29kZSBTaWduaW5nIExMQzCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBALewxfjztuRTDNAGf7zkqqWNEt28CZmVJHoYltVRxtE1BP45
+BfmptH5eM1JC/XosTPytHRFeOkO4YVAtiELxK9S/82OZlKA7Mx7PW6vv1184u8+m
+P3WpTN/KAZTaW9fB0ELTSCuqsvXq2crM2T7NudJnSyWh2VBjLfPPCAcYwzyGKQbl
+jQWjFEJDJWFK83t9mK/v0WQgA3jGJeaz+V6CYXMS7UgpdG8dUhg9o63gYJZAW5pY
+RIsNRcJCM5LHhwEMW5329UsTmYCfP7/53emepbQ0n8ijVZjgaJ+LZ8NspBLSeCiF
+9UPCKX82uWiQAUTbYHCfSi3I0f3wQidXL9ZY+PXmalM7BMuQ+c2xEcl97CnhrDzx
+EBwZvvOC9wGoG+8+epV4TjUZWf+7QN1ZYeg1rai7c7c8u9ILogE8su2xVoz333TH
+CDvScIgnQXmk+cbKMBtg9kM0F+aLWsN2xVf0uAj3U7sdXLrfJeW0DZIktWtTBQzX
+O/OE4Ka+1WFnDg0HJIih0cTjl9YYvfe53L4pCGy+qGt/XGBRqCMfXp3g+H9FGR5r
+pensVVcsrv3GbTfYdlpdmp9OHH5G57GTAZueobCZg7r7RKK0zPU9EiTLJxzyXuai
+v/Ksd8eIhHRjewMaQuAtQM1tO+oKAbLF0v2M7v7/aVT76X32JllYAizm3zjvAgMB
+AAGjggIGMIICAjAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNV
+HQ4EFgQUvCpU58PIuofv0kHJ3Ty0YDKEy3cwDgYDVR0PAQH/BAQDAgeAMBMGA1Ud
+JQQMMAoGCCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwz
+LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5
+NlNIQTM4NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5j
+b20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIx
+Q0ExLmNybDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsGAQUFBwIBFhtodHRw
+Oi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsG
+AQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYBBQUHMAKGUGh0
+dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVT
+aWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAwGA1UdEwEB/wQCMAAwDQYJ
+KoZIhvcNAQELBQADggIBABhpTZufRws1vrtI0xB1/UWrSEJxdPHivfpXE708dzum
+Jh3TFzpsEUCQX5BJJet1l7x92sKNeAL7votA+8O8YvMD64Kim7VKA2BB8AOHKQbp
+r1c2iZBwwofInviRYvsrvQta6KBy2KOe1L/l0KnpUazL9Tv4VKvuWAw/Qc0/eTQr
+NZRsmADORxnZ1qW+SpF+/WbazIYjod/Oqb1U3on+PzyiGD3SjzNhsdFRptqzrIaY
+UVV+2XHG4fN6A8wkyQL5NIVXGiK7rqS5VrRAv58Lf1ZZTghdAL+5SySE0OsR9t0K
+W73ZB9pxbuZZ6Zfxjotjw+IilCEm3ADbc7Eb2ijI4x8mix0XWMUrhL34s7/jRyDi
+P+30aSgjWp611tp/EYRW5kpIaFR8AesDdM0DSSCCRXOMwQG2Tq2+CnqItB5oLNPp
+2XySwlIWvmjbzsREfIpE3yh3bxmHY+vFIc2R0nNkbWNIT6AGtaEQ7oWkgpK8YMkA
+QCf4EUC4Qa7qHiH6YSmYJhjApBLC7UDwevgwxuDrwimWAj+tDkzdnENMcBp4SAy6
+LwUuDi2IU6HRSXWdh2YEkDbc3FdwknnnEWaB4dlRL85YjHyLXN0KiE7SKTj1LfR4
+dGeDqVUlDj9D5+X4a7F89wLP/um40/52HUQv5t5WcNr/47r9aVkx9DHs1b8oUnLg
+-----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBi
 MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3

From aee13fbd906b4c0535f8ce495b79a1ddddbb92eb Mon Sep 17 00:00:00 2001
From: Byron Hambly <bhambly@blockstream.com>
Date: Wed, 27 Sep 2023 10:13:31 +0200
Subject: [PATCH 109/187] lint: fix file perms on release-notes.md

---
 doc/release-notes.md | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100755 => 100644 doc/release-notes.md

diff --git a/doc/release-notes.md b/doc/release-notes.md
old mode 100755
new mode 100644

From e7c7284368f6f72880ade3efa6b2013f7eec3573 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Wed, 27 Sep 2023 10:42:22 -0700
Subject: [PATCH 110/187] Bump version to 23.2.1rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index fa3c1eb5e0b..1af0c8b7243 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
-define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_BUILD, 1)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2022)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 0d7549c8ea12ec9af41b15502c90729d4639b984 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Wed, 27 Sep 2023 10:52:49 -0700
Subject: [PATCH 111/187] Update copyright year to 2023

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 1af0c8b7243..33ecd77f83a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 1)
 define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
-define(_COPYRIGHT_YEAR, 2022)
+define(_COPYRIGHT_YEAR, 2023)
 define(_COPYRIGHT_HOLDERS,[The %s developers])
 define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Elements Project]])
 AC_INIT([Elements Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/ElementsProject/elements/issues],[elements],[https://elementsproject.org/])

From 1cec01cb2615aad9a43a525a4c8201435dfb37b0 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Sun, 24 Sep 2023 18:36:25 -0700
Subject: [PATCH 112/187] Update manpages

---
 doc/man/elements-cli.1    |  285 +++++++++-
 doc/man/elements-qt.1     | 1067 +++++++++++++++++++++++++++++++++++++
 doc/man/elements-tx.1     |   90 +++-
 doc/man/elements-util.1   |  168 ++++++
 doc/man/elements-wallet.1 |  225 +++++++-
 doc/man/elementsd.1       | 1046 +++++++++++++++++++++++++++++++++++-
 6 files changed, 2848 insertions(+), 33 deletions(-)
 create mode 100644 doc/man/elements-qt.1
 create mode 100644 doc/man/elements-util.1

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index afd86f2b7e7..f5b3dd725c8 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,5 +1,284 @@
-.TH ELEMENTS-CLI "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH ELEMENTS-CLI "1" "September 2023" "elements-cli v23.2.1" "User Commands"
 .SH NAME
-elements-cli \- manual page for elements-cli
+elements-cli \- manual page for elements-cli v23.2.1
+.SH SYNOPSIS
+.B elements-cli
+[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Elements Core\/\fR
+.br
+.B elements-cli
+[\fI\,options\/\fR] \fI\,-named <command> \/\fR[\fI\,name=value\/\fR]...  \fI\,Send command to Elements Core (with named arguments)\/\fR
+.br
+.B elements-cli
+[\fI\,options\/\fR] \fI\,help                List commands\/\fR
+.br
+.B elements-cli
+[\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
+.SH DESCRIPTION
+Elements Core RPC client version v23.2.1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-addrinfo\fR
+.IP
+Get the number of addresses known to the node, per network and total,
+after filtering for quality and recency. The total number of
+addresses known to the node may be higher.
+.HP
+\fB\-color=\fR<when>
+.IP
+Color setting for CLI output (default: auto). Valid values: always, auto
+(add color codes when standard output is connected to a terminal
+and OS is not WIN32), never.
+.HP
+\fB\-conf=\fR<file>
+.IP
+Specify configuration file. Relative paths will be prefixed by datadir
+location. (default: elements.conf)
+.HP
+\fB\-datadir=\fR<dir>
+.IP
+Specify data directory
+.HP
+\fB\-generate\fR
+.IP
+Generate blocks, equivalent to RPC getnewaddress followed by RPC
+generatetoaddress. Optional positional integer arguments are
+number of blocks to generate (default: 1) and maximum iterations
+to try (default: 1000000), equivalent to RPC generatetoaddress
+nblocks and maxtries arguments. Example: bitcoin\-cli \fB\-generate\fR 4
+1000
+.HP
+\fB\-getinfo\fR
+.IP
+Get general information from the remote server. Note that unlike
+server\-side RPC calls, the results of \fB\-getinfo\fR is the result of
+multiple non\-atomic requests. Some entries in the result may
+represent results from different states (e.g. wallet balance may
+be as of a different block from the chain state reported)
+.HP
+\fB\-named\fR
+.IP
+Pass named instead of positional arguments (default: false)
+.HP
+\fB\-netinfo\fR
+.IP
+Get network peer connection information from the remote server. An
+optional integer argument from 0 to 4 can be passed for different
+peers listings (default: 0). Pass "help" for detailed help
+documentation.
+.HP
+\fB\-rpcclienttimeout=\fR<n>
+.IP
+Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
+900)
+.HP
+\fB\-rpcconnect=\fR<ip>
+.IP
+Send commands to node running on <ip> (default: 127.0.0.1)
+.HP
+\fB\-rpccookiefile=\fR<loc>
+.IP
+Location of the auth cookie. Relative paths will be prefixed by a
+net\-specific datadir location. (default: data dir)
+.HP
+\fB\-rpcpassword=\fR<pw>
+.IP
+Password for JSON\-RPC connections
+.HP
+\fB\-rpcport=\fR<port>
+.IP
+Connect to JSON\-RPC on <port> (default: 7041, testnet: 18332, signet:
+38332, regtest: 18443)
+.HP
+\fB\-rpcuser=\fR<user>
+.IP
+Username for JSON\-RPC connections
+.HP
+\fB\-rpcwait\fR
+.IP
+Wait for RPC server to start
+.HP
+\fB\-rpcwaittimeout=\fR<n>
+.IP
+Timeout in seconds to wait for the RPC server to start, or 0 for no
+timeout. (default: 0)
+.HP
+\fB\-rpcwallet=\fR<walletname>
+.IP
+Send RPC for non\-default wallet on RPC server (needs to exactly match
+corresponding \fB\-wallet\fR option passed to elementsd). This changes
+the RPC endpoint used, e.g.
+http://127.0.0.1:8332/wallet/<walletname>
+.HP
+\fB\-stdin\fR
+.IP
+Read extra arguments from standard input, one per line until EOF/Ctrl\-D
+(recommended for sensitive information such as passphrases). When
+combined with \fB\-stdinrpcpass\fR, the first line from standard input
+is used for the RPC password.
+.HP
+\fB\-stdinrpcpass\fR
+.IP
+Read RPC password from standard input as a single line. When combined
+with \fB\-stdin\fR, the first line from standard input is used for the
+RPC password. When combined with \fB\-stdinwalletpassphrase\fR,
+\fB\-stdinrpcpass\fR consumes the first line, and \fB\-stdinwalletpassphrase\fR
+consumes the second.
+.HP
+\fB\-stdinwalletpassphrase\fR
+.IP
+Read wallet passphrase from standard input as a single line. When
+combined with \fB\-stdin\fR, the first line from standard input is used
+for the wallet passphrase.
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Debugging/Testing options:
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: liquidv1). Reserved values: main, test,
+signet, regtest, liquidv1, liquidv1test
+.HP
+\fB\-con_blockheightinheader\fR
+.IP
+Whether the chain includes the block height directly in the header, for
+easier validation of block height in low\-resource environments.
+(default: true)
+.HP
+\fB\-con_has_parent_chain\fR
+.IP
+Whether or not there is a parent chain.
+.HP
+\fB\-con_max_block_sig_size\fR
+.IP
+Max allowed witness data for the signed block header.
+.HP
+\fB\-con_parent_chain_signblockscript\fR
+.IP
+Whether parent chain uses pow or signed blocks. If the parent chain uses
+signed blocks, the challenge (scriptPubKey) script. If not, an
+empty string. (default: empty script [ie parent uses pow])
+.HP
+\fB\-con_parentpowlimit\fR
+.IP
+The proof\-of\-work limit value for the parent chain.
+.HP
+\fB\-con_signed_blocks\fR
+.IP
+Signed blockchain. Uses input of `\-signblockscript` to define what
+signatures are necessary to solve it.
+.HP
+\fB\-fedpegscript\fR
+.IP
+The script for the federated peg enforce from genesis block. This script
+may stop being enforced once dynamic federations activates.
+.HP
+\fB\-parentgenesisblockhash\fR
+.IP
+The genesis blockhash of the parent chain.
+.HP
+\fB\-signblockscript\fR
+.IP
+Signed blockchain enumberance. Only active when `\-con_signed_blocks` set
+to true.
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Elements Options:
+.HP
+\fB\-con_blocksubsidy\fR
+.IP
+Defines the amount of block subsidy to start with, at genesis block, in
+satoshis.
+.HP
+\fB\-con_connect_genesis_outputs\fR
+.IP
+Connect outputs in genesis block to utxo database.
+.HP
+\fB\-con_csv_deploy_start\fR
+.IP
+Starting height for CSV deployment. (default: \fB\-1\fR, which means ACTIVE
+from genesis)
+.HP
+\fB\-con_dyna_deploy_signal\fR
+.IP
+Whether to signal for the Dynamic Federations deployment (default:
+true).
+.HP
+\fB\-con_elementsmode\fR
+.TP
+Use Elements\-like instead of Core\-like witness encoding.
+This is
+.IP
+required for CA/CT. (default: true)
+.HP
+\fB\-con_mandatorycoinbase\fR
+.IP
+All non\-zero valued coinbase outputs must go to this scriptPubKey, if
+set.
+.HP
+\fB\-dynamic_epoch_length\fR
+.IP
+Per\-chain parameter that sets how many blocks dynamic federation voting
+and enforcement are in effect for.
+.HP
+\fB\-enforce_pak\fR
+.IP
+Causes standardness checks to enforce Pegout Authorization Key(PAK)
+validation before dynamic federations, and consensus enforcement
+after.
+.HP
+\fB\-multi_data_permitted\fR
+.IP
+Allow relay of multiple OP_RETURN outputs. (default: \fB\-enforce_pak\fR)
+.HP
+\fB\-pak\fR
+.IP
+Sets the 'first extension space' field to the pak entries ala
+pre\-dynamic federations. Only used for testing in custom chains.
+.HP
+\fB\-total_valid_epochs\fR
+.IP
+Per\-chain parameter that sets how long a particular fedpegscript is in
+effect for.
+.SH COPYRIGHT
+Copyright (C) 2009-2023 The Elements Project developers
+Copyright (C) 2009-2023 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Elements Core useful. Visit
+<https://elementsproject.org/> for further information about the software.
+The source code is available from
+<https://github.com/ElementsProject/elements>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
new file mode 100644
index 00000000000..ea0c253b94e
--- /dev/null
+++ b/doc/man/elements-qt.1
@@ -0,0 +1,1067 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH ELEMENTS-QT "1" "September 2023" "elements-qt v23.2.1" "User Commands"
+.SH NAME
+elements-qt \- manual page for elements-qt v23.2.1
+.SH SYNOPSIS
+.B elements-qt
+[\fI\,command-line options\/\fR]
+.SH DESCRIPTION
+Elements Core version v23.2.1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-alertnotify=\fR<cmd>
+.IP
+Execute command when an alert is raised (%s in cmd is replaced by
+message)
+.HP
+\fB\-assumevalid=\fR<hex>
+.IP
+If this block is in the chain assume that it and its ancestors are valid
+and potentially skip their script verification (0 to verify all,
+default:
+0000000000000000000000000000000000000000000000000000000000000000,
+testnet:
+00000000000163cfb1f97c4e4098a3692c8053ad9cab5ad9c86b338b5c00b8b7,
+signet:
+00000112852484b5fe3451572368f93cfd2723279af3464e478aee35115256ef)
+.HP
+\fB\-blockfilterindex=\fR<type>
+.IP
+Maintain an index of compact filters by block (default: 0, values:
+basic). If <type> is not supplied or if <type> = 1, indexes for
+all known types are enabled.
+.HP
+\fB\-blocknotify=\fR<cmd>
+.IP
+Execute command when the best block changes (%s in cmd is replaced by
+block hash)
+.HP
+\fB\-blockreconstructionextratxn=\fR<n>
+.IP
+Extra transactions to keep in memory for compact block reconstructions
+(default: 100)
+.HP
+\fB\-blocksdir=\fR<dir>
+.IP
+Specify directory to hold blocks subdirectory for *.dat files (default:
+<datadir>)
+.HP
+\fB\-blocksonly\fR
+.IP
+Whether to reject transactions from network peers. Automatic broadcast
+and rebroadcast of any transactions from inbound peers is
+disabled, unless the peer has the 'forcerelay' permission. RPC
+transactions are not affected. (default: 0)
+.HP
+\fB\-coinstatsindex\fR
+.IP
+Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
+.HP
+\fB\-conf=\fR<file>
+.IP
+Specify path to read\-only configuration file. Relative paths will be
+prefixed by datadir location. (default: elements.conf)
+.HP
+\fB\-daemon\fR
+.IP
+Run in the background as a daemon and accept commands (default: 0)
+.HP
+\fB\-daemonwait\fR
+.IP
+Wait for initialization to be finished before exiting. This implies
+\fB\-daemon\fR (default: 0)
+.HP
+\fB\-datadir=\fR<dir>
+.IP
+Specify data directory
+.HP
+\fB\-dbcache=\fR<n>
+.IP
+Maximum database cache size <n> MiB (4 to 16384, default: 450). In
+addition, unused mempool memory is shared for this cache (see
+\fB\-maxmempool\fR).
+.HP
+\fB\-debuglogfile=\fR<file>
+.IP
+Specify location of debug log file. Relative paths will be prefixed by a
+net\-specific datadir location. (\fB\-nodebuglogfile\fR to disable;
+default: debug.log)
+.HP
+\fB\-includeconf=\fR<file>
+.IP
+Specify additional configuration file, relative to the \fB\-datadir\fR path
+(only useable from configuration file, not command line)
+.HP
+\fB\-loadblock=\fR<file>
+.IP
+Imports blocks from external file on startup
+.HP
+\fB\-maxmempool=\fR<n>
+.IP
+Keep the transaction memory pool below <n> megabytes (default: 300)
+.HP
+\fB\-maxorphantx=\fR<n>
+.IP
+Keep at most <n> unconnectable transactions in memory (default: 100)
+.HP
+\fB\-mempoolexpiry=\fR<n>
+.IP
+Do not keep transactions in the mempool longer than <n> hours (default:
+336)
+.HP
+\fB\-par=\fR<n>
+.IP
+Set the number of script verification threads (\fB\-16\fR to 15, 0 = auto, <0 =
+leave that many cores free, default: 0)
+.HP
+\fB\-persistmempool\fR
+.IP
+Whether to save the mempool on shutdown and load on restart (default: 1)
+.HP
+\fB\-pid=\fR<file>
+.IP
+Specify pid file. Relative paths will be prefixed by a net\-specific
+datadir location. (default: elementsd.pid)
+.HP
+\fB\-prune=\fR<n>
+.IP
+Reduce storage requirements by enabling pruning (deleting) of old
+blocks. This allows the pruneblockchain RPC to be called to
+delete specific blocks, and enables automatic pruning of old
+blocks if a target size in MiB is provided. This mode is
+incompatible with \fB\-txindex\fR and \fB\-coinstatsindex\fR. Warning:
+Reverting this setting requires re\-downloading the entire
+blockchain. (default: 0 = disable pruning blocks, 1 = allow
+manual pruning via RPC, >=550 = automatically prune block files
+to stay under the specified target size in MiB)
+.HP
+\fB\-reindex\fR
+.IP
+Rebuild chain state and block index from the blk*.dat files on disk
+.HP
+\fB\-reindex\-chainstate\fR
+.IP
+Rebuild chain state from the currently indexed blocks. When in pruning
+mode or if blocks on disk might be corrupted, use full \fB\-reindex\fR
+instead.
+.HP
+\fB\-sandbox=\fR<mode>
+.IP
+Use the experimental syscall sandbox in the specified mode
+(\fB\-sandbox\fR=\fI\,log\-and\-abort\/\fR or \fB\-sandbox\fR=\fI\,abort\/\fR). Allow only expected
+syscalls to be used by bitcoind. Note that this is an
+experimental new feature that may cause bitcoind to exit or crash
+unexpectedly: use with caution. In the "log\-and\-abort" mode the
+invocation of an unexpected syscall results in a debug handler
+being invoked which will log the incident and terminate the
+program (without executing the unexpected syscall). In the
+"abort" mode the invocation of an unexpected syscall results in
+the entire process being killed immediately by the kernel without
+executing the unexpected syscall.
+.HP
+\fB\-settings=\fR<file>
+.IP
+Specify path to dynamic settings data file. Can be disabled with
+\fB\-nosettings\fR. File is written at runtime and not meant to be
+edited by users (use elements.conf instead for custom settings).
+Relative paths will be prefixed by datadir location. (default:
+settings.json)
+.HP
+\fB\-startupnotify=\fR<cmd>
+.IP
+Execute command on startup.
+.HP
+\fB\-sysperms\fR
+.IP
+Create new files with system default permissions, instead of umask 077
+(only effective with disabled wallet functionality)
+.HP
+\fB\-trim_headers\fR
+.IP
+Trim old headers in memory (by default older than 2 epochs), removing
+blocksigning and dynafed\-related fields. Saves memory, but blocks
+us from serving blocks or headers to peers, and removes trimmed
+fields from some JSON RPC outputs. (default: false)
+.HP
+\fB\-txindex\fR
+.IP
+Maintain a full transaction index, used by the getrawtransaction rpc
+call (default: 0)
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Connection options:
+.HP
+\fB\-addnode=\fR<ip>
+.IP
+Add a node to connect to and attempt to keep the connection open (see
+the addnode RPC help for more info). This option can be specified
+multiple times to add multiple nodes; connections are limited to
+8 at a time and are counted separately from the \fB\-maxconnections\fR
+limit.
+.HP
+\fB\-asmap=\fR<file>
+.IP
+Specify asn mapping used for bucketing of the peers (default:
+ip_asn.map). Relative paths will be prefixed by the net\-specific
+datadir location.
+.HP
+\fB\-bantime=\fR<n>
+.IP
+Default duration (in seconds) of manually configured bans (default:
+86400)
+.HP
+\fB\-bind=\fR<addr>[:<port>][=onion]
+.IP
+Bind to given address and always listen on it (default: 0.0.0.0). Use
+[host]:port notation for IPv6. Append =onion to tag any incoming
+connections to that address and port as incoming Tor connections
+(default: 127.0.0.1:37041=onion, testnet: 127.0.0.1:18334=onion,
+signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
+.HP
+\fB\-cjdnsreachable\fR
+.IP
+If set, then this host is configured for CJDNS (connecting to fc00::/8
+addresses would lead us to the CJDNS network, see doc/cjdns.md)
+(default: 0)
+.HP
+\fB\-connect=\fR<ip>
+.IP
+Connect only to the specified node; \fB\-noconnect\fR disables automatic
+connections (the rules for this peer are the same as for
+\fB\-addnode\fR). This option can be specified multiple times to connect
+to multiple nodes.
+.HP
+\fB\-discover\fR
+.IP
+Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
+or \fB\-proxy\fR)
+.HP
+\fB\-dns\fR
+.IP
+Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
+.HP
+\fB\-dnsseed\fR
+.IP
+Query for peer addresses via DNS lookup, if low on addresses (default: 1
+unless \fB\-connect\fR used)
+.HP
+\fB\-externalip=\fR<ip>
+.IP
+Specify your own public address
+.HP
+\fB\-fixedseeds\fR
+.IP
+Allow fixed seeds if DNS seeds don't provide peers (default: 1)
+.HP
+\fB\-forcednsseed\fR
+.IP
+Always query for peer addresses via DNS lookup (default: 0)
+.HP
+\fB\-i2pacceptincoming\fR
+.IP
+If set and \fB\-i2psam\fR is also set then incoming I2P connections are
+accepted via the SAM proxy. If this is not set but \fB\-i2psam\fR is set
+then only outgoing connections will be made to the I2P network.
+Ignored if \fB\-i2psam\fR is not set. Listening for incoming I2P
+connections is done through the SAM proxy, not by binding to a
+local address and port (default: 1)
+.HP
+\fB\-i2psam=\fR<ip:port>
+.IP
+I2P SAM proxy to reach I2P peers and accept I2P connections (default:
+none)
+.HP
+\fB\-listen\fR
+.IP
+Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
+.HP
+\fB\-listenonion\fR
+.IP
+Automatically create Tor onion service (default: 1)
+.HP
+\fB\-maxconnections=\fR<n>
+.IP
+Maintain at most <n> connections to peers (default: 125). This limit
+does not apply to connections manually added via \fB\-addnode\fR or the
+addnode RPC, which have a separate limit of 8.
+.HP
+\fB\-maxreceivebuffer=\fR<n>
+.IP
+Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
+.HP
+\fB\-maxsendbuffer=\fR<n>
+.IP
+Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
+.HP
+\fB\-maxtimeadjustment\fR
+.IP
+Maximum allowed median peer time offset adjustment. Local perspective of
+time may be influenced by outbound peers forward or backward by
+this amount (default: 4200 seconds).
+.HP
+\fB\-maxuploadtarget=\fR<n>
+.IP
+Tries to keep outbound traffic under the given target per 24h. Limit
+does not apply to peers with 'download' permission or blocks
+created within past week. 0 = no limit (default: 0M). Optional
+suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
+base while uppercase is 1024 base
+.HP
+\fB\-natpmp\fR
+.IP
+Use NAT\-PMP to map the listening port (default: 0)
+.HP
+\fB\-networkactive\fR
+.IP
+Enable all P2P network activity (default: 1). Can be changed by the
+setnetworkactive RPC command
+.HP
+\fB\-onion=\fR<ip:port>
+.IP
+Use separate SOCKS5 proxy to reach peers via Tor onion services, set
+\fB\-noonion\fR to disable (default: \fB\-proxy\fR)
+.HP
+\fB\-onlynet=\fR<net>
+.IP
+Make automatic outbound connections only to network <net> (ipv4, ipv6,
+onion, i2p, cjdns). Inbound and manual connections are not
+affected by this option. It can be specified multiple times to
+allow multiple networks.
+.HP
+\fB\-peerblockfilters\fR
+.IP
+Serve compact block filters to peers per BIP 157 (default: 0)
+.HP
+\fB\-peerbloomfilters\fR
+.IP
+Support filtering of blocks and transaction with bloom filters (default:
+0)
+.HP
+\fB\-permitbaremultisig\fR
+.IP
+Relay non\-P2SH multisig (default: 1)
+.HP
+\fB\-port=\fR<port>
+.IP
+Listen for connections on <port>. Nodes not using the default ports
+(default: 7042, testnet: 18333, signet: 38333, regtest: 18444)
+are unlikely to get incoming connections. Not relevant for I2P
+(see doc/i2p.md).
+.HP
+\fB\-proxy=\fR<ip:port>
+.IP
+Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
+disabled)
+.HP
+\fB\-proxyrandomize\fR
+.IP
+Randomize credentials for every proxy connection. This enables Tor
+stream isolation (default: 1)
+.HP
+\fB\-seednode=\fR<ip>
+.IP
+Connect to a node to retrieve peer addresses, and disconnect. This
+option can be specified multiple times to connect to multiple
+nodes.
+.HP
+\fB\-timeout=\fR<n>
+.IP
+Specify socket connection timeout in milliseconds. If an initial attempt
+to connect is unsuccessful after this amount of time, drop it
+(minimum: 1, default: 5000)
+.HP
+\fB\-torcontrol=\fR<ip>:<port>
+.IP
+Tor control port to use if onion listening enabled (default:
+127.0.0.1:9051)
+.HP
+\fB\-torpassword=\fR<pass>
+.IP
+Tor control port password (default: empty)
+.HP
+\fB\-upnp\fR
+.IP
+Use UPnP to map the listening port (default: 0)
+.HP
+\fB\-whitebind=\fR<[permissions@]addr>
+.IP
+Bind to the given address and add permission flags to the peers
+connecting to it. Use [host]:port notation for IPv6. Allowed
+permissions: bloomfilter (allow requesting BIP37 filtered blocks
+and transactions), noban (do not ban for misbehavior; implies
+download), forcerelay (relay transactions that are already in the
+mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
+and unlimited transaction announcements), mempool (allow
+requesting BIP35 mempool contents), download (allow getheaders
+during IBD, no disconnect after maxuploadtarget limit), addr
+(responses to GETADDR avoid hitting the cache and contain random
+records with the most up\-to\-date info). Specify multiple
+permissions separated by commas (default:
+download,noban,mempool,relay). Can be specified multiple times.
+.HP
+\fB\-whitelist=\fR<[permissions@]IP address or network>
+.IP
+Add permission flags to the peers connecting from the given IP address
+(e.g. 1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses
+the same permissions as \fB\-whitebind\fR. Can be specified multiple
+times.
+.PP
+Wallet options:
+.HP
+\fB\-addresstype\fR
+.IP
+What type of addresses to use ("legacy", "p2sh\-segwit", "bech32", or
+"bech32m", default: "bech32")
+.HP
+\fB\-avoidpartialspends\fR
+.IP
+Group outputs by address, selecting many (possibly all) or none, instead
+of selecting on a per\-output basis. Privacy is improved as
+addresses are mostly swept with fewer transactions and outputs
+are aggregated in clean change addresses. It may result in higher
+fees due to less optimal coin selection caused by this added
+limitation and possibly a larger\-than\-necessary number of inputs
+being used. Always enabled for wallets with "avoid_reuse"
+enabled, otherwise default: 0.
+.HP
+\fB\-changetype\fR
+.IP
+What type of change to use ("legacy", "p2sh\-segwit", "bech32", or
+"bech32m"). Default is "legacy" when \fB\-addresstype\fR=\fI\,legacy\/\fR, else it
+is an implementation detail.
+.HP
+\fB\-consolidatefeerate=\fR<amt>
+.IP
+The maximum feerate (in BTC/kvB) at which transaction building may use
+more inputs than strictly necessary so that the wallet's UTXO
+pool can be reduced (default: 0.0001).
+.HP
+\fB\-disablewallet\fR
+.IP
+Do not load the wallet and disable wallet RPC calls
+.HP
+\fB\-discardfee=\fR<amt>
+.IP
+The fee rate (in BTC/kvB) that indicates your tolerance for discarding
+change by adding it to the fee (default: 0.0001). Note: An output
+is discarded if it is dust at this rate, but we will always
+discard up to the dust relay fee and a discard fee above that is
+limited by the fee estimate for the longest target
+.HP
+\fB\-fallbackfee=\fR<amt>
+.IP
+A fee rate (in BTC/kvB) that will be used when fee estimation has
+insufficient data. 0 to entirely disable the fallbackfee feature.
+(default: 0.00)
+.HP
+\fB\-keypool=\fR<n>
+.IP
+Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
+increase the risk of losing funds when restoring from an old
+backup, if none of the addresses in the original keypool have
+been used.
+.HP
+\fB\-maxapsfee=\fR<n>
+.IP
+Spend up to this amount in additional (absolute) fees (in BTC) if it
+allows the use of partial spend avoidance (default: 0.00)
+.HP
+\fB\-mintxfee=\fR<amt>
+.IP
+Fee rates (in BTC/kvB) smaller than this are considered zero fee for
+transaction creation (default: 0.000001)
+.HP
+\fB\-paytxfee=\fR<amt>
+.IP
+Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
+.HP
+\fB\-signer=\fR<cmd>
+.IP
+External signing tool, see doc/external\-signer.md
+.HP
+\fB\-spendzeroconfchange\fR
+.IP
+Spend unconfirmed change when sending transactions (default: 1)
+.HP
+\fB\-txconfirmtarget=\fR<n>
+.IP
+If paytxfee is not set, include enough fee so transactions begin
+confirmation on average within n blocks (default: 6)
+.HP
+\fB\-wallet=\fR<path>
+.IP
+Specify wallet path to load at startup. Can be used multiple times to
+load multiple wallets. Path is to a directory containing wallet
+data and log files. If the path is not absolute, it is
+interpreted relative to <walletdir>. This only loads existing
+wallets and does not create new ones. For backwards compatibility
+this also accepts names of existing top\-level data files in
+<walletdir>.
+.HP
+\fB\-walletbroadcast\fR
+.IP
+Make the wallet broadcast transactions (default: 1)
+.HP
+\fB\-walletdir=\fR<dir>
+.IP
+Specify directory to hold wallets (default: <datadir>/wallets if it
+exists, otherwise <datadir>)
+.HP
+\fB\-walletnotify=\fR<cmd>
+.IP
+Execute command when a wallet transaction changes. %s in cmd is replaced
+by TxID, %w is replaced by wallet name, %b is replaced by the
+hash of the block including the transaction (set to 'unconfirmed'
+if the transaction is not included) and %h is replaced by the
+block height (\fB\-1\fR if not included). %w is not currently
+implemented on windows. On systems where %w is supported, it
+should NOT be quoted because this would break shell escaping used
+to invoke the command.
+.HP
+\fB\-walletrbf\fR
+.IP
+Send transactions with full\-RBF opt\-in enabled (RPC only, default: 1)
+.PP
+ZeroMQ notification options:
+.HP
+\fB\-zmqpubhashblock=\fR<address>
+.IP
+Enable publish hash block in <address>
+.HP
+\fB\-zmqpubhashblockhwm=\fR<n>
+.IP
+Set publish hash block outbound message high water mark (default: 1000)
+.HP
+\fB\-zmqpubhashtx=\fR<address>
+.IP
+Enable publish hash transaction in <address>
+.HP
+\fB\-zmqpubhashtxhwm=\fR<n>
+.IP
+Set publish hash transaction outbound message high water mark (default:
+1000)
+.HP
+\fB\-zmqpubrawblock=\fR<address>
+.IP
+Enable publish raw block in <address>
+.HP
+\fB\-zmqpubrawblockhwm=\fR<n>
+.IP
+Set publish raw block outbound message high water mark (default: 1000)
+.HP
+\fB\-zmqpubrawtx=\fR<address>
+.IP
+Enable publish raw transaction in <address>
+.HP
+\fB\-zmqpubrawtxhwm=\fR<n>
+.IP
+Set publish raw transaction outbound message high water mark (default:
+1000)
+.HP
+\fB\-zmqpubsequence=\fR<address>
+.IP
+Enable publish hash block and tx sequence in <address>
+.HP
+\fB\-zmqpubsequencehwm=\fR<n>
+.IP
+Set publish hash sequence message high water mark (default: 1000)
+.PP
+Debugging/Testing options:
+.HP
+\fB\-debug=\fR<category>
+.IP
+Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
+optional). If <category> is not supplied or if <category> = 1,
+output all debugging information. <category> can be: addrman,
+bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
+ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
+qt, rand, reindex, rpc, selectcoins, tor, util, validation,
+walletdb, zmq. This option can be specified multiple times to
+output multiple categories.
+.HP
+\fB\-debugexclude=\fR<category>
+.IP
+Exclude debugging information for a category. Can be used in conjunction
+with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except the
+specified category. This option can be specified multiple times
+to exclude multiple categories.
+.HP
+\fB\-help\-debug\fR
+.IP
+Print help message with debugging options and exit
+.HP
+\fB\-logips\fR
+.IP
+Include IP addresses in debug output (default: 0)
+.HP
+\fB\-logsourcelocations\fR
+.IP
+Prepend debug output with name of the originating source location
+(source file, line number and function name) (default: 0)
+.HP
+\fB\-logthreadnames\fR
+.IP
+Prepend debug output with name of the originating thread (only available
+on platforms supporting thread_local) (default: 0)
+.HP
+\fB\-logtimestamps\fR
+.IP
+Prepend debug output with timestamp (default: 1)
+.HP
+\fB\-maxtxfee=\fR<amt>
+.IP
+Maximum total fees (in BTC) to use in a single wallet transaction;
+setting this too low may abort large transactions (default: 0.10)
+.HP
+\fB\-printtoconsole\fR
+.IP
+Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
+logging to file, set \fB\-nodebuglogfile\fR)
+.HP
+\fB\-shrinkdebugfile\fR
+.IP
+Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
+.HP
+\fB\-uacomment=\fR<cmt>
+.IP
+Append comment to the user agent string
+.PP
+Chain selection options:
+.HP
+\fB\-bech32_hrp\fR
+.IP
+The human\-readable part of the chain's bech32 encoding. (default: ex)
+.HP
+\fB\-blech32_hrp\fR
+.IP
+The human\-readable part of the chain's blech32 encoding. Used in
+confidential addresses.(default: lq)
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: liquidv1). Reserved values: main, test,
+signet, regtest, liquidv1, liquidv1test
+.HP
+\fB\-con_blockheightinheader\fR
+.IP
+Whether the chain includes the block height directly in the header, for
+easier validation of block height in low\-resource environments.
+(default: true)
+.HP
+\fB\-con_has_parent_chain\fR
+.IP
+Whether or not there is a parent chain.
+.HP
+\fB\-con_max_block_sig_size\fR
+.IP
+Max allowed witness data for the signed block header.
+.HP
+\fB\-con_parent_chain_signblockscript\fR
+.IP
+Whether parent chain uses pow or signed blocks. If the parent chain uses
+signed blocks, the challenge (scriptPubKey) script. If not, an
+empty string. (default: empty script [ie parent uses pow])
+.HP
+\fB\-con_parent_pegged_asset=\fR<hex>
+.IP
+Asset ID (hex) for pegged asset for when parent chain has CA. (default:
+0x00)
+.HP
+\fB\-con_parentpowlimit\fR
+.IP
+The proof\-of\-work limit value for the parent chain.
+.HP
+\fB\-con_signed_blocks\fR
+.IP
+Signed blockchain. Uses input of `\-signblockscript` to define what
+signatures are necessary to solve it.
+.HP
+\fB\-ct_bits\fR
+.IP
+The default number of hiding bits in a rangeproof. Will be exceeded to
+cover amounts exceeding the maximum hiding value. (default: 52)
+.HP
+\fB\-ct_exponent\fR
+.IP
+The hiding exponent. (default: 0)
+.HP
+\fB\-extprvkeyprefix\fR
+.IP
+The 4\-byte prefix, in hex, of the chain's base58 extended private key
+encoding. (default: 0488ade4)
+.HP
+\fB\-extpubkeyprefix\fR
+.IP
+The 4\-byte prefix, in hex, of the chain's base58 extended public key
+encoding. (default: 0488b21e)
+.HP
+\fB\-fedpegscript\fR
+.IP
+The script for the federated peg enforce from genesis block. This script
+may stop being enforced once dynamic federations activates.
+.HP
+\fB\-feeasset=\fR<hex>
+.IP
+Asset ID (hex) for mempool/relay fees (default:
+6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d)
+.HP
+\fB\-initialreissuancetokens=\fR<n>
+.IP
+The amount of reissuance tokens created in the genesis block. (default:
+0)
+.HP
+\fB\-parent_bech32_hrp\fR
+.IP
+The human\-readable part of the parent chain's bech32 encoding. (default:
+bc)
+.HP
+\fB\-parent_blech32_hrp\fR
+.IP
+The human\-readable part of the parent chain's blech32 encoding.
+(default: bc)
+.HP
+\fB\-parentgenesisblockhash\fR
+.IP
+The genesis blockhash of the parent chain.
+.HP
+\fB\-parentpubkeyprefix\fR
+.IP
+The byte prefix, in decimal, of the parent chain's base58 pubkey
+address. (default: 111)
+.HP
+\fB\-parentscriptprefix\fR
+.IP
+The byte prefix, in decimal, of the parent chain's base58 script
+address. (default: 196)
+.HP
+\fB\-pubkeyprefix\fR
+.IP
+The byte prefix, in decimal, of the chain's base58 pubkey address.
+(default: 57)
+.HP
+\fB\-scriptprefix\fR
+.IP
+The byte prefix, in decimal, of the chain's base58 script address.
+(default: 39)
+.HP
+\fB\-secretprefix\fR
+.IP
+The byte prefix, in decimal, of the chain's base58 secret key encoding.
+(default: 128)
+.HP
+\fB\-signblockscript\fR
+.IP
+Signed blockchain enumberance. Only active when `\-con_signed_blocks` set
+to true.
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-subsidyasset=\fR<hex>
+.IP
+Asset ID (hex) for the block subsidy (default:
+6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d)
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Node relay options:
+.HP
+\fB\-bytespersigop\fR
+.IP
+Equivalent bytes per sigop in transactions for relay and mining
+(default: 20)
+.HP
+\fB\-datacarrier\fR
+.IP
+Relay and mine data carrier transactions (default: 1)
+.HP
+\fB\-datacarriersize\fR
+.IP
+Maximum size of data in data carrier transactions we relay and mine
+(default: 83)
+.HP
+\fB\-minrelaytxfee=\fR<amt>
+.IP
+Fees (in BTC/kvB) smaller than this are considered zero fee for
+relaying, mining and transaction creation (default: 0.000001)
+.HP
+\fB\-whitelistforcerelay\fR
+.IP
+Add 'forcerelay' permission to whitelisted inbound peers with default
+permissions. This will relay transactions even if the
+transactions were already in the mempool. (default: 0)
+.HP
+\fB\-whitelistrelay\fR
+.IP
+Add 'relay' permission to whitelisted inbound peers with default
+permissions. This will accept relayed transactions even when not
+relaying transactions (default: 1)
+.PP
+Block creation options:
+.HP
+\fB\-blockmaxweight=\fR<n>
+.IP
+Set maximum BIP141 block weight (default: 3996000)
+.HP
+\fB\-blockmintxfee=\fR<amt>
+.IP
+Set lowest fee rate (in BTC/kvB) for transactions to be included in
+block creation. (default: 0.000001)
+.PP
+RPC server options:
+.HP
+\fB\-rest\fR
+.IP
+Accept public REST requests (default: 0)
+.HP
+\fB\-rpcallowip=\fR<ip>
+.IP
+Allow JSON\-RPC connections from specified source. Valid for <ip> are a
+single IP (e.g. 1.2.3.4), a network/netmask (e.g.
+1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
+option can be specified multiple times
+.HP
+\fB\-rpcauth=\fR<userpw>
+.IP
+Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
+field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
+canonical python script is included in share/rpcauth. The client
+then connects normally using the
+rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
+option can be specified multiple times
+.HP
+\fB\-rpcbind=\fR<addr>[:port]
+.IP
+Bind to given address to listen for JSON\-RPC connections. Do not expose
+the RPC server to untrusted networks such as the public internet!
+This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
+optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
+IPv6. This option can be specified multiple times (default:
+127.0.0.1 and ::1 i.e., localhost)
+.HP
+\fB\-rpccookiefile=\fR<loc>
+.IP
+Location of the auth cookie. Relative paths will be prefixed by a
+net\-specific datadir location. (default: data dir)
+.HP
+\fB\-rpcpassword=\fR<pw>
+.IP
+Password for JSON\-RPC connections
+.HP
+\fB\-rpcport=\fR<port>
+.IP
+Listen for JSON\-RPC connections on <port> (default: 7041, testnet:
+18332, signet: 38332, regtest: 18443)
+.HP
+\fB\-rpcserialversion\fR
+.IP
+Sets the serialization of raw transaction or block hex returned in
+non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
+.HP
+\fB\-rpcthreads=\fR<n>
+.IP
+Set the number of threads to service RPC calls (default: 4)
+.HP
+\fB\-rpcuser=\fR<user>
+.IP
+Username for JSON\-RPC connections
+.HP
+\fB\-rpcwhitelist=\fR<whitelist>
+.IP
+Set a whitelist to filter incoming RPC calls for a specific user. The
+field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
+2>,...,<rpc n>. If multiple whitelists are set for a given user,
+they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
+for information on default whitelist behavior.
+.HP
+\fB\-rpcwhitelistdefault\fR
+.IP
+Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
+is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
+if all rpc users are subject to empty\-unless\-otherwise\-specified
+whitelists. If rpcwhitelistdefault is set to 1 and no
+\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
+subject to empty whitelists.
+.HP
+\fB\-server\fR
+.IP
+Accept command line and JSON\-RPC commands
+.PP
+UI Options:
+.HP
+\fB\-choosedatadir\fR
+.IP
+Choose data directory on startup (default: 0)
+.HP
+\fB\-lang=\fR<lang>
+.IP
+Set language, for example "de_DE" (default: system locale)
+.HP
+\fB\-min\fR
+.IP
+Start minimized
+.HP
+\fB\-resetguisettings\fR
+.IP
+Reset all settings changed in the GUI
+.HP
+\fB\-splash\fR
+.IP
+Show splash screen on startup (default: 1)
+.PP
+Elements Options:
+.HP
+\fB\-assetdir\fR
+.IP
+Entries of pet names of assets, in this format:asset=<hex>:<label>.
+There can be any number of entries.
+.HP
+\fB\-blindedaddresses\fR
+.IP
+Give blind addresses by default via getnewaddress and
+getrawchangeaddress. (default: \fB\-con_elementsmode\fR value)
+.HP
+\fB\-blindedprefix\fR
+.IP
+The byte prefix, in decimal, of blinded addresses. (default: 4)
+.HP
+\fB\-con_blocksubsidy\fR
+.IP
+Defines the amount of block subsidy to start with, at genesis block, in
+satoshis.
+.HP
+\fB\-con_connect_genesis_outputs\fR
+.IP
+Connect outputs in genesis block to utxo database.
+.HP
+\fB\-con_csv_deploy_start\fR
+.IP
+Starting height for CSV deployment. (default: \fB\-1\fR, which means ACTIVE
+from genesis)
+.HP
+\fB\-con_dyna_deploy_signal\fR
+.IP
+Whether to signal for the Dynamic Federations deployment (default:
+true).
+.HP
+\fB\-con_elementsmode\fR
+.TP
+Use Elements\-like instead of Core\-like witness encoding.
+This is
+.IP
+required for CA/CT. (default: true)
+.HP
+\fB\-con_mandatorycoinbase\fR
+.IP
+All non\-zero valued coinbase outputs must go to this scriptPubKey, if
+set.
+.HP
+\fB\-defaultpeggedassetname\fR
+.IP
+Default name of the pegged asset. (default: bitcoin)
+.HP
+\fB\-dynamic_epoch_length\fR
+.IP
+Per\-chain parameter that sets how many blocks dynamic federation voting
+and enforcement are in effect for.
+.HP
+\fB\-enforce_pak\fR
+.IP
+Causes standardness checks to enforce Pegout Authorization Key(PAK)
+validation before dynamic federations, and consensus enforcement
+after.
+.HP
+\fB\-mainchainrpccookiefile=\fR<file>
+.IP
+The bitcoind cookie auth path which the daemon will use to connect to
+the trusted mainchain daemon to validate peg\-ins. (default:
+`<datadir>/regtest/.cookie`)
+.HP
+\fB\-mainchainrpchost=\fR<host>
+.IP
+The address which the daemon will try to connect to the trusted
+mainchain daemon to validate peg\-ins, if enabled. (default:
+127.0.0.1)
+.HP
+\fB\-mainchainrpcpassword=\fR<pwd>
+.IP
+The rpc password which the daemon will use to connect to the trusted
+mainchain daemon to validate peg\-ins, if enabled. (default:
+cookie auth)
+.HP
+\fB\-mainchainrpcport=\fR<n>
+.IP
+The port which the daemon will try to connect to the trusted mainchain
+daemon to validate peg\-ins, if enabled. (default: 8332)
+.HP
+\fB\-mainchainrpctimeout=\fR<n>
+.IP
+Timeout in seconds during mainchain RPC requests, or 0 for no timeout.
+(default: 900)
+.HP
+\fB\-mainchainrpcuser=\fR<user>
+.IP
+The rpc username that the daemon will use to connect to the trusted
+mainchain daemon to validate peg\-ins, if enabled. (default:
+cookie auth)
+.HP
+\fB\-multi_data_permitted\fR
+.IP
+Allow relay of multiple OP_RETURN outputs. (default: \fB\-enforce_pak\fR)
+.HP
+\fB\-pak\fR
+.IP
+Sets the 'first extension space' field to the pak entries ala
+pre\-dynamic federations. Only used for testing in custom chains.
+.HP
+\fB\-peginconfirmationdepth=\fR<n>
+.IP
+Pegin claims must be this deep to be considered valid. (default: 8)
+.HP
+\fB\-total_valid_epochs\fR
+.IP
+Per\-chain parameter that sets how long a particular fedpegscript is in
+effect for.
+.HP
+\fB\-validatepegin\fR
+.IP
+Validate peg\-in claims. An RPC connection will be attempted to the
+trusted mainchain daemon using the `mainchain*` settings below.
+All functionaries must run this enabled. (default: true if chain
+has federated peg)
+.SH COPYRIGHT
+Copyright (C) 2009-2023 The Elements Project developers
+Copyright (C) 2009-2023 The Bitcoin Core developers
+
+Please contribute if you find Elements Core useful. Visit
+<https://elementsproject.org/> for further information about the software.
+The source code is available from
+<https://github.com/ElementsProject/elements>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index d22150ed695..50ea603dd1e 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,20 +1,20 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.10.
-.TH ELEMENTS-TX "1" "May 2019" "elements-tx v0.17.0.1" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH ELEMENTS-TX "1" "September 2023" "elements-tx v23.2.1" "User Commands"
 .SH NAME
-elements-tx \- manual page for elements-tx v0.17.0.1
+elements-tx \- manual page for elements-tx v23.2.1
 .SH SYNOPSIS
 .B elements-tx
-[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded bitcoin transaction\/\fR
+[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded Elements transaction\/\fR
 .br
 .B elements-tx
-[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded bitcoin transaction\/\fR
+[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded Elements transaction\/\fR
 .SH DESCRIPTION
-Elements Core elements\-tx utility version v0.17.0.1\-dirty
+Elements Core elements\-tx utility version v23.2.1
 .SH OPTIONS
 .HP
 \-?
 .IP
-This help message
+Print this help message and exit
 .HP
 \fB\-create\fR
 .IP
@@ -27,13 +27,19 @@ Select JSON output
 \fB\-txid\fR
 .IP
 Output only the hex\-encoded transaction id of the resultant transaction.
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Debugging/Testing options:
 .PP
 Chain selection options:
 .HP
 \fB\-chain=\fR<chain>
 .IP
-Use the chain <chain> (default: main). Reserved values: main, test,
-regtest
+Use the chain <chain> (default: liquidv1). Reserved values: main, test,
+signet, regtest, liquidv1, liquidv1test
 .HP
 \fB\-con_blockheightinheader\fR
 .IP
@@ -66,7 +72,8 @@ signatures are necessary to solve it.
 .HP
 \fB\-fedpegscript\fR
 .IP
-The script for the federated peg.
+The script for the federated peg enforce from genesis block. This script
+may stop being enforced once dynamic federations activates.
 .HP
 \fB\-parentgenesisblockhash\fR
 .IP
@@ -77,17 +84,36 @@ The genesis blockhash of the parent chain.
 Signed blockchain enumberance. Only active when `\-con_signed_blocks` set
 to true.
 .HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
 \fB\-testnet\fR
 .IP
-Use the test chain
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
 .PP
 Elements Options:
 .HP
 \fB\-con_blocksubsidy\fR
 .IP
-Defines the amount of block subsidy to start with, at genesis block.
+Defines the amount of block subsidy to start with, at genesis block, in
+satoshis.
 .HP
-\fB\-con_connect_coinbase\fR
+\fB\-con_connect_genesis_outputs\fR
 .IP
 Connect outputs in genesis block to utxo database.
 .HP
@@ -96,6 +122,11 @@ Connect outputs in genesis block to utxo database.
 Starting height for CSV deployment. (default: \fB\-1\fR, which means ACTIVE
 from genesis)
 .HP
+\fB\-con_dyna_deploy_signal\fR
+.IP
+Whether to signal for the Dynamic Federations deployment (default:
+true).
+.HP
 \fB\-con_elementsmode\fR
 .TP
 Use Elements\-like instead of Core\-like witness encoding.
@@ -108,19 +139,30 @@ required for CA/CT. (default: true)
 All non\-zero valued coinbase outputs must go to this scriptPubKey, if
 set.
 .HP
+\fB\-dynamic_epoch_length\fR
+.IP
+Per\-chain parameter that sets how many blocks dynamic federation voting
+and enforcement are in effect for.
+.HP
 \fB\-enforce_pak\fR
 .IP
 Causes standardness checks to enforce Pegout Authorization Key(PAK)
-validation, and miner to include PAK commitments when configured.
-Can not be set when acceptnonstdtx is set to true.
+validation before dynamic federations, and consensus enforcement
+after.
 .HP
 \fB\-multi_data_permitted\fR
 .IP
-Allow relay of multiple OP_RETURN outputs. (default: true)
+Allow relay of multiple OP_RETURN outputs. (default: \fB\-enforce_pak\fR)
 .HP
 \fB\-pak\fR
 .IP
-Entries in the PAK list. Order of entries matter.
+Sets the 'first extension space' field to the pak entries ala
+pre\-dynamic federations. Only used for testing in custom chains.
+.HP
+\fB\-total_valid_epochs\fR
+.IP
+Per\-chain parameter that sets how long a particular fedpegscript is in
+effect for.
 .PP
 Commands:
 .IP
@@ -180,7 +222,7 @@ sign=SIGHASH\-FLAGS
 .IP
 Add zero or more signatures to transaction. This command requires JSON
 registers:prevtxs=JSON object, privatekeys=JSON object. See
-signrawtransaction docs for format of sighash flags, JSON
+signrawtransactionwithkey docs for format of sighash flags, JSON
 objects.
 .PP
 Register Commands:
@@ -198,14 +240,14 @@ set=NAME:JSON\-STRING
 .IP
 Set register NAME to given JSON\-STRING
 .SH COPYRIGHT
-Copyright (C) 2009-2019 The Elements Project developers
-Copyright (C) 2009-2019 The Bitcoin Core developers
+Copyright (C) 2009-2023 The Elements Project developers
+Copyright (C) 2009-2023 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
-<https://bitcoincore.org> for further information about the software.
-The source code is available from <https://github.com/bitcoin/bitcoin>.
+<https://elementsproject.org/> for further information about the software.
+The source code is available from
+<https://github.com/ElementsProject/elements>.
 
 This is experimental software.
 Distributed under the MIT software license, see the accompanying file COPYING
-or <https://opensource.org/licenses/MIT>
-
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
new file mode 100644
index 00000000000..e2e2fea73b6
--- /dev/null
+++ b/doc/man/elements-util.1
@@ -0,0 +1,168 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH ELEMENTS-UTIL "1" "September 2023" "elements-util v23.2.1" "User Commands"
+.SH NAME
+elements-util \- manual page for elements-util v23.2.1
+.SH SYNOPSIS
+.B bitcoin-util
+[\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
+.SH DESCRIPTION
+Elements Core bitcoin\-util utility version v23.2.1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Debugging/Testing options:
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: liquidv1). Reserved values: main, test,
+signet, regtest, liquidv1, liquidv1test
+.HP
+\fB\-con_blockheightinheader\fR
+.IP
+Whether the chain includes the block height directly in the header, for
+easier validation of block height in low\-resource environments.
+(default: true)
+.HP
+\fB\-con_has_parent_chain\fR
+.IP
+Whether or not there is a parent chain.
+.HP
+\fB\-con_max_block_sig_size\fR
+.IP
+Max allowed witness data for the signed block header.
+.HP
+\fB\-con_parent_chain_signblockscript\fR
+.IP
+Whether parent chain uses pow or signed blocks. If the parent chain uses
+signed blocks, the challenge (scriptPubKey) script. If not, an
+empty string. (default: empty script [ie parent uses pow])
+.HP
+\fB\-con_parentpowlimit\fR
+.IP
+The proof\-of\-work limit value for the parent chain.
+.HP
+\fB\-con_signed_blocks\fR
+.IP
+Signed blockchain. Uses input of `\-signblockscript` to define what
+signatures are necessary to solve it.
+.HP
+\fB\-fedpegscript\fR
+.IP
+The script for the federated peg enforce from genesis block. This script
+may stop being enforced once dynamic federations activates.
+.HP
+\fB\-parentgenesisblockhash\fR
+.IP
+The genesis blockhash of the parent chain.
+.HP
+\fB\-signblockscript\fR
+.IP
+Signed blockchain enumberance. Only active when `\-con_signed_blocks` set
+to true.
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Elements Options:
+.HP
+\fB\-con_blocksubsidy\fR
+.IP
+Defines the amount of block subsidy to start with, at genesis block, in
+satoshis.
+.HP
+\fB\-con_connect_genesis_outputs\fR
+.IP
+Connect outputs in genesis block to utxo database.
+.HP
+\fB\-con_csv_deploy_start\fR
+.IP
+Starting height for CSV deployment. (default: \fB\-1\fR, which means ACTIVE
+from genesis)
+.HP
+\fB\-con_dyna_deploy_signal\fR
+.IP
+Whether to signal for the Dynamic Federations deployment (default:
+true).
+.HP
+\fB\-con_elementsmode\fR
+.TP
+Use Elements\-like instead of Core\-like witness encoding.
+This is
+.IP
+required for CA/CT. (default: true)
+.HP
+\fB\-con_mandatorycoinbase\fR
+.IP
+All non\-zero valued coinbase outputs must go to this scriptPubKey, if
+set.
+.HP
+\fB\-dynamic_epoch_length\fR
+.IP
+Per\-chain parameter that sets how many blocks dynamic federation voting
+and enforcement are in effect for.
+.HP
+\fB\-enforce_pak\fR
+.IP
+Causes standardness checks to enforce Pegout Authorization Key(PAK)
+validation before dynamic federations, and consensus enforcement
+after.
+.HP
+\fB\-multi_data_permitted\fR
+.IP
+Allow relay of multiple OP_RETURN outputs. (default: \fB\-enforce_pak\fR)
+.HP
+\fB\-pak\fR
+.IP
+Sets the 'first extension space' field to the pak entries ala
+pre\-dynamic federations. Only used for testing in custom chains.
+.HP
+\fB\-total_valid_epochs\fR
+.IP
+Per\-chain parameter that sets how long a particular fedpegscript is in
+effect for.
+.PP
+Commands:
+.IP
+grind
+.IP
+Perform proof of work on hex header string
+.SH COPYRIGHT
+Copyright (C) 2009-2023 The Elements Project developers
+Copyright (C) 2009-2023 The Bitcoin Core developers
+
+Please contribute if you find Elements Core useful. Visit
+<https://elementsproject.org/> for further information about the software.
+The source code is available from
+<https://github.com/ElementsProject/elements>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index 80f6c506972..b2db03ea9af 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,5 +1,224 @@
-.TH ELEMENTS-WALLET "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH ELEMENTS-WALLET "1" "September 2023" "elements-wallet v23.2.1" "User Commands"
 .SH NAME
-elements-wallet \- manual page for elements-wallet
+elements-wallet \- manual page for elements-wallet v23.2.1
+.SH DESCRIPTION
+Elements Core elements\-wallet version v23.2.1
+.PP
+elements\-wallet is an offline tool for creating and interacting with Elements Core wallet files.
+By default elements\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
+To change the target wallet, use the \fB\-datadir\fR, \fB\-wallet\fR and \fB\-regtest\fR/\-signet/\-testnet arguments.
+.SS "Usage:"
+.IP
+elements\-wallet [options] <command>
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-datadir=\fR<dir>
+.IP
+Specify data directory
+.HP
+\fB\-descriptors\fR
+.IP
+Create descriptors wallet. Only for 'create'
+.HP
+\fB\-dumpfile=\fR<file name>
+.IP
+When used with 'dump', writes out the records to this file. When used
+with 'createfromdump', loads the records into a new wallet.
+.HP
+\fB\-format=\fR<format>
+.IP
+The format of the wallet file to create. Either "bdb" or "sqlite". Only
+used with 'createfromdump'
+.HP
+\fB\-legacy\fR
+.IP
+Create legacy wallet. Only for 'create'
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.HP
+\fB\-wallet=\fR<wallet\-name>
+.IP
+Specify wallet name
+.PP
+Debugging/Testing options:
+.HP
+\fB\-debug=\fR<category>
+.IP
+Output debugging information (default: 0).
+.HP
+\fB\-printtoconsole\fR
+.IP
+Send trace/debug info to console (default: 1 when no \fB\-debug\fR is true, 0
+otherwise).
+.PP
+Chain selection options:
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: liquidv1). Reserved values: main, test,
+signet, regtest, liquidv1, liquidv1test
+.HP
+\fB\-con_blockheightinheader\fR
+.IP
+Whether the chain includes the block height directly in the header, for
+easier validation of block height in low\-resource environments.
+(default: true)
+.HP
+\fB\-con_has_parent_chain\fR
+.IP
+Whether or not there is a parent chain.
+.HP
+\fB\-con_max_block_sig_size\fR
+.IP
+Max allowed witness data for the signed block header.
+.HP
+\fB\-con_parent_chain_signblockscript\fR
+.IP
+Whether parent chain uses pow or signed blocks. If the parent chain uses
+signed blocks, the challenge (scriptPubKey) script. If not, an
+empty string. (default: empty script [ie parent uses pow])
+.HP
+\fB\-con_parentpowlimit\fR
+.IP
+The proof\-of\-work limit value for the parent chain.
+.HP
+\fB\-con_signed_blocks\fR
+.IP
+Signed blockchain. Uses input of `\-signblockscript` to define what
+signatures are necessary to solve it.
+.HP
+\fB\-fedpegscript\fR
+.IP
+The script for the federated peg enforce from genesis block. This script
+may stop being enforced once dynamic federations activates.
+.HP
+\fB\-parentgenesisblockhash\fR
+.IP
+The genesis blockhash of the parent chain.
+.HP
+\fB\-signblockscript\fR
+.IP
+Signed blockchain enumberance. Only active when `\-con_signed_blocks` set
+to true.
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Elements Options:
+.HP
+\fB\-con_blocksubsidy\fR
+.IP
+Defines the amount of block subsidy to start with, at genesis block, in
+satoshis.
+.HP
+\fB\-con_connect_genesis_outputs\fR
+.IP
+Connect outputs in genesis block to utxo database.
+.HP
+\fB\-con_csv_deploy_start\fR
+.IP
+Starting height for CSV deployment. (default: \fB\-1\fR, which means ACTIVE
+from genesis)
+.HP
+\fB\-con_dyna_deploy_signal\fR
+.IP
+Whether to signal for the Dynamic Federations deployment (default:
+true).
+.HP
+\fB\-con_elementsmode\fR
+.TP
+Use Elements\-like instead of Core\-like witness encoding.
+This is
+.IP
+required for CA/CT. (default: true)
+.HP
+\fB\-con_mandatorycoinbase\fR
+.IP
+All non\-zero valued coinbase outputs must go to this scriptPubKey, if
+set.
+.HP
+\fB\-dynamic_epoch_length\fR
+.IP
+Per\-chain parameter that sets how many blocks dynamic federation voting
+and enforcement are in effect for.
+.HP
+\fB\-enforce_pak\fR
+.IP
+Causes standardness checks to enforce Pegout Authorization Key(PAK)
+validation before dynamic federations, and consensus enforcement
+after.
+.HP
+\fB\-multi_data_permitted\fR
+.IP
+Allow relay of multiple OP_RETURN outputs. (default: \fB\-enforce_pak\fR)
+.HP
+\fB\-pak\fR
+.IP
+Sets the 'first extension space' field to the pak entries ala
+pre\-dynamic federations. Only used for testing in custom chains.
+.HP
+\fB\-total_valid_epochs\fR
+.IP
+Per\-chain parameter that sets how long a particular fedpegscript is in
+effect for.
+.PP
+Commands:
+.IP
+create
+.IP
+Create new wallet file
+.IP
+createfromdump
+.IP
+Create new wallet file from dumped records
+.IP
+dump
+.IP
+Print out all of the wallet key\-value records
+.IP
+info
+.IP
+Get wallet info
+.IP
+salvage
+.IP
+Attempt to recover private keys from a corrupt wallet. Warning:
+\&'salvage' is experimental.
+.SH COPYRIGHT
+Copyright (C) 2009-2023 The Elements Project developers
+Copyright (C) 2009-2023 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Elements Core useful. Visit
+<https://elementsproject.org/> for further information about the software.
+The source code is available from
+<https://github.com/ElementsProject/elements>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index ca14100fc17..585abf7ecb2 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,5 +1,1045 @@
-.TH ELEMENTSD "1"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
+.TH ELEMENTSD "1" "September 2023" "elementsd v23.2.1" "User Commands"
 .SH NAME
-elementsd \- manual page for elementsd
+elementsd \- manual page for elementsd v23.2.1
+.SH SYNOPSIS
+.B elementsd
+[\fI\,options\/\fR]                     \fI\,Start Elements Core\/\fR
+.SH DESCRIPTION
+Elements Core version v23.2.1
+.SH OPTIONS
+.HP
+\-?
+.IP
+Print this help message and exit
+.HP
+\fB\-alertnotify=\fR<cmd>
+.IP
+Execute command when an alert is raised (%s in cmd is replaced by
+message)
+.HP
+\fB\-assumevalid=\fR<hex>
+.IP
+If this block is in the chain assume that it and its ancestors are valid
+and potentially skip their script verification (0 to verify all,
+default:
+0000000000000000000000000000000000000000000000000000000000000000,
+testnet:
+00000000000163cfb1f97c4e4098a3692c8053ad9cab5ad9c86b338b5c00b8b7,
+signet:
+00000112852484b5fe3451572368f93cfd2723279af3464e478aee35115256ef)
+.HP
+\fB\-blockfilterindex=\fR<type>
+.IP
+Maintain an index of compact filters by block (default: 0, values:
+basic). If <type> is not supplied or if <type> = 1, indexes for
+all known types are enabled.
+.HP
+\fB\-blocknotify=\fR<cmd>
+.IP
+Execute command when the best block changes (%s in cmd is replaced by
+block hash)
+.HP
+\fB\-blockreconstructionextratxn=\fR<n>
+.IP
+Extra transactions to keep in memory for compact block reconstructions
+(default: 100)
+.HP
+\fB\-blocksdir=\fR<dir>
+.IP
+Specify directory to hold blocks subdirectory for *.dat files (default:
+<datadir>)
+.HP
+\fB\-blocksonly\fR
+.IP
+Whether to reject transactions from network peers. Automatic broadcast
+and rebroadcast of any transactions from inbound peers is
+disabled, unless the peer has the 'forcerelay' permission. RPC
+transactions are not affected. (default: 0)
+.HP
+\fB\-coinstatsindex\fR
+.IP
+Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
+.HP
+\fB\-conf=\fR<file>
+.IP
+Specify path to read\-only configuration file. Relative paths will be
+prefixed by datadir location. (default: elements.conf)
+.HP
+\fB\-daemon\fR
+.IP
+Run in the background as a daemon and accept commands (default: 0)
+.HP
+\fB\-daemonwait\fR
+.IP
+Wait for initialization to be finished before exiting. This implies
+\fB\-daemon\fR (default: 0)
+.HP
+\fB\-datadir=\fR<dir>
+.IP
+Specify data directory
+.HP
+\fB\-dbcache=\fR<n>
+.IP
+Maximum database cache size <n> MiB (4 to 16384, default: 450). In
+addition, unused mempool memory is shared for this cache (see
+\fB\-maxmempool\fR).
+.HP
+\fB\-debuglogfile=\fR<file>
+.IP
+Specify location of debug log file. Relative paths will be prefixed by a
+net\-specific datadir location. (\fB\-nodebuglogfile\fR to disable;
+default: debug.log)
+.HP
+\fB\-includeconf=\fR<file>
+.IP
+Specify additional configuration file, relative to the \fB\-datadir\fR path
+(only useable from configuration file, not command line)
+.HP
+\fB\-loadblock=\fR<file>
+.IP
+Imports blocks from external file on startup
+.HP
+\fB\-maxmempool=\fR<n>
+.IP
+Keep the transaction memory pool below <n> megabytes (default: 300)
+.HP
+\fB\-maxorphantx=\fR<n>
+.IP
+Keep at most <n> unconnectable transactions in memory (default: 100)
+.HP
+\fB\-mempoolexpiry=\fR<n>
+.IP
+Do not keep transactions in the mempool longer than <n> hours (default:
+336)
+.HP
+\fB\-par=\fR<n>
+.IP
+Set the number of script verification threads (\fB\-16\fR to 15, 0 = auto, <0 =
+leave that many cores free, default: 0)
+.HP
+\fB\-persistmempool\fR
+.IP
+Whether to save the mempool on shutdown and load on restart (default: 1)
+.HP
+\fB\-pid=\fR<file>
+.IP
+Specify pid file. Relative paths will be prefixed by a net\-specific
+datadir location. (default: elementsd.pid)
+.HP
+\fB\-prune=\fR<n>
+.IP
+Reduce storage requirements by enabling pruning (deleting) of old
+blocks. This allows the pruneblockchain RPC to be called to
+delete specific blocks, and enables automatic pruning of old
+blocks if a target size in MiB is provided. This mode is
+incompatible with \fB\-txindex\fR and \fB\-coinstatsindex\fR. Warning:
+Reverting this setting requires re\-downloading the entire
+blockchain. (default: 0 = disable pruning blocks, 1 = allow
+manual pruning via RPC, >=550 = automatically prune block files
+to stay under the specified target size in MiB)
+.HP
+\fB\-reindex\fR
+.IP
+Rebuild chain state and block index from the blk*.dat files on disk
+.HP
+\fB\-reindex\-chainstate\fR
+.IP
+Rebuild chain state from the currently indexed blocks. When in pruning
+mode or if blocks on disk might be corrupted, use full \fB\-reindex\fR
+instead.
+.HP
+\fB\-sandbox=\fR<mode>
+.IP
+Use the experimental syscall sandbox in the specified mode
+(\fB\-sandbox\fR=\fI\,log\-and\-abort\/\fR or \fB\-sandbox\fR=\fI\,abort\/\fR). Allow only expected
+syscalls to be used by bitcoind. Note that this is an
+experimental new feature that may cause bitcoind to exit or crash
+unexpectedly: use with caution. In the "log\-and\-abort" mode the
+invocation of an unexpected syscall results in a debug handler
+being invoked which will log the incident and terminate the
+program (without executing the unexpected syscall). In the
+"abort" mode the invocation of an unexpected syscall results in
+the entire process being killed immediately by the kernel without
+executing the unexpected syscall.
+.HP
+\fB\-settings=\fR<file>
+.IP
+Specify path to dynamic settings data file. Can be disabled with
+\fB\-nosettings\fR. File is written at runtime and not meant to be
+edited by users (use elements.conf instead for custom settings).
+Relative paths will be prefixed by datadir location. (default:
+settings.json)
+.HP
+\fB\-startupnotify=\fR<cmd>
+.IP
+Execute command on startup.
+.HP
+\fB\-sysperms\fR
+.IP
+Create new files with system default permissions, instead of umask 077
+(only effective with disabled wallet functionality)
+.HP
+\fB\-trim_headers\fR
+.IP
+Trim old headers in memory (by default older than 2 epochs), removing
+blocksigning and dynafed\-related fields. Saves memory, but blocks
+us from serving blocks or headers to peers, and removes trimmed
+fields from some JSON RPC outputs. (default: false)
+.HP
+\fB\-txindex\fR
+.IP
+Maintain a full transaction index, used by the getrawtransaction rpc
+call (default: 0)
+.HP
+\fB\-version\fR
+.IP
+Print version and exit
+.PP
+Connection options:
+.HP
+\fB\-addnode=\fR<ip>
+.IP
+Add a node to connect to and attempt to keep the connection open (see
+the addnode RPC help for more info). This option can be specified
+multiple times to add multiple nodes; connections are limited to
+8 at a time and are counted separately from the \fB\-maxconnections\fR
+limit.
+.HP
+\fB\-asmap=\fR<file>
+.IP
+Specify asn mapping used for bucketing of the peers (default:
+ip_asn.map). Relative paths will be prefixed by the net\-specific
+datadir location.
+.HP
+\fB\-bantime=\fR<n>
+.IP
+Default duration (in seconds) of manually configured bans (default:
+86400)
+.HP
+\fB\-bind=\fR<addr>[:<port>][=onion]
+.IP
+Bind to given address and always listen on it (default: 0.0.0.0). Use
+[host]:port notation for IPv6. Append =onion to tag any incoming
+connections to that address and port as incoming Tor connections
+(default: 127.0.0.1:37041=onion, testnet: 127.0.0.1:18334=onion,
+signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion)
+.HP
+\fB\-cjdnsreachable\fR
+.IP
+If set, then this host is configured for CJDNS (connecting to fc00::/8
+addresses would lead us to the CJDNS network, see doc/cjdns.md)
+(default: 0)
+.HP
+\fB\-connect=\fR<ip>
+.IP
+Connect only to the specified node; \fB\-noconnect\fR disables automatic
+connections (the rules for this peer are the same as for
+\fB\-addnode\fR). This option can be specified multiple times to connect
+to multiple nodes.
+.HP
+\fB\-discover\fR
+.IP
+Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
+or \fB\-proxy\fR)
+.HP
+\fB\-dns\fR
+.IP
+Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
+.HP
+\fB\-dnsseed\fR
+.IP
+Query for peer addresses via DNS lookup, if low on addresses (default: 1
+unless \fB\-connect\fR used)
+.HP
+\fB\-externalip=\fR<ip>
+.IP
+Specify your own public address
+.HP
+\fB\-fixedseeds\fR
+.IP
+Allow fixed seeds if DNS seeds don't provide peers (default: 1)
+.HP
+\fB\-forcednsseed\fR
+.IP
+Always query for peer addresses via DNS lookup (default: 0)
+.HP
+\fB\-i2pacceptincoming\fR
+.IP
+If set and \fB\-i2psam\fR is also set then incoming I2P connections are
+accepted via the SAM proxy. If this is not set but \fB\-i2psam\fR is set
+then only outgoing connections will be made to the I2P network.
+Ignored if \fB\-i2psam\fR is not set. Listening for incoming I2P
+connections is done through the SAM proxy, not by binding to a
+local address and port (default: 1)
+.HP
+\fB\-i2psam=\fR<ip:port>
+.IP
+I2P SAM proxy to reach I2P peers and accept I2P connections (default:
+none)
+.HP
+\fB\-listen\fR
+.IP
+Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
+.HP
+\fB\-listenonion\fR
+.IP
+Automatically create Tor onion service (default: 1)
+.HP
+\fB\-maxconnections=\fR<n>
+.IP
+Maintain at most <n> connections to peers (default: 125). This limit
+does not apply to connections manually added via \fB\-addnode\fR or the
+addnode RPC, which have a separate limit of 8.
+.HP
+\fB\-maxreceivebuffer=\fR<n>
+.IP
+Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
+.HP
+\fB\-maxsendbuffer=\fR<n>
+.IP
+Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
+.HP
+\fB\-maxtimeadjustment\fR
+.IP
+Maximum allowed median peer time offset adjustment. Local perspective of
+time may be influenced by outbound peers forward or backward by
+this amount (default: 4200 seconds).
+.HP
+\fB\-maxuploadtarget=\fR<n>
+.IP
+Tries to keep outbound traffic under the given target per 24h. Limit
+does not apply to peers with 'download' permission or blocks
+created within past week. 0 = no limit (default: 0M). Optional
+suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
+base while uppercase is 1024 base
+.HP
+\fB\-natpmp\fR
+.IP
+Use NAT\-PMP to map the listening port (default: 0)
+.HP
+\fB\-networkactive\fR
+.IP
+Enable all P2P network activity (default: 1). Can be changed by the
+setnetworkactive RPC command
+.HP
+\fB\-onion=\fR<ip:port>
+.IP
+Use separate SOCKS5 proxy to reach peers via Tor onion services, set
+\fB\-noonion\fR to disable (default: \fB\-proxy\fR)
+.HP
+\fB\-onlynet=\fR<net>
+.IP
+Make automatic outbound connections only to network <net> (ipv4, ipv6,
+onion, i2p, cjdns). Inbound and manual connections are not
+affected by this option. It can be specified multiple times to
+allow multiple networks.
+.HP
+\fB\-peerblockfilters\fR
+.IP
+Serve compact block filters to peers per BIP 157 (default: 0)
+.HP
+\fB\-peerbloomfilters\fR
+.IP
+Support filtering of blocks and transaction with bloom filters (default:
+0)
+.HP
+\fB\-permitbaremultisig\fR
+.IP
+Relay non\-P2SH multisig (default: 1)
+.HP
+\fB\-port=\fR<port>
+.IP
+Listen for connections on <port>. Nodes not using the default ports
+(default: 7042, testnet: 18333, signet: 38333, regtest: 18444)
+are unlikely to get incoming connections. Not relevant for I2P
+(see doc/i2p.md).
+.HP
+\fB\-proxy=\fR<ip:port>
+.IP
+Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
+disabled)
+.HP
+\fB\-proxyrandomize\fR
+.IP
+Randomize credentials for every proxy connection. This enables Tor
+stream isolation (default: 1)
+.HP
+\fB\-seednode=\fR<ip>
+.IP
+Connect to a node to retrieve peer addresses, and disconnect. This
+option can be specified multiple times to connect to multiple
+nodes.
+.HP
+\fB\-timeout=\fR<n>
+.IP
+Specify socket connection timeout in milliseconds. If an initial attempt
+to connect is unsuccessful after this amount of time, drop it
+(minimum: 1, default: 5000)
+.HP
+\fB\-torcontrol=\fR<ip>:<port>
+.IP
+Tor control port to use if onion listening enabled (default:
+127.0.0.1:9051)
+.HP
+\fB\-torpassword=\fR<pass>
+.IP
+Tor control port password (default: empty)
+.HP
+\fB\-upnp\fR
+.IP
+Use UPnP to map the listening port (default: 0)
+.HP
+\fB\-whitebind=\fR<[permissions@]addr>
+.IP
+Bind to the given address and add permission flags to the peers
+connecting to it. Use [host]:port notation for IPv6. Allowed
+permissions: bloomfilter (allow requesting BIP37 filtered blocks
+and transactions), noban (do not ban for misbehavior; implies
+download), forcerelay (relay transactions that are already in the
+mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
+and unlimited transaction announcements), mempool (allow
+requesting BIP35 mempool contents), download (allow getheaders
+during IBD, no disconnect after maxuploadtarget limit), addr
+(responses to GETADDR avoid hitting the cache and contain random
+records with the most up\-to\-date info). Specify multiple
+permissions separated by commas (default:
+download,noban,mempool,relay). Can be specified multiple times.
+.HP
+\fB\-whitelist=\fR<[permissions@]IP address or network>
+.IP
+Add permission flags to the peers connecting from the given IP address
+(e.g. 1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses
+the same permissions as \fB\-whitebind\fR. Can be specified multiple
+times.
+.PP
+Wallet options:
+.HP
+\fB\-addresstype\fR
+.IP
+What type of addresses to use ("legacy", "p2sh\-segwit", "bech32", or
+"bech32m", default: "bech32")
+.HP
+\fB\-avoidpartialspends\fR
+.IP
+Group outputs by address, selecting many (possibly all) or none, instead
+of selecting on a per\-output basis. Privacy is improved as
+addresses are mostly swept with fewer transactions and outputs
+are aggregated in clean change addresses. It may result in higher
+fees due to less optimal coin selection caused by this added
+limitation and possibly a larger\-than\-necessary number of inputs
+being used. Always enabled for wallets with "avoid_reuse"
+enabled, otherwise default: 0.
+.HP
+\fB\-changetype\fR
+.IP
+What type of change to use ("legacy", "p2sh\-segwit", "bech32", or
+"bech32m"). Default is "legacy" when \fB\-addresstype\fR=\fI\,legacy\/\fR, else it
+is an implementation detail.
+.HP
+\fB\-consolidatefeerate=\fR<amt>
+.IP
+The maximum feerate (in BTC/kvB) at which transaction building may use
+more inputs than strictly necessary so that the wallet's UTXO
+pool can be reduced (default: 0.0001).
+.HP
+\fB\-disablewallet\fR
+.IP
+Do not load the wallet and disable wallet RPC calls
+.HP
+\fB\-discardfee=\fR<amt>
+.IP
+The fee rate (in BTC/kvB) that indicates your tolerance for discarding
+change by adding it to the fee (default: 0.0001). Note: An output
+is discarded if it is dust at this rate, but we will always
+discard up to the dust relay fee and a discard fee above that is
+limited by the fee estimate for the longest target
+.HP
+\fB\-fallbackfee=\fR<amt>
+.IP
+A fee rate (in BTC/kvB) that will be used when fee estimation has
+insufficient data. 0 to entirely disable the fallbackfee feature.
+(default: 0.00)
+.HP
+\fB\-keypool=\fR<n>
+.IP
+Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
+increase the risk of losing funds when restoring from an old
+backup, if none of the addresses in the original keypool have
+been used.
+.HP
+\fB\-maxapsfee=\fR<n>
+.IP
+Spend up to this amount in additional (absolute) fees (in BTC) if it
+allows the use of partial spend avoidance (default: 0.00)
+.HP
+\fB\-mintxfee=\fR<amt>
+.IP
+Fee rates (in BTC/kvB) smaller than this are considered zero fee for
+transaction creation (default: 0.000001)
+.HP
+\fB\-paytxfee=\fR<amt>
+.IP
+Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
+.HP
+\fB\-signer=\fR<cmd>
+.IP
+External signing tool, see doc/external\-signer.md
+.HP
+\fB\-spendzeroconfchange\fR
+.IP
+Spend unconfirmed change when sending transactions (default: 1)
+.HP
+\fB\-txconfirmtarget=\fR<n>
+.IP
+If paytxfee is not set, include enough fee so transactions begin
+confirmation on average within n blocks (default: 6)
+.HP
+\fB\-wallet=\fR<path>
+.IP
+Specify wallet path to load at startup. Can be used multiple times to
+load multiple wallets. Path is to a directory containing wallet
+data and log files. If the path is not absolute, it is
+interpreted relative to <walletdir>. This only loads existing
+wallets and does not create new ones. For backwards compatibility
+this also accepts names of existing top\-level data files in
+<walletdir>.
+.HP
+\fB\-walletbroadcast\fR
+.IP
+Make the wallet broadcast transactions (default: 1)
+.HP
+\fB\-walletdir=\fR<dir>
+.IP
+Specify directory to hold wallets (default: <datadir>/wallets if it
+exists, otherwise <datadir>)
+.HP
+\fB\-walletnotify=\fR<cmd>
+.IP
+Execute command when a wallet transaction changes. %s in cmd is replaced
+by TxID, %w is replaced by wallet name, %b is replaced by the
+hash of the block including the transaction (set to 'unconfirmed'
+if the transaction is not included) and %h is replaced by the
+block height (\fB\-1\fR if not included). %w is not currently
+implemented on windows. On systems where %w is supported, it
+should NOT be quoted because this would break shell escaping used
+to invoke the command.
+.HP
+\fB\-walletrbf\fR
+.IP
+Send transactions with full\-RBF opt\-in enabled (RPC only, default: 1)
+.PP
+ZeroMQ notification options:
+.HP
+\fB\-zmqpubhashblock=\fR<address>
+.IP
+Enable publish hash block in <address>
+.HP
+\fB\-zmqpubhashblockhwm=\fR<n>
+.IP
+Set publish hash block outbound message high water mark (default: 1000)
+.HP
+\fB\-zmqpubhashtx=\fR<address>
+.IP
+Enable publish hash transaction in <address>
+.HP
+\fB\-zmqpubhashtxhwm=\fR<n>
+.IP
+Set publish hash transaction outbound message high water mark (default:
+1000)
+.HP
+\fB\-zmqpubrawblock=\fR<address>
+.IP
+Enable publish raw block in <address>
+.HP
+\fB\-zmqpubrawblockhwm=\fR<n>
+.IP
+Set publish raw block outbound message high water mark (default: 1000)
+.HP
+\fB\-zmqpubrawtx=\fR<address>
+.IP
+Enable publish raw transaction in <address>
+.HP
+\fB\-zmqpubrawtxhwm=\fR<n>
+.IP
+Set publish raw transaction outbound message high water mark (default:
+1000)
+.HP
+\fB\-zmqpubsequence=\fR<address>
+.IP
+Enable publish hash block and tx sequence in <address>
+.HP
+\fB\-zmqpubsequencehwm=\fR<n>
+.IP
+Set publish hash sequence message high water mark (default: 1000)
+.PP
+Debugging/Testing options:
+.HP
+\fB\-debug=\fR<category>
+.IP
+Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
+optional). If <category> is not supplied or if <category> = 1,
+output all debugging information. <category> can be: addrman,
+bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
+ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
+qt, rand, reindex, rpc, selectcoins, tor, util, validation,
+walletdb, zmq. This option can be specified multiple times to
+output multiple categories.
+.HP
+\fB\-debugexclude=\fR<category>
+.IP
+Exclude debugging information for a category. Can be used in conjunction
+with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except the
+specified category. This option can be specified multiple times
+to exclude multiple categories.
+.HP
+\fB\-help\-debug\fR
+.IP
+Print help message with debugging options and exit
+.HP
+\fB\-logips\fR
+.IP
+Include IP addresses in debug output (default: 0)
+.HP
+\fB\-logsourcelocations\fR
+.IP
+Prepend debug output with name of the originating source location
+(source file, line number and function name) (default: 0)
+.HP
+\fB\-logthreadnames\fR
+.IP
+Prepend debug output with name of the originating thread (only available
+on platforms supporting thread_local) (default: 0)
+.HP
+\fB\-logtimestamps\fR
+.IP
+Prepend debug output with timestamp (default: 1)
+.HP
+\fB\-maxtxfee=\fR<amt>
+.IP
+Maximum total fees (in BTC) to use in a single wallet transaction;
+setting this too low may abort large transactions (default: 0.10)
+.HP
+\fB\-printtoconsole\fR
+.IP
+Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
+logging to file, set \fB\-nodebuglogfile\fR)
+.HP
+\fB\-shrinkdebugfile\fR
+.IP
+Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
+.HP
+\fB\-uacomment=\fR<cmt>
+.IP
+Append comment to the user agent string
+.PP
+Chain selection options:
+.HP
+\fB\-bech32_hrp\fR
+.IP
+The human\-readable part of the chain's bech32 encoding. (default: ex)
+.HP
+\fB\-blech32_hrp\fR
+.IP
+The human\-readable part of the chain's blech32 encoding. Used in
+confidential addresses.(default: lq)
+.HP
+\fB\-chain=\fR<chain>
+.IP
+Use the chain <chain> (default: liquidv1). Reserved values: main, test,
+signet, regtest, liquidv1, liquidv1test
+.HP
+\fB\-con_blockheightinheader\fR
+.IP
+Whether the chain includes the block height directly in the header, for
+easier validation of block height in low\-resource environments.
+(default: true)
+.HP
+\fB\-con_has_parent_chain\fR
+.IP
+Whether or not there is a parent chain.
+.HP
+\fB\-con_max_block_sig_size\fR
+.IP
+Max allowed witness data for the signed block header.
+.HP
+\fB\-con_parent_chain_signblockscript\fR
+.IP
+Whether parent chain uses pow or signed blocks. If the parent chain uses
+signed blocks, the challenge (scriptPubKey) script. If not, an
+empty string. (default: empty script [ie parent uses pow])
+.HP
+\fB\-con_parent_pegged_asset=\fR<hex>
+.IP
+Asset ID (hex) for pegged asset for when parent chain has CA. (default:
+0x00)
+.HP
+\fB\-con_parentpowlimit\fR
+.IP
+The proof\-of\-work limit value for the parent chain.
+.HP
+\fB\-con_signed_blocks\fR
+.IP
+Signed blockchain. Uses input of `\-signblockscript` to define what
+signatures are necessary to solve it.
+.HP
+\fB\-ct_bits\fR
+.IP
+The default number of hiding bits in a rangeproof. Will be exceeded to
+cover amounts exceeding the maximum hiding value. (default: 52)
+.HP
+\fB\-ct_exponent\fR
+.IP
+The hiding exponent. (default: 0)
+.HP
+\fB\-extprvkeyprefix\fR
+.IP
+The 4\-byte prefix, in hex, of the chain's base58 extended private key
+encoding. (default: 0488ade4)
+.HP
+\fB\-extpubkeyprefix\fR
+.IP
+The 4\-byte prefix, in hex, of the chain's base58 extended public key
+encoding. (default: 0488b21e)
+.HP
+\fB\-fedpegscript\fR
+.IP
+The script for the federated peg enforce from genesis block. This script
+may stop being enforced once dynamic federations activates.
+.HP
+\fB\-feeasset=\fR<hex>
+.IP
+Asset ID (hex) for mempool/relay fees (default:
+6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d)
+.HP
+\fB\-initialreissuancetokens=\fR<n>
+.IP
+The amount of reissuance tokens created in the genesis block. (default:
+0)
+.HP
+\fB\-parent_bech32_hrp\fR
+.IP
+The human\-readable part of the parent chain's bech32 encoding. (default:
+bc)
+.HP
+\fB\-parent_blech32_hrp\fR
+.IP
+The human\-readable part of the parent chain's blech32 encoding.
+(default: bc)
+.HP
+\fB\-parentgenesisblockhash\fR
+.IP
+The genesis blockhash of the parent chain.
+.HP
+\fB\-parentpubkeyprefix\fR
+.IP
+The byte prefix, in decimal, of the parent chain's base58 pubkey
+address. (default: 111)
+.HP
+\fB\-parentscriptprefix\fR
+.IP
+The byte prefix, in decimal, of the parent chain's base58 script
+address. (default: 196)
+.HP
+\fB\-pubkeyprefix\fR
+.IP
+The byte prefix, in decimal, of the chain's base58 pubkey address.
+(default: 57)
+.HP
+\fB\-scriptprefix\fR
+.IP
+The byte prefix, in decimal, of the chain's base58 script address.
+(default: 39)
+.HP
+\fB\-secretprefix\fR
+.IP
+The byte prefix, in decimal, of the chain's base58 secret key encoding.
+(default: 128)
+.HP
+\fB\-signblockscript\fR
+.IP
+Signed blockchain enumberance. Only active when `\-con_signed_blocks` set
+to true.
+.HP
+\fB\-signet\fR
+.IP
+Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
+is defined by the \fB\-signetchallenge\fR parameter
+.HP
+\fB\-signetchallenge\fR
+.IP
+Blocks must satisfy the given script to be considered valid (only for
+signet networks; defaults to the global default signet test
+network challenge)
+.HP
+\fB\-signetseednode\fR
+.IP
+Specify a seed node for the signet network, in the hostname[:port]
+format, e.g. sig.net:1234 (may be used multiple times to specify
+multiple seed nodes; defaults to the global default signet test
+network seed node(s))
+.HP
+\fB\-subsidyasset=\fR<hex>
+.IP
+Asset ID (hex) for the block subsidy (default:
+6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d)
+.HP
+\fB\-testnet\fR
+.IP
+Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
+.PP
+Node relay options:
+.HP
+\fB\-bytespersigop\fR
+.IP
+Equivalent bytes per sigop in transactions for relay and mining
+(default: 20)
+.HP
+\fB\-datacarrier\fR
+.IP
+Relay and mine data carrier transactions (default: 1)
+.HP
+\fB\-datacarriersize\fR
+.IP
+Maximum size of data in data carrier transactions we relay and mine
+(default: 83)
+.HP
+\fB\-minrelaytxfee=\fR<amt>
+.IP
+Fees (in BTC/kvB) smaller than this are considered zero fee for
+relaying, mining and transaction creation (default: 0.000001)
+.HP
+\fB\-whitelistforcerelay\fR
+.IP
+Add 'forcerelay' permission to whitelisted inbound peers with default
+permissions. This will relay transactions even if the
+transactions were already in the mempool. (default: 0)
+.HP
+\fB\-whitelistrelay\fR
+.IP
+Add 'relay' permission to whitelisted inbound peers with default
+permissions. This will accept relayed transactions even when not
+relaying transactions (default: 1)
+.PP
+Block creation options:
+.HP
+\fB\-blockmaxweight=\fR<n>
+.IP
+Set maximum BIP141 block weight (default: 3996000)
+.HP
+\fB\-blockmintxfee=\fR<amt>
+.IP
+Set lowest fee rate (in BTC/kvB) for transactions to be included in
+block creation. (default: 0.000001)
+.PP
+RPC server options:
+.HP
+\fB\-rest\fR
+.IP
+Accept public REST requests (default: 0)
+.HP
+\fB\-rpcallowip=\fR<ip>
+.IP
+Allow JSON\-RPC connections from specified source. Valid for <ip> are a
+single IP (e.g. 1.2.3.4), a network/netmask (e.g.
+1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
+option can be specified multiple times
+.HP
+\fB\-rpcauth=\fR<userpw>
+.IP
+Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
+field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
+canonical python script is included in share/rpcauth. The client
+then connects normally using the
+rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
+option can be specified multiple times
+.HP
+\fB\-rpcbind=\fR<addr>[:port]
+.IP
+Bind to given address to listen for JSON\-RPC connections. Do not expose
+the RPC server to untrusted networks such as the public internet!
+This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
+optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
+IPv6. This option can be specified multiple times (default:
+127.0.0.1 and ::1 i.e., localhost)
+.HP
+\fB\-rpccookiefile=\fR<loc>
+.IP
+Location of the auth cookie. Relative paths will be prefixed by a
+net\-specific datadir location. (default: data dir)
+.HP
+\fB\-rpcpassword=\fR<pw>
+.IP
+Password for JSON\-RPC connections
+.HP
+\fB\-rpcport=\fR<port>
+.IP
+Listen for JSON\-RPC connections on <port> (default: 7041, testnet:
+18332, signet: 38332, regtest: 18443)
+.HP
+\fB\-rpcserialversion\fR
+.IP
+Sets the serialization of raw transaction or block hex returned in
+non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
+.HP
+\fB\-rpcthreads=\fR<n>
+.IP
+Set the number of threads to service RPC calls (default: 4)
+.HP
+\fB\-rpcuser=\fR<user>
+.IP
+Username for JSON\-RPC connections
+.HP
+\fB\-rpcwhitelist=\fR<whitelist>
+.IP
+Set a whitelist to filter incoming RPC calls for a specific user. The
+field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
+2>,...,<rpc n>. If multiple whitelists are set for a given user,
+they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
+for information on default whitelist behavior.
+.HP
+\fB\-rpcwhitelistdefault\fR
+.IP
+Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
+is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
+if all rpc users are subject to empty\-unless\-otherwise\-specified
+whitelists. If rpcwhitelistdefault is set to 1 and no
+\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
+subject to empty whitelists.
+.HP
+\fB\-server\fR
+.IP
+Accept command line and JSON\-RPC commands
+.PP
+Elements Options:
+.HP
+\fB\-assetdir\fR
+.IP
+Entries of pet names of assets, in this format:asset=<hex>:<label>.
+There can be any number of entries.
+.HP
+\fB\-blindedaddresses\fR
+.IP
+Give blind addresses by default via getnewaddress and
+getrawchangeaddress. (default: \fB\-con_elementsmode\fR value)
+.HP
+\fB\-blindedprefix\fR
+.IP
+The byte prefix, in decimal, of blinded addresses. (default: 4)
+.HP
+\fB\-con_blocksubsidy\fR
+.IP
+Defines the amount of block subsidy to start with, at genesis block, in
+satoshis.
+.HP
+\fB\-con_connect_genesis_outputs\fR
+.IP
+Connect outputs in genesis block to utxo database.
+.HP
+\fB\-con_csv_deploy_start\fR
+.IP
+Starting height for CSV deployment. (default: \fB\-1\fR, which means ACTIVE
+from genesis)
+.HP
+\fB\-con_dyna_deploy_signal\fR
+.IP
+Whether to signal for the Dynamic Federations deployment (default:
+true).
+.HP
+\fB\-con_elementsmode\fR
+.TP
+Use Elements\-like instead of Core\-like witness encoding.
+This is
+.IP
+required for CA/CT. (default: true)
+.HP
+\fB\-con_mandatorycoinbase\fR
+.IP
+All non\-zero valued coinbase outputs must go to this scriptPubKey, if
+set.
+.HP
+\fB\-defaultpeggedassetname\fR
+.IP
+Default name of the pegged asset. (default: bitcoin)
+.HP
+\fB\-dynamic_epoch_length\fR
+.IP
+Per\-chain parameter that sets how many blocks dynamic federation voting
+and enforcement are in effect for.
+.HP
+\fB\-enforce_pak\fR
+.IP
+Causes standardness checks to enforce Pegout Authorization Key(PAK)
+validation before dynamic federations, and consensus enforcement
+after.
+.HP
+\fB\-mainchainrpccookiefile=\fR<file>
+.IP
+The bitcoind cookie auth path which the daemon will use to connect to
+the trusted mainchain daemon to validate peg\-ins. (default:
+`<datadir>/regtest/.cookie`)
+.HP
+\fB\-mainchainrpchost=\fR<host>
+.IP
+The address which the daemon will try to connect to the trusted
+mainchain daemon to validate peg\-ins, if enabled. (default:
+127.0.0.1)
+.HP
+\fB\-mainchainrpcpassword=\fR<pwd>
+.IP
+The rpc password which the daemon will use to connect to the trusted
+mainchain daemon to validate peg\-ins, if enabled. (default:
+cookie auth)
+.HP
+\fB\-mainchainrpcport=\fR<n>
+.IP
+The port which the daemon will try to connect to the trusted mainchain
+daemon to validate peg\-ins, if enabled. (default: 8332)
+.HP
+\fB\-mainchainrpctimeout=\fR<n>
+.IP
+Timeout in seconds during mainchain RPC requests, or 0 for no timeout.
+(default: 900)
+.HP
+\fB\-mainchainrpcuser=\fR<user>
+.IP
+The rpc username that the daemon will use to connect to the trusted
+mainchain daemon to validate peg\-ins, if enabled. (default:
+cookie auth)
+.HP
+\fB\-multi_data_permitted\fR
+.IP
+Allow relay of multiple OP_RETURN outputs. (default: \fB\-enforce_pak\fR)
+.HP
+\fB\-pak\fR
+.IP
+Sets the 'first extension space' field to the pak entries ala
+pre\-dynamic federations. Only used for testing in custom chains.
+.HP
+\fB\-peginconfirmationdepth=\fR<n>
+.IP
+Pegin claims must be this deep to be considered valid. (default: 8)
+.HP
+\fB\-total_valid_epochs\fR
+.IP
+Per\-chain parameter that sets how long a particular fedpegscript is in
+effect for.
+.HP
+\fB\-validatepegin\fR
+.IP
+Validate peg\-in claims. An RPC connection will be attempted to the
+trusted mainchain daemon using the `mainchain*` settings below.
+All functionaries must run this enabled. (default: true if chain
+has federated peg)
+.SH COPYRIGHT
+Copyright (C) 2009-2023 The Elements Project developers
+Copyright (C) 2009-2023 The Bitcoin Core developers
 
-This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
+Please contribute if you find Elements Core useful. Visit
+<https://elementsproject.org/> for further information about the software.
+The source code is available from
+<https://github.com/ElementsProject/elements>.
+
+This is experimental software.
+Distributed under the MIT software license, see the accompanying file COPYING
+or <https://opensource.org/licenses/MIT>
\ No newline at end of file

From 26e191c4a7ec75c31eb0dfb17ea9cb7c501b4d49 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Thu, 28 Sep 2023 12:55:06 -0700
Subject: [PATCH 113/187] Revert "build: add dependencies to Makefile.am for
 libbitcoinkernel"

This reverts commit 5dc85e021435221f16286e016de79b7666198494.
---
 src/Makefile.am | 30 ------------------------------
 1 file changed, 30 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 7a8e53cc342..8f391279ffe 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -900,33 +900,6 @@ bitcoin_chainstate_SOURCES = \
   validationinterface.cpp \
   versionbits.cpp \
   warnings.cpp
-# ELEMENTS: additional sources for chainstate
-bitcoin_chainstate_SOURCES += \
-  asset.cpp \
-  blind.cpp \
-  blindpsbt.cpp \
-  block_proof.cpp \
-  common/bloom.cpp \
-  confidential_validation.cpp \
-  dynafed.cpp \
-  issuance.cpp \
-  mainchainrpc.cpp \
-  merkleblock.cpp \
-  pegins.cpp \
-  primitives/bitcoin/block.cpp \
-  primitives/bitcoin/merkleblock.cpp \
-  primitives/bitcoin/transaction.cpp \
-  primitives/confidential.cpp \
-  primitives/pak.cpp \
-  primitives/txwitness.cpp \
-  psbt.cpp \
-  rpc/request.cpp \
-  script/pegins.cpp \
-  script/sign.cpp \
-  script/signingprovider.cpp \
-  support/events.h \
-  util/url.cpp
-
 bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
 bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
 bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
@@ -937,9 +910,6 @@ bitcoin_chainstate_LDADD = \
   $(LIBLEVELDB) \
   $(LIBLEVELDB_SSE42) \
   $(LIBMEMENV)
-# ELEMENTS:
-bitcoin_chainstate_LDADD += \
-  $(EVENT_LIBS)
 
 # Required for obj/build.h to be generated first.
 # More details: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html

From 766a24c6925fffccac9aa4cdad59a3db8bf93788 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Thu, 28 Sep 2023 12:55:51 -0700
Subject: [PATCH 114/187] Revert "ci: Build bitcoin-chainstate"

This reverts commit 2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0.
---
 .cirrus.yml                                                   | 4 ++--
 ...et_libbitcoinkernel.sh => 00_setup_env_native_nowallet.sh} | 4 ++--
 src/Makefile.am                                               | 4 ----
 3 files changed, 4 insertions(+), 8 deletions(-)
 rename ci/test/{00_setup_env_native_nowallet_libbitcoinkernel.sh => 00_setup_env_native_nowallet.sh} (84%)

diff --git a/.cirrus.yml b/.cirrus.yml
index ebba0dc7df6..e1102be4467 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -271,13 +271,13 @@ task:
     FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"
 
 task:
-  name: '[no wallet, libbitcoinkernel] [bionic]'
+  name: '[no wallet] [bionic]'
   << : *GLOBAL_TASK_TEMPLATE
   container:
     image: ubuntu:bionic
   env:
     << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
-    FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh"
+    FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh"
 
 task:
   name: 'macOS 10.15 [gui, no tests] [focal]'
diff --git a/ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh b/ci/test/00_setup_env_native_nowallet.sh
similarity index 84%
rename from ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh
rename to ci/test/00_setup_env_native_nowallet.sh
index 89d62562988..d80a7f9633f 100755
--- a/ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh
+++ b/ci/test/00_setup_env_native_nowallet.sh
@@ -6,9 +6,9 @@
 
 export LC_ALL=C.UTF-8
 
-export CONTAINER_NAME=ci_native_nowallet_libbitcoinkernel
+export CONTAINER_NAME=ci_native_nowallet
 export DOCKER_NAME_TAG=ubuntu:18.04  # Use bionic to have one config run the tests in python3.6, see doc/dependencies.md
 export PACKAGES="python3-zmq clang-7 llvm-7 libc++abi-7-dev libc++-7-dev"  # Use clang-7 to test C++17 compatibility, see doc/dependencies.md
 export DEP_OPTS="NO_WALLET=1 CC=clang-7 CXX='clang++-7 -stdlib=libc++'"
 export GOAL="install"
-export BITCOIN_CONFIG="--enable-reduce-exports CC=clang-7 CXX='clang++-7 -stdlib=libc++' --enable-experimental-util-chainstate"
+export BITCOIN_CONFIG="--enable-reduce-exports CC=clang-7 CXX='clang++-7 -stdlib=libc++'"
diff --git a/src/Makefile.am b/src/Makefile.am
index 8f391279ffe..5d2b2c9712b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -910,10 +910,6 @@ bitcoin_chainstate_LDADD = \
   $(LIBLEVELDB) \
   $(LIBLEVELDB_SSE42) \
   $(LIBMEMENV)
-
-# Required for obj/build.h to be generated first.
-# More details: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html
-bitcoin_chainstate-clientversion.$(OBJEXT): obj/build.h
 #
 
 # bitcoinconsensus library #

From 29e54c183ac835dfd321bc76c1d2c99a80fea6be Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Thu, 28 Sep 2023 12:58:04 -0700
Subject: [PATCH 115/187] Revert "build: Add example bitcoin-chainstate
 executable"

This reverts commit 095aa6ca37bf0bd5c5e221bab779978a99b2a34c.
---
 .gitignore                 |   1 -
 configure.ac               |  13 --
 src/Makefile.am            |  96 --------------
 src/bitcoin-chainstate.cpp | 262 -------------------------------------
 4 files changed, 372 deletions(-)
 delete mode 100644 src/bitcoin-chainstate.cpp

diff --git a/.gitignore b/.gitignore
index fcb8fddf63b..905ea6dd7d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,7 +9,6 @@ src/elements-gui
 src/elements-node
 src/elements-tx
 src/elements-util
-src/elements-chainstate
 src/elements-wallet
 src/test/fuzz/fuzz
 src/test/test_bitcoin
diff --git a/configure.ac b/configure.ac
index 33ecd77f83a..287efda2c7f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,7 +24,6 @@ BITCOIN_GUI_NAME=elements-qt
 BITCOIN_CLI_NAME=elements-cli
 BITCOIN_TX_NAME=elements-tx
 BITCOIN_UTIL_NAME=elements-util
-BITCOIN_CHAINSTATE_NAME=elements-chainstate
 BITCOIN_WALLET_TOOL_NAME=elements-wallet
 dnl Multi Process
 BITCOIN_MP_NODE_NAME=elements-node
@@ -655,12 +654,6 @@ AC_ARG_ENABLE([util-util],
   [build_bitcoin_util=$enableval],
   [build_bitcoin_util=$build_bitcoin_utils])
 
-AC_ARG_ENABLE([experimental-util-chainstate],
-  [AS_HELP_STRING([--enable-experimental-util-chainstate],
-  [build experimental bitcoin-chainstate executable (default=no)])],
-  [build_bitcoin_chainstate=$enableval],
-  [build_bitcoin_chainstate=no])
-
 AC_ARG_WITH([libs],
   [AS_HELP_STRING([--with-libs],
   [build libraries (default=yes)])],
@@ -1283,7 +1276,6 @@ if test "$enable_fuzz" = "yes"; then
   build_bitcoin_cli=no
   build_bitcoin_tx=no
   build_bitcoin_util=no
-  build_bitcoin_chainstate=no
   build_bitcoin_wallet=no
   build_bitcoind=no
   build_bitcoin_libs=no
@@ -1648,10 +1640,6 @@ AC_MSG_CHECKING([whether to build bitcoin-util])
 AM_CONDITIONAL([BUILD_BITCOIN_UTIL], [test $build_bitcoin_util = "yes"])
 AC_MSG_RESULT($build_bitcoin_util)
 
-AC_MSG_CHECKING([whether to build experimental bitcoin-chainstate])
-AM_CONDITIONAL([BUILD_BITCOIN_CHAINSTATE], [test $build_bitcoin_chainstate = "yes"])
-AC_MSG_RESULT($build_bitcoin_chainstate)
-
 AC_MSG_CHECKING([whether to build libraries])
 AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test $build_bitcoin_libs = "yes"])
 if test "$build_bitcoin_libs" = "yes"; then
@@ -1872,7 +1860,6 @@ AC_SUBST(BITCOIN_GUI_NAME)
 AC_SUBST(BITCOIN_CLI_NAME)
 AC_SUBST(BITCOIN_TX_NAME)
 AC_SUBST(BITCOIN_UTIL_NAME)
-AC_SUBST(BITCOIN_CHAINSTATE_NAME)
 AC_SUBST(BITCOIN_WALLET_TOOL_NAME)
 AC_SUBST(BITCOIN_MP_NODE_NAME)
 AC_SUBST(BITCOIN_MP_GUI_NAME)
diff --git a/src/Makefile.am b/src/Makefile.am
index 5d2b2c9712b..3bcecf55ddf 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -106,10 +106,6 @@ if BUILD_BITCOIN_UTIL
   bin_PROGRAMS += elements-util
 endif
 
-if BUILD_BITCOIN_CHAINSTATE
-  bin_PROGRAMS += bitcoin-chainstate
-endif
-
 .PHONY: FORCE check-symbols check-security
 # bitcoin core #
 BITCOIN_CORE_H = \
@@ -820,98 +816,6 @@ elements_util_LDADD = \
   $(LIBSECP256K1)
 #
 
-# bitcoin-chainstate binary #
-bitcoin_chainstate_SOURCES = \
-  bitcoin-chainstate.cpp \
-  arith_uint256.cpp \
-  blockfilter.cpp \
-  chain.cpp \
-  chainparamsbase.cpp \
-  chainparams.cpp \
-  clientversion.cpp \
-  coins.cpp \
-  compat/glibcxx_sanity.cpp \
-  compressor.cpp \
-  consensus/merkle.cpp \
-  consensus/tx_check.cpp \
-  consensus/tx_verify.cpp \
-  core_read.cpp \
-  dbwrapper.cpp \
-  deploymentinfo.cpp \
-  deploymentstatus.cpp \
-  flatfile.cpp \
-  fs.cpp \
-  hash.cpp \
-  index/base.cpp \
-  index/blockfilterindex.cpp \
-  index/coinstatsindex.cpp \
-  init/common.cpp \
-  key.cpp \
-  logging.cpp \
-  netaddress.cpp \
-  node/blockstorage.cpp \
-  node/chainstate.cpp \
-  node/coinstats.cpp \
-  node/ui_interface.cpp \
-  policy/feerate.cpp \
-  policy/fees.cpp \
-  policy/packages.cpp \
-  policy/policy.cpp \
-  policy/rbf.cpp \
-  policy/settings.cpp \
-  pow.cpp \
-  primitives/block.cpp \
-  primitives/transaction.cpp \
-  pubkey.cpp \
-  random.cpp \
-  randomenv.cpp \
-  scheduler.cpp \
-  script/interpreter.cpp \
-  script/script.cpp \
-  script/script_error.cpp \
-  script/sigcache.cpp \
-  script/standard.cpp \
-  shutdown.cpp \
-  signet.cpp \
-  support/cleanse.cpp \
-  support/lockedpool.cpp \
-  sync.cpp \
-  threadinterrupt.cpp \
-  timedata.cpp \
-  txdb.cpp \
-  txmempool.cpp \
-  uint256.cpp \
-  util/asmap.cpp \
-  util/bytevectorhash.cpp \
-  util/getuniquepath.cpp \
-  util/hasher.cpp \
-  util/moneystr.cpp \
-  util/rbf.cpp \
-  util/serfloat.cpp \
-  util/settings.cpp \
-  util/strencodings.cpp \
-  util/syscall_sandbox.cpp \
-  util/system.cpp \
-  util/thread.cpp \
-  util/threadnames.cpp \
-  util/time.cpp \
-  util/tokenpipe.cpp \
-  validation.cpp \
-  validationinterface.cpp \
-  versionbits.cpp \
-  warnings.cpp
-bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
-bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
-bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
-bitcoin_chainstate_LDADD = \
-  $(LIBBITCOIN_CRYPTO) \
-  $(LIBUNIVALUE) \
-  $(LIBSECP256K1) \
-  $(LIBLEVELDB) \
-  $(LIBLEVELDB_SSE42) \
-  $(LIBMEMENV)
-#
-
 # bitcoinconsensus library #
 if BUILD_BITCOIN_LIBS
 include_HEADERS = script/bitcoinconsensus.h
diff --git a/src/bitcoin-chainstate.cpp b/src/bitcoin-chainstate.cpp
deleted file mode 100644
index f93197350d0..00000000000
--- a/src/bitcoin-chainstate.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-// Copyright (c) 2022 The Bitcoin Core developers
-// Distributed under the MIT software license, see the accompanying
-// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-//
-// The bitcoin-chainstate executable serves to surface the dependencies required
-// by a program wishing to use Bitcoin Core's consensus engine as it is right
-// now.
-//
-// DEVELOPER NOTE: Since this is a "demo-only", experimental, etc. executable,
-//                 it may diverge from Bitcoin Core's coding style.
-//
-// It is part of the libbitcoinkernel project.
-
-#include <chainparams.h>
-#include <consensus/validation.h>
-#include <core_io.h>
-#include <init/common.h>
-#include <node/blockstorage.h>
-#include <node/chainstate.h>
-#include <scheduler.h>
-#include <script/sigcache.h>
-#include <util/system.h>
-#include <util/thread.h>
-#include <validation.h>
-#include <validationinterface.h>
-
-#include <filesystem>
-#include <functional>
-#include <iosfwd>
-
-const std::function<std::string(const char*)> G_TRANSLATION_FUN = nullptr;
-
-int main(int argc, char* argv[])
-{
-    // SETUP: Argument parsing and handling
-    if (argc != 2) {
-        std::cerr
-            << "Usage: " << argv[0] << " DATADIR" << std::endl
-            << "Display DATADIR information, and process hex-encoded blocks on standard input." << std::endl
-            << std::endl
-            << "IMPORTANT: THIS EXECUTABLE IS EXPERIMENTAL, FOR TESTING ONLY, AND EXPECTED TO" << std::endl
-            << "           BREAK IN FUTURE VERSIONS. DO NOT USE ON YOUR ACTUAL DATADIR." << std::endl;
-        return 1;
-    }
-    std::filesystem::path abs_datadir = std::filesystem::absolute(argv[1]);
-    std::filesystem::create_directories(abs_datadir);
-    gArgs.ForceSetArg("-datadir", abs_datadir.string());
-
-
-    // SETUP: Misc Globals
-    SelectParams(CBaseChainParams::MAIN);
-    const CChainParams& chainparams = Params();
-
-    init::SetGlobals(); // ECC_Start, etc.
-
-    // Necessary for CheckInputScripts (eventually called by ProcessNewBlock),
-    // which will try the script cache first and fall back to actually
-    // performing the check with the signature cache.
-    InitSignatureCache();
-    InitScriptExecutionCache();
-
-
-    // SETUP: Scheduling and Background Signals
-    CScheduler scheduler{};
-    // Start the lightweight task scheduler thread
-    scheduler.m_service_thread = std::thread(util::TraceThread, "scheduler", [&] { scheduler.serviceQueue(); });
-
-    // Gather some entropy once per minute.
-    scheduler.scheduleEvery(RandAddPeriodic, std::chrono::minutes{1});
-
-    GetMainSignals().RegisterBackgroundSignalScheduler(scheduler);
-
-
-    // SETUP: Chainstate
-    ChainstateManager chainman;
-
-    auto rv = node::LoadChainstate(false,
-                                   std::ref(chainman),
-                                   nullptr,
-                                   false,
-                                   chainparams.GetConsensus(),
-                                   false,
-                                   2 << 20,
-                                   2 << 22,
-                                   (450 << 20) - (2 << 20) - (2 << 22),
-                                   false,
-                                   false,
-                                   []() { return false; });
-    if (rv.has_value()) {
-        std::cerr << "Failed to load Chain state from your datadir." << std::endl;
-        goto epilogue;
-    } else {
-        auto maybe_verify_error = node::VerifyLoadedChainstate(std::ref(chainman),
-                                                               false,
-                                                               false,
-                                                               chainparams.GetConsensus(),
-                                                               DEFAULT_CHECKBLOCKS,
-                                                               DEFAULT_CHECKLEVEL,
-                                                               /*get_unix_time_seconds=*/static_cast<int64_t (*)()>(GetTime));
-        if (maybe_verify_error.has_value()) {
-            std::cerr << "Failed to verify loaded Chain state from your datadir." << std::endl;
-            goto epilogue;
-        }
-    }
-
-    for (CChainState* chainstate : WITH_LOCK(::cs_main, return chainman.GetAll())) {
-        BlockValidationState state;
-        if (!chainstate->ActivateBestChain(state, nullptr)) {
-            std::cerr << "Failed to connect best block (" << state.ToString() << ")" << std::endl;
-            goto epilogue;
-        }
-    }
-
-    // Main program logic starts here
-    std::cout
-        << "Hello! I'm going to print out some information about your datadir." << std::endl
-        << "\t" << "Path: " << gArgs.GetDataDirNet() << std::endl
-        << "\t" << "Reindexing: " << std::boolalpha << node::fReindex.load() << std::noboolalpha << std::endl
-        << "\t" << "Snapshot Active: " << std::boolalpha << chainman.IsSnapshotActive() << std::noboolalpha << std::endl
-        << "\t" << "Active Height: " << chainman.ActiveHeight() << std::endl
-        << "\t" << "Active IBD: " << std::boolalpha << chainman.ActiveChainstate().IsInitialBlockDownload() << std::noboolalpha << std::endl;
-    {
-        CBlockIndex* tip = chainman.ActiveTip();
-        if (tip) {
-            std::cout << "\t" << tip->ToString() << std::endl;
-        }
-    }
-
-    for (std::string line; std::getline(std::cin, line);) {
-        if (line.empty()) {
-            std::cerr << "Empty line found" << std::endl;
-            break;
-        }
-
-        std::shared_ptr<CBlock> blockptr = std::make_shared<CBlock>();
-        CBlock& block = *blockptr;
-
-        if (!DecodeHexBlk(block, line)) {
-            std::cerr << "Block decode failed" << std::endl;
-            break;
-        }
-
-        if (block.vtx.empty() || !block.vtx[0]->IsCoinBase()) {
-            std::cerr << "Block does not start with a coinbase" << std::endl;
-            break;
-        }
-
-        uint256 hash = block.GetHash();
-        {
-            LOCK(cs_main);
-            const CBlockIndex* pindex = chainman.m_blockman.LookupBlockIndex(hash);
-            if (pindex) {
-                if (pindex->IsValid(BLOCK_VALID_SCRIPTS)) {
-                    std::cerr << "duplicate" << std::endl;
-                    break;
-                }
-                if (pindex->nStatus & BLOCK_FAILED_MASK) {
-                    std::cerr << "duplicate-invalid" << std::endl;
-                    break;
-                }
-            }
-        }
-
-        {
-            LOCK(cs_main);
-            const CBlockIndex* pindex = chainman.m_blockman.LookupBlockIndex(block.hashPrevBlock);
-            if (pindex) {
-                UpdateUncommittedBlockStructures(block, pindex, chainparams.GetConsensus());
-            }
-        }
-
-        // Adapted from rpc/mining.cpp
-        class submitblock_StateCatcher final : public CValidationInterface
-        {
-        public:
-            uint256 hash;
-            bool found;
-            BlockValidationState state;
-
-            explicit submitblock_StateCatcher(const uint256& hashIn) : hash(hashIn), found(false), state() {}
-
-        protected:
-            void BlockChecked(const CBlock& block, const BlockValidationState& stateIn) override
-            {
-                if (block.GetHash() != hash)
-                    return;
-                found = true;
-                state = stateIn;
-            }
-        };
-
-        bool new_block;
-        auto sc = std::make_shared<submitblock_StateCatcher>(block.GetHash());
-        RegisterSharedValidationInterface(sc);
-        bool accepted = chainman.ProcessNewBlock(chainparams, blockptr, /* force_processing */ true, /* new_block */ &new_block);
-        UnregisterSharedValidationInterface(sc);
-        if (!new_block && accepted) {
-            std::cerr << "duplicate" << std::endl;
-            break;
-        }
-        if (!sc->found) {
-            std::cerr << "inconclusive" << std::endl;
-            break;
-        }
-        std::cout << sc->state.ToString() << std::endl;
-        switch (sc->state.GetResult()) {
-        case BlockValidationResult::BLOCK_RESULT_UNSET:
-            std::cerr << "initial value. Block has not yet been rejected" << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_CONSENSUS:
-            std::cerr << "invalid by consensus rules (excluding any below reasons)" << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_RECENT_CONSENSUS_CHANGE:
-            std::cerr << "Invalid by a change to consensus rules more recent than SegWit." << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_CACHED_INVALID:
-            std::cerr << "this block was cached as being invalid and we didn't store the reason why" << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_INVALID_HEADER:
-            std::cerr << "invalid proof of work or time too old" << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_MUTATED:
-            std::cerr << "the block's data didn't match the data committed to by the PoW" << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_MISSING_PREV:
-            std::cerr << "We don't have the previous block the checked one is built on" << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_INVALID_PREV:
-            std::cerr << "A block this one builds on is invalid" << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_TIME_FUTURE:
-            std::cerr << "block timestamp was > 2 hours in the future (or our clock is bad)" << std::endl;
-            break;
-        case BlockValidationResult::BLOCK_CHECKPOINT:
-            std::cerr << "the block failed to meet one of our checkpoints" << std::endl;
-            break;
-        }
-    }
-
-epilogue:
-    // Without this precise shutdown sequence, there will be a lot of nullptr
-    // dereferencing and UB.
-    scheduler.stop();
-    if (chainman.m_load_block.joinable()) chainman.m_load_block.join();
-    StopScriptCheckWorkerThreads();
-
-    GetMainSignals().FlushBackgroundCallbacks();
-    {
-        LOCK(cs_main);
-        for (CChainState* chainstate : chainman.GetAll()) {
-            if (chainstate->CanFlushToDisk()) {
-                chainstate->ForceFlushStateToDisk();
-                chainstate->ResetCoinsViews();
-            }
-        }
-    }
-    GetMainSignals().UnregisterBackgroundSignalScheduler();
-
-    UnloadBlockIndex(nullptr, chainman);
-
-    init::UnsetGlobals();
-}

From d402d74cc4301bb149d034cd309253048482751b Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 10 Oct 2023 10:08:57 -0700
Subject: [PATCH 116/187] [23.x] Partially revert
 9c1052a5218e191fd23c0d9fc06f2fca34b03411 to use legacy wallets by default

---
 src/qt/forms/createwalletdialog.ui | 3 ---
 src/wallet/rpc/wallet.cpp          | 4 ++--
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/qt/forms/createwalletdialog.ui b/src/qt/forms/createwalletdialog.ui
index 56adbe17a5c..b11fb026b0f 100644
--- a/src/qt/forms/createwalletdialog.ui
+++ b/src/qt/forms/createwalletdialog.ui
@@ -107,9 +107,6 @@
         <property name="text">
          <string>Descriptor Wallet</string>
         </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
        </widget>
       </item>
       <item>
diff --git a/src/wallet/rpc/wallet.cpp b/src/wallet/rpc/wallet.cpp
index 550da97d8f4..135a7341f3a 100644
--- a/src/wallet/rpc/wallet.cpp
+++ b/src/wallet/rpc/wallet.cpp
@@ -314,7 +314,7 @@ static RPCHelpMan createwallet()
             {"blank", RPCArg::Type::BOOL, RPCArg::Default{false}, "Create a blank wallet. A blank wallet has no keys or HD seed. One can be set using sethdseed."},
             {"passphrase", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "Encrypt the wallet with this passphrase."},
             {"avoid_reuse", RPCArg::Type::BOOL, RPCArg::Default{false}, "Keep track of coin reuse, and treat dirty and clean coins differently with privacy considerations in mind."},
-            {"descriptors", RPCArg::Type::BOOL, RPCArg::Default{true}, "Create a native descriptor wallet. The wallet will use descriptors internally to handle address creation"},
+            {"descriptors", RPCArg::Type::BOOL, RPCArg::Default{false}, "Create a native descriptor wallet. The wallet will use descriptors internally to handle address creation"},
             {"load_on_startup", RPCArg::Type::BOOL, RPCArg::Optional::OMITTED_NAMED_ARG, "Save wallet name to persistent settings and load on startup. True to add wallet to startup list, false to remove, null to leave unchanged."},
             {"external_signer", RPCArg::Type::BOOL, RPCArg::Default{false}, "Use an external signer such as a hardware wallet. Requires -signer to be configured. Wallet creation will fail if keys cannot be fetched. Requires disable_private_keys and descriptors set to true."},
         },
@@ -356,7 +356,7 @@ static RPCHelpMan createwallet()
     if (!request.params[4].isNull() && request.params[4].get_bool()) {
         flags |= WALLET_FLAG_AVOID_REUSE;
     }
-    if (request.params[5].isNull() || request.params[5].get_bool()) {
+    if (!request.params[5].isNull() && request.params[5].get_bool()) {
 #ifndef USE_SQLITE
         throw JSONRPCError(RPC_WALLET_ERROR, "Compiled without sqlite support (required for descriptor wallets)");
 #endif

From 16903b121eaf1bef188200b75fbc76d2e2f1a5ae Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 10 Oct 2023 10:43:44 -0700
Subject: [PATCH 117/187] Bump version to 23.2.1rc2

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 287efda2c7f..ae7c29844c3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 1)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2023)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 17bf95a6184eecaa6267873530561756dd572e86 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 27 Oct 2023 08:41:44 -0700
Subject: [PATCH 118/187] Bump version to 23.2.1rc3

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index ae7c29844c3..deb7fe9bb06 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 1)
-define(_CLIENT_VERSION_RC, 2)
+define(_CLIENT_VERSION_RC, 3)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2023)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From d4ea89c6cb4be688479d8d452413531140a2ebf2 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Wed, 22 Nov 2023 05:08:27 -0800
Subject: [PATCH 119/187] Bump version to 23.2.1 final

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index deb7fe9bb06..5372961cf27 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 1)
-define(_CLIENT_VERSION_RC, 3)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2023)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From b4d966c28156640f290cf1472fb977e704c2c8b1 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 19 Apr 2024 11:03:39 -0700
Subject: [PATCH 120/187] Bump version to 23.2.2rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 5372961cf27..218d6ee4fc1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
-define(_CLIENT_VERSION_BUILD, 1)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_BUILD, 2)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2023)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 9ceab380844b839f653e182c91ff03410dc7aa05 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 19 Apr 2024 11:17:14 -0700
Subject: [PATCH 121/187] Update manpages

---
 doc/man/elements-cli.1    | 6 +++---
 doc/man/elements-qt.1     | 6 +++---
 doc/man/elements-tx.1     | 6 +++---
 doc/man/elements-util.1   | 6 +++---
 doc/man/elements-wallet.1 | 6 +++---
 doc/man/elementsd.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index f5b3dd725c8..d7b1b9a4156 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "September 2023" "elements-cli v23.2.1" "User Commands"
+.TH ELEMENTS-CLI "1" "April 2024" "elements-cli v23.2.2" "User Commands"
 .SH NAME
-elements-cli \- manual page for elements-cli v23.2.1
+elements-cli \- manual page for elements-cli v23.2.2
 .SH SYNOPSIS
 .B elements-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Elements Core\/\fR
@@ -15,7 +15,7 @@ elements-cli \- manual page for elements-cli v23.2.1
 .B elements-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Elements Core RPC client version v23.2.1
+Elements Core RPC client version v23.2.2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index ea0c253b94e..957b4bb59b7 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "September 2023" "elements-qt v23.2.1" "User Commands"
+.TH ELEMENTS-QT "1" "April 2024" "elements-qt v23.2.2" "User Commands"
 .SH NAME
-elements-qt \- manual page for elements-qt v23.2.1
+elements-qt \- manual page for elements-qt v23.2.2
 .SH SYNOPSIS
 .B elements-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Elements Core version v23.2.1
+Elements Core version v23.2.2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 50ea603dd1e..6015cba6e95 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "September 2023" "elements-tx v23.2.1" "User Commands"
+.TH ELEMENTS-TX "1" "April 2024" "elements-tx v23.2.2" "User Commands"
 .SH NAME
-elements-tx \- manual page for elements-tx v23.2.1
+elements-tx \- manual page for elements-tx v23.2.2
 .SH SYNOPSIS
 .B elements-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded Elements transaction\/\fR
@@ -9,7 +9,7 @@ elements-tx \- manual page for elements-tx v23.2.1
 .B elements-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded Elements transaction\/\fR
 .SH DESCRIPTION
-Elements Core elements\-tx utility version v23.2.1
+Elements Core elements\-tx utility version v23.2.2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index e2e2fea73b6..bef0f59f4a5 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "September 2023" "elements-util v23.2.1" "User Commands"
+.TH ELEMENTS-UTIL "1" "April 2024" "elements-util v23.2.2" "User Commands"
 .SH NAME
-elements-util \- manual page for elements-util v23.2.1
+elements-util \- manual page for elements-util v23.2.2
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Elements Core bitcoin\-util utility version v23.2.1
+Elements Core bitcoin\-util utility version v23.2.2
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index b2db03ea9af..ada52b0ce76 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "September 2023" "elements-wallet v23.2.1" "User Commands"
+.TH ELEMENTS-WALLET "1" "April 2024" "elements-wallet v23.2.2" "User Commands"
 .SH NAME
-elements-wallet \- manual page for elements-wallet v23.2.1
+elements-wallet \- manual page for elements-wallet v23.2.2
 .SH DESCRIPTION
-Elements Core elements\-wallet version v23.2.1
+Elements Core elements\-wallet version v23.2.2
 .PP
 elements\-wallet is an offline tool for creating and interacting with Elements Core wallet files.
 By default elements\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index 585abf7ecb2..1f68cb1bdd4 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "September 2023" "elementsd v23.2.1" "User Commands"
+.TH ELEMENTSD "1" "April 2024" "elementsd v23.2.2" "User Commands"
 .SH NAME
-elementsd \- manual page for elementsd v23.2.1
+elementsd \- manual page for elementsd v23.2.2
 .SH SYNOPSIS
 .B elementsd
 [\fI\,options\/\fR]                     \fI\,Start Elements Core\/\fR
 .SH DESCRIPTION
-Elements Core version v23.2.1
+Elements Core version v23.2.2
 .SH OPTIONS
 .HP
 \-?

From c1e9cb24bda056fa36addc9a6ccf196cfe4bd109 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 19 Apr 2024 11:17:26 -0700
Subject: [PATCH 122/187] Update copyright year to 2024

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 218d6ee4fc1..aa9008c6418 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 2)
 define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
-define(_COPYRIGHT_YEAR, 2023)
+define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])
 define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Elements Project]])
 AC_INIT([Elements Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/ElementsProject/elements/issues],[elements],[https://elementsproject.org/])

From 1af0936e07b33344ac5a6265bfd5363c3626589d Mon Sep 17 00:00:00 2001
From: James Dorfman <dorfmanjames@gmail.com>
Date: Fri, 14 Jun 2024 15:53:39 +0000
Subject: [PATCH 123/187] Bump version to 23.2.3rc1

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index aa9008c6418..e250b17efa3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 2)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From e31851df52fff4b20b68ab102c9e42fa9fa2ee91 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 23 Jul 2024 08:02:19 -0700
Subject: [PATCH 124/187] Update manpages

---
 doc/man/elements-cli.1    |  6 +++---
 doc/man/elements-qt.1     | 15 ++++++++++++---
 doc/man/elements-tx.1     |  6 +++---
 doc/man/elements-util.1   |  6 +++---
 doc/man/elements-wallet.1 |  6 +++---
 doc/man/elementsd.1       | 15 ++++++++++++---
 6 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index d7b1b9a4156..6956323e98f 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "April 2024" "elements-cli v23.2.2" "User Commands"
+.TH ELEMENTS-CLI "1" "July 2024" "elements-cli v23.2.2" "User Commands"
 .SH NAME
 elements-cli \- manual page for elements-cli v23.2.2
 .SH SYNOPSIS
@@ -271,8 +271,8 @@ pre\-dynamic federations. Only used for testing in custom chains.
 Per\-chain parameter that sets how long a particular fedpegscript is in
 effect for.
 .SH COPYRIGHT
-Copyright (C) 2009-2023 The Elements Project developers
-Copyright (C) 2009-2023 The Bitcoin Core developers
+Copyright (C) 2009-2024 The Elements Project developers
+Copyright (C) 2009-2024 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index 957b4bb59b7..407c3e5c457 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "April 2024" "elements-qt v23.2.2" "User Commands"
+.TH ELEMENTS-QT "1" "July 2024" "elements-qt v23.2.2" "User Commands"
 .SH NAME
 elements-qt \- manual page for elements-qt v23.2.2
 .SH SYNOPSIS
@@ -635,6 +635,10 @@ Append comment to the user agent string
 .PP
 Chain selection options:
 .HP
+\fB\-acceptdiscountct\fR
+.IP
+Accept discounted fees for Confidential Transactions (default: false)
+.HP
 \fB\-bech32_hrp\fR
 .IP
 The human\-readable part of the chain's bech32 encoding. (default: ex)
@@ -683,6 +687,11 @@ The proof\-of\-work limit value for the parent chain.
 Signed blockchain. Uses input of `\-signblockscript` to define what
 signatures are necessary to solve it.
 .HP
+\fB\-creatediscountct\fR
+.IP
+Create Confidential Transactions with discounted fees (default: false).
+Setting this to true will also set 'acceptdiscountct' to true.
+.HP
 \fB\-ct_bits\fR
 .IP
 The default number of hiding bits in a rangeproof. Will be exceeded to
@@ -1054,8 +1063,8 @@ trusted mainchain daemon using the `mainchain*` settings below.
 All functionaries must run this enabled. (default: true if chain
 has federated peg)
 .SH COPYRIGHT
-Copyright (C) 2009-2023 The Elements Project developers
-Copyright (C) 2009-2023 The Bitcoin Core developers
+Copyright (C) 2009-2024 The Elements Project developers
+Copyright (C) 2009-2024 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 6015cba6e95..b0eff5ac217 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "April 2024" "elements-tx v23.2.2" "User Commands"
+.TH ELEMENTS-TX "1" "July 2024" "elements-tx v23.2.2" "User Commands"
 .SH NAME
 elements-tx \- manual page for elements-tx v23.2.2
 .SH SYNOPSIS
@@ -240,8 +240,8 @@ set=NAME:JSON\-STRING
 .IP
 Set register NAME to given JSON\-STRING
 .SH COPYRIGHT
-Copyright (C) 2009-2023 The Elements Project developers
-Copyright (C) 2009-2023 The Bitcoin Core developers
+Copyright (C) 2009-2024 The Elements Project developers
+Copyright (C) 2009-2024 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index bef0f59f4a5..254fdf3e489 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "April 2024" "elements-util v23.2.2" "User Commands"
+.TH ELEMENTS-UTIL "1" "July 2024" "elements-util v23.2.2" "User Commands"
 .SH NAME
 elements-util \- manual page for elements-util v23.2.2
 .SH SYNOPSIS
@@ -155,8 +155,8 @@ grind
 .IP
 Perform proof of work on hex header string
 .SH COPYRIGHT
-Copyright (C) 2009-2023 The Elements Project developers
-Copyright (C) 2009-2023 The Bitcoin Core developers
+Copyright (C) 2009-2024 The Elements Project developers
+Copyright (C) 2009-2024 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index ada52b0ce76..2add5995841 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "April 2024" "elements-wallet v23.2.2" "User Commands"
+.TH ELEMENTS-WALLET "1" "July 2024" "elements-wallet v23.2.2" "User Commands"
 .SH NAME
 elements-wallet \- manual page for elements-wallet v23.2.2
 .SH DESCRIPTION
@@ -211,8 +211,8 @@ salvage
 Attempt to recover private keys from a corrupt wallet. Warning:
 \&'salvage' is experimental.
 .SH COPYRIGHT
-Copyright (C) 2009-2023 The Elements Project developers
-Copyright (C) 2009-2023 The Bitcoin Core developers
+Copyright (C) 2009-2024 The Elements Project developers
+Copyright (C) 2009-2024 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index 1f68cb1bdd4..2b39a8e94af 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "April 2024" "elementsd v23.2.2" "User Commands"
+.TH ELEMENTSD "1" "July 2024" "elementsd v23.2.2" "User Commands"
 .SH NAME
 elementsd \- manual page for elementsd v23.2.2
 .SH SYNOPSIS
@@ -635,6 +635,10 @@ Append comment to the user agent string
 .PP
 Chain selection options:
 .HP
+\fB\-acceptdiscountct\fR
+.IP
+Accept discounted fees for Confidential Transactions (default: false)
+.HP
 \fB\-bech32_hrp\fR
 .IP
 The human\-readable part of the chain's bech32 encoding. (default: ex)
@@ -683,6 +687,11 @@ The proof\-of\-work limit value for the parent chain.
 Signed blockchain. Uses input of `\-signblockscript` to define what
 signatures are necessary to solve it.
 .HP
+\fB\-creatediscountct\fR
+.IP
+Create Confidential Transactions with discounted fees (default: false).
+Setting this to true will also set 'acceptdiscountct' to true.
+.HP
 \fB\-ct_bits\fR
 .IP
 The default number of hiding bits in a rangeproof. Will be exceeded to
@@ -1032,8 +1041,8 @@ trusted mainchain daemon using the `mainchain*` settings below.
 All functionaries must run this enabled. (default: true if chain
 has federated peg)
 .SH COPYRIGHT
-Copyright (C) 2009-2023 The Elements Project developers
-Copyright (C) 2009-2023 The Bitcoin Core developers
+Copyright (C) 2009-2024 The Elements Project developers
+Copyright (C) 2009-2024 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.

From 329cfcdbb7ad614e06d67a2a0869a33e346df00a Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 23 Jul 2024 07:54:04 -0700
Subject: [PATCH 125/187] Bump version to 23.2.2 final

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index e250b17efa3..0c6abf19eb9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 2)
-define(_CLIENT_VERSION_RC, 2)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 64c6db401c58a3f222f46f9acfaed6aab139111a Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 23 Aug 2024 08:20:25 -0700
Subject: [PATCH 126/187] Bump version to 23.2.3rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 0c6abf19eb9..67345e80955 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
-define(_CLIENT_VERSION_BUILD, 2)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_BUILD, 3)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From bb9e44df57c2a60e62cdcf0914b4a484119060ba Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 23 Aug 2024 08:20:48 -0700
Subject: [PATCH 127/187] Update manpages

---
 doc/man/elements-cli.1    | 6 +++---
 doc/man/elements-qt.1     | 6 +++---
 doc/man/elements-tx.1     | 6 +++---
 doc/man/elements-util.1   | 6 +++---
 doc/man/elements-wallet.1 | 6 +++---
 doc/man/elementsd.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index 6956323e98f..7397871bcb4 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "July 2024" "elements-cli v23.2.2" "User Commands"
+.TH ELEMENTS-CLI "1" "August 2024" "elements-cli v23.2.3" "User Commands"
 .SH NAME
-elements-cli \- manual page for elements-cli v23.2.2
+elements-cli \- manual page for elements-cli v23.2.3
 .SH SYNOPSIS
 .B elements-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Elements Core\/\fR
@@ -15,7 +15,7 @@ elements-cli \- manual page for elements-cli v23.2.2
 .B elements-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Elements Core RPC client version v23.2.2
+Elements Core RPC client version v23.2.3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index 407c3e5c457..b302625e828 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "July 2024" "elements-qt v23.2.2" "User Commands"
+.TH ELEMENTS-QT "1" "August 2024" "elements-qt v23.2.3" "User Commands"
 .SH NAME
-elements-qt \- manual page for elements-qt v23.2.2
+elements-qt \- manual page for elements-qt v23.2.3
 .SH SYNOPSIS
 .B elements-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Elements Core version v23.2.2
+Elements Core version v23.2.3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index b0eff5ac217..2c366ef6fe5 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "July 2024" "elements-tx v23.2.2" "User Commands"
+.TH ELEMENTS-TX "1" "August 2024" "elements-tx v23.2.3" "User Commands"
 .SH NAME
-elements-tx \- manual page for elements-tx v23.2.2
+elements-tx \- manual page for elements-tx v23.2.3
 .SH SYNOPSIS
 .B elements-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded Elements transaction\/\fR
@@ -9,7 +9,7 @@ elements-tx \- manual page for elements-tx v23.2.2
 .B elements-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded Elements transaction\/\fR
 .SH DESCRIPTION
-Elements Core elements\-tx utility version v23.2.2
+Elements Core elements\-tx utility version v23.2.3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index 254fdf3e489..c2dc8ab7db0 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "July 2024" "elements-util v23.2.2" "User Commands"
+.TH ELEMENTS-UTIL "1" "August 2024" "elements-util v23.2.3" "User Commands"
 .SH NAME
-elements-util \- manual page for elements-util v23.2.2
+elements-util \- manual page for elements-util v23.2.3
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Elements Core bitcoin\-util utility version v23.2.2
+Elements Core bitcoin\-util utility version v23.2.3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index 2add5995841..e1745ef7abd 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "July 2024" "elements-wallet v23.2.2" "User Commands"
+.TH ELEMENTS-WALLET "1" "August 2024" "elements-wallet v23.2.3" "User Commands"
 .SH NAME
-elements-wallet \- manual page for elements-wallet v23.2.2
+elements-wallet \- manual page for elements-wallet v23.2.3
 .SH DESCRIPTION
-Elements Core elements\-wallet version v23.2.2
+Elements Core elements\-wallet version v23.2.3
 .PP
 elements\-wallet is an offline tool for creating and interacting with Elements Core wallet files.
 By default elements\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index 2b39a8e94af..74e9bf4b25a 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "July 2024" "elementsd v23.2.2" "User Commands"
+.TH ELEMENTSD "1" "August 2024" "elementsd v23.2.3" "User Commands"
 .SH NAME
-elementsd \- manual page for elementsd v23.2.2
+elementsd \- manual page for elementsd v23.2.3
 .SH SYNOPSIS
 .B elementsd
 [\fI\,options\/\fR]                     \fI\,Start Elements Core\/\fR
 .SH DESCRIPTION
-Elements Core version v23.2.2
+Elements Core version v23.2.3
 .SH OPTIONS
 .HP
 \-?

From 4b22137159d9b6590e9037a65858ff68dc39cb18 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Mon, 9 Sep 2024 09:44:53 -0700
Subject: [PATCH 128/187] Bump version to 23.2.3rc2

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 67345e80955..b158dcfbbe9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 3)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 1a559f6c4eb8568271489e6cc34bb9345a50b588 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 10 Sep 2024 07:13:49 -0700
Subject: [PATCH 129/187] Bump version to 23.2.3 final

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index b158dcfbbe9..0489b5bc533 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 3)
-define(_CLIENT_VERSION_RC, 2)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From bcf3a37cba49c65cc87e012c2ec0c4136337128b Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Wed, 25 Sep 2024 09:38:22 -0700
Subject: [PATCH 130/187] Bump version to 23.2.4rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 0489b5bc533..4839e4fe9cb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
-define(_CLIENT_VERSION_BUILD, 3)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_BUILD, 4)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 96a0957d9dccafd4b1fae81aee8410601918d751 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 8 Oct 2024 08:27:25 -0700
Subject: [PATCH 131/187] Revert "link: add simplicity to bitcoin-chainstate
 binary"

This reverts commit 2f2f3aac1e441af86cdf261914f64664a13e332f.
---
 src/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 96c2a3be3d3..803074c6636 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -939,7 +939,6 @@ bitcoin_chainstate_LDADD = \
   $(LIBBITCOIN_CRYPTO) \
   $(LIBUNIVALUE) \
   $(LIBSECP256K1) \
-  $(LIBELEMENTSSIMPLICITY) \
   $(LIBLEVELDB) \
   $(LIBLEVELDB_SSE42) \
   $(LIBMEMENV)

From 242a689d1a520abce52d457a21600328e29fd0cb Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Wed, 9 Oct 2024 13:07:34 -0700
Subject: [PATCH 132/187] Bump version to 23.2.4 final

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 4839e4fe9cb..1be6dadb9ae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 2)
 define(_CLIENT_VERSION_BUILD, 4)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 9a03e2b18d26343b0105c321a6e41fbea7ab5b90 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Mon, 18 Nov 2024 04:42:36 -0800
Subject: [PATCH 133/187] Bump version to 23.3.0-rc1

---
 configure.ac | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index 744653ad799..379ebbe695e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
-define(_CLIENT_VERSION_MINOR, 2)
-define(_CLIENT_VERSION_BUILD, 4)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_MINOR, 3)
+define(_CLIENT_VERSION_BUILD, 0)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From bb7f1ffc8e14136f1b0c1b8fd4fc4ed857917e19 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Mon, 18 Nov 2024 04:43:09 -0800
Subject: [PATCH 134/187] Update manpages

---
 doc/man/elements-cli.1    | 6 +++---
 doc/man/elements-qt.1     | 6 +++---
 doc/man/elements-tx.1     | 6 +++---
 doc/man/elements-util.1   | 6 +++---
 doc/man/elements-wallet.1 | 6 +++---
 doc/man/elementsd.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index 7397871bcb4..c2b9dcb9a55 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "August 2024" "elements-cli v23.2.3" "User Commands"
+.TH ELEMENTS-CLI "1" "November 2024" "elements-cli v23.3.0" "User Commands"
 .SH NAME
-elements-cli \- manual page for elements-cli v23.2.3
+elements-cli \- manual page for elements-cli v23.3.0
 .SH SYNOPSIS
 .B elements-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Elements Core\/\fR
@@ -15,7 +15,7 @@ elements-cli \- manual page for elements-cli v23.2.3
 .B elements-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Elements Core RPC client version v23.2.3
+Elements Core RPC client version v23.3.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index b302625e828..e600a8a02e1 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "August 2024" "elements-qt v23.2.3" "User Commands"
+.TH ELEMENTS-QT "1" "November 2024" "elements-qt v23.3.0" "User Commands"
 .SH NAME
-elements-qt \- manual page for elements-qt v23.2.3
+elements-qt \- manual page for elements-qt v23.3.0
 .SH SYNOPSIS
 .B elements-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Elements Core version v23.2.3
+Elements Core version v23.3.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 2c366ef6fe5..798bf385ef3 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "August 2024" "elements-tx v23.2.3" "User Commands"
+.TH ELEMENTS-TX "1" "November 2024" "elements-tx v23.3.0" "User Commands"
 .SH NAME
-elements-tx \- manual page for elements-tx v23.2.3
+elements-tx \- manual page for elements-tx v23.3.0
 .SH SYNOPSIS
 .B elements-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded Elements transaction\/\fR
@@ -9,7 +9,7 @@ elements-tx \- manual page for elements-tx v23.2.3
 .B elements-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded Elements transaction\/\fR
 .SH DESCRIPTION
-Elements Core elements\-tx utility version v23.2.3
+Elements Core elements\-tx utility version v23.3.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index c2dc8ab7db0..54e8ab0ff38 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "August 2024" "elements-util v23.2.3" "User Commands"
+.TH ELEMENTS-UTIL "1" "November 2024" "elements-util v23.3.0" "User Commands"
 .SH NAME
-elements-util \- manual page for elements-util v23.2.3
+elements-util \- manual page for elements-util v23.3.0
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Elements Core bitcoin\-util utility version v23.2.3
+Elements Core bitcoin\-util utility version v23.3.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index e1745ef7abd..aa41b2af59b 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "August 2024" "elements-wallet v23.2.3" "User Commands"
+.TH ELEMENTS-WALLET "1" "November 2024" "elements-wallet v23.3.0" "User Commands"
 .SH NAME
-elements-wallet \- manual page for elements-wallet v23.2.3
+elements-wallet \- manual page for elements-wallet v23.3.0
 .SH DESCRIPTION
-Elements Core elements\-wallet version v23.2.3
+Elements Core elements\-wallet version v23.3.0
 .PP
 elements\-wallet is an offline tool for creating and interacting with Elements Core wallet files.
 By default elements\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index 74e9bf4b25a..0fec023408b 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "August 2024" "elementsd v23.2.3" "User Commands"
+.TH ELEMENTSD "1" "November 2024" "elementsd v23.3.0" "User Commands"
 .SH NAME
-elementsd \- manual page for elementsd v23.2.3
+elementsd \- manual page for elementsd v23.3.0
 .SH SYNOPSIS
 .B elementsd
 [\fI\,options\/\fR]                     \fI\,Start Elements Core\/\fR
 .SH DESCRIPTION
-Elements Core version v23.2.3
+Elements Core version v23.3.0
 .SH OPTIONS
 .HP
 \-?

From f138566ad3d8b7236b3d3cc1703b92a0ec8b903b Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Mon, 16 Dec 2024 05:53:19 -0800
Subject: [PATCH 135/187] Wallet: avoid scanning after the last known block

---
 src/wallet/wallet.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 17f81dc7ac0..9399cb9a87b 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -1689,6 +1689,11 @@ CWallet::ScanResult CWallet::ScanForWalletTransactions(const uint256& start_bloc
         if (max_height && block_height >= *max_height) {
             break;
         }
+        if (block_height >= WITH_LOCK(cs_wallet, return GetLastBlockHeight())) {
+            WalletLogPrintf("Stopping scan. At block %d. Progress=%f\n", block_height, progress_current);
+            break;
+        }
+
         {
             if (!next_block) {
                 // break successfully when rescan has reached the tip, or

From eb150177f9fb624f7f4a617eaf0bdd4780d43dd4 Mon Sep 17 00:00:00 2001
From: Byron Hambly <bhambly@blockstream.com>
Date: Thu, 19 Dec 2024 10:15:31 +0200
Subject: [PATCH 136/187] fix: change to status_next in simplicity activation
 test

23 backports include a change from `status-next` to `status_next` in
getdeploymentinfo which is not present in master yet

see: https://github.com/ElementsProject/elements/pull/1266/commits/ef6a37b7c4b942f2db95809a299700e410b94460
---
 test/functional/feature_elements_simplicity_activation.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/test/functional/feature_elements_simplicity_activation.py b/test/functional/feature_elements_simplicity_activation.py
index 9ec041fcdca..58ac6df66ad 100755
--- a/test/functional/feature_elements_simplicity_activation.py
+++ b/test/functional/feature_elements_simplicity_activation.py
@@ -42,11 +42,11 @@ def test_activation(self, rpc, activation_height):
                 assert_equal (decode["versionHex"], "20000000")
 
         assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status"], "defined")
-        # The 1023rd block does not signal, but changes status-next to "started" from "defined"
+        # The 1023rd block does not signal, but changes status_next to "started" from "defined"
         # bitcoin PR #23508 changed bip9 status to the current block instead of the next block
         blocks = self.generatetoaddress(rpc, 1, rpc.getnewaddress())
         assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status"], "defined")
-        assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status-next"], "started")
+        assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status_next"], "started")
         assert_equal(rpc.getblockheader(blocks[0])["versionHex"], "20000000")
 
         blocks = self.generatetoaddress(rpc, 127, rpc.getnewaddress())
@@ -73,7 +73,7 @@ def test_activation(self, rpc, activation_height):
         # The 128th block then switches from "started" to "locked_in"
         blocks = self.generatetoaddress(rpc, 1, rpc.getnewaddress())
         assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status"], "started")
-        assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status-next"], "locked_in")
+        assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status_next"], "locked_in")
         assert_equal(rpc.getblockheader(blocks[0])["versionHex"], "21000000")
 
         # Run through another 128 blocks, which will go from "locked in" to "active" regardless of signalling
@@ -86,7 +86,7 @@ def test_activation(self, rpc, activation_height):
         block = block[:7] + "0" + block[8:] # turn off Simplicity signal
         rpc.submitblock(block)
         assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status"], "locked_in")
-        assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status-next"], "active")
+        assert_equal(rpc.getdeploymentinfo()["deployments"]["simplicity"]["bip9"]["status_next"], "active")
 
         # After the state is "active", signallng stops by default.
         blocks = self.generatetoaddress(rpc, 1, self.nodes[0].getnewaddress())

From cd306bf8d3a0e5d2a7ab78020c417346a071acdc Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 3 Jan 2025 06:50:18 -0800
Subject: [PATCH 137/187] Continue receiving data for the current messages,
 even when we select to send

---
 src/net.cpp | 7 ++++++-
 src/net.h   | 6 ++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/net.cpp b/src/net.cpp
index 1b0e7369a37..944c49cceb3 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -1425,6 +1425,9 @@ bool CConnman::GenerateSelectSet(const std::vector<CNode*>& nodes,
         //   write buffer in this case before receiving more. This avoids
         //   needlessly queueing received data, if the remote peer is not themselves
         //   receiving data. This means properly utilizing TCP flow control signalling.
+        //   This logic can put both nodes in deadlock if they are both "not receiving",
+        //   so there is a special case where we only stop receiving new messages, but
+        //   keep processing the in-progress ones.
         // * Otherwise, if there is space left in the receive buffer, select() for
         //   receiving data.
         // * Hand off all complete messages to the processor, to be handled without
@@ -1445,7 +1448,9 @@ bool CConnman::GenerateSelectSet(const std::vector<CNode*>& nodes,
         error_set.insert(pnode->m_sock->Get());
         if (select_send) {
             send_set.insert(pnode->m_sock->Get());
-            continue;
+            // Only stop receiving new messages, but keep processing incomplete ones
+            if (pnode->m_deserializer->IsEmpty())
+                continue;
         }
         if (select_recv) {
             recv_set.insert(pnode->m_sock->Get());
diff --git a/src/net.h b/src/net.h
index 421e3a85a15..d34912c62b5 100644
--- a/src/net.h
+++ b/src/net.h
@@ -313,6 +313,8 @@ class CNetMessage {
  */
 class TransportDeserializer {
 public:
+    // returns true if the current deserialization is empty
+    virtual bool IsEmpty() const = 0;
     // returns true if the current deserialization is complete
     virtual bool Complete() const = 0;
     // set the serialization context version
@@ -363,6 +365,10 @@ class V1TransportDeserializer final : public TransportDeserializer
         Reset();
     }
 
+    bool IsEmpty() const override
+    {
+        return (nHdrPos == 0);
+    }
     bool Complete() const override
     {
         if (!in_data)

From 3a3d77e3b6218895473c8b4a0d2a5a2c00963a2f Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Thu, 23 Jan 2025 05:49:16 -0800
Subject: [PATCH 138/187] Bump version to 23.3.0-rc2

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 379ebbe695e..55e57c58473 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 4faf6080ea3cf5dfbb1d5fd1568dad52118b2895 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Sun, 9 Feb 2025 09:29:40 -0800
Subject: [PATCH 139/187] Bump version to 23.3.0-rc3

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 55e57c58473..7fcc48ddc11 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 2)
+define(_CLIENT_VERSION_RC, 3)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From a5852ceccbb35d9525e302ceaaf8f4f7b3562b8c Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Sun, 9 Feb 2025 09:19:49 -0800
Subject: [PATCH 140/187] Update manpages

---
 doc/man/elements-cli.1    | 2 +-
 doc/man/elements-qt.1     | 5 +++--
 doc/man/elements-tx.1     | 2 +-
 doc/man/elements-util.1   | 2 +-
 doc/man/elements-wallet.1 | 2 +-
 doc/man/elementsd.1       | 5 +++--
 6 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index c2b9dcb9a55..cf491caf5eb 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "November 2024" "elements-cli v23.3.0" "User Commands"
+.TH ELEMENTS-CLI "1" "February 2025" "elements-cli v23.3.0" "User Commands"
 .SH NAME
 elements-cli \- manual page for elements-cli v23.3.0
 .SH SYNOPSIS
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index e600a8a02e1..3c82275a009 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "November 2024" "elements-qt v23.3.0" "User Commands"
+.TH ELEMENTS-QT "1" "February 2025" "elements-qt v23.3.0" "User Commands"
 .SH NAME
 elements-qt \- manual page for elements-qt v23.3.0
 .SH SYNOPSIS
@@ -637,7 +637,8 @@ Chain selection options:
 .HP
 \fB\-acceptdiscountct\fR
 .IP
-Accept discounted fees for Confidential Transactions (default: false)
+Accept discounted fees for Confidential Transactions (default: true in
+liquidtestnet and liquidv1, false otherwise)
 .HP
 \fB\-bech32_hrp\fR
 .IP
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 798bf385ef3..344c25200c6 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "November 2024" "elements-tx v23.3.0" "User Commands"
+.TH ELEMENTS-TX "1" "February 2025" "elements-tx v23.3.0" "User Commands"
 .SH NAME
 elements-tx \- manual page for elements-tx v23.3.0
 .SH SYNOPSIS
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index 54e8ab0ff38..593b63d5b08 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "November 2024" "elements-util v23.3.0" "User Commands"
+.TH ELEMENTS-UTIL "1" "February 2025" "elements-util v23.3.0" "User Commands"
 .SH NAME
 elements-util \- manual page for elements-util v23.3.0
 .SH SYNOPSIS
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index aa41b2af59b..c585bc4c777 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "November 2024" "elements-wallet v23.3.0" "User Commands"
+.TH ELEMENTS-WALLET "1" "February 2025" "elements-wallet v23.3.0" "User Commands"
 .SH NAME
 elements-wallet \- manual page for elements-wallet v23.3.0
 .SH DESCRIPTION
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index 0fec023408b..9513bc4a2b4 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "November 2024" "elementsd v23.3.0" "User Commands"
+.TH ELEMENTSD "1" "February 2025" "elementsd v23.3.0" "User Commands"
 .SH NAME
 elementsd \- manual page for elementsd v23.3.0
 .SH SYNOPSIS
@@ -637,7 +637,8 @@ Chain selection options:
 .HP
 \fB\-acceptdiscountct\fR
 .IP
-Accept discounted fees for Confidential Transactions (default: false)
+Accept discounted fees for Confidential Transactions (default: true in
+liquidtestnet and liquidv1, false otherwise)
 .HP
 \fB\-bech32_hrp\fR
 .IP

From 8592b9979902841b9ddf0d61fa8553d2e1f6d6fa Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Mon, 27 Jan 2025 11:54:40 -0800
Subject: [PATCH 141/187] Manually pick
 acc06bc91f80ddf4e015dcdf0b984bbdbfcb5ca3 from bitcoin

---
 ci/test/00_setup_env_mac_native_arm64.sh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ci/test/00_setup_env_mac_native_arm64.sh b/ci/test/00_setup_env_mac_native_arm64.sh
index 1a7be56d5bd..ade2d2787c1 100755
--- a/ci/test/00_setup_env_mac_native_arm64.sh
+++ b/ci/test/00_setup_env_mac_native_arm64.sh
@@ -7,7 +7,9 @@
 export LC_ALL=C.UTF-8
 
 export HOST=arm64-apple-darwin
-export PIP_PACKAGES="zmq"
+# Homebrew's python@3.12 is marked as externally managed (PEP 668).
+# Therefore, `--break-system-packages` is needed.
+export PIP_PACKAGES="--break-system-packages zmq"
 export GOAL="install"
 # ELEMENTS: add -fno-stack-check to work around clang bug on macos
 export BITCOIN_CONFIG="--with-gui --with-miniupnpc --with-natpmp --enable-reduce-exports CXXFLAGS=-fno-stack-check"

From 0d51ab83b95e76ce2c50c156699818a7e180b84c Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Sat, 8 Feb 2025 07:05:42 -0800
Subject: [PATCH 142/187] Apply acc06bc91f80ddf4e015dcdf0b984bbdbfcb5ca3 fix
 also to pip upgrade

---
 ci/test/04_install.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh
index 1e8ec188408..a555d94c185 100755
--- a/ci/test/04_install.sh
+++ b/ci/test/04_install.sh
@@ -11,7 +11,7 @@ if [[ $QEMU_USER_CMD == qemu-s390* ]]; then
 fi
 
 if [ "$CI_OS_NAME" == "macos" ]; then
-  sudo -H pip3 install --upgrade pip
+  sudo -H pip3 install --upgrade --break-system-packages pip
   # shellcheck disable=SC2086
   IN_GETOPT_BIN="$(brew --prefix gnu-getopt)/bin/getopt" ${CI_RETRY_EXE} pip3 install --user $PIP_PACKAGES
 fi

From 5fb1cea0a19d1fc7bd7d0c0df50f0852683b2857 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 18 Feb 2025 06:49:37 -0800
Subject: [PATCH 143/187] Bump version to 23.3.0-rc4

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 7fcc48ddc11..c6ae15632fa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 3)
+define(_CLIENT_VERSION_RC, 4)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 30eeffdfafe3f057066ab7fc7bc1558380fef426 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 4 Mar 2025 08:54:23 -0800
Subject: [PATCH 144/187] Bump version to 23.3.0-rc5

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index c6ae15632fa..bb591cf1362 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 4)
+define(_CLIENT_VERSION_RC, 5)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 06880d6b4304fd8b04be3c300b5668f57300c593 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Wed, 26 Mar 2025 05:18:32 -0700
Subject: [PATCH 145/187] Bump version to 23.3.0-rc6

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index bb591cf1362..a422dcbdf3e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 5)
+define(_CLIENT_VERSION_RC, 6)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From cf961fff2e728136d5a7e31bf920c702ee6b3f08 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Wed, 16 Apr 2025 05:01:21 -0700
Subject: [PATCH 146/187] Bump version to 23.3.0-rc7

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index a422dcbdf3e..4024dfa172c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 6)
+define(_CLIENT_VERSION_RC, 7)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2024)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 2dfe268f532fdda8fff179a62b21679682aecd3c Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Sun, 11 May 2025 16:05:10 -0700
Subject: [PATCH 147/187] Update copyright year to 2025

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 4024dfa172c..94eb11e9d0f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 0)
 define(_CLIENT_VERSION_RC, 7)
 define(_CLIENT_VERSION_IS_RELEASE, true)
-define(_COPYRIGHT_YEAR, 2024)
+define(_COPYRIGHT_YEAR, 2025)
 define(_COPYRIGHT_HOLDERS,[The %s developers])
 define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Elements Project]])
 AC_INIT([Elements Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/ElementsProject/elements/issues],[elements],[https://elementsproject.org/])

From 1effb589365c3161d26abe85a9d8dae7889d8344 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Sun, 11 May 2025 16:05:39 -0700
Subject: [PATCH 148/187] Bump version to 23.3.0

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 94eb11e9d0f..4bebb57dded 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 7)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2025)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 66835ed4c91de69fc55925e0cab6fbfe6939fafa Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Mon, 14 Jul 2025 16:37:40 -0700
Subject: [PATCH 149/187] Bump version to 23.3.1-rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index c126a6900ce..af56c9eb70f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
-define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_BUILD, 1)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2025)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From ec67e56d0eee26b5ceae7cff010eb5a9cbfd62ee Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 7 Oct 2025 07:54:16 -0700
Subject: [PATCH 150/187] Bump version to 23.3.1-rc2

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index af56c9eb70f..4f3990469b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 1)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2025)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 959a368701afa84902aad4b3f8bcc96713f9f97e Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Sat, 11 Oct 2025 08:22:14 -0700
Subject: [PATCH 151/187] Update manpages

---
 doc/man/elements-cli.1    | 21 ++++++++++++---------
 doc/man/elements-qt.1     | 35 +++++++++++++++++++----------------
 doc/man/elements-tx.1     | 21 ++++++++++++---------
 doc/man/elements-util.1   | 21 ++++++++++++---------
 doc/man/elements-wallet.1 | 21 ++++++++++++---------
 doc/man/elementsd.1       | 35 +++++++++++++++++++----------------
 6 files changed, 86 insertions(+), 68 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index cf491caf5eb..4022228b43f 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "February 2025" "elements-cli v23.3.0" "User Commands"
+.TH ELEMENTS-CLI "1" "October 2025" "elements-cli v23.3.1" "User Commands"
 .SH NAME
-elements-cli \- manual page for elements-cli v23.3.0
+elements-cli \- manual page for elements-cli v23.3.1
 .SH SYNOPSIS
 .B elements-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Elements Core\/\fR
@@ -15,7 +15,7 @@ elements-cli \- manual page for elements-cli v23.3.0
 .B elements-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Elements Core RPC client version v23.3.0
+Elements Core RPC client version v23.3.1
 .SH OPTIONS
 .HP
 \-?
@@ -152,7 +152,7 @@ signet, regtest, liquidv1, liquidv1test
 .IP
 Whether the chain includes the block height directly in the header, for
 easier validation of block height in low\-resource environments.
-(default: true)
+(default: 1)
 .HP
 \fB\-con_has_parent_chain\fR
 .IP
@@ -215,6 +215,10 @@ Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
 .PP
 Elements Options:
 .HP
+\fB\-acceptunlimitedissuances\fR
+.IP
+Allow unblinded issuance amounts to exceed 21 million units
+.HP
 \fB\-con_blocksubsidy\fR
 .IP
 Defines the amount of block subsidy to start with, at genesis block, in
@@ -231,15 +235,14 @@ from genesis)
 .HP
 \fB\-con_dyna_deploy_signal\fR
 .IP
-Whether to signal for the Dynamic Federations deployment (default:
-true).
+Whether to signal for the Dynamic Federations deployment (default: 1).
 .HP
 \fB\-con_elementsmode\fR
 .TP
 Use Elements\-like instead of Core\-like witness encoding.
 This is
 .IP
-required for CA/CT. (default: true)
+required for CA/CT. (default: 1)
 .HP
 \fB\-con_mandatorycoinbase\fR
 .IP
@@ -271,8 +274,8 @@ pre\-dynamic federations. Only used for testing in custom chains.
 Per\-chain parameter that sets how long a particular fedpegscript is in
 effect for.
 .SH COPYRIGHT
-Copyright (C) 2009-2024 The Elements Project developers
-Copyright (C) 2009-2024 The Bitcoin Core developers
+Copyright (C) 2009-2025 The Elements Project developers
+Copyright (C) 2009-2025 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index 3c82275a009..5f458952d2f 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "February 2025" "elements-qt v23.3.0" "User Commands"
+.TH ELEMENTS-QT "1" "October 2025" "elements-qt v23.3.1" "User Commands"
 .SH NAME
-elements-qt \- manual page for elements-qt v23.3.0
+elements-qt \- manual page for elements-qt v23.3.1
 .SH SYNOPSIS
 .B elements-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Elements Core version v23.3.0
+Elements Core version v23.3.1
 .SH OPTIONS
 .HP
 \-?
@@ -185,7 +185,7 @@ Create new files with system default permissions, instead of umask 077
 Trim old headers in memory (by default older than 2 epochs), removing
 blocksigning and dynafed\-related fields. Saves memory, but blocks
 us from serving blocks or headers to peers, and removes trimmed
-fields from some JSON RPC outputs. (default: false)
+fields from some JSON RPC outputs. (default: 0)
 .HP
 \fB\-txindex\fR
 .IP
@@ -637,8 +637,8 @@ Chain selection options:
 .HP
 \fB\-acceptdiscountct\fR
 .IP
-Accept discounted fees for Confidential Transactions (default: true in
-liquidtestnet and liquidv1, false otherwise)
+Accept discounted fees for Confidential Transactions (default: 1 in
+liquidtestnet and liquidv1, 0 otherwise)
 .HP
 \fB\-bech32_hrp\fR
 .IP
@@ -658,7 +658,7 @@ signet, regtest, liquidv1, liquidv1test
 .IP
 Whether the chain includes the block height directly in the header, for
 easier validation of block height in low\-resource environments.
-(default: true)
+(default: 1)
 .HP
 \fB\-con_has_parent_chain\fR
 .IP
@@ -690,8 +690,8 @@ signatures are necessary to solve it.
 .HP
 \fB\-creatediscountct\fR
 .IP
-Create Confidential Transactions with discounted fees (default: false).
-Setting this to true will also set 'acceptdiscountct' to true.
+Create Confidential Transactions with discounted fees (default: 0).
+Setting this to 1 will also set 'acceptdiscountct' to 1.
 .HP
 \fB\-ct_bits\fR
 .IP
@@ -945,6 +945,10 @@ Show splash screen on startup (default: 1)
 .PP
 Elements Options:
 .HP
+\fB\-acceptunlimitedissuances\fR
+.IP
+Allow unblinded issuance amounts to exceed 21 million units
+.HP
 \fB\-assetdir\fR
 .IP
 Entries of pet names of assets, in this format:asset=<hex>:<label>.
@@ -975,15 +979,14 @@ from genesis)
 .HP
 \fB\-con_dyna_deploy_signal\fR
 .IP
-Whether to signal for the Dynamic Federations deployment (default:
-true).
+Whether to signal for the Dynamic Federations deployment (default: 1).
 .HP
 \fB\-con_elementsmode\fR
 .TP
 Use Elements\-like instead of Core\-like witness encoding.
 This is
 .IP
-required for CA/CT. (default: true)
+required for CA/CT. (default: 1)
 .HP
 \fB\-con_mandatorycoinbase\fR
 .IP
@@ -1061,11 +1064,11 @@ effect for.
 .IP
 Validate peg\-in claims. An RPC connection will be attempted to the
 trusted mainchain daemon using the `mainchain*` settings below.
-All functionaries must run this enabled. (default: true if chain
-has federated peg)
+All functionaries must run this enabled. (default: 1 if chain has
+federated peg)
 .SH COPYRIGHT
-Copyright (C) 2009-2024 The Elements Project developers
-Copyright (C) 2009-2024 The Bitcoin Core developers
+Copyright (C) 2009-2025 The Elements Project developers
+Copyright (C) 2009-2025 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 344c25200c6..09477ab729c 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "February 2025" "elements-tx v23.3.0" "User Commands"
+.TH ELEMENTS-TX "1" "October 2025" "elements-tx v23.3.1" "User Commands"
 .SH NAME
-elements-tx \- manual page for elements-tx v23.3.0
+elements-tx \- manual page for elements-tx v23.3.1
 .SH SYNOPSIS
 .B elements-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded Elements transaction\/\fR
@@ -9,7 +9,7 @@ elements-tx \- manual page for elements-tx v23.3.0
 .B elements-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded Elements transaction\/\fR
 .SH DESCRIPTION
-Elements Core elements\-tx utility version v23.3.0
+Elements Core elements\-tx utility version v23.3.1
 .SH OPTIONS
 .HP
 \-?
@@ -45,7 +45,7 @@ signet, regtest, liquidv1, liquidv1test
 .IP
 Whether the chain includes the block height directly in the header, for
 easier validation of block height in low\-resource environments.
-(default: true)
+(default: 1)
 .HP
 \fB\-con_has_parent_chain\fR
 .IP
@@ -108,6 +108,10 @@ Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
 .PP
 Elements Options:
 .HP
+\fB\-acceptunlimitedissuances\fR
+.IP
+Allow unblinded issuance amounts to exceed 21 million units
+.HP
 \fB\-con_blocksubsidy\fR
 .IP
 Defines the amount of block subsidy to start with, at genesis block, in
@@ -124,15 +128,14 @@ from genesis)
 .HP
 \fB\-con_dyna_deploy_signal\fR
 .IP
-Whether to signal for the Dynamic Federations deployment (default:
-true).
+Whether to signal for the Dynamic Federations deployment (default: 1).
 .HP
 \fB\-con_elementsmode\fR
 .TP
 Use Elements\-like instead of Core\-like witness encoding.
 This is
 .IP
-required for CA/CT. (default: true)
+required for CA/CT. (default: 1)
 .HP
 \fB\-con_mandatorycoinbase\fR
 .IP
@@ -240,8 +243,8 @@ set=NAME:JSON\-STRING
 .IP
 Set register NAME to given JSON\-STRING
 .SH COPYRIGHT
-Copyright (C) 2009-2024 The Elements Project developers
-Copyright (C) 2009-2024 The Bitcoin Core developers
+Copyright (C) 2009-2025 The Elements Project developers
+Copyright (C) 2009-2025 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index 593b63d5b08..43ff4d7c291 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "February 2025" "elements-util v23.3.0" "User Commands"
+.TH ELEMENTS-UTIL "1" "October 2025" "elements-util v23.3.1" "User Commands"
 .SH NAME
-elements-util \- manual page for elements-util v23.3.0
+elements-util \- manual page for elements-util v23.3.1
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Elements Core bitcoin\-util utility version v23.3.0
+Elements Core bitcoin\-util utility version v23.3.1
 .SH OPTIONS
 .HP
 \-?
@@ -30,7 +30,7 @@ signet, regtest, liquidv1, liquidv1test
 .IP
 Whether the chain includes the block height directly in the header, for
 easier validation of block height in low\-resource environments.
-(default: true)
+(default: 1)
 .HP
 \fB\-con_has_parent_chain\fR
 .IP
@@ -93,6 +93,10 @@ Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
 .PP
 Elements Options:
 .HP
+\fB\-acceptunlimitedissuances\fR
+.IP
+Allow unblinded issuance amounts to exceed 21 million units
+.HP
 \fB\-con_blocksubsidy\fR
 .IP
 Defines the amount of block subsidy to start with, at genesis block, in
@@ -109,15 +113,14 @@ from genesis)
 .HP
 \fB\-con_dyna_deploy_signal\fR
 .IP
-Whether to signal for the Dynamic Federations deployment (default:
-true).
+Whether to signal for the Dynamic Federations deployment (default: 1).
 .HP
 \fB\-con_elementsmode\fR
 .TP
 Use Elements\-like instead of Core\-like witness encoding.
 This is
 .IP
-required for CA/CT. (default: true)
+required for CA/CT. (default: 1)
 .HP
 \fB\-con_mandatorycoinbase\fR
 .IP
@@ -155,8 +158,8 @@ grind
 .IP
 Perform proof of work on hex header string
 .SH COPYRIGHT
-Copyright (C) 2009-2024 The Elements Project developers
-Copyright (C) 2009-2024 The Bitcoin Core developers
+Copyright (C) 2009-2025 The Elements Project developers
+Copyright (C) 2009-2025 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index c585bc4c777..9ca9a9fe1f5 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "February 2025" "elements-wallet v23.3.0" "User Commands"
+.TH ELEMENTS-WALLET "1" "October 2025" "elements-wallet v23.3.1" "User Commands"
 .SH NAME
-elements-wallet \- manual page for elements-wallet v23.3.0
+elements-wallet \- manual page for elements-wallet v23.3.1
 .SH DESCRIPTION
-Elements Core elements\-wallet version v23.3.0
+Elements Core elements\-wallet version v23.3.1
 .PP
 elements\-wallet is an offline tool for creating and interacting with Elements Core wallet files.
 By default elements\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
@@ -69,7 +69,7 @@ signet, regtest, liquidv1, liquidv1test
 .IP
 Whether the chain includes the block height directly in the header, for
 easier validation of block height in low\-resource environments.
-(default: true)
+(default: 1)
 .HP
 \fB\-con_has_parent_chain\fR
 .IP
@@ -132,6 +132,10 @@ Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR.
 .PP
 Elements Options:
 .HP
+\fB\-acceptunlimitedissuances\fR
+.IP
+Allow unblinded issuance amounts to exceed 21 million units
+.HP
 \fB\-con_blocksubsidy\fR
 .IP
 Defines the amount of block subsidy to start with, at genesis block, in
@@ -148,15 +152,14 @@ from genesis)
 .HP
 \fB\-con_dyna_deploy_signal\fR
 .IP
-Whether to signal for the Dynamic Federations deployment (default:
-true).
+Whether to signal for the Dynamic Federations deployment (default: 1).
 .HP
 \fB\-con_elementsmode\fR
 .TP
 Use Elements\-like instead of Core\-like witness encoding.
 This is
 .IP
-required for CA/CT. (default: true)
+required for CA/CT. (default: 1)
 .HP
 \fB\-con_mandatorycoinbase\fR
 .IP
@@ -211,8 +214,8 @@ salvage
 Attempt to recover private keys from a corrupt wallet. Warning:
 \&'salvage' is experimental.
 .SH COPYRIGHT
-Copyright (C) 2009-2024 The Elements Project developers
-Copyright (C) 2009-2024 The Bitcoin Core developers
+Copyright (C) 2009-2025 The Elements Project developers
+Copyright (C) 2009-2025 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index 9513bc4a2b4..b079955b826 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "February 2025" "elementsd v23.3.0" "User Commands"
+.TH ELEMENTSD "1" "October 2025" "elementsd v23.3.1" "User Commands"
 .SH NAME
-elementsd \- manual page for elementsd v23.3.0
+elementsd \- manual page for elementsd v23.3.1
 .SH SYNOPSIS
 .B elementsd
 [\fI\,options\/\fR]                     \fI\,Start Elements Core\/\fR
 .SH DESCRIPTION
-Elements Core version v23.3.0
+Elements Core version v23.3.1
 .SH OPTIONS
 .HP
 \-?
@@ -185,7 +185,7 @@ Create new files with system default permissions, instead of umask 077
 Trim old headers in memory (by default older than 2 epochs), removing
 blocksigning and dynafed\-related fields. Saves memory, but blocks
 us from serving blocks or headers to peers, and removes trimmed
-fields from some JSON RPC outputs. (default: false)
+fields from some JSON RPC outputs. (default: 0)
 .HP
 \fB\-txindex\fR
 .IP
@@ -637,8 +637,8 @@ Chain selection options:
 .HP
 \fB\-acceptdiscountct\fR
 .IP
-Accept discounted fees for Confidential Transactions (default: true in
-liquidtestnet and liquidv1, false otherwise)
+Accept discounted fees for Confidential Transactions (default: 1 in
+liquidtestnet and liquidv1, 0 otherwise)
 .HP
 \fB\-bech32_hrp\fR
 .IP
@@ -658,7 +658,7 @@ signet, regtest, liquidv1, liquidv1test
 .IP
 Whether the chain includes the block height directly in the header, for
 easier validation of block height in low\-resource environments.
-(default: true)
+(default: 1)
 .HP
 \fB\-con_has_parent_chain\fR
 .IP
@@ -690,8 +690,8 @@ signatures are necessary to solve it.
 .HP
 \fB\-creatediscountct\fR
 .IP
-Create Confidential Transactions with discounted fees (default: false).
-Setting this to true will also set 'acceptdiscountct' to true.
+Create Confidential Transactions with discounted fees (default: 0).
+Setting this to 1 will also set 'acceptdiscountct' to 1.
 .HP
 \fB\-ct_bits\fR
 .IP
@@ -923,6 +923,10 @@ Accept command line and JSON\-RPC commands
 .PP
 Elements Options:
 .HP
+\fB\-acceptunlimitedissuances\fR
+.IP
+Allow unblinded issuance amounts to exceed 21 million units
+.HP
 \fB\-assetdir\fR
 .IP
 Entries of pet names of assets, in this format:asset=<hex>:<label>.
@@ -953,15 +957,14 @@ from genesis)
 .HP
 \fB\-con_dyna_deploy_signal\fR
 .IP
-Whether to signal for the Dynamic Federations deployment (default:
-true).
+Whether to signal for the Dynamic Federations deployment (default: 1).
 .HP
 \fB\-con_elementsmode\fR
 .TP
 Use Elements\-like instead of Core\-like witness encoding.
 This is
 .IP
-required for CA/CT. (default: true)
+required for CA/CT. (default: 1)
 .HP
 \fB\-con_mandatorycoinbase\fR
 .IP
@@ -1039,11 +1042,11 @@ effect for.
 .IP
 Validate peg\-in claims. An RPC connection will be attempted to the
 trusted mainchain daemon using the `mainchain*` settings below.
-All functionaries must run this enabled. (default: true if chain
-has federated peg)
+All functionaries must run this enabled. (default: 1 if chain has
+federated peg)
 .SH COPYRIGHT
-Copyright (C) 2009-2024 The Elements Project developers
-Copyright (C) 2009-2024 The Bitcoin Core developers
+Copyright (C) 2009-2025 The Elements Project developers
+Copyright (C) 2009-2025 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.

From 343bd60ce2dd42e1deb084431b26847be4cc9282 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Mon, 10 Nov 2025 04:42:58 -0800
Subject: [PATCH 152/187] Bump version to 23.3.1-rc3

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 4f3990469b3..3ec0342b780 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 1)
-define(_CLIENT_VERSION_RC, 2)
+define(_CLIENT_VERSION_RC, 3)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2025)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From b46e2db7058a242aa50ea702dfcac5e3cd8dcbc0 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 11 Nov 2025 00:13:37 -0800
Subject: [PATCH 153/187] Bump version to 23.3.1

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 3ec0342b780..21343371982 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 1)
-define(_CLIENT_VERSION_RC, 3)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2025)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 8ea4b7aae98e865dc380889759fed634469c5ae0 Mon Sep 17 00:00:00 2001
From: merge-script <fanquake@gmail.com>
Date: Thu, 26 Jun 2025 17:33:23 +0100
Subject: [PATCH 154/187] Merge bitcoin/bitcoin#32530: node: cap `-maxmempool`
 and `-dbcache` values for 32-bit

9f8e7b0b3b787b873045a4a8194e77d0b0a2b3b6 node: cap -dbcache to 1GiB on 32-bit architectures (Antoine Poinsot)
2c43b6adebbfabb3c8dd82fe821ce0a5d6173b3b init: cap -maxmempool to 500 MB on 32-bit systems (Antoine Poinsot)

Pull request description:

  32-bit architecture is limited to 4GiB of RAM, so it doesn't make sense to set a too high value. A too high value could cause an OOM unbeknownst to the user a while after startup as mempool / dbcache fills.

ACKs for top commit:
  achow101:
    ACK 9f8e7b0b3b787b873045a4a8194e77d0b0a2b3b6
  instagibbs:
    utACK 9f8e7b0b3b787b873045a4a8194e77d0b0a2b3b6
  dergoegge:
    Code review ACK 9f8e7b0b3b787b873045a4a8194e77d0b0a2b3b6
  glozow:
    utACK 9f8e7b0b3b787b873045a4a8194e77d0b0a2b3b6

Tree-SHA512: cc7541b2c0040fc21a43916caec464dfb443af808f4e85deffa1187448ffff6edb0d69f9ebdb43915d145b8b4694d8465afe548f88da53ccebc9ce4b7c34b735
---
 src/init.cpp        | 5 +++++
 src/node/caches.cpp | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/src/init.cpp b/src/init.cpp
index 6459921d239..6d33eb3fdeb 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -131,6 +131,7 @@ static const bool DEFAULT_REST_ENABLE = false;
 #endif
 
 static const char* DEFAULT_ASMAP_FILENAME="ip_asn.map";
+static constexpr int MAX_32BIT_MEMPOOL_MB{500};
 
 /**
  * The PID file facilities.
@@ -976,6 +977,10 @@ bool AppInitParameterInteraction(const ArgsManager& args)
     int64_t nMempoolSizeMin = args.GetIntArg("-limitdescendantsize", DEFAULT_DESCENDANT_SIZE_LIMIT) * 1000 * 40;
     if (nMempoolSizeMax < 0 || nMempoolSizeMax < nMempoolSizeMin)
         return InitError(strprintf(_("-maxmempool must be at least %d MB"), std::ceil(nMempoolSizeMin / 1000000.0)));
+    constexpr bool is_32bit{sizeof(void*) == 4};
+    if (is_32bit && nMempoolSizeMax > MAX_32BIT_MEMPOOL_MB * 1000000) {
+        return InitError(strprintf(_("-maxmempool is set to %i but can't be over %i MB on 32-bit systems"), std::ceil(nMempoolSizeMax / 1000000.0), MAX_32BIT_MEMPOOL_MB));
+    }
     // incremental relay fee sets the minimum feerate increase necessary for BIP 125 replacement in the mempool
     // and the amount the mempool min fee increases above the feerate of txs evicted due to mempool limiting.
     if (args.IsArgSet("-incrementalrelayfee")) {
diff --git a/src/node/caches.cpp b/src/node/caches.cpp
index f168332ee65..8250d06af84 100644
--- a/src/node/caches.cpp
+++ b/src/node/caches.cpp
@@ -8,12 +8,16 @@
 #include <util/system.h>
 #include <validation.h>
 
+//! Maximum dbcache size on 32-bit systems.
+static constexpr int64_t MAX_32BIT_DBCACHE = 1ULL << 30;  // 1 GiB
+
 namespace node {
 CacheSizes CalculateCacheSizes(const ArgsManager& args, size_t n_indexes)
 {
     int64_t nTotalCache = (args.GetIntArg("-dbcache", nDefaultDbCache) << 20);
     nTotalCache = std::max(nTotalCache, nMinDbCache << 20); // total cache cannot be less than nMinDbCache
     nTotalCache = std::min(nTotalCache, nMaxDbCache << 20); // total cache cannot be greater than nMaxDbcache
+    if (sizeof(void*) == 4) nTotalCache = std::min(nTotalCache, MAX_32BIT_DBCACHE);
     CacheSizes sizes;
     sizes.block_tree_db = std::min(nTotalCache / 8, nMaxBlockDBCache << 20);
     nTotalCache -= sizes.block_tree_db;

From 0cb5c660bb159e45368a308d516fc3e8dcf657b8 Mon Sep 17 00:00:00 2001
From: merge-script <gloriajzhao@gmail.com>
Date: Fri, 8 Aug 2025 14:18:04 -0400
Subject: [PATCH 155/187] Merge bitcoin/bitcoin#33105: validation: detect
 witness stripping without re-running Script checks

27aefac42505e9c083fa131d3d7edbec7803f3c0 validation: detect witness stripping without re-running Script checks (Antoine Poinsot)
2907b58834ab011f7dd0c42d323e440abd227c25 policy: introduce a helper to detect whether a transaction spends Segwit outputs (Antoine Poinsot)
eb073209db9efdbc2c94bc1f535a27ec6b20d954 qa: test witness stripping in p2p_segwit (Antoine Poinsot)

Pull request description:

  Since it was introduced in 4eb515574e1012bc8ea5dafc3042dcdf4c766f26 (#18044), the detection of a stripped witness relies on running the Script checks 3 times. In the worst case, this consists in running Script validation for every single input 3 times.

  Detection of a stripped witness is necessary because in this case wtxid==txid, and the transaction's wtxid must not be added to the reject filter or it could allow a malicious peer to interfere with txid-based orphan resolution as used in 1p1c package relay.

  However it is not necessary to run Script validation to detect a stripped witness (much less so doing it 3 times in a row). There are 3 types of witness program: defined program types (Taproot, P2WPKH and P2WSH), undefined types, and the Pay-to-anchor carve-out.

  For defined program types, Script validation with an empty witness will always fail (by consensus). For undefined program types, Script validation is always going to fail regardless of the witness (by standardness). For P2A, an empty witness is never going to lead to a failure.

  Therefore it holds that we can always detect a stripped witness without re-running Script validation. However this might lead to more "false positives" (cases where we return witness stripping for an otherwise invalid transaction) than the existing implementation. For instance a transaction with one P2PKH input with an invalid signature and one P2WPKH input with its witness stripped. The existing implementation would treat it as consensus invalid while the implementation in this PR would always consider it witness stripped.

  h/t AJ: this essentially implements a variant of https://github.com/bitcoin/bitcoin/pull/33066#issuecomment-3135258539.

ACKs for top commit:
  sipa:
    re-ACK 27aefac42505e9c083fa131d3d7edbec7803f3c0
  Crypt-iQ:
    re-ACK 27aefac42505e9c083fa131d3d7edbec7803f3c0
  glozow:
    reACK 27aefac42505e9c083fa131d3d7edbec7803f3c0

Tree-SHA512: 70cf76b655b52bc8fa2759133315a3f11140844b6b80d9de3c95f592050978cc01a87bd2446e3a9c25cc872efea7659d6da3337b1a709511771fece206e9f149
---
 src/policy/policy.cpp          |  36 +++++++++
 src/policy/policy.h            |   5 ++
 src/test/transaction_tests.cpp | 138 +++++++++++++++++++++++++++++++++
 src/validation.cpp             |   9 +--
 test/functional/p2p_segwit.py  |  13 ++++
 5 files changed, 194 insertions(+), 7 deletions(-)

diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp
index b88cb53180e..2dc3296214b 100644
--- a/src/policy/policy.cpp
+++ b/src/policy/policy.cpp
@@ -326,6 +326,42 @@ bool IsIssuanceInMoneyRange(const CTransaction& tx)
     return true;
 }
 
+bool SpendsNonAnchorWitnessProg(const CTransaction& tx, const CCoinsViewCache& prevouts)
+{
+    if (tx.IsCoinBase()) {
+        return false;
+    }
+
+    int version;
+    std::vector<uint8_t> program;
+    for (const auto& txin: tx.vin) {
+        const auto& prev_spk{prevouts.AccessCoin(txin.prevout).out.scriptPubKey};
+
+        // Note this includes not-yet-defined witness programs.
+        if (prev_spk.IsWitnessProgram(version, program)) {
+            return true;
+        }
+
+        // For P2SH extract the redeem script and check if it spends a non-Taproot witness program. Note
+        // this is fine to call EvalScript (as done in AreInputsStandard/IsWitnessStandard) because this
+        // function is only ever called after IsStandardTx, which checks the scriptsig is pushonly.
+        if (prev_spk.IsPayToScriptHash()) {
+            // If EvalScript fails or results in an empty stack, the transaction is invalid by consensus.
+            std::vector <std::vector<uint8_t>> stack;
+            if (!EvalScript(stack, txin.scriptSig, SCRIPT_VERIFY_NONE, BaseSignatureChecker{}, SigVersion::BASE)
+                || stack.empty()) {
+                continue;
+            }
+            const CScript redeem_script{stack.back().begin(), stack.back().end()};
+            if (redeem_script.IsWitnessProgram(version, program)) {
+                return true;
+            }
+        }
+    }
+
+    return false;
+}
+
 int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost, unsigned int bytes_per_sigop)
 {
     return (std::max(nWeight, nSigOpCost * bytes_per_sigop) + WITNESS_SCALE_FACTOR - 1) / WITNESS_SCALE_FACTOR;
diff --git a/src/policy/policy.h b/src/policy/policy.h
index 14390dcf540..be684c9f4c3 100644
--- a/src/policy/policy.h
+++ b/src/policy/policy.h
@@ -128,6 +128,11 @@ bool AreInputsStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs)
 * Also enforce a maximum stack item size limit and no annexes for tapscript spends.
 */
 bool IsWitnessStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs);
+/**
+ * Check whether this transaction spends any witness program but P2A, including not-yet-defined ones.
+ * May return `false` early for consensus-invalid transactions.
+ */
+bool SpendsNonAnchorWitnessProg(const CTransaction& tx, const CCoinsViewCache& prevouts);
 
 /* ELEMENTS
 * Check if unblinded issuance/reissuance is in MoneyRange
diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp
index 68e0048dc63..e6e4ce0f709 100644
--- a/src/test/transaction_tests.cpp
+++ b/src/test/transaction_tests.cpp
@@ -979,4 +979,142 @@ BOOST_AUTO_TEST_CASE(test_IsStandard)
     }
 }
 
+/** Sanity check the return value of SpendsNonAnchorWitnessProg for various output types. */
+/**/
+BOOST_AUTO_TEST_CASE(spends_witness_prog)
+{
+    CCoinsView coins_dummy;
+    CCoinsViewCache coins(&coins_dummy);
+    CKey key;
+    key.MakeNewKey(true);
+    const CPubKey pubkey{key.GetPubKey()};
+    CMutableTransaction tx_create{}, tx_spend{};
+    tx_create.vout.emplace_back(CConfidentialAsset(CAsset{}), CConfidentialValue(CAmount(0)), CScript{});
+    uint256 txid{};
+    tx_spend.vin.emplace_back(txid, 0);
+    std::vector<std::vector<uint8_t>> sol_dummy;
+
+    // CNoDestination, PubKeyDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash,
+    // WitnessV1Taproot, PayToAnchor, WitnessUnknown.
+    static_assert(std::variant_size_v<CTxDestination> == 8);
+
+    // Go through all defined output types and sanity check SpendsNonAnchorWitnessProg.
+
+    // P2PKH
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(PKHash{pubkey});
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::PUBKEYHASH);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(!::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // P2SH
+    auto redeem_script{CScript{} << OP_1 << OP_CHECKSIG};
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(ScriptHash{redeem_script});
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::SCRIPTHASH);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    tx_spend.vin[0].scriptSig = CScript{} << OP_0 << ToByteVector(redeem_script);
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(!::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+    tx_spend.vin[0].scriptSig.clear();
+
+    // native P2WSH
+    const auto witness_script{CScript{} << OP_12 << OP_HASH160 << OP_DUP << OP_EQUAL};
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash{witness_script});
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::WITNESS_V0_SCRIPTHASH);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // P2SH-wrapped P2WSH
+    redeem_script = tx_create.vout[0].scriptPubKey;
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(ScriptHash(redeem_script));
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::SCRIPTHASH);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    tx_spend.vin[0].scriptSig = CScript{} << ToByteVector(redeem_script);
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+    tx_spend.vin[0].scriptSig.clear();
+    BOOST_CHECK(!::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // native P2WPKH
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(WitnessV0KeyHash{pubkey});
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::WITNESS_V0_KEYHASH);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // P2SH-wrapped P2WPKH
+    redeem_script = tx_create.vout[0].scriptPubKey;
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(ScriptHash(redeem_script));
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::SCRIPTHASH);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    tx_spend.vin[0].scriptSig = CScript{} << ToByteVector(redeem_script);
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+    tx_spend.vin[0].scriptSig.clear();
+    BOOST_CHECK(!::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // P2TR
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(WitnessV1Taproot{XOnlyPubKey{pubkey}});
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::WITNESS_V1_TAPROOT);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // P2SH-wrapped P2TR (undefined, non-standard)
+    redeem_script = tx_create.vout[0].scriptPubKey;
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(ScriptHash(redeem_script));
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::SCRIPTHASH);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    tx_spend.vin[0].scriptSig = CScript{} << ToByteVector(redeem_script);
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+    tx_spend.vin[0].scriptSig.clear();
+    BOOST_CHECK(!::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // Undefined version 1 witness program
+    WitnessUnknown wu = {1, 2, {}, CPubKey()};
+    auto program1 = std::vector<unsigned char>{0x42, 0x42};
+    std::copy(program1.begin(), program1.end(), wu.program);
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(wu);
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::WITNESS_UNKNOWN);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // P2SH-wrapped undefined version 1 witness program
+    redeem_script = tx_create.vout[0].scriptPubKey;
+    tx_create.vout[0].scriptPubKey = GetScriptForDestination(ScriptHash(redeem_script));
+    BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::SCRIPTHASH);
+    tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+    tx_spend.vin[0].scriptSig = CScript{} << ToByteVector(redeem_script);
+    AddCoins(coins, CTransaction{tx_create}, 0, false);
+    BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+    tx_spend.vin[0].scriptSig.clear();
+    BOOST_CHECK(!::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+    // Various undefined version >1 32-byte witness programs.
+    const auto program{ToByteVector(XOnlyPubKey{pubkey})};
+    for (int i{2}; i <= 16; ++i) {
+        wu = WitnessUnknown{static_cast<unsigned int>(i), static_cast<unsigned int>(program.size()), {}, CPubKey()};
+        std::copy(program.begin(), program.end(), wu.program);
+        tx_create.vout[0].scriptPubKey = GetScriptForDestination(wu);
+        BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::WITNESS_UNKNOWN);
+        tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+        AddCoins(coins, CTransaction{tx_create}, 0, false);
+        BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+
+        // It's also detected within P2SH.
+        redeem_script = tx_create.vout[0].scriptPubKey;
+        tx_create.vout[0].scriptPubKey = GetScriptForDestination(ScriptHash(redeem_script));
+        BOOST_CHECK_EQUAL(Solver(tx_create.vout[0].scriptPubKey, sol_dummy), TxoutType::SCRIPTHASH);
+        tx_spend.vin[0].prevout.hash = tx_create.GetHash();
+        tx_spend.vin[0].scriptSig = CScript{} << ToByteVector(redeem_script);
+        AddCoins(coins, CTransaction{tx_create}, 0, false);
+        BOOST_CHECK(::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+        tx_spend.vin[0].scriptSig.clear();
+        BOOST_CHECK(!::SpendsNonAnchorWitnessProg(CTransaction{tx_spend}, coins));
+    }
+}
+
 BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/validation.cpp b/src/validation.cpp
index 6ac82e3e983..f86f105c21b 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -1080,13 +1080,8 @@ bool MemPoolAccept::PolicyScriptChecks(const ATMPArgs& args, Workspace& ws)
     // Check input scripts and signatures.
     // This is done last to help prevent CPU exhaustion denial-of-service attacks.
     if (!CheckInputScripts(tx, state, m_view, scriptVerifyFlags, true, false, ws.m_precomputed_txdata)) {
-        // SCRIPT_VERIFY_CLEANSTACK requires SCRIPT_VERIFY_WITNESS, so we
-        // need to turn both off, and compare against just turning off CLEANSTACK
-        // to see if the failure is specifically due to witness validation.
-        TxValidationState state_dummy; // Want reported failures to be from first CheckInputScripts
-        if (!tx.HasWitness() && CheckInputScripts(tx, state_dummy, m_view, scriptVerifyFlags & ~(SCRIPT_VERIFY_WITNESS | SCRIPT_VERIFY_CLEANSTACK), true, false, ws.m_precomputed_txdata) &&
-                !CheckInputScripts(tx, state_dummy, m_view, scriptVerifyFlags & ~SCRIPT_VERIFY_CLEANSTACK, true, false, ws.m_precomputed_txdata)) {
-            // Only the witness is missing, so the transaction itself may be fine.
+        // Detect a failure due to a missing witness so that p2p code can handle rejection caching appropriately.
+        if (!tx.HasWitness() && SpendsNonAnchorWitnessProg(tx, m_view)) {
             state.Invalid(TxValidationResult::TX_WITNESS_STRIPPED,
                     state.GetRejectReason(), state.GetDebugMessage());
         }
diff --git a/test/functional/p2p_segwit.py b/test/functional/p2p_segwit.py
index b33630ca714..60c447ffcc2 100755
--- a/test/functional/p2p_segwit.py
+++ b/test/functional/p2p_segwit.py
@@ -721,6 +721,12 @@ def test_p2sh_witness(self):
                 expected_msgs=(spend_tx.hash, 'was not accepted: non-mandatory-script-verify-flag (Witness program was passed an empty witness)')):
             test_transaction_acceptance(self.nodes[0], self.test_node, spend_tx, with_witness=False, accepted=False)
 
+        # The transaction was detected as witness stripped above and not added to the reject
+        # filter. Trying again will check it again and result in the same error.
+        with self.nodes[0].assert_debug_log(
+                expected_msgs=[spend_tx.getwtxid() , 'was not accepted: non-mandatory-script-verify-flag (Witness program was passed an empty witness)']):
+            test_transaction_acceptance(self.nodes[0], self.test_node, spend_tx, with_witness=False, accepted=False)
+
         # Try to put the witness script in the scriptSig, should also fail.
         spend_tx.vin[0].scriptSig = CScript([p2wsh_pubkey, b'a'])
         spend_tx.rehash()
@@ -1317,6 +1323,13 @@ def test_tx_relay_after_segwit_activation(self):
         test_transaction_acceptance(self.nodes[0], self.test_node, tx2, with_witness=True, accepted=True)
         test_transaction_acceptance(self.nodes[0], self.test_node, tx3, with_witness=True, accepted=False)
 
+        # Now do the opposite: strip the witness entirely. This will be detected as witness stripping and
+        # the (w)txid won't be added to the reject filter: we can try again and get the same error.
+        tx3.wit.vtxinwit[0].scriptWitness.stack = []
+        reason = "was not accepted: non-mandatory-script-verify-flag (Witness program was passed an empty witness)"
+        test_transaction_acceptance(self.nodes[0], self.test_node, tx3, with_witness=False, accepted=False, reason=reason)
+        test_transaction_acceptance(self.nodes[0], self.test_node, tx3, with_witness=False, accepted=False, reason=reason)
+
         # Get rid of the extra witness, and verify acceptance.
         tx3.wit.vtxinwit[0].scriptWitness.stack = [witness_script]
         # Also check that old_node gets a tx announcement, even though this is

From eb64d2486f54d7ae07c722f344cae7db59892954 Mon Sep 17 00:00:00 2001
From: merge-script <fanquake@gmail.com>
Date: Mon, 11 Aug 2025 10:26:19 +0100
Subject: [PATCH 156/187] Merge bitcoin/bitcoin#32473: Introduce per-txin
 sighash midstate cache for legacy/p2sh/segwitv0 scripts

83950275eddacac56c58a7a3648ed435a5593328 qa: unit test sighash caching (Antoine Poinsot)
b221aa80a081579b8d3b460e3403f7ac0daa7139 qa: simple differential fuzzing for sighash with/without caching (Antoine Poinsot)
92af9f74d74e76681f7d98f293eab226972137b4 script: (optimization) introduce sighash midstate caching (Pieter Wuille)
8f3ddb0bccebc930836b4a6745a7cf29b41eb302 script: (refactor) prepare for introducing sighash midstate cache (Pieter Wuille)
9014d4016ad9351cb59b587541895e55f5d589cc tests: add sighash caching tests to feature_taproot (Pieter Wuille)

Pull request description:

  This introduces a per-txin cache for sighash midstate computation to the script interpreter for legacy (bare), P2SH, P2WSH, and (as collateral effect, but not actually useful) P2WPKH. This reduces the impact of certain types of quadratic hashing attacks that use standard transactions. It is not known to improve the situation for attacks involving non-standard transaction attacks.

  The cache works by remembering for each of the 6 sighash modes a `(scriptCode, midstate)` tuple, which gives a midstate `CSHA256` object right before the appending of the sighash type itself (to permit all 256, rather than just the 6 ones that match the modes). The midstate is only reused if the `scriptCode` matches. This works because - within a single input - only the sighash type and the `scriptCode` affect the actual sighash used.

  The PR implements two different approaches:
  * The initial commits introduce the caching effect always, for both consensus and relay relation validation. Despite being primarily intended for improving the situation for standard transactions only, I chose this approach as the code paths are already largely common between the two, and this approach I believe involves fewer code changes than a more targetted approach, and furthermore, it should not hurt (it may even help common multisig cases slightly).
  * The final commit changes the behavior to only using the cache for non-consensus script validation. I'm open to feedback about whether adding this commit is worth it.

  Functional tests are included that construct contrived cases with many sighash types (standard and non-standard ones) and `OP_CODESEPARATOR`s in all script types (including P2TR, which isn't modified by this PR).

ACKs for top commit:
  achow101:
    ACK 83950275eddacac56c58a7a3648ed435a5593328
  dergoegge:
    Code review ACK 83950275eddacac56c58a7a3648ed435a5593328
  darosior:
    re-ACK 83950275eddacac56c58a7a3648ed435a5593328

Tree-SHA512: 65ae8635429a4d563b19969bac8128038ac2cbe01d9c9946abd4cac3c0780974d1e8b9aae9bb83f414e5d247a59f4a18fef5b37d93ad59ed41b6f11c3fe05af4
---
 src/script/interpreter.cpp                    |  94 +++++++++++-----
 src/script/interpreter.h                      |  22 +++-
 src/test/fuzz/script_interpreter.cpp          |  27 +++++
 src/test/sighash_tests.cpp                    |  90 ++++++++++++++++
 test/functional/feature_taproot.py            | 100 ++++++++++++++++--
 test/functional/test_framework/wallet_util.py |  12 +++
 6 files changed, 311 insertions(+), 34 deletions(-)

diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp
index d01d4a1a874..138046199bf 100644
--- a/src/script/interpreter.cpp
+++ b/src/script/interpreter.cpp
@@ -2822,11 +2822,59 @@ bool SignatureHashSchnorr(uint256& hash_out, ScriptExecutionData& execdata, cons
     return true;
 }
 
+int SigHashCache::CacheIndex(int32_t hash_type) const noexcept
+{
+    // Note that we do not distinguish between BASE and WITNESS_V0 to determine the cache index,
+    // because no input can simultaneously use both.
+    return 8 * !!(hash_type & SIGHASH_RANGEPROOF) +                       // bit 3
+           3 * !!(hash_type & SIGHASH_ANYONECANPAY) +                    // bit 2
+           2 * ((hash_type & 0x1f) == SIGHASH_SINGLE) +                  // bit 1
+           1 * ((hash_type & 0x1f) == SIGHASH_NONE);                     // bit 0
+}
+
+bool SigHashCache::Load(int32_t hash_type, const CScript& script_code, CHashWriter& writer) const noexcept
+{
+    auto& entry = m_cache_entries[CacheIndex(hash_type)];
+    if (entry.has_value()) {
+        if (script_code == entry->first) {
+            writer.~CHashWriter();
+            new (&writer) CHashWriter(entry->second);
+            return true;
+        }
+    }
+    return false;
+}
+
+void SigHashCache::Store(int32_t hash_type, const CScript& script_code, const CHashWriter& writer) noexcept
+{
+    auto& entry = m_cache_entries[CacheIndex(hash_type)];
+    entry.emplace(script_code, writer);
+}
+
 template <class T>
-uint256 SignatureHash(const CScript& scriptCode, const T& txTo, unsigned int nIn, int nHashType, const CConfidentialValue& amount, SigVersion sigversion, unsigned int flags, const PrecomputedTransactionData* cache)
+uint256 SignatureHash(const CScript& scriptCode, const T& txTo, unsigned int nIn, int nHashType, const CConfidentialValue& amount, SigVersion sigversion, unsigned int flags, const PrecomputedTransactionData* cache, SigHashCache* sighash_cache)
 {
     assert(nIn < txTo.vin.size());
 
+    if (sigversion != SigVersion::WITNESS_V0) {
+        // Check for invalid use of SIGHASH_SINGLE
+        if ((nHashType & 0x1f) == SIGHASH_SINGLE) {
+            if (nIn >= txTo.vout.size()) {
+                //  nOut out of range
+                return uint256::ONE;
+            }
+        }
+    }
+
+    CHashWriter ss(SER_GETHASH, 0);
+
+    // Try to compute using cached SHA256 midstate.
+    if (sighash_cache && sighash_cache->Load(nHashType, scriptCode, ss)) {
+        // Add sighash type and hash.
+        ss << nHashType;
+        return ss.GetHash();
+    }
+
     if (sigversion == SigVersion::WITNESS_V0) {
         uint256 hashPrevouts;
         uint256 hashSequence;
@@ -2855,24 +2903,23 @@ uint256 SignatureHash(const CScript& scriptCode, const T& txTo, unsigned int nIn
                 hashRangeproofs = cacheready ? cache->hashRangeproofs : GetRangeproofsHash(txTo);
             }
         } else if ((nHashType & 0x1f) == SIGHASH_SINGLE && nIn < txTo.vout.size()) {
-            CHashWriter ss(SER_GETHASH, 0);
-            ss << txTo.vout[nIn];
-            hashOutputs = ss.GetHash();
+            CHashWriter inner_ss(SER_GETHASH, 0);
+            inner_ss << txTo.vout[nIn];
+            hashOutputs = inner_ss.GetHash();
 
             if (fRangeproof) {
-                CHashWriter ss(SER_GETHASH, 0);
+                CHashWriter inner_ss(SER_GETHASH, 0);
                 if (nIn < txTo.witness.vtxoutwit.size()) {
-                    ss << txTo.witness.vtxoutwit[nIn].vchRangeproof;
-                    ss << txTo.witness.vtxoutwit[nIn].vchSurjectionproof;
+                    inner_ss << txTo.witness.vtxoutwit[nIn].vchRangeproof;
+                    inner_ss << txTo.witness.vtxoutwit[nIn].vchSurjectionproof;
                 } else {
-                    ss << (unsigned char) 0;
-                    ss << (unsigned char) 0;
+                    inner_ss << (unsigned char) 0;
+                    inner_ss << (unsigned char) 0;
                 }
-                hashRangeproofs = ss.GetHash();
+                hashRangeproofs = inner_ss.GetHash();
             }
         }
 
-        CHashWriter ss(SER_GETHASH, 0);
         // Version
         ss << txTo.nVersion;
         // Input prevouts/nSequence (none/all, depending on flags)
@@ -2905,26 +2952,19 @@ uint256 SignatureHash(const CScript& scriptCode, const T& txTo, unsigned int nIn
         }
         // Locktime
         ss << txTo.nLockTime;
-        // Sighash type
-        ss << nHashType;
-
-        return ss.GetHash();
+    } else {
+        // Wrapper to serialize only the necessary parts of the transaction being signed
+        CTransactionSignatureSerializer<T> txTmp(txTo, scriptCode, nIn, nHashType, flags);
+        ss << txTmp;
     }
 
-    // Check for invalid use of SIGHASH_SINGLE
-    if ((nHashType & 0x1f) == SIGHASH_SINGLE) {
-        if (nIn >= txTo.vout.size()) {
-            //  nOut out of range
-            return uint256::ONE;
-        }
+    // If a cache object was provided, store the midstate there.
+    if (sighash_cache != nullptr) {
+        sighash_cache->Store(nHashType, scriptCode, ss);
     }
 
-    // Wrapper to serialize only the necessary parts of the transaction being signed
-    CTransactionSignatureSerializer<T> txTmp(txTo, scriptCode, nIn, nHashType, flags);
-
     // Serialize and hash
-    CHashWriter ss(SER_GETHASH, 0);
-    ss << txTmp << nHashType;
+    ss << nHashType;
     return ss.GetHash();
 }
 
@@ -2957,7 +2997,7 @@ bool GenericTransactionSignatureChecker<T>::CheckECDSASignature(const std::vecto
     // Witness sighashes need the amount.
     if (sigversion == SigVersion::WITNESS_V0 && amount.IsNull()) return HandleMissingData(m_mdb);
 
-    uint256 sighash = SignatureHash(scriptCode, *txTo, nIn, nHashType, amount, sigversion, flags, this->txdata);
+    uint256 sighash = SignatureHash(scriptCode, *txTo, nIn, nHashType, amount, sigversion, flags, this->txdata, &m_sighash_cache);
 
     if (!VerifyECDSASignature(vchSig, pubkey, sighash))
         return false;
diff --git a/src/script/interpreter.h b/src/script/interpreter.h
index 6ec8339d9c4..f2706646205 100644
--- a/src/script/interpreter.h
+++ b/src/script/interpreter.h
@@ -289,8 +289,27 @@ extern const CHashWriter HASHER_TAPSIGHASH_ELEMENTS; //!< Hasher with tag "TapSi
 extern const CHashWriter HASHER_TAPLEAF_ELEMENTS;    //!< Hasher with tag "TapLeaf" pre-fed to it.
 extern const CHashWriter HASHER_TAPBRANCH_ELEMENTS;  //!< Hasher with tag "TapBranch" pre-fed to it.
 
+/** Data structure to cache SHA256 midstates for the ECDSA sighash calculations
+ *  (bare, P2SH, P2WPKH, P2WSH). */
+class SigHashCache
+{
+    /** For each sighash mode (ALL, SINGLE, NONE, ALL|ANYONE, SINGLE|ANYONE, NONE|ANYONE, ALL|RANGEPROOF, SINGLE|RANGEPROOF, NONE|RANGEPROOF, ALL|ANYONE|RANGEPROOF, SINGLE|ANYONE|RANGEPROOF, NONE|ANYONE|RANGEPROOF),
+     *  optionally store a scriptCode which the hash is for, plus a midstate for the SHA256
+     *  computation just before adding the hash_type itself. */
+    std::optional<std::pair<CScript, CHashWriter>> m_cache_entries[16];
+
+    /** Given a hash_type, find which of the cache entries is to be used. */
+    int CacheIndex(int32_t hash_type) const noexcept;
+
+public:
+    /** Load into writer the SHA256 midstate if found in this cache. */
+    [[nodiscard]] bool Load(int32_t hash_type, const CScript& script_code, CHashWriter& writer) const noexcept;
+    /** Store into this cache object the provided SHA256 midstate. */
+    void Store(int32_t hash_type, const CScript& script_code, const CHashWriter& writer) noexcept;
+};
+
 template <class T>
-uint256 SignatureHash(const CScript& scriptCode, const T& txTo, unsigned int nIn, int nHashType, const CConfidentialValue& amount, SigVersion sigversion, unsigned int flags, const PrecomputedTransactionData* cache = nullptr);
+uint256 SignatureHash(const CScript& scriptCode, const T& txTo, unsigned int nIn, int nHashType, const CConfidentialValue& amount, SigVersion sigversion, unsigned int flags, const PrecomputedTransactionData* cache = nullptr, SigHashCache* sighash_cache = nullptr);
 
 class BaseSignatureChecker
 {
@@ -374,6 +393,7 @@ class GenericTransactionSignatureChecker : public BaseSignatureChecker
     unsigned int nIn;
     const CConfidentialValue amount;
     const PrecomputedTransactionData* txdata;
+    mutable SigHashCache m_sighash_cache;
 
 protected:
     virtual bool VerifyECDSASignature(const std::vector<unsigned char>& vchSig, const CPubKey& vchPubKey, const uint256& sighash) const;
diff --git a/src/test/fuzz/script_interpreter.cpp b/src/test/fuzz/script_interpreter.cpp
index 9f6f6729f8d..3818bb4b061 100644
--- a/src/test/fuzz/script_interpreter.cpp
+++ b/src/test/fuzz/script_interpreter.cpp
@@ -7,6 +7,7 @@
 #include <test/fuzz/FuzzedDataProvider.h>
 #include <test/fuzz/fuzz.h>
 #include <test/fuzz/util.h>
+#include <util/check.h>
 
 #include <cstdint>
 #include <optional>
@@ -39,3 +40,29 @@ FUZZ_TARGET(script_interpreter)
         (void)CastToBool(ConsumeRandomLengthByteVector(fuzzed_data_provider));
     }
 }
+
+/** Differential fuzzing for SignatureHash with and without cache. */
+
+FUZZ_TARGET(sighash_cache)
+{
+    FuzzedDataProvider provider(buffer.data(), buffer.size());
+
+    // Get inputs to the sighash function that won't change across types.
+    const auto scriptcode{ConsumeScript(provider)};
+    const auto tx{ConsumeTransaction(provider, std::nullopt)};
+    if (tx.vin.empty()) return;
+    const auto in_index{provider.ConsumeIntegralInRange<uint32_t>(0, tx.vin.size() - 1)};
+    const auto amount{ConsumeMoney(provider)};
+    const auto sigversion{(SigVersion)provider.ConsumeIntegralInRange(0, 1)};
+
+    // Check the sighash function will give the same result for 100 fuzzer-generated hash types whether or not a cache is
+    // provided. The cache is conserved across types to exercise cache hits.
+    SigHashCache sighash_cache{};
+    for (int i{0}; i < 100; ++i) {
+        const auto hash_type{((i & 2) == 0) ? provider.ConsumeIntegral<int8_t>() : provider.ConsumeIntegral<int32_t>()};
+        const auto nocache_res{SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, 0)};
+        const auto cache_res{SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, 0, nullptr, &sighash_cache)};
+        Assert(nocache_res == cache_res);
+    }
+}
+
diff --git a/src/test/sighash_tests.cpp b/src/test/sighash_tests.cpp
index 9c1c29b753d..06d0ed758ac 100644
--- a/src/test/sighash_tests.cpp
+++ b/src/test/sighash_tests.cpp
@@ -207,4 +207,94 @@ BOOST_AUTO_TEST_CASE(sighash_from_data)
         BOOST_CHECK_MESSAGE(sh.GetHex() == sigHashHex, strTest);
     }
 }
+
+BOOST_AUTO_TEST_CASE(sighash_caching)
+{
+    // Get a script, transaction and parameters as inputs to the sighash function.
+    CScript scriptcode;
+    RandomScript(scriptcode);
+    CScript diff_scriptcode{scriptcode};
+    diff_scriptcode << OP_1;
+    CMutableTransaction tx;
+    RandomTransaction(tx,false);
+    const auto in_index{static_cast<uint32_t>(InsecureRandRange(tx.vin.size()))};
+    const auto amount{CConfidentialValue(CAmount(10))};
+
+    // Exercise the sighash function under both legacy and segwit v0.
+    for (const auto sigversion: {SigVersion::BASE, SigVersion::WITNESS_V0}) {
+        // For each, run it against all the 6 standard hash types and a few additional random ones.
+        std::vector<int32_t> hash_types{{SIGHASH_ALL, SIGHASH_SINGLE, SIGHASH_NONE, SIGHASH_ALL | SIGHASH_ANYONECANPAY,
+                                          SIGHASH_SINGLE | SIGHASH_ANYONECANPAY, SIGHASH_NONE | SIGHASH_ANYONECANPAY,
+                                          SIGHASH_ANYONECANPAY, 0, std::numeric_limits<int32_t>::max()}};
+        for (int i{0}; i < 10; ++i) {
+            hash_types.push_back(i % 2 == 0 ? static_cast<int32_t>(InsecureRandRange(256)) : static_cast<int32_t>(g_insecure_rand_ctx.rand32()));
+        }
+
+        // Reuse the same cache across script types. This must not cause any issue as the cached value for one hash type must never
+        // be confused for another (instantiating the cache within the loop instead would prevent testing this).
+        SigHashCache cache;
+        for (const auto hash_type: hash_types) {
+            const bool expect_one{sigversion == SigVersion::BASE && ((hash_type & 0x1f) == SIGHASH_SINGLE) && in_index >= tx.vout.size()};
+
+            // The result of computing the sighash should be the same with or without cache.
+            const auto sighash_with_cache{SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0},nullptr, &cache)};
+            const auto sighash_no_cache{SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0}, nullptr, nullptr)};
+            BOOST_CHECK_EQUAL(sighash_with_cache, sighash_no_cache);
+
+            // Calling the cached version again should return the same value again.
+            BOOST_CHECK_EQUAL(sighash_with_cache, SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0}, nullptr, &cache));
+
+            // While here we might as well also check that the result for legacy is the same as for the old SignatureHash() function.
+            if (sigversion == SigVersion::BASE) {
+                BOOST_CHECK_EQUAL(sighash_with_cache, SignatureHashOld(scriptcode, CTransaction(tx), in_index, hash_type));
+            }
+
+            // Calling with a different scriptcode (for instance in case a CODESEP is encountered) will not return the cache value but
+            // overwrite it. The sighash will always be different except in case of legacy SIGHASH_SINGLE bug.
+            const auto sighash_with_cache2{SignatureHash(diff_scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0}, nullptr, &cache)};
+            const auto sighash_no_cache2{SignatureHash(diff_scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0}, nullptr, nullptr)};
+            BOOST_CHECK_EQUAL(sighash_with_cache2, sighash_no_cache2);
+            if (!expect_one) {
+                BOOST_CHECK_NE(sighash_with_cache, sighash_with_cache2);
+            } else {
+                BOOST_CHECK_EQUAL(sighash_with_cache, sighash_with_cache2);
+                BOOST_CHECK_EQUAL(sighash_with_cache, uint256::ONE);
+            }
+
+            // Calling the cached version again should return the same value again.
+            BOOST_CHECK_EQUAL(sighash_with_cache2, SignatureHash(diff_scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0}, nullptr, &cache));
+
+            // And if we store a different value for this scriptcode and hash type it will return that instead.
+            {
+                CHashWriter h{SER_GETHASH, 0};
+                h << 42;
+                cache.Store(hash_type, scriptcode, h);
+                const auto stored_hash{h.GetHash()};
+                BOOST_CHECK(cache.Load(hash_type, scriptcode, h));
+                const auto loaded_hash{h.GetHash()};
+                BOOST_CHECK_EQUAL(stored_hash, loaded_hash);
+            }
+
+            // And using this mutated cache with the sighash function will return the new value (except in the legacy SIGHASH_SINGLE bug
+            // case in which it'll return 1).
+            if (!expect_one) {
+                BOOST_CHECK_NE(SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0}, nullptr, &cache), sighash_with_cache);
+                CHashWriter h{SER_GETHASH, 0};
+                BOOST_CHECK(cache.Load(hash_type, scriptcode, h));
+                h << hash_type;
+                const auto new_hash{h.GetHash()};
+                BOOST_CHECK_EQUAL(SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0}, nullptr, &cache), new_hash);
+            } else {
+                BOOST_CHECK_EQUAL(SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, int32_t{0}, nullptr, &cache), uint256::ONE);
+            }
+
+            // Wipe the cache and restore the correct cached value for this scriptcode and hash_type before starting the next iteration.
+            CHashWriter dummy{SER_GETHASH, 0};
+            cache.Store(hash_type, diff_scriptcode, dummy);
+            (void)SignatureHash(scriptcode, tx, in_index, hash_type, amount, sigversion, 0, nullptr, &cache);
+            BOOST_CHECK(cache.Load(hash_type, scriptcode, dummy) || expect_one);
+        }
+    }
+}
+
 BOOST_AUTO_TEST_SUITE_END()
diff --git a/test/functional/feature_taproot.py b/test/functional/feature_taproot.py
index b720010dcb8..3cfc0225500 100755
--- a/test/functional/feature_taproot.py
+++ b/test/functional/feature_taproot.py
@@ -76,6 +76,7 @@
     OP_PUSHDATA1,
     OP_RETURN,
     OP_SWAP,
+    OP_TUCK,
     OP_VERIFY,
     SIGHASH_DEFAULT,
     SIGHASH_ALL,
@@ -99,6 +100,7 @@
 from test_framework.test_framework import BitcoinTestFramework
 from test_framework.util import assert_raises_rpc_error, assert_equal
 from test_framework import util
+from test_framework.wallet_util import generate_keypair
 from test_framework.key import generate_privkey, compute_xonly_pubkey, sign_schnorr, tweak_add_privkey, ECKey
 from test_framework.address import (
     hash160,
@@ -173,9 +175,9 @@ def get(ctx, name):
         ctx[name] = expr
     return expr.value
 
-def getter(name):
+def getter(name, **kwargs):
     """Return a callable that evaluates name in its passed context."""
-    return lambda ctx: get(ctx, name)
+    return lambda ctx: get({**ctx, **kwargs}, name)
 
 def override(expr, **kwargs):
     """Return a callable that evaluates expr in a modified context."""
@@ -219,7 +221,20 @@ def default_controlblock(ctx):
     """Default expression for "controlblock": combine leafversion, negflag, pubkey_internal, merklebranch."""
     return bytes([get(ctx, "leafversion") + get(ctx, "negflag")]) + get(ctx, "pubkey_internal") + get(ctx, "merklebranch")
 
-#ELEMENTS: taphash depends on genesis hash
+def default_scriptcode_suffix(ctx):
+    """Default expression for "scriptcode_suffix", the actually used portion of the scriptcode."""
+    scriptcode = get(ctx, "scriptcode")
+    codesepnum = get(ctx, "codesepnum")
+    if codesepnum == -1:
+        return scriptcode
+    codeseps = 0
+    for (opcode, data, sop_idx) in scriptcode.raw_iter():
+        if opcode == OP_CODESEPARATOR:
+            if codeseps == codesepnum:
+                return CScript(scriptcode[sop_idx+1:])
+            codeseps += 1
+    assert False
+
 def default_sigmsg(ctx):
     """Default expression for "sigmsg": depending on mode, compute BIP341, BIP143, or legacy sigmsg."""
     tx = get(ctx, "tx")
@@ -240,12 +255,12 @@ def default_sigmsg(ctx):
             return TaprootSignatureMsg(tx, utxos, hashtype, genesis_hash, idx, scriptpath=False, annex=annex)
     elif mode == "witv0":
         # BIP143 signature hash
-        scriptcode = get(ctx, "scriptcode")
+        scriptcode = get(ctx, "scriptcode_suffix")
         utxos = get(ctx, "utxos")
         return SegwitV0SignatureMsg(scriptcode, tx, idx, hashtype, utxos[idx].nValue, enable_sighash_rangeproof=False)
     else:
         # Pre-segwit signature hash
-        scriptcode = get(ctx, "scriptcode")
+        scriptcode = get(ctx, "scriptcode_suffix")
         return LegacySignatureMsg(scriptcode, tx, idx, hashtype, enable_sighash_rangeproof=False)[0]
 
 def default_sighash(ctx):
@@ -305,7 +320,12 @@ def default_hashtype_actual(ctx):
 
 def default_bytes_hashtype(ctx):
     """Default expression for "bytes_hashtype": bytes([hashtype_actual]) if not 0, b"" otherwise."""
-    return bytes([x for x in [get(ctx, "hashtype_actual")] if x != 0])
+    mode = get(ctx, "mode")
+    hashtype_actual = get(ctx, "hashtype_actual")
+    if mode != "taproot" or hashtype_actual != 0:
+        return bytes([hashtype_actual])
+    else:
+        return bytes()
 
 def default_sign(ctx):
     """Default expression for "sign": concatenation of signature and bytes_hashtype."""
@@ -385,6 +405,8 @@ def default_scriptsig(ctx):
     "key_tweaked": default_key_tweaked,
     # The tweak to use (None for script path spends, the actual tweak for key path spends).
     "tweak": default_tweak,
+    # The part of the scriptcode after the last executed OP_CODESEPARATOR.
+    "scriptcode_suffix": default_scriptcode_suffix,
     # The sigmsg value (preimage of sighash)
     "sigmsg": default_sigmsg,
     # The sighash value (32 bytes)
@@ -419,6 +441,8 @@ def default_scriptsig(ctx):
     "annex": None,
     # The codeseparator position (only when mode=="taproot").
     "codeseppos": -1,
+    # Which OP_CODESEPARATOR is the last executed one in the script (in legacy/P2SH/P2WSH).
+    "codesepnum": -1,
     # The redeemscript to add to the scriptSig (if P2SH; None implies not P2SH).
     "script_p2sh": None,
     # The script to add to the witness in (if P2WSH; None implies P2WPKH)
@@ -1200,6 +1224,70 @@ def predict_sigops_ratio(n, dummy_size):
                 standard = hashtype in VALID_SIGHASHES_ECDSA and (p2sh or witv0)
                 add_spender(spenders, "compat/nocsa", hashtype=hashtype, p2sh=p2sh, witv0=witv0, standard=standard, script=CScript([OP_IF, OP_11, pubkey1, OP_CHECKSIGADD, OP_12, OP_EQUAL, OP_ELSE, pubkey1, OP_CHECKSIG, OP_ENDIF]), key=eckey1, sigops_weight=4-3*witv0, inputs=[getter("sign"), b''], failure={"inputs": [getter("sign"), b'\x01']}, **ERR_UNDECODABLE)
 
+    # == sighash caching tests ==
+
+    # Sighash caching in legacy.
+    for p2sh in [False, True]:
+        for witv0 in [False, True]:
+            eckey1, pubkey1 = generate_keypair(compressed=compressed)
+            for _ in range(10):
+                # Construct a script with 20 checksig operations (10 sighash types, each 2 times),
+                # randomly ordered and interleaved with 4 OP_CODESEPARATORS.
+                ops = [1, 2, 3, 0x21, 0x42, 0x63, 0x81, 0x83, 0xe1, 0xc2, -1, -1] * 2
+                # Make sure no OP_CODESEPARATOR appears last.
+                while True:
+                    random.shuffle(ops)
+                    if ops[-1] != -1:
+                        break
+                script = [pubkey1]
+                inputs = []
+                codeseps = -1
+                for pos, op in enumerate(ops):
+                    if op == -1:
+                        codeseps += 1
+                        script.append(OP_CODESEPARATOR)
+                    elif pos + 1 != len(ops):
+                        script += [OP_TUCK, OP_CHECKSIGVERIFY]
+                        inputs.append(getter("sign", codesepnum=codeseps, hashtype=op))
+                    else:
+                        script += [OP_CHECKSIG]
+                        inputs.append(getter("sign", codesepnum=codeseps, hashtype=op))
+                inputs.reverse()
+                script = CScript(script)
+                add_spender(spenders, "sighashcache/legacy", p2sh=p2sh, witv0=witv0, standard=False, script=script, inputs=inputs, key=eckey1, sigops_weight=12*8*(4-3*witv0), no_fail=True)
+
+    # Sighash caching in tapscript.
+    for _ in range(10):
+        # Construct a script with 700 checksig operations (7 sighash types, each 100 times),
+        # randomly ordered and interleaved with 100 OP_CODESEPARATORS.
+        ops = [0, 1, 2, 3, 0x81, 0x82, 0x83, -1] * 100
+        # Make sure no OP_CODESEPARATOR appears last.
+        while True:
+            random.shuffle(ops)
+            if ops[-1] != -1:
+                 break
+        script = [pubs[1]]
+        inputs = []
+        opcount = 1
+        codeseppos = -1
+        for pos, op in enumerate(ops):
+            if op == -1:
+                codeseppos = opcount
+                opcount += 1
+                script.append(OP_CODESEPARATOR)
+            elif pos + 1 != len(ops):
+                opcount += 2
+                script += [OP_TUCK, OP_CHECKSIGVERIFY]
+                inputs.append(getter("sign", codeseppos=codeseppos, hashtype=op))
+            else:
+                opcount += 1
+                script += [OP_CHECKSIG]
+                inputs.append(getter("sign", codeseppos=codeseppos, hashtype=op))
+        inputs.reverse()
+        script = CScript(script)
+        tap = taproot_construct(pubs[0], [("leaf", script)])
+        add_spender(spenders, "sighashcache/taproot", tap=tap, leaf="leaf", inputs=inputs, standard=True, key=secs[1], no_fail=True)
+
     return spenders
 
 def spenders_taproot_inactive():
diff --git a/test/functional/test_framework/wallet_util.py b/test/functional/test_framework/wallet_util.py
index 74f23e7ee17..ed5b5528960 100755
--- a/test/functional/test_framework/wallet_util.py
+++ b/test/functional/test_framework/wallet_util.py
@@ -86,6 +86,18 @@ def get_generate_key():
                blinding_privkey=blinding_privkey,
                )
 
+def generate_keypair(compressed=True, wif=False):
+    """Generate a new random keypair and return the corresponding ECKey /
+    bytes objects. The private key can also be provided as WIF (wallet
+    import format) string instead, which is often useful for wallet RPC
+    interaction."""
+    privkey = ECKey()
+    privkey.generate(compressed)
+    pubkey = privkey.get_pubkey().get_bytes()
+    if wif:
+        privkey = bytes_to_wif(privkey.get_bytes(), compressed)
+    return privkey, pubkey
+
 def get_multisig(node):
     """Generate a fresh 2-of-3 multisig on node
 

From 817c68a64f50b73973ab816c1518e350b168e7e3 Mon Sep 17 00:00:00 2001
From: laanwj <126646+laanwj@users.noreply.github.com>
Date: Tue, 24 May 2022 19:27:58 +0200
Subject: [PATCH 157/187] Merge bitcoin/bitcoin#24464: logging: Add severity
 level to logs

e11cdc930375eaec8d737e116138b2f2018c099f  logging: Add log severity level to net.cpp (klementtan)
a8290649a6578df120a71c9493acdf071e010d96 logging: Add severity level to logs. (klementtan)

Pull request description:

  **Overview**: This PR introduces a new macro, `LogPrintLevel`, that allows developers to add logs with the severity level. Additionally, it will also print the log category if it is specified.

  Sample log:
  ```
  2022-03-04T16:41:15Z [opencon] [net:debug] trying connection XX.XX.XXX.XXX:YYYYY lastseen=2.7hrs
  ```

  **Motivation**: This feature was suggested in #20576 and I believe that it will bring the following benefits:
  * Allow for easier filtering of logs in `debug.log`
  * Can be extended to allow users to select the minimum level of logs they would like to view (not in the scope of this PR)

  **Details**:
  * New log format. `... [category:level]...`. ie:
    * Do not print category if `category == NONE`
    * Do not print level if `level == NONE`
    * If `category == NONE` and `level == NONE`, do not print any fields (current behaviour)
  * Previous logging functions:
    * `LogPrintf`:  no changes in log as it calls `LogPrintf_` with `category = NONE` and `level = NONE`
    * `LogPrint`: prints additional `[category]` field as it calls `LogPrintf_` with `category = category` and `level = NONE`
  * `net.cpp`: As a proof of concept, updated logs with obvious severity (ie prefixed with `Warning/Error:..`) to use the new logging with severity.

  **Testing**:
  * Compiling and running `bitcoind` with this PR should instantly display logs with the category name (ie `net/tor/...`)
  * Grepping for `net:debug` in `debug.log` should display the updated logs with severity level:
    <details>
    <summary>Code</summary>

    ```
    $ grep "net:debug" debug.log

    2022-03-04T16:41:15Z [opencon] [net:debug] trying connection XXX:YYY lastseen=2.7hrs
    2022-03-04T16:41:16Z [opencon] [net:debug] trying connection XXX:YYY lastseen=16.9hrs
    2022-03-04T16:41:17Z [opencon] [net:debug] trying connection XXX:YYY lastseen=93.2hrs
    2022-03-04T16:41:18Z [opencon] [net:debug] trying connection XXX:YYY lastseen=2.7hrs
    ```
    </details>

ACKs for top commit:
  laanwj:
    Code review and lightly tested ACK e11cdc930375eaec8d737e116138b2f2018c099f

Tree-SHA512: 89a8c86667ccc0688e5acfdbd399aac1f5bec9f978a160e40b0210b0d9b8fdc338479583fc5bd2e2bc785821363f174f578d52136d228e8f638a20abbf0a568f
---
 src/logging.cpp            | 109 +++++++++++++++++++++++++++++++-
 src/logging.h              |  35 ++++++++---
 src/net.cpp                |  24 ++++----
 src/test/logging_tests.cpp | 123 +++++++++++++++++++++++++++++++++++++
 4 files changed, 268 insertions(+), 23 deletions(-)

diff --git a/src/logging.cpp b/src/logging.cpp
index a5e5fdb4cd2..f1a86f0dcec 100644
--- a/src/logging.cpp
+++ b/src/logging.cpp
@@ -171,7 +171,7 @@ const CLogCategoryDesc LogCategories[] =
 
 bool GetLogCategory(BCLog::LogFlags& flag, const std::string& str)
 {
-    if (str == "") {
+    if (str.empty()) {
         flag = BCLog::ALL;
         return true;
     }
@@ -184,6 +184,91 @@ bool GetLogCategory(BCLog::LogFlags& flag, const std::string& str)
     return false;
 }
 
+std::string LogLevelToStr(BCLog::Level level)
+{
+    switch (level) {
+    case BCLog::Level::None:
+        return "none";
+    case BCLog::Level::Debug:
+        return "debug";
+    case BCLog::Level::Info:
+        return "info";
+    case BCLog::Level::Warning:
+        return "warning";
+    case BCLog::Level::Error:
+        return "error";
+    }
+    assert(false);
+}
+
+std::string LogCategoryToStr(BCLog::LogFlags category)
+{
+    // Each log category string representation should sync with LogCategories
+    switch (category) {
+    case BCLog::LogFlags::NONE:
+        return "none";
+    case BCLog::LogFlags::NET:
+        return "net";
+    case BCLog::LogFlags::TOR:
+        return "tor";
+    case BCLog::LogFlags::MEMPOOL:
+        return "mempool";
+    case BCLog::LogFlags::HTTP:
+        return "http";
+    case BCLog::LogFlags::BENCH:
+        return "bench";
+    case BCLog::LogFlags::ZMQ:
+        return "zmq";
+    case BCLog::LogFlags::WALLETDB:
+        return "walletdb";
+    case BCLog::LogFlags::RPC:
+        return "rpc";
+    case BCLog::LogFlags::ESTIMATEFEE:
+        return "estimatefee";
+    case BCLog::LogFlags::ADDRMAN:
+        return "addrman";
+    case BCLog::LogFlags::SELECTCOINS:
+        return "selectcoins";
+    case BCLog::LogFlags::REINDEX:
+        return "reindex";
+    case BCLog::LogFlags::CMPCTBLOCK:
+        return "cmpctblock";
+    case BCLog::LogFlags::RAND:
+        return "rand";
+    case BCLog::LogFlags::PRUNE:
+        return "prune";
+    case BCLog::LogFlags::PROXY:
+        return "proxy";
+    case BCLog::LogFlags::MEMPOOLREJ:
+        return "mempoolrej";
+    case BCLog::LogFlags::LIBEVENT:
+        return "libevent";
+    case BCLog::LogFlags::COINDB:
+        return "coindb";
+    case BCLog::LogFlags::QT:
+        return "qt";
+    case BCLog::LogFlags::LEVELDB:
+        return "leveldb";
+    case BCLog::LogFlags::VALIDATION:
+        return "validation";
+    case BCLog::LogFlags::I2P:
+        return "i2p";
+    case BCLog::LogFlags::IPC:
+        return "ipc";
+#ifdef DEBUG_LOCKCONTENTION
+    case BCLog::LogFlags::LOCK:
+        return "lock";
+#endif
+    case BCLog::LogFlags::UTIL:
+        return "util";
+    case BCLog::LogFlags::BLOCKSTORE:
+        return "blockstorage";
+    case BCLog::LogFlags::ALL:
+        return "all";
+    }
+    assert(false);
+}
+
 std::vector<LogCategory> BCLog::Logger::LogCategoriesList() const
 {
     // Sort log categories by alphabetical order.
@@ -249,11 +334,31 @@ namespace BCLog {
     }
 } // namespace BCLog
 
-void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, const int source_line)
+void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, const int source_line, const BCLog::LogFlags category, const BCLog::Level level)
 {
     StdLockGuard scoped_lock(m_cs);
     std::string str_prefixed = LogEscapeMessage(str);
 
+    if ((category != LogFlags::NONE || level != Level::None) && m_started_new_line) {
+        std::string s{"["};
+
+        if (category != LogFlags::NONE) {
+            s += LogCategoryToStr(category);
+        }
+
+        if (category != LogFlags::NONE && level != Level::None) {
+            // Only add separator if both flag and level are not NONE
+            s += ":";
+        }
+
+        if (level != Level::None) {
+            s += LogLevelToStr(level);
+        }
+
+        s += "] ";
+        str_prefixed.insert(0, s);
+    }
+
     if (m_log_sourcelocations && m_started_new_line) {
         str_prefixed.insert(0, "[" + RemovePrefix(source_file, "./") + ":" + ToString(source_line) + "] [" + logging_function + "] ");
     }
diff --git a/src/logging.h b/src/logging.h
index ae8cad906c9..421c3395c2c 100644
--- a/src/logging.h
+++ b/src/logging.h
@@ -67,6 +67,13 @@ namespace BCLog {
         BLOCKSTORE  = (1 << 26),
         ALL         = ~(uint32_t)0,
     };
+    enum class Level {
+        Debug = 0,
+        None = 1,
+        Info = 2,
+        Warning = 3,
+        Error = 4,
+    };
 
     class Logger
     {
@@ -105,7 +112,7 @@ namespace BCLog {
         std::atomic<bool> m_reopen_file{false};
 
         /** Send a string to the log output */
-        void LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, const int source_line);
+        void LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, const int source_line, const BCLog::LogFlags category, const BCLog::Level level);
 
         /** Returns whether logs will be written to any output */
         bool Enabled() const
@@ -173,7 +180,7 @@ bool GetLogCategory(BCLog::LogFlags& flag, const std::string& str);
 // peer can fill up a user's disk with debug.log entries.
 
 template <typename... Args>
-static inline void LogPrintf_(const std::string& logging_function, const std::string& source_file, const int source_line, const char* fmt, const Args&... args)
+static inline void LogPrintf_(const std::string& logging_function, const std::string& source_file, const int source_line, const BCLog::LogFlags flag, const BCLog::Level level, const char* fmt, const Args&... args)
 {
     if (LogInstance().Enabled()) {
         std::string log_msg;
@@ -183,19 +190,29 @@ static inline void LogPrintf_(const std::string& logging_function, const std::st
             /* Original format string will have newline so don't add one here */
             log_msg = "Error \"" + std::string(fmterr.what()) + "\" while formatting log message: " + fmt;
         }
-        LogInstance().LogPrintStr(log_msg, logging_function, source_file, source_line);
+        LogInstance().LogPrintStr(log_msg, logging_function, source_file, source_line, flag, level);
     }
 }
 
-#define LogPrintf(...) LogPrintf_(__func__, __FILE__, __LINE__, __VA_ARGS__)
+
+#define LogPrintLevel_(category, level, ...) LogPrintf_(__func__, __FILE__, __LINE__, category, level, __VA_ARGS__)
+
+#define LogPrintf(...) LogPrintLevel_(BCLog::LogFlags::NONE, BCLog::Level::None, __VA_ARGS__)
 
 // Use a macro instead of a function for conditional logging to prevent
 // evaluating arguments when logging for the category is not enabled.
-#define LogPrint(category, ...)              \
-    do {                                     \
-        if (LogAcceptCategory((category))) { \
-            LogPrintf(__VA_ARGS__);          \
-        }                                    \
+#define LogPrint(category, ...)                                        \
+    do {                                                               \
+        if (LogAcceptCategory((category))) {                           \
+            LogPrintLevel_(category, BCLog::Level::None, __VA_ARGS__); \
+        }                                                              \
+    } while (0)
+
+#define LogPrintLevel(level, category, ...)               \
+    do {                                                  \
+        if (LogAcceptCategory((category))) {              \
+            LogPrintLevel_(category, level, __VA_ARGS__); \
+        }                                                 \
     } while (0)
 
 #endif // BITCOIN_LOGGING_H
diff --git a/src/net.cpp b/src/net.cpp
index 9d69b025daa..135cc856844 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -430,7 +430,7 @@ static CAddress GetBindAddress(SOCKET sock)
         if (!getsockname(sock, (struct sockaddr*)&sockaddr_bind, &sockaddr_bind_len)) {
             addr_bind.SetSockAddr((const struct sockaddr*)&sockaddr_bind);
         } else {
-            LogPrint(BCLog::NET, "Warning: getsockname failed\n");
+            LogPrintLevel(BCLog::Level::Warning, BCLog::NET, "getsockname failed\n");
         }
     }
     return addr_bind;
@@ -454,9 +454,9 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo
     }
 
     /// debug print
-    LogPrint(BCLog::NET, "trying connection %s lastseen=%.1fhrs\n",
-        pszDest ? pszDest : addrConnect.ToString(),
-        pszDest ? 0.0 : (double)(GetAdjustedTime() - addrConnect.nTime)/3600.0);
+    LogPrintLevel(BCLog::Level::Debug, BCLog::NET, "trying connection %s lastseen=%.1fhrs\n",
+                  pszDest ? pszDest : addrConnect.ToString(),
+                  pszDest ? 0.0 : (double)(GetAdjustedTime() - addrConnect.nTime) / 3600.0);
 
     // Resolve
     const uint16_t default_port{pszDest != nullptr ? Params().GetDefaultPort(pszDest) :
@@ -1158,7 +1158,7 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
     }
 
     if (!addr.SetSockAddr((const struct sockaddr*)&sockaddr)) {
-        LogPrintf("Warning: Unknown socket family\n");
+        LogPrintLevel(BCLog::Level::Warning, BCLog::NET, "Unknown socket family\n");
     } else {
         addr = CAddress{MaybeFlipIPv6toCJDNS(addr), NODE_NONE};
     }
@@ -2404,15 +2404,15 @@ bool CConnman::BindListenPort(const CService& addrBind, bilingual_str& strError,
     socklen_t len = sizeof(sockaddr);
     if (!addrBind.GetSockAddr((struct sockaddr*)&sockaddr, &len))
     {
-        strError = strprintf(Untranslated("Error: Bind address family for %s not supported"), addrBind.ToString());
-        LogPrintf("%s\n", strError.original);
+        strError = strprintf(Untranslated("Bind address family for %s not supported"), addrBind.ToString());
+        LogPrintLevel(BCLog::Level::Error, BCLog::NET, "%s\n", strError.original);
         return false;
     }
 
     std::unique_ptr<Sock> sock = CreateSock(addrBind);
     if (!sock) {
-        strError = strprintf(Untranslated("Error: Couldn't open socket for incoming connections (socket returned error %s)"), NetworkErrorString(WSAGetLastError()));
-        LogPrintf("%s\n", strError.original);
+        strError = strprintf(Untranslated("Couldn't open socket for incoming connections (socket returned error %s)"), NetworkErrorString(WSAGetLastError()));
+        LogPrintLevel(BCLog::Level::Error, BCLog::NET, "%s\n", strError.original);
         return false;
     }
 
@@ -2439,7 +2439,7 @@ bool CConnman::BindListenPort(const CService& addrBind, bilingual_str& strError,
             strError = strprintf(_("Unable to bind to %s on this computer. %s is probably already running."), addrBind.ToString(), PACKAGE_NAME);
         else
             strError = strprintf(_("Unable to bind to %s on this computer (bind returned error %s)"), addrBind.ToString(), NetworkErrorString(nErr));
-        LogPrintf("%s\n", strError.original);
+        LogPrintLevel(BCLog::Level::Error, BCLog::NET, "%s\n", strError.original);
         return false;
     }
     LogPrintf("Bound to %s\n", addrBind.ToString());
@@ -2447,8 +2447,8 @@ bool CConnman::BindListenPort(const CService& addrBind, bilingual_str& strError,
     // Listen for incoming connections
     if (listen(sock->Get(), SOMAXCONN) == SOCKET_ERROR)
     {
-        strError = strprintf(_("Error: Listening for incoming connections failed (listen returned error %s)"), NetworkErrorString(WSAGetLastError()));
-        LogPrintf("%s\n", strError.original);
+        strError = strprintf(_("Listening for incoming connections failed (listen returned error %s)"), NetworkErrorString(WSAGetLastError()));
+        LogPrintLevel(BCLog::Level::Error, BCLog::NET, "%s\n", strError.original);
         return false;
     }
 
diff --git a/src/test/logging_tests.cpp b/src/test/logging_tests.cpp
index cbfb6c67c3e..f558076e930 100644
--- a/src/test/logging_tests.cpp
+++ b/src/test/logging_tests.cpp
@@ -5,13 +5,57 @@
 #include <logging.h>
 #include <logging/timer.h>
 #include <test/util/setup_common.h>
+#include <util/string.h>
 
 #include <chrono>
+#include <fstream>
+#include <iostream>
+#include <utility>
+#include <vector>
 
 #include <boost/test/unit_test.hpp>
+#include <boost/algorithm/string/classification.hpp>
+#include <boost/algorithm/string/split.hpp>
 
 BOOST_FIXTURE_TEST_SUITE(logging_tests, BasicTestingSetup)
 
+struct LogSetup : public BasicTestingSetup {
+    fs::path prev_log_path;
+    fs::path tmp_log_path;
+    bool prev_reopen_file;
+    bool prev_print_to_file;
+    bool prev_log_timestamps;
+    bool prev_log_threadnames;
+    bool prev_log_sourcelocations;
+
+    LogSetup() : prev_log_path{LogInstance().m_file_path},
+                 tmp_log_path{m_args.GetDataDirBase() / "tmp_debug.log"},
+                 prev_reopen_file{LogInstance().m_reopen_file},
+                 prev_print_to_file{LogInstance().m_print_to_file},
+                 prev_log_timestamps{LogInstance().m_log_timestamps},
+                 prev_log_threadnames{LogInstance().m_log_threadnames},
+                 prev_log_sourcelocations{LogInstance().m_log_sourcelocations}
+    {
+        LogInstance().m_file_path = tmp_log_path;
+        LogInstance().m_reopen_file = true;
+        LogInstance().m_print_to_file = true;
+        LogInstance().m_log_timestamps = false;
+        LogInstance().m_log_threadnames = false;
+        LogInstance().m_log_sourcelocations = true;
+    }
+
+    ~LogSetup()
+    {
+        LogInstance().m_file_path = prev_log_path;
+        LogPrintf("Sentinel log to reopen log file\n");
+        LogInstance().m_print_to_file = prev_print_to_file;
+        LogInstance().m_reopen_file = prev_reopen_file;
+        LogInstance().m_log_timestamps = prev_log_timestamps;
+        LogInstance().m_log_threadnames = prev_log_threadnames;
+        LogInstance().m_log_sourcelocations = prev_log_sourcelocations;
+    }
+};
+
 BOOST_AUTO_TEST_CASE(logging_timer)
 {
     SetMockTime(1);
@@ -30,4 +74,83 @@ BOOST_AUTO_TEST_CASE(logging_timer)
     BOOST_CHECK_EQUAL(sec_timer.LogMsg("test secs"), "tests: test secs (1.00s)");
 }
 
+BOOST_FIXTURE_TEST_CASE(logging_LogPrintf_, LogSetup)
+{
+    LogPrintf_("fn1", "src1", 1, BCLog::LogFlags::NET, BCLog::Level::Debug, "foo1: %s", "bar1\n");
+    LogPrintf_("fn2", "src2", 2, BCLog::LogFlags::NET, BCLog::Level::None, "foo2: %s", "bar2\n");
+    LogPrintf_("fn3", "src3", 3, BCLog::LogFlags::NONE, BCLog::Level::Debug, "foo3: %s", "bar3\n");
+    LogPrintf_("fn4", "src4", 4, BCLog::LogFlags::NONE, BCLog::Level::None, "foo4: %s", "bar4\n");
+    std::ifstream file{tmp_log_path};
+    std::vector<std::string> log_lines;
+    for (std::string log; std::getline(file, log);) {
+        log_lines.push_back(log);
+    }
+    std::vector<std::string> expected = {
+        "[src1:1] [fn1] [net:debug] foo1: bar1",
+        "[src2:2] [fn2] [net] foo2: bar2",
+        "[src3:3] [fn3] [debug] foo3: bar3",
+        "[src4:4] [fn4] foo4: bar4",
+    };
+    BOOST_CHECK_EQUAL_COLLECTIONS(log_lines.begin(), log_lines.end(), expected.begin(), expected.end());
+}
+
+BOOST_FIXTURE_TEST_CASE(logging_LogPrintMacros, LogSetup)
+{
+    // Prevent tests from failing when the line number of the following log calls changes.
+    LogInstance().m_log_sourcelocations = false;
+
+    LogPrintf("foo5: %s\n", "bar5");
+    LogPrint(BCLog::NET, "foo6: %s\n", "bar6");
+    LogPrintLevel(BCLog::Level::Debug, BCLog::NET, "foo7: %s\n", "bar7");
+    LogPrintLevel(BCLog::Level::Info, BCLog::NET, "foo8: %s\n", "bar8");
+    LogPrintLevel(BCLog::Level::Warning, BCLog::NET, "foo9: %s\n", "bar9");
+    LogPrintLevel(BCLog::Level::Error, BCLog::NET, "foo10: %s\n", "bar10");
+    std::ifstream file{tmp_log_path};
+    std::vector<std::string> log_lines;
+    for (std::string log; std::getline(file, log);) {
+        log_lines.push_back(log);
+    }
+    std::vector<std::string> expected = {
+        "foo5: bar5",
+        "[net] foo6: bar6",
+        "[net:debug] foo7: bar7",
+        "[net:info] foo8: bar8",
+        "[net:warning] foo9: bar9",
+        "[net:error] foo10: bar10"};
+    BOOST_CHECK_EQUAL_COLLECTIONS(log_lines.begin(), log_lines.end(), expected.begin(), expected.end());
+}
+
+BOOST_FIXTURE_TEST_CASE(logging_LogPrintMacros_CategoryName, LogSetup)
+{
+    // Prevent tests from failing when the line number of the following log calls changes.
+    LogInstance().m_log_sourcelocations = false;
+    LogInstance().EnableCategory(BCLog::LogFlags::ALL);
+    const auto concated_categery_names = LogInstance().LogCategoriesString();
+    std::vector<std::pair<BCLog::LogFlags, std::string>> expected_category_names;
+    std::vector<std::string> category_names;
+    boost::algorithm::split(category_names, concated_categery_names, boost::algorithm::is_any_of(","));
+    for (const auto& category_name : category_names) {
+        BCLog::LogFlags category = BCLog::NONE;
+        const auto trimmed_category_name = TrimString(category_name);
+        BOOST_TEST(GetLogCategory(category, trimmed_category_name));
+        expected_category_names.emplace_back(category, trimmed_category_name);
+    }
+
+    std::vector<std::string> expected;
+    for (const auto& [category, name] : expected_category_names) {
+        LogPrint(category, "foo: %s\n", "bar");
+        std::string expected_log = "[";
+        expected_log += name;
+        expected_log += "] foo: bar";
+        expected.push_back(expected_log);
+    }
+
+    std::ifstream file{tmp_log_path};
+    std::vector<std::string> log_lines;
+    for (std::string log; std::getline(file, log);) {
+        log_lines.push_back(log);
+    }
+    BOOST_CHECK_EQUAL_COLLECTIONS(log_lines.begin(), log_lines.end(), expected.begin(), expected.end());
+}
+
 BOOST_AUTO_TEST_SUITE_END()

From d23b6c86d013969ecb31475c649da77ff03c9214 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niklas=20G=C3=B6gge?= <n.goeggi@gmail.com>
Date: Wed, 29 Dec 2021 21:15:53 +0100
Subject: [PATCH 158/187] [log] Introduce log rate limiter class

The LogRatelimiter class implements a fixed window rate limiter. The
rate limiter allows a fixed amount of bytes to be consumed within a
fixed time window.

[log] Introduce source location type

The SourceLocation type stores the filename and line of a source code
location.
In a later commit we use this type as the key type in an unordered map
and set to keep track of rate limters for each location.

[config] Add -ratelimitlogging config option

The -ratelimitlogging can be used to enable/disable the rate limiting to
disk. Rate limiting is enabled by default.

[log] Add two new categories for unconditional logging

We create two new categories `UNCONDITIONAL_ALWAYS` and
`UNCONDITIONAL_RATE_LIMITED` that are always enabled by default.

LogPrintf now logs using the `UNCONDITIONAL_RATE_LIMITED` category which
will start to apply rate limiting in a later commit.

For some log locations it might be safe to allow more frequent logging
without rate limiting. These locations should use the
`UNCONDITIONAL_ALWAYS` category.

[validation] Exempt UpdateTipLog from rate limiting

UpdateTipLog logs everytime a new tip is activated. This occurs at an
increased frequency during IBD and should therefore be exempt from rate
limiting.

[log] Add rate limiting to LogPrintf

To mitigate disk filling attacks caused by unsafe usages of LogPrintf,
we rate limit LogPrintf by using the fixed window rate limiter
(BCLog::LogRatelimiter) introduced in an earlier commit.

The rate limiting logic is applied per source location instead of
globally. A source location is allowed to log up to 1 MiB per hour.
Source locations that violate the limit will have their logs supressed
for up to one hour.

[test util] Mark ~DebugLogHelper as noexcept(false)

We mark ~DebugLogHelper as noexcept(false) to be able to catch the
exception it throws. This lets us use it in test in combination with
BOOST_CHECK_THROW and BOOST_CHECK_NO_THROW to check that certain log
messages are (not) logged.

[test] Check for expected log rate limiting messages

[test] Test for expected file size changes when rate limiting is enabled

[test] Check that log rate limiting is disabled for exempt source locations

[test] Check that rate limiting can be disabled
---
 src/init/common.cpp        |   2 +
 src/logging.cpp            |  86 ++++++++++++++++++---
 src/logging.h              | 151 ++++++++++++++++++++++++++++---------
 src/qt/transactiondesc.cpp |   2 +-
 src/test/logging_tests.cpp | 145 ++++++++++++++++++++++++++++++++++-
 src/test/util/logging.h    |   2 +-
 src/util/time.cpp          |  11 +++
 src/util/time.h            |  11 +++
 src/validation.cpp         |   2 +-
 9 files changed, 362 insertions(+), 50 deletions(-)

diff --git a/src/init/common.cpp b/src/init/common.cpp
index 38c60366e39..e9c4bb9a650 100644
--- a/src/init/common.cpp
+++ b/src/init/common.cpp
@@ -76,6 +76,7 @@ void AddLoggingArgs(ArgsManager& argsman)
     argsman.AddArg("-logtimemicros", strprintf("Add microsecond precision to debug timestamps (default: %u)", DEFAULT_LOGTIMEMICROS), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::DEBUG_TEST);
     argsman.AddArg("-printtoconsole", "Send trace/debug info to console (default: 1 when no -daemon. To disable logging to file, set -nodebuglogfile)", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
     argsman.AddArg("-shrinkdebugfile", "Shrink debug.log file on client startup (default: 1 when no -debug)", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
+    argsman.AddArg("-ratelimitlogging", strprintf("Rate limit unconditional logging to disk (default: %u)", DEFAULT_RATELIMITLOGGING), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
 }
 
 void SetLoggingOptions(const ArgsManager& args)
@@ -89,6 +90,7 @@ void SetLoggingOptions(const ArgsManager& args)
     LogInstance().m_log_threadnames = args.GetBoolArg("-logthreadnames", DEFAULT_LOGTHREADNAMES);
 #endif
     LogInstance().m_log_sourcelocations = args.GetBoolArg("-logsourcelocations", DEFAULT_LOGSOURCELOCATIONS);
+    LogInstance().m_ratelimit = args.GetBoolArg("-ratelimitlogging", DEFAULT_RATELIMITLOGGING);
 
     fLogIPs = args.GetBoolArg("-logips", DEFAULT_LOGIPS);
 }
diff --git a/src/logging.cpp b/src/logging.cpp
index f1a86f0dcec..cb5624d158b 100644
--- a/src/logging.cpp
+++ b/src/logging.cpp
@@ -7,7 +7,6 @@
 #include <logging.h>
 #include <util/threadnames.h>
 #include <util/string.h>
-#include <util/time.h>
 
 #include <algorithm>
 #include <array>
@@ -124,7 +123,7 @@ bool BCLog::Logger::WillLogCategory(BCLog::LogFlags category) const
 
 bool BCLog::Logger::DefaultShrinkDebugFile() const
 {
-    return m_categories == BCLog::NONE;
+    return m_categories == DEFAULT_LOG_FLAGS;
 }
 
 struct CLogCategoryDesc {
@@ -165,6 +164,8 @@ const CLogCategoryDesc LogCategories[] =
 #endif
     {BCLog::UTIL, "util"},
     {BCLog::BLOCKSTORE, "blockstorage"},
+    {BCLog::UNCONDITIONAL_RATE_LIMITED, "uncond_rate_limited"},
+    {BCLog::UNCONDITIONAL_ALWAYS, "uncond_always"},
     {BCLog::ALL, "1"},
     {BCLog::ALL, "all"},
 };
@@ -263,6 +264,10 @@ std::string LogCategoryToStr(BCLog::LogFlags category)
         return "util";
     case BCLog::LogFlags::BLOCKSTORE:
         return "blockstorage";
+    case BCLog::LogFlags::UNCONDITIONAL_RATE_LIMITED:
+        return "uncond_rate_limited";
+    case BCLog::LogFlags::UNCONDITIONAL_ALWAYS:
+        return "uncond_always";
     case BCLog::LogFlags::ALL:
         return "all";
     }
@@ -334,19 +339,22 @@ namespace BCLog {
     }
 } // namespace BCLog
 
-void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, const int source_line, const BCLog::LogFlags category, const BCLog::Level level)
+void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& logging_function,
+                                const SourceLocation& source_location, const BCLog::LogFlags category,
+                                const BCLog::Level level)
 {
     StdLockGuard scoped_lock(m_cs);
     std::string str_prefixed = LogEscapeMessage(str);
 
-    if ((category != LogFlags::NONE || level != Level::None) && m_started_new_line) {
+    const bool print_category{category != LogFlags::NONE && category != LogFlags::UNCONDITIONAL_ALWAYS && category != LogFlags::UNCONDITIONAL_RATE_LIMITED};
+    if ((print_category || level != Level::None) && m_started_new_line) {
         std::string s{"["};
 
-        if (category != LogFlags::NONE) {
+        if (print_category) {
             s += LogCategoryToStr(category);
         }
 
-        if (category != LogFlags::NONE && level != Level::None) {
+        if (print_category && level != Level::None) {
             // Only add separator if both flag and level are not NONE
             s += ":";
         }
@@ -360,7 +368,7 @@ void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& loggi
     }
 
     if (m_log_sourcelocations && m_started_new_line) {
-        str_prefixed.insert(0, "[" + RemovePrefix(source_file, "./") + ":" + ToString(source_line) + "] [" + logging_function + "] ");
+        str_prefixed.insert(0, "[" + RemovePrefix(source_location.m_file, "./") + ":" + ToString(source_location.m_line) + "] [" + logging_function + "] ");
     }
 
     if (m_log_threadnames && m_started_new_line) {
@@ -369,7 +377,43 @@ void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& loggi
 
     str_prefixed = LogTimestampStr(str_prefixed);
 
-    m_started_new_line = !str.empty() && str[str.size()-1] == '\n';
+    // Whether or not logging to disk was/is ratelimited for this source location.
+    bool was_ratelimited{false};
+    bool is_ratelimited{false};
+
+    if (category == UNCONDITIONAL_RATE_LIMITED && m_ratelimit) {
+        was_ratelimited = m_supressed_locations.find(source_location) != m_supressed_locations.end();
+        is_ratelimited = !m_ratelimiters[source_location].Consume(str_prefixed.size());
+
+        if (!is_ratelimited && was_ratelimited) {
+            // Logging will restart for this source location.
+            m_supressed_locations.erase(source_location);
+
+            str_prefixed = LogTimestampStr(strprintf(
+                "Restarting logging from %s:%d (%s): "
+                "(%d MiB) were dropped during the last hour.\n%s",
+                source_location.m_file, source_location.m_line, logging_function,
+                m_ratelimiters[source_location].GetDroppedBytes() / (1024 * 1024), str_prefixed));
+        } else if (is_ratelimited && !was_ratelimited) {
+            // Logging from this source location will be supressed until the current window resets.
+            m_supressed_locations.insert(source_location);
+
+            str_prefixed = LogTimestampStr(strprintf(
+                "Excessive logging detected from %s:%d (%s): >%d MiB logged during the last hour."
+                "Suppressing logging to disk from this source location for up to one hour. "
+                "Console logging unaffected. Last log entry: %s",
+                source_location.m_file, source_location.m_line, logging_function,
+                LogRateLimiter::WINDOW_MAX_BYTES / (1024 * 1024), str_prefixed));
+        }
+    }
+
+    // To avoid confusion caused by dropped log messages when debugging an issue,
+    // we prefix log lines with "[*]" when there are any supressed source locations.
+    if (m_supressed_locations.size() > 0) {
+        str_prefixed.insert(0, "[*] ");
+    }
+
+    m_started_new_line = !str.empty() && str[str.size() - 1] == '\n';
 
     if (m_buffering) {
         // buffer if we haven't started logging yet
@@ -385,7 +429,7 @@ void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& loggi
     for (const auto& cb : m_print_callbacks) {
         cb(str_prefixed);
     }
-    if (m_print_to_file) {
+    if (m_print_to_file && !(is_ratelimited && was_ratelimited)) {
         assert(m_fileout != nullptr);
 
         // reopen the log file, if requested
@@ -442,3 +486,27 @@ void BCLog::Logger::ShrinkDebugFile()
     else if (file != nullptr)
         fclose(file);
 }
+
+void BCLog::LogRateLimiter::MaybeReset()
+{
+    const auto now{NodeClock::now()};
+    if ((now - m_last_reset) >= WINDOW_SIZE) {
+        m_available_bytes = WINDOW_MAX_BYTES;
+        m_last_reset = now;
+        m_dropped_bytes = 0;
+    }
+}
+
+bool BCLog::LogRateLimiter::Consume(uint64_t bytes)
+{
+    MaybeReset();
+
+    if (bytes > m_available_bytes) {
+        m_dropped_bytes += bytes;
+        m_available_bytes = 0;
+        return false;
+    }
+
+    m_available_bytes -= bytes;
+    return true;
+}
diff --git a/src/logging.h b/src/logging.h
index 421c3395c2c..e325c94028d 100644
--- a/src/logging.h
+++ b/src/logging.h
@@ -6,10 +6,12 @@
 #ifndef BITCOIN_LOGGING_H
 #define BITCOIN_LOGGING_H
 
+#include <crypto/siphash.h>
 #include <fs.h>
 #include <tinyformat.h>
 #include <threadsafety.h>
 #include <util/string.h>
+#include <util/time.h>
 
 #include <atomic>
 #include <cstdint>
@@ -17,6 +19,8 @@
 #include <list>
 #include <mutex>
 #include <string>
+#include <unordered_map>
+#include <unordered_set>
 #include <vector>
 
 static const bool DEFAULT_LOGTIMEMICROS = false;
@@ -24,10 +28,34 @@ static const bool DEFAULT_LOGIPS        = false;
 static const bool DEFAULT_LOGTIMESTAMPS = true;
 static const bool DEFAULT_LOGTHREADNAMES = false;
 static const bool DEFAULT_LOGSOURCELOCATIONS = false;
+static constexpr bool DEFAULT_RATELIMITLOGGING{true};
 extern const char * const DEFAULT_DEBUGLOGFILE;
 
 extern bool fLogIPs;
 
+// TODO: use C++20 std::sourcelocation when available
+struct SourceLocation {
+    std::string m_file;
+    int m_line{0};
+
+    bool operator==(const SourceLocation& other) const
+    {
+        return m_file.compare(other.m_file) == 0 &&
+               m_line == other.m_line;
+    }
+};
+
+struct SourceLocationHasher {
+    size_t operator()(const SourceLocation& source_location) const noexcept
+    {
+        // Use CSipHasher(0, 0) as a simple way to get uniform distribution.
+        return static_cast<size_t>(CSipHasher(0, 0)
+                                       .Write(std::hash<std::string>{}(source_location.m_file))
+                                       .Write(std::hash<int>{}(source_location.m_line))
+                                       .Finalize());
+    }
+};
+
 struct LogCategory {
     std::string category;
     bool active;
@@ -35,37 +63,39 @@ struct LogCategory {
 
 namespace BCLog {
     enum LogFlags : uint32_t {
-        NONE        = 0,
-        NET         = (1 <<  0),
-        TOR         = (1 <<  1),
-        MEMPOOL     = (1 <<  2),
-        HTTP        = (1 <<  3),
-        BENCH       = (1 <<  4),
-        ZMQ         = (1 <<  5),
-        WALLETDB    = (1 <<  6),
-        RPC         = (1 <<  7),
-        ESTIMATEFEE = (1 <<  8),
-        ADDRMAN     = (1 <<  9),
-        SELECTCOINS = (1 << 10),
-        REINDEX     = (1 << 11),
-        CMPCTBLOCK  = (1 << 12),
-        RAND        = (1 << 13),
-        PRUNE       = (1 << 14),
-        PROXY       = (1 << 15),
-        MEMPOOLREJ  = (1 << 16),
-        LIBEVENT    = (1 << 17),
-        COINDB      = (1 << 18),
-        QT          = (1 << 19),
-        LEVELDB     = (1 << 20),
-        VALIDATION  = (1 << 21),
-        I2P         = (1 << 22),
-        IPC         = (1 << 23),
+        NONE                       = 0,
+        NET                        = (1 <<  0),
+        TOR                        = (1 <<  1),
+        MEMPOOL                    = (1 <<  2),
+        HTTP                       = (1 <<  3),
+        BENCH                      = (1 <<  4),
+        ZMQ                        = (1 <<  5),
+        WALLETDB                   = (1 <<  6),
+        RPC                        = (1 <<  7),
+        ESTIMATEFEE                = (1 <<  8),
+        ADDRMAN                    = (1 <<  9),
+        SELECTCOINS                = (1 << 10),
+        REINDEX                    = (1 << 11),
+        CMPCTBLOCK                 = (1 << 12),
+        RAND                       = (1 << 13),
+        PRUNE                      = (1 << 14),
+        PROXY                      = (1 << 15),
+        MEMPOOLREJ                 = (1 << 16),
+        LIBEVENT                   = (1 << 17),
+        COINDB                     = (1 << 18),
+        QT                         = (1 << 19),
+        LEVELDB                    = (1 << 20),
+        VALIDATION                 = (1 << 21),
+        I2P                        = (1 << 22),
+        IPC                        = (1 << 23),
 #ifdef DEBUG_LOCKCONTENTION
-        LOCK        = (1 << 24),
+        LOCK                       = (1 << 24),
 #endif
-        UTIL        = (1 << 25),
-        BLOCKSTORE  = (1 << 26),
-        ALL         = ~(uint32_t)0,
+        UTIL                       = (1 << 25),
+        BLOCKSTORE                 = (1 << 26),
+        UNCONDITIONAL_RATE_LIMITED = (1 << 27),
+        UNCONDITIONAL_ALWAYS       = (1 << 28),
+        ALL                        = ~(uint32_t)0,
     };
     enum class Level {
         Debug = 0,
@@ -75,6 +105,45 @@ namespace BCLog {
         Error = 4,
     };
 
+    static constexpr LogFlags DEFAULT_LOG_FLAGS{UNCONDITIONAL_RATE_LIMITED | UNCONDITIONAL_ALWAYS};
+
+    //! Fixed window rate limiter for logging.
+    class LogRateLimiter
+    {
+    private:
+        //! Timestamp of the last window reset.
+        std::chrono::time_point<NodeClock> m_last_reset;
+        //! Remaining bytes in the current window interval.
+        uint64_t m_available_bytes{WINDOW_MAX_BYTES};
+        //! Number of bytes that were not consumed within the current window.
+        uint64_t m_dropped_bytes{0};
+        //! Reset the window if the window interval has passed since the last reset.
+        void MaybeReset();
+
+    public:
+        //! Interval after which the window is reset.
+        static constexpr std::chrono::hours WINDOW_SIZE{1};
+        //! The maximum number of bytes that can be logged within one window.
+        static constexpr uint64_t WINDOW_MAX_BYTES{1024 * 1024};
+
+        LogRateLimiter() : m_last_reset{NodeClock::now()} {}
+
+        //! Consume bytes from the window if enough bytes are available.
+        //!
+        //! Returns whether or not enough bytes were available.
+        bool Consume(uint64_t bytes);
+
+        uint64_t GetAvailableBytes() const
+        {
+            return m_available_bytes;
+        }
+
+        uint64_t GetDroppedBytes() const
+        {
+            return m_dropped_bytes;
+        }
+    };
+
     class Logger
     {
     private:
@@ -84,6 +153,11 @@ namespace BCLog {
         std::list<std::string> m_msgs_before_open GUARDED_BY(m_cs);
         bool m_buffering GUARDED_BY(m_cs) = true; //!< Buffer messages before logging can be started.
 
+        //! Fixed window rate limiters for each source location that has attempted to log something.
+        std::unordered_map<SourceLocation, LogRateLimiter, SourceLocationHasher> m_ratelimiters GUARDED_BY(m_cs);
+        //! Set of source file locations that were dropped on the last log attempt.
+        std::unordered_set<SourceLocation, SourceLocationHasher> m_supressed_locations GUARDED_BY(m_cs);
+
         /**
          * m_started_new_line is a state variable that will suppress printing of
          * the timestamp when multiple calls are made that don't end in a
@@ -92,7 +166,7 @@ namespace BCLog {
         std::atomic_bool m_started_new_line{true};
 
         /** Log categories bitfield. */
-        std::atomic<uint32_t> m_categories{0};
+        std::atomic<uint32_t> m_categories{DEFAULT_LOG_FLAGS};
 
         std::string LogTimestampStr(const std::string& str);
 
@@ -107,12 +181,15 @@ namespace BCLog {
         bool m_log_time_micros = DEFAULT_LOGTIMEMICROS;
         bool m_log_threadnames = DEFAULT_LOGTHREADNAMES;
         bool m_log_sourcelocations = DEFAULT_LOGSOURCELOCATIONS;
+        bool m_ratelimit{DEFAULT_RATELIMITLOGGING};
 
         fs::path m_file_path;
         std::atomic<bool> m_reopen_file{false};
 
         /** Send a string to the log output */
-        void LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, const int source_line, const BCLog::LogFlags category, const BCLog::Level level);
+        void LogPrintStr(const std::string& str, const std::string& logging_function,
+                         const SourceLocation& source_location, const BCLog::LogFlags category,
+                         const BCLog::Level level);
 
         /** Returns whether logs will be written to any output */
         bool Enabled() const
@@ -161,7 +238,6 @@ namespace BCLog {
 
         bool DefaultShrinkDebugFile() const;
     };
-
 } // namespace BCLog
 
 BCLog::Logger& LogInstance();
@@ -190,17 +266,24 @@ static inline void LogPrintf_(const std::string& logging_function, const std::st
             /* Original format string will have newline so don't add one here */
             log_msg = "Error \"" + std::string(fmterr.what()) + "\" while formatting log message: " + fmt;
         }
-        LogInstance().LogPrintStr(log_msg, logging_function, source_file, source_line, flag, level);
+
+        const SourceLocation source_location{source_file, source_line};
+        LogInstance().LogPrintStr(log_msg, logging_function, source_location, flag, level);
     }
 }
 
 
 #define LogPrintLevel_(category, level, ...) LogPrintf_(__func__, __FILE__, __LINE__, category, level, __VA_ARGS__)
 
-#define LogPrintf(...) LogPrintLevel_(BCLog::LogFlags::NONE, BCLog::Level::None, __VA_ARGS__)
+// Unconditional logging. Uses basic rate limiting to mitigate disk filling attacks.
+#define LogPrintf(...) LogPrintLevel_(BCLog::LogFlags::UNCONDITIONAL_RATE_LIMITED, BCLog::Level::None, __VA_ARGS__)
 
 // Use a macro instead of a function for conditional logging to prevent
 // evaluating arguments when logging for the category is not enabled.
+//
+// Note that conditional logging is performed WITHOUT rate limiting. Users
+// specifying -debug are assumed to be developers or power users who are aware
+// that -debug may cause excessive disk usage due to logging.
 #define LogPrint(category, ...)                                        \
     do {                                                               \
         if (LogAcceptCategory((category))) {                           \
diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp
index 8f33f60a5f3..0e39dcb2a90 100644
--- a/src/qt/transactiondesc.cpp
+++ b/src/qt/transactiondesc.cpp
@@ -314,7 +314,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
     //
     // Debug view
     //
-    if (node.getLogCategories() != BCLog::NONE && !g_con_elementsmode)
+    if (node.getLogCategories() != BCLog::DEFAULT_LOG_FLAGS && !g_con_elementsmode)
     {
         strHTML += "<hr><br>" + tr("Debug information") + "<br><br>";
         for (const CTxIn& txin : wtx.tx->vin)
diff --git a/src/test/logging_tests.cpp b/src/test/logging_tests.cpp
index f558076e930..5d3518943c7 100644
--- a/src/test/logging_tests.cpp
+++ b/src/test/logging_tests.cpp
@@ -4,6 +4,7 @@
 
 #include <logging.h>
 #include <logging/timer.h>
+#include <test/util/logging.h>
 #include <test/util/setup_common.h>
 #include <util/string.h>
 
@@ -139,10 +140,11 @@ BOOST_FIXTURE_TEST_CASE(logging_LogPrintMacros_CategoryName, LogSetup)
     std::vector<std::string> expected;
     for (const auto& [category, name] : expected_category_names) {
         LogPrint(category, "foo: %s\n", "bar");
-        std::string expected_log = "[";
-        expected_log += name;
-        expected_log += "] foo: bar";
-        expected.push_back(expected_log);
+        if (category == BCLog::UNCONDITIONAL_ALWAYS || category == BCLog::UNCONDITIONAL_RATE_LIMITED) {
+            expected.push_back("foo: bar");
+        } else {
+            expected.push_back("[" + name + "] foo: bar");
+        }
     }
 
     std::ifstream file{tmp_log_path};
@@ -153,4 +155,139 @@ BOOST_FIXTURE_TEST_CASE(logging_LogPrintMacros_CategoryName, LogSetup)
     BOOST_CHECK_EQUAL_COLLECTIONS(log_lines.begin(), log_lines.end(), expected.begin(), expected.end());
 }
 
+BOOST_AUTO_TEST_CASE(logging_ratelimit_window)
+{
+    SetMockTime(std::chrono::hours{1});
+    BCLog::LogRateLimiter window;
+
+    // Check that window gets initialised correctly.
+    BOOST_CHECK_EQUAL(window.GetAvailableBytes(), BCLog::LogRateLimiter::WINDOW_MAX_BYTES);
+    BOOST_CHECK_EQUAL(window.GetDroppedBytes(), 0ull);
+
+    const uint64_t MESSAGE_SIZE{512 * 1024};
+    BOOST_CHECK(window.Consume(MESSAGE_SIZE));
+    BOOST_CHECK_EQUAL(window.GetAvailableBytes(), BCLog::LogRateLimiter::WINDOW_MAX_BYTES - MESSAGE_SIZE);
+    BOOST_CHECK_EQUAL(window.GetDroppedBytes(), 0ull);
+
+    BOOST_CHECK(window.Consume(MESSAGE_SIZE));
+    BOOST_CHECK_EQUAL(window.GetAvailableBytes(), BCLog::LogRateLimiter::WINDOW_MAX_BYTES - MESSAGE_SIZE * 2);
+    BOOST_CHECK_EQUAL(window.GetDroppedBytes(), 0ull);
+
+    // Consuming more bytes after already having consumed a 1MB should fail.
+    BOOST_CHECK(!window.Consume(500));
+    BOOST_CHECK_EQUAL(window.GetAvailableBytes(), 0ull);
+    BOOST_CHECK_EQUAL(window.GetDroppedBytes(), 500ull);
+
+    // Advance time by one hour. This should trigger a window reset.
+    SetMockTime(std::chrono::hours{2});
+
+    // Check that the window resets as expected when new bytes are consumed.
+    BOOST_CHECK(window.Consume(MESSAGE_SIZE));
+    BOOST_CHECK_EQUAL(window.GetAvailableBytes(), BCLog::LogRateLimiter::WINDOW_MAX_BYTES - MESSAGE_SIZE);
+    BOOST_CHECK_EQUAL(window.GetDroppedBytes(), 0ull);
+}
+
+void LogFromLocation(int location, std::string message)
+{
+    switch (location) {
+    case 0:
+        LogPrint(BCLog::UNCONDITIONAL_RATE_LIMITED, "%s\n", message);
+        break;
+    case 1:
+        LogPrint(BCLog::UNCONDITIONAL_RATE_LIMITED, "%s\n", message);
+        break;
+    case 2:
+        LogPrint(BCLog::UNCONDITIONAL_ALWAYS, "%s\n", message);
+        break;
+    case 3:
+        LogPrint(BCLog::ALL, "%s\n", message);
+        break;
+    }
+}
+
+void LogFromLocationAndExpect(int location, std::string message, std::string expect)
+{
+    ASSERT_DEBUG_LOG(expect);
+    LogFromLocation(location, message);
+}
+
+BOOST_AUTO_TEST_CASE(rate_limiting)
+{
+    bool prev_log_timestamps = LogInstance().m_log_sourcelocations;
+    LogInstance().m_log_timestamps = false;
+    bool prev_log_sourcelocations = LogInstance().m_log_sourcelocations;
+    LogInstance().m_log_sourcelocations = false;
+    bool prev_log_threadnames = LogInstance().m_log_threadnames;
+    LogInstance().m_log_threadnames = false;
+
+    // Log 1024-character lines (1023 plus newline) to make the math simple.
+    std::string log_message(1023, 'a');
+
+    SetMockTime(std::chrono::hours{1});
+
+    size_t log_file_size = std::filesystem::file_size(LogInstance().m_file_path);
+    // Logging 1 MiB should be allowed.
+    for (int i = 0; i < 1024; ++i) {
+        LogFromLocation(0, log_message);
+    }
+    BOOST_CHECK_MESSAGE(log_file_size < std::filesystem::file_size(LogInstance().m_file_path), "should be able to log 1 MiB from location 0");
+
+    log_file_size = std::filesystem::file_size(LogInstance().m_file_path);
+    BOOST_CHECK_NO_THROW(
+        LogFromLocationAndExpect(0, log_message, "Excessive logging detected"));
+    BOOST_CHECK_MESSAGE(log_file_size < std::filesystem::file_size(LogInstance().m_file_path), "the start of the supression period should be logged");
+
+    log_file_size = std::filesystem::file_size(LogInstance().m_file_path);
+    for (int i = 0; i < 1024; ++i) {
+        LogFromLocation(0, log_message);
+    }
+    BOOST_CHECK_MESSAGE(log_file_size == std::filesystem::file_size(LogInstance().m_file_path), "all further logs from location 0 should be dropped");
+
+    BOOST_CHECK_THROW(
+        LogFromLocationAndExpect(1, log_message, "Excessive logging detected"), std::runtime_error);
+    BOOST_CHECK_MESSAGE(log_file_size < std::filesystem::file_size(LogInstance().m_file_path), "location 1 should be unaffected by other locations");
+
+    SetMockTime(std::chrono::hours{2});
+
+    log_file_size = std::filesystem::file_size(LogInstance().m_file_path);
+    BOOST_CHECK_NO_THROW(
+        LogFromLocationAndExpect(0, log_message, "Restarting logging"));
+    BOOST_CHECK_MESSAGE(log_file_size < std::filesystem::file_size(LogInstance().m_file_path), "the end of the supression period should be logged");
+
+    BOOST_CHECK_THROW(
+        LogFromLocationAndExpect(1, log_message, "Restarting logging"), std::runtime_error);
+
+    // Attempt to log 2 MiB to disk.
+    // The exempt locations 2 and 3 should be allowed to log without limit.
+    for (int i = 0; i < 2048; ++i) {
+        log_file_size = std::filesystem::file_size(LogInstance().m_file_path);
+        BOOST_CHECK_THROW(
+            LogFromLocationAndExpect(2, log_message, "Excessive logging detected"), std::runtime_error);
+        BOOST_CHECK_MESSAGE(log_file_size < std::filesystem::file_size(LogInstance().m_file_path), "location 2 should be exempt from rate limiting");
+
+        log_file_size = std::filesystem::file_size(LogInstance().m_file_path);
+        BOOST_CHECK_THROW(
+            LogFromLocationAndExpect(3, log_message, "Excessive logging detected"), std::runtime_error);
+        BOOST_CHECK_MESSAGE(log_file_size < std::filesystem::file_size(LogInstance().m_file_path), "location 3 should be exempt from rate limiting");
+    }
+
+    SetMockTime(std::chrono::hours{3});
+
+    // Disable rate limiting.
+    // Source locations should now be able to log without limit.
+    LogInstance().m_ratelimit = false;
+    for (int i = 0; i < 2048; ++i) {
+        log_file_size = std::filesystem::file_size(LogInstance().m_file_path);
+        BOOST_CHECK_THROW(
+            LogFromLocationAndExpect(0, log_message, "Excessive logging detected"), std::runtime_error);
+        BOOST_CHECK_MESSAGE(log_file_size < std::filesystem::file_size(LogInstance().m_file_path), "location 0 should be able to log disk, when rate limiting is disabled");
+    }
+    LogInstance().m_ratelimit = true;
+
+    LogInstance().m_log_timestamps = prev_log_timestamps;
+    LogInstance().m_log_sourcelocations = prev_log_sourcelocations;
+    LogInstance().m_log_threadnames = prev_log_threadnames;
+    SetMockTime(std::chrono::seconds{0});
+}
+
 BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/test/util/logging.h b/src/test/util/logging.h
index ebe0ecf6233..697d3896bef 100644
--- a/src/test/util/logging.h
+++ b/src/test/util/logging.h
@@ -33,7 +33,7 @@ class DebugLogHelper
 
 public:
     explicit DebugLogHelper(std::string message, MatchFn match = [](const std::string*){ return true; });
-    ~DebugLogHelper() { check_found(); }
+    ~DebugLogHelper() noexcept(false) { check_found(); }
 };
 
 #define ASSERT_DEBUG_LOG(message) DebugLogHelper PASTE2(debugloghelper, __COUNTER__)(message)
diff --git a/src/util/time.cpp b/src/util/time.cpp
index f7712f0dc82..278244313fe 100644
--- a/src/util/time.cpp
+++ b/src/util/time.cpp
@@ -76,6 +76,17 @@ bool ChronoSanityCheck()
     return true;
 }
 
+NodeClock::time_point NodeClock::now() noexcept
+{
+    const std::chrono::seconds mocktime{nMockTime.load(std::memory_order_relaxed)};
+    const auto ret{
+        mocktime.count() ?
+            mocktime :
+            std::chrono::system_clock::now().time_since_epoch()};
+    assert(ret > 0s);
+    return time_point{ret};
+};
+
 template <typename T>
 T GetTime()
 {
diff --git a/src/util/time.h b/src/util/time.h
index 9d92b237250..6c5419ba4d4 100644
--- a/src/util/time.h
+++ b/src/util/time.h
@@ -14,6 +14,17 @@
 
 using namespace std::chrono_literals;
 
+/** Mockable clock in the context of tests, otherwise the system clock */
+struct NodeClock : public std::chrono::system_clock {
+    using time_point = std::chrono::time_point<NodeClock>;
+    /** Return current system time or mocked time, if set */
+    static time_point now() noexcept;
+    static std::time_t to_time_t(const time_point&) = delete; // unused
+    static time_point from_time_t(std::time_t) = delete;      // unused
+};
+using NodeSeconds = std::chrono::time_point<NodeClock, std::chrono::seconds>;
+
+
 void UninterruptibleSleep(const std::chrono::microseconds& n);
 
 /**
diff --git a/src/validation.cpp b/src/validation.cpp
index 6ac82e3e983..0f562fc8bfe 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -2715,7 +2715,7 @@ static void UpdateTipLog(
 {
 
     AssertLockHeld(::cs_main);
-    LogPrintf("%s%s: new best=%s height=%d version=0x%08x log2_work=%f tx=%lu date='%s' progress=%f cache=%.1fMiB(%utxo)%s\n",
+    LogPrint(BCLog::UNCONDITIONAL_ALWAYS,"%s%s: new best=%s height=%d version=0x%08x log2_work=%f tx=%lu date='%s' progress=%f cache=%.1fMiB(%utxo)%s\n",
         prefix, func_name,
         tip->GetBlockHash().ToString(), tip->nHeight, tip->nVersion,
         log(tip->nChainWork.getdouble()) / log(2.0), (unsigned long)tip->nChainTx,

From 53a5bd0790d6b32cb0c814c92a2ddf467719f33d Mon Sep 17 00:00:00 2001
From: Ava Chow <github@achow101.com>
Date: Mon, 8 Sep 2025 17:16:28 -0700
Subject: [PATCH 159/187] Merge bitcoin/bitcoin#33296: net: check for empty
 header before calling FillBlock

8b6264768030db1840041abeeaeefd6c227a2644 test: send duplicate blocktxn message in p2p_compactblocks.py (Eugene Siegel)
5e585a0fc4fd68dd7b4982054b34deae2e7aeb89 net: check for empty header before calling FillBlock (Eugene Siegel)

Pull request description:

  This avoids an Assume crash if multiple blocktxn messages are received. The first call to `FillBlock` would make the header empty via `SetNull` and the call right before the second `FillBlock` would crash [here](https://github.com/bitcoin/bitcoin/blob/689a32197638e92995dd8eb071425715f5fdc3a4/src/net_processing.cpp#L3333) since `LookupBlockIndex` won't find anything. Fix that by checking for an empty header before the Assume.

ACKs for top commit:
  instagibbs:
    reACK https://github.com/bitcoin/bitcoin/pull/33296/commits/8b6264768030db1840041abeeaeefd6c227a2644
  fjahr:
    tACK 8b6264768030db1840041abeeaeefd6c227a2644
  achow101:
    ACK 8b6264768030db1840041abeeaeefd6c227a2644
  mzumsande:
    Code Review ACK 8b6264768030db1840041abeeaeefd6c227a2644

Tree-SHA512: d43a6f652161d4f7e6137f207a3e95259fc51509279d20347b1698c91179c39c8fcb75d2668b13a6b220f478a03578573208a415804be1d8843acb057fa1a73a
---
 src/net_processing.cpp               | 14 +++++++++
 test/functional/p2p_compactblocks.py | 44 ++++++++++++++++++++++++++--
 2 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index b1e6e8bf85b..dc869c9a878 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -3810,6 +3810,17 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
             }
 
             PartiallyDownloadedBlock& partialBlock = *it->second.second->partialBlock;
+
+            if (partialBlock.header.IsNull()) {
+                // It is possible for the header to be empty if a previous call to FillBlock wiped the header, but left
+                // the PartiallyDownloadedBlock pointer around (i.e. did not call RemoveBlockRequest). In this case, we
+                // should not call LookupBlockIndex below.
+                RemoveBlockRequest(resp.blockhash, pfrom.GetId());
+                Misbehaving(pfrom.GetId(), 100, "previous compact block reconstruction attempt failed");
+                LogPrint(BCLog::NET, "Peer %d sent compact block transactions multiple times", pfrom.GetId());
+                return;
+            }
+
             ReadStatus status = partialBlock.FillBlock(*pblock, resp.txn);
             if (status == READ_STATUS_INVALID) {
                 RemoveBlockRequest(resp.blockhash, pfrom.GetId()); // Reset in-flight state in case Misbehaving does not result in a disconnect
@@ -3817,6 +3828,9 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
                 return;
             } else if (status == READ_STATUS_FAILED) {
                 // Might have collided, fall back to getdata now :(
+                // We keep the failed partialBlock to disallow processing another compact block announcement from the same
+                // peer for the same block. We let the full block download below continue under the same m_downloading_since
+                // timer.
                 std::vector<CInv> invs;
                 invs.push_back(CInv(MSG_BLOCK | GetFetchFlags(pfrom), resp.blockhash));
                 m_connman.PushMessage(&pfrom, msgMaker.Make(NetMsgType::GETDATA, invs));
diff --git a/test/functional/p2p_compactblocks.py b/test/functional/p2p_compactblocks.py
index 76944ec0469..221c09c1774 100755
--- a/test/functional/p2p_compactblocks.py
+++ b/test/functional/p2p_compactblocks.py
@@ -285,7 +285,7 @@ def test_invalid_cmpctblock_message(self):
         # This index will be too high
         prefilled_txn = PrefilledTransaction(1, block.vtx[0])
         cmpct_block.prefilled_txn = [prefilled_txn]
-        self.segwit_node.send_await_disconnect(msg_cmpctblock(cmpct_block))
+        self.additional_segwit_node.send_await_disconnect(msg_cmpctblock(cmpct_block))
         assert_equal(int(self.nodes[0].getbestblockhash(), 16), block.hashPrevBlock)
 
     # Compare the generated shortids to what we expect based on BIP 152, given
@@ -603,6 +603,42 @@ def test_incorrect_blocktxn_response(self, test_node):
             test_node.send_and_ping(msg_no_witness_block(block))
         assert_equal(int(node.getbestblockhash(), 16), block.sha256)
 
+    # Multiple blocktxn responses will cause a node to get disconnected.
+    def test_multiple_blocktxn_response(self, test_node):
+        node = self.nodes[0]
+        utxo = self.utxos[0]
+
+        block = self.build_block_with_transactions(node, utxo, 2)
+
+        # Send compact block
+        comp_block = HeaderAndShortIDs()
+        comp_block.initialize_from_block(block, prefill_list=[0], use_witness=True)
+        test_node.send_and_ping(msg_cmpctblock(comp_block.to_p2p()))
+        absolute_indexes = []
+        with p2p_lock:
+            assert "getblocktxn" in test_node.last_message
+            absolute_indexes = test_node.last_message["getblocktxn"].block_txn_request.to_absolute()
+        assert_equal(absolute_indexes, [1, 2])
+
+        # Send a blocktxn that does not succeed in reconstruction, triggering
+        # getdata fallback.
+        msg = msg_blocktxn()
+        msg.block_transactions = BlockTransactions(block.sha256, [block.vtx[2]] + [block.vtx[1]])
+        test_node.send_and_ping(msg)
+
+        # Tip should not have updated
+        assert_equal(int(node.getbestblockhash(), 16), block.hashPrevBlock)
+
+        # We should receive a getdata request
+        test_node.wait_for_getdata([block.sha256], timeout=10)
+        assert test_node.last_message["getdata"].inv[0].type == MSG_BLOCK or \
+               test_node.last_message["getdata"].inv[0].type == MSG_BLOCK | MSG_WITNESS_FLAG
+
+        # Send the same blocktxn and assert the sender gets disconnected.
+        with node.assert_debug_log(['previous compact block reconstruction attempt failed']):
+            test_node.send_message(msg)
+        test_node.wait_for_disconnect()
+
     def test_getblocktxn_handler(self, test_node):
         version = test_node.cmpct_version
         node = self.nodes[0]
@@ -897,12 +933,16 @@ def run_test(self):
         self.test_invalid_tx_in_compactblock(self.segwit_node)
         self.test_invalid_tx_in_compactblock(self.old_node)
 
+        self.log.info("Testing handling of multiple blocktxn responses...")
+        self.test_multiple_blocktxn_response(self.segwit_node)
+
+        self.segwit_node = self.nodes[0].add_p2p_connection(TestP2PConn(cmpct_version=2))
+
         self.log.info("Testing invalid index in cmpctblock message...")
         self.test_invalid_cmpctblock_message()
 
         self.log.info("Testing high-bandwidth mode states via getpeerinfo...")
         self.test_highbandwidth_mode_states_via_getpeerinfo()
 
-
 if __name__ == '__main__':
     CompactBlocksTest().main()

From 0f06cebc61019299f8959c9162d6b339c3048db2 Mon Sep 17 00:00:00 2001
From: merge-script <fanquake@gmail.com>
Date: Wed, 17 Sep 2025 09:53:55 +0100
Subject: [PATCH 160/187] Merge bitcoin/bitcoin#33395: net: do not apply
 whitelist permissions to onion inbounds

f563ce90818d486d2a199439d2f6ba39cd106352 net: Do not apply whitelist permission to onion inbounds (Martin Zumsande)

Pull request description:

  Tor inbound connections do not reveal the peer's actual network address. Do not apply whitelist permissions to them since address-based matching is ineffective.

ACKs for top commit:
  darosior:
    ACK f563ce90818d486d2a199439d2f6ba39cd106352
  furszy:
    ACK f563ce90818d486d2a199439d2f6ba39cd106352
  vasild:
    ACK f563ce90818d486d2a199439d2f6ba39cd106352

Tree-SHA512: 49ae70e382fc2f78b7073553fe649a6843a41214b2986ea7f77e285d02b7bd00fe0320a1b71d1aaca08713808fb14af058f0b1f19f19adb3a77b97cb9d3449ce
---
 src/net.cpp | 10 ++++++----
 src/net.h   |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/net.cpp b/src/net.cpp
index 9d69b025daa..49d0198efa9 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -569,9 +569,9 @@ void CNode::CloseSocketDisconnect()
     }
 }
 
-void CConnman::AddWhitelistPermissionFlags(NetPermissionFlags& flags, const CNetAddr &addr) const {
+void CConnman::AddWhitelistPermissionFlags(NetPermissionFlags& flags, std::optional<CNetAddr> addr) const {
     for (const auto& subnet : vWhitelistedRange) {
-        if (subnet.m_subnet.Match(addr)) NetPermissions::AddFlag(flags, subnet.m_flags);
+        if (addr.has_value() && subnet.m_subnet.Match(addr.value())) NetPermissions::AddFlag(flags, subnet.m_flags);
     }
 }
 
@@ -1179,7 +1179,10 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
     int nInbound = 0;
     int nMaxInbound = nMaxConnections - m_max_outbound;
 
-    AddWhitelistPermissionFlags(permissionFlags, addr);
+    const bool inbound_onion = std::find(m_onion_binds.begin(), m_onion_binds.end(), addr_bind) != m_onion_binds.end();
+    // Tor inbound connections do not reveal the peer's actual network address.
+    // Therefore do not apply address-based whitelist permissions to them.
+    AddWhitelistPermissionFlags(permissionFlags, inbound_onion ? std::optional<CNetAddr>{} : addr);
     if (NetPermissions::HasFlag(permissionFlags, NetPermissionFlags::Implicit)) {
         NetPermissions::ClearFlag(permissionFlags, NetPermissionFlags::Implicit);
         if (gArgs.GetBoolArg("-whitelistforcerelay", DEFAULT_WHITELISTFORCERELAY)) NetPermissions::AddFlag(permissionFlags, NetPermissionFlags::ForceRelay);
@@ -1243,7 +1246,6 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
         nodeServices = static_cast<ServiceFlags>(nodeServices | NODE_BLOOM);
     }
 
-    const bool inbound_onion = std::find(m_onion_binds.begin(), m_onion_binds.end(), addr_bind) != m_onion_binds.end();
     CNode* pnode = new CNode(id,
                              nodeServices,
                              std::move(sock),
diff --git a/src/net.h b/src/net.h
index 829f3b55f79..2d40a649cc7 100644
--- a/src/net.h
+++ b/src/net.h
@@ -1077,7 +1077,7 @@ class CConnman
 
     bool AttemptToEvictConnection();
     CNode* ConnectNode(CAddress addrConnect, const char *pszDest, bool fCountFailure, ConnectionType conn_type);
-    void AddWhitelistPermissionFlags(NetPermissionFlags& flags, const CNetAddr &addr) const;
+    void AddWhitelistPermissionFlags(NetPermissionFlags& flags, std::optional<CNetAddr> addr) const;
 
     void DeleteNode(CNode* pnode);
 

From 1ac1f75ec0d71a1998081052c6099f6a879a5d7c Mon Sep 17 00:00:00 2001
From: merge-script <fanquake@gmail.com>
Date: Thu, 19 Jun 2025 15:03:58 +0100
Subject: [PATCH 161/187] Merge bitcoin/bitcoin#32765: test: Fix list index out
 of range error in feature_bip68_sequence.py

e285e691b7a311e278f89e9fe423716de1ee268b test: Fix list index out of range error in feature_bip68_sequence.py (zaidmstrr)

Pull request description:

  Fixes [#32334](https://github.com/bitcoin/bitcoin/issues/32334)

  The test `feature_bip68_sequence.py` fails with `IndexError: list index out of range` error due to a mismatch between the number of inputs requested (at random) and the number of UTXOs available. The error is reproducible with the randomseed:
  ```
  $ ./build/test/functional/feature_bip68_sequence.py --randomseed 6169832640268785903
  ```
  This PR adds a valid upper bound to randomly select the inputs.

ACKs for top commit:
  maflcko:
    lgtm ACK e285e691b7a311e278f89e9fe423716de1ee268b
  Prabhat1308:
    re-ACK [`e285e69`](https://github.com/bitcoin/bitcoin/pull/32765/commits/e285e691b7a311e278f89e9fe423716de1ee268b)
  theStack:
    ACK e285e691b7a311e278f89e9fe423716de1ee268b

Tree-SHA512: 2e5e19d5db2880915f556ed4444abed94e9ceb1ecee5f857df5616040c850dae682aaa4ade3060c48acb16676df92ba81c3af078c1958965e9e874e7bb489388
---
 test/functional/feature_bip68_sequence.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/test/functional/feature_bip68_sequence.py b/test/functional/feature_bip68_sequence.py
index a916bdd2c71..398e311734a 100755
--- a/test/functional/feature_bip68_sequence.py
+++ b/test/functional/feature_bip68_sequence.py
@@ -161,8 +161,10 @@ def test_sequence_lock_confirmed_inputs(self):
         # between height/time locking). Small random chance of making the locks
         # all pass.
         for _ in range(400):
+            available_utxos = len(utxos)
+
             # Randomly choose up to 10 inputs
-            num_inputs = random.randint(1, 10)
+            num_inputs = random.randint(1, min(10, available_utxos))
             random.shuffle(utxos)
 
             # Track whether any sequence locks used should fail

From b7ee5fb8a536af7fb6f7b51090efa75d2c33ff65 Mon Sep 17 00:00:00 2001
From: merge-script <fanquake@gmail.com>
Date: Wed, 23 Jul 2025 16:44:41 +0100
Subject: [PATCH 162/187] Merge bitcoin/bitcoin#33001: test: Do not pass tests
 on unhandled exceptions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

faa3e684118bffa7a98cf76eeeb59243219df900 test: Log KeyboardInterrupt as exception (MarcoFalke)
fa30b34026f76a5b8af997152fced2d281782e0d test: Do not pass tests on unhandled exceptions (MarcoFalke)

Pull request description:

  Currently the functional tests are problematic, because they pass, even if they encounter an unhanded exception.

  Fix this by handling all exceptions: Catch `BaseException` as fallback and mark it as failure.

  Can be tested via:

  ```diff
  diff --git a/test/functional/wallet_disable.py b/test/functional/wallet_disable.py
  index da6e5d408f..ecc41fb041 100755
  --- a/test/functional/wallet_disable.py
  +++ b/test/functional/wallet_disable.py
  @@ -19,6 +19,7 @@ class DisableWalletTest (BitcoinTestFramework):
           self.wallet_names = []

       def run_test (self):
  +        import sys;sys.exit("fatal error")
           # Make sure wallet is really disabled
           assert_raises_rpc_error(-32601, 'Method not found', self.nodes[0].getwalletinfo)
           x = self.nodes[0].validateaddress('3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy')
  ```

  Previously, the test would pass. With this patch, it would fail.

ACKs for top commit:
  enirox001:
    Looks good to me—ACK faa3e68
  stickies-v:
    re-ACK faa3e684118bffa7a98cf76eeeb59243219df900
  pablomartin4btc:
    tACK faa3e684118bffa7a98cf76eeeb59243219df900

Tree-SHA512: 11ecd5201982e2c776e48d98834b17c15a415306a95524bc702daeba20a316aac797748e9592be8db575597804f149ee7ef104416037cc9e5891758625810e2d
---
 src/net_processing.cpp                         |  2 +-
 .../test_framework/test_framework.py           | 18 +++---------------
 2 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index dc869c9a878..34e5888c83e 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -3817,7 +3817,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
                 // should not call LookupBlockIndex below.
                 RemoveBlockRequest(resp.blockhash, pfrom.GetId());
                 Misbehaving(pfrom.GetId(), 100, "previous compact block reconstruction attempt failed");
-                LogPrint(BCLog::NET, "Peer %d sent compact block transactions multiple times", pfrom.GetId());
+                LogPrint(BCLog::NET, "Peer %d sent compact block transactions multiple times\n", pfrom.GetId());
                 return;
             }
 
diff --git a/test/functional/test_framework/test_framework.py b/test/functional/test_framework/test_framework.py
index 887f6170974..c78d76b07c4 100755
--- a/test/functional/test_framework/test_framework.py
+++ b/test/functional/test_framework/test_framework.py
@@ -130,26 +130,14 @@ def main(self):
         try:
             self.setup()
             self.run_test()
-        except JSONRPCException:
-            self.log.exception("JSONRPC error")
-            self.success = TestStatus.FAILED
         except SkipTest as e:
             self.log.warning("Test Skipped: %s" % e.message)
             self.success = TestStatus.SKIPPED
-        except AssertionError:
-            self.log.exception("Assertion failed")
-            self.success = TestStatus.FAILED
-        except KeyError:
-            self.log.exception("Key error")
-            self.success = TestStatus.FAILED
         except subprocess.CalledProcessError as e:
-            self.log.exception("Called Process failed with '{}'".format(e.output))
-            self.success = TestStatus.FAILED
-        except Exception:
-            self.log.exception("Unexpected exception caught during testing")
+            self.log.exception(f"Called Process failed with stdout='{e.stdout}'; stderr='{e.stderr}';")
             self.success = TestStatus.FAILED
-        except KeyboardInterrupt:
-            self.log.warning("Exiting after keyboard interrupt")
+        except BaseException:
+            self.log.exception("Unexpected exception")
             self.success = TestStatus.FAILED
         finally:
             exit_code = self.shutdown()

From 4b301666ff12c44b22ea568fdfd490810524f60a Mon Sep 17 00:00:00 2001
From: Ava Chow <github@achow101.com>
Date: Tue, 12 Aug 2025 14:35:18 -0700
Subject: [PATCH 163/187] Merge bitcoin/bitcoin#33050: net, validation: don't
 punish peers for consensus-invalid txs

876dbdfb4702410dfd4037614dc9298a0c09c63e tests: drop expect_disconnect behaviour for tx relay (Anthony Towns)
b29ae9efdfeeff774e32ee433ce67d8ed8ecd49f validation: only check input scripts once (Anthony Towns)
266dd0e10d08c0bfde63205db15d6c210a021b90 net_processing: drop MaybePunishNodeForTx (Anthony Towns)

Pull request description:

  Because we do not discourage nodes for transactions we consider non-standard, we don't get any DoS protection from this check in adversarial scenarios, so remove the check entirely both to simplify the code and reduce the risk of splitting the network due to changes in tx relay policy.

  Then, because we no longer make use of the distinction between consensus and standardness failures during script validation, don't re-validate each script with only-consensus rules, reducing the cost to us of transactions that we won't relay.

ACKs for top commit:
  achow101:
    ACK 876dbdfb4702410dfd4037614dc9298a0c09c63e
  darosior:
    re-ACK 876dbdfb4702410dfd4037614dc9298a0c09c63e
  sipa:
    re-ACK 876dbdfb4702410dfd4037614dc9298a0c09c63e
  glozow:
    ACK 876dbdfb4702410dfd4037614dc9298a0c09c63e

Tree-SHA512: 8bb0395766dde54fc48f7077b80b88e35581aa6e3054d6d65735965147abefffa7348f0850bb3d46f6c2541fd384ecd40a00a57fa653adabff8a35582e2d1811
---
 src/net_processing.cpp                | 38 ---------------------------
 src/validation.cpp                    | 25 +++++++-----------
 test/functional/data/invalid_txs.py   | 18 +------------
 test/functional/feature_block.py      |  5 +++-
 test/functional/feature_cltv.py       | 15 ++++++-----
 test/functional/feature_dersig.py     |  4 +--
 test/functional/feature_nulldummy.py  |  3 +--
 test/functional/feature_segwit.py     | 24 ++++++++---------
 test/functional/p2p_invalid_tx.py     |  6 -----
 test/functional/p2p_segwit.py         | 32 +++++++++++-----------
 test/functional/rpc_packages.py       |  2 +-
 test/functional/test_framework/p2p.py |  8 ++----
 12 files changed, 57 insertions(+), 123 deletions(-)

diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index b1e6e8bf85b..4da940bc35e 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -368,13 +368,6 @@ class PeerManagerImpl final : public PeerManager
     bool MaybePunishNodeForBlock(NodeId nodeid, const BlockValidationState& state,
                                  bool via_compact_block, const std::string& message = "");
 
-    /**
-     * Potentially disconnect and discourage a node based on the contents of a TxValidationState object
-     *
-     * @return Returns true if the peer was punished (probably disconnected)
-     */
-    bool MaybePunishNodeForTx(NodeId nodeid, const TxValidationState& state, const std::string& message = "");
-
     /** Maybe disconnect a peer and discourage future connections from its address.
      *
      * @param[in]   pnode     The node to check.
@@ -1437,34 +1430,6 @@ bool PeerManagerImpl::MaybePunishNodeForBlock(NodeId nodeid, const BlockValidati
     return false;
 }
 
-bool PeerManagerImpl::MaybePunishNodeForTx(NodeId nodeid, const TxValidationState& state, const std::string& message)
-{
-    switch (state.GetResult()) {
-    case TxValidationResult::TX_RESULT_UNSET:
-        break;
-    // The node is providing invalid data:
-    case TxValidationResult::TX_CONSENSUS:
-        Misbehaving(nodeid, 100, message);
-        return true;
-    // Conflicting (but not necessarily invalid) data or different policy:
-    case TxValidationResult::TX_RECENT_CONSENSUS_CHANGE:
-    case TxValidationResult::TX_INPUTS_NOT_STANDARD:
-    case TxValidationResult::TX_NOT_STANDARD:
-    case TxValidationResult::TX_MISSING_INPUTS:
-    case TxValidationResult::TX_PREMATURE_SPEND:
-    case TxValidationResult::TX_WITNESS_MUTATED:
-    case TxValidationResult::TX_WITNESS_STRIPPED:
-    case TxValidationResult::TX_CONFLICT:
-    case TxValidationResult::TX_MEMPOOL_POLICY:
-    case TxValidationResult::TX_NO_MEMPOOL:
-        break;
-    }
-    if (message != "") {
-        LogPrint(BCLog::NET, "peer=%d: %s\n", nodeid, message);
-    }
-    return false;
-}
-
 bool PeerManagerImpl::BlockRequestAllowed(const CBlockIndex* pindex)
 {
     AssertLockHeld(cs_main);
@@ -2392,8 +2357,6 @@ void PeerManagerImpl::ProcessOrphanTx(std::set<uint256>& orphan_work_set)
                     orphanHash.ToString(),
                     from_peer,
                     state.ToString());
-                // Maybe punish peer that gave us an invalid orphan tx
-                MaybePunishNodeForTx(from_peer, state);
             }
             // Has inputs but not accepted to mempool
             // Probably non-standard or insufficient fee
@@ -3559,7 +3522,6 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
             LogPrint(BCLog::MEMPOOLREJ, "%s from peer=%d was not accepted: %s\n", tx.GetHash().ToString(),
                 pfrom.GetId(),
                 state.ToString());
-            MaybePunishNodeForTx(pfrom.GetId(), state);
         }
         return;
     }
diff --git a/src/validation.cpp b/src/validation.cpp
index a307c3036bb..95feba0b775 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -1793,21 +1793,15 @@ bool CheckInputScripts(const CTransaction& tx, TxValidationState& state,
         CCheck* check = new CScriptCheck(txdata.m_spent_outputs[i], tx, i, flags, cacheSigStore, &txdata);
         ScriptError serror = QueueCheck(pvChecks, check);
         if (serror != SCRIPT_ERR_OK) {
+            // Tx failures never trigger disconnections/bans.
+            // This is so that network splits aren't triggered
+            // either due to non-consensus relay policies (such as
+            // non-standard DER encodings or non-null dummy
+            // arguments) or due to new consensus rules introduced in
+            // soft forks.
             if (flags & STANDARD_NOT_MANDATORY_VERIFY_FLAGS) {
-                // Check whether the failure was caused by a
-                // non-mandatory script verification check, such as
-                // non-standard DER encodings or non-null dummy
-                // arguments; if so, ensure we return NOT_STANDARD
-                // instead of CONSENSUS to avoid downstream users
-                // splitting the network between upgraded and
-                // non-upgraded nodes by banning CONSENSUS-failing
-                // data providers.
-                CScriptCheck check2(txdata.m_spent_outputs[i], tx, i,
-                        flags & ~STANDARD_NOT_MANDATORY_VERIFY_FLAGS, cacheSigStore, &txdata);
-                if (check2()) {
-                    return state.Invalid(TxValidationResult::TX_NOT_STANDARD, strprintf("non-mandatory-script-verify-flag (%s)", ScriptErrorString(serror)));
-                }
-            }
+                return state.Invalid(TxValidationResult::TX_NOT_STANDARD, strprintf("mempool-script-verify-flag-failed (%s)", ScriptErrorString(serror)));
+            } else {
             // MANDATORY flag failures correspond to
             // TxValidationResult::TX_CONSENSUS. Because CONSENSUS
             // failures are the most serious case of validation
@@ -1817,7 +1811,8 @@ bool CheckInputScripts(const CTransaction& tx, TxValidationState& state,
             // support, to avoid splitting the network (but this
             // depends on the details of how net_processing handles
             // such errors).
-            return state.Invalid(TxValidationResult::TX_CONSENSUS, strprintf("mandatory-script-verify-flag-failed (%s)", ScriptErrorString(serror)));
+                return state.Invalid(TxValidationResult::TX_CONSENSUS, strprintf("mandatory-script-verify-flag-failed (%s)", ScriptErrorString(serror)));
+            }
         }
     }
 
diff --git a/test/functional/data/invalid_txs.py b/test/functional/data/invalid_txs.py
index fd9773c4c2e..b4c0aaf61ae 100644
--- a/test/functional/data/invalid_txs.py
+++ b/test/functional/data/invalid_txs.py
@@ -69,9 +69,6 @@ class BadTxTemplate:
     # Only specified if it differs from mempool acceptance error.
     block_reject_reason = ""
 
-    # Do we expect to be disconnected after submitting this tx?
-    expect_disconnect = False
-
     # Is this tx considered valid when included in a block, but not for acceptance into
     # the mempool (i.e. does it violate policy but not consensus)?
     valid_in_block = False
@@ -89,7 +86,6 @@ def get_tx(self, *args, **kwargs):
 
 class OutputMissing(BadTxTemplate):
     reject_reason = "bad-txns-vout-empty"
-    expect_disconnect = True
 
     def get_tx(self):
         tx = CTransaction()
@@ -100,7 +96,6 @@ def get_tx(self):
 
 class InputMissing(BadTxTemplate):
     reject_reason = "bad-txns-vin-empty"
-    expect_disconnect = True
 
     # We use a blank transaction here to make sure
     # it is interpreted as a non-witness transaction.
@@ -134,7 +129,6 @@ class BadInputOutpointIndex(BadTxTemplate):
     # Won't be rejected - nonexistent outpoint index is treated as an orphan since the coins
     # database can't distinguish between spent outpoints and outpoints which never existed.
     reject_reason = None
-    expect_disconnect = False
 
     def get_tx(self):
         num_indices = len(self.spend_tx.vin)
@@ -149,7 +143,6 @@ def get_tx(self):
 
 class DuplicateInput(BadTxTemplate):
     reject_reason = 'bad-txns-inputs-duplicate'
-    expect_disconnect = True
 
     def get_tx(self):
         tx = CTransaction()
@@ -162,7 +155,6 @@ def get_tx(self):
 
 class PrevoutNullInput(BadTxTemplate):
     reject_reason = 'bad-txns-prevout-null'
-    expect_disconnect = True
 
     def get_tx(self):
         tx = CTransaction()
@@ -175,7 +167,6 @@ def get_tx(self):
 
 class NonexistentInput(BadTxTemplate):
     reject_reason = None  # Added as an orphan tx.
-    expect_disconnect = False
 
     def get_tx(self):
         tx = CTransaction()
@@ -189,7 +180,6 @@ def get_tx(self):
 class SpendTooMuch(BadTxTemplate):
     reject_reason = 'bad-txns-in-ne-out'
     block_reject_reason = 'block-validation-failed'
-    expect_disconnect = True
 
     def get_tx(self):
         return create_tx_with_script(
@@ -198,7 +188,6 @@ def get_tx(self):
 
 class CreateNegative(BadTxTemplate):
     reject_reason = 'bad-txns-vout-negative'
-    expect_disconnect = True
 
     def get_tx(self):
         return create_tx_with_script(self.spend_tx, 0, amount=-1)
@@ -206,7 +195,6 @@ def get_tx(self):
 
 class CreateTooLarge(BadTxTemplate):
     reject_reason = 'bad-txns-vout-toolarge'
-    expect_disconnect = True
 
     def get_tx(self):
         return create_tx_with_script(self.spend_tx, 0, amount=MAX_MONEY + 1)
@@ -214,7 +202,6 @@ def get_tx(self):
 
 class CreateSumTooLarge(BadTxTemplate):
     reject_reason = 'bad-txns-txouttotal-toolarge'
-    expect_disconnect = True
 
     def get_tx(self):
         tx = create_tx_with_script(self.spend_tx, 0, amount=MAX_MONEY)
@@ -224,8 +211,7 @@ def get_tx(self):
 
 
 class InvalidOPIFConstruction(BadTxTemplate):
-    reject_reason = "mandatory-script-verify-flag-failed (Invalid OP_IF construction)"
-    expect_disconnect = True
+    reject_reason = "mempool-script-verify-flag-failed (Invalid OP_IF construction)"
     valid_in_block = True
 
     def get_tx(self):
@@ -237,7 +223,6 @@ def get_tx(self):
 class TooManySigops(BadTxTemplate):
     reject_reason = "bad-txns-too-many-sigops"
     block_reject_reason = "bad-blk-sigops, out-of-bounds SigOpCount"
-    expect_disconnect = False
 
     def get_tx(self):
         lotsa_checksigs = CScript([OP_CHECKSIG] * (MAX_BLOCK_SIGOPS))
@@ -260,7 +245,6 @@ def get_tx(self):
 
     return type('DisabledOpcode_' + str(opcode), (BadTxTemplate,), {
         'reject_reason': "disabled opcode",
-        'expect_disconnect': True,
         'get_tx': get_tx,
         'valid_in_block' : True
         })
diff --git a/test/functional/feature_block.py b/test/functional/feature_block.py
index f906f29250c..3030d94ec3e 100755
--- a/test/functional/feature_block.py
+++ b/test/functional/feature_block.py
@@ -168,9 +168,12 @@ def run_test(self):
                 self.sign_tx(badtx, attempt_spend_tx)
             badtx.rehash()
             badblock = self.update_block(blockname, [badtx])
+            reject_reason = (template.block_reject_reason or template.reject_reason)
+            if reject_reason == "mempool-script-verify-flag-failed":
+                reject_reason = "mandatory-script-verify-flag-failed" + reject_reason[33:]
             self.send_blocks(
                 [badblock], success=False,
-                reject_reason=(template.block_reject_reason or template.reject_reason),
+                reject_reason=reject_reason,
                 reconnect=True, timeout=2)
 
             self.move_tip(2)
diff --git a/test/functional/feature_cltv.py b/test/functional/feature_cltv.py
index 4bcbe27189a..0f47a1656c5 100755
--- a/test/functional/feature_cltv.py
+++ b/test/functional/feature_cltv.py
@@ -150,12 +150,13 @@ def run_test(self):
             spendtx = wallet.create_self_transfer()['tx']
             cltv_invalidate(spendtx, i)
 
+            tx_rej = "mempool-script-verify-flag-failed"
             expected_cltv_reject_reason = [
-                "non-mandatory-script-verify-flag (Operation not valid with the current stack size)",
-                "non-mandatory-script-verify-flag (Negative locktime)",
-                "non-mandatory-script-verify-flag (Locktime requirement not satisfied)",
-                "non-mandatory-script-verify-flag (Locktime requirement not satisfied)",
-                "non-mandatory-script-verify-flag (Locktime requirement not satisfied)",
+                " (Operation not valid with the current stack size)",
+                " (Negative locktime)",
+                " (Locktime requirement not satisfied)",
+                " (Locktime requirement not satisfied)",
+                " (Locktime requirement not satisfied)",
             ][i]
             # First we show that this tx is valid except for CLTV by getting it
             # rejected from the mempool for exactly that reason.
@@ -164,7 +165,7 @@ def run_test(self):
                     'txid': spendtx.hash,
                     'wtxid': spendtx.getwtxid(),
                     'allowed': False,
-                    'reject-reason': expected_cltv_reject_reason,
+                    'reject-reason': tx_rej + expected_cltv_reject_reason,
                 }],
                 self.nodes[0].testmempoolaccept(rawtxs=[spendtx.serialize().hex()], maxfeerate=0),
             )
@@ -174,7 +175,7 @@ def run_test(self):
             block.hashMerkleRoot = block.calc_merkle_root()
             block.solve()
 
-            with self.nodes[0].assert_debug_log(expected_msgs=[f'CheckInputScripts on {block.vtx[-1].hash} failed with {expected_cltv_reject_reason}']):
+            with self.nodes[0].assert_debug_log(expected_msgs=[f'CheckInputScripts on {block.vtx[-1].hash} failed with {tx_rej + expected_cltv_reject_reason}']):
                 peer.send_and_ping(msg_block(block))
                 assert_equal(int(self.nodes[0].getbestblockhash(), 16), tip)
                 peer.sync_with_ping()
diff --git a/test/functional/feature_dersig.py b/test/functional/feature_dersig.py
index d39002be051..52acd2af499 100755
--- a/test/functional/feature_dersig.py
+++ b/test/functional/feature_dersig.py
@@ -121,7 +121,7 @@ def run_test(self):
                 'txid': spendtx.hash,
                 'wtxid': spendtx.getwtxid(),
                 'allowed': False,
-                'reject-reason': 'non-mandatory-script-verify-flag (Non-canonical DER signature)',
+                'reject-reason': 'mempool-script-verify-flag-failed (Non-canonical DER signature)',
             }],
             self.nodes[0].testmempoolaccept(rawtxs=[spendtx.serialize().hex()], maxfeerate=0),
         )
@@ -131,7 +131,7 @@ def run_test(self):
         block.hashMerkleRoot = block.calc_merkle_root()
         block.solve()
 
-        with self.nodes[0].assert_debug_log(expected_msgs=[f'CheckInputScripts on {block.vtx[-1].hash} failed with non-mandatory-script-verify-flag (Non-canonical DER signature)']):
+        with self.nodes[0].assert_debug_log(expected_msgs=[f'CheckInputScripts on {block.vtx[-1].hash} failed with mempool-script-verify-flag-failed (Non-canonical DER signature)']):
             peer.send_and_ping(msg_block(block))
             assert_equal(int(self.nodes[0].getbestblockhash(), 16), tip)
             peer.sync_with_ping()
diff --git a/test/functional/feature_nulldummy.py b/test/functional/feature_nulldummy.py
index 00ff8210eba..9c0a56f23cf 100755
--- a/test/functional/feature_nulldummy.py
+++ b/test/functional/feature_nulldummy.py
@@ -33,8 +33,7 @@
     assert_raises_rpc_error,
 )
 
-NULLDUMMY_ERROR = "non-mandatory-script-verify-flag (Dummy CHECKMULTISIG argument must be zero)"
-
+NULLDUMMY_ERROR = "mempool-script-verify-flag-failed (Dummy CHECKMULTISIG argument must be zero)"
 
 def invalidate_nulldummy_tx(tx):
     """Transform a NULLDUMMY compliant tx (i.e. scriptSig starts with OP_0)
diff --git a/test/functional/feature_segwit.py b/test/functional/feature_segwit.py
index 5cf55b029e7..d91e6ffbc08 100755
--- a/test/functional/feature_segwit.py
+++ b/test/functional/feature_segwit.py
@@ -207,8 +207,8 @@ def run_test(self):
         self.skip_mine(self.nodes[2], p2sh_ids[NODE_2][P2WSH][0], True)  # block 427
 
         self.log.info("Verify unsigned p2sh witness txs without a redeem script are invalid")
-        self.fail_accept(self.nodes[2], "mandatory-script-verify-flag-failed (Operation not valid with the current stack size)", p2sh_ids[NODE_2][P2WPKH][1], sign=False)
-        self.fail_accept(self.nodes[2], "mandatory-script-verify-flag-failed (Operation not valid with the current stack size)", p2sh_ids[NODE_2][P2WSH][1], sign=False)
+        self.fail_accept(self.nodes[2], "mempool-script-verify-flag-failed (Operation not valid with the current stack size)", p2sh_ids[NODE_2][P2WPKH][1], sign=False)
+        self.fail_accept(self.nodes[2], "mempool-script-verify-flag-failed (Operation not valid with the current stack size)", p2sh_ids[NODE_2][P2WSH][1], sign=False)
 
         self.generate(self.nodes[2], 4)  # blocks 428-431
 
@@ -221,13 +221,13 @@ def run_test(self):
 
         self.log.info("Verify default node can't accept txs with missing witness")
         # unsigned, no scriptsig
-        self.fail_accept(self.nodes[0], "non-mandatory-script-verify-flag (Witness program hash mismatch)", wit_ids[NODE_0][P2WPKH][0], sign=False)
-        self.fail_accept(self.nodes[0], "non-mandatory-script-verify-flag (Witness program was passed an empty witness)", wit_ids[NODE_0][P2WSH][0], sign=False)
-        self.fail_accept(self.nodes[0], "mandatory-script-verify-flag-failed (Operation not valid with the current stack size)", p2sh_ids[NODE_0][P2WPKH][0], sign=False)
-        self.fail_accept(self.nodes[0], "mandatory-script-verify-flag-failed (Operation not valid with the current stack size)", p2sh_ids[NODE_0][P2WSH][0], sign=False)
+        self.fail_accept(self.nodes[0], "mempool-script-verify-flag-failed (Witness program hash mismatch)", wit_ids[NODE_0][P2WPKH][0], sign=False)
+        self.fail_accept(self.nodes[0], "mempool-script-verify-flag-failed (Witness program was passed an empty witness)", wit_ids[NODE_0][P2WSH][0], sign=False)
+        self.fail_accept(self.nodes[0], "mempool-script-verify-flag-failed (Operation not valid with the current stack size)", p2sh_ids[NODE_0][P2WPKH][0], sign=False)
+        self.fail_accept(self.nodes[0], "mempool-script-verify-flag-failed (Operation not valid with the current stack size)", p2sh_ids[NODE_0][P2WSH][0], sign=False)
         # unsigned with redeem script
-        self.fail_accept(self.nodes[0], "non-mandatory-script-verify-flag (Witness program hash mismatch)", p2sh_ids[NODE_0][P2WPKH][0], sign=False, redeem_script=witness_script(False, self.pubkey[0]))
-        self.fail_accept(self.nodes[0], "non-mandatory-script-verify-flag (Witness program was passed an empty witness)", p2sh_ids[NODE_0][P2WSH][0], sign=False, redeem_script=witness_script(True, self.pubkey[0]))
+        self.fail_accept(self.nodes[0], "mempool-script-verify-flag-failed (Witness program hash mismatch)", p2sh_ids[NODE_0][P2WPKH][0], sign=False, redeem_script=witness_script(False, self.pubkey[0]))
+        self.fail_accept(self.nodes[0], "mempool-script-verify-flag-failed (Witness program was passed an empty witness)", p2sh_ids[NODE_0][P2WSH][0], sign=False, redeem_script=witness_script(True, self.pubkey[0]))
 
         self.log.info("Verify block and transaction serialization rpcs return differing serializations depending on rpc serialization flag")
         assert self.nodes[2].getblock(blockhash, False) != self.nodes[0].getblock(blockhash, False)
@@ -250,10 +250,10 @@ def run_test(self):
         assert_equal(witnesses[0], '00' * 32)
 
         self.log.info("Verify witness txs without witness data are invalid after the fork")
-        self.fail_accept(self.nodes[2], 'non-mandatory-script-verify-flag (Witness program hash mismatch)', wit_ids[NODE_2][P2WPKH][2], sign=False)
-        self.fail_accept(self.nodes[2], 'non-mandatory-script-verify-flag (Witness program was passed an empty witness)', wit_ids[NODE_2][P2WSH][2], sign=False)
-        self.fail_accept(self.nodes[2], 'non-mandatory-script-verify-flag (Witness program hash mismatch)', p2sh_ids[NODE_2][P2WPKH][2], sign=False, redeem_script=witness_script(False, self.pubkey[2]))
-        self.fail_accept(self.nodes[2], 'non-mandatory-script-verify-flag (Witness program was passed an empty witness)', p2sh_ids[NODE_2][P2WSH][2], sign=False, redeem_script=witness_script(True, self.pubkey[2]))
+        self.fail_accept(self.nodes[2], 'mempool-script-verify-flag-failed (Witness program hash mismatch)', wit_ids[NODE_2][P2WPKH][2], sign=False)
+        self.fail_accept(self.nodes[2], 'mempool-script-verify-flag-failed (Witness program was passed an empty witness)', wit_ids[NODE_2][P2WSH][2], sign=False)
+        self.fail_accept(self.nodes[2], 'mempool-script-verify-flag-failed (Witness program hash mismatch)', p2sh_ids[NODE_2][P2WPKH][2], sign=False, redeem_script=witness_script(False, self.pubkey[2]))
+        self.fail_accept(self.nodes[2], 'mempool-script-verify-flag-failed (Witness program was passed an empty witness)', p2sh_ids[NODE_2][P2WSH][2], sign=False, redeem_script=witness_script(True, self.pubkey[2]))
 
         self.log.info("Verify default node can now use witness txs")
         self.success_mine(self.nodes[0], wit_ids[NODE_0][P2WPKH][0], True)  # block 432
diff --git a/test/functional/p2p_invalid_tx.py b/test/functional/p2p_invalid_tx.py
index 88e7d0ba59a..1ad809c2b5e 100755
--- a/test/functional/p2p_invalid_tx.py
+++ b/test/functional/p2p_invalid_tx.py
@@ -74,14 +74,9 @@ def run_test(self):
             tx = template.get_tx()
             node.p2ps[0].send_txs_and_test(
                 [tx], node, success=False,
-                expect_disconnect=template.expect_disconnect,
                 reject_reason=template.reject_reason,
             )
 
-            if template.expect_disconnect:
-                self.log.info("Reconnecting to peer")
-                self.reconnect_p2p()
-
         # Make two p2p connections to provide the node with orphans
         # * p2ps[0] will send valid orphan txs (one with low fee)
         # * p2ps[1] will send an invalid orphan tx (and is later disconnected for that)
@@ -148,7 +143,6 @@ def run_test(self):
         # tx_orphan_2_no_fee, because it has too low fee (p2ps[0] is not disconnected for relaying that tx)
         # tx_orphan_2_invalid, because it has negative fee (p2ps[1] is disconnected for relaying that tx)
 
-        self.wait_until(lambda: 1 == len(node.getpeerinfo()), timeout=12)  # p2ps[1] is no longer connected
         assert_equal(expected_mempool, set(node.getrawmempool()))
 
         self.log.info('Test orphan pool overflow')
diff --git a/test/functional/p2p_segwit.py b/test/functional/p2p_segwit.py
index 60c447ffcc2..e1e75c53343 100755
--- a/test/functional/p2p_segwit.py
+++ b/test/functional/p2p_segwit.py
@@ -518,10 +518,10 @@ def test_v0_outputs_arent_spendable(self):
             # without a witness is invalid).
             # Note: The reject reason for this failure could be
             # 'block-validation-failed' (if script check threads > 1) or
-            # 'non-mandatory-script-verify-flag (Witness program was passed an
+            # 'mempool-script-verify-flag-failed (Witness program was passed an
             # empty witness)' (otherwise).
             test_witness_block(self.nodes[0], self.test_node, block, accepted=False, with_witness=False,
-                               reason='non-mandatory-script-verify-flag (Witness program was passed an empty witness)')
+                               reason='mempool-script-verify-flag-failed (Witness program was passed an empty witness)')
 
         self.utxo.pop(0)
         self.utxo.append(UTXO(txid, 2, value))
@@ -718,7 +718,7 @@ def test_p2sh_witness(self):
         # segwit activation.  Note that older bitcoind's that are not
         # segwit-aware would also reject this for failing CLEANSTACK.
         with self.nodes[0].assert_debug_log(
-                expected_msgs=(spend_tx.hash, 'was not accepted: non-mandatory-script-verify-flag (Witness program was passed an empty witness)')):
+                expected_msgs=(spend_tx.hash, 'was not accepted: mempool-script-verify-flag-failed (Witness program was passed an empty witness)')):
             test_transaction_acceptance(self.nodes[0], self.test_node, spend_tx, with_witness=False, accepted=False)
 
         # The transaction was detected as witness stripped above and not added to the reject
@@ -731,7 +731,7 @@ def test_p2sh_witness(self):
         spend_tx.vin[0].scriptSig = CScript([p2wsh_pubkey, b'a'])
         spend_tx.rehash()
         with self.nodes[0].assert_debug_log(
-                expected_msgs=(spend_tx.hash, 'was not accepted: mandatory-script-verify-flag-failed (Script evaluated without error but finished with a false/empty top stack element)')):
+                expected_msgs=(spend_tx.hash, 'was not accepted: mempool-script-verify-flag-failed (Script evaluated without error but finished with a false/empty top stack element)')):
             test_transaction_acceptance(self.nodes[0], self.test_node, spend_tx, with_witness=False, accepted=False)
 
         # Now put the witness script in the witness, should succeed after
@@ -1025,7 +1025,7 @@ def test_extra_witness_data(self):
 
         # Extra witness data should not be allowed.
         test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                           reason='non-mandatory-script-verify-flag (Witness provided for non-witness script)')
+                           reason='mempool-script-verify-flag-failed (Witness provided for non-witness script)')
 
         # Try extra signature data.  Ok if we're not spending a witness output.
         block.vtx[1].wit.vtxinwit = []
@@ -1052,7 +1052,7 @@ def test_extra_witness_data(self):
 
         # This has extra witness data, so it should fail.
         test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                           reason='non-mandatory-script-verify-flag (Stack size must be exactly one after execution)')
+                           reason='mempool-script-verify-flag-failed (Stack size must be exactly one after execution)')
 
         # Now get rid of the extra witness, but add extra scriptSig data
         tx2.vin[0].scriptSig = CScript([OP_TRUE])
@@ -1065,7 +1065,7 @@ def test_extra_witness_data(self):
 
         # This has extra signature data for a witness input, so it should fail.
         test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                           reason='non-mandatory-script-verify-flag (Witness requires empty scriptSig)')
+                           reason='mempool-script-verify-flag-failed (Witness requires empty scriptSig)')
 
         # Now get rid of the extra scriptsig on the witness input, and verify
         # success (even with extra scriptsig data in the non-witness input)
@@ -1106,7 +1106,7 @@ def test_max_witness_push_length(self):
 
         self.update_witness_block_with_transactions(block, [tx, tx2])
         test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                           reason='non-mandatory-script-verify-flag (Push value size limit exceeded)')
+                           reason='mempool-script-verify-flag-failed (Push value size limit exceeded)')
 
         # Now reduce the length of the stack element
         tx2.wit.vtxinwit[0].scriptWitness.stack[0] = b'a' * (MAX_SCRIPT_ELEMENT_SIZE)
@@ -1149,7 +1149,7 @@ def test_max_witness_script_length(self):
         self.update_witness_block_with_transactions(block, [tx, tx2])
 
         test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                           reason='non-mandatory-script-verify-flag (Script is too big)')
+                           reason='mempool-script-verify-flag-failed (Script is too big)')
 
         # Try again with one less byte in the witness script
         witness_script = CScript([b'a' * MAX_SCRIPT_ELEMENT_SIZE] * 19 + [OP_DROP] * 62 + [OP_TRUE])
@@ -1244,7 +1244,7 @@ def serialize_with_witness(self):
         block.vtx = [block.vtx[0]]
         self.update_witness_block_with_transactions(block, [tx2])
         test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                           reason='non-mandatory-script-verify-flag (Operation not valid with the current stack size)')
+                           reason='mempool-script-verify-flag-failed (Operation not valid with the current stack size)')
 
         # Fix the broken witness and the block should be accepted.
         tx2.wit.vtxinwit[5].scriptWitness.stack = [b'a', witness_script]
@@ -1535,7 +1535,7 @@ def test_uncompressed_pubkey(self):
         tx2.rehash()
 
         # Should fail policy test.
-        test_transaction_acceptance(self.nodes[0], self.test_node, tx2, True, False, 'non-mandatory-script-verify-flag (Using non-compressed keys in segwit)')
+        test_transaction_acceptance(self.nodes[0], self.test_node, tx2, True, False, 'mempool-script-verify-flag-failed (Using non-compressed keys in segwit)')
         # But passes consensus.
         block = self.build_next_block()
         self.update_witness_block_with_transactions(block, [tx2])
@@ -1555,7 +1555,7 @@ def test_uncompressed_pubkey(self):
         sign_p2pk_witness_input(witness_script, tx3, 0, SIGHASH_ALL, tx2.vout[0].nValue.getAmount(), key)
 
         # Should fail policy test.
-        test_transaction_acceptance(self.nodes[0], self.test_node, tx3, True, False, 'non-mandatory-script-verify-flag (Using non-compressed keys in segwit)')
+        test_transaction_acceptance(self.nodes[0], self.test_node, tx3, True, False, 'mempool-script-verify-flag-failed (Using non-compressed keys in segwit)')
         # But passes consensus.
         block = self.build_next_block()
         self.update_witness_block_with_transactions(block, [tx3])
@@ -1573,7 +1573,7 @@ def test_uncompressed_pubkey(self):
         sign_p2pk_witness_input(witness_script, tx4, 0, SIGHASH_ALL, tx3.vout[0].nValue.getAmount(), key)
 
         # Should fail policy test.
-        test_transaction_acceptance(self.nodes[0], self.test_node, tx4, True, False, 'non-mandatory-script-verify-flag (Using non-compressed keys in segwit)')
+        test_transaction_acceptance(self.nodes[0], self.test_node, tx4, True, False, 'mempool-script-verify-flag-failed (Using non-compressed keys in segwit)')
         block = self.build_next_block()
         self.update_witness_block_with_transactions(block, [tx4])
         test_witness_block(self.nodes[0], self.test_node, block, accepted=True)
@@ -1635,7 +1635,7 @@ def test_signature_version_1(self):
                 sign_p2pk_witness_input(witness_script, tx, 0, hashtype, prev_utxo.nValue + 1, key)
                 self.update_witness_block_with_transactions(block, [tx])
                 test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                                   reason='non-mandatory-script-verify-flag (Script evaluated without error '
+                                   reason='mempool-script-verify-flag-failed (Script evaluated without error '
                                           'but finished with a false/empty top stack element')
 
                 # Too-small input value
@@ -1643,7 +1643,7 @@ def test_signature_version_1(self):
                 block.vtx.pop()  # remove last tx
                 self.update_witness_block_with_transactions(block, [tx])
                 test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                                   reason='non-mandatory-script-verify-flag (Script evaluated without error '
+                                   reason='mempool-script-verify-flag-failed (Script evaluated without error '
                                           'but finished with a false/empty top stack element')
 
                 # Now try correct value
@@ -1750,7 +1750,7 @@ def test_signature_version_1(self):
         block = self.build_next_block()
         self.update_witness_block_with_transactions(block, [tx, tx2])
         test_witness_block(self.nodes[0], self.test_node, block, accepted=False,
-                           reason='non-mandatory-script-verify-flag (Witness requires empty scriptSig)')
+                           reason='mempool-script-verify-flag-failed (Witness requires empty scriptSig)')
 
         # Move the signature to the witness.
         block.vtx.pop()
diff --git a/test/functional/rpc_packages.py b/test/functional/rpc_packages.py
index bf936395731..f45d80cc3c3 100755
--- a/test/functional/rpc_packages.py
+++ b/test/functional/rpc_packages.py
@@ -112,7 +112,7 @@ def test_independent(self):
         assert_equal(testres_bad_sig, self.independent_txns_testres + [{
             "txid": tx_bad_sig.rehash(),
             "wtxid": tx_bad_sig.getwtxid(), "allowed": False,
-            "reject-reason": "mandatory-script-verify-flag-failed (Operation not valid with the current stack size)"
+            "reject-reason": "mempool-script-verify-flag-failed (Operation not valid with the current stack size)"
         }])
 
         self.log.info("Check testmempoolaccept reports txns in packages that exceed max feerate")
diff --git a/test/functional/test_framework/p2p.py b/test/functional/test_framework/p2p.py
index 840670ae369..95be64908ab 100755
--- a/test/functional/test_framework/p2p.py
+++ b/test/functional/test_framework/p2p.py
@@ -735,13 +735,12 @@ def send_blocks_and_test(self, blocks, node, *, success=True, force_send=False,
             else:
                 assert node.getbestblockhash() != blocks[-1].hash
 
-    def send_txs_and_test(self, txs, node, *, success=True, expect_disconnect=False, reject_reason=None):
+    def send_txs_and_test(self, txs, node, *, success=True, reject_reason=None):
         """Send txs to test node and test whether they're accepted to the mempool.
 
          - add all txs to our tx_store
          - send tx messages for all txs
          - if success is True/False: assert that the txs are/are not accepted to the mempool
-         - if expect_disconnect is True: Skip the sync with ping
          - if reject_reason is set: assert that the correct reject message is logged."""
 
         with p2p_lock:
@@ -753,10 +752,7 @@ def send_txs_and_test(self, txs, node, *, success=True, expect_disconnect=False,
             for tx in txs:
                 self.send_message(msg_tx(tx))
 
-            if expect_disconnect:
-                self.wait_for_disconnect()
-            else:
-                self.sync_with_ping()
+            self.sync_with_ping()
 
             raw_mempool = node.getrawmempool()
             if success:

From 05bd984da97f3acad76de7a6c5cdd4d3846f9be3 Mon Sep 17 00:00:00 2001
From: Tom Trevethan <ttrevethan@blockstream.com>
Date: Wed, 26 Nov 2025 10:42:59 +0000
Subject: [PATCH 164/187] updated script-verify-flag failure messagesin
 p2p_segwit.py

---
 test/functional/p2p_segwit.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/test/functional/p2p_segwit.py b/test/functional/p2p_segwit.py
index e1e75c53343..fef3ce3e0c1 100755
--- a/test/functional/p2p_segwit.py
+++ b/test/functional/p2p_segwit.py
@@ -724,7 +724,7 @@ def test_p2sh_witness(self):
         # The transaction was detected as witness stripped above and not added to the reject
         # filter. Trying again will check it again and result in the same error.
         with self.nodes[0].assert_debug_log(
-                expected_msgs=[spend_tx.getwtxid() , 'was not accepted: non-mandatory-script-verify-flag (Witness program was passed an empty witness)']):
+                expected_msgs=[spend_tx.getwtxid() , 'was not accepted: mempool-script-verify-flag-failed (Witness program was passed an empty witness)']):
             test_transaction_acceptance(self.nodes[0], self.test_node, spend_tx, with_witness=False, accepted=False)
 
         # Try to put the witness script in the scriptSig, should also fail.
@@ -1326,7 +1326,7 @@ def test_tx_relay_after_segwit_activation(self):
         # Now do the opposite: strip the witness entirely. This will be detected as witness stripping and
         # the (w)txid won't be added to the reject filter: we can try again and get the same error.
         tx3.wit.vtxinwit[0].scriptWitness.stack = []
-        reason = "was not accepted: non-mandatory-script-verify-flag (Witness program was passed an empty witness)"
+        reason = "was not accepted: mempool-script-verify-flag-failed (Witness program was passed an empty witness)"
         test_transaction_acceptance(self.nodes[0], self.test_node, tx3, with_witness=False, accepted=False, reason=reason)
         test_transaction_acceptance(self.nodes[0], self.test_node, tx3, with_witness=False, accepted=False, reason=reason)
 

From 70d2293e6299f0e11c09730c83830dab647b7327 Mon Sep 17 00:00:00 2001
From: ismaelsadeeq <abubakarsadiqismail@proton.me>
Date: Wed, 24 Sep 2025 16:31:38 +0200
Subject: [PATCH 165/187] miner: fix `addPackageTxs` unsigned integer overflow

---
 src/node/miner.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/node/miner.cpp b/src/node/miner.cpp
index 725a4d687c6..ab794abb12f 100644
--- a/src/node/miner.cpp
+++ b/src/node/miner.cpp
@@ -392,6 +392,7 @@ void BlockAssembler::addPackageTxs(int& nPackagesSelected, int& nDescendantsUpda
     // close to full; this is just a simple heuristic to finish quickly if the
     // mempool has a lot of entries.
     const int64_t MAX_CONSECUTIVE_FAILURES = 1000;
+    constexpr int32_t BLOCK_FULL_ENOUGH_WEIGHT_DELTA = 4000;
     int64_t nConsecutiveFailed = 0;
 
     while (mi != m_mempool.mapTx.get<confidential_score>().end() || !mapModifiedTx.empty()) {
@@ -471,8 +472,8 @@ void BlockAssembler::addPackageTxs(int& nPackagesSelected, int& nDescendantsUpda
 
             ++nConsecutiveFailed;
 
-            if (nConsecutiveFailed > MAX_CONSECUTIVE_FAILURES && nBlockWeight >
-                    nBlockMaxWeight - 4000) {
+            if (nConsecutiveFailed > MAX_CONSECUTIVE_FAILURES && nBlockWeight +
+                    BLOCK_FULL_ENOUGH_WEIGHT_DELTA > nBlockMaxWeight) {
                 // Give up if we're close to full and haven't succeeded in a while
                 break;
             }

From aad3baf6f0f8c619abc998b4ac88fa916ae0e5e9 Mon Sep 17 00:00:00 2001
From: Byron Hambly <bhambly@blockstream.com>
Date: Thu, 8 Jan 2026 09:07:48 +0200
Subject: [PATCH 166/187] ci: update qt link for windows job

(cherry picked from commit 2161cf464df990d0a829a84f2e4623c752fc3fd7)
---
 .cirrus.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index 857d096be2d..c23d045b0c4 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -94,7 +94,7 @@ win64_native_common: &win64_native_common
     CI_VCPKG_TAG: '2021.05.12'
     VCPKG_DOWNLOADS: 'C:\Users\ContainerAdministrator\AppData\Local\vcpkg\downloads'
     VCPKG_DEFAULT_BINARY_CACHE: 'C:\Users\ContainerAdministrator\AppData\Local\vcpkg\archives'
-    QT_DOWNLOAD_URL: 'https://download.qt.io/official_releases/qt/5.15/5.15.3/single/qt-everywhere-opensource-src-5.15.3.zip'
+    QT_DOWNLOAD_URL: 'https://download.qt.io/archive/qt/5.15/5.15.3/single/qt-everywhere-opensource-src-5.15.3.zip'
     QT_LOCAL_PATH: 'C:\qt-everywhere-opensource-src-5.15.3.zip'
     QT_SOURCE_DIR: 'C:\qt-everywhere-src-5.15.3'
     QTBASEDIR: 'C:\Qt_static'

From 75bd182f821baf6d1221d61e864a6009bc7854ee Mon Sep 17 00:00:00 2001
From: Byron Hambly <bhambly@blockstream.com>
Date: Fri, 9 Jan 2026 10:12:19 +0200
Subject: [PATCH 167/187] ci(windows): pin jom to 1.1.2

(cherry picked from commit 656ad6d1fb55098b409dd310ede116d88021c4a7)
---
 .cirrus.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index c23d045b0c4..3170c4cccc9 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -116,7 +116,7 @@ win64_native_common: &win64_native_common
       - echo %QT_DOWNLOAD_URL%
       - msbuild -version
     populate_script:
-      - curl -L -o C:\jom.zip http://download.qt.io/official_releases/jom/jom.zip
+      - curl -L -o C:\jom.zip https://download.qt.io/official_releases/jom/jom_1_1_2.zip
       - mkdir C:\jom
       - tar -xf C:\jom.zip -C C:\jom
       - curl -L -o %QT_LOCAL_PATH% %QT_DOWNLOAD_URL%

From 116c2b43b12ad264b54b4fe6b3254ce248bc6d41 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 20 Jan 2026 15:07:35 -0800
Subject: [PATCH 168/187] Update copyright year to 2026

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 21343371982..fc0e0c3782a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 1)
 define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
-define(_COPYRIGHT_YEAR, 2025)
+define(_COPYRIGHT_YEAR, 2026)
 define(_COPYRIGHT_HOLDERS,[The %s developers])
 define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Elements Project]])
 AC_INIT([Elements Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/ElementsProject/elements/issues],[elements],[https://elementsproject.org/])

From af662eb18e690e2081593e9ba950dbe47640a9cb Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 20 Jan 2026 15:08:17 -0800
Subject: [PATCH 169/187] Bump version to 23.3.2-rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index fc0e0c3782a..0428c67d16c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
-define(_CLIENT_VERSION_BUILD, 1)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_BUILD, 2)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2026)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From df5f043e06a745b520e61b6ade3465ec7ce378d2 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 20 Jan 2026 16:30:28 -0800
Subject: [PATCH 170/187] Update manpages

---
 doc/man/elements-cli.1    | 10 +++++-----
 doc/man/elements-qt.1     | 10 +++++-----
 doc/man/elements-tx.1     | 10 +++++-----
 doc/man/elements-util.1   | 10 +++++-----
 doc/man/elements-wallet.1 | 10 +++++-----
 doc/man/elementsd.1       | 10 +++++-----
 6 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index 4022228b43f..77c894fc8c2 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "October 2025" "elements-cli v23.3.1" "User Commands"
+.TH ELEMENTS-CLI "1" "January 2026" "elements-cli v23.3.2" "User Commands"
 .SH NAME
-elements-cli \- manual page for elements-cli v23.3.1
+elements-cli \- manual page for elements-cli v23.3.2
 .SH SYNOPSIS
 .B elements-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Elements Core\/\fR
@@ -15,7 +15,7 @@ elements-cli \- manual page for elements-cli v23.3.1
 .B elements-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Elements Core RPC client version v23.3.1
+Elements Core RPC client version v23.3.2
 .SH OPTIONS
 .HP
 \-?
@@ -274,8 +274,8 @@ pre\-dynamic federations. Only used for testing in custom chains.
 Per\-chain parameter that sets how long a particular fedpegscript is in
 effect for.
 .SH COPYRIGHT
-Copyright (C) 2009-2025 The Elements Project developers
-Copyright (C) 2009-2025 The Bitcoin Core developers
+Copyright (C) 2009-2026 The Elements Project developers
+Copyright (C) 2009-2026 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index 5f458952d2f..3dbd27021ad 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "October 2025" "elements-qt v23.3.1" "User Commands"
+.TH ELEMENTS-QT "1" "January 2026" "elements-qt v23.3.2" "User Commands"
 .SH NAME
-elements-qt \- manual page for elements-qt v23.3.1
+elements-qt \- manual page for elements-qt v23.3.2
 .SH SYNOPSIS
 .B elements-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Elements Core version v23.3.1
+Elements Core version v23.3.2
 .SH OPTIONS
 .HP
 \-?
@@ -1067,8 +1067,8 @@ trusted mainchain daemon using the `mainchain*` settings below.
 All functionaries must run this enabled. (default: 1 if chain has
 federated peg)
 .SH COPYRIGHT
-Copyright (C) 2009-2025 The Elements Project developers
-Copyright (C) 2009-2025 The Bitcoin Core developers
+Copyright (C) 2009-2026 The Elements Project developers
+Copyright (C) 2009-2026 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 09477ab729c..60e6575e8f5 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "October 2025" "elements-tx v23.3.1" "User Commands"
+.TH ELEMENTS-TX "1" "January 2026" "elements-tx v23.3.2" "User Commands"
 .SH NAME
-elements-tx \- manual page for elements-tx v23.3.1
+elements-tx \- manual page for elements-tx v23.3.2
 .SH SYNOPSIS
 .B elements-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded Elements transaction\/\fR
@@ -9,7 +9,7 @@ elements-tx \- manual page for elements-tx v23.3.1
 .B elements-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded Elements transaction\/\fR
 .SH DESCRIPTION
-Elements Core elements\-tx utility version v23.3.1
+Elements Core elements\-tx utility version v23.3.2
 .SH OPTIONS
 .HP
 \-?
@@ -243,8 +243,8 @@ set=NAME:JSON\-STRING
 .IP
 Set register NAME to given JSON\-STRING
 .SH COPYRIGHT
-Copyright (C) 2009-2025 The Elements Project developers
-Copyright (C) 2009-2025 The Bitcoin Core developers
+Copyright (C) 2009-2026 The Elements Project developers
+Copyright (C) 2009-2026 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index 43ff4d7c291..3048ea501f7 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "October 2025" "elements-util v23.3.1" "User Commands"
+.TH ELEMENTS-UTIL "1" "January 2026" "elements-util v23.3.2" "User Commands"
 .SH NAME
-elements-util \- manual page for elements-util v23.3.1
+elements-util \- manual page for elements-util v23.3.2
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Elements Core bitcoin\-util utility version v23.3.1
+Elements Core bitcoin\-util utility version v23.3.2
 .SH OPTIONS
 .HP
 \-?
@@ -158,8 +158,8 @@ grind
 .IP
 Perform proof of work on hex header string
 .SH COPYRIGHT
-Copyright (C) 2009-2025 The Elements Project developers
-Copyright (C) 2009-2025 The Bitcoin Core developers
+Copyright (C) 2009-2026 The Elements Project developers
+Copyright (C) 2009-2026 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index 9ca9a9fe1f5..49c3adc7356 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "October 2025" "elements-wallet v23.3.1" "User Commands"
+.TH ELEMENTS-WALLET "1" "January 2026" "elements-wallet v23.3.2" "User Commands"
 .SH NAME
-elements-wallet \- manual page for elements-wallet v23.3.1
+elements-wallet \- manual page for elements-wallet v23.3.2
 .SH DESCRIPTION
-Elements Core elements\-wallet version v23.3.1
+Elements Core elements\-wallet version v23.3.2
 .PP
 elements\-wallet is an offline tool for creating and interacting with Elements Core wallet files.
 By default elements\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
@@ -214,8 +214,8 @@ salvage
 Attempt to recover private keys from a corrupt wallet. Warning:
 \&'salvage' is experimental.
 .SH COPYRIGHT
-Copyright (C) 2009-2025 The Elements Project developers
-Copyright (C) 2009-2025 The Bitcoin Core developers
+Copyright (C) 2009-2026 The Elements Project developers
+Copyright (C) 2009-2026 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index b079955b826..ce249526408 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "October 2025" "elementsd v23.3.1" "User Commands"
+.TH ELEMENTSD "1" "January 2026" "elementsd v23.3.2" "User Commands"
 .SH NAME
-elementsd \- manual page for elementsd v23.3.1
+elementsd \- manual page for elementsd v23.3.2
 .SH SYNOPSIS
 .B elementsd
 [\fI\,options\/\fR]                     \fI\,Start Elements Core\/\fR
 .SH DESCRIPTION
-Elements Core version v23.3.1
+Elements Core version v23.3.2
 .SH OPTIONS
 .HP
 \-?
@@ -1045,8 +1045,8 @@ trusted mainchain daemon using the `mainchain*` settings below.
 All functionaries must run this enabled. (default: 1 if chain has
 federated peg)
 .SH COPYRIGHT
-Copyright (C) 2009-2025 The Elements Project developers
-Copyright (C) 2009-2025 The Bitcoin Core developers
+Copyright (C) 2009-2026 The Elements Project developers
+Copyright (C) 2009-2026 The Bitcoin Core developers
 
 Please contribute if you find Elements Core useful. Visit
 <https://elementsproject.org/> for further information about the software.

From 6544256fcb9c3c675874094ff7d8ac9e3d8a5a1d Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 3 Feb 2026 20:17:01 -0800
Subject: [PATCH 171/187] Update manpages

---
 doc/man/elements-cli.1    |  2 +-
 doc/man/elements-qt.1     | 12 ++++++++----
 doc/man/elements-tx.1     |  2 +-
 doc/man/elements-util.1   |  2 +-
 doc/man/elements-wallet.1 |  2 +-
 doc/man/elementsd.1       | 12 ++++++++----
 6 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index 77c894fc8c2..37c0c1b36cc 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "January 2026" "elements-cli v23.3.2" "User Commands"
+.TH ELEMENTS-CLI "1" "February 2026" "elements-cli v23.3.2" "User Commands"
 .SH NAME
 elements-cli \- manual page for elements-cli v23.3.2
 .SH SYNOPSIS
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index 3dbd27021ad..f167f95ddb1 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "January 2026" "elements-qt v23.3.2" "User Commands"
+.TH ELEMENTS-QT "1" "February 2026" "elements-qt v23.3.2" "User Commands"
 .SH NAME
 elements-qt \- manual page for elements-qt v23.3.2
 .SH SYNOPSIS
@@ -139,6 +139,10 @@ blockchain. (default: 0 = disable pruning blocks, 1 = allow
 manual pruning via RPC, >=550 = automatically prune block files
 to stay under the specified target size in MiB)
 .HP
+\fB\-ratelimitlogging\fR
+.IP
+Rate limit unconditional logging to disk (default: 1)
+.HP
 \fB\-reindex\fR
 .IP
 Rebuild chain state and block index from the blk*.dat files on disk
@@ -582,9 +586,9 @@ optional). If <category> is not supplied or if <category> = 1,
 output all debugging information. <category> can be: addrman,
 bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
 ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
-qt, rand, reindex, rpc, selectcoins, tor, util, validation,
-walletdb, zmq. This option can be specified multiple times to
-output multiple categories.
+qt, rand, reindex, rpc, selectcoins, tor, uncond_always,
+uncond_rate_limited, util, validation, walletdb, zmq. This option
+can be specified multiple times to output multiple categories.
 .HP
 \fB\-debugexclude=\fR<category>
 .IP
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 60e6575e8f5..1c5795311c5 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "January 2026" "elements-tx v23.3.2" "User Commands"
+.TH ELEMENTS-TX "1" "February 2026" "elements-tx v23.3.2" "User Commands"
 .SH NAME
 elements-tx \- manual page for elements-tx v23.3.2
 .SH SYNOPSIS
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index 3048ea501f7..b3a27da05c7 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "January 2026" "elements-util v23.3.2" "User Commands"
+.TH ELEMENTS-UTIL "1" "February 2026" "elements-util v23.3.2" "User Commands"
 .SH NAME
 elements-util \- manual page for elements-util v23.3.2
 .SH SYNOPSIS
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index 49c3adc7356..e1dcd856234 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "January 2026" "elements-wallet v23.3.2" "User Commands"
+.TH ELEMENTS-WALLET "1" "February 2026" "elements-wallet v23.3.2" "User Commands"
 .SH NAME
 elements-wallet \- manual page for elements-wallet v23.3.2
 .SH DESCRIPTION
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index ce249526408..a8638dfe0f0 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "January 2026" "elementsd v23.3.2" "User Commands"
+.TH ELEMENTSD "1" "February 2026" "elementsd v23.3.2" "User Commands"
 .SH NAME
 elementsd \- manual page for elementsd v23.3.2
 .SH SYNOPSIS
@@ -139,6 +139,10 @@ blockchain. (default: 0 = disable pruning blocks, 1 = allow
 manual pruning via RPC, >=550 = automatically prune block files
 to stay under the specified target size in MiB)
 .HP
+\fB\-ratelimitlogging\fR
+.IP
+Rate limit unconditional logging to disk (default: 1)
+.HP
 \fB\-reindex\fR
 .IP
 Rebuild chain state and block index from the blk*.dat files on disk
@@ -582,9 +586,9 @@ optional). If <category> is not supplied or if <category> = 1,
 output all debugging information. <category> can be: addrman,
 bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p,
 ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune,
-qt, rand, reindex, rpc, selectcoins, tor, util, validation,
-walletdb, zmq. This option can be specified multiple times to
-output multiple categories.
+qt, rand, reindex, rpc, selectcoins, tor, uncond_always,
+uncond_rate_limited, util, validation, walletdb, zmq. This option
+can be specified multiple times to output multiple categories.
 .HP
 \fB\-debugexclude=\fR<category>
 .IP

From 73db0cf72bfbccb02a7ef82db5dc133b33d892af Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 3 Feb 2026 20:04:24 -0800
Subject: [PATCH 172/187] Bump version to 23.3.2-rc2

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 0428c67d16c..140ad43d7d2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 2)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2026)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 43f9542cade9b893e116dea3769b35772869973a Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 13 Feb 2026 05:57:46 -0800
Subject: [PATCH 173/187] Bump version to 23.3.2 final

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 140ad43d7d2..4dac0e6b26d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
 define(_CLIENT_VERSION_BUILD, 2)
-define(_CLIENT_VERSION_RC, 2)
+define(_CLIENT_VERSION_RC, 0)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2026)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 3df185136b6328cd38fdeba70ef4690b08937213 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 17 Feb 2026 08:10:50 -0800
Subject: [PATCH 174/187] Bump version to 23.3.3-rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 4dac0e6b26d..af553f5c2ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 3)
-define(_CLIENT_VERSION_BUILD, 2)
-define(_CLIENT_VERSION_RC, 0)
+define(_CLIENT_VERSION_BUILD, 3)
+define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2026)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 6c45fa066a3918a2832823c8da2cf45e8d0028de Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Tue, 17 Feb 2026 08:11:13 -0800
Subject: [PATCH 175/187] Update manpages

---
 doc/man/elements-cli.1    |  6 +++---
 doc/man/elements-qt.1     | 32 ++++++++++++++++++++++++++++----
 doc/man/elements-tx.1     |  6 +++---
 doc/man/elements-util.1   |  6 +++---
 doc/man/elements-wallet.1 |  6 +++---
 doc/man/elementsd.1       | 32 ++++++++++++++++++++++++++++----
 6 files changed, 68 insertions(+), 20 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index 37c0c1b36cc..bb87e85feca 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "February 2026" "elements-cli v23.3.2" "User Commands"
+.TH ELEMENTS-CLI "1" "February 2026" "elements-cli v23.3.3" "User Commands"
 .SH NAME
-elements-cli \- manual page for elements-cli v23.3.2
+elements-cli \- manual page for elements-cli v23.3.3
 .SH SYNOPSIS
 .B elements-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Elements Core\/\fR
@@ -15,7 +15,7 @@ elements-cli \- manual page for elements-cli v23.3.2
 .B elements-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Elements Core RPC client version v23.3.2
+Elements Core RPC client version v23.3.3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index f167f95ddb1..cb89c935a32 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "February 2026" "elements-qt v23.3.2" "User Commands"
+.TH ELEMENTS-QT "1" "February 2026" "elements-qt v23.3.3" "User Commands"
 .SH NAME
-elements-qt \- manual page for elements-qt v23.3.2
+elements-qt \- manual page for elements-qt v23.3.3
 .SH SYNOPSIS
 .B elements-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Elements Core version v23.3.2
+Elements Core version v23.3.3
 .SH OPTIONS
 .HP
 \-?
@@ -755,6 +755,30 @@ address. (default: 111)
 The byte prefix, in decimal, of the parent chain's base58 script
 address. (default: 196)
 .HP
+\fB\-peginminamount\fR
+.IP
+The minimum value for a peg\-in transaction after peginminheight
+(default: unset).
+.HP
+\fB\-peginminheight\fR
+.IP
+The block height at which a minimum peg\-in value is enforced (default:
+not active).
+.HP
+\fB\-peginsubsidyheight\fR
+.IP
+The block height at which peg\-in transactions must have a burn subsidy
+(default: not active). The subsidy is an OP_RETURN output, with
+its value equal to the feerate of the parent transaction
+multiplied by the vsize of spending the P2WSH output created by
+the peg\-in (feerate * 396 sats for liquidv1).
+.HP
+\fB\-peginsubsidythreshold\fR
+.IP
+The output value below which peg\-in transactions must have a burn
+subsidy (default: 0). Peg\-ins above this value do not require the
+subsidy.
+.HP
 \fB\-pubkeyprefix\fR
 .IP
 The byte prefix, in decimal, of the chain's base58 pubkey address.
@@ -1057,7 +1081,7 @@ pre\-dynamic federations. Only used for testing in custom chains.
 .HP
 \fB\-peginconfirmationdepth=\fR<n>
 .IP
-Pegin claims must be this deep to be considered valid. (default: 8)
+Peg\-in claims must be this deep to be considered valid. (default: 8)
 .HP
 \fB\-total_valid_epochs\fR
 .IP
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 1c5795311c5..9cb5181d103 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "February 2026" "elements-tx v23.3.2" "User Commands"
+.TH ELEMENTS-TX "1" "February 2026" "elements-tx v23.3.3" "User Commands"
 .SH NAME
-elements-tx \- manual page for elements-tx v23.3.2
+elements-tx \- manual page for elements-tx v23.3.3
 .SH SYNOPSIS
 .B elements-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded Elements transaction\/\fR
@@ -9,7 +9,7 @@ elements-tx \- manual page for elements-tx v23.3.2
 .B elements-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded Elements transaction\/\fR
 .SH DESCRIPTION
-Elements Core elements\-tx utility version v23.3.2
+Elements Core elements\-tx utility version v23.3.3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index b3a27da05c7..93aecf09728 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "February 2026" "elements-util v23.3.2" "User Commands"
+.TH ELEMENTS-UTIL "1" "February 2026" "elements-util v23.3.3" "User Commands"
 .SH NAME
-elements-util \- manual page for elements-util v23.3.2
+elements-util \- manual page for elements-util v23.3.3
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Elements Core bitcoin\-util utility version v23.3.2
+Elements Core bitcoin\-util utility version v23.3.3
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index e1dcd856234..822168ac425 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "February 2026" "elements-wallet v23.3.2" "User Commands"
+.TH ELEMENTS-WALLET "1" "February 2026" "elements-wallet v23.3.3" "User Commands"
 .SH NAME
-elements-wallet \- manual page for elements-wallet v23.3.2
+elements-wallet \- manual page for elements-wallet v23.3.3
 .SH DESCRIPTION
-Elements Core elements\-wallet version v23.3.2
+Elements Core elements\-wallet version v23.3.3
 .PP
 elements\-wallet is an offline tool for creating and interacting with Elements Core wallet files.
 By default elements\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index a8638dfe0f0..d9163712c64 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "February 2026" "elementsd v23.3.2" "User Commands"
+.TH ELEMENTSD "1" "February 2026" "elementsd v23.3.3" "User Commands"
 .SH NAME
-elementsd \- manual page for elementsd v23.3.2
+elementsd \- manual page for elementsd v23.3.3
 .SH SYNOPSIS
 .B elementsd
 [\fI\,options\/\fR]                     \fI\,Start Elements Core\/\fR
 .SH DESCRIPTION
-Elements Core version v23.3.2
+Elements Core version v23.3.3
 .SH OPTIONS
 .HP
 \-?
@@ -755,6 +755,30 @@ address. (default: 111)
 The byte prefix, in decimal, of the parent chain's base58 script
 address. (default: 196)
 .HP
+\fB\-peginminamount\fR
+.IP
+The minimum value for a peg\-in transaction after peginminheight
+(default: unset).
+.HP
+\fB\-peginminheight\fR
+.IP
+The block height at which a minimum peg\-in value is enforced (default:
+not active).
+.HP
+\fB\-peginsubsidyheight\fR
+.IP
+The block height at which peg\-in transactions must have a burn subsidy
+(default: not active). The subsidy is an OP_RETURN output, with
+its value equal to the feerate of the parent transaction
+multiplied by the vsize of spending the P2WSH output created by
+the peg\-in (feerate * 396 sats for liquidv1).
+.HP
+\fB\-peginsubsidythreshold\fR
+.IP
+The output value below which peg\-in transactions must have a burn
+subsidy (default: 0). Peg\-ins above this value do not require the
+subsidy.
+.HP
 \fB\-pubkeyprefix\fR
 .IP
 The byte prefix, in decimal, of the chain's base58 pubkey address.
@@ -1035,7 +1059,7 @@ pre\-dynamic federations. Only used for testing in custom chains.
 .HP
 \fB\-peginconfirmationdepth=\fR<n>
 .IP
-Pegin claims must be this deep to be considered valid. (default: 8)
+Peg\-in claims must be this deep to be considered valid. (default: 8)
 .HP
 \fB\-total_valid_epochs\fR
 .IP

From a76dc401d67a567bb6b7e2a5dfe19647e94bc2e8 Mon Sep 17 00:00:00 2001
From: MarcoFalke <falke.marco@gmail.com>
Date: Fri, 25 Mar 2022 17:16:04 +0100
Subject: [PATCH 176/187] Merge bitcoin/bitcoin#24502: wallet: don't create
 long chains by default
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

da2bc865d644f6be748c305556bdd02f02d1b161 [wallet] don't create long chains by default (glozow)

Additional functional test for too-long-chains rejected.

Pull request description:

  Default mempool policy doesn't let you have chains longer than 25 transactions. This is locally configurable of course, but it's not really safe to assume that a chain longer than 25 transactions will propagate. Thus, the wallet should probably avoid creating such transactions by default; set `DEFAULT_WALLET_REJECT_LONG_CHAINS` to true.

  Closes #9752
  Closes #10004

ACKs for top commit:
  MarcoFalke:
    re-ACK da2bc865d644f6be748c305556bdd02f02d1b161 only change is fixing typos in tests 🎏

Tree-SHA512: 65d8e4ec437fe928adf554aa7e819a52e0599b403d5310895f4e371e99bbc838219b3097c4d2f775bc870ac617ef6b4227b94291f2b376f824f14e8f2b152f31
---
 src/wallet/wallet.h                 |  2 +-
 test/functional/wallet_balance.py   |  4 +++-
 test/functional/wallet_basic.py     |  3 ++-
 test/functional/wallet_create_tx.py | 26 ++++++++++++++++++++++++++
 4 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h
index 330fd17d7ef..2150d7a605d 100644
--- a/src/wallet/wallet.h
+++ b/src/wallet/wallet.h
@@ -98,7 +98,7 @@ static const CAmount WALLET_INCREMENTAL_RELAY_FEE = 5000;
 //! Default for -spendzeroconfchange
 static const bool DEFAULT_SPEND_ZEROCONF_CHANGE = true;
 //! Default for -walletrejectlongchains
-static const bool DEFAULT_WALLET_REJECT_LONG_CHAINS = false;
+static const bool DEFAULT_WALLET_REJECT_LONG_CHAINS{true};
 //! -txconfirmtarget default
 static const unsigned int DEFAULT_TX_CONFIRM_TARGET = 6;
 //! -walletrbf default
diff --git a/test/functional/wallet_balance.py b/test/functional/wallet_balance.py
index 1db7c49c2dd..6ba84020cb0 100755
--- a/test/functional/wallet_balance.py
+++ b/test/functional/wallet_balance.py
@@ -53,7 +53,9 @@ def set_test_params(self):
         self.num_nodes = 2
         self.setup_clean_chain = True
         self.extra_args = [
-            ['-limitdescendantcount=3'],  # Limit mempool descendants as a hack to have wallet txs rejected from the mempool
+            # Limit mempool descendants as a hack to have wallet txs rejected from the mempool.
+            # Set walletrejectlongchains=0 so the wallet still creates the transactions.
+            ['-limitdescendantcount=3', '-walletrejectlongchains=0'],
             [],
         ]
 
diff --git a/test/functional/wallet_basic.py b/test/functional/wallet_basic.py
index c8cf15b389b..a32872ca125 100755
--- a/test/functional/wallet_basic.py
+++ b/test/functional/wallet_basic.py
@@ -27,6 +27,7 @@ def set_test_params(self):
         self.extra_args = [[
             "-acceptnonstdtxn=1",
             "-bech32_hrp=bcrt",
+            "-walletrejectlongchains=0"
         ]] * self.num_nodes
         self.setup_clean_chain = True
         self.supports_cli = False
@@ -573,7 +574,7 @@ def run_test(self):
         self.log.info("Test -reindex")
         self.stop_nodes()
         # set lower ancestor limit for later
-        self.start_node(0, ['-reindex', "-limitancestorcount=" + str(chainlimit)])
+        self.start_node(0, ['-reindex', "-walletrejectlongchains=0", "-limitancestorcount=" + str(chainlimit)])
         self.start_node(1, ['-reindex', "-limitancestorcount=" + str(chainlimit)])
         self.start_node(2, ['-reindex', "-limitancestorcount=" + str(chainlimit)])
         # reindex will leave rpc warm up "early"; Wait for it to finish
diff --git a/test/functional/wallet_create_tx.py b/test/functional/wallet_create_tx.py
index 958d3a4fc37..35bf0498479 100755
--- a/test/functional/wallet_create_tx.py
+++ b/test/functional/wallet_create_tx.py
@@ -29,6 +29,7 @@ def run_test(self):
 
         self.test_anti_fee_sniping()
         self.test_tx_size_too_large()
+        self.test_create_too_long_mempool_chain()
 
     def test_anti_fee_sniping(self):
         self.log.info('Check that we have some (old) blocks and that anti-fee-sniping is disabled')
@@ -80,6 +81,31 @@ def test_tx_size_too_large(self):
         )
         self.nodes[0].settxfee(0)
 
+    def test_create_too_long_mempool_chain(self):
+        self.log.info('Check too-long mempool chain error')
+        df_wallet = self.nodes[0].get_wallet_rpc(self.default_wallet_name)
+
+        self.nodes[0].createwallet("too_long")
+        test_wallet = self.nodes[0].get_wallet_rpc("too_long")
+
+        tx_data = df_wallet.send(outputs=[{test_wallet.getnewaddress(): 25}], options={"change_position": 0})
+        txid = tx_data['txid']
+        vout = 1
+
+        options = {"change_position": 0, "add_inputs": False}
+        for i in range(1, 25):
+            options['inputs'] = [{'txid': txid, 'vout': vout}]
+            tx_data = test_wallet.send(outputs=[{test_wallet.getnewaddress(): 25 - i}], options=options)
+            txid = tx_data['txid']
+
+        options = {"include_unsafe": True, 'add_inputs': True}
+        # Sending one more chained transaction will fail
+        assert_raises_rpc_error(-4, "Insufficient funds",
+                                test_wallet.send, outputs=[{test_wallet.getnewaddress(): 0.3}], options=options)
+
+        test_wallet.unloadwallet()
+
+
 
 if __name__ == '__main__':
     CreateTxWalletTest().main()

From a36a96175cd444652ad7d440f9441efc31070591 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Wed, 25 Feb 2026 03:09:48 -0800
Subject: [PATCH 177/187] Bump version to 23.4.0-rc1

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index af553f5c2ca..f43fd43008b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
-define(_CLIENT_VERSION_MINOR, 3)
-define(_CLIENT_VERSION_BUILD, 3)
+define(_CLIENT_VERSION_MINOR, 4)
+define(_CLIENT_VERSION_BUILD, 0)
 define(_CLIENT_VERSION_RC, 1)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2026)

From de274e59bef994418bc29dde61c685bd2366c40e Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Thu, 12 Mar 2026 07:41:08 -0700
Subject: [PATCH 178/187] Update manpages

---
 doc/man/elements-cli.1    | 6 +++---
 doc/man/elements-qt.1     | 6 +++---
 doc/man/elements-tx.1     | 6 +++---
 doc/man/elements-util.1   | 6 +++---
 doc/man/elements-wallet.1 | 6 +++---
 doc/man/elementsd.1       | 6 +++---
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index bb87e85feca..eb54de3ec26 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "February 2026" "elements-cli v23.3.3" "User Commands"
+.TH ELEMENTS-CLI "1" "March 2026" "elements-cli v23.4.0" "User Commands"
 .SH NAME
-elements-cli \- manual page for elements-cli v23.3.3
+elements-cli \- manual page for elements-cli v23.4.0
 .SH SYNOPSIS
 .B elements-cli
 [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]  \fI\,Send command to Elements Core\/\fR
@@ -15,7 +15,7 @@ elements-cli \- manual page for elements-cli v23.3.3
 .B elements-cli
 [\fI\,options\/\fR] \fI\,help <command>      Get help for a command\/\fR
 .SH DESCRIPTION
-Elements Core RPC client version v23.3.3
+Elements Core RPC client version v23.4.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index cb89c935a32..cfc001a1381 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "February 2026" "elements-qt v23.3.3" "User Commands"
+.TH ELEMENTS-QT "1" "March 2026" "elements-qt v23.4.0" "User Commands"
 .SH NAME
-elements-qt \- manual page for elements-qt v23.3.3
+elements-qt \- manual page for elements-qt v23.4.0
 .SH SYNOPSIS
 .B elements-qt
 [\fI\,command-line options\/\fR]
 .SH DESCRIPTION
-Elements Core version v23.3.3
+Elements Core version v23.4.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 9cb5181d103..1d194a39374 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "February 2026" "elements-tx v23.3.3" "User Commands"
+.TH ELEMENTS-TX "1" "March 2026" "elements-tx v23.4.0" "User Commands"
 .SH NAME
-elements-tx \- manual page for elements-tx v23.3.3
+elements-tx \- manual page for elements-tx v23.4.0
 .SH SYNOPSIS
 .B elements-tx
 [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]  \fI\,Update hex-encoded Elements transaction\/\fR
@@ -9,7 +9,7 @@ elements-tx \- manual page for elements-tx v23.3.3
 .B elements-tx
 [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]   \fI\,Create hex-encoded Elements transaction\/\fR
 .SH DESCRIPTION
-Elements Core elements\-tx utility version v23.3.3
+Elements Core elements\-tx utility version v23.4.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index 93aecf09728..495f2943140 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "February 2026" "elements-util v23.3.3" "User Commands"
+.TH ELEMENTS-UTIL "1" "March 2026" "elements-util v23.4.0" "User Commands"
 .SH NAME
-elements-util \- manual page for elements-util v23.3.3
+elements-util \- manual page for elements-util v23.4.0
 .SH SYNOPSIS
 .B bitcoin-util
 [\fI\,options\/\fR] [\fI\,commands\/\fR]  \fI\,Do stuff\/\fR
 .SH DESCRIPTION
-Elements Core bitcoin\-util utility version v23.3.3
+Elements Core bitcoin\-util utility version v23.4.0
 .SH OPTIONS
 .HP
 \-?
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index 822168ac425..1d5d3a614b9 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "February 2026" "elements-wallet v23.3.3" "User Commands"
+.TH ELEMENTS-WALLET "1" "March 2026" "elements-wallet v23.4.0" "User Commands"
 .SH NAME
-elements-wallet \- manual page for elements-wallet v23.3.3
+elements-wallet \- manual page for elements-wallet v23.4.0
 .SH DESCRIPTION
-Elements Core elements\-wallet version v23.3.3
+Elements Core elements\-wallet version v23.4.0
 .PP
 elements\-wallet is an offline tool for creating and interacting with Elements Core wallet files.
 By default elements\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index d9163712c64..18d19b94f9c 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "February 2026" "elementsd v23.3.3" "User Commands"
+.TH ELEMENTSD "1" "March 2026" "elementsd v23.4.0" "User Commands"
 .SH NAME
-elementsd \- manual page for elementsd v23.3.3
+elementsd \- manual page for elementsd v23.4.0
 .SH SYNOPSIS
 .B elementsd
 [\fI\,options\/\fR]                     \fI\,Start Elements Core\/\fR
 .SH DESCRIPTION
-Elements Core version v23.3.3
+Elements Core version v23.4.0
 .SH OPTIONS
 .HP
 \-?

From d5c0e5bc1122a215b09474d8d3dbab6927e822bc Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 3 Apr 2026 06:31:55 -0700
Subject: [PATCH 179/187] Bump version to 23.4.0-rc2

---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index f43fd43008b..0ab8e916b0e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
 define(_CLIENT_VERSION_MAJOR, 23)
 define(_CLIENT_VERSION_MINOR, 4)
 define(_CLIENT_VERSION_BUILD, 0)
-define(_CLIENT_VERSION_RC, 1)
+define(_CLIENT_VERSION_RC, 2)
 define(_CLIENT_VERSION_IS_RELEASE, true)
 define(_COPYRIGHT_YEAR, 2026)
 define(_COPYRIGHT_HOLDERS,[The %s developers])

From 03d9d8308ca8eb4aab4c35b3b150a4487332b3d6 Mon Sep 17 00:00:00 2001
From: Pablo Greco <psgreco@gmail.com>
Date: Fri, 3 Apr 2026 06:42:52 -0700
Subject: [PATCH 180/187] Update manpages

---
 doc/man/elements-cli.1    | 4 ++--
 doc/man/elements-qt.1     | 4 ++--
 doc/man/elements-tx.1     | 4 ++--
 doc/man/elements-util.1   | 4 ++--
 doc/man/elements-wallet.1 | 4 ++--
 doc/man/elementsd.1       | 4 ++--
 6 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/doc/man/elements-cli.1 b/doc/man/elements-cli.1
index eb54de3ec26..6e0c753066c 100644
--- a/doc/man/elements-cli.1
+++ b/doc/man/elements-cli.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-CLI "1" "March 2026" "elements-cli v23.4.0" "User Commands"
+.TH ELEMENTS-CLI "1" "April 2026" "elements-cli v23.4.0" "User Commands"
 .SH NAME
 elements-cli \- manual page for elements-cli v23.4.0
 .SH SYNOPSIS
@@ -146,7 +146,7 @@ Chain selection options:
 \fB\-chain=\fR<chain>
 .IP
 Use the chain <chain> (default: liquidv1). Reserved values: main, test,
-signet, regtest, liquidv1, liquidv1test
+signet, regtest, liquidv1, liquidv1test, liquidtestnet
 .HP
 \fB\-con_blockheightinheader\fR
 .IP
diff --git a/doc/man/elements-qt.1 b/doc/man/elements-qt.1
index cfc001a1381..5f0609fbc5e 100644
--- a/doc/man/elements-qt.1
+++ b/doc/man/elements-qt.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-QT "1" "March 2026" "elements-qt v23.4.0" "User Commands"
+.TH ELEMENTS-QT "1" "April 2026" "elements-qt v23.4.0" "User Commands"
 .SH NAME
 elements-qt \- manual page for elements-qt v23.4.0
 .SH SYNOPSIS
@@ -656,7 +656,7 @@ confidential addresses.(default: lq)
 \fB\-chain=\fR<chain>
 .IP
 Use the chain <chain> (default: liquidv1). Reserved values: main, test,
-signet, regtest, liquidv1, liquidv1test
+signet, regtest, liquidv1, liquidv1test, liquidtestnet
 .HP
 \fB\-con_blockheightinheader\fR
 .IP
diff --git a/doc/man/elements-tx.1 b/doc/man/elements-tx.1
index 1d194a39374..16fc65a2935 100644
--- a/doc/man/elements-tx.1
+++ b/doc/man/elements-tx.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-TX "1" "March 2026" "elements-tx v23.4.0" "User Commands"
+.TH ELEMENTS-TX "1" "April 2026" "elements-tx v23.4.0" "User Commands"
 .SH NAME
 elements-tx \- manual page for elements-tx v23.4.0
 .SH SYNOPSIS
@@ -39,7 +39,7 @@ Chain selection options:
 \fB\-chain=\fR<chain>
 .IP
 Use the chain <chain> (default: liquidv1). Reserved values: main, test,
-signet, regtest, liquidv1, liquidv1test
+signet, regtest, liquidv1, liquidv1test, liquidtestnet
 .HP
 \fB\-con_blockheightinheader\fR
 .IP
diff --git a/doc/man/elements-util.1 b/doc/man/elements-util.1
index 495f2943140..8816fbb8409 100644
--- a/doc/man/elements-util.1
+++ b/doc/man/elements-util.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-UTIL "1" "March 2026" "elements-util v23.4.0" "User Commands"
+.TH ELEMENTS-UTIL "1" "April 2026" "elements-util v23.4.0" "User Commands"
 .SH NAME
 elements-util \- manual page for elements-util v23.4.0
 .SH SYNOPSIS
@@ -24,7 +24,7 @@ Chain selection options:
 \fB\-chain=\fR<chain>
 .IP
 Use the chain <chain> (default: liquidv1). Reserved values: main, test,
-signet, regtest, liquidv1, liquidv1test
+signet, regtest, liquidv1, liquidv1test, liquidtestnet
 .HP
 \fB\-con_blockheightinheader\fR
 .IP
diff --git a/doc/man/elements-wallet.1 b/doc/man/elements-wallet.1
index 1d5d3a614b9..6c6e2038019 100644
--- a/doc/man/elements-wallet.1
+++ b/doc/man/elements-wallet.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTS-WALLET "1" "March 2026" "elements-wallet v23.4.0" "User Commands"
+.TH ELEMENTS-WALLET "1" "April 2026" "elements-wallet v23.4.0" "User Commands"
 .SH NAME
 elements-wallet \- manual page for elements-wallet v23.4.0
 .SH DESCRIPTION
@@ -63,7 +63,7 @@ Chain selection options:
 \fB\-chain=\fR<chain>
 .IP
 Use the chain <chain> (default: liquidv1). Reserved values: main, test,
-signet, regtest, liquidv1, liquidv1test
+signet, regtest, liquidv1, liquidv1test, liquidtestnet
 .HP
 \fB\-con_blockheightinheader\fR
 .IP
diff --git a/doc/man/elementsd.1 b/doc/man/elementsd.1
index 18d19b94f9c..1f7cf3aa970 100644
--- a/doc/man/elementsd.1
+++ b/doc/man/elementsd.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH ELEMENTSD "1" "March 2026" "elementsd v23.4.0" "User Commands"
+.TH ELEMENTSD "1" "April 2026" "elementsd v23.4.0" "User Commands"
 .SH NAME
 elementsd \- manual page for elementsd v23.4.0
 .SH SYNOPSIS
@@ -656,7 +656,7 @@ confidential addresses.(default: lq)
 \fB\-chain=\fR<chain>
 .IP
 Use the chain <chain> (default: liquidv1). Reserved values: main, test,
-signet, regtest, liquidv1, liquidv1test
+signet, regtest, liquidv1, liquidv1test, liquidtestnet
 .HP
 \fB\-con_blockheightinheader\fR
 .IP

From 53cef282f49c805b40e50599688e66ef061b0b9c Mon Sep 17 00:00:00 2001
From: Tom Trevethan <ttrevethan@blockstream.com>
Date: Tue, 7 Apr 2026 14:59:20 +0100
Subject: [PATCH 181/187] change test order in feature_discount_ct to fix
 intermittent failure

---
 test/functional/feature_discount_ct.py | 40 +++++++++++++-------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/test/functional/feature_discount_ct.py b/test/functional/feature_discount_ct.py
index ac128bddcc3..a4f4a3eebc2 100755
--- a/test/functional/feature_discount_ct.py
+++ b/test/functional/feature_discount_ct.py
@@ -89,26 +89,6 @@ def run_test(self):
         assert_approx(tx['discountweight'], 1301.5, 0.5)
         assert_equal(tx['discountvsize'], 326)
 
-        self.log.info("Send confidential tx to node 0")
-        addr = node0.getnewaddress()
-        info = node0.getaddressinfo(addr)
-        txid = node0.sendtoaddress(info['confidential'], 1.0, "", "", False, None, None, None, None, None, None, feerate)
-        tx = node0.gettransaction(txid, True, True)
-        decoded = tx['decoded']
-        vin = decoded['vin']
-        vout = decoded['vout']
-        assert_equal(len(vin), 2)
-        assert_equal(len(vout), 3)
-        assert_equal(tx['fee']['bitcoin'], Decimal('-0.00002575'))
-        assert_equal(decoded['vsize'], 2575)
-        # tx weight can be 10299 or 10300, accept both
-        assert_approx(decoded['weight'], 10299.5, 0.5)
-        self.generate(node0, 1)
-        tx = node1.getrawtransaction(txid, True)
-        # tx discountweight can be 1301 or 1302, accept both
-        assert_approx(tx['discountweight'], 1301.5, 0.5)
-        assert_equal(tx['discountvsize'], 326) # node1 has discountvsize
-
         self.log.info("Send explicit tx to node 1")
         addr = node1.getnewaddress()
         info = node1.getaddressinfo(addr)
@@ -129,6 +109,26 @@ def run_test(self):
         assert_approx(tx['discountweight'], 1301.5, 0.5)
         assert_equal(tx['discountvsize'], 326)
 
+        self.log.info("Send confidential tx to node 0")
+        addr = node0.getnewaddress()
+        info = node0.getaddressinfo(addr)
+        txid = node0.sendtoaddress(info['confidential'], 1.0, "", "", False, None, None, None, None, None, None, feerate)
+        tx = node0.gettransaction(txid, True, True)
+        decoded = tx['decoded']
+        vin = decoded['vin']
+        vout = decoded['vout']
+        assert_equal(len(vin), 2)
+        assert_equal(len(vout), 3)
+        assert_equal(tx['fee']['bitcoin'], Decimal('-0.00002575'))
+        assert_equal(decoded['vsize'], 2575)
+        # tx weight can be 10299 or 10300, accept both
+        assert_approx(decoded['weight'], 10299.5, 0.5)
+        self.generate(node0, 1)
+        tx = node1.getrawtransaction(txid, True)
+        # tx discountweight can be 1301 or 1302, accept both
+        assert_approx(tx['discountweight'], 1301.5, 0.5)
+        assert_equal(tx['discountvsize'], 326) # node1 has discountvsize
+
         self.log.info("Send confidential (undiscounted) tx to node 1")
         addr = node1.getnewaddress()
         info = node1.getaddressinfo(addr)

From 552ce5ca2c630c272a38ae7e03f41abd7e9081a6 Mon Sep 17 00:00:00 2001
From: Tom Trevethan <ttrevethan@blockstream.com>
Date: Wed, 8 Apr 2026 14:57:20 +0100
Subject: [PATCH 182/187] use break-system-packages for pip

---
 ci/test/00_setup_env_mac_native_arm64.sh | 4 +++-
 ci/test/04_install.sh                    | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/ci/test/00_setup_env_mac_native_arm64.sh b/ci/test/00_setup_env_mac_native_arm64.sh
index 1a7be56d5bd..ade2d2787c1 100755
--- a/ci/test/00_setup_env_mac_native_arm64.sh
+++ b/ci/test/00_setup_env_mac_native_arm64.sh
@@ -7,7 +7,9 @@
 export LC_ALL=C.UTF-8
 
 export HOST=arm64-apple-darwin
-export PIP_PACKAGES="zmq"
+# Homebrew's python@3.12 is marked as externally managed (PEP 668).
+# Therefore, `--break-system-packages` is needed.
+export PIP_PACKAGES="--break-system-packages zmq"
 export GOAL="install"
 # ELEMENTS: add -fno-stack-check to work around clang bug on macos
 export BITCOIN_CONFIG="--with-gui --with-miniupnpc --with-natpmp --enable-reduce-exports CXXFLAGS=-fno-stack-check"
diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh
index 6244a74f7bd..5e778f10e3b 100755
--- a/ci/test/04_install.sh
+++ b/ci/test/04_install.sh
@@ -11,7 +11,7 @@ if [[ $QEMU_USER_CMD == qemu-s390* ]]; then
 fi
 
 if [ "$CI_OS_NAME" == "macos" ]; then
-  sudo -H pip3 install --upgrade --ignore-installed pip
+  sudo -H pip3 install --upgrade --break-system-packages --ignore-installed pip
   # shellcheck disable=SC2086
   IN_GETOPT_BIN="$(brew --prefix gnu-getopt)/bin/getopt" ${CI_RETRY_EXE} pip3 install --user $PIP_PACKAGES
 fi

From 086e185a8d54b1ce822ee11f5e962fd2384429c9 Mon Sep 17 00:00:00 2001
From: furszy <matiasfurszyfer@protonmail.com>
Date: Wed, 11 Dec 2024 13:10:01 -0500
Subject: [PATCH 183/187] wallet: introduce method to return all db created
 files

---
 src/wallet/bdb.h     |   2 +
 src/wallet/db.h      |   4 ++
 src/wallet/migrate.h | 110 +++++++++++++++++++++++++++++++++++++++++++
 src/wallet/sqlite.h  |   8 ++++
 4 files changed, 124 insertions(+)
 create mode 100644 src/wallet/migrate.h

diff --git a/src/wallet/bdb.h b/src/wallet/bdb.h
index b924890d818..81531c00a61 100644
--- a/src/wallet/bdb.h
+++ b/src/wallet/bdb.h
@@ -141,6 +141,8 @@ class BerkeleyDatabase : public WalletDatabase
     /** Verifies the environment and database file */
     bool Verify(bilingual_str& error);
 
+    std::vector<fs::path> Files() override { return {}; }
+
     /** Return path to main database filename */
     std::string Filename() override { return fs::PathToString(env->Directory() / strFile); }
 
diff --git a/src/wallet/db.h b/src/wallet/db.h
index 5825b00e3a5..1b50b589358 100644
--- a/src/wallet/db.h
+++ b/src/wallet/db.h
@@ -144,6 +144,9 @@ class WalletDatabase
     /** Return path to main database file for logs and error messages. */
     virtual std::string Filename() = 0;
 
+    /** Return paths to all database created files */
+    virtual std::vector<fs::path> Files() = 0;
+
     virtual std::string Format() = 0;
 
     std::atomic<unsigned int> nUpdateCounter;
@@ -192,6 +195,7 @@ class DummyDatabase : public WalletDatabase
     void IncrementUpdateCounter() override { ++nUpdateCounter; }
     void ReloadDbEnv() override {}
     std::string Filename() override { return "dummy"; }
+    std::vector<fs::path> Files() override { return {}; }
     std::string Format() override { return "dummy"; }
     std::unique_ptr<DatabaseBatch> MakeBatch(bool flush_on_close = true) override { return std::make_unique<DummyBatch>(); }
 };
diff --git a/src/wallet/migrate.h b/src/wallet/migrate.h
new file mode 100644
index 00000000000..e72df288521
--- /dev/null
+++ b/src/wallet/migrate.h
@@ -0,0 +1,110 @@
+// Copyright (c) 2021-present The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef BITCOIN_WALLET_MIGRATE_H
+#define BITCOIN_WALLET_MIGRATE_H
+
+#include <wallet/db.h>
+
+#include <optional>
+
+namespace wallet {
+
+using BerkeleyROData = std::map<SerializeData, SerializeData, std::less<>>;
+
+/**
+ * A class representing a BerkeleyDB file from which we can only read records.
+ * This is used only for migration of legacy to descriptor wallets
+ */
+class BerkeleyRODatabase : public WalletDatabase
+{
+private:
+    const fs::path m_filepath;
+
+public:
+    /** Create DB handle */
+    BerkeleyRODatabase(const fs::path& filepath, bool open = true) : WalletDatabase(), m_filepath(filepath)
+    {
+        if (open) Open();
+    }
+    ~BerkeleyRODatabase() = default;
+
+    BerkeleyROData m_records;
+
+    /** Open the database if it is not already opened. */
+    void Open() override;
+
+    /** Rewrite the entire database on disk, with the exception of key pszSkip if non-zero
+     */
+    bool Rewrite(const char* pszSkip = nullptr) override { return false; }
+
+    /** Back up the entire database to a file.
+     */
+    bool Backup(const std::string& strDest) const override;
+
+    /** Flush to the database file and close the database.
+     *  Also close the environment if no other databases are open in it.
+     */
+    void Close() override {}
+
+    /** Return path to main database file for logs and error messages. */
+    std::string Filename() override { return fs::PathToString(m_filepath); }
+    std::vector<fs::path> Files() override { return {m_filepath}; }
+
+    std::string Format() override { return "bdb_ro"; }
+
+    /** Make a DatabaseBatch connected to this database */
+    std::unique_ptr<DatabaseBatch> MakeBatch() override;
+};
+
+class BerkeleyROCursor : public DatabaseCursor
+{
+private:
+    const BerkeleyRODatabase& m_database;
+    BerkeleyROData::const_iterator m_cursor;
+    BerkeleyROData::const_iterator m_cursor_end;
+
+public:
+    explicit BerkeleyROCursor(const BerkeleyRODatabase& database, std::span<const std::byte> prefix = {});
+    ~BerkeleyROCursor() = default;
+
+    Status Next(DataStream& key, DataStream& value) override;
+};
+
+/** RAII class that provides access to a BerkeleyRODatabase */
+class BerkeleyROBatch : public DatabaseBatch
+{
+private:
+    const BerkeleyRODatabase& m_database;
+
+    bool ReadKey(DataStream&& key, DataStream& value) override;
+    // WriteKey returns true since various automatic upgrades for older wallets will expect writing to not fail.
+    // It is okay for this batch type to not actually write anything as those automatic upgrades will occur again after migration.
+    bool WriteKey(DataStream&& key, DataStream&& value, bool overwrite = true) override { return true; }
+    bool EraseKey(DataStream&& key) override { return false; }
+    bool HasKey(DataStream&& key) override;
+    bool ErasePrefix(std::span<const std::byte> prefix) override { return false; }
+
+public:
+    explicit BerkeleyROBatch(const BerkeleyRODatabase& database) : m_database(database) {}
+    ~BerkeleyROBatch() = default;
+
+    BerkeleyROBatch(const BerkeleyROBatch&) = delete;
+    BerkeleyROBatch& operator=(const BerkeleyROBatch&) = delete;
+
+    void Close() override {}
+
+    std::unique_ptr<DatabaseCursor> GetNewCursor() override { return std::make_unique<BerkeleyROCursor>(m_database); }
+    std::unique_ptr<DatabaseCursor> GetNewPrefixCursor(std::span<const std::byte> prefix) override;
+    bool TxnBegin() override { return false; }
+    bool TxnCommit() override { return false; }
+    bool TxnAbort() override { return false; }
+    bool HasActiveTxn() override { return false; }
+};
+
+//! Return object giving access to Berkeley Read Only database at specified path.
+std::unique_ptr<BerkeleyRODatabase> MakeBerkeleyRODatabase(const fs::path& path, const DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error);
+} // namespace wallet
+
+#endif // BITCOIN_WALLET_MIGRATE_H
diff --git a/src/wallet/sqlite.h b/src/wallet/sqlite.h
index 3ed598d0d2b..3c3eb555da5 100644
--- a/src/wallet/sqlite.h
+++ b/src/wallet/sqlite.h
@@ -107,6 +107,14 @@ class SQLiteDatabase : public WalletDatabase
     void IncrementUpdateCounter() override { ++nUpdateCounter; }
 
     std::string Filename() override { return m_file_path; }
+    /** Return paths to all database created files */
+    std::vector<fs::path> Files() override
+    {
+        std::vector<fs::path> files;
+        files.emplace_back(m_dir_path / fs::PathFromString(m_file_path));
+        files.emplace_back(m_dir_path / fs::PathFromString(m_file_path + "-journal"));
+        return files;
+    }
     std::string Format() override { return "sqlite"; }
 
     /** Make a SQLiteBatch connected to this database */

From b6369329ce0c1eca929ff91ff960ee995dd0ea50 Mon Sep 17 00:00:00 2001
From: Ava Chow <github@achow101.com>
Date: Tue, 6 Jan 2026 16:09:38 -0800
Subject: [PATCH 184/187] wallettool: do not use fs::remove_all in
 createfromdump cleanup

---
 src/wallet/bdb.h               | 17 +++++++++++++++--
 src/wallet/dump.cpp            |  8 +++++++-
 test/functional/tool_wallet.py |  7 +++++++
 3 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/src/wallet/bdb.h b/src/wallet/bdb.h
index 81531c00a61..e757b93769d 100644
--- a/src/wallet/bdb.h
+++ b/src/wallet/bdb.h
@@ -141,11 +141,24 @@ class BerkeleyDatabase : public WalletDatabase
     /** Verifies the environment and database file */
     bool Verify(bilingual_str& error);
 
-    std::vector<fs::path> Files() override { return {}; }
-
     /** Return path to main database filename */
     std::string Filename() override { return fs::PathToString(env->Directory() / strFile); }
 
+    std::vector<fs::path> Files() override
+    {
+        std::vector<fs::path> files;
+        files.emplace_back(env->Directory() / strFile);
+        if (env->m_databases.size() == 1) {
+            files.emplace_back(env->Directory() / "db.log");
+            files.emplace_back(env->Directory() / ".walletlock");
+            files.emplace_back(env->Directory() / "database" / "log.0000000001");
+            files.emplace_back(env->Directory() / "database");
+            // Note that this list is not exhaustive as BDB may create more log files, and possibly other ones too
+            // However it should be good enough for the only calls to Files()
+        }
+        return files;
+    }
+
     std::string Format() override { return "bdb"; }
     /**
      * Pointer to shared database environment.
diff --git a/src/wallet/dump.cpp b/src/wallet/dump.cpp
index 6d8508fc720..d8e72a9309e 100644
--- a/src/wallet/dump.cpp
+++ b/src/wallet/dump.cpp
@@ -284,11 +284,17 @@ bool CreateFromDump(const std::string& name, const fs::path& wallet_path, biling
 
         dump_file.close();
     }
+    // On failure, gather the paths to remove
+    std::vector<fs::path> paths_to_remove = wallet->GetDatabase().Files();
+    if (!name.empty()) paths_to_remove.push_back(wallet_path);
+
     wallet.reset(); // The pointer deleter will close the wallet for us.
 
     // Remove the wallet dir if we have a failure
     if (!ret) {
-        fs::remove_all(wallet_path);
+        for (const auto& p : paths_to_remove) {
+            fs::remove(p);
+        }
     }
 
     return ret;
diff --git a/test/functional/tool_wallet.py b/test/functional/tool_wallet.py
index b1c4f340124..82fa3d4dffb 100755
--- a/test/functional/tool_wallet.py
+++ b/test/functional/tool_wallet.py
@@ -396,7 +396,14 @@ def test_dump_createfromdump(self):
         self.write_dump(dump_data, bad_sum_wallet_dump)
         self.assert_raises_tool_error('Error: Checksum is not the correct size', '-wallet=badload', '-dumpfile={}'.format(bad_sum_wallet_dump), 'createfromdump')
         assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "elementsregtest/wallets", "badload"))
+        if not self.options.descriptors:
+            os.rename(self.nodes[0].datadir + "/" + "elementsregtest/wallets/wallet.dat", self.nodes[0].datadir + "/" + "elementsregtest/wallets/default.wallet.dat")
+        self.assert_raises_tool_error('Error: Checksum is not the correct size', '-wallet=', '-dumpfile={}'.format(bad_sum_wallet_dump), 'createfromdump')
+        assert os.path.exists(self.nodes[0].datadir + "/" + "elementsregtest/wallets")
+        assert not os.path.exists(self.nodes[0].datadir + "/" + "elementsregtest/wallets/wallet.dat")
 
+        self.log.info('Checking createfromdump with an unnamed wallet')
+        self.do_tool_createfromdump("", "wallet.dump")
 
     def run_test(self):
         self.wallet_path = os.path.join(self.nodes[0].datadir, self.chain, 'wallets', self.default_wallet_name, self.wallet_data_filename)

From 8a0afee1f2a52dd107d4c7dae26c8a0568e6a122 Mon Sep 17 00:00:00 2001
From: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
Date: Sat, 31 Dec 2022 13:40:01 +0100
Subject: [PATCH 185/187] Merge bitcoin/bitcoin#26777: rpc: Remove duplicate
 field in RPCHelpMan for gettransactions

090ad51c80fe02a73f8988c1d5b867d2e90ab2f3 rpc: Remove duplicate field in RPCHelpMan for gettransactions (Joshua Kelly)

Pull request description:

  The field 'comment' appears twice in `TransactionDescriptionString`, incorrectly - this commit removes the instance of the comment field without a description, preserving the one with a description.

  On master, the duplicate fields can be be viewed here: https://github.com/bitcoin/bitcoin/blob/master/src/wallet/rpc/transactions.cpp#L419-L423

  `TransactionDescriptionString` is included in RPC calls such as `listtransactions` which have functional tests.

ACKs for top commit:
  w0xlt:
    ACK https://github.com/bitcoin/bitcoin/pull/26777/commits/090ad51c80fe02a73f8988c1d5b867d2e90ab2f3

Tree-SHA512: 4bacdafdb517dda2af6d1c193f331b634ae74bd62ac6289c0c288957f39f98a73d07aeab72fbe5bf1ece5532406d4a40a5b8a2277be50115f76c92bb938e21fa
---
 src/wallet/rpc/transactions.cpp | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/wallet/rpc/transactions.cpp b/src/wallet/rpc/transactions.cpp
index 334ee241626..dd4000554ff 100644
--- a/src/wallet/rpc/transactions.cpp
+++ b/src/wallet/rpc/transactions.cpp
@@ -473,7 +473,6 @@ static const std::vector<RPCResult> TransactionDescriptionString()
            }},
            {RPCResult::Type::STR_HEX, "replaced_by_txid", /*optional=*/true, "The txid if this tx was replaced."},
            {RPCResult::Type::STR_HEX, "replaces_txid", /*optional=*/true, "The txid if the tx replaces one."},
-           {RPCResult::Type::STR, "comment", /*optional=*/true, ""},
            {RPCResult::Type::STR, "to", /*optional=*/true, "If a comment to is associated with the transaction."},
            {RPCResult::Type::NUM_TIME, "time", "The transaction time expressed in " + UNIX_EPOCH_TIME + "."},
            {RPCResult::Type::NUM_TIME, "timereceived", "The time received expressed in " + UNIX_EPOCH_TIME + "."},

From 5a313fc45af344d276ace49282225d68896af577 Mon Sep 17 00:00:00 2001
From: ivanlele <ivanlele402@gmail.com>
Date: Thu, 21 May 2026 16:23:12 +0300
Subject: [PATCH 186/187] Merge bitcoin/bitcoin#32406: policy: uncap
 datacarrier by default

a189d636184b1c28fa4a325b56c1fab8f44527b1 add release note for datacarriersize default change (Greg Sanders)
a141e1bf501bb2660f3a62083a65678250085e56 Add more OP_RETURN mempool acceptance functional tests (Peter Todd)
0b4048c73385166144d0b3e76beb9a2ac4cc1eca datacarrier: deprecate startup arguments for future removal (Greg Sanders)
63091b79e70b8e230a122fa6fb3dac91c80638e7 test: remove unnecessary -datacarriersize args from tests (Greg Sanders)
9f36962b07eff2369577a17c8adeaa0433697e1c policy: uncap datacarrier by default (Greg Sanders)

Pull request description:

  Retains the `-datacarrier*` args, marks them as deprecated, and does not require another startup argument for multiple OP_RETURN outputs.

  If a user has set `-datacarriersize` the value is "budgeted" across all seen OP_RETURN output scriptPubKeys. In other words the total script bytes stays the same, but can be spread across any number of outputs. This is done to not introduce an additional argument to support multiple outputs.

  I do not advise people use the option with custom arguments and it is marked as deprecated to not mislead as a promise to offer it forever. The argument itself can be removed in some future release to clean up the code and minimize footguns for users.

Tree-SHA512: 3da2f1ef2f50884d4da7e50df2121bf175cb826edaa14ba7c3068a6d5b2a70beb426edc55d50338ee1d9686b9f74fdf9e10d30fb26a023a718dd82fa1e77b038
---
 src/init.cpp                               | 12 ++++++++++--
 src/policy/policy.cpp                      | 21 +++++++++++++++++----
 src/script/standard.h                      |  6 +++---
 src/test/transaction_tests.cpp             | 19 ++++++++++---------
 test/functional/p2p_tx_download.py         |  1 +
 test/functional/test_framework/messages.py | 10 ++++++++++
 6 files changed, 51 insertions(+), 18 deletions(-)

diff --git a/src/init.cpp b/src/init.cpp
index 40c58979d9f..47aa80a9fe3 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -566,8 +566,12 @@ void SetupServerArgs(ArgsManager& argsman)
     argsman.AddArg("-incrementalrelayfee=<amt>", strprintf("Fee rate (in %s/kvB) used to define cost of relay, used for mempool limiting and BIP 125 replacement. (default: %s)", CURRENCY_UNIT, FormatMoney(DEFAULT_INCREMENTAL_RELAY_FEE)), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::NODE_RELAY);
     argsman.AddArg("-dustrelayfee=<amt>", strprintf("Fee rate (in %s/kvB) used to define dust, the value of an output such that it will cost more than its value in fees at this fee rate to spend it. (default: %s)", CURRENCY_UNIT, FormatMoney(DUST_RELAY_TX_FEE)), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::NODE_RELAY);
     argsman.AddArg("-bytespersigop", strprintf("Equivalent bytes per sigop in transactions for relay and mining (default: %u)", DEFAULT_BYTES_PER_SIGOP), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
-    argsman.AddArg("-datacarrier", strprintf("Relay and mine data carrier transactions (default: %u)", DEFAULT_ACCEPT_DATACARRIER), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
-    argsman.AddArg("-datacarriersize", strprintf("Maximum size of data in data carrier transactions we relay and mine (default: %u)", MAX_OP_RETURN_RELAY), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
+    argsman.AddArg("-datacarrier", strprintf("(DEPRECATED) Relay and mine data carrier transactions (default: %u)", DEFAULT_ACCEPT_DATACARRIER), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
+    argsman.AddArg("-datacarriersize",
+                   strprintf("(DEPRECATED) Relay and mine transactions whose data-carrying raw scriptPubKeys in aggregate "
+                             "are of this size or less, allowing multiple outputs (default: %u)",
+                             MAX_OP_RETURN_RELAY),
+                   ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
     argsman.AddArg("-minrelaytxfee=<amt>", strprintf("Fees (in %s/kvB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)",
         CURRENCY_UNIT, FormatMoney(DEFAULT_MIN_RELAY_TX_FEE)), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
     argsman.AddArg("-whitelistforcerelay", strprintf("Add 'forcerelay' permission to whitelisted inbound peers with default permissions. This will relay transactions even if the transactions were already in the mempool. (default: %d)", DEFAULT_WHITELISTFORCERELAY), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
@@ -860,6 +864,10 @@ bool AppInitParameterInteraction(const ArgsManager& args)
 
     // also see: InitParameterInteraction()
 
+    if (args.IsArgSet("-datacarriersize") || args.IsArgSet("-datacarrier")) {
+        InitWarning(_("Options '-datacarrier' or '-datacarriersize' are set but are marked as deprecated. They will be removed in a future version."));
+    }
+
     // Error if network-specific options (-addnode, -connect, etc) are
     // specified in default section of config file, but not overridden
     // on the command line or in this network's section of the config file.
diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp
index 2dc3296214b..f507057ee9f 100644
--- a/src/policy/policy.cpp
+++ b/src/policy/policy.cpp
@@ -67,6 +67,14 @@ bool IsDust(const CTxOut& txout, const CFeeRate& dustRelayFeeIn)
     return (txout.nValue.GetAmount() < GetDustThreshold(txout, dustRelayFeeIn));
 }
 
+std::vector<uint32_t> GetDust(const CTransaction& tx, CFeeRate dust_relay_rate)
+{
+    std::vector<uint32_t> dust_outputs;
+    for (uint32_t i{0}; i < tx.vout.size(); ++i) {
+        if (IsDust(tx.vout[i], dust_relay_rate)) dust_outputs.push_back(i);
+    }
+    return dust_outputs;
+}
 bool IsStandard(const CScript& scriptPubKey, TxoutType& whichType)
 {
     std::vector<std::vector<unsigned char> > vSolutions;
@@ -87,9 +95,7 @@ bool IsStandard(const CScript& scriptPubKey, TxoutType& whichType)
             scriptPubKey.IsPegoutScript(Params().ParentGenesisBlockHash()) ) {
         // If we're enforcing pak let through larger peg-out scripts
         return true;
-    } else if (whichType == TxoutType::NULL_DATA &&
-               (!fAcceptDatacarrier || scriptPubKey.size() > nMaxDatacarrierBytes)) {
-          return false;
+
     }
 
     return true;
@@ -134,6 +140,7 @@ bool IsStandardTx(const CTransaction& tx, bool permit_bare_multisig, const CFeeR
 
     CChainParams params = Params();
     unsigned int nDataOut = 0;
+    unsigned int datacarrier_bytes_left = fAcceptDatacarrier ? nMaxDatacarrierBytes : 0;
     TxoutType whichType;
     for (const CTxOut& txout : tx.vout) {
         if (!::IsStandard(txout.scriptPubKey, whichType)) {
@@ -143,6 +150,12 @@ bool IsStandardTx(const CTransaction& tx, bool permit_bare_multisig, const CFeeR
 
         if (whichType == TxoutType::NULL_DATA) {
             nDataOut++;
+            unsigned int size = txout.scriptPubKey.size();
+            if (size > datacarrier_bytes_left) {
+                reason = "datacarrier";
+                return false;
+            }
+            datacarrier_bytes_left -= size;
         } else if ((whichType == TxoutType::MULTISIG) && (!permit_bare_multisig)) {
             reason = "bare-multisig";
             return false;
@@ -152,7 +165,7 @@ bool IsStandardTx(const CTransaction& tx, bool permit_bare_multisig, const CFeeR
         }
     }
 
-    // only one OP_RETURN txout is permitted
+    // only one OP_RETURN txout is permitted (per-chain control)
     if (!params.GetMultiDataPermitted() && nDataOut > 1) {
         reason = "multi-op-return";
         return false;
diff --git a/src/script/standard.h b/src/script/standard.h
index 7e351c835cd..c79db95adbb 100644
--- a/src/script/standard.h
+++ b/src/script/standard.h
@@ -47,10 +47,10 @@ class CScriptID : public BaseHash<uint160>
 };
 
 /**
- * Default setting for nMaxDatacarrierBytes. 80 bytes of data, +1 for OP_RETURN,
- * +2 for the pushdata opcodes.
+ * Default setting for nMaxDatacarrierBytes. 100000 bytes
+ * (MAX_STANDARD_TX_WEIGHT / WITNESS_SCALE_FACTOR = 400000 / 4).
  */
-static const unsigned int MAX_OP_RETURN_RELAY = 83;
+static const unsigned int MAX_OP_RETURN_RELAY = 100000;
 
 /**
  * A data carrying output is an unspendable output containing data. The script
diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp
index e6e4ce0f709..1c4bdecf3a8 100644
--- a/src/test/transaction_tests.cpp
+++ b/src/test/transaction_tests.cpp
@@ -781,15 +781,21 @@ BOOST_AUTO_TEST_CASE(test_IsStandard)
     key.MakeNewKey(true);
     t.vout[0].scriptPubKey = GetScriptForDestination(PKHash(key.GetPubKey()));
 
-    constexpr auto CheckIsStandard = [](const auto& t) {
+    constexpr auto CheckIsStandard = [](const auto& t, const unsigned int max_op_return_relay = MAX_OP_RETURN_RELAY) {
+        const auto old_val = nMaxDatacarrierBytes;
+        nMaxDatacarrierBytes = max_op_return_relay;
         std::string reason;
         BOOST_CHECK(IsStandardTx(CTransaction(t), reason));
         BOOST_CHECK(reason.empty());
+        nMaxDatacarrierBytes = old_val;
     };
-    constexpr auto CheckIsNotStandard = [](const auto& t, const std::string& reason_in) {
+    constexpr auto CheckIsNotStandard = [](const auto& t, const std::string& reason_in, const unsigned int max_op_return_relay = MAX_OP_RETURN_RELAY) {
+        const auto old_val = nMaxDatacarrierBytes;
+        nMaxDatacarrierBytes = max_op_return_relay;
         std::string reason;
         BOOST_CHECK(!IsStandardTx(CTransaction(t), reason));
         BOOST_CHECK_EQUAL(reason_in, reason);
+        nMaxDatacarrierBytes = old_val;
     };
 
     CheckIsStandard(t);
@@ -836,16 +842,11 @@ BOOST_AUTO_TEST_CASE(test_IsStandard)
     t.vout[0].scriptPubKey = CScript() << OP_1;
     CheckIsNotStandard(t, "scriptpubkey");
 
-    // MAX_OP_RETURN_RELAY-byte TxoutType::NULL_DATA (standard)
+    // 83-byte TxoutType::NULL_DATA (standard with default nMaxDatacarrierBytes)
     t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3804678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38");
-    BOOST_CHECK_EQUAL(MAX_OP_RETURN_RELAY, t.vout[0].scriptPubKey.size());
+    BOOST_CHECK_EQUAL(83, t.vout[0].scriptPubKey.size());
     CheckIsStandard(t);
 
-    // MAX_OP_RETURN_RELAY+1-byte TxoutType::NULL_DATA (non-standard)
-    t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3804678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3800");
-    BOOST_CHECK_EQUAL(MAX_OP_RETURN_RELAY + 1, t.vout[0].scriptPubKey.size());
-    CheckIsNotStandard(t, "scriptpubkey");
-
     // Data payload can be encoded in any way...
     t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex("");
     CheckIsStandard(t);
diff --git a/test/functional/p2p_tx_download.py b/test/functional/p2p_tx_download.py
index 6324e819700..9f1a3887f14 100755
--- a/test/functional/p2p_tx_download.py
+++ b/test/functional/p2p_tx_download.py
@@ -56,6 +56,7 @@ def on_getdata(self, message):
 class TxDownloadTest(BitcoinTestFramework):
     def set_test_params(self):
         self.num_nodes = 2
+        self.extra_args= [["-maxmempool=5", "-persistmempool=0"]] * self.num_nodes
 
     def test_tx_requests(self):
         self.log.info("Test that we request transactions from all our peers, eventually")
diff --git a/test/functional/test_framework/messages.py b/test/functional/test_framework/messages.py
index db440c04d57..094c5aabbb0 100755
--- a/test/functional/test_framework/messages.py
+++ b/test/functional/test_framework/messages.py
@@ -65,6 +65,16 @@
 
 WITNESS_SCALE_FACTOR = 4
 
+DEFAULT_ANCESTOR_LIMIT = 25    # default max number of in-mempool ancestors
+DEFAULT_DESCENDANT_LIMIT = 25  # default max number of in-mempool descendants
+
+
+# Default setting for -datacarriersize.
+MAX_OP_RETURN_RELAY = 100_000
+
+
+DEFAULT_MEMPOOL_EXPIRY_HOURS = 336  # hours
+
 
 def sha256(s):
     return hashlib.sha256(s).digest()

From 4962e6d34ca19c7c2c6b7f83b722c6f1d2f2fd8f Mon Sep 17 00:00:00 2001
From: ivanlele <ivanlele402@gmail.com>
Date: Thu, 21 May 2026 16:23:31 +0300
Subject: [PATCH 187/187] Merge bitcoin/bitcoin#33453: docs: Undeprecate
 datacarrier and datacarriersize configuration options

451ba9ada41f687c0e4bb34d5925374a68a8f8a3 docs: Undeprecate datacarrier and datacarriersize configuration options (Schmidt, Jonas)

Pull request description:

  Follow-up to bitcoin/bitcoin#32406.

  Removes the (DEPRECATED) label from the -datacarrier and -datacarriersize
  options, as well as the associated deprecation warning on startup.

Tree-SHA512: placeholder
---
 src/init.cpp | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/init.cpp b/src/init.cpp
index 47aa80a9fe3..fdbf6644f5f 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -566,9 +566,9 @@ void SetupServerArgs(ArgsManager& argsman)
     argsman.AddArg("-incrementalrelayfee=<amt>", strprintf("Fee rate (in %s/kvB) used to define cost of relay, used for mempool limiting and BIP 125 replacement. (default: %s)", CURRENCY_UNIT, FormatMoney(DEFAULT_INCREMENTAL_RELAY_FEE)), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::NODE_RELAY);
     argsman.AddArg("-dustrelayfee=<amt>", strprintf("Fee rate (in %s/kvB) used to define dust, the value of an output such that it will cost more than its value in fees at this fee rate to spend it. (default: %s)", CURRENCY_UNIT, FormatMoney(DUST_RELAY_TX_FEE)), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::NODE_RELAY);
     argsman.AddArg("-bytespersigop", strprintf("Equivalent bytes per sigop in transactions for relay and mining (default: %u)", DEFAULT_BYTES_PER_SIGOP), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
-    argsman.AddArg("-datacarrier", strprintf("(DEPRECATED) Relay and mine data carrier transactions (default: %u)", DEFAULT_ACCEPT_DATACARRIER), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
+    argsman.AddArg("-datacarrier", strprintf("Relay and mine data carrier transactions (default: %u)", DEFAULT_ACCEPT_DATACARRIER), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
     argsman.AddArg("-datacarriersize",
-                   strprintf("(DEPRECATED) Relay and mine transactions whose data-carrying raw scriptPubKeys in aggregate "
+                   strprintf("Relay and mine transactions whose data-carrying raw scriptPubKeys in aggregate "
                              "are of this size or less, allowing multiple outputs (default: %u)",
                              MAX_OP_RETURN_RELAY),
                    ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
@@ -864,10 +864,6 @@ bool AppInitParameterInteraction(const ArgsManager& args)
 
     // also see: InitParameterInteraction()
 
-    if (args.IsArgSet("-datacarriersize") || args.IsArgSet("-datacarrier")) {
-        InitWarning(_("Options '-datacarrier' or '-datacarriersize' are set but are marked as deprecated. They will be removed in a future version."));
-    }
-
     // Error if network-specific options (-addnode, -connect, etc) are
     // specified in default section of config file, but not overridden
     // on the command line or in this network's section of the config file.
