diff --git a/src/wallet/init.cpp b/src/wallet/init.cpp --- a/src/wallet/init.cpp +++ b/src/wallet/init.cpp @@ -57,10 +57,14 @@ "disable the fallbackfee feature. (default: %s)", CURRENCY_UNIT, FormatMoney(DEFAULT_FALLBACK_FEE)), ArgsManager::ALLOW_ANY, OptionsCategory::WALLET); - gArgs.AddArg("-keypool=", - strprintf("Set key pool size to (default: %u)", - DEFAULT_KEYPOOL_SIZE), - ArgsManager::ALLOW_ANY, OptionsCategory::WALLET); + gArgs.AddArg( + "-keypool=", + strprintf("Set key pool size to (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); gArgs.AddArg( "-maxapsfee=", strprintf( diff --git a/src/wallet/scriptpubkeyman.h b/src/wallet/scriptpubkeyman.h --- a/src/wallet/scriptpubkeyman.h +++ b/src/wallet/scriptpubkeyman.h @@ -79,6 +79,11 @@ * keys (by default 1000) ahead of the last used key and scans for the * addresses of those keys. This avoids the risk of not seeing transactions * involving the wallet's addresses, or of re-using the same address. + * In the unlikely case where none of the addresses in the `gap limit` are + * used on-chain, the look-ahead will not be incremented to keep + * a constant size and addresses beyond this range will not be detected by an + * old backup. For this reason, it is not recommended to decrease keypool size + * lower than default value. * * The HD-split wallet feature added a second keypool (commit: 02592f4c). There * is an external keypool (for addresses to hand out) and an internal keypool