diff --git a/config/gva_endpoints.json b/config/gva_endpoints.json
new file mode 100644
index 0000000000000000000000000000000000000000..d45a17311dfd08833156489080fa3491eea0e1c3
--- /dev/null
+++ b/config/gva_endpoints.json
@@ -0,0 +1,3 @@
+[
+    "https://g1.librelois.fr/gva"
+]
\ No newline at end of file
diff --git a/lib/main.dart b/lib/main.dart
index 75d4242151d781f1072d8dcd1bce8e16d30a30e5..736ccd980f299f0bdc9456da07893ded26654328 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -4,31 +4,84 @@ import 'package:flutter/material.dart';
 import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:sentry_flutter/sentry_flutter.dart';
 import 'package:flutter/foundation.dart';
+import 'package:http/http.dart' as http;
+// import 'package:flutter/services.dart' show rootBundle;
+import 'dart:math';
+// import 'dart:convert';
 
-// void main() => runApp(Gecko());
 final bool enableSentry = true;
 
+// Future<String> getJsonEndpoints() {
+//   return rootBundle.loadString('config/gva_endpoints.json');
+// }
+
+T getRandomElement<T>(List<T> list) {
+  final random = new Random();
+  var i = random.nextInt(list.length);
+  return list[i];
+}
+
+Future<String> getRandomEndpoint() async {
+  // TODO: Improve implemention of getRandomEndpoint() with JSON and error handling
+  // final _json = json.decode(await getJsonEndpoints());
+  // print('JSON !! :');
+  // print(_json);
+  // final _list = _json[];
+
+  final _list = ['https://g1.librelois.fr/gva'];
+  final _endpoint = getRandomElement(_list);
+  print('ENDPOINT: ' + _endpoint);
+
+  // http.post(_endpoint);
+  final response = await http.post(_endpoint);
+  if (response.statusCode != 200) {
+    print('Endpoint statutcode: ' + response.statusCode.toString());
+    // _endpoint = getRandomElement(_list);
+    return 'HS';
+  }
+
+  return _endpoint;
+}
+
 Future<void> main() async {
+  String randomEndpoint; // = await getRandomEndpoint();
+  int i = 0;
+  do {
+    print(i);
+    if (i >= 3) {
+      print('NO VALID ENDPOINT FOUND !');
+      break;
+    }
+    if (i != 0) {
+      await Future.delayed(Duration(milliseconds: 500));
+    }
+    randomEndpoint = await getRandomEndpoint();
+    i++;
+  } while (randomEndpoint == 'HS');
+
   if (kReleaseMode && enableSentry) {
     await SentryFlutter.init(
       (options) {
         options.dsn =
             'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110';
       },
-      appRunner: () => runApp(Gecko()),
+      appRunner: () => runApp(Gecko(randomEndpoint)),
     );
   } else {
     print('Debug mode enabled: No sentry alerte');
-    runApp(Gecko());
+    runApp(Gecko(randomEndpoint));
   }
 }
 
 class Gecko extends StatelessWidget {
+  Gecko(this.randomEndpoint);
+  final String randomEndpoint;
+
   @override
   Widget build(BuildContext context) {
     final _httpLink = HttpLink(
       // 'http://192.168.1.91:10060/gva',
-      'https://g1.librelois.fr/gva',
+      randomEndpoint,
     );
 
     final _client = ValueNotifier(
diff --git a/lib/ui/generateWallets.dart b/lib/ui/generateWallets.dart
index aa0ecc1cd3a129bb9ad8bc0a2682f00a54f090bd..8f1f326114d923b789938020c8f5df19f4a87cae 100644
--- a/lib/ui/generateWallets.dart
+++ b/lib/ui/generateWallets.dart
@@ -14,7 +14,7 @@ class GenerateWalletScreen extends StatefulWidget {
 }
 
 class GenerateWalletState extends State<GenerateWalletScreen> {
-  GlobalKey<MyWalletState> _keyWallets = GlobalKey();
+  GlobalKey<MyWalletState> _keyMyWallets = GlobalKey();
   GlobalKey<ValidStoreWalletState> _keyValidWallets = GlobalKey();
   void initState() {
     super.initState();
@@ -102,7 +102,7 @@ class GenerateWalletState extends State<GenerateWalletScreen> {
                 if (fSnapshot.hasData)
                   return Visibility(
                       visible: fSnapshot.data,
-                      child: MyWalletsScreen(keyWallets: _keyWallets));
+                      child: MyWalletsScreen(keyMyWallets: _keyMyWallets));
                 return Center(child: CircularProgressIndicator());
               }),
           SizedBox(height: 8),
@@ -164,7 +164,7 @@ class GenerateWalletState extends State<GenerateWalletScreen> {
                       fontSize: 30.0,
                       color: Colors.black,
                       fontWeight: FontWeight.bold)),
-              SizedBox(height: 12),
+              SizedBox(height: 20),
               // Expanded(child: Align(alignment: Alignment.bottomCenter)),
               new RaisedButton(
                   color: Color(0xffFFD68E),
@@ -192,12 +192,12 @@ class GenerateWalletState extends State<GenerateWalletScreen> {
                                   // setState(() {});
                                   // getAllWalletsNames();
                                   // checkIfWalletExist('tata');
-                                  // _keyWallets.currentState.getAllWalletsNames();
+                                  // _keyMyWallets.currentState.getAllWalletsNames();
                                 }
                               }));
                         }
                       : null,
-                  child: Text('Enregistrer ce wallet',
+                  child: Text('Enregistrer ce portefeuille',
                       style: TextStyle(fontSize: 20))),
               SizedBox(height: 20)
             ]),
@@ -219,7 +219,8 @@ class GenerateWalletState extends State<GenerateWalletScreen> {
     final bool _isExist = await checkIfWalletExist('tata');
     print('The wallet exist in resetWalletState(): ' + _isExist.toString());
     // initState();
-    // _keyWallets.currentState.setState(() {});
+    // _keyMyWallets.currentState.setState(() {});
+    // _keyMyWallets.currentState.initAppDirectory();
     setState(() {
       // getAllWalletsNames();
       // this.walletIsGenerated = true;
diff --git a/lib/ui/myWallets.dart b/lib/ui/myWallets.dart
index 780be3dfea4951650b1651327baf318e3827dd20..04c1bee8ca08315507833d73b5df3ce21f332928 100644
--- a/lib/ui/myWallets.dart
+++ b/lib/ui/myWallets.dart
@@ -9,7 +9,7 @@ import 'package:path_provider/path_provider.dart';
 import 'package:pin_code_fields/pin_code_fields.dart';
 
 class MyWalletsScreen extends StatefulWidget {
-  const MyWalletsScreen({Key keyWallets}) : super(key: keyWallets);
+  const MyWalletsScreen({Key keyMyWallets}) : super(key: keyMyWallets);
   @override
   MyWalletState createState() => MyWalletState();
 }
diff --git a/pubspec.lock b/pubspec.lock
index 376b9d0d629eec0ab26866ecf3c2421def82d63e..a6dbebdf0f09019ec75243e7e2b9d25a5d25f48d 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -227,7 +227,7 @@ packages:
     source: hosted
     version: "1.4.4+1"
   http:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: http
       url: "https://pub.dartlang.org"
diff --git a/pubspec.yaml b/pubspec.yaml
index f5eced242980e5ce71944cf7f934bccdf2d40c60..7be3479a2b83fb55264e375cac4255c2ded3f659 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -26,6 +26,7 @@ dependencies:
   sentry_flutter: ^4.0.1
   path_provider: ^1.6.24
   pin_code_fields: ^6.0.2
+  http: ^0.12.2
 
 
 flutter_icons:
@@ -44,3 +45,4 @@ flutter:
 
   assets:
     - images/
+    - config/
\ No newline at end of file