diff --git a/lib/providers/my_wallets.dart b/lib/providers/my_wallets.dart
index 0c4a4b8394c99326abf0b8cc19365fc6e3059829..e8a7ded0ad77f08a23899c340c9f8dd42762639e 100644
--- a/lib/providers/my_wallets.dart
+++ b/lib/providers/my_wallets.dart
@@ -24,6 +24,7 @@ class MyWalletsProvider with ChangeNotifier {
     // configBox.delete('endpoint');
     if (!configBox.containsKey('endpoint') || configBox.get('endpoint') == '') {
       log.d('No endpoint, configure...');
+      // configBox.put('endpoint', 'wss://gdev.librelois.fr/ws');
       configBox.put('endpoint', 'ws://127.0.0.1:9944');
     }
 
diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart
index 1ee42d871d1b405fe4f3935470035b7a78b5c34d..f6e5bb436228959de0eba66e5d4d906a570e4b41 100644
--- a/lib/providers/substrate_sdk.dart
+++ b/lib/providers/substrate_sdk.dart
@@ -26,6 +26,7 @@ class SubstrateSdk with ChangeNotifier {
   bool importIsLoading = false;
   int blocNumber = 0;
   bool isLoadingEndpoint = false;
+  String debugConnection = '';
 
   TextEditingController jsonKeystore = TextEditingController();
   TextEditingController keystorePassword = TextEditingController();
@@ -48,7 +49,7 @@ class SubstrateSdk with ChangeNotifier {
     n.endpoint = configBox.get('endpoint');
     n.ss58 = ss58;
     node.add(n);
-    int timeout = 7000;
+    int timeout = 10000;
 
     // if (n.endpoint!.startsWith('ws://')) {
     //   timeout = 5000;
@@ -85,22 +86,21 @@ class SubstrateSdk with ChangeNotifier {
     notifyListeners();
     if (res != null) {
       nodeConnected = true;
+
+      // Subscribe bloc number
+      sdk.api.setting.subscribeBestNumber((res) {
+        blocNumber = int.parse(res.toString());
+        notifyListeners();
+      });
       notifyListeners();
       snackNode(ctx, true);
     } else {
       nodeConnected = false;
+      debugConnection = res.toString();
       notifyListeners();
       snackNode(ctx, false);
     }
 
-    // Subscribe bloc number
-    if (nodeConnected) {
-      sdk.api.setting.subscribeBestNumber((res) {
-        blocNumber = int.parse(res.toString());
-        notifyListeners();
-      });
-    }
-
     log.d(sdk.api.connectedNode?.endpoint);
   }
 
@@ -371,12 +371,12 @@ class SubstrateSdk with ChangeNotifier {
     );
 
     try {
-      final tata = await sdk.api.tx.signAndSend(
+      final result = await sdk.api.tx.signAndSend(
         txInfo,
         [name],
         password,
       );
-      log.d(tata);
+      log.d(result);
       return 'confirmed';
     } on Exception catch (e) {
       log.e(e);
diff --git a/lib/providers/wallets_profiles.dart b/lib/providers/wallets_profiles.dart
index e26291e0220302581b0de1da43e1cbda679c3815..f32cb35b019fcd8338365ad4d80464b7210745f8 100644
--- a/lib/providers/wallets_profiles.dart
+++ b/lib/providers/wallets_profiles.dart
@@ -265,6 +265,10 @@ class WalletsProfilesProvider with ChangeNotifier {
 
     return balance;
   }
+
+  void reload() {
+    notifyListeners();
+  }
 }
 
 snackCopyKey(context) {
diff --git a/lib/screens/myWallets/choose_chest.dart b/lib/screens/myWallets/choose_chest.dart
index c9b7aadd31b937063c499de8717a6ef4e2b59766..58e947812244a4519a7a41c034dbdaa029521b4c 100644
--- a/lib/screens/myWallets/choose_chest.dart
+++ b/lib/screens/myWallets/choose_chest.dart
@@ -3,9 +3,10 @@ import 'package:gecko/globals.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/models/wallet_data.dart';
 import 'package:flutter/material.dart';
-import 'package:gecko/screens/myWallets/generate_wallets.dart';
+import 'package:gecko/screens/myWallets/restore_chest.dart';
 import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
 import 'package:carousel_slider/carousel_slider.dart';
+import 'package:gecko/screens/onBoarding/5.dart';
 import 'package:provider/provider.dart';
 
 class ChooseChest extends StatefulWidget {
@@ -136,28 +137,54 @@ class _ChooseChestState extends State<ChooseChest> {
                 ),
               ),
             ),
-            const SizedBox(height: 20),
+            // const SizedBox(height: 20),
+            Expanded(
+              child: Align(
+                alignment: Alignment.bottomCenter,
+                child: InkWell(
+                  key: const Key('createNewChest'),
+                  onTap: () {
+                    Navigator.push(
+                      context,
+                      MaterialPageRoute(builder: (context) {
+                        return const OnboardingStepFive(skipIntro: true);
+                      }),
+                    );
+                  },
+                  child: SizedBox(
+                    width: 400,
+                    height: 50,
+                    child: Center(
+                        child: Text('Créer un nouveau coffre',
+                            style: TextStyle(
+                                fontSize: 22,
+                                color: orangeC,
+                                fontWeight: FontWeight.w600))),
+                  ),
+                ),
+              ),
+            ),
             InkWell(
-                key: const Key('createNewChest'),
+                key: const Key('importChest'),
                 onTap: () {
                   Navigator.push(
                     context,
                     MaterialPageRoute(builder: (context) {
-                      return GenerateFastChestScreen();
+                      return const RestoreChest(skipIntro: true);
                     }),
                   );
                 },
                 child: SizedBox(
                   width: 400,
-                  height: 70,
+                  height: 50,
                   child: Center(
-                      child: Text('Créer un nouveau coffre',
+                      child: Text('Importer un coffre',
                           style: TextStyle(
                               fontSize: 22,
                               color: orangeC,
                               fontWeight: FontWeight.w600))),
                 )),
-            const SizedBox(height: 10),
+            const SizedBox(height: 20),
           ]),
         ));
   }
diff --git a/lib/screens/myWallets/choose_wallet.dart b/lib/screens/myWallets/choose_wallet.dart
index 7fabd0cc457b307e77322c108659ddb1a2ff3fbf..a3facaa1e41962e9219fae87803888ca38d76573 100644
--- a/lib/screens/myWallets/choose_wallet.dart
+++ b/lib/screens/myWallets/choose_wallet.dart
@@ -22,9 +22,7 @@ class ChooseWalletScreen extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
-    SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
-    WalletsProfilesProvider _walletViewProvider =
-        Provider.of<WalletsProfilesProvider>(context, listen: false);
+
     // HomeProvider _homeProvider = Provider.of<HomeProvider>(context);
     return Scaffold(
         appBar: AppBar(
@@ -50,19 +48,22 @@ class ChooseWalletScreen extends StatelessWidget {
                       onPrimary: Colors.white, // foreground
                     ),
                     onPressed: () async {
-                      final acc = _sub.getCurrentWallet();
-                      log.d(
-                          "fromAddress: ${acc.address!},destAddress: ${_walletViewProvider.outputPubkey.text}, amount: ${double.parse(_walletViewProvider.payAmount.text)},  password: $pin");
-                      final resultPay = await _sub.pay(context,
-                          fromAddress: acc.address!,
-                          destAddress: _walletViewProvider.outputPubkey.text,
-                          amount:
-                              double.parse(_walletViewProvider.payAmount.text),
-                          password: pin.toUpperCase());
-                      await paymentsResult(context, resultPay);
+                      Navigator.pop(context);
+                      Navigator.pop(context);
+                      // Payment workflow !
+                      // final acc = _sub.getCurrentWallet();
+                      // log.d(
+                      //     "fromAddress: ${acc.address!},destAddress: ${_walletViewProvider.outputPubkey.text}, amount: ${double.parse(_walletViewProvider.payAmount.text)},  password: $pin");
+                      // final resultPay = await _sub.pay(context,
+                      //     fromAddress: acc.address!,
+                      //     destAddress: _walletViewProvider.outputPubkey.text,
+                      //     amount:
+                      //         double.parse(_walletViewProvider.payAmount.text),
+                      //     password: pin.toUpperCase());
+                      // await paymentsResult(context, resultPay);
                     },
                     child: const Text(
-                      'Valider le paiement',
+                      'Choisir ce portefeuille',
                       style:
                           TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
                     ),
@@ -80,6 +81,8 @@ class ChooseWalletScreen extends StatelessWidget {
         Provider.of<MyWalletsProvider>(context);
     final bool isWalletsExists = _myWalletProvider.checkIfWalletExist();
     SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
+    WalletsProfilesProvider _walletViewProvider =
+        Provider.of<WalletsProfilesProvider>(context, listen: false);
 
     WalletData? defaultWallet =
         _myWalletProvider.getDefaultWallet(currentChest);
@@ -129,8 +132,12 @@ class ChooseWalletScreen extends StatelessWidget {
                     onTap: () {
                       _derivation = _repository.derivation!;
                       _selectedId = _repository.id();
+                      chestBox.get(currentChest)!.defaultWallet =
+                          _repository.number;
+
                       _sub.setCurrentWallet(_repository.address!);
                       _myWalletProvider.rebuildWidget();
+                      _walletViewProvider.reload();
                     },
                     child: ClipOvalShadow(
                       shadow: const Shadow(
@@ -196,8 +203,11 @@ class ChooseWalletScreen extends StatelessWidget {
                             onTap: () {
                               _derivation = _repository.derivation!;
                               _selectedId = _repository.id();
+                              chestBox.get(currentChest)!.defaultWallet =
+                                  _repository.number;
                               _sub.setCurrentWallet(_repository.address!);
-                              _myWalletProvider.rebuildWidget();
+                              // _myWalletProvider.rebuildWidget();
+                              _sub.reload();
                             },
                           )
                         ]),
diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart
index a91563ba576a353a4f7af4b1f43692063ad0e01d..88e9f291e4e86da870e3384c5bbb2646db9d3343 100644
--- a/lib/screens/myWallets/unlocking_wallet.dart
+++ b/lib/screens/myWallets/unlocking_wallet.dart
@@ -212,21 +212,33 @@ class UnlockingWallet extends StatelessWidget {
                 pinFocus.requestFocus();
               } else {
                 pinColor = Colors.green[400];
-                if (action == "mywallets") {
-                  Navigator.push(
-                    context,
-                    MaterialPageRoute(builder: (context) {
-                      return const WalletsHome();
-                    }),
-                  );
-                } else if (action == "pay") {
-                  Navigator.push(
-                    context,
-                    MaterialPageRoute(builder: (context) {
-                      return ChooseWalletScreen(
-                          chest: currentChestNumber, pin: _pin.toUpperCase());
-                    }),
-                  );
+                switch (action) {
+                  case "mywallets":
+                    Navigator.push(
+                      context,
+                      MaterialPageRoute(builder: (context) {
+                        return const WalletsHome();
+                      }),
+                    );
+                    break;
+                  case "changeWallet":
+                    Navigator.push(
+                      context,
+                      MaterialPageRoute(builder: (context) {
+                        return ChooseWalletScreen(
+                            chest: currentChestNumber, pin: _pin.toUpperCase());
+                      }),
+                    );
+                    break;
+                  case "pay":
+                    Navigator.push(
+                      context,
+                      MaterialPageRoute(builder: (context) {
+                        return ChooseWalletScreen(
+                            chest: currentChestNumber, pin: _pin.toUpperCase());
+                      }),
+                    );
+                    break;
                 }
               }
             },
diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart
index 18cabb58f9cf9486fb24e99585ae66012c92aa2c..6af37215c0ce36f77a98445ef030c4be74b31fab 100644
--- a/lib/screens/wallet_view.dart
+++ b/lib/screens/wallet_view.dart
@@ -2,6 +2,7 @@ import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/providers/cesium_plus.dart';
+import 'package:gecko/providers/substrate_sdk.dart';
 import 'package:gecko/providers/wallet_options.dart';
 import 'package:gecko/providers/my_wallets.dart';
 import 'package:gecko/models/wallet_data.dart';
@@ -23,11 +24,11 @@ class WalletViewScreen extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
-    WalletsProfilesProvider _historyProvider =
+    WalletsProfilesProvider _walletViewProvider =
         Provider.of<WalletsProfilesProvider>(context, listen: false);
     CesiumPlusProvider _cesiumPlusProvider =
         Provider.of<CesiumPlusProvider>(context, listen: false);
-    _historyProvider.pubkey = pubkey!;
+    _walletViewProvider.pubkey = pubkey!;
 
     return Scaffold(
         resizeToAvoidBottomInset: true,
@@ -41,7 +42,8 @@ class WalletViewScreen extends StatelessWidget {
         ),
         body: SafeArea(
           child: Column(children: <Widget>[
-            headerProfileView(context, _historyProvider, _cesiumPlusProvider),
+            headerProfileView(
+                context, _walletViewProvider, _cesiumPlusProvider),
             SizedBox(height: isTall ? 120 : 70),
             Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
               Column(children: <Widget>[
@@ -163,7 +165,7 @@ class WalletViewScreen extends StatelessWidget {
                             image: AssetImage('assets/vector_white.png'),
                           )),
                       onTap: () {
-                        paymentPopup(context, _historyProvider);
+                        paymentPopup(context, _walletViewProvider);
                       }),
                 ),
               ),
@@ -182,11 +184,14 @@ class WalletViewScreen extends StatelessWidget {
 
   void paymentPopup(
       BuildContext context, WalletsProfilesProvider _walletViewProvider) {
-    // WalletsProfilesProvider _walletViewProvider =
-    //     Provider.of<WalletsProfilesProvider>(context);
-    const double shapeSize = 20;
+    WalletsProfilesProvider _walletViewProvider =
+        Provider.of<WalletsProfilesProvider>(context, listen: false);
+
     MyWalletsProvider _myWalletProvider =
         Provider.of<MyWalletsProvider>(context, listen: false);
+    // SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
+
+    const double shapeSize = 20;
     WalletData? defaultWallet =
         _myWalletProvider.getDefaultWallet(configBox.get('currentChest'));
     _walletViewProvider.outputPubkey.text = pubkey!;
@@ -218,7 +223,8 @@ class WalletViewScreen extends StatelessWidget {
                   ),
                 ),
                 child: Padding(
-                  padding: const EdgeInsets.all(24),
+                  padding: const EdgeInsets.only(
+                      top: 24, bottom: 0, left: 24, right: 24),
                   child: Column(
                       mainAxisSize: MainAxisSize.min,
                       crossAxisAlignment: CrossAxisAlignment.start,
@@ -230,86 +236,168 @@ class WalletViewScreen extends StatelessWidget {
                         ),
                         const SizedBox(height: 20),
                         Text(
-                          'Saisissez dans le champ ci-dessous le montant à virer.',
+                          'Depuis:',
                           style: TextStyle(
                               fontSize: 19,
                               fontWeight: FontWeight.w500,
                               color: Colors.grey[600]),
                         ),
-                        const Spacer(),
-                        Center(
-                          child: Column(children: <Widget>[
-                            TextField(
-                              controller: _walletViewProvider.payAmount,
-                              autofocus: true,
-                              maxLines: 1,
-                              textAlign: TextAlign.center,
-                              keyboardType: TextInputType.number,
-                              onChanged: (_) => setState(() {}),
-                              inputFormatters: <TextInputFormatter>[
-                                FilteringTextInputFormatter.allow(
-                                    RegExp(r'^\d+\.?\d{0,2}')),
-                              ],
-                              // onChanged: (v) => _searchProvider.rebuildWidget(),
-                              decoration: InputDecoration(
-                                hintText: '0.00',
-                                suffix: Text(currencyName),
-                                filled: true,
-                                fillColor: Colors.transparent,
+                        const SizedBox(height: 10),
+                        Consumer<SubstrateSdk>(builder: (context, _sub, _) {
+                          return InkWell(
+                            onTap: () {
+                              Navigator.push(
+                                context,
+                                MaterialPageRoute(
+                                  builder: (context) {
+                                    return UnlockingWallet(
+                                        wallet: defaultWallet, action: "pay");
+                                  },
+                                ),
+                              );
+                            },
+                            child: Container(
+                              width: double.infinity,
+                              // height: 25,
+                              decoration: BoxDecoration(
                                 // border: OutlineInputBorder(
                                 //     borderSide:
                                 //         BorderSide(color: Colors.grey[500], width: 2),
                                 //     borderRadius: BorderRadius.circular(8)),
-                                focusedBorder: OutlineInputBorder(
-                                  borderSide: BorderSide(
-                                      color: Colors.grey[500]!, width: 2),
-                                  borderRadius: BorderRadius.circular(8),
-                                ),
-                                contentPadding: const EdgeInsets.all(20),
-                              ),
-                              style: const TextStyle(
-                                fontSize: 40,
-                                color: Colors.black,
-                                fontWeight: FontWeight.w600,
+                                border: Border.all(
+                                    color:
+                                        Colors.grey[500]!, // Set border color
+                                    width: 2), // Set border width
+                                borderRadius: const BorderRadius.all(
+                                    Radius.circular(10.0)), // Set ro
                               ),
+                              padding: const EdgeInsets.all(10),
+
+                              child: Row(children: [
+                                Text(defaultWallet!.name!),
+                                const Spacer(),
+                                FutureBuilder(
+                                    future:
+                                        _sub.getBalance(defaultWallet.address!),
+                                    builder: (BuildContext context,
+                                        AsyncSnapshot<num?> _balance) {
+                                      if (_balance.connectionState !=
+                                              ConnectionState.done ||
+                                          _balance.hasError) {
+                                        if (balanceCache[
+                                                defaultWallet.address!] !=
+                                            null) {
+                                          return Text(
+                                              balanceCache[
+                                                  defaultWallet.address!]!,
+                                              style: const TextStyle(
+                                                fontSize: 20,
+                                              ));
+                                        } else {
+                                          return SizedBox(
+                                            height: 15,
+                                            width: 15,
+                                            child: CircularProgressIndicator(
+                                              color: orangeC,
+                                              strokeWidth: 2,
+                                            ),
+                                          );
+                                        }
+                                      }
+                                      balanceCache[defaultWallet.address!] =
+                                          "${_balance.data.toString()} $currencyName";
+                                      return Text(
+                                        balanceCache[defaultWallet.address!]!,
+                                        style: const TextStyle(
+                                          fontSize: 20,
+                                        ),
+                                      );
+                                    }),
+                              ]),
                             ),
-                            const SizedBox(height: 40),
-                            // const Spacer(),
-                            SizedBox(
-                              width: double.infinity,
-                              height: 60,
-                              child: ElevatedButton(
-                                style: ElevatedButton.styleFrom(
-                                  elevation: 4,
-                                  primary: orangeC, // background
-                                  onPrimary: Colors.white, // foreground
-                                ),
-                                onPressed:
-                                    _walletViewProvider.payAmount.text != ''
-                                        ? () {
-                                            Navigator.push(
-                                              context,
-                                              MaterialPageRoute(
-                                                builder: (context) {
-                                                  return UnlockingWallet(
-                                                      wallet: defaultWallet,
-                                                      action: "pay");
-                                                },
-                                              ),
-                                            );
-                                          }
-                                        : null,
-                                child: const Text(
-                                  'Effectuer le virement',
-                                  style: TextStyle(
-                                      fontSize: 20,
-                                      fontWeight: FontWeight.w600),
-                                ),
-                              ),
+                          );
+                        }),
+                        const Spacer(),
+
+                        // const SizedBox(height: 10),
+                        Text(
+                          'Montant:',
+                          style: TextStyle(
+                              fontSize: 19,
+                              fontWeight: FontWeight.w500,
+                              color: Colors.grey[600]),
+                        ),
+                        const SizedBox(height: 10),
+                        TextField(
+                          controller: _walletViewProvider.payAmount,
+                          autofocus: true,
+                          maxLines: 1,
+                          textAlign: TextAlign.center,
+                          keyboardType: TextInputType.number,
+                          onChanged: (_) => setState(() {
+                            // _walletViewProvider.reload();
+                          }),
+                          inputFormatters: <TextInputFormatter>[
+                            FilteringTextInputFormatter.allow(
+                                RegExp(r'^\d+\.?\d{0,2}')),
+                          ],
+                          // onChanged: (v) => _searchProvider.rebuildWidget(),
+                          decoration: InputDecoration(
+                            hintText: '0.00',
+                            suffix: Text(currencyName),
+                            filled: true,
+                            fillColor: Colors.transparent,
+                            // border: OutlineInputBorder(
+                            //     borderSide:
+                            //         BorderSide(color: Colors.grey[500], width: 2),
+                            //     borderRadius: BorderRadius.circular(8)),
+
+                            focusedBorder: OutlineInputBorder(
+                              borderSide: BorderSide(
+                                  color: Colors.grey[500]!, width: 2),
+                              borderRadius: BorderRadius.circular(8),
                             ),
-                            const SizedBox(height: 20),
-                          ]),
+                            contentPadding: const EdgeInsets.all(20),
+                          ),
+                          style: const TextStyle(
+                            fontSize: 40,
+                            color: Colors.black,
+                            fontWeight: FontWeight.w600,
+                          ),
+                        ),
+                        // const SizedBox(height: 40),
+                        const Spacer(),
+                        SizedBox(
+                          width: double.infinity,
+                          height: 60,
+                          child: ElevatedButton(
+                            style: ElevatedButton.styleFrom(
+                              elevation: 4,
+                              primary: orangeC, // background
+                              onPrimary: Colors.white, // foreground
+                            ),
+                            onPressed: _walletViewProvider.payAmount.text != ''
+                                ? () {
+                                    Navigator.push(
+                                      context,
+                                      MaterialPageRoute(
+                                        builder: (context) {
+                                          return UnlockingWallet(
+                                              wallet: defaultWallet,
+                                              action: "pay");
+                                        },
+                                      ),
+                                    );
+                                  }
+                                : null,
+                            child: const Text(
+                              'Effectuer le virement',
+                              style: TextStyle(
+                                  fontSize: 20, fontWeight: FontWeight.w600),
+                            ),
+                          ),
                         ),
+                        const Spacer(),
                       ]),
                 ),
               ),