diff --git a/lib/models/walletOptions.dart b/lib/models/walletOptions.dart
index 931fe495649115cbef30eaeacc314d6acdd86a6f..d8aed5f774dbda897fdbe76eed59ec3fef8a578c 100644
--- a/lib/models/walletOptions.dart
+++ b/lib/models/walletOptions.dart
@@ -268,13 +268,13 @@ class WalletOptionsProvider with ChangeNotifier {
           ),
           actions: <Widget>[
             TextButton(
-              child: Text("Non"),
+              child: Text("Non", key: Key('cancelDeleting')),
               onPressed: () {
                 Navigator.pop(context, false);
               },
             ),
             TextButton(
-              child: Text("Oui"),
+              child: Text("Oui", key: Key('confirmDeleting')),
               onPressed: () {
                 Navigator.pop(context, true);
               },
diff --git a/lib/screens/myWallets/unlockingWallet.dart b/lib/screens/myWallets/unlockingWallet.dart
index 615b52631d29511cc16e933aab6b22c33c6eba25..1efba3c52c875cda429adaf0645f6f1923e7f43d 100644
--- a/lib/screens/myWallets/unlockingWallet.dart
+++ b/lib/screens/myWallets/unlockingWallet.dart
@@ -94,7 +94,7 @@ class UnlockingWallet extends StatelessWidget {
               fontWeight: FontWeight.bold,
             ),
             length: _pinLenght,
-            obscureText: false,
+            obscureText: true,
             obscuringCharacter: '*',
             animationType: AnimationType.fade,
             validator: (v) {
diff --git a/lib/screens/myWallets/walletOptions.dart b/lib/screens/myWallets/walletOptions.dart
index 24a63e6eb5530fa133478bc12e4f9f5954592bcd..c4c1ccd0a51a88a480cd17eeaf75929186cd2e90 100644
--- a/lib/screens/myWallets/walletOptions.dart
+++ b/lib/screens/myWallets/walletOptions.dart
@@ -205,6 +205,7 @@ class WalletOptions extends StatelessWidget {
                             ),
                             SizedBox(height: 5),
                             InkWell(
+                                key: Key('displayBalance'),
                                 onTap: () {
                                   _walletOptions.bluringBalance();
                                 },
@@ -279,6 +280,7 @@ class WalletOptions extends StatelessWidget {
                     }),
                 SizedBox(height: 15 * ratio),
                 GestureDetector(
+                    key: Key('copyPubkey'),
                     onTap: () {
                       Clipboard.setData(
                           ClipboardData(text: _walletOptions.pubkey.text));
@@ -334,6 +336,7 @@ class WalletOptions extends StatelessWidget {
                         ]))),
                 SizedBox(height: 10 * ratio),
                 InkWell(
+                    key: Key('displayHistory'),
                     onTap: () {
                       _historyProvider.isPubkey(ctx, _walletOptions.pubkey.text,
                           goHistory: true);
@@ -352,6 +355,7 @@ class WalletOptions extends StatelessWidget {
                         ]))),
                 SizedBox(height: 12 * ratio),
                 InkWell(
+                    key: Key('setDefaultWallet'),
                     onTap: !_walletOptions.isDefaultWallet
                         ? () {
                             defaultWallet = wallet;
@@ -381,25 +385,31 @@ class WalletOptions extends StatelessWidget {
                                       : Colors.black)),
                         ]))),
                 SizedBox(height: 17 * ratio),
-                InkWell(
-                    onTap: () async {
-                      await _walletOptions.deleteWallet(context, wallet);
-                      WidgetsBinding.instance.addPostFrameCallback((_) {
-                        _myWalletProvider.listWallets =
-                            _myWalletProvider.readAllWallets(_currentChest);
-                        _myWalletProvider.rebuildWidget();
-                      });
-                    },
-                    child: Row(children: <Widget>[
-                      SizedBox(width: 33),
-                      Image.asset(
-                        'assets/walletOptions/trash.png',
-                      ),
-                      SizedBox(width: 14),
-                      Text('Supprimer ce portefeuille',
-                          style: TextStyle(
-                              fontSize: 20, color: Color(0xffD80000))),
-                    ])),
+                if (!_walletOptions.isDefaultWallet)
+                  InkWell(
+                      key: Key('deleteWallet'),
+                      onTap: !_walletOptions.isDefaultWallet
+                          ? () async {
+                              await _walletOptions.deleteWallet(
+                                  context, wallet);
+                              WidgetsBinding.instance.addPostFrameCallback((_) {
+                                _myWalletProvider.listWallets =
+                                    _myWalletProvider
+                                        .readAllWallets(_currentChest);
+                                _myWalletProvider.rebuildWidget();
+                              });
+                            }
+                          : null,
+                      child: Row(children: <Widget>[
+                        SizedBox(width: 33),
+                        Image.asset(
+                          'assets/walletOptions/trash.png',
+                        ),
+                        SizedBox(width: 14),
+                        Text('Supprimer ce portefeuille',
+                            style: TextStyle(
+                                fontSize: 20, color: Color(0xffD80000))),
+                      ])),
               ]),
             ),
           ),
diff --git a/lib/screens/onBoarding/11.dart b/lib/screens/onBoarding/11.dart
index f4e1c55153626752a6151fb0dcb53b2b812d4c05..42969dfaaf5754f64f39b37a46a36ecc7beb7a27 100644
--- a/lib/screens/onBoarding/11.dart
+++ b/lib/screens/onBoarding/11.dart
@@ -84,6 +84,7 @@ class OnboardingStepThirteen extends StatelessWidget {
                       width: 400,
                       height: 62,
                       child: ElevatedButton(
+                          key: Key('changeSecretCode'),
                           style: ElevatedButton.styleFrom(
                             elevation: 5,
                             primary: Color(0xffFFD58D),
diff --git a/test_driver/app_test.dart b/test_driver/app_test.dart
index b5d99d2b2cc96b14b7241b9d561d6d31e1378be5..81bcebf202f92c86fa70e8ec5dcb7d30f6bcfb6d 100644
--- a/test_driver/app_test.dart
+++ b/test_driver/app_test.dart
@@ -15,6 +15,7 @@ void main() {
     // final buttonFinder = find.byValueKey('increment');
 
     FlutterDriver driver;
+    String pinCode;
 
     // Connect to the Flutter driver before running any tests.
     setUpAll(() async {
@@ -80,7 +81,7 @@ void main() {
 
       while (await getText('word1') == '...') {
         print('Waiting for Mnemonic generation...');
-        await Future.delayed(const Duration(milliseconds: 100));
+        await sleep(100);
       }
 
       Future selectWord() async {
@@ -93,15 +94,12 @@ void main() {
             await getText('step7'), "C'est le moment de noter votre phrase !");
 
         await tapOn('goStep8');
-        await Future.delayed(const Duration(milliseconds: 200));
+        await sleep(200);
 
         String goodWord = words[int.parse(
           await getText('askedWord'),
         )];
 
-        // await tapOn('inputWord');
-        // await Future.delayed(const Duration(milliseconds: 500));
-
         // Enter the expected word
         await driver.enterText(goodWord);
 
@@ -117,13 +115,13 @@ void main() {
       //Go back 2 times to mnemonic generation screen
       await goBack();
       await goBack();
-      await Future.delayed(const Duration(milliseconds: 100));
+      await sleep(100);
 
       // Generate 3 times mnemonic
       await tapOn('generateMnemonic');
       await tapOn('generateMnemonic');
       await tapOn('generateMnemonic');
-      await Future.delayed(const Duration(milliseconds: 500));
+      await sleep(500);
 
       await selectWord();
     });
@@ -137,18 +135,22 @@ void main() {
 
       while (await getText('generatedPin') == '') {
         print('Waiting for pin code generation...');
-        await Future.delayed(const Duration(milliseconds: 100));
+        await sleep(100);
       }
 
-      final pinCode = await getText('generatedPin');
+      // Change secret code 4 times
+      for (int i = 0; i < 4; i++) await tapOn('changeSecretCode');
+
+      await sleep(500);
+      pinCode = await getText('generatedPin');
 
       await tapOn('goStep12');
-      await Future.delayed(const Duration(milliseconds: 300));
+      await sleep(300);
 
       // //Enter bad secret code
       // await driver.enterText('abcde');
       // await tapOn('formKey');
-      // await Future.delayed(const Duration(milliseconds: 4000));
+      // await sleep(1500);
       // await tapOn('formKey2');
 
       //Enter good secret code
@@ -163,21 +165,96 @@ void main() {
       await tapOn('goWalletHome');
 
       expect(await getText('myWallets'), "Mes portefeuilles");
-      await Future.delayed(const Duration(milliseconds: 300));
+      await sleep(300);
+
+      // Create a derivation
+      Future createDerivation(String _name) async {
+        await tapOn('addDerivation');
+        await sleep(100);
+
+        await driver.enterText(_name);
+
+        await tapOn('validDerivation');
+        await sleep(300);
+      }
 
       // Add a second derivation
-      await tapOn('addDerivation');
-      await Future.delayed(const Duration(milliseconds: 50));
+      await createDerivation('Derivation 2');
 
-      await driver.enterText('Derivation 2');
+      // Go to second derivation options
+      await driver.tap(find.text('Derivation 2'));
+      await sleep(100);
 
-      await tapOn('validDerivation');
-      await Future.delayed(const Duration(milliseconds: 300));
+      // Test options
+      await tapOn('displayBalance');
+      await tapOn('displayHistory');
+      await sleep(300);
+      await goBack();
+      await tapOn('displayBalance');
+      await sleep(100);
+      await tapOn('displayBalance');
+      await sleep(100);
+      await tapOn('displayBalance');
+      await tapOn('setDefaultWallet');
+      await sleep(50);
+      await tapOn('copyPubkey');
+      await driver.waitFor(find
+          .text('Cette clé publique a été copié dans votre presse-papier.'));
+      await goBack();
 
+      // Add a third derivation
+      await createDerivation('Derivation 3');
+
+      // Add a fourth derivation
+      await createDerivation('Derivation 4');
+      await sleep(50);
+
+      // Go to third derivation options
+      await driver.tap(find.text('Derivation 3'));
+      await sleep(100);
+      await tapOn('displayBalance');
+
+      // Delete a derivation
+      Future deleteWallet(bool _confirm) async {
+        await tapOn('deleteWallet');
+        await sleep(100);
+        _confirm
+            ? await tapOn('confirmDeleting')
+            : await tapOn('cancelDeleting');
+        await sleep(300);
+      }
+
+      // Delete third derivation
+      await deleteWallet(true);
+
+      // Add derivation 5,6 and 7
+      await createDerivation('Derivation 5');
+      await createDerivation('Derivation 6');
+      await createDerivation('Derivation 7');
+
+      // Go home and come back to my wallets view
+      await goBack();
+      await sleep(100);
+      await tapOn('manageWallets');
+      await sleep(200);
+      //Enter secret code
+      await driver.enterText(pinCode);
+      await sleep(200);
+
+      // Go to derivation 6 and delete it
+      await driver.tap(find.text('Derivation 6'));
+      await sleep(100);
+      await deleteWallet(true);
+
+      // Go to 2nd derivation and check if it's de default
       await driver.tap(find.text('Derivation 2'));
+      await driver.waitFor(find.text('Ce portefeuille est celui par defaut'));
+      await tapOn('setDefaultWallet');
+      await sleep(100);
+      await driver.waitFor(find.text('Ce portefeuille est celui par defaut'));
 
       // Wait 3 seconds at the end
-      await Future.delayed(const Duration(seconds: 3));
+      await sleep(3000);
     });
   });
 }
@@ -190,3 +267,7 @@ Future goBack() async {
     runInShell: true,
   );
 }
+
+Future sleep(int _time) async {
+  await Future.delayed(Duration(milliseconds: _time));
+}