diff --git a/assets/loupe-noire.png b/assets/loupe-noire.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb8773daed29701653cfd986c341ee483c24953e
Binary files /dev/null and b/assets/loupe-noire.png differ
diff --git a/lib/main.dart b/lib/main.dart
index 9ad437f66ee0f8c6f215d9cb12be5560b0640ba3..a04f5aad98bd58713552a1e3d2189bfbc6166fb4 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -27,6 +27,7 @@ import 'package:gecko/models/generate_wallets.dart';
 import 'package:gecko/models/history.dart';
 import 'package:gecko/models/home.dart';
 import 'package:gecko/models/my_wallets.dart';
+import 'package:gecko/models/search.dart';
 import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/models/wallet_options.dart';
 import 'package:gecko/screens/home.dart';
@@ -141,6 +142,7 @@ class Gecko extends StatelessWidget {
           ChangeNotifierProvider(create: (_) => GenerateWalletsProvider()),
           ChangeNotifierProvider(create: (_) => WalletOptionsProvider()),
           ChangeNotifierProvider(create: (_) => ChangePinProvider()),
+          ChangeNotifierProvider(create: (_) => SearchProvider()),
           ChangeNotifierProvider(create: (_) => CesiumPlusProvider())
         ],
         child: GraphQLProvider(
diff --git a/lib/models/history.dart b/lib/models/history.dart
index 9639cb4669eb2fe46f084300ed0a5748b020e54d..0d6294d89233dad717df7d1c492438f086021de9 100644
--- a/lib/models/history.dart
+++ b/lib/models/history.dart
@@ -2,14 +2,12 @@ import 'package:dubp/dubp.dart';
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
-import 'package:gecko/models/home.dart';
 import 'package:gecko/models/my_wallets.dart';
 import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/screens/history.dart';
 import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:jdenticon_dart/jdenticon_dart.dart';
 import 'package:permission_handler/permission_handler.dart';
-import 'package:provider/provider.dart';
 import 'package:qrscan/qrscan.dart' as scanner;
 import 'dart:math';
 import 'package:intl/intl.dart';
@@ -74,8 +72,6 @@ class HistoryProvider with ChangeNotifier {
   }
 
   String isPubkey(context, pubkey, {bool goHistory}) {
-    HomeProvider _homeProvider =
-        Provider.of<HomeProvider>(context, listen: false);
     final RegExp regExp = RegExp(
       r'^[a-zA-Z0-9]+$',
       caseSensitive: false,
@@ -102,7 +98,6 @@ class HistoryProvider with ChangeNotifier {
         historySwitchButtun = "Voir l'historique";
       }
 
-      _homeProvider.handleSearchEnd();
       Navigator.push(
         context,
         MaterialPageRoute(builder: (context) {
diff --git a/lib/models/my_wallets.dart b/lib/models/my_wallets.dart
index cf953499ce19b8c100f0f3f380a0f76df0e33286..e8a6305a3c1524bf6ed8b11d6515d7036fa8c6cb 100644
--- a/lib/models/my_wallets.dart
+++ b/lib/models/my_wallets.dart
@@ -3,7 +3,6 @@ import 'package:flutter/material.dart';
 import 'dart:async';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/wallet_data.dart';
-import 'package:gecko/screens/home.dart';
 
 class MyWalletsProvider with ChangeNotifier {
   List<WalletData> listWallets = [];
diff --git a/lib/models/queries.dart b/lib/models/queries.dart
index 72ba0e9e90d9547ec4118edb227975900a726032..4644a770104141719695d7d66d482e1add4c5d47 100644
--- a/lib/models/queries.dart
+++ b/lib/models/queries.dart
@@ -62,3 +62,27 @@ const String getBalance = r'''
       }
     }
   ''';
+
+const String getWallets = r'''
+query ($number: Int!, $cursor: String) {
+  wallets(pagination: {ord: ASC, pageSize: $number, cursor: $cursor}) {
+    pageInfo {
+      hasNextPage
+      endCursor
+    }
+    edges {
+      node {
+        script
+        balance {
+          amount
+          base
+        }
+        idty {
+          isMember
+          username
+        }
+      }
+    }
+  }
+}
+''';
diff --git a/lib/models/search.dart b/lib/models/search.dart
new file mode 100644
index 0000000000000000000000000000000000000000..eaa1beb76db333200c4759b3ffd68409dad9cb37
--- /dev/null
+++ b/lib/models/search.dart
@@ -0,0 +1,12 @@
+import 'package:flutter/foundation.dart';
+import 'package:flutter/material.dart';
+
+class SearchProvider with ChangeNotifier {
+  TextEditingController searchController = TextEditingController();
+
+  void rebuildWidget() {
+    notifyListeners();
+  }
+
+  void searchPubkey() {}
+}
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index f50503535fb3aaaad7500ad1234795c035225eaf..eff093ffcffe68ff7fc2f9ff30a691003b53c2b7 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -10,6 +10,7 @@ import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/screens/myWallets/restore_chest.dart';
 import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
 import 'package:gecko/screens/onBoarding/1.dart';
+import 'package:gecko/screens/search.dart';
 import 'dart:ui';
 import 'package:gecko/screens/settings.dart';
 import 'package:flutter/services.dart';
@@ -205,18 +206,18 @@ Widget geckHome(context) {
                       color: orangeC, // button color
                       child: InkWell(
                           child: const Padding(
-                              padding: EdgeInsets.all(18),
-                              child: Image(
-                                  image: AssetImage('assets/home/loupe.png'),
-                                  height: 70)),
+                            padding: EdgeInsets.all(18),
+                            child: Image(
+                                image: AssetImage('assets/home/loupe.png'),
+                                height: 70),
+                          ),
                           onTap: () {
-                            // Navigator.push(
-                            //   context,
-                            //   MaterialPageRoute(
-                            //       builder: (context) {
-                            //     return TemplateScreen();
-                            //   }),
-                            // );
+                            Navigator.push(
+                              context,
+                              MaterialPageRoute(builder: (context) {
+                                return const SearchScreen();
+                              }),
+                            );
                           }),
                     ),
                   ),
diff --git a/lib/screens/myWallets/confirm_wallet_storage.dart b/lib/screens/myWallets/confirm_wallet_storage.dart
index ef743245caef14af3c61563f2d3747d8741be5a0..fe7dc15d217888648f88311a01e98e256cdbd285 100644
--- a/lib/screens/myWallets/confirm_wallet_storage.dart
+++ b/lib/screens/myWallets/confirm_wallet_storage.dart
@@ -6,7 +6,6 @@ import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/generate_wallets.dart';
 import 'package:gecko/models/my_wallets.dart';
-import 'package:gecko/models/wallet_options.dart';
 import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
 import 'package:provider/provider.dart';
 
@@ -33,8 +32,6 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
         Provider.of<GenerateWalletsProvider>(context);
     MyWalletsProvider _myWalletProvider =
         Provider.of<MyWalletsProvider>(context);
-    WalletOptionsProvider _walletOptions =
-        Provider.of<WalletOptionsProvider>(context);
     final int _currentChest = _myWalletProvider.getCurrentChest();
 
     _mnemonicController.text = generatedMnemonic;
diff --git a/lib/screens/search.dart b/lib/screens/search.dart
new file mode 100644
index 0000000000000000000000000000000000000000..39e43374f2f75bccfb1849a3c95ea9fe70d5fc60
--- /dev/null
+++ b/lib/screens/search.dart
@@ -0,0 +1,109 @@
+import 'package:flutter/services.dart';
+import 'package:gecko/globals.dart';
+import 'package:flutter/material.dart';
+import 'package:gecko/models/search.dart';
+import 'package:gecko/screens/search_result.dart';
+import 'package:provider/provider.dart';
+// import 'package:gecko/models/home.dart';
+// import 'package:provider/provider.dart';
+
+class SearchScreen extends StatelessWidget {
+  const SearchScreen({Key key}) : super(key: key);
+
+  @override
+  Widget build(BuildContext context) {
+    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
+    SearchProvider _searchProvider = Provider.of<SearchProvider>(context);
+
+    return WillPopScope(
+        onWillPop: () {
+          _searchProvider.searchController.text = '';
+          return Future<bool>.value(true);
+        },
+        child: Scaffold(
+          appBar: AppBar(
+            toolbarHeight: 60 * ratio,
+            title: const SizedBox(
+              height: 22,
+              child: Text('Rechercher'),
+            ),
+            leading: IconButton(
+                icon: const Icon(Icons.arrow_back, color: Colors.black),
+                onPressed: () {
+                  _searchProvider.searchController.text = '';
+                  Navigator.of(context).pop();
+                }),
+          ),
+          body: SafeArea(
+            child: Column(children: <Widget>[
+              SizedBox(height: isTall ? 200 : 100),
+              Padding(
+                padding: const EdgeInsets.symmetric(horizontal: 17),
+                child: TextField(
+                  controller: _searchProvider.searchController,
+                  autofocus: true,
+                  maxLines: 1,
+                  textAlign: TextAlign.left,
+                  onChanged: (v) => _searchProvider.rebuildWidget(),
+                  decoration: InputDecoration(
+                    filled: true,
+                    fillColor: Colors.white,
+                    prefixIconConstraints: const BoxConstraints(
+                      minHeight: 32,
+                    ),
+                    prefixIcon: const Padding(
+                      padding: EdgeInsets.symmetric(horizontal: 17),
+                      child: Image(
+                          image: AssetImage('assets/loupe-noire.png'),
+                          height: 35),
+                    ),
+                    border: OutlineInputBorder(
+                        borderSide:
+                            BorderSide(color: Colors.grey[500], width: 2),
+                        borderRadius: BorderRadius.circular(8)),
+                    focusedBorder: OutlineInputBorder(
+                      borderSide:
+                          BorderSide(color: Colors.grey[500], width: 2.5),
+                      borderRadius: BorderRadius.circular(8),
+                    ),
+                    contentPadding: const EdgeInsets.all(20),
+                  ),
+                  style: const TextStyle(
+                    fontSize: 20,
+                    color: Colors.black,
+                    fontWeight: FontWeight.w400,
+                  ),
+                ),
+              ),
+              const Spacer(flex: 1),
+              SizedBox(
+                width: 410,
+                height: 70,
+                child: ElevatedButton(
+                  style: ElevatedButton.styleFrom(
+                    elevation: 4,
+                    primary: orangeC, // background
+                    onPrimary: Colors.white, // foreground
+                  ),
+                  onPressed: _searchProvider.searchController.text.length >= 2
+                      ? () {
+                          Navigator.push(
+                            context,
+                            MaterialPageRoute(builder: (context) {
+                              return const SearchResultScreen();
+                            }),
+                          );
+                        }
+                      : null,
+                  child: const Text(
+                    'Rechercher',
+                    style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
+                  ),
+                ),
+              ),
+              const Spacer(flex: 1),
+            ]),
+          ),
+        ));
+  }
+}
diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart
new file mode 100644
index 0000000000000000000000000000000000000000..5c399989ba2ee6a1434200a4aedac4b81aa07d73
--- /dev/null
+++ b/lib/screens/search_result.dart
@@ -0,0 +1,45 @@
+import 'package:flutter/services.dart';
+import 'package:gecko/globals.dart';
+import 'package:flutter/material.dart';
+import 'package:gecko/models/search.dart';
+import 'package:provider/provider.dart';
+
+class SearchResultScreen extends StatelessWidget {
+  const SearchResultScreen({Key key}) : super(key: key);
+
+  @override
+  Widget build(BuildContext context) {
+    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
+    SearchProvider _searchProvider = Provider.of<SearchProvider>(context);
+    int nbrResult = 0;
+
+    return Scaffold(
+      appBar: AppBar(
+        toolbarHeight: 60 * ratio,
+        title: const SizedBox(
+          height: 22,
+          child: Text('Résultats de votre recherche'),
+        ),
+      ),
+      body: SafeArea(
+        child: Padding(
+          padding: const EdgeInsets.symmetric(horizontal: 20),
+          child: Column(
+              crossAxisAlignment: CrossAxisAlignment.start,
+              children: <Widget>[
+                const SizedBox(height: 30),
+                Text(
+                  '$nbrResult résultats pour "${_searchProvider.searchController.text}"',
+                  style: TextStyle(fontSize: 18, color: Colors.grey[700]),
+                ),
+                const SizedBox(height: 40),
+                const Text(
+                  'Dans la blockchain Äž1',
+                  style: TextStyle(fontSize: 20),
+                )
+              ]),
+        ),
+      ),
+    );
+  }
+}
diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart
index 4934d67548b6ee3b7e93d0321eac5508d1d35668..821106299d997088ee0443d601dee62aade21b59 100644
--- a/lib/screens/settings.dart
+++ b/lib/screens/settings.dart
@@ -1,13 +1,11 @@
 import 'package:flutter/material.dart';
 import 'package:dubp/dubp.dart';
 import 'package:flutter/services.dart';
-import 'package:gecko/models/home.dart';
 import 'package:gecko/models/my_wallets.dart';
 import 'package:gecko/screens/myWallets/generate_wallets.dart';
 import 'dart:io';
 import 'package:gecko/screens/myWallets/import_cesium_wallet.dart';
 import 'package:gecko/globals.dart';
-import 'package:provider/provider.dart';
 
 // ignore: must_be_immutable
 class SettingsScreen extends StatelessWidget {
@@ -29,7 +27,6 @@ class SettingsScreen extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
-    HomeProvider _homeProvider = Provider.of<HomeProvider>(context);
 
     // getAppDirectory();
     return Scaffold(