diff --git a/assets/walletOptions/trash.png b/assets/walletOptions/trash.png
index 2d008a034bf97e0244c6f4210ed4bab49c1c70ff..e2c1cbc3b48ac396404355b9a97e587c58b7637e 100644
Binary files a/assets/walletOptions/trash.png and b/assets/walletOptions/trash.png differ
diff --git a/lib/main.dart b/lib/main.dart
index 585f1cd395894871e1c0fd65efe52867b7e997e4..053d46acf4ab59172533323b17c76c1b42466703 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -25,7 +25,7 @@ import 'package:gecko/models/chest_data.dart';
 import 'package:gecko/models/chest_provider.dart';
 import 'package:gecko/models/g1_wallets_list.dart';
 import 'package:gecko/models/generate_wallets.dart';
-import 'package:gecko/models/history.dart';
+import 'package:gecko/models/wallets_profiles.dart';
 import 'package:gecko/models/home.dart';
 import 'package:gecko/models/my_wallets.dart';
 import 'package:gecko/models/search.dart';
@@ -139,7 +139,7 @@ class Gecko extends StatelessWidget {
         providers: [
           // Provider(create: (context) => HistoryProvider()),
           ChangeNotifierProvider(create: (_) => HomeProvider()),
-          ChangeNotifierProvider(create: (_) => HistoryProvider('')),
+          ChangeNotifierProvider(create: (_) => WalletsProfilesProvider('')),
           ChangeNotifierProvider(create: (_) => MyWalletsProvider()),
           ChangeNotifierProvider(create: (_) => ChestProvider()),
           ChangeNotifierProvider(create: (_) => GenerateWalletsProvider()),
diff --git a/lib/models/g1_wallets_list.dart b/lib/models/g1_wallets_list.dart
index 286e98e4bb226f67062f5416cd904e66dadef9ee..2457f9f9fc147e835de3eb635413472163db607e 100644
--- a/lib/models/g1_wallets_list.dart
+++ b/lib/models/g1_wallets_list.dart
@@ -1,3 +1,4 @@
+import 'package:flutter/material.dart';
 import 'package:hive_flutter/hive_flutter.dart';
 
 part 'g1_wallets_list.g.dart';
@@ -13,7 +14,10 @@ class G1WalletsList {
   @HiveField(3)
   Id id;
 
-  G1WalletsList({this.pubkey, this.balance, this.id});
+  @HiveField(4)
+  Image avatar;
+
+  G1WalletsList({this.pubkey, this.balance, this.id, this.avatar});
 
   G1WalletsList.fromJson(Map<String, dynamic> json) {
     pubkey = json['pubkey'];
diff --git a/lib/models/g1_wallets_list.g.dart b/lib/models/g1_wallets_list.g.dart
index 31b83c65e737fb98e2d985a656d9d709c1f7b05b..b729a6de010e4c27fc2c514a6313f1d62f32a54a 100644
--- a/lib/models/g1_wallets_list.g.dart
+++ b/lib/models/g1_wallets_list.g.dart
@@ -1,5 +1,7 @@
 // GENERATED CODE - DO NOT MODIFY BY HAND
 
+// ignore_for_file: unused_local_variable
+
 part of 'g1_wallets_list.dart';
 
 // **************************************************************************
@@ -20,19 +22,22 @@ class G1WalletsListAdapter extends TypeAdapter<G1WalletsList> {
       pubkey: fields[0] as String,
       balance: fields[1] as double,
       id: fields[3] as Id,
+      avatar: fields[4] as Image,
     );
   }
 
   @override
   void write(BinaryWriter writer, G1WalletsList obj) {
     writer
-      ..writeByte(3)
+      ..writeByte(4)
       ..writeByte(0)
       ..write(obj.pubkey)
       ..writeByte(1)
       ..write(obj.balance)
       ..writeByte(3)
-      ..write(obj.id);
+      ..write(obj.id)
+      ..writeByte(4)
+      ..write(obj.avatar);
   }
 
   @override
@@ -52,6 +57,10 @@ class IdAdapter extends TypeAdapter<Id> {
 
   @override
   Id read(BinaryReader reader) {
+    final numOfFields = reader.readByte();
+    final fields = <int, dynamic>{
+      for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+    };
     return Id();
   }
 
diff --git a/lib/models/home.dart b/lib/models/home.dart
index 1d8aacb4bbe7b06ac1211b9d5a339fd8920fb0c4..f8b99eb6c23b93c6a3d3f379792f8f485002a9e1 100644
--- a/lib/models/home.dart
+++ b/lib/models/home.dart
@@ -8,7 +8,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'dart:async';
 import 'package:gecko/globals.dart';
-import 'package:gecko/screens/history.dart';
+import 'package:gecko/screens/old_history_pay.dart';
 import 'package:gecko/screens/myWallets/wallets_home.dart';
 import 'package:package_info/package_info.dart';
 
diff --git a/lib/models/search.dart b/lib/models/search.dart
index 6742966309313722a37eef9cef998e44f80f9085..7fa8673100233c2a9b1761330e2de168cb5ca937 100644
--- a/lib/models/search.dart
+++ b/lib/models/search.dart
@@ -19,14 +19,17 @@ class SearchProvider with ChangeNotifier {
     searchResult.clear();
     int searchTime = DateTime.now().millisecondsSinceEpoch;
 
-    if (cacheTime + cacheDuring <= searchTime) {
+    if (cacheTime + 0 <= searchTime) {
       g1WalletsBox.clear();
       final url = Uri.parse('https://g1-stats.axiom-team.fr/data/forbes.json');
       final response = await http.get(url);
 
       List<G1WalletsList> _listWallets = _parseG1Wallets(response.body);
+      Map<String, G1WalletsList> _mapWallets = {
+        for (var e in _listWallets) e.pubkey: e
+      };
 
-      await g1WalletsBox.addAll(_listWallets);
+      await g1WalletsBox.putAll(_mapWallets);
       cacheTime = DateTime.now().millisecondsSinceEpoch;
     }
 
diff --git a/lib/models/history.dart b/lib/models/wallets_profiles.dart
similarity index 92%
rename from lib/models/history.dart
rename to lib/models/wallets_profiles.dart
index b72d22b33a46020e6cb92a9a3774c6541e370014..62a0dfc2ddea18479e50bef2bd0dfc3eb3fde43f 100644
--- a/lib/models/history.dart
+++ b/lib/models/wallets_profiles.dart
@@ -15,10 +15,11 @@ import 'package:truncate/truncate.dart';
 import 'package:crypto/crypto.dart';
 import 'package:fast_base58/fast_base58.dart';
 
-class HistoryProvider with ChangeNotifier {
+class WalletsProfilesProvider with ChangeNotifier {
+  WalletsProfilesProvider(this.pubkey);
+
   String pubkey = '';
   String pubkeyShort = '';
-  HistoryProvider(this.pubkey);
   final TextEditingController outputPubkey = TextEditingController();
   List transBC;
   String fetchMoreCursor;
@@ -38,9 +39,14 @@ class HistoryProvider with ChangeNotifier {
       log.e(e);
       return 'false';
     }
-    if (barcode != null) {
+    if (barcode != null && isPubkey(context, barcode)) {
       outputPubkey.text = barcode;
-      isPubkey(context, barcode);
+      Navigator.push(
+        context,
+        MaterialPageRoute(builder: (context) {
+          return const WalletViewScreen();
+        }),
+      );
     } else {
       return 'false';
     }
@@ -71,7 +77,7 @@ class HistoryProvider with ChangeNotifier {
     }
   }
 
-  String isPubkey(context, pubkey, {bool goHistory}) {
+  bool isPubkey(context, pubkey) {
     final RegExp regExp = RegExp(
       r'^[a-zA-Z0-9]+$',
       caseSensitive: false,
@@ -84,32 +90,22 @@ class HistoryProvider with ChangeNotifier {
       log.d("C'est une pubkey !");
 
       this.pubkey = pubkey;
-      getShortPubkey(pubkey);
-
-      outputPubkey.text = pubkey;
+      // getShortPubkey(pubkey);
 
-      goHistory ??= false;
+      // outputPubkey.text = pubkey;
 
-      if (goHistory) {
-        isHistoryScreen = true;
-        historySwitchButtun = "Payer";
-      } else {
-        isHistoryScreen = false;
-        historySwitchButtun = "Voir l'historique";
-      }
+      // Navigator.push(
+      //   context,
+      //   MaterialPageRoute(builder: (context) {
+      //     return const WalletViewScreen();
+      //   }),
+      // );
+      // notifyListeners();
 
-      Navigator.push(
-        context,
-        MaterialPageRoute(builder: (context) {
-          return WalletViewScreen();
-        }),
-      );
-      notifyListeners();
-
-      return pubkey;
+      return true;
+    } else {
+      return false;
     }
-
-    return '';
   }
 
   String getShortPubkey(String pubkey) {
diff --git a/lib/screens/avatar_fullscreen.dart b/lib/screens/avatar_fullscreen.dart
index d7f5cedec3a3c4e7a4431f229680bd74d12ed27c..3389e95779ae540882e0ed121b22eefec653b060 100644
--- a/lib/screens/avatar_fullscreen.dart
+++ b/lib/screens/avatar_fullscreen.dart
@@ -8,8 +8,11 @@ import 'package:flutter/material.dart';
 class AvatarFullscreen extends StatelessWidget {
   TextEditingController tplController = TextEditingController();
 
-  AvatarFullscreen(this.avatar, {Key key}) : super(key: key);
+  AvatarFullscreen(this.avatar, {this.title, this.color, Key key})
+      : super(key: key);
   final Image avatar;
+  final String title;
+  final Color color;
 
   @override
   Widget build(BuildContext context) {
@@ -18,7 +21,7 @@ class AvatarFullscreen extends StatelessWidget {
     return Scaffold(
       appBar: AppBar(
           elevation: 0,
-          backgroundColor: Colors.black,
+          backgroundColor: color ?? Colors.black,
           toolbarHeight: 60 * ratio,
           leading: IconButton(
               icon: Icon(Icons.arrow_back, color: orangeC),
@@ -28,14 +31,14 @@ class AvatarFullscreen extends StatelessWidget {
           title: SizedBox(
             height: 22,
             child: Text(
-              'Photo de profil',
+              title ?? 'Photo de profil',
               style: TextStyle(color: orangeC),
             ),
           )),
       body: SafeArea(
         child: SizedBox.expand(
           child: Container(
-            color: Colors.black,
+            color: color ?? Colors.black,
             // alignment: Alignment.center,
             // height: MediaQuery.of(context).size.height,
             // width: MediaQuery.of(context).size.width,
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index eff093ffcffe68ff7fc2f9ff30a691003b53c2b7..da1f1eb701327e9e2f7fd293e283c279460d2836 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -2,7 +2,7 @@ import 'package:bubble/bubble.dart';
 import 'package:dubp/dubp.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/chest_provider.dart';
-import 'package:gecko/models/history.dart';
+import 'package:gecko/models/wallets_profiles.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/models/home.dart';
 import 'package:gecko/models/my_wallets.dart';
@@ -123,7 +123,8 @@ Widget geckHome(context) {
   MyWalletsProvider _myWalletProvider = Provider.of<MyWalletsProvider>(context);
   Provider.of<ChestProvider>(context);
 
-  HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
+  WalletsProfilesProvider _historyProvider =
+      Provider.of<WalletsProfilesProvider>(context);
   final double statusBarHeight = MediaQuery.of(context).padding.top;
   return Container(
     decoration: const BoxDecoration(
diff --git a/lib/screens/myWallets/cesium_wallet_options.dart b/lib/screens/myWallets/cesium_wallet_options.dart
index 115c318f3c5d15d083fdc62fa14ae2a3cd4bd12e..42a14aa50b19f50e4068d9a685446989d8a05734 100644
--- a/lib/screens/myWallets/cesium_wallet_options.dart
+++ b/lib/screens/myWallets/cesium_wallet_options.dart
@@ -5,11 +5,12 @@ import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/chest_data.dart';
 import 'package:gecko/models/chest_provider.dart';
-import 'package:gecko/models/history.dart';
+import 'package:gecko/models/wallets_profiles.dart';
 import 'package:gecko/models/my_wallets.dart';
 import 'package:gecko/models/queries.dart';
 import 'package:gecko/models/wallet_options.dart';
 import 'package:gecko/screens/myWallets/change_pin.dart';
+import 'package:gecko/screens/wallet_view.dart';
 import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:provider/provider.dart';
 import 'package:flutter/services.dart';
@@ -24,7 +25,8 @@ Widget cesiumWalletOptions(BuildContext context, ChestData cesiumWallet,
       Provider.of<WalletOptionsProvider>(context);
   ChestProvider _chestProvider =
       Provider.of<ChestProvider>(context, listen: false);
-  HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
+  WalletsProfilesProvider _historyProvider =
+      Provider.of<WalletsProfilesProvider>(context);
 
   final String shortPubkey =
       _walletOptions.getShortPubkey(_walletOptions.pubkey.text);
@@ -283,8 +285,15 @@ Widget cesiumWalletOptions(BuildContext context, ChestData cesiumWallet,
           InkWell(
               key: const Key('displayHistory'),
               onTap: () {
-                _historyProvider.isPubkey(ctx, _walletOptions.pubkey.text,
-                    goHistory: true);
+                if (_historyProvider.isPubkey(
+                    context, _walletOptions.pubkey.text)) {
+                  Navigator.push(
+                    context,
+                    MaterialPageRoute(builder: (context) {
+                      return const WalletViewScreen();
+                    }),
+                  );
+                }
               },
               child: SizedBox(
                   height: 50,
diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart
index 0be8fa1db1514171ccc06c8ad127906e4b9155fd..56b97523da6395866dbc3e9a8820c4e508448789 100644
--- a/lib/screens/myWallets/unlocking_wallet.dart
+++ b/lib/screens/myWallets/unlocking_wallet.dart
@@ -2,7 +2,7 @@ import 'dart:async';
 import 'package:dubp/dubp.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/models/chest_data.dart';
-import 'package:gecko/models/history.dart';
+import 'package:gecko/models/wallets_profiles.dart';
 import 'package:gecko/models/my_wallets.dart';
 import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/models/wallet_options.dart';
@@ -124,7 +124,8 @@ class UnlockingWallet extends StatelessWidget {
         Provider.of<WalletOptionsProvider>(context);
     MyWalletsProvider _myWalletProvider =
         Provider.of<MyWalletsProvider>(context);
-    HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
+    WalletsProfilesProvider _historyProvider =
+        Provider.of<WalletsProfilesProvider>(context);
 
     FocusNode pinFocus = FocusNode();
 
diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart
index 8f049f2aec99f30b24f47e77ee86138c4f000281..27c69b66e64e5782e5e629b9d7ad1517040c89fb 100644
--- a/lib/screens/myWallets/wallet_options.dart
+++ b/lib/screens/myWallets/wallet_options.dart
@@ -3,11 +3,12 @@ import 'dart:ui';
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
-import 'package:gecko/models/history.dart';
+import 'package:gecko/models/wallets_profiles.dart';
 import 'package:gecko/models/my_wallets.dart';
 import 'package:gecko/models/queries.dart';
 import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/models/wallet_options.dart';
+import 'package:gecko/screens/wallet_view.dart';
 import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:provider/provider.dart';
 import 'package:flutter/services.dart';
@@ -27,7 +28,8 @@ class WalletOptions extends StatelessWidget {
         Provider.of<WalletOptionsProvider>(context);
     MyWalletsProvider _myWalletProvider =
         Provider.of<MyWalletsProvider>(context);
-    HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
+    WalletsProfilesProvider _historyProvider =
+        Provider.of<WalletsProfilesProvider>(context);
 
     final int _currentChest = _myWalletProvider.getCurrentChest();
     final String shortPubkey =
@@ -263,14 +265,14 @@ class WalletOptions extends StatelessWidget {
                   ])),
               SizedBox(height: 4 * ratio),
               FutureBuilder(
-                  future:
-                      _walletOptions.generateQRcode(_walletOptions.pubkey.text),
-                  builder: (context, snapshot) {
-                    return snapshot.data != null
-                        ? Image.memory(snapshot.data,
-                            height: isTall ? 300 : 270)
-                        : const Text('-', style: TextStyle(fontSize: 20));
-                  }),
+                future:
+                    _walletOptions.generateQRcode(_walletOptions.pubkey.text),
+                builder: (context, snapshot) {
+                  return snapshot.data != null
+                      ? Image.memory(snapshot.data, height: isTall ? 300 : 270)
+                      : const Text('-', style: TextStyle(fontSize: 20));
+                },
+              ),
               SizedBox(height: 15 * ratio),
               GestureDetector(
                 key: const Key('copyPubkey'),
@@ -337,8 +339,15 @@ class WalletOptions extends StatelessWidget {
               InkWell(
                 key: const Key('displayHistory'),
                 onTap: () {
-                  _historyProvider.isPubkey(ctx, _walletOptions.pubkey.text,
-                      goHistory: true);
+                  if (_historyProvider.isPubkey(
+                      context, _walletOptions.pubkey.text)) {
+                    Navigator.push(
+                      context,
+                      MaterialPageRoute(builder: (context) {
+                        return const WalletViewScreen();
+                      }),
+                    );
+                  }
                 },
                 child: SizedBox(
                   height: 50,
diff --git a/lib/screens/history.dart b/lib/screens/old_history_pay.dart
similarity index 93%
rename from lib/screens/history.dart
rename to lib/screens/old_history_pay.dart
index 21fe283ed840e0e47a9e78c3eb209f4403c432dd..581251edd7e879c876846dd82dfa5bb34efffbb5 100644
--- a/lib/screens/history.dart
+++ b/lib/screens/old_history_pay.dart
@@ -4,11 +4,12 @@ import 'package:gecko/models/cesium_plus.dart';
 import 'package:gecko/models/home.dart';
 import 'package:gecko/models/my_wallets.dart';
 import 'package:gecko/models/queries.dart';
-import 'package:gecko/models/history.dart';
+import 'package:gecko/models/wallets_profiles.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/foundation.dart';
 import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
+import 'package:gecko/screens/wallet_view.dart';
 import 'dart:ui';
 import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:provider/provider.dart';
@@ -33,7 +34,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
   @override
   Widget build(BuildContext context) {
     SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
-    HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
+    WalletsProfilesProvider _historyProvider =
+        Provider.of<WalletsProfilesProvider>(context);
     HomeProvider _homeProvider = Provider.of<HomeProvider>(context);
     _outputPubkey.text = _historyProvider.pubkey;
     log.i('Build pubkey : ' + _historyProvider.pubkey);
@@ -61,10 +63,14 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                           controller: _homeProvider.searchQuery,
                           onChanged: (text) {
                             log.d("Clé tappé: $text");
-                            final String searchResult =
-                                _historyProvider.isPubkey(context, text);
-                            if (searchResult != '') {
+                            if (_historyProvider.isPubkey(context, text)) {
                               _homeProvider.currentIndex = 0;
+                              Navigator.push(
+                                context,
+                                MaterialPageRoute(builder: (context) {
+                                  return const WalletViewScreen();
+                                }),
+                              );
                             }
                           },
                           style: TextStyle(
@@ -111,7 +117,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
         ]));
   }
 
-  Widget historyQuery(context, HistoryProvider _historyProvider) {
+  Widget historyQuery(context, WalletsProfilesProvider _historyProvider) {
     _pubkeyFocus.unfocus();
     // HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
     CesiumPlusProvider _cesiumPlusProvider =
@@ -327,7 +333,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
     ));
   }
 
-  Widget payView(context, HistoryProvider _historyProvider) {
+  Widget payView(context, WalletsProfilesProvider _historyProvider) {
     MyWalletsProvider _myWalletProvider = MyWalletsProvider();
     WalletData defaultWallet =
         _myWalletProvider.getDefaultWallet(configBox.get('currentChest'));
@@ -407,7 +413,10 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
   }
 
   Widget historyView(context, result) {
-    HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
+    WalletsProfilesProvider _historyProvider =
+        Provider.of<WalletsProfilesProvider>(context);
+    HomeProvider _homeProvider =
+        Provider.of<HomeProvider>(context, listen: false);
     int keyID = 0;
 
     return _historyProvider.transBC == null
@@ -438,8 +447,15 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
                     dense: true,
                     isThreeLine: false,
                     onTap: () {
-                      // this._outputPubkey.text = repository[2];
-                      _historyProvider.isPubkey(context, repository[2]);
+                      if (_historyProvider.isPubkey(context, repository[2])) {
+                        _homeProvider.currentIndex = 0;
+                        Navigator.push(
+                          context,
+                          MaterialPageRoute(builder: (context) {
+                            return const WalletViewScreen();
+                          }),
+                        );
+                      }
                       Navigator.pop(context);
                     }),
               ),
diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart
index 1f09f52d8358d1af4d6b2025b0a0c796a333f50a..0fc216ebb1b6a5102a2e3d5e7d7f77ed464ef938 100644
--- a/lib/screens/search_result.dart
+++ b/lib/screens/search_result.dart
@@ -3,8 +3,9 @@ import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/models/cesium_plus.dart';
 import 'package:gecko/models/g1_wallets_list.dart';
-import 'package:gecko/models/history.dart';
+import 'package:gecko/models/wallets_profiles.dart';
 import 'package:gecko/models/search.dart';
+import 'package:gecko/screens/wallet_view.dart';
 import 'package:provider/provider.dart';
 
 class SearchResultScreen extends StatelessWidget {
@@ -16,8 +17,8 @@ class SearchResultScreen extends StatelessWidget {
     SearchProvider _searchProvider = Provider.of<SearchProvider>(context);
     CesiumPlusProvider _cesiumPlusProvider =
         Provider.of<CesiumPlusProvider>(context);
-    HistoryProvider _historyClass =
-        Provider.of<HistoryProvider>(context, listen: false);
+    WalletsProfilesProvider _walletsProfilesClass =
+        Provider.of<WalletsProfilesProvider>(context, listen: false);
 
     int keyID = 0;
     double _avatarSize = 55;
@@ -33,48 +34,55 @@ class SearchResultScreen extends StatelessWidget {
       body: SafeArea(
         child: Padding(
           padding: const EdgeInsets.symmetric(horizontal: 20),
-          child: Column(
-              crossAxisAlignment: CrossAxisAlignment.start,
-              children: <Widget>[
-                const SizedBox(height: 30),
-                RichText(
-                  text: TextSpan(
-                    style: TextStyle(
-                      fontSize: 18,
-                      color: Colors.grey[700],
-                    ),
-                    children: <TextSpan>[
-                      const TextSpan(
-                        text: "Résultats pour ",
-                      ),
-                      TextSpan(
-                        text: '"${_searchProvider.searchController.text}"',
-                        style: const TextStyle(fontStyle: FontStyle.italic),
-                      ),
-                    ],
-                  ),
-                ),
-                const SizedBox(height: 40),
-                const Text(
-                  'Dans la blockchain Äž1',
-                  style: TextStyle(fontSize: 20),
+          child:
+              Column(crossAxisAlignment: CrossAxisAlignment.start, children: <
+                  Widget>[
+            const SizedBox(height: 30),
+            RichText(
+              text: TextSpan(
+                style: TextStyle(
+                  fontSize: 18,
+                  color: Colors.grey[700],
                 ),
-                const SizedBox(height: 20),
-                FutureBuilder(
-                  future: _searchProvider.searchBlockchain(),
-                  builder: (context, snapshot) {
-                    if (snapshot.connectionState == ConnectionState.done) {
-                      return Expanded(
-                        child: ListView(children: <Widget>[
-                          for (G1WalletsList g1Wallet in snapshot.data)
-                            Padding(
-                              padding:
-                                  const EdgeInsets.symmetric(horizontal: 5),
-                              child: ListTile(
-                                  key: Key('searchResult${keyID++}'),
-                                  horizontalTitleGap: 40,
-                                  contentPadding: const EdgeInsets.all(5),
-                                  leading: FutureBuilder(
+                children: <TextSpan>[
+                  const TextSpan(
+                    text: "Résultats pour ",
+                  ),
+                  TextSpan(
+                    text: '"${_searchProvider.searchController.text}"',
+                    style: const TextStyle(fontStyle: FontStyle.italic),
+                  ),
+                ],
+              ),
+            ),
+            const SizedBox(height: 40),
+            const Text(
+              'Dans la blockchain Äž1',
+              style: TextStyle(fontSize: 20),
+            ),
+            const SizedBox(height: 20),
+            FutureBuilder(
+              future: _searchProvider.searchBlockchain(),
+              builder: (context, snapshot) {
+                if (snapshot.connectionState == ConnectionState.done) {
+                  return Expanded(
+                    child: ListView(children: <Widget>[
+                      for (G1WalletsList g1Wallet in snapshot.data)
+                        Padding(
+                          padding: const EdgeInsets.symmetric(horizontal: 5),
+                          child: ListTile(
+                              key: Key('searchResult${keyID++}'),
+                              horizontalTitleGap: 40,
+                              contentPadding: const EdgeInsets.all(5),
+                              leading: g1WalletsBox
+                                          .get(g1Wallet.pubkey)
+                                          .avatar !=
+                                      null
+                                  ? ClipOval(
+                                      child: g1WalletsBox
+                                          .get(g1Wallet.pubkey)
+                                          .avatar)
+                                  : FutureBuilder(
                                       future: _cesiumPlusProvider.getAvatar(
                                           g1Wallet.pubkey, _avatarSize),
                                       builder: (BuildContext context,
@@ -98,52 +106,76 @@ class SearchResultScreen extends StatelessWidget {
                                           ]);
                                         }
                                         if (_avatar.hasData) {
+                                          g1WalletsBox
+                                              .get(g1Wallet.pubkey)
+                                              .avatar = _avatar.data;
                                           return ClipOval(child: _avatar.data);
+                                        } else {
+                                          g1WalletsBox
+                                                  .get(g1Wallet.pubkey)
+                                                  .avatar =
+                                              _cesiumPlusProvider
+                                                  .defaultAvatar(_avatarSize);
+                                          return _cesiumPlusProvider
+                                              .defaultAvatar(_avatarSize);
                                         }
-                                        return _cesiumPlusProvider
-                                            .defaultAvatar(_avatarSize);
                                       }),
-                                  title: Row(children: <Widget>[
-                                    Text(
-                                        _historyClass
-                                            .getShortPubkey(g1Wallet.pubkey),
-                                        style: const TextStyle(
-                                            fontSize: 18,
-                                            fontFamily: 'Monospace',
-                                            fontWeight: FontWeight.w500),
-                                        textAlign: TextAlign.center),
-                                  ]),
-                                  subtitle: Row(children: <Widget>[
-                                    Text(g1Wallet?.id?.username ?? '',
-                                        style: const TextStyle(
-                                            fontSize: 18,
-                                            fontWeight: FontWeight.w500),
-                                        textAlign: TextAlign.center),
-                                  ]),
-                                  dense: false,
-                                  isThreeLine: false,
-                                  onTap: () {
-                                    _historyClass.isPubkey(
-                                        context, g1Wallet.pubkey);
+                              title: Row(children: <Widget>[
+                                Text(
+                                    _walletsProfilesClass
+                                        .getShortPubkey(g1Wallet.pubkey),
+                                    style: const TextStyle(
+                                        fontSize: 18,
+                                        fontFamily: 'Monospace',
+                                        fontWeight: FontWeight.w500),
+                                    textAlign: TextAlign.center),
+                              ]),
+                              subtitle: Row(children: <Widget>[
+                                Text(g1Wallet?.id?.username ?? '',
+                                    style: const TextStyle(
+                                        fontSize: 18,
+                                        fontWeight: FontWeight.w500),
+                                    textAlign: TextAlign.center),
+                              ]),
+                              dense: false,
+                              isThreeLine: false,
+                              onTap: () {
+                                Navigator.push(
+                                  context,
+                                  MaterialPageRoute(builder: (context) {
+                                    _walletsProfilesClass.pubkey =
+                                        g1Wallet.pubkey;
+                                    return WalletViewScreen(
+                                      pubkey: g1Wallet.pubkey,
+                                      username: g1WalletsBox
+                                          .get(g1Wallet.pubkey)
+                                          .id
+                                          ?.username,
+                                      avatar: g1WalletsBox
+                                          .get(g1Wallet.pubkey)
+                                          ?.avatar,
+                                    );
                                   }),
-                            ),
-                        ]),
-                      );
-                    }
-                    return Center(
-                      heightFactor: 5,
-                      child: CircularProgressIndicator(
-                        strokeWidth: 3,
-                        backgroundColor: yellowC,
-                        color: orangeC,
-                      ),
-                    );
-                  },
-                ),
-                // Text(
-                //   _searchProvider.searchResult.toString(),
-                // )
-              ]),
+                                );
+                              }),
+                        ),
+                    ]),
+                  );
+                }
+                return Center(
+                  heightFactor: 5,
+                  child: CircularProgressIndicator(
+                    strokeWidth: 3,
+                    backgroundColor: yellowC,
+                    color: orangeC,
+                  ),
+                );
+              },
+            ),
+            // Text(
+            //   _searchProvider.searchResult.toString(),
+            // )
+          ]),
         ),
       ),
     );
diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart
index 3aeefe577a225bd358edcced926204f8df24781e..a625d0e94a6616e713fddc72fb863995574f3bab 100644
--- a/lib/screens/wallet_view.dart
+++ b/lib/screens/wallet_view.dart
@@ -1,39 +1,68 @@
 import 'dart:ui';
-
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/models/cesium_plus.dart';
-import 'package:gecko/models/history.dart';
+import 'package:gecko/models/wallets_profiles.dart';
 import 'package:gecko/models/queries.dart';
+// import 'package:gecko/models/wallet_options.dart';
 import 'package:gecko/screens/avatar_fullscreen.dart';
 import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:provider/provider.dart';
-// import 'package:gecko/models/home.dart';
-// import 'package:provider/provider.dart';
 
-// ignore: must_be_immutable
 class WalletViewScreen extends StatelessWidget {
-  TextEditingController tplController = TextEditingController();
-
-  WalletViewScreen({Key key}) : super(key: key);
+  const WalletViewScreen({this.pubkey, this.username, this.avatar, Key key})
+      : super(key: key);
+  final String pubkey;
+  final String username;
+  final Image avatar;
 
   @override
   Widget build(BuildContext context) {
     SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
-    HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
+    WalletsProfilesProvider _historyProvider =
+        Provider.of<WalletsProfilesProvider>(context);
     CesiumPlusProvider _cesiumPlusProvider =
         Provider.of<CesiumPlusProvider>(context);
+    // WalletOptionsProvider _walletOptions = WalletOptionsProvider();
     double _avatarSize = 150;
 
     return Scaffold(
         appBar: AppBar(
-            elevation: 0,
-            toolbarHeight: 60 * ratio,
-            title: const SizedBox(
-              height: 22,
-              child: Text('Voir un portefeuille'),
-            )),
+          elevation: 0,
+          toolbarHeight: 60 * ratio,
+          title: const SizedBox(
+            height: 22,
+            child: Text('Voir un portefeuille'),
+          ),
+          // actions: [
+          //   FutureBuilder(
+          //     future: _walletOptions.generateQRcode(_historyProvider.pubkey),
+          //     builder: (context, snapshot) {
+          //       return snapshot.data != null
+          //           ? GestureDetector(
+          //               key: const Key('openAvatar'),
+          //               onTap: () {
+          //                 Navigator.push(
+          //                   context,
+          //                   MaterialPageRoute(builder: (context) {
+          //                     return AvatarFullscreen(
+          //                       Image.memory(snapshot.data),
+          //                       title: 'QrCode du profil',
+          //                     );
+          //                   }),
+          //                 );
+          //                 // isAvatarView = !isAvatarView;
+          //                 // _historyProvider.resetdHistory();
+          //               },
+          //               child: Image.memory(snapshot.data, height: 40 * ratio),
+          //             )
+          //           : const Text('-', style: TextStyle(fontSize: 20));
+          //     },
+          //   ),
+          //   const SizedBox(width: 75)
+          // ],
+        ),
         body: SafeArea(
           child: Column(children: <Widget>[
             Container(
@@ -56,51 +85,62 @@ class WalletViewScreen extends StatelessWidget {
                   Column(
                       crossAxisAlignment: CrossAxisAlignment.start,
                       children: <Widget>[
-                        GestureDetector(
-                          key: const Key('copyPubkey'),
-                          onTap: () {
-                            Clipboard.setData(
-                                ClipboardData(text: _historyProvider.pubkey));
-                            _historyProvider.snackCopyKey(context);
-                          },
-                          child: Text(
-                            _historyProvider
-                                .getShortPubkey(_historyProvider.pubkey),
-                            style: const TextStyle(
-                              fontSize: 30,
-                              fontWeight: FontWeight.w800,
+                        Row(children: [
+                          GestureDetector(
+                            key: const Key('copyPubkey'),
+                            onTap: () {
+                              Clipboard.setData(ClipboardData(
+                                  text: pubkey ?? _historyProvider.pubkey));
+                              _historyProvider.snackCopyKey(context);
+                            },
+                            child: Text(
+                              _historyProvider.getShortPubkey(
+                                  pubkey ?? _historyProvider.pubkey),
+                              style: const TextStyle(
+                                fontSize: 30,
+                                fontWeight: FontWeight.w800,
+                              ),
                             ),
                           ),
-                        ),
+                        ]),
                         const SizedBox(height: 10),
-                        Query(
-                          options: QueryOptions(
-                            document: gql(getId),
-                            variables: {
-                              'pubkey': _historyProvider.pubkey,
+                        if (username == null)
+                          Query(
+                            options: QueryOptions(
+                              document: gql(getId),
+                              variables: {
+                                'pubkey': _historyProvider.pubkey,
+                              },
+                            ),
+                            builder: (QueryResult result,
+                                {VoidCallback refetch, FetchMore fetchMore}) {
+                              if (result.isLoading || result.hasException) {
+                                return const Text('...');
+                              } else if (result.data['idty'] == null ||
+                                  result.data['idty']['username'] == null) {
+                                return const Text('');
+                              } else {
+                                return SizedBox(
+                                  width: 230,
+                                  child: Text(
+                                    result?.data['idty']['username'] ?? '',
+                                    style: const TextStyle(
+                                      fontSize: 27,
+                                      color: Color(0xff814C00),
+                                    ),
+                                  ),
+                                );
+                              }
                             },
                           ),
-                          builder: (QueryResult result,
-                              {VoidCallback refetch, FetchMore fetchMore}) {
-                            if (result.isLoading || result.hasException) {
-                              return const Text('...');
-                            } else if (result.data['idty'] == null ||
-                                result.data['idty']['username'] == null) {
-                              return const Text('');
-                            } else {
-                              return SizedBox(
-                                width: 230,
-                                child: Text(
-                                  result?.data['idty']['username'] ?? '',
-                                  style: const TextStyle(
-                                    fontSize: 27,
-                                    color: Color(0xff814C00),
-                                  ),
-                                ),
-                              );
-                            }
-                          },
-                        ),
+                        if (username != null)
+                          Text(
+                            username,
+                            style: const TextStyle(
+                              fontSize: 27,
+                              color: Color(0xff814C00),
+                            ),
+                          ),
                         const SizedBox(height: 25),
                         FutureBuilder(
                             future: _cesiumPlusProvider
@@ -120,51 +160,72 @@ class WalletViewScreen extends StatelessWidget {
                       ]),
                   const Spacer(),
                   Column(children: <Widget>[
-                    FutureBuilder(
-                        future: _cesiumPlusProvider.getAvatar(
-                            _historyProvider.pubkey, _avatarSize),
-                        builder: (BuildContext context,
-                            AsyncSnapshot<Image> _avatar) {
-                          if (_avatar.connectionState != ConnectionState.done ||
-                              _avatar.hasError) {
-                            return Stack(children: [
-                              ClipOval(
-                                child: _cesiumPlusProvider
-                                    .defaultAvatar(_avatarSize),
-                              ),
-                              Positioned(
-                                top: 16.5,
-                                right: 47.5,
-                                width: 55,
-                                height: 55,
-                                child: CircularProgressIndicator(
-                                  strokeWidth: 6,
-                                  color: orangeC,
+                    if (avatar == null)
+                      FutureBuilder(
+                          future: _cesiumPlusProvider.getAvatar(
+                              _historyProvider.pubkey, _avatarSize),
+                          builder: (BuildContext context,
+                              AsyncSnapshot<Image> _avatar) {
+                            if (_avatar.connectionState !=
+                                    ConnectionState.done ||
+                                _avatar.hasError) {
+                              return Stack(children: [
+                                ClipOval(
+                                  child: _cesiumPlusProvider
+                                      .defaultAvatar(_avatarSize),
                                 ),
-                              ),
-                            ]);
-                          }
-                          if (_avatar.hasData) {
-                            return GestureDetector(
-                              key: const Key('openAvatar'),
-                              onTap: () {
-                                Navigator.push(
-                                  context,
-                                  MaterialPageRoute(builder: (context) {
-                                    return AvatarFullscreen(_avatar.data);
-                                  }),
-                                );
-                              },
-                              child: ClipOval(
-                                child: _avatar.data,
-                              ),
+                                Positioned(
+                                  top: 16.5,
+                                  right: 47.5,
+                                  width: 55,
+                                  height: 55,
+                                  child: CircularProgressIndicator(
+                                    strokeWidth: 6,
+                                    color: orangeC,
+                                  ),
+                                ),
+                              ]);
+                            }
+                            if (_avatar.hasData) {
+                              return GestureDetector(
+                                key: const Key('openAvatar'),
+                                onTap: () {
+                                  Navigator.push(
+                                    context,
+                                    MaterialPageRoute(builder: (context) {
+                                      return AvatarFullscreen(_avatar.data);
+                                    }),
+                                  );
+                                },
+                                child: ClipOval(
+                                  child: _avatar.data,
+                                ),
+                              );
+                            }
+                            return ClipOval(
+                              child: _cesiumPlusProvider
+                                  .defaultAvatar(_avatarSize),
                             );
-                          }
-                          return ClipOval(
-                            child:
-                                _cesiumPlusProvider.defaultAvatar(_avatarSize),
+                          }),
+                    if (avatar != null)
+                      GestureDetector(
+                        key: const Key('openAvatar'),
+                        onTap: () {
+                          Navigator.push(
+                            context,
+                            MaterialPageRoute(builder: (context) {
+                              return AvatarFullscreen(avatar);
+                            }),
                           );
-                        }),
+                        },
+                        child: ClipOval(
+                          child: Image(
+                            image: avatar.image,
+                            height: _avatarSize,
+                            fit: BoxFit.cover,
+                          ),
+                        ),
+                      ),
                     const SizedBox(height: 25),
                   ]),
                 ]),
@@ -230,6 +291,29 @@ class WalletViewScreen extends StatelessWidget {
                 ),
               ]),
             ]),
+            // FutureBuilder(
+            //   future: _walletOptions.generateQRcode(_historyProvider.pubkey),
+            //   builder: (context, snapshot) {
+            //     return snapshot.data != null
+            //         ? GestureDetector(
+            //             key: const Key('openQrcode'),
+            //             onTap: () {
+            //               Navigator.push(
+            //                 context,
+            //                 MaterialPageRoute(builder: (context) {
+            //                   return AvatarFullscreen(
+            //                     Image.memory(snapshot.data),
+            //                     title: 'QrCode du profil',
+            //                     color: Colors.white,
+            //                   );
+            //                 }),
+            //               );
+            //             },
+            //             child: Image.memory(snapshot.data, height: 60 * ratio),
+            //           )
+            //         : const Text('-', style: TextStyle(fontSize: 20));
+            //   },
+            // ),
             const Spacer(),
             Container(
               height: 120,
diff --git a/pubspec.yaml b/pubspec.yaml
index 452286235b4bf7dd25d0b83520224511708e31e0..249c17f37c45b1c51be76022a9d34782fe84eaf3 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -5,7 +5,7 @@ description: Pay with G1.
 # pub.dev using `pub publish`. This is preferred for private packages.
 publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 
-version: 0.0.3+8
+version: 0.0.3+9
 
 environment:
   sdk: ">=2.7.0 <3.0.0"