argsman.AddArg("-addresstype",strprintf("What type of addresses to use (\"legacy\", \"p2sh-segwit\", or \"bech32\", default: \"%s\")",FormatOutputType(DEFAULT_ADDRESS_TYPE)),ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-avoidpartialspends",strprintf("Group outputs by address, selecting all or none, instead of selecting on a per-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin selection may result due to the added limitation (default: %u (always enabled for wallets with \"avoid_reuse\" enabled))",DEFAULT_AVOIDPARTIALSPENDS),ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-changetype","What type of change to use (\"legacy\", \"p2sh-segwit\", or \"bech32\"). Default is same as -addresstype, except when -addresstype=p2sh-segwit a native segwit output is used when sending to a native segwit address)",ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-disablewallet","Do not load the wallet and disable wallet RPC calls",ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-discardfee=<amt>",strprintf("The fee rate (in %s/kvB) that indicates your tolerance for discarding change by adding it to the fee (default: %s). "
"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",
argsman.AddArg("-fallbackfee=<amt>",strprintf("A fee rate (in %s/kvB) that will be used when fee estimation has insufficient data. 0 to entirely disable the fallbackfee feature. (default: %s)",
argsman.AddArg("-keypool=<n>",strprintf("Set key pool size to <n> (default: %u). 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.",DEFAULT_KEYPOOL_SIZE),ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-maxapsfee=<n>",strprintf("Spend up to this amount in additional (absolute) fees (in %s) if it allows the use of partial spend avoidance (default: %s)",CURRENCY_UNIT,FormatMoney(DEFAULT_MAX_AVOIDPARTIALSPEND_FEE)),ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-maxtxfee=<amt>",strprintf("Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)",
argsman.AddArg("-spendzeroconfchange",strprintf("Spend unconfirmed change when sending transactions (default: %u)",DEFAULT_SPEND_ZEROCONF_CHANGE),ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-txconfirmtarget=<n>",strprintf("If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)",DEFAULT_TX_CONFIRM_TARGET),ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-wallet=<path>","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>.",ArgsManager::ALLOW_ANY|ArgsManager::NETWORK_ONLY,OptionsCategory::WALLET);
argsman.AddArg("-walletbroadcast",strprintf("Make the wallet broadcast transactions (default: %u)",DEFAULT_WALLETBROADCAST),ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-walletdir=<dir>","Specify directory to hold wallets (default: <datadir>/wallets if it exists, otherwise <datadir>)",ArgsManager::ALLOW_ANY|ArgsManager::NETWORK_ONLY,OptionsCategory::WALLET);
argsman.AddArg("-walletnotify=<cmd>","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 (-1 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.",ArgsManager::ALLOW_ANY,OptionsCategory::WALLET);
argsman.AddArg("-dblogsize=<n>",strprintf("Flush wallet database activity from memory to disk log every <n> megabytes (default: %u)",DEFAULT_WALLET_DBLOGSIZE),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::WALLET_DEBUG_TEST);
argsman.AddArg("-flushwallet",strprintf("Run a thread to flush wallet periodically (default: %u)",DEFAULT_FLUSHWALLET),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::WALLET_DEBUG_TEST);
argsman.AddArg("-privdb",strprintf("Sets the DB_PRIVATE flag in the wallet db environment (default: %u)",DEFAULT_WALLET_PRIVDB),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::WALLET_DEBUG_TEST);
argsman.AddArg("-unsafesqlitesync","Set SQLite synchronous=OFF to disable waiting for the database to sync to disk. This is unsafe and can cause data loss and corruption. This option is only used by tests to improve their performance (default: false)",ArgsManager::ALLOW_BOOL|ArgsManager::DEBUG_ONLY,OptionsCategory::WALLET_DEBUG_TEST);
argsman.AddArg("-walletrejectlongchains",strprintf("Wallet will not create transactions that violate mempool chain limits (default: %u)",DEFAULT_WALLET_REJECT_LONG_CHAINS),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::WALLET_DEBUG_TEST);
returnInitError(Untranslated("-zapwallettxes has been removed. If you are attempting to remove a stuck transaction from your wallet, please use abandontransaction instead."));