diff --git a/lib/src/screens/backup/backup_page.dart b/lib/src/screens/backup/backup_page.dart
index a055066c0..f819e88e5 100644
--- a/lib/src/screens/backup/backup_page.dart
+++ b/lib/src/screens/backup/backup_page.dart
@@ -1,10 +1,9 @@
 import 'dart:io';
 import 'package:cake_wallet/palette.dart';
+import 'package:cake_wallet/utils/share_util.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter_mobx/flutter_mobx.dart';
-import 'package:share_plus/share_plus.dart';
-import 'package:cross_file/cross_file.dart';
 import 'package:cake_wallet/utils/show_bar.dart';
 import 'package:cake_wallet/routes.dart';
 import 'package:cake_wallet/generated/i18n.dart';
@@ -110,7 +109,7 @@ class BackupPage extends BasePage {
                 if (Platform.isAndroid) {
                   onExportAndroid(context, backup);
                 } else {
-                  await share(backup);
+                  await share(backup, context);
                 }
               },
               actionLeftButton: () => Navigator.of(dialogContext).pop());
@@ -140,18 +139,14 @@ class BackupPage extends BasePage {
               },
               actionLeftButton: () async {
                 Navigator.of(dialogContext).pop();
-                await share(backup);
+                await share(backup, context);
               });
         });
   }
 
-  Future<void> share(BackupExportFile backup) async {
-    const mimeType = 'application/*';
+  Future<void> share(BackupExportFile backup, BuildContext context) async {
     final path = await backupViewModelBase.saveBackupFileLocally(backup);
-    await Share.shareXFiles(<XFile>[XFile(
-        path,
-        name: backup.name,
-        mimeType: mimeType)]);
+    await ShareUtil.shareFile(filePath: path, fileName: backup.name, context: context);
     await backupViewModelBase.removeBackupFileLocally(backup);
   }
 }
diff --git a/lib/utils/share_util.dart b/lib/utils/share_util.dart
index 5b33399c7..518590fdd 100644
--- a/lib/utils/share_util.dart
+++ b/lib/utils/share_util.dart
@@ -1,13 +1,37 @@
 import 'package:flutter/material.dart';
 import 'package:share_plus/share_plus.dart';
+import 'package:cross_file/cross_file.dart';
 
 class ShareUtil {
-  static void share({required String text, required BuildContext context}) {
-    final box = context.findRenderObject() as RenderBox?;
+  static const _mimeType = 'application/*';
 
+  static void share({required String text, required BuildContext context}) {
     Share.share(
       text,
-      sharePositionOrigin: box!.localToGlobal(Offset.zero) & box.size,
+      sharePositionOrigin: _sharePosition(context),
     );
   }
-}
\ No newline at end of file
+
+  static Future<void> shareFile({
+    required String filePath,
+    required String fileName,
+    required BuildContext context,
+  }) async {
+    Share.shareXFiles(
+      <XFile>[
+        XFile(
+          filePath,
+          name: fileName,
+          mimeType: _mimeType,
+        )
+      ],
+      sharePositionOrigin: _sharePosition(context),
+    );
+  }
+
+  static Rect? _sharePosition(BuildContext context) {
+    final box = context.findRenderObject() as RenderBox?;
+
+    return box!.localToGlobal(Offset.zero) & box.size;
+  }
+}