diff --git a/lib/g1/g1_helper.dart b/lib/g1/g1_helper.dart
index cc2fd0a5885515a4823709bab1c8d89a40f84d47..9d1cecf7b85046a2a5e52dd45683e04ccacdedea 100644
--- a/lib/g1/g1_helper.dart
+++ b/lib/g1/g1_helper.dart
@@ -129,6 +129,14 @@ bool validateKey(String pubKey) {
   return true;
 }
 
+String getFullPubKey(String pubKey) {
+  if (pubKey.contains(':')) {
+    return pubKey;
+  } else {
+    return '$pubKey:${pkChecksum(pubKey)}';
+  }
+}
+
 String pkChecksum(String pubkey) {
   List<int> signpkInt8;
 
diff --git a/lib/ui/widgets/third_screen/contact_edit_dialog.dart b/lib/ui/widgets/third_screen/contact_edit_dialog.dart
index cdf32cd6beb530760bbfe0a964f3a701a880fc07..4d14dc6334e3aff9b31566c8a1d00d9fa214d190 100644
--- a/lib/ui/widgets/third_screen/contact_edit_dialog.dart
+++ b/lib/ui/widgets/third_screen/contact_edit_dialog.dart
@@ -1,8 +1,8 @@
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/material.dart';
-import 'package:qr_flutter/qr_flutter.dart';
 
 import '../../../data/models/contact.dart';
+import '../../../g1/g1_helper.dart';
 import '../../ui_helpers.dart';
 
 class ContactEditDialog extends StatefulWidget {
@@ -35,17 +35,27 @@ class _ContactEditDialogState extends State<ContactEditDialog> {
         child: Column(
           mainAxisSize: MainAxisSize.min,
           children: <Widget>[
-            TextFormField(
-              initialValue: humanizePubKey(_updatedContact.pubKey),
-              decoration: InputDecoration(
-                labelText: tr('form_contact_pub_key'),
+            Row(mainAxisSize: MainAxisSize.min, children: <Widget>[
+              Flexible(
+                  child: TextFormField(
+                // maxLines: 2,
+                initialValue: humanizePubKey(_updatedContact.pubKey),
+                decoration: InputDecoration(
+                  labelText: tr('form_contact_pub_key'),
+                ),
+                enabled: false,
+              )),
+              GestureDetector(
+                onTap: () {
+                  showQrDialog(
+                      context: context,
+                      publicKey: getFullPubKey(_updatedContact.pubKey),
+                      noTitle: true,
+                      feedbackText: 'some_key_copied_to_clipboard');
+                },
+                child: const Icon(Icons.qr_code, size: 50),
               ),
-              enabled: false,
-            ),
-            Expanded(child: QrImage(
-              data: _updatedContact.pubKey,
-
-            )),
+            ]),
             TextFormField(
               initialValue: _updatedContact.name,
               decoration: const InputDecoration(labelText: 'Name'),
diff --git a/lib/ui/widgets/third_screen/contacts_page.dart b/lib/ui/widgets/third_screen/contacts_page.dart
index 3f1737f5606adf09f3ad4274432f867560a36a85..d2002e5b446043e904b2a4a4e90fa97707f722fa 100644
--- a/lib/ui/widgets/third_screen/contacts_page.dart
+++ b/lib/ui/widgets/third_screen/contacts_page.dart
@@ -8,6 +8,7 @@ import '../../../data/models/bottom_nav_cubit.dart';
 import '../../../data/models/contact.dart';
 import '../../../data/models/contact_cubit.dart';
 import '../../../data/models/payment_cubit.dart';
+import '../../../g1/g1_helper.dart';
 import '../../contacts_cache.dart';
 import '../../ui_helpers.dart';
 import '../bottom_widget.dart';
@@ -108,7 +109,7 @@ class _ContactsPageState extends State<ContactsPage> {
                             onPressed: (BuildContext c) {
                               showQrDialog(
                                   context: context,
-                                  publicKey: contact.pubKey,
+                                  publicKey: getFullPubKey(contact.pubKey),
                                   noTitle: true,
                                   feedbackText: 'some_key_copied_to_clipboard');
                             },
diff --git a/test/g1_test.dart b/test/g1_test.dart
index aafbb632f6421219cfe97facbaecd153f64a3d81..8dc5a3e71aef1dca2a82eea99b9872391abbb15c 100644
--- a/test/g1_test.dart
+++ b/test/g1_test.dart
@@ -185,6 +185,9 @@ void main() {
   for (final List<String?> data in testData) {
     test('Checksum of ${data[0]}', () {
       expect(pkChecksum(data[0]!), equals(data[1]));
+      expect(getFullPubKey('${data[0]!}:${data[1]!}'),
+          equals('${data[0]!}:${data[1]!}'));
+      expect(getFullPubKey(data[0]!), equals('${data[0]!}:${data[1]!}'));
     });
   }
 }