diff --git a/lib/providers/generate_wallets.dart b/lib/providers/generate_wallets.dart
index d4ca755c26ba7ab3fc3e2a76015d94aed02c59fa..0d90ec57c82bf4752c0f4285b3e24ab7a3d98f5e 100644
--- a/lib/providers/generate_wallets.dart
+++ b/lib/providers/generate_wallets.dart
@@ -374,6 +374,10 @@ class GenerateWalletsProvider with ChangeNotifier {
     scanedWalletNumber = 0;
     notifyListeners();
 
+    if (!_sub.nodeConnected) {
+      return false;
+    }
+
     final hasRoot = await scanRootBalance(_sub, currentChestNumber);
     if (hasRoot) {
       scanedWalletNumber = 1;
diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart
index bbb4ffa5779e4626ec651c7dd2fef451e7982271..27cebf856ca9d5045270de1e60f9c35c4b5a2ddd 100644
--- a/lib/providers/substrate_sdk.dart
+++ b/lib/providers/substrate_sdk.dart
@@ -113,7 +113,6 @@ class SubstrateSdk with ChangeNotifier {
         } else {
           nodeConnected = true;
         }
-
         notifyListeners();
       });
 
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 5286fe8e332982dff23c8e72f51a8e1f255d8c86..8dfc90187159cb4f79aac8bb1f9247ad4ead45f6 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -134,7 +134,6 @@ class HomeScreen extends StatelessWidget {
                       .onConnectivityChanged
                       .listen((ConnectivityResult result) async {
                     log.d('Network changed: $result');
-
                     await _sub.connectNode(ctx);
                   });
                 }
diff --git a/lib/screens/myWallets/chest_options.dart b/lib/screens/myWallets/chest_options.dart
index 9cb75b51f36e0dc2e7c72e5e8e6ba2f85cf8e015..f36a101a883b5ada26a4707816068d66030b97a2 100644
--- a/lib/screens/myWallets/chest_options.dart
+++ b/lib/screens/myWallets/chest_options.dart
@@ -6,6 +6,8 @@ import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/providers/chest_provider.dart';
 import 'package:gecko/providers/home.dart';
 import 'package:gecko/providers/my_wallets.dart';
+import 'package:gecko/providers/substrate_sdk.dart';
+import 'package:gecko/screens/common_elements.dart';
 import 'package:gecko/screens/myWallets/change_pin.dart';
 import 'package:gecko/screens/myWallets/custom_derivations.dart';
 import 'package:gecko/screens/myWallets/show_seed.dart';
@@ -47,152 +49,171 @@ class ChestOptions extends StatelessWidget {
             child: Text(currentChest.name!),
           )),
       bottomNavigationBar: _homeProvider.bottomAppBar(context),
-      body: Builder(
-        builder: (ctx) => SafeArea(
-          child: Column(children: <Widget>[
-            SizedBox(height: 30 * ratio),
-            InkWell(
-              key: const Key('showSeed'),
-              onTap: () async {
-                MyWalletsProvider _myWalletProvider =
-                    Provider.of<MyWalletsProvider>(context, listen: false);
-                WalletData? defaultWallet =
-                    _myWalletProvider.getDefaultWallet();
-                String? _pin;
-                if (_myWalletProvider.pinCode == '') {
-                  _pin = await Navigator.push(
-                    context,
-                    MaterialPageRoute(
-                      builder: (homeContext) {
-                        return UnlockingWallet(wallet: defaultWallet);
-                      },
+      body: Stack(children: [
+        Builder(
+          builder: (ctx) => SafeArea(
+            child: Column(children: <Widget>[
+              SizedBox(height: 30 * ratio),
+              InkWell(
+                key: const Key('showSeed'),
+                onTap: () async {
+                  MyWalletsProvider _myWalletProvider =
+                      Provider.of<MyWalletsProvider>(context, listen: false);
+                  WalletData? defaultWallet =
+                      _myWalletProvider.getDefaultWallet();
+                  String? _pin;
+                  if (_myWalletProvider.pinCode == '') {
+                    _pin = await Navigator.push(
+                      context,
+                      MaterialPageRoute(
+                        builder: (homeContext) {
+                          return UnlockingWallet(wallet: defaultWallet);
+                        },
+                      ),
+                    );
+                  }
+                  if (_pin != null || _myWalletProvider.pinCode != '') {
+                    Navigator.push(
+                      context,
+                      MaterialPageRoute(builder: (context) {
+                        return ShowSeed(
+                          walletName: currentChest.name,
+                          walletProvider: walletProvider,
+                        );
+                      }),
+                    );
+                  }
+                },
+                child: SizedBox(
+                  height: 50,
+                  child: Row(children: <Widget>[
+                    const SizedBox(width: 20),
+                    Image.asset(
+                      'assets/onBoarding/phrase_de_restauration_flou.png',
+                      width: 60,
                     ),
-                  );
-                }
-                if (_pin != null || _myWalletProvider.pinCode != '') {
-                  Navigator.push(
-                    context,
-                    MaterialPageRoute(builder: (context) {
-                      return ShowSeed(
-                        walletName: currentChest.name,
-                        walletProvider: walletProvider,
-                      );
-                    }),
-                  );
-                }
-              },
-              child: SizedBox(
-                height: 50,
-                child: Row(children: <Widget>[
-                  const SizedBox(width: 20),
-                  Image.asset(
-                    'assets/onBoarding/phrase_de_restauration_flou.png',
-                    width: 60,
-                  ),
-                  const SizedBox(width: 15),
-                  Text(
-                    'Afficher ma phrase de restauration',
-                    style: TextStyle(
-                      fontSize: 20,
-                      color: orangeC,
+                    const SizedBox(width: 15),
+                    Text(
+                      'Afficher ma phrase de restauration',
+                      style: TextStyle(
+                        fontSize: 20,
+                        color: orangeC,
+                      ),
                     ),
-                  ),
-                ]),
+                  ]),
+                ),
               ),
-            ),
-            SizedBox(height: 10 * ratio),
-            InkWell(
-              key: const Key('changePin'),
-              onTap: () async {
-                // await _chestProvider.changePin(context, cesiumWallet);
-                String? pinResult = await Navigator.push(
-                  context,
-                  MaterialPageRoute(
-                    builder: (context) {
-                      return ChangePinScreen(
-                        walletName: currentChest.name,
-                        walletProvider: walletProvider,
-                      );
-                    },
+              SizedBox(height: 10 * ratio),
+              Consumer<SubstrateSdk>(builder: (context, _sub, _) {
+                return InkWell(
+                  key: const Key('changePin'),
+                  onTap: _sub.nodeConnected
+                      ? () async {
+                          // await _chestProvider.changePin(context, cesiumWallet);
+                          String? pinResult = await Navigator.push(
+                            context,
+                            MaterialPageRoute(
+                              builder: (context) {
+                                return ChangePinScreen(
+                                  walletName: currentChest.name,
+                                  walletProvider: walletProvider,
+                                );
+                              },
+                            ),
+                          );
+
+                          if (pinResult != null) {
+                            walletProvider.pinCode = pinResult;
+                          }
+                        }
+                      : null,
+                  child: SizedBox(
+                      height: 50,
+                      child: Row(children: <Widget>[
+                        const SizedBox(width: 26),
+                        Image.asset(
+                          'assets/chests/secret_code.png',
+                          height: 25,
+                        ),
+                        const SizedBox(width: 18),
+                        Text(
+                          'Changer mon code secret',
+                          style: TextStyle(
+                              fontSize: 20,
+                              color: _sub.nodeConnected
+                                  ? Colors.black
+                                  : Colors.grey[500]),
+                        ),
+                      ])),
+                );
+              }),
+              SizedBox(height: 10 * ratio),
+              Consumer<SubstrateSdk>(builder: (context, _sub, _) {
+                return InkWell(
+                  key: const Key('createRootDerivation'),
+                  onTap: _sub.nodeConnected
+                      ? () async {
+                          await Navigator.push(
+                            context,
+                            MaterialPageRoute(
+                              builder: (context) {
+                                return const CustomDerivation();
+                              },
+                            ),
+                          );
+                        }
+                      : null,
+                  child: SizedBox(
+                    height: 50,
+                    child: Row(children: <Widget>[
+                      const SizedBox(width: 35),
+                      const Icon(
+                        Icons.manage_accounts,
+                        size: 33,
+                      ),
+                      const SizedBox(width: 25),
+                      Text(
+                        'Créer une autre dérivation',
+                        style: TextStyle(
+                            fontSize: 20,
+                            color: _sub.nodeConnected
+                                ? Colors.black
+                                : Colors.grey[500]),
+                      ),
+                    ]),
                   ),
                 );
-
-                if (pinResult != null) {
-                  walletProvider.pinCode = pinResult;
-                }
-              },
-              child: SizedBox(
+              }),
+              SizedBox(height: 10 * ratio),
+              InkWell(
+                key: const Key('deleteChest'),
+                onTap: () async {
+                  await _chestProvider.deleteChest(context, currentChest);
+                },
+                child: SizedBox(
                   height: 50,
                   child: Row(children: <Widget>[
-                    const SizedBox(width: 26),
+                    const SizedBox(width: 28),
                     Image.asset(
-                      'assets/chests/secret_code.png',
-                      height: 25,
+                      'assets/walletOptions/trash.png',
+                      height: 45,
                     ),
-                    const SizedBox(width: 18),
+                    const SizedBox(width: 20),
                     const Text(
-                      'Changer mon code secret',
-                      style: TextStyle(fontSize: 20, color: Colors.black),
+                      'Supprimer ce coffre',
+                      style: TextStyle(
+                        fontSize: 20,
+                        color: Color(0xffD80000),
+                      ),
                     ),
-                  ])),
-            ),
-            SizedBox(height: 10 * ratio),
-            InkWell(
-              key: const Key('createRootDerivation'),
-              onTap: () async {
-                await Navigator.push(
-                  context,
-                  MaterialPageRoute(
-                    builder: (context) {
-                      return const CustomDerivation();
-                    },
-                  ),
-                );
-              },
-              child: SizedBox(
-                height: 50,
-                child: Row(children: const <Widget>[
-                  SizedBox(width: 35),
-                  Icon(
-                    Icons.manage_accounts,
-                    size: 33,
-                  ),
-                  SizedBox(width: 25),
-                  Text(
-                    'Créer une autre dérivation',
-                    style: TextStyle(fontSize: 20, color: Colors.black),
-                  ),
-                ]),
-              ),
-            ),
-            SizedBox(height: 10 * ratio),
-            InkWell(
-              key: const Key('deleteChest'),
-              onTap: () async {
-                await _chestProvider.deleteChest(context, currentChest);
-              },
-              child: SizedBox(
-                height: 50,
-                child: Row(children: <Widget>[
-                  const SizedBox(width: 28),
-                  Image.asset(
-                    'assets/walletOptions/trash.png',
-                    height: 45,
-                  ),
-                  const SizedBox(width: 20),
-                  const Text(
-                    'Supprimer ce coffre',
-                    style: TextStyle(
-                      fontSize: 20,
-                      color: Color(0xffD80000),
-                    ),
-                  ),
-                ]),
+                  ]),
+                ),
               ),
-            ),
-          ]),
+            ]),
+          ),
         ),
-      ),
+        CommonElements().offlineInfo(context),
+      ]),
     );
   }
 }
diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart
index ca4961826a352433dfc6ab3a84eabe26e69e5e5a..f7ff92e8ec3840c5a468883ec8650abe7fb9f765 100644
--- a/lib/screens/myWallets/unlocking_wallet.dart
+++ b/lib/screens/myWallets/unlocking_wallet.dart
@@ -126,30 +126,30 @@ class UnlockingWallet extends StatelessWidget {
                         ]),
                       ),
                     const SizedBox(height: 10),
-                    if (canUnlock)
-                      InkWell(
-                          key: const Key('chooseChest'),
-                          onTap: () {
-                            Navigator.push(
-                              context,
-                              MaterialPageRoute(builder: (context) {
-                                return const ChooseChest();
-                              }),
-                            );
-                          },
-                          child: SizedBox(
-                            width: 400,
-                            height: 50,
-                            child: Center(
-                              child: Text(
-                                'Changer de coffre',
-                                style: TextStyle(
-                                    fontSize: 22,
-                                    color: orangeC,
-                                    fontWeight: FontWeight.w600),
-                              ),
+                    // if (canUnlock)
+                    InkWell(
+                        key: const Key('chooseChest'),
+                        onTap: () {
+                          Navigator.push(
+                            context,
+                            MaterialPageRoute(builder: (context) {
+                              return const ChooseChest();
+                            }),
+                          );
+                        },
+                        child: SizedBox(
+                          width: 400,
+                          height: 50,
+                          child: Center(
+                            child: Text(
+                              'Changer de coffre',
+                              style: TextStyle(
+                                  fontSize: 22,
+                                  color: orangeC,
+                                  fontWeight: FontWeight.w600),
                             ),
-                          )),
+                          ),
+                        )),
                   ]),
                 ]),
               ]),
diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart
index 4290487ce43715679e0c03618a18a54d6cdbdd6a..9f7f304457cc10c43d0c125557c1e6f02bf32202 100644
--- a/lib/screens/myWallets/wallets_home.dart
+++ b/lib/screens/myWallets/wallets_home.dart
@@ -7,6 +7,7 @@ import 'package:gecko/providers/home.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/models/wallet_data.dart';
 import 'package:flutter/material.dart';
+import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/providers/wallet_options.dart';
 import 'package:gecko/screens/common_elements.dart';
 import 'package:gecko/screens/myWallets/chest_options.dart';
@@ -298,7 +299,11 @@ class WalletsHome extends StatelessWidget {
                       ),
                     ),
                   )),
-            addNewDerivation(context),
+            Consumer<SubstrateSdk>(builder: (context, _sub, _) {
+              return _sub.nodeConnected
+                  ? addNewDerivation(context)
+                  : const Text('');
+            }),
             // SizedBox(height: 1),
             // Padding(
             //     padding: EdgeInsets.symmetric(horizontal: 35),
diff --git a/lib/screens/onBoarding/10.dart b/lib/screens/onBoarding/10.dart
index d2e756de5cd2cc94f985777d2b26138b8489507e..b06ba94d9cb344755b9d380e06471e4312c0694a 100644
--- a/lib/screens/onBoarding/10.dart
+++ b/lib/screens/onBoarding/10.dart
@@ -73,28 +73,48 @@ class OnboardingStepTen extends StatelessWidget {
                 ),
               ),
             ),
-            pinForm(context, _walletOptions, _pinLenght, 1, 2),
-            InkWell(
-              onTap: () {
-                _walletOptions.changePinCacheChoice();
-              },
-              child: Row(children: [
-                const SizedBox(height: 30),
-                const Spacer(),
-                Icon(
-                  configBox.get('isCacheChecked') ?? false
-                      ? Icons.check_box
-                      : Icons.check_box_outline_blank,
-                  color: orangeC,
-                ),
-                const SizedBox(width: 8),
-                Text(
-                  'Garder ce code en mémoire 15 minutes',
-                  style: TextStyle(fontSize: 16, color: Colors.grey[700]),
-                ),
-                const Spacer()
-              ]),
-            ),
+            Consumer<SubstrateSdk>(builder: (context, _sub, _) {
+              return _sub.nodeConnected
+                  ? pinForm(context, _walletOptions, _pinLenght, 1, 2)
+                  : Row(
+                      mainAxisAlignment: MainAxisAlignment.center,
+                      children: const [
+                          Text(
+                            'Vous devez vous connecter à internet\npour valider votre coffre',
+                            style: TextStyle(
+                              fontSize: 20,
+                              color: Colors.redAccent,
+                              fontWeight: FontWeight.w500,
+                            ),
+                            textAlign: TextAlign.center,
+                          ),
+                        ]);
+            }),
+            Consumer<SubstrateSdk>(builder: (context, _sub, _) {
+              return _sub.nodeConnected
+                  ? InkWell(
+                      onTap: () {
+                        _walletOptions.changePinCacheChoice();
+                      },
+                      child: Row(children: [
+                        const SizedBox(height: 30),
+                        const Spacer(),
+                        Icon(
+                          configBox.get('isCacheChecked') ?? false
+                              ? Icons.check_box
+                              : Icons.check_box_outline_blank,
+                          color: orangeC,
+                        ),
+                        const SizedBox(width: 8),
+                        Text(
+                          'Garder ce code en mémoire 15 minutes',
+                          style:
+                              TextStyle(fontSize: 16, color: Colors.grey[700]),
+                        ),
+                        const Spacer()
+                      ]))
+                  : const Text('');
+            }),
             const SizedBox(height: 10),
           ]),
         ));