diff --git a/integration_test/app_test.dart b/integration_test/app_test.dart
index 839881d61b4dd0a885d804f0d021cdd38a1b9be6..b0257be44a6708c778f90bfb7ada3cf9dc62e3c9 100644
--- a/integration_test/app_test.dart
+++ b/integration_test/app_test.dart
@@ -1,5 +1,3 @@
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter_test/flutter_test.dart';
 import 'package:gecko/models/widgets_keys.dart';
@@ -7,110 +5,51 @@ import 'package:integration_test/integration_test.dart';
 
 import 'package:gecko/main.dart' as app;
 
+import 'tests_utility.dart';
+
 void main() {
   IntegrationTestWidgetsFlutterBinding.ensureInitialized();
 
-  group('end-to-end test', () {
-    testWidgets('Ğecko basics', (tester) async {
+  group('Ğecko basics', () {
+    testWidgets('Import chests', (tester) async {
       app.main();
-      // await Future.delayed(const Duration(seconds: 5));
       await tester.pumpAndSettle(const Duration(seconds: 1));
+
       // await deleteAllWallets(tester);
       await restoreChest(tester);
-
-      // Verify the Gecko is well connected.
-      // await waitFor(tester, 'Vous êtes bien connecté');
-
-      // Open my chest
-      await goKey(tester, 'manageWallets', duration: 500);
-      // await goKey(tester, 'chooseChest');
-
-      // Enter secret code
-      await enterText(tester, keyPinForm, 'AAAAA');
-
-      await tester.pumpAndSettle();
-
-      // Verify the wallet 3 is here
-      await waitFor(tester, 'Porteuille 3');
+    });
+    testWidgets('Send 10 ĞD to ChristCosmic', (tester) async {
+      // await goKey(tester, buttonKey);
     });
   });
 }
 
 // Customs actions
 Future deleteAllWallets(WidgetTester tester) async {
-  await goKey(tester, 'drawerMenu');
-  await goKey(tester, 'parameters');
-  await goKey(tester, 'deleteAllWallets');
-  await goKey(tester, 'confirmPopop');
+  await goKey(tester, keyDrawerMenu);
+  await goKey(tester, keyParameters);
+  await goKey(tester, keyDeleteAllWallets);
+  await goKey(tester, keyConfirm);
   await tester.pumpAndSettle();
 }
 
 Future restoreChest(WidgetTester tester) async {
-  await goKey(tester, 'restoreChest');
+  await goKey(tester, keyRestoreChest);
   Clipboard.setData(const ClipboardData(
       text:
           'smart joy blossom stomach champion fun diary relief gossip hospital logic bike'));
   await tester.pumpAndSettle();
-  await goKey(tester, 'pasteMnemonic');
+  await goKey(tester, keyPastMnemonic);
   await tester.pumpAndSettle();
-  await goKey(tester, 'goNext');
-  await goKey(tester, 'goNext');
-  await goKey(tester, 'goNext');
-  await goKey(tester, 'goNext');
-  await goKey(tester, 'cachePassword');
+  await goKey(tester, keyGoNext);
+  await goKey(tester, keyGoNext);
+  await goKey(tester, keyGoNext);
+  await goKey(tester, keyGoNext);
+  await goKey(tester, keyCachePassword);
   await enterText(tester, keyPinForm, 'AAAAA');
   await waitFor(tester, 'Accéder à mon coffre');
-  await goKey(tester, 'goWalletHome');
+  await goKey(tester, keyGoWalletsHome);
   await waitFor(tester, 'ĞD');
   await goBack(tester);
   await waitFor(tester, "y'a pas de lézard");
 }
-
-// CUSTOM METHODES
-Future goKey(WidgetTester tester, String buttonKey,
-    {Finder? customFinder, int duration = 100}) async {
-  await tester.pumpAndSettle(Duration(milliseconds: duration));
-  final Finder finder = customFinder ?? find.byKey(Key(buttonKey));
-  await tester.tap(finder);
-  // await tester.pumpAndSettle(Duration(milliseconds: duration));
-}
-
-Future goBack(WidgetTester tester) async {
-  final NavigatorState navigator = tester.state(find.byType(Navigator));
-  navigator.pop();
-  await tester.pump();
-}
-
-Future enterText(
-    WidgetTester tester, GlobalKey<FormState> fieldKey, String textIn,
-    [int duration = 200]) async {
-  await tester.pumpAndSettle(Duration(milliseconds: duration));
-  await tester.enterText(find.byKey(fieldKey), textIn);
-}
-
-Future<void> waitFor(
-  WidgetTester tester,
-  String text, {
-  Duration timeout = const Duration(seconds: 5),
-}) async {
-  final end = DateTime.now().add(timeout);
-
-  Finder finder = find.textContaining(text);
-
-  do {
-    if (DateTime.now().isAfter(end)) {
-      throw Exception('Timed out waiting for text $text');
-    }
-
-    await tester.pumpAndSettle();
-    await Future.delayed(const Duration(milliseconds: 100));
-  } while (finder.evaluate().isEmpty);
-}
-
-extension Truncate on String {
-  String truncate({required int max, String suffix = ''}) {
-    return length < max
-        ? this
-        : '${substring(0, substring(0, max - suffix.length).lastIndexOf(" "))}$suffix';
-  }
-}
diff --git a/integration_test/tests_utility.dart b/integration_test/tests_utility.dart
new file mode 100644
index 0000000000000000000000000000000000000000..30bd14dcc8d0cbbfde1b1895c5a8836933ce0f49
--- /dev/null
+++ b/integration_test/tests_utility.dart
@@ -0,0 +1,55 @@
+// CUSTOM METHODES
+import 'package:flutter/material.dart';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:gecko/globals.dart';
+
+Future goKey(WidgetTester tester, Key buttonKey,
+    {Finder? customFinder, int duration = 100}) async {
+  await tester.pumpAndSettle(Duration(milliseconds: duration));
+  final Finder finder = customFinder ?? find.byKey(buttonKey);
+  log.d('INTEGRATION TEST: Tap on ${finder.description}}');
+  await tester.tap(finder);
+  // await tester.pumpAndSettle(Duration(milliseconds: duration));
+}
+
+Future goBack(WidgetTester tester) async {
+  final NavigatorState navigator = tester.state(find.byType(Navigator));
+  log.d('INTEGRATION TEST: Go back');
+  navigator.pop();
+  await tester.pump();
+}
+
+Future enterText(WidgetTester tester, Key fieldKey, String textIn,
+    [int duration = 200]) async {
+  await tester.pumpAndSettle(Duration(milliseconds: duration));
+  log.d('INTEGRATION TEST: Enter text: $textIn');
+  await tester.enterText(find.byKey(fieldKey), textIn);
+}
+
+Future<void> waitFor(
+  WidgetTester tester,
+  String text, {
+  Duration timeout = const Duration(seconds: 5),
+}) async {
+  final end = DateTime.now().add(timeout);
+
+  Finder finder = find.textContaining(text);
+  log.d('INTEGRATION TEST: Wait for: $text');
+
+  do {
+    if (DateTime.now().isAfter(end)) {
+      throw Exception('Timed out waiting for text $text');
+    }
+
+    await tester.pumpAndSettle();
+    await Future.delayed(const Duration(milliseconds: 100));
+  } while (finder.evaluate().isEmpty);
+}
+
+extension Truncate on String {
+  String truncate({required int max, String suffix = ''}) {
+    return length < max
+        ? this
+        : '${substring(0, substring(0, max - suffix.length).lastIndexOf(" "))}$suffix';
+  }
+}
diff --git a/lib/models/widgets_keys.dart b/lib/models/widgets_keys.dart
index c2bbccf34b2c2df1912a8fd286b298ce8a9dad0d..e83e29d5f5e51be8293f1480601a76c957a2da5d 100644
--- a/lib/models/widgets_keys.dart
+++ b/lib/models/widgets_keys.dart
@@ -1,3 +1,74 @@
 import 'package:flutter/material.dart';
 
-final keyPinForm = GlobalKey<FormState>();
+// General
+const keyInfoPopup = Key('keyInfoPopup');
+const keyGoNext = Key('keyGoNext');
+const keyCancel = Key('keyCancel');
+const keyConfirm = Key('keyConfirm');
+
+// Home
+const keyParameters = Key('keyParameters');
+const keyContacts = Key('keyContacts');
+const keyDrawerMenu = Key('keyDrawerMenu');
+const keyManageWallets = Key('keyManageWallets');
+const keyRestoreChest = Key('keyRestoreChest');
+
+// Wallets home
+const keyImportG1v1 = Key('keyImportG1v1');
+const keyChangeChest = Key('keyChangeChest');
+const keyListWallets = Key('keyListWallets');
+const keyAddDerivation = Key('keyAddDerivation');
+
+// Wallet options
+const keyCopyAddress = Key('keyCopyAddress');
+const keyOpenActivity = Key('keyOpenActivity');
+const keyManageMembership = Key('keyManageMembership');
+const keySetDefaultWallet = Key('keySetDefaultWallet');
+const keyDeleteWallet = Key('keyDeleteWallet');
+const keyWalletName = Key('keyWalletName');
+const keyRenameWallet = Key('keyRenameWallet');
+
+// Chest options
+const keyShowSeed = Key('keyShowSeed');
+const keyChangePin = Key('keyChangePin');
+const keycreateRootDerivation = Key('keycreateRootDerivation');
+const keyDeleteChest = Key('keyDeleteChest');
+
+// Manage membership
+const keyMigrateIdentity = Key('keyMigrateIdentity');
+const keyRevokeIdty = Key('keyRevokeIdty');
+
+// Choose chest
+const keyCreateNewChest = Key('keyCreateNewChest');
+const keyImportChest = Key('keyImportChest');
+
+// Profile view
+const keyViewActivity = Key('keyViewActivity');
+const keyCertify = Key('keyCertify');
+const keyPay = Key('keyPay');
+
+// Activity view
+const keyListTransactions = Key('keyListTransactions');
+
+// Unlock wallet
+const keyPinForm = Key('keyPinForm');
+const keyPopButton = Key('keyPopButton');
+const keyCachePassword = Key('keyCachePassword');
+
+// Settings
+const keyDeleteAllWallets = Key('keyDeleteAllWallets');
+
+// Onboarding
+const keyPastMnemonic = Key('keyPastMnemonic');
+const keyBubbleSpeak = Key('keyBubbleSpeak');
+const keyGenerateMnemonic = Key('keyGenerateMnemonic');
+const keyAskedWord = Key('keyAskedWord');
+const keyInputWord = Key('keyInputWord');
+const keyGeneratedPin = Key('keyGeneratedPin');
+const keyGoWalletsHome = Key('keyGoWalletsHome');
+
+// Unit keys
+Key keyMnemonicWord(String word) => Key('keyMnemonicWord$word');
+Key keyIndexerResult(int keyId) => Key('keyIndexerResult$keyId');
+Key keyTransaction(int keyId) => Key('keyTransaction$keyId');
+Key keySearchResult(int keyId) => Key('keySearchResult$keyId');
diff --git a/lib/providers/chest_provider.dart b/lib/providers/chest_provider.dart
index 0134e26bab12b45ba4f62f845f013c6fd61c54c4..ce788b9a4a4ddb8ded3bbe867ffdc57dc5de4b7e 100644
--- a/lib/providers/chest_provider.dart
+++ b/lib/providers/chest_provider.dart
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/chest_data.dart';
 import 'package:gecko/models/wallet_data.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:provider/provider.dart';
@@ -59,13 +60,13 @@ class ChestProvider with ChangeNotifier {
           title: Text('areYouSureToDeleteWallet'.tr(args: [walletName!])),
           actions: <Widget>[
             TextButton(
-              child: Text("no".tr(), key: const Key('cancelDeleting')),
+              child: Text("no".tr(), key: keyCancel),
               onPressed: () {
                 Navigator.pop(context, false);
               },
             ),
             TextButton(
-              child: Text("yes".tr(), key: const Key('confirmDeleting')),
+              child: Text("yes".tr(), key: keyConfirm),
               onPressed: () {
                 Navigator.pop(context, true);
               },
diff --git a/lib/providers/duniter_indexer.dart b/lib/providers/duniter_indexer.dart
index 65a96c3eb1467f41c542905280dd9d8c3e6b7b17..a4570fbe896bf3aaef0dc0f3608dbf1d7ebe96be 100644
--- a/lib/providers/duniter_indexer.dart
+++ b/lib/providers/duniter_indexer.dart
@@ -8,6 +8,7 @@ import 'package:gecko/globals.dart';
 import 'package:gecko/models/g1_wallets_list.dart';
 import 'package:gecko/models/queries_indexer.dart';
 import 'package:gecko/models/wallet_data.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/cesium_plus.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/providers/wallet_options.dart';
@@ -301,7 +302,7 @@ class DuniterIndexer with ChangeNotifier {
                   Padding(
                     padding: const EdgeInsets.symmetric(horizontal: 5),
                     child: ListTile(
-                        key: Key('searchResult${keyID++}'),
+                        key: keyIndexerResult(keyID++),
                         horizontalTitleGap: 40,
                         contentPadding: const EdgeInsets.all(5),
                         leading: cesiumPlusProvider.defaultAvatar(avatarSize),
diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart
index c1a2821797449e0692602bbe8e72b734b88ccd23..1fcac90e7944ad91664e3adfac860333b9b6da4e 100644
--- a/lib/providers/wallet_options.dart
+++ b/lib/providers/wallet_options.dart
@@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'dart:async';
 import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/duniter_indexer.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/models/wallet_data.dart';
@@ -258,7 +259,7 @@ class WalletOptionsProvider with ChangeNotifier {
                 Consumer<WalletOptionsProvider>(
                     builder: (context, wOptions, _) {
                   return TextButton(
-                    key: const Key('infoPopup'),
+                    key: keyInfoPopup,
                     child: Text(
                       "validate".tr(),
                       style: TextStyle(
@@ -354,7 +355,7 @@ class WalletOptionsProvider with ChangeNotifier {
                 Consumer<WalletOptionsProvider>(
                     builder: (context, wOptions, _) {
                   return TextButton(
-                    key: const Key('infoPopup'),
+                    key: keyInfoPopup,
                     child: Text(
                       "validate".tr(),
                       style: TextStyle(
@@ -381,7 +382,7 @@ class WalletOptionsProvider with ChangeNotifier {
               mainAxisAlignment: MainAxisAlignment.center,
               children: [
                 TextButton(
-                  key: const Key('cancel'),
+                  key: keyCancel,
                   child: Text(
                     "cancel".tr(),
                     style: TextStyle(
@@ -457,7 +458,7 @@ class WalletOptionsProvider with ChangeNotifier {
       width: 260,
       child: Stack(children: <Widget>[
         TextField(
-          key: const Key('walletName'),
+          key: keyWalletName,
           autofocus: false,
           focusNode: walletNameFocus,
           enabled: isEditing,
@@ -481,7 +482,7 @@ class WalletOptionsProvider with ChangeNotifier {
         Positioned(
           right: 0,
           child: InkWell(
-            key: const Key('renameWallet'),
+            key: keyRenameWallet,
             onTap: () async {
               // _isNewNameValid =
               // walletProvider.editWalletName(wallet.id(), isCesium: false);
diff --git a/lib/providers/wallets_profiles.dart b/lib/providers/wallets_profiles.dart
index ce181c5a8e8e9c0dc6ea7a129666f196547d9ceb..3dba88a18317b6b26677692439c10ac1dc1a27b9 100644
--- a/lib/providers/wallets_profiles.dart
+++ b/lib/providers/wallets_profiles.dart
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/g1_wallets_list.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/cesium_plus.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/providers/wallet_options.dart';
@@ -166,7 +167,7 @@ class WalletsProfilesProvider with ChangeNotifier {
                 ),
                 Row(children: [
                   GestureDetector(
-                    key: const Key('copyPubkey'),
+                    key: keyCopyAddress,
                     onTap: () {
                       Clipboard.setData(ClipboardData(text: address));
                       snackCopyKey(context);
diff --git a/lib/screens/activity.dart b/lib/screens/activity.dart
index ebb0aed252587dac501ad4cba1190f34a0e5680a..5635c49c9831b4c488c8237c95808d09c1ed9e0d 100644
--- a/lib/screens/activity.dart
+++ b/lib/screens/activity.dart
@@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/queries_indexer.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/cesium_plus.dart';
 import 'package:gecko/providers/duniter_indexer.dart';
 import 'package:gecko/providers/home.dart';
@@ -132,7 +133,7 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
                   child: Builder(
                     builder: (context) => Expanded(
                       child: ListView(
-                        key: const Key('listTransactions'),
+                        key: keyListTransactions,
                         controller: scrollController,
                         children: <Widget>[historyView(context, result)],
                       ),
@@ -286,7 +287,7 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
           child:
               // Row(children: [Column(children: [],)],)
               ListTile(
-                  key: Key('transaction${keyID++}'),
+                  key: keyTransaction(keyID++),
                   contentPadding: const EdgeInsets.only(
                       left: 20, right: 30, top: 15, bottom: 15),
                   leading: ClipOval(
diff --git a/lib/screens/common_elements.dart b/lib/screens/common_elements.dart
index 1f75f43c8add100c91353adf45ef64e0f7ff789e..d077384b0c97507d1884d965df0d6a6524f3b42d 100644
--- a/lib/screens/common_elements.dart
+++ b/lib/screens/common_elements.dart
@@ -3,6 +3,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_markdown/flutter_markdown.dart';
 import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:provider/provider.dart';
 
@@ -62,7 +63,7 @@ class CommonElements {
       width: 380 * ratio,
       height: 60 * ratio,
       child: ElevatedButton(
-        key: const Key('goNext'),
+        key: keyGoNext,
         style: ElevatedButton.styleFrom(
           elevation: 4,
           primary: orangeC, // background
@@ -248,7 +249,7 @@ Future<bool?> confirmPopup(BuildContext context, String title) async {
             mainAxisAlignment: MainAxisAlignment.center,
             children: [
               TextButton(
-                key: const Key('confirmPopop'),
+                key: keyConfirm,
                 child: Text(
                   "yes".tr(),
                   style: const TextStyle(
@@ -296,7 +297,7 @@ Future<void> infoPopup(BuildContext context, String title) async {
             mainAxisAlignment: MainAxisAlignment.center,
             children: [
               TextButton(
-                key: const Key('infoPopup'),
+                key: keyInfoPopup,
                 child: const Text(
                   "D'accord",
                   style: TextStyle(
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 6f093d2c95fb00a340c65c99cfb1da13fd379e31..ddff84c796b32ec2446a7035df69ebe8cf202815 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -5,6 +5,7 @@ import 'package:connectivity_plus/connectivity_plus.dart';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/stateful_wrapper.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/chest_provider.dart';
 import 'package:gecko/providers/duniter_indexer.dart';
 import 'package:gecko/providers/home.dart';
@@ -64,7 +65,7 @@ class HomeScreen extends StatelessWidget {
                 ]),
               ),
               ListTile(
-                key: const Key('parameters'),
+                key: keyParameters,
                 title: Text('parameters'.tr()),
                 onTap: () {
                   Navigator.pop(context);
@@ -77,7 +78,7 @@ class HomeScreen extends StatelessWidget {
                 },
               ),
               ListTile(
-                key: const Key('contacts'),
+                key: keyContacts,
                 title: Text('contactsManagement'.tr()),
                 onTap: () {
                   Navigator.pop(context);
@@ -89,26 +90,6 @@ class HomeScreen extends StatelessWidget {
                   );
                 },
               ),
-
-              // ListTile(
-              //   key: const Key('substrateSandbox'),
-              //   title: const Text('Substrate debug'),
-              //   onTap: () {
-              //     Navigator.pop(context);
-              //     Navigator.push(
-              //       context,
-              //       MaterialPageRoute(builder: (context) {
-              //         return const SubstrateSandBox();
-              //       }),
-              //     );
-              //   },
-              // ),
-
-              // ListTile(
-              //   title: const Text('A propos'),
-              //   onTap: () {
-              //   },
-              // ),
             ])),
             Align(
                 alignment: FractionalOffset.bottomCenter,
@@ -220,7 +201,7 @@ Widget geckHome(context) {
           left: 15,
           child: Builder(
             builder: (context) => IconButton(
-              key: const Key('drawerMenu'),
+              key: keyDrawerMenu,
               icon: const Icon(
                 Icons.menu,
                 color: Colors.white,
@@ -343,7 +324,7 @@ Widget geckHome(context) {
                     ],
                   ),
                   child: ClipOval(
-                    key: const Key('manageWallets'),
+                    key: keyManageWallets,
                     child: Material(
                       color: orangeC, // button color
                       child: InkWell(
@@ -466,7 +447,7 @@ Widget welcomeHome(context) {
           left: 15,
           child: Builder(
             builder: (context) => IconButton(
-              key: const Key('drawerMenu'),
+              key: keyDrawerMenu,
               icon: const Icon(
                 Icons.menu,
                 color: Colors.white,
@@ -581,7 +562,7 @@ Widget welcomeHome(context) {
                   width: 410,
                   height: 70,
                   child: OutlinedButton(
-                    key: const Key('restoreChest'),
+                    key: keyRestoreChest,
                     style: OutlinedButton.styleFrom(
                         side: BorderSide(width: 4, color: orangeC)),
                     onPressed: () {
diff --git a/lib/screens/myWallets/chest_options.dart b/lib/screens/myWallets/chest_options.dart
index 221aeda1e9894338c9d9a630159237149d8e4418..7b5e59c6425b856c0450bfebb9e07751326706fe 100644
--- a/lib/screens/myWallets/chest_options.dart
+++ b/lib/screens/myWallets/chest_options.dart
@@ -6,6 +6,7 @@ import 'package:gecko/globals.dart';
 import 'package:gecko/models/chest_data.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/models/wallet_data.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/chest_provider.dart';
 import 'package:gecko/providers/home.dart';
 import 'package:gecko/providers/my_wallets.dart';
@@ -58,7 +59,7 @@ class ChestOptions extends StatelessWidget {
             child: Column(children: <Widget>[
               SizedBox(height: 30 * ratio),
               InkWell(
-                key: const Key('showSeed'),
+                key: keyShowSeed,
                 onTap: () async {
                   MyWalletsProvider myWalletProvider =
                       Provider.of<MyWalletsProvider>(context, listen: false);
@@ -108,7 +109,7 @@ class ChestOptions extends StatelessWidget {
               SizedBox(height: 10 * ratio),
               Consumer<SubstrateSdk>(builder: (context, sub, _) {
                 return InkWell(
-                  key: const Key('changePin'),
+                  key: keyChangePin,
                   onTap: sub.nodeConnected
                       ? () async {
                           // await _chestProvider.changePin(context, cesiumWallet);
@@ -152,7 +153,7 @@ class ChestOptions extends StatelessWidget {
               SizedBox(height: 10 * ratio),
               Consumer<SubstrateSdk>(builder: (context, sub, _) {
                 return InkWell(
-                  key: const Key('createRootDerivation'),
+                  key: keycreateRootDerivation,
                   onTap: sub.nodeConnected
                       ? () async {
                           await Navigator.push(
@@ -188,7 +189,7 @@ class ChestOptions extends StatelessWidget {
               }),
               SizedBox(height: 10 * ratio),
               InkWell(
-                key: const Key('deleteChest'),
+                key: keyDeleteChest,
                 onTap: () async {
                   await chestProvider.deleteChest(context, currentChest);
                 },
diff --git a/lib/screens/myWallets/choose_chest.dart b/lib/screens/myWallets/choose_chest.dart
index a3d4bf9b0980e3746594d2bbf53fd5e31060d5a9..4974f2c9e4121cf1d02a9d47aebd94ccd89c39fd 100644
--- a/lib/screens/myWallets/choose_chest.dart
+++ b/lib/screens/myWallets/choose_chest.dart
@@ -3,6 +3,7 @@
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/models/wallet_data.dart';
 import 'package:flutter/material.dart';
@@ -156,7 +157,7 @@ class _ChooseChestState extends State<ChooseChest> {
               child: Align(
                 alignment: Alignment.bottomCenter,
                 child: InkWell(
-                  key: const Key('createNewChest'),
+                  key: keyCreateNewChest,
                   onTap: () {
                     Navigator.push(
                       context,
@@ -179,7 +180,7 @@ class _ChooseChestState extends State<ChooseChest> {
               ),
             ),
             InkWell(
-                key: const Key('importChest'),
+                key: keyImportChest,
                 onTap: () {
                   Navigator.push(
                     context,
diff --git a/lib/screens/myWallets/choose_wallet.dart b/lib/screens/myWallets/choose_wallet.dart
index e4823a8946447a10c0a62c391f020d9a2864821c..eb38197c6c6a4a3e60d90b9a21646d9cbdf94c3b 100644
--- a/lib/screens/myWallets/choose_wallet.dart
+++ b/lib/screens/myWallets/choose_wallet.dart
@@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/models/wallet_data.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/providers/wallet_options.dart';
@@ -112,7 +113,7 @@ class ChooseWalletScreen extends StatelessWidget {
     return CustomScrollView(slivers: <Widget>[
       const SliverToBoxAdapter(child: SizedBox(height: 20)),
       SliverGrid.count(
-          key: const Key('listWallets'),
+          key: keyListWallets,
           crossAxisCount: nTule,
           childAspectRatio: 1,
           crossAxisSpacing: 0,
diff --git a/lib/screens/myWallets/import_g1_v1.dart b/lib/screens/myWallets/import_g1_v1.dart
index 6448c8b6ab61b49407e762dfb371785cb7ffc875..5b8b3329bee4bbd23aa086588d158a28ef1f1958 100644
--- a/lib/screens/myWallets/import_g1_v1.dart
+++ b/lib/screens/myWallets/import_g1_v1.dart
@@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/models/wallet_data.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/providers/wallet_options.dart';
@@ -173,7 +174,7 @@ class ImportG1v1 extends StatelessWidget {
                     ),
                     const SizedBox(height: 20),
                     GestureDetector(
-                      key: const Key('copyPubkey'),
+                      key: keyCopyAddress,
                       onTap: () {
                         Clipboard.setData(
                             ClipboardData(text: sub.g1V1NewAddress));
diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart
index 4a05ec05ff7bdf089fb1a70a575522da73214138..99feb0b74aadec684c3ae618c709d431c5b4e2f0 100644
--- a/lib/screens/myWallets/manage_membership.dart
+++ b/lib/screens/myWallets/manage_membership.dart
@@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/screens/myWallets/migrate_identity.dart';
 // import 'package:gecko/models/wallet_data.dart';
 // import 'package:gecko/providers/my_wallets.dart';
@@ -41,7 +42,7 @@ class ManageMembership extends StatelessWidget {
 
   Widget migrateIdentity(BuildContext context) {
     return InkWell(
-      key: const Key('migrateIdentity'),
+      key: keyMigrateIdentity,
       onTap: () async {
         Navigator.push(
           context,
@@ -64,7 +65,7 @@ class ManageMembership extends StatelessWidget {
 
   Widget revokeMyIdentity(BuildContext context) {
     return InkWell(
-      key: const Key('revokeIdty'),
+      key: keyRevokeIdty,
       onTap: () async {
         // TODOO: Generate revoke document, and understand extrinsic identity.revokeIdentity options
         // final _answer = await confirmPopup(context,
diff --git a/lib/screens/myWallets/restore_chest.dart b/lib/screens/myWallets/restore_chest.dart
index c1b94048ef92e9a40965e7583dd44c76a52e5649..4ec6d680d875011642af471f1b47b58eb497731d 100644
--- a/lib/screens/myWallets/restore_chest.dart
+++ b/lib/screens/myWallets/restore_chest.dart
@@ -3,6 +3,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/generate_wallets.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/screens/common_elements.dart';
@@ -91,7 +92,7 @@ class RestoreChest extends StatelessWidget {
                     width: 410,
                     height: 70,
                     child: ElevatedButton(
-                      key: const Key('goNext'),
+                      key: keyGoNext,
                       style: ElevatedButton.styleFrom(
                         elevation: 4,
                         primary: orangeC, // background
@@ -131,7 +132,7 @@ class RestoreChest extends StatelessWidget {
                     width: 190,
                     height: 60,
                     child: ElevatedButton(
-                      key: const Key('pasteMnemonic'),
+                        key: keyPastMnemonic,
                         style: ElevatedButton.styleFrom(
                           elevation: 4,
                           primary: yellowC, // background
@@ -175,7 +176,7 @@ class RestoreChest extends StatelessWidget {
       color: Colors.white,
       child: Text(
         text,
-        key: const Key('importText'),
+        key: keyBubbleSpeak,
         textAlign: TextAlign.justify,
         style: const TextStyle(
             color: Colors.black, fontSize: 19, fontWeight: FontWeight.w400),
diff --git a/lib/screens/myWallets/show_seed.dart b/lib/screens/myWallets/show_seed.dart
index b30b463140b53eaa7d793dac233ccd4b36bd219a..002bed1f515ceadb51fd59ebfbb55cadd804b246 100644
--- a/lib/screens/myWallets/show_seed.dart
+++ b/lib/screens/myWallets/show_seed.dart
@@ -4,6 +4,7 @@ import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/models/wallet_data.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/screens/common_elements.dart';
@@ -206,7 +207,7 @@ class ShowSeed extends StatelessWidget {
         ),
         Text(
           dataWord,
-          key: Key('word$dataWord'),
+          key: keyMnemonicWord(dataWord),
           style: TextStyle(fontSize: 17 * ratio, color: Colors.black),
         ),
       ]),
diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart
index 2dc14075839b4d33b9155db49bee002c38723373..30115886bc57540f6bf70443dc536579e36360e7 100644
--- a/lib/screens/myWallets/unlocking_wallet.dart
+++ b/lib/screens/myWallets/unlocking_wallet.dart
@@ -53,7 +53,7 @@ class UnlockingWallet extends StatelessWidget {
                     left: 15,
                     child: Builder(
                       builder: (context) => IconButton(
-                        key: const Key('popButton'),
+                        key: keyPopButton,
                         icon: const Icon(
                           Icons.arrow_back,
                           color: Colors.black,
@@ -104,6 +104,7 @@ class UnlockingWallet extends StatelessWidget {
                     SizedBox(height: 3 * ratio),
                     if (canUnlock)
                       InkWell(
+                        key: keyCachePassword,
                         onTap: () {
                           walletOptions.changePinCacheChoice();
                         },
@@ -128,7 +129,7 @@ class UnlockingWallet extends StatelessWidget {
                     const SizedBox(height: 10),
                     // if (canUnlock)
                     InkWell(
-                        key: const Key('chooseChest'),
+                        key: keyChangeChest,
                         onTap: () {
                           Navigator.push(
                             context,
diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart
index 58f58eedeb07b2f634489d252cff695384d04eaf..a202abda51a9b489f06b6967bc0a3659ef7c1a87 100644
--- a/lib/screens/myWallets/wallet_options.dart
+++ b/lib/screens/myWallets/wallet_options.dart
@@ -3,6 +3,7 @@ import 'dart:io';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/duniter_indexer.dart';
 import 'package:gecko/providers/home.dart';
 import 'package:gecko/providers/my_wallets.dart';
@@ -213,7 +214,7 @@ class WalletOptions extends StatelessWidget {
                                       else
                                         const SizedBox(),
                                       if (isMember.data!)
-                                        manageMemberStatus(context)
+                                        manageMembership(context)
                                     ]);
                                   }),
                             ]);
@@ -334,7 +335,7 @@ class WalletOptions extends StatelessWidget {
   Widget pubkeyWidget(WalletOptionsProvider walletProvider, BuildContext ctx) {
     final String shortPubkey = getShortPubkey(walletProvider.address.text);
     return GestureDetector(
-      key: const Key('copyPubkey'),
+      key: keyCopyAddress,
       onTap: () {
         Clipboard.setData(ClipboardData(text: walletProvider.address.text));
         snackCopyKey(ctx);
@@ -394,7 +395,7 @@ class WalletOptions extends StatelessWidget {
       WalletsProfilesProvider historyProvider,
       WalletOptionsProvider walletProvider) {
     return InkWell(
-      key: const Key('displayActivity'),
+      key: keyOpenActivity,
       onTap: () {
         // _historyProvider.nPage = 1;
         Navigator.push(
@@ -431,11 +432,11 @@ class WalletOptions extends StatelessWidget {
     );
   }
 
-  Widget manageMemberStatus(BuildContext context) {
+  Widget manageMembership(BuildContext context) {
     WalletOptionsProvider walletOptions =
         Provider.of<WalletOptionsProvider>(context, listen: false);
     return InkWell(
-      key: const Key('manageStatus'),
+      key: keyManageMembership,
       onTap: () {
         Navigator.push(
           context,
@@ -471,7 +472,7 @@ class WalletOptions extends StatelessWidget {
       WalletData defaultWallet = myWalletProvider.getDefaultWallet();
       walletOptions.isDefaultWallet = (defaultWallet.number == wallet.id()[1]);
       return InkWell(
-        key: const Key('setDefaultWallet'),
+        key: keySetDefaultWallet,
         onTap: !walletProvider.isDefaultWallet
             ? () async {
                 await setDefaultWallet(context, currentChest);
@@ -544,7 +545,7 @@ class WalletOptions extends StatelessWidget {
               !hasConsumers.data! &&
               (balance > 2 || balance == 0);
           return InkWell(
-            key: const Key('deleteWallet'),
+            key: keyDeleteWallet,
             onTap: canDelete
                 ? () async {
                     await walletProvider.deleteWallet(context, wallet);
diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart
index 19a324cc69814ae2512f38539345914c2f3f4253..03ba5e12e1b903bbdc50e8a10ed476f3b45a09fe 100644
--- a/lib/screens/myWallets/wallets_home.dart
+++ b/lib/screens/myWallets/wallets_home.dart
@@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/chest_data.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/duniter_indexer.dart';
 import 'package:gecko/providers/home.dart';
 import 'package:gecko/providers/my_wallets.dart';
@@ -59,7 +60,6 @@ class WalletsHome extends StatelessWidget {
                 );
               }),
           title: Text(currentChest.name!,
-              key: const Key('myWallets'),
               style: TextStyle(color: Colors.grey[850])),
           backgroundColor: const Color(0xffFFD58D),
         ),
@@ -108,7 +108,7 @@ class WalletsHome extends StatelessWidget {
           )),
       const SizedBox(height: 30),
       InkWell(
-        key: const Key('importG1v1'),
+        key: keyImportG1v1,
         onTap: () {
           Navigator.push(
             context,
@@ -130,7 +130,7 @@ class WalletsHome extends StatelessWidget {
       ),
       const SizedBox(height: 5),
       InkWell(
-        key: const Key('changeChest'),
+        key: keyChangeChest,
         onTap: () {
           Navigator.push(
             context,
@@ -190,7 +190,7 @@ class WalletsHome extends StatelessWidget {
     return CustomScrollView(slivers: <Widget>[
       const SliverToBoxAdapter(child: SizedBox(height: 20)),
       SliverGrid.count(
-          key: const Key('listWallets'),
+          key: keyListWallets,
           crossAxisCount: nTule,
           childAspectRatio: 1,
           crossAxisSpacing: 0,
@@ -366,7 +366,7 @@ class WalletsHome extends StatelessWidget {
             child: Column(children: <Widget>[
               Expanded(
                 child: InkWell(
-                    key: const Key('addDerivation'),
+                    key: keyAddDerivation,
                     onTap: () async {
                       if (!myWalletProvider.isNewDerivationLoading) {
                         WalletData? defaultWallet =
diff --git a/lib/screens/my_contacts.dart b/lib/screens/my_contacts.dart
index 31ab42ca1c71f09a6799bea1125b6c03bd18fbed..abe9fc07af3bc69f863cbaac140e97ba70d26d51 100644
--- a/lib/screens/my_contacts.dart
+++ b/lib/screens/my_contacts.dart
@@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/cesium_plus.dart';
 import 'package:gecko/models/g1_wallets_list.dart';
 import 'package:gecko/providers/duniter_indexer.dart';
@@ -71,7 +72,7 @@ class ContactsScreen extends StatelessWidget {
                           Padding(
                             padding: const EdgeInsets.symmetric(horizontal: 5),
                             child: ListTile(
-                                key: Key('searchResult${keyID++}'),
+                                key: keySearchResult(keyID++),
                                 horizontalTitleGap: 40,
                                 contentPadding: const EdgeInsets.all(5),
                                 leading: cesiumPlusProvider
diff --git a/lib/screens/onBoarding/10.dart b/lib/screens/onBoarding/10.dart
index 03643bf587fc10287c6e6cc54ef25ef853cae18a..82df70c2ceaa62379fb17373309d1f0767614e08 100644
--- a/lib/screens/onBoarding/10.dart
+++ b/lib/screens/onBoarding/10.dart
@@ -102,7 +102,7 @@ class OnboardingStepTen extends StatelessWidget {
               Consumer<SubstrateSdk>(builder: (context, sub, _) {
                 return sub.nodeConnected
                     ? InkWell(
-                        key: const Key('cachePassword'),
+                        key: keyCachePassword,
                         onTap: () {
                           walletOptions.changePinCacheChoice();
                         },
diff --git a/lib/screens/onBoarding/11_congratulations.dart b/lib/screens/onBoarding/11_congratulations.dart
index c461a3bfdaef73cda672a466be0be46cc9ac4500..11f6b29ced99c82ecffb4be549f95b60208c7b77 100644
--- a/lib/screens/onBoarding/11_congratulations.dart
+++ b/lib/screens/onBoarding/11_congratulations.dart
@@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/screens/common_elements.dart';
 import 'package:gecko/screens/myWallets/wallets_home.dart';
 
@@ -54,7 +55,7 @@ Widget finishButton(BuildContext context) {
     width: 380 * ratio,
     height: 60 * ratio,
     child: ElevatedButton(
-        key: const Key('goWalletHome'),
+        key: keyGoWalletsHome,
         style: ElevatedButton.styleFrom(
           elevation: 4,
           primary: orangeC,
diff --git a/lib/screens/onBoarding/5.dart b/lib/screens/onBoarding/5.dart
index 6b9426f0f1060ae0b49bcedb6fe2d0e6466252ee..55e24664a2dd3e8f262cfe16f7e14e27ca742d63 100644
--- a/lib/screens/onBoarding/5.dart
+++ b/lib/screens/onBoarding/5.dart
@@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/generate_wallets.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/screens/common_elements.dart';
@@ -80,7 +81,7 @@ class _ChooseChestState extends State<OnboardingStepFive> {
                   width: 380 * ratio,
                   height: 60 * ratio,
                   child: ElevatedButton(
-                      key: const Key('generateMnemonic'),
+                      key: keyGenerateMnemonic,
                       style: ElevatedButton.styleFrom(
                         elevation: 4,
                         primary: const Color(0xffFFD58D),
@@ -174,7 +175,7 @@ Widget arrayCell(dataWord) {
       ),
       Text(
         dataWord.split(':')[1],
-        key: Key('word${dataWord.split(':')[0]}'),
+        key: keyMnemonicWord(dataWord.split(':')[0]),
         style: TextStyle(fontSize: 17 * ratio, color: Colors.black),
       ),
     ]),
diff --git a/lib/screens/onBoarding/6.dart b/lib/screens/onBoarding/6.dart
index 5a58006b68f43e15ca4b2ea027759539ecc7b208..309ae29947d5e20f4d2b96a4172450b1f4c180b4 100644
--- a/lib/screens/onBoarding/6.dart
+++ b/lib/screens/onBoarding/6.dart
@@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/generate_wallets.dart';
 import 'package:gecko/screens/common_elements.dart';
 import 'package:gecko/screens/onBoarding/7.dart';
@@ -66,7 +67,7 @@ class OnboardingStepSix extends StatelessWidget {
                     true),
                 SizedBox(height: isTall ? 70 : 20),
                 Text('${generateWalletProvider.nbrWord + 1}',
-                    key: const Key('askedWord'),
+                    key: keyAskedWord,
                     style: TextStyle(
                         fontSize: isTall ? 17 : 15,
                         color: orangeC,
@@ -81,7 +82,7 @@ class OnboardingStepSix extends StatelessWidget {
                         )),
                     width: 430,
                     child: TextFormField(
-                        key: const Key('inputWord'),
+                        key: keyInputWord,
                         autofocus: true,
                         enabled: !generateWalletProvider.isAskedWordValid,
                         controller: wordController,
@@ -206,7 +207,7 @@ Widget arrayCell(dataWord) {
       ),
       Text(
         dataWord.split(':')[1],
-        key: Key('word${dataWord.split(':')[0]}'),
+        key: keyMnemonicWord(dataWord.split(':')[0]),
         style: const TextStyle(fontSize: 20, color: Colors.black),
       ),
     ]),
diff --git a/lib/screens/onBoarding/9.dart b/lib/screens/onBoarding/9.dart
index ed29fce907b8549cb47d59aeb7028e3263828550..a2b83ea16923b9fa32c44f3561c985b1257c2de0 100644
--- a/lib/screens/onBoarding/9.dart
+++ b/lib/screens/onBoarding/9.dart
@@ -3,6 +3,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/generate_wallets.dart';
 import 'package:gecko/screens/common_elements.dart';
 import 'package:gecko/screens/onBoarding/10.dart';
@@ -52,7 +53,7 @@ class OnboardingStepNine extends StatelessWidget {
                 alignment: Alignment.centerRight,
                 children: <Widget>[
                   TextField(
-                      key: const Key('generatedPin'),
+                      key: keyGeneratedPin,
                       enabled: false,
                       controller: generateWalletProvider.pin,
                       maxLines: 1,
@@ -79,7 +80,7 @@ class OnboardingStepNine extends StatelessWidget {
                         width: 380 * ratio,
                         height: 60 * ratio,
                         child: ElevatedButton(
-                            key: const Key('changeSecretCode'),
+                            key: keyChangePin,
                             style: ElevatedButton.styleFrom(
                               elevation: 4,
                               primary: const Color(0xffFFD58D),
diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart
index a563873ba94e4e92e11420ac338ce14258b832a9..89ccc0588c6f3a6f7916fd76ccc15c3db986bb3e 100644
--- a/lib/screens/search_result.dart
+++ b/lib/screens/search_result.dart
@@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/cesium_plus.dart';
 import 'package:gecko/models/g1_wallets_list.dart';
 import 'package:gecko/providers/duniter_indexer.dart';
@@ -94,7 +95,7 @@ class SearchResultScreen extends StatelessWidget {
                                   padding:
                                       const EdgeInsets.symmetric(horizontal: 5),
                                   child: ListTile(
-                                      key: Key('searchResult${keyID++}'),
+                                      key: keySearchResult(keyID++),
                                       horizontalTitleGap: 40,
                                       contentPadding: const EdgeInsets.all(5),
                                       leading: cesiumPlusProvider
diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart
index 5918adc00aad7b1c17951039bf531a1d3f4c2597..f219eeafac9ac8ccf8e1f82f3558bbe3c815a264 100644
--- a/lib/screens/settings.dart
+++ b/lib/screens/settings.dart
@@ -1,6 +1,7 @@
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/duniter_indexer.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/providers/settings_provider.dart';
@@ -45,7 +46,7 @@ class SettingsScreen extends StatelessWidget {
           width: buttonWidth,
           child: Center(
             child: InkWell(
-              key: const Key('deleteAllWallets'),
+              key: keyDeleteAllWallets,
               onTap: () async {
                 log.i('Oublier tous mes coffres');
                 await _myWallets.deleteAllWallet(context);
diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart
index bbe47d702c0f04093755a3ec969045957d956ac2..c606cc90a9f6d218a3c40f1724b84a7aae657e54 100644
--- a/lib/screens/wallet_view.dart
+++ b/lib/screens/wallet_view.dart
@@ -5,6 +5,7 @@ import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/models/g1_wallets_list.dart';
+import 'package:gecko/models/widgets_keys.dart';
 import 'package:gecko/providers/cesium_plus.dart';
 import 'package:gecko/providers/home.dart';
 import 'package:gecko/providers/substrate_sdk.dart';
@@ -116,7 +117,7 @@ class WalletViewScreen extends StatelessWidget {
                     child: Material(
                       color: yellowC, //const Color(0xffFFD58D), // button color
                       child: InkWell(
-                          key: const Key('viewHistory'),
+                          key: keyViewActivity,
                           splashColor: orangeC, // inkwell color
                           child: const Padding(
                               padding: EdgeInsets.all(13),
@@ -206,7 +207,7 @@ class WalletViewScreen extends StatelessWidget {
                                   color:
                                       const Color(0xffFFD58D), // button color
                                   child: InkWell(
-                                      key: const Key('certify'),
+                                      key: keyCertify,
                                       splashColor: orangeC, // inkwell color
                                       child: const Padding(
                                         padding: EdgeInsets.only(bottom: 0),
@@ -290,7 +291,7 @@ class WalletViewScreen extends StatelessWidget {
                     child: Material(
                       color: const Color(0xffFFD58D), // button color
                       child: InkWell(
-                          key: const Key('copyKey'),
+                          key: keyCopyAddress,
                           splashColor: orangeC, // inkwell color
                           child: const Padding(
                               padding: EdgeInsets.all(20),
@@ -331,7 +332,7 @@ class WalletViewScreen extends StatelessWidget {
                     child: Material(
                       color: orangeC, // button color
                       child: InkWell(
-                          key: const Key('pay'),
+                          key: keyPay,
                           splashColor: yellowC,
                           onTap: sub.nodeConnected
                               ? () {