diff --git a/src/app_network.cpp b/src/app_network.cpp index 1f8ed88..91f3083 100644 --- a/src/app_network.cpp +++ b/src/app_network.cpp @@ -5062,7 +5062,10 @@ void App::sendTransaction(const std::string& from, const std::string& to, recipient["address"] = to; recipient["amount"] = util::formatAmountFixed(amount); if (!memo.empty()) { - recipient["memo"] = memo; + // The daemon rejects a raw memo — it wants hex or a "utf8:" prefix. Prefix the user's plain-text + // memo so it's UTF-8-encoded into the note (same as the chat path). The unprefixed `memo` is still + // passed to submitZSendMany below for the tx-history display. + recipient["memo"] = "utf8:" + memo; } recipients.push_back(recipient); @@ -5206,7 +5209,7 @@ void App::resendWithFeeGapWorkaround(const std::string& from, const std::string& nlohmann::json primary; primary["address"] = to; primary["amount"] = util::formatAmountFixed(amount); - if (!memo.empty()) primary["memo"] = memo; + if (!memo.empty()) primary["memo"] = "utf8:" + memo; // daemon needs hex or a "utf8:" prefix (see submit) recipients.push_back(primary); nlohmann::json selfOut; selfOut["address"] = from;