diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart
index 7d063ba6f..6fb8af4bf 100644
--- a/lib/pages/send_view/send_view.dart
+++ b/lib/pages/send_view/send_view.dart
@@ -1350,11 +1350,31 @@ class _SendViewState extends ConsumerState<SendView> {
                                   selectAll: false,
                                 ),
                                 onChanged: (newValue) {
-                                  _address = newValue.trim();
+                                  final trimmed = newValue.trim();
+
+                                  if ((trimmed.length - (_address?.length ?? 0)).abs() > 1) {
+                                    if (coin is Monero && Uri.parse(trimmed).scheme == "monero") {
+                                      final parsedUri = Uri.parse(trimmed);
+                                      final addr = parsedUri.path;
+                                      sendToController.text = addr;
+                                      _address = addr;
+                                      cryptoAmountController.text = parsedUri.queryParameters["tx_amount"] ?? "";
+                                    } else if (coin is Bitcoin && Uri.parse(trimmed).scheme == "bitcoin") {
+                                      final parsedUri = Uri.parse(trimmed);
+                                      final addr = parsedUri.path;
+                                      sendToController.text = addr;
+                                      _address = addr;
+                                      cryptoAmountController.text = parsedUri.queryParameters["amount"] ?? "";
+                                    }
+                                  } else {
+                                    sendToController.text = trimmed;
+                                    _address = trimmed;
+                                  }
+
                                   _setValidAddressProviders(_address);
 
                                   setState(() {
-                                    _addressToggleFlag = newValue.isNotEmpty;
+                                    _addressToggleFlag = trimmed.isNotEmpty;
                                   });
                                 },
                                 focusNode: _addressFocusNode,
@@ -1433,13 +1453,28 @@ class _SendViewState extends ConsumerState<SendView> {
                                                           content,
                                                         );
                                                       }
-                                                      sendToController.text =
-                                                          content.trim();
-                                                      _address = content.trim();
 
-                                                      _setValidAddressProviders(
-                                                        _address,
-                                                      );
+                                                      final trimmed = content.trim();
+
+                                                      if (coin is Monero && Uri.parse(trimmed).scheme == "monero") {
+                                                        final parsedUri = Uri.parse(trimmed);
+                                                        final addr = parsedUri.path;
+                                                        sendToController.text = addr;
+                                                        _address = addr;
+                                                        cryptoAmountController.text = parsedUri.queryParameters["tx_amount"] ?? "";
+                                                      } else if (coin is Bitcoin && Uri.parse(trimmed).scheme == "bitcoin") {
+                                                        final parsedUri = Uri.parse(trimmed);
+                                                        final addr = parsedUri.path;
+                                                        sendToController.text = addr;
+                                                        _address = addr;
+                                                        cryptoAmountController.text = parsedUri.queryParameters["amount"] ?? "";
+                                                      } else {
+                                                        sendToController.text = trimmed;
+                                                        _address = trimmed;
+                                                      }
+
+                                                      _setValidAddressProviders(_address,);
+
                                                       setState(() {
                                                         _addressToggleFlag =
                                                             sendToController