diff --git a/assets/electrum_server_list.yml b/assets/electrum_server_list.yml
index 0331f42ea..661cadc9c 100644
--- a/assets/electrum_server_list.yml
+++ b/assets/electrum_server_list.yml
@@ -1,4 +1,2 @@
 -
-  uri: electrum2.hodlister.co:50002
--
-  uri: bitcoin.electrumx.multicoin.co:50002
\ No newline at end of file
+  uri: electrumx.cakewallet.com:50002
\ No newline at end of file
diff --git a/assets/images/2.0x/backup.png b/assets/images/2.0x/backup.png
index 044e494a9..5cf40bba7 100644
Binary files a/assets/images/2.0x/backup.png and b/assets/images/2.0x/backup.png differ
diff --git a/assets/images/2.0x/restore_keys.png b/assets/images/2.0x/restore_keys.png
index db52a8a2f..6a90ef2c2 100644
Binary files a/assets/images/2.0x/restore_keys.png and b/assets/images/2.0x/restore_keys.png differ
diff --git a/assets/images/2.0x/restore_seed.png b/assets/images/2.0x/restore_seed.png
index ae32393cc..2bbea22cf 100644
Binary files a/assets/images/2.0x/restore_seed.png and b/assets/images/2.0x/restore_seed.png differ
diff --git a/assets/images/2.0x/restore_wallet_image.png b/assets/images/2.0x/restore_wallet_image.png
index 85c913533..3e3aecb91 100644
Binary files a/assets/images/2.0x/restore_wallet_image.png and b/assets/images/2.0x/restore_wallet_image.png differ
diff --git a/assets/images/3.0x/backup.png b/assets/images/3.0x/backup.png
index 48737c9b2..5971200dc 100644
Binary files a/assets/images/3.0x/backup.png and b/assets/images/3.0x/backup.png differ
diff --git a/assets/images/3.0x/restore_keys.png b/assets/images/3.0x/restore_keys.png
index 05cf12ed7..1d7301275 100644
Binary files a/assets/images/3.0x/restore_keys.png and b/assets/images/3.0x/restore_keys.png differ
diff --git a/assets/images/3.0x/restore_seed.png b/assets/images/3.0x/restore_seed.png
index addaf2cd0..de1a10bb7 100644
Binary files a/assets/images/3.0x/restore_seed.png and b/assets/images/3.0x/restore_seed.png differ
diff --git a/assets/images/3.0x/restore_wallet_image.png b/assets/images/3.0x/restore_wallet_image.png
index e96af8782..6a6fdd775 100644
Binary files a/assets/images/3.0x/restore_wallet_image.png and b/assets/images/3.0x/restore_wallet_image.png differ
diff --git a/assets/images/backup.png b/assets/images/backup.png
index e7948fba8..665128ac3 100644
Binary files a/assets/images/backup.png and b/assets/images/backup.png differ
diff --git a/assets/images/restore_keys.png b/assets/images/restore_keys.png
index cc1d80691..bbb7890f1 100644
Binary files a/assets/images/restore_keys.png and b/assets/images/restore_keys.png differ
diff --git a/assets/images/restore_seed.png b/assets/images/restore_seed.png
index 6a3ca415e..938cac4dd 100644
Binary files a/assets/images/restore_seed.png and b/assets/images/restore_seed.png differ
diff --git a/assets/images/restore_wallet_image.png b/assets/images/restore_wallet_image.png
index 4bd343eb3..9fee53f1d 100644
Binary files a/assets/images/restore_wallet_image.png and b/assets/images/restore_wallet_image.png differ
diff --git a/cw_monero/pubspec.lock b/cw_monero/pubspec.lock
index f462e288d..0aa42cd07 100644
--- a/cw_monero/pubspec.lock
+++ b/cw_monero/pubspec.lock
@@ -7,42 +7,42 @@ packages:
       name: archive
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.11"
+    version: "2.0.13"
   args:
     dependency: transitive
     description:
       name: args
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.5.2"
+    version: "1.6.0"
   async:
     dependency: transitive
     description:
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.4.0"
+    version: "2.4.1"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.0.5"
+    version: "2.0.0"
   charcode:
     dependency: transitive
     description:
       name: charcode
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.2"
+    version: "1.1.3"
   collection:
     dependency: transitive
     description:
       name: collection
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.14.11"
+    version: "1.14.12"
   convert:
     dependency: transitive
     description:
@@ -56,7 +56,7 @@ packages:
       name: crypto
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.3"
+    version: "2.1.4"
   ffi:
     dependency: "direct main"
     description:
@@ -80,7 +80,7 @@ packages:
       name: image
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.4"
+    version: "2.1.12"
   matcher:
     dependency: transitive
     description:
@@ -109,13 +109,6 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.4.0"
-  pedantic:
-    dependency: transitive
-    description:
-      name: pedantic
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "1.8.0+1"
   petitparser:
     dependency: transitive
     description:
@@ -136,7 +129,7 @@ packages:
       name: quiver
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.5"
+    version: "2.1.3"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -148,7 +141,7 @@ packages:
       name: source_span
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.5.5"
+    version: "1.7.0"
   stack_trace:
     dependency: transitive
     description:
@@ -183,7 +176,7 @@ packages:
       name: test_api
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.2.11"
+    version: "0.2.15"
   typed_data:
     dependency: transitive
     description:
@@ -204,7 +197,7 @@ packages:
       name: xml
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "3.5.0"
+    version: "3.6.1"
 sdks:
   dart: ">=2.6.0 <3.0.0"
   flutter: ">=0.1.4 <2.0.0"
diff --git a/ios/Podfile b/ios/Podfile
index 78d39756e..6697f0a53 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -15,59 +15,72 @@ def parse_KV_file(file, separator='=')
   if !File.exists? file_abs_path
     return [];
   end
-  pods_ary = []
+  generated_key_values = {}
   skip_line_start_symbols = ["#", "/"]
-  File.foreach(file_abs_path) { |line|
-      next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
-      plugin = line.split(pattern=separator)
-      if plugin.length == 2
-        podname = plugin[0].strip()
-        path = plugin[1].strip()
-        podpath = File.expand_path("#{path}", file_abs_path)
-        pods_ary.push({:name => podname, :path => podpath});
-      else
-        puts "Invalid plugin specification: #{line}"
-      end
-  }
-  return pods_ary
+  File.foreach(file_abs_path) do |line|
+    next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
+    plugin = line.split(pattern=separator)
+    if plugin.length == 2
+      podname = plugin[0].strip()
+      path = plugin[1].strip()
+      podpath = File.expand_path("#{path}", file_abs_path)
+      generated_key_values[podname] = podpath
+    else
+      puts "Invalid plugin specification: #{line}"
+    end
+  end
+  generated_key_values
 end
 
 target 'Runner' do
-  # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
-  # referring to absolute paths on developers' machines.
   use_frameworks!
-  system('rm -rf .symlinks')
-  system('mkdir -p .symlinks/plugins')
+  use_modular_headers!
 
-  # Flutter Pods
-  generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig')
-  if generated_xcode_build_settings.empty?
-    puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first."
-  end
-  generated_xcode_build_settings.map { |p|
-    if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
-      symlink = File.join('.symlinks', 'flutter')
-      File.symlink(File.dirname(p[:path]), symlink)
-      pod 'Flutter', :path => File.join(symlink, File.basename(p[:path]))
+  # Flutter Pod
+
+  copied_flutter_dir = File.join(__dir__, 'Flutter')
+  copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
+  copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
+  unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
+    # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
+    # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
+    # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
+
+    generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
+    unless File.exist?(generated_xcode_build_settings_path)
+      raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
     end
-  }
+    generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
+    cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];
+
+    unless File.exist?(copied_framework_path)
+      FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
+    end
+    unless File.exist?(copied_podspec_path)
+      FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
+    end
+  end
+
+  # Keep pod path relative so it can be checked into Podfile.lock.
+  pod 'Flutter', :path => 'Flutter'
 
   # Plugin Pods
-  plugin_pods = parse_KV_file('../.flutter-plugins')
-  plugin_pods.map { |p|
-    symlink = File.join('.symlinks', 'plugins', p[:name])
-    File.symlink(p[:path], symlink)
-    pod p[:name], :path => File.join(symlink, 'ios')
-  }
-end
 
-# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
-install! 'cocoapods', :disable_input_output_paths => true
+  # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
+  # referring to absolute paths on developers' machines.
+  system('rm -rf .symlinks')
+  system('mkdir -p .symlinks/plugins')
+  plugin_pods = parse_KV_file('../.flutter-plugins')
+  plugin_pods.each do |name, path|
+    symlink = File.join('.symlinks', 'plugins', name)
+    File.symlink(path, symlink)
+    pod name, :path => File.join(symlink, 'ios')
+  end
+end
 
 post_install do |installer|
   installer.pods_project.targets.each do |target|
     target.build_configurations.each do |config|
-      config.build_settings['SWIFT_VERSION'] = '4.0'  # required by simple_permission
       config.build_settings['ENABLE_BITCODE'] = 'NO'
     end
   end
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 64e81a4e8..451d74c1f 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -65,7 +65,7 @@ DEPENDENCIES:
   - cw_monero (from `.symlinks/plugins/cw_monero/ios`)
   - devicelocale (from `.symlinks/plugins/devicelocale/ios`)
   - esys_flutter_share (from `.symlinks/plugins/esys_flutter_share/ios`)
-  - Flutter (from `.symlinks/flutter/ios`)
+  - Flutter (from `Flutter`)
   - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
   - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
   - local_auth (from `.symlinks/plugins/local_auth/ios`)
@@ -98,7 +98,7 @@ EXTERNAL SOURCES:
   esys_flutter_share:
     :path: ".symlinks/plugins/esys_flutter_share/ios"
   Flutter:
-    :path: ".symlinks/flutter/ios"
+    :path: Flutter
   flutter_plugin_android_lifecycle:
     :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
   flutter_secure_storage:
@@ -157,6 +157,6 @@ SPEC CHECKSUMS:
   url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313
   url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
 
-PODFILE CHECKSUM: f1916a43bb28badbd408be80e8e4b8652a74e93e
+PODFILE CHECKSUM: c34e2287a9ccaa606aeceab922830efb9a6ff69a
 
 COCOAPODS: 1.9.3
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index cf8308171..822dd4355 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -272,9 +272,40 @@
 			files = (
 			);
 			inputPaths = (
+				"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
+				"${PODS_ROOT}/../Flutter/Flutter.framework",
+				"${BUILT_PRODUCTS_DIR}/MTBBarcodeScanner/MTBBarcodeScanner.framework",
+				"${BUILT_PRODUCTS_DIR}/SwiftProtobuf/SwiftProtobuf.framework",
+				"${BUILT_PRODUCTS_DIR}/barcode_scan/barcode_scan.framework",
+				"${BUILT_PRODUCTS_DIR}/cw_monero/cw_monero.framework",
+				"${BUILT_PRODUCTS_DIR}/devicelocale/devicelocale.framework",
+				"${BUILT_PRODUCTS_DIR}/esys_flutter_share/esys_flutter_share.framework",
+				"${BUILT_PRODUCTS_DIR}/flutter_plugin_android_lifecycle/flutter_plugin_android_lifecycle.framework",
+				"${BUILT_PRODUCTS_DIR}/flutter_secure_storage/flutter_secure_storage.framework",
+				"${BUILT_PRODUCTS_DIR}/local_auth/local_auth.framework",
+				"${BUILT_PRODUCTS_DIR}/package_info/package_info.framework",
+				"${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework",
+				"${BUILT_PRODUCTS_DIR}/share/share.framework",
+				"${BUILT_PRODUCTS_DIR}/shared_preferences/shared_preferences.framework",
+				"${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework",
 			);
 			name = "[CP] Embed Pods Frameworks";
 			outputPaths = (
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MTBBarcodeScanner.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftProtobuf.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/barcode_scan.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cw_monero.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/devicelocale.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/esys_flutter_share.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_plugin_android_lifecycle.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/local_auth.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework",
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 65000c894..8f3d469bd 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -2,6 +2,8 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
+	<key>NSFaceIDUsageDescription</key>
+	<string>Enable Face ID for fast and secure access to wallets and private keys</string>
 	<key>CFBundleDevelopmentRegion</key>
 	<string>$(DEVELOPMENT_LANGUAGE)</string>
 	<key>CFBundleExecutable</key>
@@ -23,7 +25,7 @@
 	<key>LSRequiresIPhoneOS</key>
 	<true/>
 	<key>NSCameraUsageDescription</key>
-	<string>Cake Wallet requires access to your phone’s camera.</string>
+	<string>Used for scan QR code</string>
 	<key>UILaunchStoryboardName</key>
 	<string>LaunchScreen</string>
 	<key>UIMainStoryboardFile</key>
diff --git a/lib/bitcoin/electrum.dart b/lib/bitcoin/electrum.dart
index bd1ac09ac..69d1c332f 100644
--- a/lib/bitcoin/electrum.dart
+++ b/lib/bitcoin/electrum.dart
@@ -6,6 +6,16 @@ import 'package:cake_wallet/bitcoin/script_hash.dart';
 import 'package:flutter/foundation.dart';
 import 'package:rxdart/rxdart.dart';
 
+class UriParseException implements Exception {
+  UriParseException(this.uri);
+
+  final String uri;
+
+  @override
+  String toString() =>
+      'Cannot parse host and port from uri. Invalid uri format. Uri: $uri';
+}
+
 String jsonrpcparams(List<Object> params) {
   final _params = params?.map((val) => '"${val.toString()}"')?.join(',');
   return '[$_params]';
@@ -40,9 +50,14 @@ class ElectrumClient {
   Timer _aliveTimer;
 
   Future<void> connectToUri(String uri) async {
-    final _uri = Uri.parse(uri);
-    final host = _uri.scheme;
-    final port = int.parse(_uri.path);
+    final splittedUri = uri.split(':');
+
+    if (splittedUri.length != 2) {
+      throw UriParseException(uri);
+    }
+
+    final host = splittedUri.first;
+    final port = int.parse(splittedUri.last);
     await connect(host: host, port: port);
   }
 
@@ -51,7 +66,8 @@ class ElectrumClient {
       await socket?.close();
     } catch (_) {}
 
-    socket = await SecureSocket.connect(host, port, timeout: connectionTimeout);
+    socket = await SecureSocket.connect(host, port,
+        timeout: connectionTimeout, onBadCertificate: (_) => true);
     _setIsConnected(true);
 
     socket.listen((Uint8List event) {
@@ -87,7 +103,7 @@ class ElectrumClient {
 
   Future<void> ping() async {
     try {
-      await callWithTimeout(method: 'server.ping');
+      // await callWithTimeout(method: 'server.ping');
       _setIsConnected(true);
     } on RequestFailedTimeoutException catch (_) {
       _setIsConnected(false);
diff --git a/lib/core/contact_service.dart b/lib/core/contact_service.dart
index 73a5bed27..1141a1d06 100644
--- a/lib/core/contact_service.dart
+++ b/lib/core/contact_service.dart
@@ -12,7 +12,7 @@ class ContactService {
 
   Future add(Contact contact) async {
     await contactSource.add(contact);
-    contactListStore.contacts.add(contact);
+    // contactListStore.contacts.add(contact);
   }
 
   Future update(Contact contact) async {
diff --git a/lib/di.dart b/lib/di.dart
index 7c08d9e49..5453010ca 100644
--- a/lib/di.dart
+++ b/lib/di.dart
@@ -58,6 +58,7 @@ import 'package:mobx/mobx.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'package:flutter_secure_storage/flutter_secure_storage.dart';
 import 'package:cake_wallet/view_model/wallet_restoration_from_seed_vm.dart';
+import 'package:cake_wallet/view_model/wallet_restoration_from_keys_vm.dart';
 import 'package:cake_wallet/core/wallet_creation_service.dart';
 import 'package:cake_wallet/store/app_store.dart';
 import 'package:cake_wallet/src/domain/common/wallet_type.dart';
@@ -168,6 +169,16 @@ Future setup(
         type: type, language: language, seed: mnemonic);
   });
 
+  getIt
+      .registerFactoryParam<WalletRestorationFromKeysVM, List, void>((args, _) {
+    final type = args.first as WalletType;
+    final language = args[1] as String;
+
+    return WalletRestorationFromKeysVM(
+        getIt.get<WalletCreationService>(param1: type), walletInfoSource,
+        type: type, language: language);
+  });
+
   getIt.registerFactory<WalletAddressListViewModel>(
       () => WalletAddressListViewModel(wallet: getIt.get<AppStore>().wallet));
 
@@ -193,6 +204,10 @@ Future setup(
 
   getIt.registerFactory<AuthPage>(
       () => AuthPage(
+          allowBiometricalAuthentication: getIt
+              .get<AppStore>()
+              .settingsStore
+              .allowBiometricalAuthentication,
           authViewModel: getIt.get<AuthViewModel>(),
           onAuthenticationFinished: (isAuthenticated, __) {
             if (isAuthenticated) {
@@ -204,10 +219,18 @@ Future setup(
 
   getIt
       .registerFactoryParam<AuthPage, void Function(bool, AuthPageState), void>(
-          (onAuthFinished, _) => AuthPage(
-              authViewModel: getIt.get<AuthViewModel>(),
-              onAuthenticationFinished: onAuthFinished,
-              closable: false));
+          (onAuthFinished, _) {
+    final allowBiometricalAuthentication =
+        getIt.get<AppStore>().settingsStore.allowBiometricalAuthentication;
+
+    print('allowBiometricalAuthentication $allowBiometricalAuthentication');
+
+    return AuthPage(
+        allowBiometricalAuthentication: allowBiometricalAuthentication,
+        authViewModel: getIt.get<AuthViewModel>(),
+        onAuthenticationFinished: onAuthFinished,
+        closable: false);
+  });
 
   getIt.registerFactory<DashboardPage>(() => DashboardPage(
       walletViewModel: getIt.get<DashboardViewModel>(),
@@ -294,14 +317,17 @@ Future setup(
 
   getIt.registerFactoryParam<ContactViewModel, Contact, void>(
       (Contact contact, _) => ContactViewModel(
-          getIt.get<ContactService>(), getIt.get<AppStore>().wallet,
+          contactSource, getIt.get<AppStore>().wallet,
           contact: contact));
 
   getIt.registerFactory(() => ContactListViewModel(
-      getIt.get<AppStore>().contactListStore, getIt.get<ContactService>()));
+      getIt.get<AppStore>().contactListStore,
+      getIt.get<ContactService>(),
+      contactSource));
 
-  getIt.registerFactory(
-      () => ContactListPage(getIt.get<ContactListViewModel>()));
+  getIt.registerFactoryParam<ContactListPage, bool, void>(
+      (bool isEditable, _) => ContactListPage(getIt.get<ContactListViewModel>(),
+          isEditable: isEditable));
 
   getIt.registerFactoryParam<ContactPage, Contact, void>((Contact contact, _) =>
       ContactPage(getIt.get<ContactViewModel>(param1: contact)));
diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart
index 5408734ae..2a63b3bae 100644
--- a/lib/generated/i18n.dart
+++ b/lib/generated/i18n.dart
@@ -14,7 +14,7 @@ class S implements WidgetsLocalizations {
   static S current;
 
   static const GeneratedLocalizationsDelegate delegate =
-    GeneratedLocalizationsDelegate();
+      GeneratedLocalizationsDelegate();
 
   static S of(BuildContext context) => Localizations.of<S>(context, S);
 
@@ -30,7 +30,8 @@ class S implements WidgetsLocalizations {
   String get address_book => "Address Book";
   String get address_book_menu => "Address book";
   String get address_remove_contact => "Remove contact";
-  String get address_remove_content => "Are you sure that you want to remove selected contact?";
+  String get address_remove_content =>
+      "Are you sure that you want to remove selected contact?";
   String get addresses => "Addresses";
   String get all => "ALL";
   String get amount => "Amount: ";
@@ -56,8 +57,10 @@ class S implements WidgetsLocalizations {
   String get choose_wallet_currency => "Please choose wallet currency:";
   String get clear => "Clear";
   String get confirm => "Confirm";
-  String get confirm_delete_template => "This action will delete this template. Do you wish to continue?";
-  String get confirm_delete_wallet => "This action will delete this wallet. Do you wish to continue?";
+  String get confirm_delete_template =>
+      "This action will delete this template. Do you wish to continue?";
+  String get confirm_delete_wallet =>
+      "This action will delete this wallet. Do you wish to continue?";
   String get confirm_sending => "Confirm sending";
   String get contact => "Contact";
   String get contact_name => "Contact Name";
@@ -74,30 +77,43 @@ class S implements WidgetsLocalizations {
   String get enter_your_pin => "Enter your PIN";
   String get enter_your_pin_again => "Enter your pin again";
   String get error => "Error";
-  String get error_text_account_name => "Account name can only contain letters, numbers\nand must be between 1 and 15 characters long";
-  String get error_text_address => "Wallet address must correspond to the type\nof cryptocurrency";
+  String get error_text_account_name =>
+      "Account name can only contain letters, numbers\nand must be between 1 and 15 characters long";
+  String get error_text_address =>
+      "Wallet address must correspond to the type\nof cryptocurrency";
   String get error_text_amount => "Amount can only contain numbers";
-  String get error_text_contact_name => "Contact name can't contain ` , ' \" symbols\nand must be between 1 and 32 characters long";
-  String get error_text_crypto_currency => "The number of fraction digits\nmust be less or equal to 12";
-  String get error_text_fiat => "Value of amount can't exceed available balance.\nThe number of fraction digits must be less or equal to 2";
+  String get error_text_contact_name =>
+      "Contact name can't contain ` , ' \" symbols\nand must be between 1 and 32 characters long";
+  String get error_text_crypto_currency =>
+      "The number of fraction digits\nmust be less or equal to 12";
+  String get error_text_fiat =>
+      "Value of amount can't exceed available balance.\nThe number of fraction digits must be less or equal to 2";
   String get error_text_keys => "Wallet keys can only contain 64 chars in hex";
   String get error_text_node_address => "Please enter a iPv4 address";
-  String get error_text_node_port => "Node port can only contain numbers between 0 and 65535";
-  String get error_text_payment_id => "Payment ID can only contain from 16 to 64 chars in hex";
-  String get error_text_subaddress_name => "Subaddress name can't contain ` , ' \" symbols\nand must be between 1 and 20 characters long";
-  String get error_text_template => "Template name and address can't contain ` , ' \" symbols\nand must be between 1 and 106 characters long";
-  String get error_text_wallet_name => "Wallet name can only contain letters, numbers\nand must be between 1 and 15 characters long";
-  String get error_text_xmr => "XMR value can't exceed available balance.\nThe number of fraction digits must be less or equal to 12";
+  String get error_text_node_port =>
+      "Node port can only contain numbers between 0 and 65535";
+  String get error_text_payment_id =>
+      "Payment ID can only contain from 16 to 64 chars in hex";
+  String get error_text_subaddress_name =>
+      "Subaddress name can't contain ` , ' \" symbols\nand must be between 1 and 20 characters long";
+  String get error_text_template =>
+      "Template name and address can't contain ` , ' \" symbols\nand must be between 1 and 106 characters long";
+  String get error_text_wallet_name =>
+      "Wallet name can only contain letters, numbers\nand must be between 1 and 15 characters long";
+  String get error_text_xmr =>
+      "XMR value can't exceed available balance.\nThe number of fraction digits must be less or equal to 12";
   String get estimated => "Estimated";
   String get exchange => "Exchange";
   String get exchange_new_template => "New template";
-  String get exchange_result_write_down_ID => "*Please copy or write down your ID shown above.";
-  String get exchange_result_write_down_trade_id => "Please copy or write down the trade ID to continue.";
+  String get exchange_result_write_down_ID =>
+      "*Please copy or write down your ID shown above.";
+  String get exchange_result_write_down_trade_id =>
+      "Please copy or write down the trade ID to continue.";
   String get expired => "Expired";
   String get faq => "FAQ";
   String get fetching => "Fetching";
   String get filters => "Filter";
-  String get first_wallet_text => "Awesome wallet for Monero";
+  String get first_wallet_text => "Awesome wallet for Monero and Bitcoin";
   String get full_balance => "Full Balance";
   String get hidden_balance => "Hidden Balance";
   String get id => "ID: ";
@@ -114,7 +130,8 @@ class S implements WidgetsLocalizations {
   String get node_port => "Node port";
   String get node_reset_settings_title => "Reset settings";
   String get nodes => "Nodes";
-  String get nodes_list_reset_to_default_message => "Are you sure that you want to reset settings to default?";
+  String get nodes_list_reset_to_default_message =>
+      "Are you sure that you want to reset settings to default?";
   String get offer_expires_in => "Offer expires in: ";
   String get ok => "OK";
   String get openalias_alert_title => "XMR Recipient Detected";
@@ -125,10 +142,13 @@ class S implements WidgetsLocalizations {
   String get pending => " (pending)";
   String get pin_is_incorrect => "PIN is incorrect";
   String get placeholder_contacts => "Your contacts will be displayed here";
-  String get placeholder_transactions => "Your transactions will be displayed here";
-  String get please_make_selection => "Please make selection below to create or recover your wallet.";
+  String get placeholder_transactions =>
+      "Your transactions will be displayed here";
+  String get please_make_selection =>
+      "Please make selection below to create or recover your wallet.";
   String get please_select => "Please select:";
-  String get please_try_to_connect_to_another_node => "Please try to connect to another node";
+  String get please_try_to_connect_to_another_node =>
+      "Please try to connect to another node";
   String get receive => "Receive";
   String get receive_amount => "Amount";
   String get received => "Received";
@@ -138,17 +158,28 @@ class S implements WidgetsLocalizations {
   String get refund_address => "Refund address";
   String get remove => "Remove";
   String get remove_node => "Remove node";
-  String get remove_node_message => "Are you sure that you want to remove selected node?";
+  String get remove_node_message =>
+      "Are you sure that you want to remove selected node?";
   String get rename => "Rename";
   String get rescan => "Rescan";
   String get reset => "Reset";
   String get restore_active_seed => "Active seed";
   String get restore_address => "Address";
-  String get restore_description_from_backup => "You can restore the whole Cake Wallet app from your back-up file";
-  String get restore_description_from_keys => "Restore your wallet from generated keystrokes saved from your private keys";
-  String get restore_description_from_seed => "Restore your wallet from either the 25 word or 13 word combination code";
-  String get restore_description_from_seed_keys => "Get back your wallet from seed/keys that you've saved to secure place";
-  String get restore_from_seed_placeholder => "Please enter or paste your seed here";
+  String get restore_bitcoin_description_from_keys =>
+      "Restore your wallet from generated WIF string from your private keys";
+  String get restore_bitcoin_description_from_seed =>
+      "Restore your wallet from 12 word combination code";
+  String get restore_bitcoin_title_from_keys => "Restore from WIF";
+  String get restore_description_from_backup =>
+      "You can restore the whole Cake Wallet app from your back-up file";
+  String get restore_description_from_keys =>
+      "Restore your wallet from generated keystrokes saved from your private keys";
+  String get restore_description_from_seed =>
+      "Restore your wallet from either the 25 word or 13 word combination code";
+  String get restore_description_from_seed_keys =>
+      "Get back your wallet from seed/keys that you've saved to secure place";
+  String get restore_from_seed_placeholder =>
+      "Please enter or paste your seed here";
   String get restore_new_seed => "New seed";
   String get restore_next => "Next";
   String get restore_recover => "Restore";
@@ -199,7 +230,8 @@ class S implements WidgetsLocalizations {
   String get sending => "Sending";
   String get sent => "Sent";
   String get settings_all => "ALL";
-  String get settings_allow_biometrical_authentication => "Allow biometrical authentication";
+  String get settings_allow_biometrical_authentication =>
+      "Allow biometrical authentication";
   String get settings_change_language => "Change language";
   String get settings_change_pin => "Change PIN";
   String get settings_currency => "Currency";
@@ -289,7 +321,8 @@ class S implements WidgetsLocalizations {
   String get wallet_list_title => "Monero Wallet";
   String get wallet_menu => "Menu";
   String get wallet_name => "Wallet name";
-  String get wallet_restoration_store_incorrect_seed_length => "Incorrect seed length";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "Incorrect seed length";
   String get wallet_store_monero_wallet => "Monero Wallet";
   String get wallets => "Wallets";
   String get welcome => "Welcome to";
@@ -305,34 +338,58 @@ class S implements WidgetsLocalizations {
   String get you_will_get => "You will get";
   String get you_will_send => "You will send";
   String Blocks_remaining(String status) => "${status} Blocks Remaining";
-  String change_current_node(String node) => "Are you sure to change current node to ${node}?";
-  String change_language_to(String language) => "Change language to ${language}?";
-  String commit_transaction_amount_fee(String amount, String fee) => "Commit transaction\nAmount: ${amount}\nFee: ${fee}";
+  String change_current_node(String node) =>
+      "Are you sure to change current node to ${node}?";
+  String change_language_to(String language) =>
+      "Change language to ${language}?";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "Commit transaction\nAmount: ${amount}\nFee: ${fee}";
   String copied_key_to_clipboard(String key) => "Copied ${key} to Clipboard";
-  String error_text_limits_loading_failed(String provider) => "Trade for ${provider} is not created. Limits loading failed";
-  String error_text_maximum_limit(String provider, String max, String currency) => "Trade for ${provider} is not created. Amount is more then maximum: ${max} ${currency}";
-  String error_text_minimal_limit(String provider, String min, String currency) => "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}";
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown above. Or you can send from your external wallet to the above address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.";
-  String exchange_result_description(String fetchingLabel, String from) => "Please send ${fetchingLabel} ${from} to the address shown above.";
-  String failed_authentication(String state_error) => "Failed authentication. ${state_error}";
-  String max_value(String value, String currency) => "Max: ${value} ${currency}";
-  String min_value(String value, String currency) => "Min: ${value} ${currency}";
-  String openalias_alert_content(String recipient_name) => "You will be sending funds to\n${recipient_name}";
+  String error_text_limits_loading_failed(String provider) =>
+      "Trade for ${provider} is not created. Limits loading failed";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "Trade for ${provider} is not created. Amount is more then maximum: ${max} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown above. Or you can send from your external wallet to the above address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "Please send ${fetchingLabel} ${from} to the address shown above.";
+  String failed_authentication(String state_error) =>
+      "Failed authentication. ${state_error}";
+  String max_value(String value, String currency) =>
+      "Max: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "Min: ${value} ${currency}";
+  String openalias_alert_content(String recipient_name) =>
+      "You will be sending funds to\n${recipient_name}";
   String powered_by(String title) => "Powered by ${title}";
   String router_no_route(String name) => "No route defined for ${name}";
   String send_address(String cryptoCurrency) => "${cryptoCurrency} address";
-  String send_priority(String transactionPriority) => "Currently the fee is set at ${transactionPriority} priority.\nTransaction priority can be adjusted in the settings";
+  String send_priority(String transactionPriority) =>
+      "Currently the fee is set at ${transactionPriority} priority.\nTransaction priority can be adjusted in the settings";
   String time(String minutes, String seconds) => "${minutes}m ${seconds}s";
   String trade_details_copied(String title) => "${title} copied to Clipboard";
-  String trade_for_not_created(String title) => "Trade for ${title} is not created.";
-  String trade_id_not_found(String tradeId, String title) => "Trade ${tradeId} of ${title} not found.";
-  String trade_is_powered_by(String provider) => "This trade is powered by ${provider}";
-  String transaction_details_copied(String title) => "${title} copied to Clipboard";
+  String trade_for_not_created(String title) =>
+      "Trade for ${title} is not created.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "Trade ${tradeId} of ${title} not found.";
+  String trade_is_powered_by(String provider) =>
+      "This trade is powered by ${provider}";
+  String transaction_details_copied(String title) =>
+      "${title} copied to Clipboard";
   String version(String currentVersion) => "Version ${currentVersion}";
-  String wallet_list_failed_to_load(String wallet_name, String error) => "Failed to load ${wallet_name} wallet. ${error}";
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "Failed to remove ${wallet_name} wallet. ${error}";
-  String wallet_list_loading_wallet(String wallet_name) => "Loading ${wallet_name} wallet";
-  String wallet_list_removing_wallet(String wallet_name) => "Removing ${wallet_name} wallet";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "Failed to load ${wallet_name} wallet. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "Failed to remove ${wallet_name} wallet. ${error}";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "Loading ${wallet_name} wallet";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "Removing ${wallet_name} wallet";
 }
 
 class $de extends S {
@@ -358,7 +415,8 @@ class $de extends S {
   @override
   String get hidden_balance => "Verstecktes Gleichgewicht";
   @override
-  String get biometric_auth_reason => "Scannen Sie Ihren Fingerabdruck zur Authentifizierung";
+  String get biometric_auth_reason =>
+      "Scannen Sie Ihren Fingerabdruck zur Authentifizierung";
   @override
   String get transaction_sent => "Transaktion gesendet!";
   @override
@@ -370,7 +428,8 @@ class $de extends S {
   @override
   String get trade_id => "Handel-ID:";
   @override
-  String get restore_description_from_seed => "Stellen Sie Ihr Wallet aus den 25 Wörtern wieder her oder 13-Wort-Kombinationscode";
+  String get restore_description_from_seed =>
+      "Stellen Sie Ihr Wallet aus den 25 Wörtern wieder her oder 13-Wort-Kombinationscode";
   @override
   String get trade_state_underpaid => "Unterbezahlt";
   @override
@@ -382,7 +441,8 @@ class $de extends S {
   @override
   String get send_templates => "Vorlagen";
   @override
-  String get please_try_to_connect_to_another_node => "Bitte versuchen Sie, eine Verbindung zu einem anderen Knoten herzustellen";
+  String get please_try_to_connect_to_another_node =>
+      "Bitte versuchen Sie, eine Verbindung zu einem anderen Knoten herzustellen";
   @override
   String get trade_state_traded => "Handeln";
   @override
@@ -396,7 +456,8 @@ class $de extends S {
   @override
   String get auth_store_banned_minutes => " Protokoll";
   @override
-  String get restore_title_from_seed_keys => "Vom Seed / Schlüssel wiederherstellen";
+  String get restore_title_from_seed_keys =>
+      "Vom Seed / Schlüssel wiederherstellen";
   @override
   String get settings_none => "Keiner";
   @override
@@ -416,7 +477,8 @@ class $de extends S {
   @override
   String get receive_amount => "Menge";
   @override
-  String get settings_allow_biometrical_authentication => "Biometrische Authentifizierung zulassen";
+  String get settings_allow_biometrical_authentication =>
+      "Biometrische Authentifizierung zulassen";
   @override
   String get view_key_private => "Schlüssel anzeigen (eheim)";
   @override
@@ -426,13 +488,16 @@ class $de extends S {
   @override
   String get send_sending => "Senden...";
   @override
-  String get error_text_address => "Die Walletadresse muss dem Typ entsprechen\nder Kryptowährung";
+  String get error_text_address =>
+      "Die Walletadresse muss dem Typ entsprechen\nder Kryptowährung";
   @override
   String get send_your_wallet => "Deine Geldbörse";
   @override
-  String get remove_node_message => "Möchten Sie den ausgewählten Knoten wirklich entfernen?";
+  String get remove_node_message =>
+      "Möchten Sie den ausgewählten Knoten wirklich entfernen?";
   @override
-  String get error_text_account_name => "Der Kontoname darf nur Wallet und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein";
+  String get error_text_account_name =>
+      "Der Kontoname darf nur Wallet und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein";
   @override
   String get reconnection => "Wiederverbindung";
   @override
@@ -446,19 +511,22 @@ class $de extends S {
   @override
   String get reconnect => "Erneut verbinden";
   @override
-  String get reconnect_alert_text => "Sind Sie sicher, dass Sie die Verbindung wiederherstellen möchten?";
+  String get reconnect_alert_text =>
+      "Sind Sie sicher, dass Sie die Verbindung wiederherstellen möchten?";
   @override
   String get send_error_minimum_value => "Der Mindestbetrag beträgt 0,01";
   @override
   String get copy_address => "Adresse kopieren";
   @override
-  String get error_text_subaddress_name => "Der Name der Unteradresse darf nicht enthalten sein ` , ' \" symbole\nund muss zwischen 1 und 20 Zeichen lang sein";
+  String get error_text_subaddress_name =>
+      "Der Name der Unteradresse darf nicht enthalten sein ` , ' \" symbole\nund muss zwischen 1 und 20 Zeichen lang sein";
   @override
   String get incorrect_seed => "Der eingegebene Text ist ungültig.";
   @override
   String get settings_all => "ALLE";
   @override
-  String get nodes_list_reset_to_default_message => "Möchten Sie die Einstellungen wirklich auf die Standardeinstellungen zurücksetzen?";
+  String get nodes_list_reset_to_default_message =>
+      "Möchten Sie die Einstellungen wirklich auf die Standardeinstellungen zurücksetzen?";
   @override
   String get receive => "Erhalten";
   @override
@@ -468,13 +536,15 @@ class $de extends S {
   @override
   String get trade_details_pair => "Paar";
   @override
-  String get choose_wallet_currency => "Bitte wählen Sie die Brieftaschenwährung:";
+  String get choose_wallet_currency =>
+      "Bitte wählen Sie die Brieftaschenwährung:";
   @override
   String get confirm => "Bestätigen";
   @override
   String get settings_display_balance_as => "Kontostand anzeigen als";
   @override
-  String get placeholder_transactions => "Ihre Transaktionen werden hier angezeigt";
+  String get placeholder_transactions =>
+      "Ihre Transaktionen werden hier angezeigt";
   @override
   String get trade_details_provider => "Anbieter";
   @override
@@ -496,9 +566,13 @@ class $de extends S {
   @override
   String get settings_title => "die Einstellungen";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "Stellen Sie Ihre Brieftasche aus dem 12-Wort-Kombinationscode wieder her";
+  @override
   String get address_book_menu => "Adressbuch";
   @override
-  String get wallet_restoration_store_incorrect_seed_length => "Falsche Samenlänge";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "Falsche Samenlänge";
   @override
   String get seed_language_spanish => "Spanisch";
   @override
@@ -520,15 +594,18 @@ class $de extends S {
   @override
   String get please_select => "Bitte auswählen:";
   @override
-  String get restore_title_from_backup => "Aus einer Sicherungsdatei wiederherstellen";
+  String get restore_title_from_backup =>
+      "Aus einer Sicherungsdatei wiederherstellen";
   @override
   String get full_balance => "Volle Balance";
   @override
   String get sync_status_not_connected => "NICHT VERBUNDEN";
   @override
-  String get error_text_crypto_currency => "Die Anzahl der Nachkommastellen\nmuss kleiner oder gleich 12 sein.";
+  String get error_text_crypto_currency =>
+      "Die Anzahl der Nachkommastellen\nmuss kleiner oder gleich 12 sein.";
   @override
-  String get error_text_contact_name => "Kontaktname darf nicht enthalten sein ` , ' \" Symbole\nund muss zwischen 1 und 32 Zeichen lang sein";
+  String get error_text_contact_name =>
+      "Kontaktname darf nicht enthalten sein ` , ' \" Symbole\nund muss zwischen 1 und 32 Zeichen lang sein";
   @override
   String get restore_seed_keys_restore => "Seed / Schlüssel wiederherstellen";
   @override
@@ -538,7 +615,8 @@ class $de extends S {
   @override
   String get exchange => "Austausch";
   @override
-  String get sync_status_failed_connect => "Verbindung zum Knoten fehlgeschlagen";
+  String get sync_status_failed_connect =>
+      "Verbindung zum Knoten fehlgeschlagen";
   @override
   String get send_estimated_fee => "Geschätzte Gebühr:";
   @override
@@ -590,7 +668,8 @@ class $de extends S {
   @override
   String get copy_id => "ID kopieren";
   @override
-  String get please_make_selection => "Bitte treffen Sie unten eine Auswahl zu Erstellen oder Wiederherstellen Ihrer Brieftasche.";
+  String get please_make_selection =>
+      "Bitte treffen Sie unten eine Auswahl zu Erstellen oder Wiederherstellen Ihrer Brieftasche.";
   @override
   String get loading_your_wallet => "Laden Sie Ihre Brieftasche";
   @override
@@ -600,11 +679,13 @@ class $de extends S {
   @override
   String get nodes => "Knoten";
   @override
-  String get error_text_template => "Vorlagenname und Adresse dürfen nicht enthalten ` , ' \" symbole\nund muss zwischen 1 und 106 Zeichen lang sein";
+  String get error_text_template =>
+      "Vorlagenname und Adresse dürfen nicht enthalten ` , ' \" symbole\nund muss zwischen 1 und 106 Zeichen lang sein";
   @override
   String get seed_share => "Teilen Sie Seed";
   @override
-  String get widgets_restore_from_blockheight => "Aus Blockhöhe wiederherstellen";
+  String get widgets_restore_from_blockheight =>
+      "Aus Blockhöhe wiederherstellen";
   @override
   String get seed_language_chinese => "Chinesisch";
   @override
@@ -626,11 +707,18 @@ class $de extends S {
   @override
   String get trade_state_complete => "Komplett";
   @override
-  String get error_text_xmr => "Der XMR-Wert kann das verfügbare Guthaben nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 12 sein";
+  String get error_text_xmr =>
+      "Der XMR-Wert kann das verfügbare Guthaben nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 12 sein";
   @override
   String get xmr_available_balance => "XMR verfügbares Guthaben";
   @override
-  String get scan_qr_code => "Scannen Sie den QR-Code, um die Adresse zu erhalten";
+  String get restore_bitcoin_description_from_keys =>
+      "Stellen Sie Ihre Brieftasche aus der generierten WIF-Zeichenfolge aus Ihren privaten Schlüsseln wieder her";
+  @override
+  String get restore_bitcoin_title_from_keys => "Aus WIF wiederherstellen";
+  @override
+  String get scan_qr_code =>
+      "Scannen Sie den QR-Code, um die Adresse zu erhalten";
   @override
   String get trade_state_paid => "Bezahlt";
   @override
@@ -654,7 +742,8 @@ class $de extends S {
   @override
   String get wallet_name => "Walletname";
   @override
-  String get error_text_payment_id => "Die Zahlungs-ID kann nur 16 bis 64 hexadezimale Zeichen enthalten";
+  String get error_text_payment_id =>
+      "Die Zahlungs-ID kann nur 16 bis 64 hexadezimale Zeichen enthalten";
   @override
   String get node_reset_settings_title => "Einstellungen zurücksetzen";
   @override
@@ -676,7 +765,8 @@ class $de extends S {
   @override
   String get new_wallet => "Neues Wallet";
   @override
-  String get settings_display_on_dashboard_list => "Anzeige in der Dashboard-Liste";
+  String get settings_display_on_dashboard_list =>
+      "Anzeige in der Dashboard-Liste";
   @override
   String get transaction_details_title => "Transaktionsdetails";
   @override
@@ -706,7 +796,8 @@ class $de extends S {
   @override
   String get seed_language_dutch => "Niederländisch";
   @override
-  String get restore_description_from_seed_keys => "Holen Sie sich Ihr Wallet von Seed / Schlüsseln zurück, die Sie an einem sicheren Ort aufbewahrt haben";
+  String get restore_description_from_seed_keys =>
+      "Holen Sie sich Ihr Wallet von Seed / Schlüsseln zurück, die Sie an einem sicheren Ort aufbewahrt haben";
   @override
   String get copy => "Kopieren";
   @override
@@ -722,9 +813,11 @@ class $de extends S {
   @override
   String get contact_name => "Name des Ansprechpartners";
   @override
-  String get exchange_result_write_down_ID => "*Bitte kopieren oder notieren Sie Ihren oben gezeigten Ausweis.";
+  String get exchange_result_write_down_ID =>
+      "*Bitte kopieren oder notieren Sie Ihren oben gezeigten Ausweis.";
   @override
-  String get exchange_result_write_down_trade_id => "Bitte kopieren oder notieren Sie die Handel-ID, um fortzufahren.";
+  String get exchange_result_write_down_trade_id =>
+      "Bitte kopieren oder notieren Sie die Handel-ID, um fortzufahren.";
   @override
   String get new_subaddress_title => "Neue Unteradresse";
   @override
@@ -736,7 +829,8 @@ class $de extends S {
   @override
   String get trade_not_created => "Handel nicht angelegt.";
   @override
-  String get confirm_delete_wallet => "Diese Aktion löscht diese Brieftasche. Möchten Sie fortfahren?";
+  String get confirm_delete_wallet =>
+      "Diese Aktion löscht diese Brieftasche. Möchten Sie fortfahren?";
   @override
   String get restore_wallet_name => "Walletname";
   @override
@@ -746,7 +840,8 @@ class $de extends S {
   @override
   String get rename => "Umbenennen";
   @override
-  String get confirm_delete_template => "Diese Aktion löscht diese Vorlage. Möchten Sie fortfahren?";
+  String get confirm_delete_template =>
+      "Diese Aktion löscht diese Vorlage. Möchten Sie fortfahren?";
   @override
   String get restore_active_seed => "Aktives Seed";
   @override
@@ -762,13 +857,15 @@ class $de extends S {
   @override
   String get show_keys => "Schlüssel anzeigen";
   @override
-  String get error_text_fiat => "Der Wert des Betrags darf den verfügbaren Kontostand nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 2 sein";
+  String get error_text_fiat =>
+      "Der Wert des Betrags darf den verfügbaren Kontostand nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 2 sein";
   @override
   String get addresses => "Adressen";
   @override
   String get transactions_by_date => "Transaktionen nach Datum";
   @override
-  String get restore_from_seed_placeholder => "Bitte geben Sie hier Ihren Code ein";
+  String get restore_from_seed_placeholder =>
+      "Bitte geben Sie hier Ihren Code ein";
   @override
   String get use => "Verwenden Sie ";
   @override
@@ -794,9 +891,11 @@ class $de extends S {
   @override
   String get address_remove_contact => "Kontakt entfernen";
   @override
-  String get error_text_wallet_name => "Der Wallet darf nur Buchstaben und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein";
+  String get error_text_wallet_name =>
+      "Der Wallet darf nur Buchstaben und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein";
   @override
-  String get restore_description_from_keys => "Stellen Sie Ihr Wallet von generiert wieder her Tastenanschläge, die von Ihren privaten Schlüsseln gespeichert wurden";
+  String get restore_description_from_keys =>
+      "Stellen Sie Ihr Wallet von generiert wieder her Tastenanschläge, die von Ihren privaten Schlüsseln gespeichert wurden";
   @override
   String get seed_language_next => "Nächster";
   @override
@@ -812,7 +911,8 @@ class $de extends S {
   @override
   String get send_title => "Senden Sie";
   @override
-  String get error_text_keys => "Walletschlüssel können nur 64 hexadezimale Zeichen enthalten";
+  String get error_text_keys =>
+      "Walletschlüssel können nur 64 hexadezimale Zeichen enthalten";
   @override
   String get settings_save_recipient_address => "Empfängeradresse speichern";
   @override
@@ -854,7 +954,8 @@ class $de extends S {
   @override
   String get restore_address => "Adresse";
   @override
-  String get restore_wallet_restore_description => "Beschreibung zur Wiederherstellung der Brieftasche";
+  String get restore_wallet_restore_description =>
+      "Beschreibung zur Wiederherstellung der Brieftasche";
   @override
   String get today => "Heute";
   @override
@@ -864,7 +965,8 @@ class $de extends S {
   @override
   String get ok => "OK";
   @override
-  String get address_remove_content => "Sind Sie sicher, dass Sie den ausgewählten Kontakt entfernen möchten?";
+  String get address_remove_content =>
+      "Sind Sie sicher, dass Sie den ausgewählten Kontakt entfernen möchten?";
   @override
   String get wallet_list_title => "Monero Wallet";
   @override
@@ -892,9 +994,11 @@ class $de extends S {
   @override
   String get restore_title_from_seed => "Aus Seed wiederherstellen";
   @override
-  String get restore_description_from_backup => "Sie können die gesamte Cake Wallet-App von wiederherstellen Ihre Sicherungsdatei";
+  String get restore_description_from_backup =>
+      "Sie können die gesamte Cake Wallet-App von wiederherstellen Ihre Sicherungsdatei";
   @override
-  String get error_text_node_port => "Der Knotenport kann nur Nummern zwischen 0 und 65535 enthalten";
+  String get error_text_node_port =>
+      "Der Knotenport kann nur Nummern zwischen 0 und 65535 enthalten";
   @override
   String get add_new_word => "Neues Wort hinzufügen";
   @override
@@ -902,69 +1006,95 @@ class $de extends S {
   @override
   String get digit_pin => "-stelliger PIN";
   @override
-  String get first_wallet_text => "tolle Brieftasche zum Monero";
+  String get first_wallet_text => "tolle Brieftasche zum Monero und Bitcoin";
   @override
   String get settings_trades => "Handel";
   @override
   String get account => "Konto";
   @override
-  String change_language_to(String language) => "Ändern Sie die Sprache in ${language}?";
+  String change_language_to(String language) =>
+      "Ändern Sie die Sprache in ${language}?";
   @override
-  String change_current_node(String node) => "Möchten Sie den aktuellen Knoten wirklich auf ändern? ${node}?";
+  String change_current_node(String node) =>
+      "Möchten Sie den aktuellen Knoten wirklich auf ändern? ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "Wird geladen ${wallet_name} Wallet";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "Wird geladen ${wallet_name} Wallet";
   @override
   String version(String currentVersion) => "Ausführung ${currentVersion}";
   @override
   String router_no_route(String name) => "Keine Route definiert für ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "Handel für ${provider} wird nicht erstellt. Menge ist weniger als minimal: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "Handel für ${provider} wird nicht erstellt. Menge ist weniger als minimal: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "Handel ${tradeId} von ${title} nicht gefunden.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "Handel ${tradeId} von ${title} nicht gefunden.";
   @override
-  String transaction_details_copied(String title) => "${title} in die Zwischenablage kopiert";
+  String transaction_details_copied(String title) =>
+      "${title} in die Zwischenablage kopiert";
   @override
-  String trade_details_copied(String title) => "${title} in die Zwischenablage kopiert";
+  String trade_details_copied(String title) =>
+      "${title} in die Zwischenablage kopiert";
   @override
   String powered_by(String title) => "Unterstützt von ${title}";
   @override
-  String send_priority(String transactionPriority) => "Derzeit ist die Gebühr auf festgelegt ${transactionPriority} priorität.\nDie Transaktionspriorität kann in den Einstellungen angepasst werden";
+  String send_priority(String transactionPriority) =>
+      "Derzeit ist die Gebühr auf festgelegt ${transactionPriority} priorität.\nDie Transaktionspriorität kann in den Einstellungen angepasst werden";
   @override
-  String trade_for_not_created(String title) => "Handel für ${title} wird nicht erstellt.";
+  String trade_for_not_created(String title) =>
+      "Handel für ${title} wird nicht erstellt.";
   @override
-  String trade_is_powered_by(String provider) => "Dieser Handel wird betrieben von ${provider}";
+  String trade_is_powered_by(String provider) =>
+      "Dieser Handel wird betrieben von ${provider}";
   @override
   String time(String minutes, String seconds) => "${minutes}m ${seconds}s";
   @override
-  String max_value(String value, String currency) => "Max: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "Max: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "Handel für ${provider} wird nicht erstellt. Menge ist mehr als maximal: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "Handel für ${provider} wird nicht erstellt. Menge ist mehr als maximal: ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "${cryptoCurrency}-Adresse";
   @override
-  String min_value(String value, String currency) => "Mindest: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "Mindest: ${value} ${currency}";
   @override
-  String failed_authentication(String state_error) => "Authentifizierung fehlgeschlagen. ${state_error}";
+  String failed_authentication(String state_error) =>
+      "Authentifizierung fehlgeschlagen. ${state_error}";
   @override
   String Blocks_remaining(String status) => "${status} Verbleibende Blöcke";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Durch Drücken von Bestätigen wird gesendet ${fetchingLabel} ${from} von Ihrer Brieftasche aus angerufen ${walletName} an die oben angegebene Adresse. Oder Sie können von Ihrem externen Portemonnaie an die oben angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu änderns.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "Durch Drücken von Bestätigen wird gesendet ${fetchingLabel} ${from} von Ihrer Brieftasche aus angerufen ${walletName} an die oben angegebene Adresse. Oder Sie können von Ihrem externen Portemonnaie an die oben angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu änderns.";
   @override
-  String error_text_limits_loading_failed(String provider) => "Handel für ${provider} wird nicht erstellt. Das Laden der Limits ist fehlgeschlagen";
+  String error_text_limits_loading_failed(String provider) =>
+      "Handel für ${provider} wird nicht erstellt. Das Laden der Limits ist fehlgeschlagen";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "Bitte senden ${fetchingLabel} ${from} an die oben angegebene Adresse.'";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "Bitte senden ${fetchingLabel} ${from} an die oben angegebene Adresse.'";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "Transaktion festschreiben\nMenge: ${amount}\nGebühr: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "Transaktion festschreiben\nMenge: ${amount}\nGebühr: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "Sie senden Geld an\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "Sie senden Geld an\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "Fehler beim Entfernen ${wallet_name} Wallet. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "Fehler beim Entfernen ${wallet_name} Wallet. ${error}";
   @override
-  String copied_key_to_clipboard(String key) => "Kopiert ${key} Zur Zwischenablage";
+  String copied_key_to_clipboard(String key) =>
+      "Kopiert ${key} Zur Zwischenablage";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "Laden fehlgeschlagen ${wallet_name} Wallet. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "Laden fehlgeschlagen ${wallet_name} Wallet. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "Entfernen ${wallet_name} Wallet";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "Entfernen ${wallet_name} Wallet";
 }
 
 class $hi extends S {
@@ -990,7 +1120,8 @@ class $hi extends S {
   @override
   String get hidden_balance => "छिपा हुआ संतुलन";
   @override
-  String get biometric_auth_reason => "प्रमाणित करने के लिए अपने फ़िंगरप्रिंट को स्कैन करें";
+  String get biometric_auth_reason =>
+      "प्रमाणित करने के लिए अपने फ़िंगरप्रिंट को स्कैन करें";
   @override
   String get transaction_sent => "भेजा गया लेन-देन";
   @override
@@ -1002,7 +1133,8 @@ class $hi extends S {
   @override
   String get trade_id => "व्यापार ID:";
   @override
-  String get restore_description_from_seed => "या तो 25 शब्द से अपने वॉलेट को पुनर्स्थापित करें या 13 शब्द संयोजन कोड";
+  String get restore_description_from_seed =>
+      "या तो 25 शब्द से अपने वॉलेट को पुनर्स्थापित करें या 13 शब्द संयोजन कोड";
   @override
   String get trade_state_underpaid => "के तहत भुगतान किया";
   @override
@@ -1014,7 +1146,8 @@ class $hi extends S {
   @override
   String get send_templates => "टेम्पलेट्स";
   @override
-  String get please_try_to_connect_to_another_node => "कृपया दूसरे नोड से कनेक्ट करने का प्रयास करें";
+  String get please_try_to_connect_to_another_node =>
+      "कृपया दूसरे नोड से कनेक्ट करने का प्रयास करें";
   @override
   String get trade_state_traded => "ट्रेडेड";
   @override
@@ -1028,7 +1161,8 @@ class $hi extends S {
   @override
   String get auth_store_banned_minutes => " मिनट";
   @override
-  String get restore_title_from_seed_keys => "बीज / कुंजियों से पुनर्स्थापित करें";
+  String get restore_title_from_seed_keys =>
+      "बीज / कुंजियों से पुनर्स्थापित करें";
   @override
   String get settings_none => "कोई नहीं";
   @override
@@ -1048,7 +1182,8 @@ class $hi extends S {
   @override
   String get receive_amount => "रकम";
   @override
-  String get settings_allow_biometrical_authentication => "बायोमेट्रिक प्रमाणीकरण की अनुमति दें";
+  String get settings_allow_biometrical_authentication =>
+      "बायोमेट्रिक प्रमाणीकरण की अनुमति दें";
   @override
   String get view_key_private => "कुंजी देखें(निजी)";
   @override
@@ -1058,13 +1193,16 @@ class $hi extends S {
   @override
   String get send_sending => "भेजना...";
   @override
-  String get error_text_address => "वॉलेट पता प्रकार के अनुरूप होना चाहिए\nक्रिप्टोकरेंसी का";
+  String get error_text_address =>
+      "वॉलेट पता प्रकार के अनुरूप होना चाहिए\nक्रिप्टोकरेंसी का";
   @override
   String get send_your_wallet => "आपका बटुआ";
   @override
-  String get remove_node_message => "क्या आप वाकई चयनित नोड को निकालना चाहते हैं?";
+  String get remove_node_message =>
+      "क्या आप वाकई चयनित नोड को निकालना चाहते हैं?";
   @override
-  String get error_text_account_name => "खाता नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए";
+  String get error_text_account_name =>
+      "खाता नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए";
   @override
   String get reconnection => "पुनर्संयोजन";
   @override
@@ -1078,19 +1216,22 @@ class $hi extends S {
   @override
   String get reconnect => "रिकनेक्ट";
   @override
-  String get reconnect_alert_text => "क्या आप पुन: कनेक्ट होना सुनिश्चित करते हैं?";
+  String get reconnect_alert_text =>
+      "क्या आप पुन: कनेक्ट होना सुनिश्चित करते हैं?";
   @override
   String get send_error_minimum_value => "राशि का न्यूनतम मूल्य 0.01 है";
   @override
   String get copy_address => "पता कॉपी करें";
   @override
-  String get error_text_subaddress_name => "सबड्रेस नाम नहीं हो सकता` , ' \" प्रतीकों\nऔर 1 और 20 वर्णों के बीच लंबा होना चाहिए";
+  String get error_text_subaddress_name =>
+      "सबड्रेस नाम नहीं हो सकता` , ' \" प्रतीकों\nऔर 1 और 20 वर्णों के बीच लंबा होना चाहिए";
   @override
   String get incorrect_seed => "दर्ज किया गया पाठ मान्य नहीं है।";
   @override
   String get settings_all => "सब";
   @override
-  String get nodes_list_reset_to_default_message => "क्या आप वाकई सेटिंग को डिफ़ॉल्ट पर रीसेट करना चाहते हैं?";
+  String get nodes_list_reset_to_default_message =>
+      "क्या आप वाकई सेटिंग को डिफ़ॉल्ट पर रीसेट करना चाहते हैं?";
   @override
   String get receive => "प्राप्त करना";
   @override
@@ -1128,9 +1269,13 @@ class $hi extends S {
   @override
   String get settings_title => "सेटिंग्स";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "12 शब्द संयोजन कोड से अपने वॉलेट को पुनर्स्थापित करें";
+  @override
   String get address_book_menu => "पता पुस्तिका";
   @override
-  String get wallet_restoration_store_incorrect_seed_length => "गलत बीज की लंबाई";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "गलत बीज की लंबाई";
   @override
   String get seed_language_spanish => "स्पेनिश";
   @override
@@ -1158,9 +1303,11 @@ class $hi extends S {
   @override
   String get sync_status_not_connected => "जुड़े नहीं हैं";
   @override
-  String get error_text_crypto_currency => "अंश अंकों की संख्या\n12 से कम या इसके बराबर होना चाहिए";
+  String get error_text_crypto_currency =>
+      "अंश अंकों की संख्या\n12 से कम या इसके बराबर होना चाहिए";
   @override
-  String get error_text_contact_name => "संपर्क नाम शामिल नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 32 वर्णों के बीच लंबा होना चाहिए";
+  String get error_text_contact_name =>
+      "संपर्क नाम शामिल नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 32 वर्णों के बीच लंबा होना चाहिए";
   @override
   String get restore_seed_keys_restore => "बीज / कुंजी पुनर्स्थापित करें";
   @override
@@ -1222,7 +1369,8 @@ class $hi extends S {
   @override
   String get copy_id => "प्रतिलिपि ID";
   @override
-  String get please_make_selection => "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें.";
+  String get please_make_selection =>
+      "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें.";
   @override
   String get loading_your_wallet => "अपना बटुआ लोड कर रहा है";
   @override
@@ -1232,11 +1380,13 @@ class $hi extends S {
   @override
   String get nodes => "नोड्स";
   @override
-  String get error_text_template => "टेम्प्लेट का नाम और पता नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 106 वर्णों के बीच लंबा होना चाहिए";
+  String get error_text_template =>
+      "टेम्प्लेट का नाम और पता नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 106 वर्णों के बीच लंबा होना चाहिए";
   @override
   String get seed_share => "बीज साझा करें";
   @override
-  String get widgets_restore_from_blockheight => "ब्लॉकचेन से पुनर्स्थापित करें";
+  String get widgets_restore_from_blockheight =>
+      "ब्लॉकचेन से पुनर्स्थापित करें";
   @override
   String get seed_language_chinese => "चीनी";
   @override
@@ -1258,10 +1408,16 @@ class $hi extends S {
   @override
   String get trade_state_complete => "पूर्ण";
   @override
-  String get error_text_xmr => "एक्सएमआर मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या 12 से कम या इसके बराबर होनी चाहिए";
+  String get error_text_xmr =>
+      "एक्सएमआर मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या 12 से कम या इसके बराबर होनी चाहिए";
   @override
   String get xmr_available_balance => "XMR उपलब्ध शेष राशि";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "अपने निजी कुंजी से उत्पन्न WIF स्ट्रिंग से अपने वॉलेट को पुनर्स्थापित करें";
+  @override
+  String get restore_bitcoin_title_from_keys => "WIF से पुनर्स्थापित करें";
+  @override
   String get scan_qr_code => "पता प्राप्त करने के लिए QR कोड स्कैन करें";
   @override
   String get trade_state_paid => "भुगतान किया है";
@@ -1286,7 +1442,8 @@ class $hi extends S {
   @override
   String get wallet_name => "बटुए का नाम";
   @override
-  String get error_text_payment_id => "पेमेंट आईडी केवल हेक्स में 16 से 64 चार्ट तक हो सकती है";
+  String get error_text_payment_id =>
+      "पेमेंट आईडी केवल हेक्स में 16 से 64 चार्ट तक हो सकती है";
   @override
   String get node_reset_settings_title => "सेटिंग्स को दुबारा करें";
   @override
@@ -1308,7 +1465,8 @@ class $hi extends S {
   @override
   String get new_wallet => "नया बटुआ";
   @override
-  String get settings_display_on_dashboard_list => "डैशबोर्ड सूची पर प्रदर्शित करें";
+  String get settings_display_on_dashboard_list =>
+      "डैशबोर्ड सूची पर प्रदर्शित करें";
   @override
   String get transaction_details_title => "लेनदेन का विवरण";
   @override
@@ -1338,7 +1496,8 @@ class $hi extends S {
   @override
   String get seed_language_dutch => "डच";
   @override
-  String get restore_description_from_seed_keys => "अपने बटुए को बीज से वापस लें/वे कुंजियाँ जिन्हें आपने सुरक्षित स्थान पर सहेजा है";
+  String get restore_description_from_seed_keys =>
+      "अपने बटुए को बीज से वापस लें/वे कुंजियाँ जिन्हें आपने सुरक्षित स्थान पर सहेजा है";
   @override
   String get copy => "प्रतिलिपि";
   @override
@@ -1354,9 +1513,11 @@ class $hi extends S {
   @override
   String get contact_name => "संपर्क नाम";
   @override
-  String get exchange_result_write_down_ID => "*कृपया ऊपर दिखाए गए अपने ID को कॉपी या लिख लें.";
+  String get exchange_result_write_down_ID =>
+      "*कृपया ऊपर दिखाए गए अपने ID को कॉपी या लिख लें.";
   @override
-  String get exchange_result_write_down_trade_id => "जारी रखने के लिए कृपया ट्रेड ID की प्रतिलिपि बनाएँ या लिखें.";
+  String get exchange_result_write_down_trade_id =>
+      "जारी रखने के लिए कृपया ट्रेड ID की प्रतिलिपि बनाएँ या लिखें.";
   @override
   String get new_subaddress_title => "नई उपशादी";
   @override
@@ -1368,7 +1529,8 @@ class $hi extends S {
   @override
   String get trade_not_created => "व्यापार नहीं बनाया गया.";
   @override
-  String get confirm_delete_wallet => "यह क्रिया इस वॉलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?";
+  String get confirm_delete_wallet =>
+      "यह क्रिया इस वॉलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?";
   @override
   String get restore_wallet_name => "बटुए का नाम";
   @override
@@ -1378,7 +1540,8 @@ class $hi extends S {
   @override
   String get rename => "नाम बदलें";
   @override
-  String get confirm_delete_template => "यह क्रिया इस टेम्पलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?";
+  String get confirm_delete_template =>
+      "यह क्रिया इस टेम्पलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?";
   @override
   String get restore_active_seed => "सक्रिय बीज";
   @override
@@ -1394,13 +1557,15 @@ class $hi extends S {
   @override
   String get show_keys => "चाबी दिखाओ";
   @override
-  String get error_text_fiat => "राशि का मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या कम या 2 के बराबर होनी चाहिए";
+  String get error_text_fiat =>
+      "राशि का मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या कम या 2 के बराबर होनी चाहिए";
   @override
   String get addresses => "पतों";
   @override
   String get transactions_by_date => "तारीख से लेन-देन";
   @override
-  String get restore_from_seed_placeholder => "कृपया अपना कोड वाक्यांश यहां दर्ज करें या पेस्ट करें";
+  String get restore_from_seed_placeholder =>
+      "कृपया अपना कोड वाक्यांश यहां दर्ज करें या पेस्ट करें";
   @override
   String get use => "उपयोग ";
   @override
@@ -1426,9 +1591,11 @@ class $hi extends S {
   @override
   String get address_remove_contact => "संपर्क हटाये";
   @override
-  String get error_text_wallet_name => "वॉलेट नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए";
+  String get error_text_wallet_name =>
+      "वॉलेट नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए";
   @override
-  String get restore_description_from_keys => "अपने वॉलेट को जेनरेट से पुनर्स्थापित करें आपकी निजी कुंजी से कीस्ट्रोक्स सहेजे गए";
+  String get restore_description_from_keys =>
+      "अपने वॉलेट को जेनरेट से पुनर्स्थापित करें आपकी निजी कुंजी से कीस्ट्रोक्स सहेजे गए";
   @override
   String get seed_language_next => "आगामी";
   @override
@@ -1444,7 +1611,8 @@ class $hi extends S {
   @override
   String get send_title => "संदेश";
   @override
-  String get error_text_keys => "वॉलेट कीज़ में हेक्स में केवल 64 वर्ण हो सकते हैं";
+  String get error_text_keys =>
+      "वॉलेट कीज़ में हेक्स में केवल 64 वर्ण हो सकते हैं";
   @override
   String get settings_save_recipient_address => "प्राप्तकर्ता का पता सहेजें";
   @override
@@ -1486,7 +1654,8 @@ class $hi extends S {
   @override
   String get restore_address => "पता";
   @override
-  String get restore_wallet_restore_description => "बटुआ विवरण पुनर्स्थापित करें";
+  String get restore_wallet_restore_description =>
+      "बटुआ विवरण पुनर्स्थापित करें";
   @override
   String get today => "आज";
   @override
@@ -1496,7 +1665,8 @@ class $hi extends S {
   @override
   String get ok => "ठीक है";
   @override
-  String get address_remove_content => "क्या आप वाकई चयनित संपर्क को हटाना चाहते हैं?";
+  String get address_remove_content =>
+      "क्या आप वाकई चयनित संपर्क को हटाना चाहते हैं?";
   @override
   String get wallet_list_title => "Monero बटुआ";
   @override
@@ -1524,9 +1694,11 @@ class $hi extends S {
   @override
   String get restore_title_from_seed => "बीज से पुनर्स्थापित करें";
   @override
-  String get restore_description_from_backup => "आप से पूरे केक वॉलेट एप्लिकेशन को पुनर्स्थापित कर सकते हैं आपकी बैक-अप फ़ाइल";
+  String get restore_description_from_backup =>
+      "आप से पूरे केक वॉलेट एप्लिकेशन को पुनर्स्थापित कर सकते हैं आपकी बैक-अप फ़ाइल";
   @override
-  String get error_text_node_port => "नोड पोर्ट में केवल 0 और 65535 के बीच संख्याएँ हो सकती हैं";
+  String get error_text_node_port =>
+      "नोड पोर्ट में केवल 0 और 65535 के बीच संख्याएँ हो सकती हैं";
   @override
   String get add_new_word => "नया शब्द जोड़ें";
   @override
@@ -1534,7 +1706,7 @@ class $hi extends S {
   @override
   String get digit_pin => "-अंक पिन";
   @override
-  String get first_wallet_text => "बहुत बढ़िया बटुआ के लिये Monero";
+  String get first_wallet_text => "बहुत बढ़िया बटुआ के लिये Monero तथा Bitcoin";
   @override
   String get settings_trades => "ट्रेडों";
   @override
@@ -1542,61 +1714,86 @@ class $hi extends S {
   @override
   String change_language_to(String language) => "को भाषा बदलें ${language}?";
   @override
-  String change_current_node(String node) => "क्या आप वर्तमान नोड को बदलना सुनिश्चित करते हैं ${node}?";
+  String change_current_node(String node) =>
+      "क्या आप वर्तमान नोड को बदलना सुनिश्चित करते हैं ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "लोड हो रहा है ${wallet_name} बटुआ";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "लोड हो रहा है ${wallet_name} बटुआ";
   @override
   String version(String currentVersion) => "संस्करण ${currentVersion}";
   @override
-  String router_no_route(String name) => "के लिए कोई मार्ग निर्धारित नहीं है ${name}";
+  String router_no_route(String name) =>
+      "के लिए कोई मार्ग निर्धारित नहीं है ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि कम है तो न्यूनतम: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि कम है तो न्यूनतम: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "व्यापार ${tradeId} of ${title} नहीं मिला.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "व्यापार ${tradeId} of ${title} नहीं मिला.";
   @override
-  String transaction_details_copied(String title) => "${title} क्लिपबोर्ड पर नकल";
+  String transaction_details_copied(String title) =>
+      "${title} क्लिपबोर्ड पर नकल";
   @override
   String trade_details_copied(String title) => "${title} क्लिपबोर्ड पर नकल";
   @override
   String powered_by(String title) => "द्वारा संचालित ${title}";
   @override
-  String send_priority(String transactionPriority) => "वर्तमान में शुल्क निर्धारित है ${transactionPriority} प्राथमिकता.\nलेन-देन की प्राथमिकता को सेटिंग्स में समायोजित किया जा सकता है";
+  String send_priority(String transactionPriority) =>
+      "वर्तमान में शुल्क निर्धारित है ${transactionPriority} प्राथमिकता.\nलेन-देन की प्राथमिकता को सेटिंग्स में समायोजित किया जा सकता है";
   @override
-  String trade_for_not_created(String title) => "के लिए व्यापार ${title} निर्मित नहीं है.";
+  String trade_for_not_created(String title) =>
+      "के लिए व्यापार ${title} निर्मित नहीं है.";
   @override
-  String trade_is_powered_by(String provider) => "यह व्यापार द्वारा संचालित है ${provider}";
+  String trade_is_powered_by(String provider) =>
+      "यह व्यापार द्वारा संचालित है ${provider}";
   @override
   String time(String minutes, String seconds) => "${minutes}m ${seconds}s";
   @override
-  String max_value(String value, String currency) => "मैक्स: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "मैक्स: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि अधिक है तो अधिकतम: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि अधिक है तो अधिकतम: ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "${cryptoCurrency} पता";
   @override
-  String min_value(String value, String currency) => "मिन: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "मिन: ${value} ${currency}";
   @override
-  String failed_authentication(String state_error) => "प्रमाणीकरण विफल. ${state_error}";
+  String failed_authentication(String state_error) =>
+      "प्रमाणीकरण विफल. ${state_error}";
   @override
   String Blocks_remaining(String status) => "${status} शेष रहते हैं";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} ऊपर दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से उपरोक्त पते / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} ऊपर दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से उपरोक्त पते / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं.";
   @override
-  String error_text_limits_loading_failed(String provider) => "व्यापार ${provider} के लिए नहीं बनाया गया है। लोडिंग की सीमाएं विफल रहीं";
+  String error_text_limits_loading_failed(String provider) =>
+      "व्यापार ${provider} के लिए नहीं बनाया गया है। लोडिंग की सीमाएं विफल रहीं";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "कृपया भेजें ${fetchingLabel} ${from} ऊपर दिखाए गए पते पर";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "कृपया भेजें ${fetchingLabel} ${from} ऊपर दिखाए गए पते पर";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "आपको धनराशि भेजी जाएगी\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "आपको धनराशि भेजी जाएगी\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "निकालने में विफल ${wallet_name} बटुआ. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "निकालने में विफल ${wallet_name} बटुआ. ${error}";
   @override
-  String copied_key_to_clipboard(String key) => "की नकल की ${key} क्लिपबोर्ड पर";
+  String copied_key_to_clipboard(String key) =>
+      "की नकल की ${key} क्लिपबोर्ड पर";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "लोड करने में विफल ${wallet_name} बटुआ. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "लोड करने में विफल ${wallet_name} बटुआ. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "निकाला जा रहा है ${wallet_name} बटुआ";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "निकाला जा रहा है ${wallet_name} बटुआ";
 }
 
 class $ru extends S {
@@ -1622,7 +1819,8 @@ class $ru extends S {
   @override
   String get hidden_balance => "Скрытый баланс";
   @override
-  String get biometric_auth_reason => "Отсканируйте свой отпечаток пальца для аутентификации";
+  String get biometric_auth_reason =>
+      "Отсканируйте свой отпечаток пальца для аутентификации";
   @override
   String get transaction_sent => "Tранзакция отправлена!";
   @override
@@ -1634,7 +1832,8 @@ class $ru extends S {
   @override
   String get trade_id => "ID сделки:";
   @override
-  String get restore_description_from_seed => "Вы можете восстановить кошелёк используя 25-ти значную мнемоническую фразу";
+  String get restore_description_from_seed =>
+      "Вы можете восстановить кошелёк используя 25-ти значную мнемоническую фразу";
   @override
   String get trade_state_underpaid => "Недоплаченная";
   @override
@@ -1646,7 +1845,8 @@ class $ru extends S {
   @override
   String get send_templates => "Шаблоны";
   @override
-  String get please_try_to_connect_to_another_node => "Пожалуйста, попробуйте подключиться к другой ноде";
+  String get please_try_to_connect_to_another_node =>
+      "Пожалуйста, попробуйте подключиться к другой ноде";
   @override
   String get trade_state_traded => "Сделка завершена";
   @override
@@ -1660,7 +1860,8 @@ class $ru extends S {
   @override
   String get auth_store_banned_minutes => " минут";
   @override
-  String get restore_title_from_seed_keys => "Восстановить из мнемонической фразы/ключей";
+  String get restore_title_from_seed_keys =>
+      "Восстановить из мнемонической фразы/ключей";
   @override
   String get settings_none => "Ничего";
   @override
@@ -1680,7 +1881,8 @@ class $ru extends S {
   @override
   String get receive_amount => "Сумма";
   @override
-  String get settings_allow_biometrical_authentication => "Включить биометрическую аутентификацию";
+  String get settings_allow_biometrical_authentication =>
+      "Включить биометрическую аутентификацию";
   @override
   String get view_key_private => "Приватный ключ просмотра";
   @override
@@ -1690,13 +1892,16 @@ class $ru extends S {
   @override
   String get send_sending => "Отправка...";
   @override
-  String get error_text_address => "Адрес кошелька должен соответствовать типу\nкриптовалюты";
+  String get error_text_address =>
+      "Адрес кошелька должен соответствовать типу\nкриптовалюты";
   @override
   String get send_your_wallet => "Ваш кошелёк";
   @override
-  String get remove_node_message => "Вы уверены, что хотите удалить текущую ноду?";
+  String get remove_node_message =>
+      "Вы уверены, что хотите удалить текущую ноду?";
   @override
-  String get error_text_account_name => "Имя аккаунта может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину";
+  String get error_text_account_name =>
+      "Имя аккаунта может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину";
   @override
   String get reconnection => "Переподключение";
   @override
@@ -1704,7 +1909,8 @@ class $ru extends S {
   @override
   String get restore_title_from_keys => "Восстановить с помощью ключей";
   @override
-  String get seed_language_choose => "Пожалуйста, выберите язык мнемонической фразы:";
+  String get seed_language_choose =>
+      "Пожалуйста, выберите язык мнемонической фразы:";
   @override
   String get wallet_keys => "Ключи кошелька";
   @override
@@ -1716,13 +1922,15 @@ class $ru extends S {
   @override
   String get copy_address => "Cкопировать адрес";
   @override
-  String get error_text_subaddress_name => "Имя субадреса не может содержать ` , ' \" символы\nи должно быть от 1 до 20 символов в длину";
+  String get error_text_subaddress_name =>
+      "Имя субадреса не может содержать ` , ' \" символы\nи должно быть от 1 до 20 символов в длину";
   @override
   String get incorrect_seed => "Введённый текст некорректный.";
   @override
   String get settings_all => "ВСЕ";
   @override
-  String get nodes_list_reset_to_default_message => "Вы уверены, что хотите сбросить настройки до значений по умолчанию?";
+  String get nodes_list_reset_to_default_message =>
+      "Вы уверены, что хотите сбросить настройки до значений по умолчанию?";
   @override
   String get receive => "Получить";
   @override
@@ -1738,7 +1946,8 @@ class $ru extends S {
   @override
   String get settings_display_balance_as => "Отображать баланс как";
   @override
-  String get placeholder_transactions => "Ваши транзакции будут отображаться здесь";
+  String get placeholder_transactions =>
+      "Ваши транзакции будут отображаться здесь";
   @override
   String get trade_details_provider => "Провайдер";
   @override
@@ -1760,9 +1969,13 @@ class $ru extends S {
   @override
   String get settings_title => "Настройки";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "Вы можете восстановить кошелёк используя 12-ти значную мнемоническую фразу";
+  @override
   String get address_book_menu => "Адресная книга";
   @override
-  String get wallet_restoration_store_incorrect_seed_length => "Неверная длина мнемонической фразы";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "Неверная длина мнемонической фразы";
   @override
   String get seed_language_spanish => "Испанский";
   @override
@@ -1790,11 +2003,14 @@ class $ru extends S {
   @override
   String get sync_status_not_connected => "НЕ ПОДКЛЮЧЁН";
   @override
-  String get error_text_crypto_currency => "Количество цифр после запятой\nдолжно быть меньше или равно 12";
+  String get error_text_crypto_currency =>
+      "Количество цифр после запятой\nдолжно быть меньше или равно 12";
   @override
-  String get error_text_contact_name => "Имя контакта не может содержать ` , ' \" символы\n и должно быть от 1 до 32 символов в длину";
+  String get error_text_contact_name =>
+      "Имя контакта не может содержать ` , ' \" символы\n и должно быть от 1 до 32 символов в длину";
   @override
-  String get restore_seed_keys_restore => "Восстановить из мнемонической фразы/ключей";
+  String get restore_seed_keys_restore =>
+      "Восстановить из мнемонической фразы/ключей";
   @override
   String get xmr_hidden => "XMR Скрыто";
   @override
@@ -1854,7 +2070,8 @@ class $ru extends S {
   @override
   String get copy_id => "Скопировать ID";
   @override
-  String get please_make_selection => "Выберите способ создания кошелька: создать новый или восстановить ваш существующий.";
+  String get please_make_selection =>
+      "Выберите способ создания кошелька: создать новый или восстановить ваш существующий.";
   @override
   String get loading_your_wallet => "Загрузка кошелька";
   @override
@@ -1864,7 +2081,8 @@ class $ru extends S {
   @override
   String get nodes => "Ноды";
   @override
-  String get error_text_template => "Имя и адрес шаблона не может содержать ` , ' \" символы\nи должно быть от 1 до 106 символов в длину";
+  String get error_text_template =>
+      "Имя и адрес шаблона не может содержать ` , ' \" символы\nи должно быть от 1 до 106 символов в длину";
   @override
   String get seed_share => "Поделиться мнемонической фразой";
   @override
@@ -1890,10 +2108,16 @@ class $ru extends S {
   @override
   String get trade_state_complete => "Выполнена";
   @override
-  String get error_text_xmr => "Значение XMR не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 12";
+  String get error_text_xmr =>
+      "Значение XMR не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 12";
   @override
   String get xmr_available_balance => "Доступный XMR баланс";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "Вы можете восстановить кошелёк с помощью WIF";
+  @override
+  String get restore_bitcoin_title_from_keys => "Восстановить с помощью WIF";
+  @override
   String get scan_qr_code => "Отсканируйте QR-код для получения адреса";
   @override
   String get trade_state_paid => "Оплаченная";
@@ -1918,7 +2142,8 @@ class $ru extends S {
   @override
   String get wallet_name => "Имя кошелька";
   @override
-  String get error_text_payment_id => "Идентификатор платежа может содержать от 16 до 64 символов в hex";
+  String get error_text_payment_id =>
+      "Идентификатор платежа может содержать от 16 до 64 символов в hex";
   @override
   String get node_reset_settings_title => "Сбросить настройки";
   @override
@@ -1940,7 +2165,8 @@ class $ru extends S {
   @override
   String get new_wallet => "Новый кошелёк";
   @override
-  String get settings_display_on_dashboard_list => "Показывать в списке транзакций";
+  String get settings_display_on_dashboard_list =>
+      "Показывать в списке транзакций";
   @override
   String get transaction_details_title => "Детали транзакции";
   @override
@@ -1970,7 +2196,8 @@ class $ru extends S {
   @override
   String get seed_language_dutch => "Нидерландский";
   @override
-  String get restore_description_from_seed_keys => "Вы можете восстановить кошелёк из мнемонической фразы/ключей, которые вы сохранили ранее";
+  String get restore_description_from_seed_keys =>
+      "Вы можете восстановить кошелёк из мнемонической фразы/ключей, которые вы сохранили ранее";
   @override
   String get copy => "Скопировать";
   @override
@@ -1986,9 +2213,11 @@ class $ru extends S {
   @override
   String get contact_name => "Имя контакта";
   @override
-  String get exchange_result_write_down_ID => "*Пожалуйста, скопируйте или запишите ID, указанный выше.";
+  String get exchange_result_write_down_ID =>
+      "*Пожалуйста, скопируйте или запишите ID, указанный выше.";
   @override
-  String get exchange_result_write_down_trade_id => "Пожалуйста, скопируйте или запишите ID сделки.";
+  String get exchange_result_write_down_trade_id =>
+      "Пожалуйста, скопируйте или запишите ID сделки.";
   @override
   String get new_subaddress_title => "Новый субадрес";
   @override
@@ -2000,7 +2229,8 @@ class $ru extends S {
   @override
   String get trade_not_created => "Сделка не создана.";
   @override
-  String get confirm_delete_wallet => "Это действие удалит кошелек. Вы хотите продолжить?";
+  String get confirm_delete_wallet =>
+      "Это действие удалит кошелек. Вы хотите продолжить?";
   @override
   String get restore_wallet_name => "Имя кошелька";
   @override
@@ -2010,7 +2240,8 @@ class $ru extends S {
   @override
   String get rename => "Переименовать";
   @override
-  String get confirm_delete_template => "Это действие удалит шаблон. Вы хотите продолжить?";
+  String get confirm_delete_template =>
+      "Это действие удалит шаблон. Вы хотите продолжить?";
   @override
   String get restore_active_seed => "Активная мнемоническая фраза";
   @override
@@ -2026,13 +2257,15 @@ class $ru extends S {
   @override
   String get show_keys => "Показать ключи";
   @override
-  String get error_text_fiat => "Значение суммы не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 2";
+  String get error_text_fiat =>
+      "Значение суммы не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 2";
   @override
   String get addresses => "Адреса";
   @override
   String get transactions_by_date => "Сортировать по дате";
   @override
-  String get restore_from_seed_placeholder => "Введите или вставьте мнемоническую фразу вашего кошелька";
+  String get restore_from_seed_placeholder =>
+      "Введите или вставьте мнемоническую фразу вашего кошелька";
   @override
   String get use => "Использовать ";
   @override
@@ -2058,9 +2291,11 @@ class $ru extends S {
   @override
   String get address_remove_contact => "Удалить контакт";
   @override
-  String get error_text_wallet_name => "Имя кошелька может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину";
+  String get error_text_wallet_name =>
+      "Имя кошелька может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину";
   @override
-  String get restore_description_from_keys => "Вы можете восстановить кошелёк с помощью приватных ключей";
+  String get restore_description_from_keys =>
+      "Вы можете восстановить кошелёк с помощью приватных ключей";
   @override
   String get seed_language_next => "Продолжить";
   @override
@@ -2076,7 +2311,8 @@ class $ru extends S {
   @override
   String get send_title => "Отправить";
   @override
-  String get error_text_keys => "Ключи кошелька могут содержать только 64 символа в hex";
+  String get error_text_keys =>
+      "Ключи кошелька могут содержать только 64 символа в hex";
   @override
   String get settings_save_recipient_address => "Сохранять адрес получателя";
   @override
@@ -2118,7 +2354,8 @@ class $ru extends S {
   @override
   String get restore_address => "Адрес";
   @override
-  String get restore_wallet_restore_description => "Описание восстановления кошелька";
+  String get restore_wallet_restore_description =>
+      "Описание восстановления кошелька";
   @override
   String get today => "Сегодня";
   @override
@@ -2128,7 +2365,8 @@ class $ru extends S {
   @override
   String get ok => "OK";
   @override
-  String get address_remove_content => "Вы уверены, что хотите удалить выбранный контакт?";
+  String get address_remove_content =>
+      "Вы уверены, что хотите удалить выбранный контакт?";
   @override
   String get wallet_list_title => "Monero Кошелёк";
   @override
@@ -2156,9 +2394,11 @@ class $ru extends S {
   @override
   String get restore_title_from_seed => "Восстановить из мнемонической фразы";
   @override
-  String get restore_description_from_backup => "Вы можете восстановить Cake Wallet из вашего back-up файла";
+  String get restore_description_from_backup =>
+      "Вы можете восстановить Cake Wallet из вашего back-up файла";
   @override
-  String get error_text_node_port => "Порт ноды может содержать только цифры от 0 до 65535";
+  String get error_text_node_port =>
+      "Порт ноды может содержать только цифры от 0 до 65535";
   @override
   String get add_new_word => "Добавить новое слово";
   @override
@@ -2166,7 +2406,8 @@ class $ru extends S {
   @override
   String get digit_pin => "-значный PIN";
   @override
-  String get first_wallet_text => "В самом удобном кошельке для Monero";
+  String get first_wallet_text =>
+      "В самом удобном кошельке для Monero и Bitcoin";
   @override
   String get settings_trades => "Сделки";
   @override
@@ -2174,61 +2415,86 @@ class $ru extends S {
   @override
   String change_language_to(String language) => "Изменить язык на ${language}?";
   @override
-  String change_current_node(String node) => "Вы уверены, что хотите изменить текущую ноду на ${node}?";
+  String change_current_node(String node) =>
+      "Вы уверены, что хотите изменить текущую ноду на ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "Загрузка ${wallet_name} кошелька";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "Загрузка ${wallet_name} кошелька";
   @override
   String version(String currentVersion) => "Версия ${currentVersion}";
   @override
   String router_no_route(String name) => "Не установлен маршрут для ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "Сделка для ${provider} не создана. Сумма меньше минимальной: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "Сделка для ${provider} не создана. Сумма меньше минимальной: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "Сделка ${tradeId} ${title} не найдена.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "Сделка ${tradeId} ${title} не найдена.";
   @override
-  String transaction_details_copied(String title) => "${title} скопировано в буфер обмена";
+  String transaction_details_copied(String title) =>
+      "${title} скопировано в буфер обмена";
   @override
-  String trade_details_copied(String title) => "${title} скопировано в буфер обмена";
+  String trade_details_copied(String title) =>
+      "${title} скопировано в буфер обмена";
   @override
   String powered_by(String title) => "Используя ${title}";
   @override
-  String send_priority(String transactionPriority) => "Комиссия установлена в зависимости от приоритета: ${transactionPriority}.\nПриоритет транзакции может быть изменён в настройках";
+  String send_priority(String transactionPriority) =>
+      "Комиссия установлена в зависимости от приоритета: ${transactionPriority}.\nПриоритет транзакции может быть изменён в настройках";
   @override
-  String trade_for_not_created(String title) => "Сделка для ${title} не создана.";
+  String trade_for_not_created(String title) =>
+      "Сделка для ${title} не создана.";
   @override
-  String trade_is_powered_by(String provider) => "Сделка выполнена через ${provider}";
+  String trade_is_powered_by(String provider) =>
+      "Сделка выполнена через ${provider}";
   @override
   String time(String minutes, String seconds) => "${minutes}мин ${seconds}сек";
   @override
-  String max_value(String value, String currency) => "Макс: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "Макс: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "Сделка для ${provider} не создана. Сумма больше максимальной: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "Сделка для ${provider} не создана. Сумма больше максимальной: ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "${cryptoCurrency} адрес";
   @override
-  String min_value(String value, String currency) => "Мин: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "Мин: ${value} ${currency}";
   @override
-  String failed_authentication(String state_error) => "Ошибка аутентификации. ${state_error}";
+  String failed_authentication(String state_error) =>
+      "Ошибка аутентификации. ${state_error}";
   @override
   String Blocks_remaining(String status) => "${status} Осталось блоков";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный выше. Или вы можете отправить со своего внешнего кошелька на вышеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный выше. Или вы можете отправить со своего внешнего кошелька на вышеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы.";
   @override
-  String error_text_limits_loading_failed(String provider) => "Сделка для ${provider} не создана. Ошибка загрузки лимитов";
+  String error_text_limits_loading_failed(String provider) =>
+      "Сделка для ${provider} не создана. Ошибка загрузки лимитов";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "Пожалуйста отправьте ${fetchingLabel} ${from} на адрес, указанный выше.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "Пожалуйста отправьте ${fetchingLabel} ${from} на адрес, указанный выше.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "Вы будете отправлять средства\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "Вы будете отправлять средства\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "Ошибка при удалении ${wallet_name} кошелька. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "Ошибка при удалении ${wallet_name} кошелька. ${error}";
   @override
-  String copied_key_to_clipboard(String key) => "Скопировано ${key} в буфер обмена";
+  String copied_key_to_clipboard(String key) =>
+      "Скопировано ${key} в буфер обмена";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "Ошибка при загрузке ${wallet_name} кошелька. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "Ошибка при загрузке ${wallet_name} кошелька. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "Удаление ${wallet_name} кошелька";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "Удаление ${wallet_name} кошелька";
 }
 
 class $ko extends S {
@@ -2266,7 +2532,8 @@ class $ko extends S {
   @override
   String get trade_id => "무역 ID:";
   @override
-  String get restore_description_from_seed => "25 단어 또는 13 단어 조합 코드에서 지갑을 복원하십시오.";
+  String get restore_description_from_seed =>
+      "25 단어 또는 13 단어 조합 코드에서 지갑을 복원하십시오.";
   @override
   String get trade_state_underpaid => "미지급";
   @override
@@ -2328,7 +2595,8 @@ class $ko extends S {
   @override
   String get remove_node_message => "선택한 노드를 제거 하시겠습니까?";
   @override
-  String get error_text_account_name => "계정 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다";
+  String get error_text_account_name =>
+      "계정 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다";
   @override
   String get reconnection => "재 연결";
   @override
@@ -2348,7 +2616,8 @@ class $ko extends S {
   @override
   String get copy_address => "주소 복사";
   @override
-  String get error_text_subaddress_name => "하위 주소 이름은 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 20 자 사이 여야합니다";
+  String get error_text_subaddress_name =>
+      "하위 주소 이름은 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 20 자 사이 여야합니다";
   @override
   String get incorrect_seed => "입력하신 텍스트가 유효하지 않습니다.";
   @override
@@ -2392,6 +2661,8 @@ class $ko extends S {
   @override
   String get settings_title => "설정";
   @override
+  String get restore_bitcoin_description_from_seed => "12 단어 조합 코드에서 지갑 복원";
+  @override
   String get address_book_menu => "주소록";
   @override
   String get wallet_restoration_store_incorrect_seed_length => "시드 길이가 잘못되었습니다";
@@ -2424,7 +2695,8 @@ class $ko extends S {
   @override
   String get error_text_crypto_currency => "소수 자릿수\n12 이하 여야합니다";
   @override
-  String get error_text_contact_name => "담당자 이름은 포함 할 수 없습니다 ` , ' \" 기호\n1 자에서 32 자 사이 여야합니다";
+  String get error_text_contact_name =>
+      "담당자 이름은 포함 할 수 없습니다 ` , ' \" 기호\n1 자에서 32 자 사이 여야합니다";
   @override
   String get restore_seed_keys_restore => "종자 / 키 복원";
   @override
@@ -2496,7 +2768,8 @@ class $ko extends S {
   @override
   String get nodes => "노드";
   @override
-  String get error_text_template => "템플릿 이름과 주소는 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 106 자 사이 여야합니다";
+  String get error_text_template =>
+      "템플릿 이름과 주소는 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 106 자 사이 여야합니다";
   @override
   String get seed_share => "시드 공유";
   @override
@@ -2522,10 +2795,16 @@ class $ko extends S {
   @override
   String get trade_state_complete => "완전한";
   @override
-  String get error_text_xmr => "XMR 값은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 12 이하 여야합니다";
+  String get error_text_xmr =>
+      "XMR 값은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 12 이하 여야합니다";
   @override
   String get xmr_available_balance => "XMR 사용 가능한 잔액";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "개인 키에서 생성 된 WIF 문자열에서 지갑 복원";
+  @override
+  String get restore_bitcoin_title_from_keys => "WIF에서 복원";
+  @override
   String get scan_qr_code => "QR 코드를 스캔하여 주소를 얻습니다.";
   @override
   String get trade_state_paid => "유료";
@@ -2602,7 +2881,8 @@ class $ko extends S {
   @override
   String get seed_language_dutch => "네덜란드 사람";
   @override
-  String get restore_description_from_seed_keys => "안전한 장소에 저장 한 종자 / 키로 지갑을 되 찾으십시오.";
+  String get restore_description_from_seed_keys =>
+      "안전한 장소에 저장 한 종자 / 키로 지갑을 되 찾으십시오.";
   @override
   String get copy => "부";
   @override
@@ -2620,7 +2900,8 @@ class $ko extends S {
   @override
   String get exchange_result_write_down_ID => "*위에 표시된 ID를 복사하거나 적어 두십시오.";
   @override
-  String get exchange_result_write_down_trade_id => "계속하려면 거래 ID를 복사하거나 적어 두십시오..";
+  String get exchange_result_write_down_trade_id =>
+      "계속하려면 거래 ID를 복사하거나 적어 두십시오..";
   @override
   String get new_subaddress_title => "새로운 하위 주소";
   @override
@@ -2658,7 +2939,8 @@ class $ko extends S {
   @override
   String get show_keys => "키 표시";
   @override
-  String get error_text_fiat => "금액은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 2보다 작거나 같아야합니다";
+  String get error_text_fiat =>
+      "금액은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 2보다 작거나 같아야합니다";
   @override
   String get addresses => "구애";
   @override
@@ -2690,7 +2972,8 @@ class $ko extends S {
   @override
   String get address_remove_contact => "연락처 삭제";
   @override
-  String get error_text_wallet_name => "지갑 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다";
+  String get error_text_wallet_name =>
+      "지갑 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다";
   @override
   String get restore_description_from_keys => "개인 키에서 저장된 생성 된 키 스트로크에서 월렛 복원";
   @override
@@ -2788,7 +3071,8 @@ class $ko extends S {
   @override
   String get restore_title_from_seed => "종자에서 복원";
   @override
-  String get restore_description_from_backup => "백업 파일에서 전체 Cake Wallet 앱을 복원 할 수 있습니다.";
+  String get restore_description_from_backup =>
+      "백업 파일에서 전체 Cake Wallet 앱을 복원 할 수 있습니다.";
   @override
   String get error_text_node_port => "노드 포트는 0에서 65535 사이의 숫자 만 포함 할 수 있습니다";
   @override
@@ -2798,7 +3082,7 @@ class $ko extends S {
   @override
   String get digit_pin => "숫자 PIN";
   @override
-  String get first_wallet_text => "멋진 지갑 에 대한 Monero";
+  String get first_wallet_text => "멋진 지갑 에 대한 Monero 과 Bitcoin";
   @override
   String get settings_trades => "거래";
   @override
@@ -2808,15 +3092,19 @@ class $ko extends S {
   @override
   String change_current_node(String node) => "현재 노드를 다음으로 변경 하시겠습니까 ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "로딩 ${wallet_name} 지갑";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "로딩 ${wallet_name} 지갑";
   @override
   String version(String currentVersion) => "버전 ${currentVersion}";
   @override
   String router_no_route(String name) => "에 정의 된 경로가 없습니다 ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "거래 ${provider} 가 생성되지 않습니다. 금액이 최소보다 적습니다. ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "거래 ${provider} 가 생성되지 않습니다. 금액이 최소보다 적습니다. ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "무역 ${tradeId} 의 ${title} 찾을 수 없습니다.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "무역 ${tradeId} 의 ${title} 찾을 수 없습니다.";
   @override
   String transaction_details_copied(String title) => "${title} 클립 보드에 복사";
   @override
@@ -2824,7 +3112,8 @@ class $ko extends S {
   @override
   String powered_by(String title) => "에 의해 구동 ${title}";
   @override
-  String send_priority(String transactionPriority) => "현재 수수료는 ${transactionPriority} 우선 순위.\n거래 우선 순위는 설정에서 조정할 수 있습니다";
+  String send_priority(String transactionPriority) =>
+      "현재 수수료는 ${transactionPriority} 우선 순위.\n거래 우선 순위는 설정에서 조정할 수 있습니다";
   @override
   String trade_for_not_created(String title) => "거래 ${title} 생성되지 않습니다.";
   @override
@@ -2834,7 +3123,9 @@ class $ko extends S {
   @override
   String max_value(String value, String currency) => "맥스: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "거래 ${provider} 가 생성되지 않습니다. 금액이 최대 값보다 많습니다. ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "거래 ${provider} 가 생성되지 않습니다. 금액이 최대 값보다 많습니다. ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "${cryptoCurrency} 주소";
   @override
@@ -2844,23 +3135,32 @@ class $ko extends S {
   @override
   String Blocks_remaining(String status) => "${status} 남은 블록";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 위에 표시된 주소로. 또는 외부 지갑에서 위의 주소 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 위에 표시된 주소로. 또는 외부 지갑에서 위의 주소 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오.";
   @override
-  String error_text_limits_loading_failed(String provider) => "거래 ${provider} 가 생성되지 않습니다. 로딩 실패";
+  String error_text_limits_loading_failed(String provider) =>
+      "거래 ${provider} 가 생성되지 않습니다. 로딩 실패";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "보내주세요 ${fetchingLabel} ${from} 위에 표시된 주소로.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "보내주세요 ${fetchingLabel} ${from} 위에 표시된 주소로.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "커밋 거래\n양: ${amount}\n보수: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "커밋 거래\n양: ${amount}\n보수: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "당신은에 자금을 보낼 것입니다\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "당신은에 자금을 보낼 것입니다\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "제거하지 못했습니다 ${wallet_name} 지갑. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "제거하지 못했습니다 ${wallet_name} 지갑. ${error}";
   @override
   String copied_key_to_clipboard(String key) => "복사 ${key} 클립 보드로";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "불러 오지 못했습니다 ${wallet_name} 지갑. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "불러 오지 못했습니다 ${wallet_name} 지갑. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "풀이 ${wallet_name} 지갑";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "풀이 ${wallet_name} 지갑";
 }
 
 class $pt extends S {
@@ -2886,7 +3186,8 @@ class $pt extends S {
   @override
   String get hidden_balance => "Saldo escondido";
   @override
-  String get biometric_auth_reason => "Digitalize sua impressão digital para autenticar";
+  String get biometric_auth_reason =>
+      "Digitalize sua impressão digital para autenticar";
   @override
   String get transaction_sent => "Transação enviada!";
   @override
@@ -2898,7 +3199,8 @@ class $pt extends S {
   @override
   String get trade_id => "ID da troca:";
   @override
-  String get restore_description_from_seed => "Restaure sua carteira a partir de semente com 25 palavras ou 13 palavras";
+  String get restore_description_from_seed =>
+      "Restaure sua carteira a partir de semente com 25 palavras ou 13 palavras";
   @override
   String get trade_state_underpaid => "Parcialmente paga";
   @override
@@ -2910,7 +3212,8 @@ class $pt extends S {
   @override
   String get send_templates => "Modelos";
   @override
-  String get please_try_to_connect_to_another_node => "Por favor, tente conectar-se a outro nó";
+  String get please_try_to_connect_to_another_node =>
+      "Por favor, tente conectar-se a outro nó";
   @override
   String get trade_state_traded => "Troca realizada";
   @override
@@ -2924,7 +3227,8 @@ class $pt extends S {
   @override
   String get auth_store_banned_minutes => " minutos";
   @override
-  String get restore_title_from_seed_keys => "Restaurar a partir de sementes/chaves";
+  String get restore_title_from_seed_keys =>
+      "Restaurar a partir de sementes/chaves";
   @override
   String get settings_none => "Nada";
   @override
@@ -2940,11 +3244,13 @@ class $pt extends S {
   @override
   String get setup_pin => "Configurar PIN";
   @override
-  String get transaction_details_recipient_address => "Endereço do destinatário";
+  String get transaction_details_recipient_address =>
+      "Endereço do destinatário";
   @override
   String get receive_amount => "Quantia";
   @override
-  String get settings_allow_biometrical_authentication => "Permitir autenticação biométrica";
+  String get settings_allow_biometrical_authentication =>
+      "Permitir autenticação biométrica";
   @override
   String get view_key_private => "Chave de visualização (privada)";
   @override
@@ -2954,13 +3260,16 @@ class $pt extends S {
   @override
   String get send_sending => "Enviando...";
   @override
-  String get error_text_address => "O endereço da carteira deve corresponder à\ncriptomoeda selecionada";
+  String get error_text_address =>
+      "O endereço da carteira deve corresponder à\ncriptomoeda selecionada";
   @override
   String get send_your_wallet => "Sua carteira";
   @override
-  String get remove_node_message => "Você realmente deseja remover o nó selecionado?";
+  String get remove_node_message =>
+      "Você realmente deseja remover o nó selecionado?";
   @override
-  String get error_text_account_name => "O nome da conta só pode conter letras, números\ne deve ter entre 1 e 15 caracteres";
+  String get error_text_account_name =>
+      "O nome da conta só pode conter letras, números\ne deve ter entre 1 e 15 caracteres";
   @override
   String get reconnection => "Reconectar";
   @override
@@ -2974,23 +3283,27 @@ class $pt extends S {
   @override
   String get reconnect => "Reconectar";
   @override
-  String get reconnect_alert_text => "Você tem certeza de que deseja reconectar?";
+  String get reconnect_alert_text =>
+      "Você tem certeza de que deseja reconectar?";
   @override
   String get send_error_minimum_value => "O valor mínimo da quantia é 0,01";
   @override
   String get copy_address => "Copiar endereço";
   @override
-  String get error_text_subaddress_name => "O nome do sub-endereço não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 20 caracteres";
+  String get error_text_subaddress_name =>
+      "O nome do sub-endereço não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 20 caracteres";
   @override
   String get incorrect_seed => "O texto digitado não é válido.";
   @override
   String get settings_all => "Tudo";
   @override
-  String get nodes_list_reset_to_default_message => "Você realmente deseja redefinir as configurações para o padrão?";
+  String get nodes_list_reset_to_default_message =>
+      "Você realmente deseja redefinir as configurações para o padrão?";
   @override
   String get receive => "Receber";
   @override
-  String get amount_is_guaranteed => "Você receberá exatamente o valor informado acima";
+  String get amount_is_guaranteed =>
+      "Você receberá exatamente o valor informado acima";
   @override
   String get auth_store_banned_for => "Banido por";
   @override
@@ -3024,9 +3337,13 @@ class $pt extends S {
   @override
   String get settings_title => "Configurações";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "Restaure sua carteira a partir de um código de combinação de 12 palavras";
+  @override
   String get address_book_menu => "Livro de endereços";
   @override
-  String get wallet_restoration_store_incorrect_seed_length => "Comprimento de semente incorreto";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "Comprimento de semente incorreto";
   @override
   String get seed_language_spanish => "Espanhola";
   @override
@@ -3048,15 +3365,18 @@ class $pt extends S {
   @override
   String get please_select => "Escolha abaixo:";
   @override
-  String get restore_title_from_backup => "Restaurar a partir de um arquivo de backup";
+  String get restore_title_from_backup =>
+      "Restaurar a partir de um arquivo de backup";
   @override
   String get full_balance => "Saldo total";
   @override
   String get sync_status_not_connected => "DESCONECTADO";
   @override
-  String get error_text_crypto_currency => "O número de dígitos decimais\ndeve ser menor ou igual a 12";
+  String get error_text_crypto_currency =>
+      "O número de dígitos decimais\ndeve ser menor ou igual a 12";
   @override
-  String get error_text_contact_name => "O nome do contato não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 32 caracteres";
+  String get error_text_contact_name =>
+      "O nome do contato não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 32 caracteres";
   @override
   String get restore_seed_keys_restore => "Restauração com sementes/chaves";
   @override
@@ -3118,7 +3438,8 @@ class $pt extends S {
   @override
   String get copy_id => "Copiar ID";
   @override
-  String get please_make_selection => "Escolha se quer criar uma carteira nova ou restaurar uma antiga.";
+  String get please_make_selection =>
+      "Escolha se quer criar uma carteira nova ou restaurar uma antiga.";
   @override
   String get loading_your_wallet => "Abrindo sua carteira";
   @override
@@ -3128,11 +3449,13 @@ class $pt extends S {
   @override
   String get nodes => "Nós";
   @override
-  String get error_text_template => "O nome e o endereço do modelo não podem conter os símbolos ` , ' \" \ne deve ter entre 1 e 106 caracteres";
+  String get error_text_template =>
+      "O nome e o endereço do modelo não podem conter os símbolos ` , ' \" \ne deve ter entre 1 e 106 caracteres";
   @override
   String get seed_share => "Compartilhar semente";
   @override
-  String get widgets_restore_from_blockheight => "Restaurar a partir de altura do bloco";
+  String get widgets_restore_from_blockheight =>
+      "Restaurar a partir de altura do bloco";
   @override
   String get seed_language_chinese => "Chinesa";
   @override
@@ -3154,10 +3477,16 @@ class $pt extends S {
   @override
   String get trade_state_complete => "Finalizada";
   @override
-  String get error_text_xmr => "A quantia em XMR não pode exceder o saldo disponível.\nTO número de dígitos decimais deve ser menor ou igual a 12";
+  String get error_text_xmr =>
+      "A quantia em XMR não pode exceder o saldo disponível.\nTO número de dígitos decimais deve ser menor ou igual a 12";
   @override
   String get xmr_available_balance => "Saldo XMR disponível";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "Restaure sua carteira a partir da string WIF gerada de suas chaves privadas";
+  @override
+  String get restore_bitcoin_title_from_keys => "Restaurar de WIF";
+  @override
   String get scan_qr_code => "Digitalize o código QR para obter o endereço";
   @override
   String get trade_state_paid => "Paga";
@@ -3182,7 +3511,8 @@ class $pt extends S {
   @override
   String get wallet_name => "Nome da carteira";
   @override
-  String get error_text_payment_id => "O ID de pagamento pode conter apenas de 16 a 64 caracteres em hexadecimal";
+  String get error_text_payment_id =>
+      "O ID de pagamento pode conter apenas de 16 a 64 caracteres em hexadecimal";
   @override
   String get node_reset_settings_title => "Redefinir configurações";
   @override
@@ -3192,7 +3522,8 @@ class $pt extends S {
   @override
   String get transactions => "Transações";
   @override
-  String get amount_is_estimate => "O valor a ser recebido informado acima é uma estimativa";
+  String get amount_is_estimate =>
+      "O valor a ser recebido informado acima é uma estimativa";
   @override
   String get error_text_node_address => "Digite um endereço iPv4";
   @override
@@ -3234,7 +3565,8 @@ class $pt extends S {
   @override
   String get seed_language_dutch => "Holandesa";
   @override
-  String get restore_description_from_seed_keys => "Restaure a sua carteira a partir de sementes/chaves que você salvou em um local seguro";
+  String get restore_description_from_seed_keys =>
+      "Restaure a sua carteira a partir de sementes/chaves que você salvou em um local seguro";
   @override
   String get copy => "Copiar";
   @override
@@ -3250,9 +3582,11 @@ class $pt extends S {
   @override
   String get contact_name => "Nome do contato";
   @override
-  String get exchange_result_write_down_ID => "*Copie ou anote seu ID mostrado acima.";
+  String get exchange_result_write_down_ID =>
+      "*Copie ou anote seu ID mostrado acima.";
   @override
-  String get exchange_result_write_down_trade_id => "Copie ou anote o ID da troca para continuar.";
+  String get exchange_result_write_down_trade_id =>
+      "Copie ou anote o ID da troca para continuar.";
   @override
   String get new_subaddress_title => "Criar sub-endereço";
   @override
@@ -3264,7 +3598,8 @@ class $pt extends S {
   @override
   String get trade_not_created => "Troca não criada.";
   @override
-  String get confirm_delete_wallet => "Esta ação excluirá esta carteira. Você deseja continuar?";
+  String get confirm_delete_wallet =>
+      "Esta ação excluirá esta carteira. Você deseja continuar?";
   @override
   String get restore_wallet_name => "Nome da carteira";
   @override
@@ -3274,7 +3609,8 @@ class $pt extends S {
   @override
   String get rename => "Renomear";
   @override
-  String get confirm_delete_template => "Esta ação excluirá este modelo. Você deseja continuar?";
+  String get confirm_delete_template =>
+      "Esta ação excluirá este modelo. Você deseja continuar?";
   @override
   String get restore_active_seed => "Semente ativa";
   @override
@@ -3290,13 +3626,15 @@ class $pt extends S {
   @override
   String get show_keys => "Mostrar chaves";
   @override
-  String get error_text_fiat => "O valor do valor não pode exceder o saldo disponível.\nO número de dígitos decimais deve ser menor ou igual a 2";
+  String get error_text_fiat =>
+      "O valor do valor não pode exceder o saldo disponível.\nO número de dígitos decimais deve ser menor ou igual a 2";
   @override
   String get addresses => "Endereços";
   @override
   String get transactions_by_date => "Transações por data";
   @override
-  String get restore_from_seed_placeholder => "Digite ou cole sua frase de código aqui";
+  String get restore_from_seed_placeholder =>
+      "Digite ou cole sua frase de código aqui";
   @override
   String get use => "Use PIN de ";
   @override
@@ -3322,9 +3660,11 @@ class $pt extends S {
   @override
   String get address_remove_contact => "Remover contato";
   @override
-  String get error_text_wallet_name => "O nome da carteira só pode conter letras, números\ne deve ter entre 1 e 15 caracteres";
+  String get error_text_wallet_name =>
+      "O nome da carteira só pode conter letras, números\ne deve ter entre 1 e 15 caracteres";
   @override
-  String get restore_description_from_keys => "Restaure sua carteira a partir de suas chaves privadas";
+  String get restore_description_from_keys =>
+      "Restaure sua carteira a partir de suas chaves privadas";
   @override
   String get seed_language_next => "Próximo";
   @override
@@ -3340,9 +3680,11 @@ class $pt extends S {
   @override
   String get send_title => "Enviar";
   @override
-  String get error_text_keys => "As chaves da carteira podem conter apenas 64 caracteres em hexadecimal";
+  String get error_text_keys =>
+      "As chaves da carteira podem conter apenas 64 caracteres em hexadecimal";
   @override
-  String get settings_save_recipient_address => "Salvar endereço do destinatário";
+  String get settings_save_recipient_address =>
+      "Salvar endereço do destinatário";
   @override
   String get change_exchange_provider => "Alterar o provedor de troca";
   @override
@@ -3392,7 +3734,8 @@ class $pt extends S {
   @override
   String get ok => "Ok";
   @override
-  String get address_remove_content => "Tem certeza de que deseja remover o contato selecionado?";
+  String get address_remove_content =>
+      "Tem certeza de que deseja remover o contato selecionado?";
   @override
   String get wallet_list_title => "Carteira Monero";
   @override
@@ -3420,9 +3763,11 @@ class $pt extends S {
   @override
   String get restore_title_from_seed => "Restaurar a partir de semente";
   @override
-  String get restore_description_from_backup => "Você pode restaurar todo o aplicativo Cake Wallet de seu arquivo de backup";
+  String get restore_description_from_backup =>
+      "Você pode restaurar todo o aplicativo Cake Wallet de seu arquivo de backup";
   @override
-  String get error_text_node_port => "A porta do nó deve conter apenas números entre 0 e 65535";
+  String get error_text_node_port =>
+      "A porta do nó deve conter apenas números entre 0 e 65535";
   @override
   String get add_new_word => "Adicionar nova palavra";
   @override
@@ -3430,69 +3775,96 @@ class $pt extends S {
   @override
   String get digit_pin => "dígitos";
   @override
-  String get first_wallet_text => "Uma fantástica carteira para Monero";
+  String get first_wallet_text =>
+      "Uma fantástica carteira para Monero e Bitcoin";
   @override
   String get settings_trades => "Trocas";
   @override
   String get account => "Conta";
   @override
-  String change_language_to(String language) => "Alterar idioma para ${language}?";
+  String change_language_to(String language) =>
+      "Alterar idioma para ${language}?";
   @override
-  String change_current_node(String node) => "Você realmente deseja alterar o nó atual para ${node}?";
+  String change_current_node(String node) =>
+      "Você realmente deseja alterar o nó atual para ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "Abrindo a carteira ${wallet_name}";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "Abrindo a carteira ${wallet_name}";
   @override
   String version(String currentVersion) => "Versão ${currentVersion}";
   @override
   String router_no_route(String name) => "Nenhuma rota definida para ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "A troca por ${provider} não é criada. O valor é menor que o mínimo: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "A troca por ${provider} não é criada. O valor é menor que o mínimo: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "A troca ${tradeId} de ${title} não foi encontrada.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "A troca ${tradeId} de ${title} não foi encontrada.";
   @override
-  String transaction_details_copied(String title) => "${title} copiados para a área de transferência";
+  String transaction_details_copied(String title) =>
+      "${title} copiados para a área de transferência";
   @override
-  String trade_details_copied(String title) => "${title} copiados para a área de transferência";
+  String trade_details_copied(String title) =>
+      "${title} copiados para a área de transferência";
   @override
   String powered_by(String title) => "Troca realizada por ${title}";
   @override
-  String send_priority(String transactionPriority) => "Atualmente, a taxa está definida para a prioridade: ${transactionPriority}.\nA prioridade da transação pode ser ajustada nas configurações";
+  String send_priority(String transactionPriority) =>
+      "Atualmente, a taxa está definida para a prioridade: ${transactionPriority}.\nA prioridade da transação pode ser ajustada nas configurações";
   @override
-  String trade_for_not_created(String title) => "A troca por ${title} não foi criada.";
+  String trade_for_not_created(String title) =>
+      "A troca por ${title} não foi criada.";
   @override
-  String trade_is_powered_by(String provider) => "Troca realizada por ${provider}";
+  String trade_is_powered_by(String provider) =>
+      "Troca realizada por ${provider}";
   @override
   String time(String minutes, String seconds) => "${minutes}m ${seconds}s";
   @override
-  String max_value(String value, String currency) => "Máx: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "Máx: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "A troca por ${provider} não é criada. O valor é superior ao máximo: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "A troca por ${provider} não é criada. O valor é superior ao máximo: ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "Endereço ${cryptoCurrency}";
   @override
-  String min_value(String value, String currency) => "Mín: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "Mín: ${value} ${currency}";
   @override
-  String failed_authentication(String state_error) => "Falha na autenticação. ${state_error}";
+  String failed_authentication(String state_error) =>
+      "Falha na autenticação. ${state_error}";
   @override
   String Blocks_remaining(String status) => "${status} blocos restantes";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira  ${walletName} para o endereço exibido acima. Você também pode enviar com uma carteira externa para o endereço/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira  ${walletName} para o endereço exibido acima. Você também pode enviar com uma carteira externa para o endereço/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores.";
   @override
-  String error_text_limits_loading_failed(String provider) => "A troca por ${provider} não é criada. Falha no carregamento dos limites";
+  String error_text_limits_loading_failed(String provider) =>
+      "A troca por ${provider} não é criada. Falha no carregamento dos limites";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "Por favor, envie ${fetchingLabel} ${from} para o endereço mostrado acima.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "Por favor, envie ${fetchingLabel} ${from} para o endereço mostrado acima.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "Você enviará fundos para\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "Você enviará fundos para\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "Falha ao remover a carteira ${wallet_name}. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "Falha ao remover a carteira ${wallet_name}. ${error}";
   @override
-  String copied_key_to_clipboard(String key) => "${key} copiada para a área de transferência";
+  String copied_key_to_clipboard(String key) =>
+      "${key} copiada para a área de transferência";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "Falha ao abrir a carteira ${wallet_name}. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "Falha ao abrir a carteira ${wallet_name}. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "Removendo a carteira ${wallet_name}";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "Removendo a carteira ${wallet_name}";
 }
 
 class $uk extends S {
@@ -3518,7 +3890,8 @@ class $uk extends S {
   @override
   String get hidden_balance => "Прихований баланс";
   @override
-  String get biometric_auth_reason => "Відскануйте свій відбиток пальця для аутентифікації";
+  String get biometric_auth_reason =>
+      "Відскануйте свій відбиток пальця для аутентифікації";
   @override
   String get transaction_sent => "Tранзакцію відправлено!";
   @override
@@ -3530,7 +3903,8 @@ class $uk extends S {
   @override
   String get trade_id => "ID операції:";
   @override
-  String get restore_description_from_seed => "Ви можете відновити гаманець використовуючи 25-ти слівну мнемонічну фразу";
+  String get restore_description_from_seed =>
+      "Ви можете відновити гаманець використовуючи 25-ти слівну мнемонічну фразу";
   @override
   String get trade_state_underpaid => "Недоплачена";
   @override
@@ -3542,7 +3916,8 @@ class $uk extends S {
   @override
   String get send_templates => "Шаблони";
   @override
-  String get please_try_to_connect_to_another_node => "Будь ласка, спробуйте підключитися до іншого вузлу";
+  String get please_try_to_connect_to_another_node =>
+      "Будь ласка, спробуйте підключитися до іншого вузлу";
   @override
   String get trade_state_traded => "Операція виконана";
   @override
@@ -3556,7 +3931,8 @@ class $uk extends S {
   @override
   String get auth_store_banned_minutes => " хвилин";
   @override
-  String get restore_title_from_seed_keys => "Відновити з мнемонічної фрази/ключів";
+  String get restore_title_from_seed_keys =>
+      "Відновити з мнемонічної фрази/ключів";
   @override
   String get settings_none => "Нічого";
   @override
@@ -3576,7 +3952,8 @@ class $uk extends S {
   @override
   String get receive_amount => "Сума";
   @override
-  String get settings_allow_biometrical_authentication => "Включити біометричну аутентифікацію";
+  String get settings_allow_biometrical_authentication =>
+      "Включити біометричну аутентифікацію";
   @override
   String get view_key_private => "Приватний ключ перегляду";
   @override
@@ -3586,13 +3963,16 @@ class $uk extends S {
   @override
   String get send_sending => "Відправлення...";
   @override
-  String get error_text_address => "Адреса гаманця повинна відповідати типу\nкриптовалюти";
+  String get error_text_address =>
+      "Адреса гаманця повинна відповідати типу\nкриптовалюти";
   @override
   String get send_your_wallet => "Ваш гаманець";
   @override
-  String get remove_node_message => "Ви впевнені, що хочете видалити поточний вузол?";
+  String get remove_node_message =>
+      "Ви впевнені, що хочете видалити поточний вузол?";
   @override
-  String get error_text_account_name => "Ім'я акаунту може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину";
+  String get error_text_account_name =>
+      "Ім'я акаунту може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину";
   @override
   String get reconnection => "Перепідключення";
   @override
@@ -3600,7 +3980,8 @@ class $uk extends S {
   @override
   String get restore_title_from_keys => "Відновити за допомогою ключів";
   @override
-  String get seed_language_choose => "Будь ласка, виберіть мову мнемонічної фрази:";
+  String get seed_language_choose =>
+      "Будь ласка, виберіть мову мнемонічної фрази:";
   @override
   String get wallet_keys => "Ключі гаманця";
   @override
@@ -3612,13 +3993,15 @@ class $uk extends S {
   @override
   String get copy_address => "Cкопіювати адресу";
   @override
-  String get error_text_subaddress_name => "Ім'я субадреси не може містити ` , ' \" символи\nі може бути від 1 до 20 символів в довжину";
+  String get error_text_subaddress_name =>
+      "Ім'я субадреси не може містити ` , ' \" символи\nі може бути від 1 до 20 символів в довжину";
   @override
   String get incorrect_seed => "Введений текст невірний.";
   @override
   String get settings_all => "ВСІ";
   @override
-  String get nodes_list_reset_to_default_message => "Ви впевнені, що хочете скинути до налаштувань за замовченням?";
+  String get nodes_list_reset_to_default_message =>
+      "Ви впевнені, що хочете скинути до налаштувань за замовченням?";
   @override
   String get receive => "Отримати";
   @override
@@ -3634,7 +4017,8 @@ class $uk extends S {
   @override
   String get settings_display_balance_as => "Відображати баланс як";
   @override
-  String get placeholder_transactions => "Тут відображатимуться ваші транзакції";
+  String get placeholder_transactions =>
+      "Тут відображатимуться ваші транзакції";
   @override
   String get trade_details_provider => "Провайдер";
   @override
@@ -3656,9 +4040,13 @@ class $uk extends S {
   @override
   String get settings_title => "Налаштування";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "Ви можете відновити гаманець використовуючи 12-ти слівну мнемонічну фразу";
+  @override
   String get address_book_menu => "Адресна книга";
   @override
-  String get wallet_restoration_store_incorrect_seed_length => "Невірна довжина мнемонічної фрази";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "Невірна довжина мнемонічної фрази";
   @override
   String get seed_language_spanish => "Іспанська";
   @override
@@ -3686,11 +4074,14 @@ class $uk extends S {
   @override
   String get sync_status_not_connected => "НЕ ПІДКЛЮЧЕННИЙ";
   @override
-  String get error_text_crypto_currency => "Кількість цифр після коми\nповинно бути меншим або дорівнювати 12";
+  String get error_text_crypto_currency =>
+      "Кількість цифр після коми\nповинно бути меншим або дорівнювати 12";
   @override
-  String get error_text_contact_name => "Ім'я контакту не може містити ` , ' \" символи\n і повинно бути від 1 до 32 символів в довжину";
+  String get error_text_contact_name =>
+      "Ім'я контакту не може містити ` , ' \" символи\n і повинно бути від 1 до 32 символів в довжину";
   @override
-  String get restore_seed_keys_restore => "Відновити за допомогою мнемонічної фрази/ключів";
+  String get restore_seed_keys_restore =>
+      "Відновити за допомогою мнемонічної фрази/ключів";
   @override
   String get xmr_hidden => "XMR Приховано";
   @override
@@ -3750,7 +4141,8 @@ class $uk extends S {
   @override
   String get copy_id => "Скопіювати ID";
   @override
-  String get please_make_selection => "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.";
+  String get please_make_selection =>
+      "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.";
   @override
   String get loading_your_wallet => "Завантаження гаманця";
   @override
@@ -3760,7 +4152,8 @@ class $uk extends S {
   @override
   String get nodes => "Вузли";
   @override
-  String get error_text_template => "Ім'я та адреса шаблону не може містити ` , ' \" символи\nі може бути від 1 до 106 символів в довжину";
+  String get error_text_template =>
+      "Ім'я та адреса шаблону не може містити ` , ' \" символи\nі може бути від 1 до 106 символів в довжину";
   @override
   String get seed_share => "Поділитися мнемонічною фразою";
   @override
@@ -3786,10 +4179,16 @@ class $uk extends S {
   @override
   String get trade_state_complete => "Завершено";
   @override
-  String get error_text_xmr => "Значення XMR не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 12";
+  String get error_text_xmr =>
+      "Значення XMR не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 12";
   @override
   String get xmr_available_balance => "Доступний XMR баланс";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "Ви можете відновити гаманець за допомогою WIF";
+  @override
+  String get restore_bitcoin_title_from_keys => "Відновити за допомогою WIF";
+  @override
   String get scan_qr_code => "Скануйте QR-код для одержання адреси";
   @override
   String get trade_state_paid => "Оплачена";
@@ -3814,7 +4213,8 @@ class $uk extends S {
   @override
   String get wallet_name => "Ім'я гаманця";
   @override
-  String get error_text_payment_id => "Ідентифікатор платежу може містити від 16 до 64 символів в hex";
+  String get error_text_payment_id =>
+      "Ідентифікатор платежу може містити від 16 до 64 символів в hex";
   @override
   String get node_reset_settings_title => "Скинути налаштування";
   @override
@@ -3836,7 +4236,8 @@ class $uk extends S {
   @override
   String get new_wallet => "Новий гаманець";
   @override
-  String get settings_display_on_dashboard_list => "Відображати в списку транзакцій";
+  String get settings_display_on_dashboard_list =>
+      "Відображати в списку транзакцій";
   @override
   String get transaction_details_title => "Деталі транзакції";
   @override
@@ -3866,7 +4267,8 @@ class $uk extends S {
   @override
   String get seed_language_dutch => "Голландська";
   @override
-  String get restore_description_from_seed_keys => "Ви можете відновити гаманець з мнемонічної фрази/ключів, які ви зберегли раніше";
+  String get restore_description_from_seed_keys =>
+      "Ви можете відновити гаманець з мнемонічної фрази/ключів, які ви зберегли раніше";
   @override
   String get copy => "Скопіювати";
   @override
@@ -3882,9 +4284,11 @@ class $uk extends S {
   @override
   String get contact_name => "Ім'я контакту";
   @override
-  String get exchange_result_write_down_ID => "*Будь ласка, скопіюйте або запишіть ID, вказаний вище.";
+  String get exchange_result_write_down_ID =>
+      "*Будь ласка, скопіюйте або запишіть ID, вказаний вище.";
   @override
-  String get exchange_result_write_down_trade_id => "Будь ласка, скопіюйте або запишіть ID операції.";
+  String get exchange_result_write_down_trade_id =>
+      "Будь ласка, скопіюйте або запишіть ID операції.";
   @override
   String get new_subaddress_title => "Нова субадреса";
   @override
@@ -3896,7 +4300,8 @@ class $uk extends S {
   @override
   String get trade_not_created => "Операція не створена.";
   @override
-  String get confirm_delete_wallet => "Ця дія видалить гаманець. Ви хочете продовжити?";
+  String get confirm_delete_wallet =>
+      "Ця дія видалить гаманець. Ви хочете продовжити?";
   @override
   String get restore_wallet_name => "Ім'я гаманця";
   @override
@@ -3906,7 +4311,8 @@ class $uk extends S {
   @override
   String get rename => "Перейменувати";
   @override
-  String get confirm_delete_template => "Ця дія видалить шаблон. Ви хочете продовжити?";
+  String get confirm_delete_template =>
+      "Ця дія видалить шаблон. Ви хочете продовжити?";
   @override
   String get restore_active_seed => "Активна мнемонічна фраза";
   @override
@@ -3922,13 +4328,15 @@ class $uk extends S {
   @override
   String get show_keys => "Показати ключі";
   @override
-  String get error_text_fiat => "Значення суми не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 2";
+  String get error_text_fiat =>
+      "Значення суми не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 2";
   @override
   String get addresses => "Адреси";
   @override
   String get transactions_by_date => "Сортувати по даті";
   @override
-  String get restore_from_seed_placeholder => "Введіть або вставте мнемонічну фразу вашого гаманця";
+  String get restore_from_seed_placeholder =>
+      "Введіть або вставте мнемонічну фразу вашого гаманця";
   @override
   String get use => "Використати ";
   @override
@@ -3954,9 +4362,11 @@ class $uk extends S {
   @override
   String get address_remove_contact => "Видалити контакт";
   @override
-  String get error_text_wallet_name => "Ім'я гаманця може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину";
+  String get error_text_wallet_name =>
+      "Ім'я гаманця може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину";
   @override
-  String get restore_description_from_keys => "Ви можете відновити гаманець за допомогою приватних ключів";
+  String get restore_description_from_keys =>
+      "Ви можете відновити гаманець за допомогою приватних ключів";
   @override
   String get seed_language_next => "Продовжити";
   @override
@@ -3972,7 +4382,8 @@ class $uk extends S {
   @override
   String get send_title => "Відправити";
   @override
-  String get error_text_keys => "Ключі гаманця можуть містити тільки 64 символів в hex";
+  String get error_text_keys =>
+      "Ключі гаманця можуть містити тільки 64 символів в hex";
   @override
   String get settings_save_recipient_address => "Зберігати адресу отримувача";
   @override
@@ -4014,7 +4425,8 @@ class $uk extends S {
   @override
   String get restore_address => "Адреса";
   @override
-  String get restore_wallet_restore_description => "Опис відновлюваного гаманця";
+  String get restore_wallet_restore_description =>
+      "Опис відновлюваного гаманця";
   @override
   String get today => "Сьогодні";
   @override
@@ -4024,7 +4436,8 @@ class $uk extends S {
   @override
   String get ok => "OK";
   @override
-  String get address_remove_content => "Ви впевнені, що хочете видалити вибраний контакт?";
+  String get address_remove_content =>
+      "Ви впевнені, що хочете видалити вибраний контакт?";
   @override
   String get wallet_list_title => "Monero Гаманець";
   @override
@@ -4052,9 +4465,11 @@ class $uk extends S {
   @override
   String get restore_title_from_seed => "Відновити з мнемонічної фрази";
   @override
-  String get restore_description_from_backup => "Ви можете відновити Cake Wallet з вашого резервного файлу";
+  String get restore_description_from_backup =>
+      "Ви можете відновити Cake Wallet з вашого резервного файлу";
   @override
-  String get error_text_node_port => "Порт вузла може містити тільки цифри від 0 до 65535";
+  String get error_text_node_port =>
+      "Порт вузла може містити тільки цифри від 0 до 65535";
   @override
   String get add_new_word => "Добавити нове слово";
   @override
@@ -4062,7 +4477,8 @@ class $uk extends S {
   @override
   String get digit_pin => "-значний PIN";
   @override
-  String get first_wallet_text => "В самому зручному гаманці для Monero";
+  String get first_wallet_text =>
+      "В самому зручному гаманці для Monero та Bitcoin";
   @override
   String get settings_trades => "Операції";
   @override
@@ -4070,61 +4486,86 @@ class $uk extends S {
   @override
   String change_language_to(String language) => "Змінити мову на ${language}?";
   @override
-  String change_current_node(String node) => "Ви впевнені, що хочете змінити поточний вузол на ${node}?";
+  String change_current_node(String node) =>
+      "Ви впевнені, що хочете змінити поточний вузол на ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "Завантаження ${wallet_name} гаманця";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "Завантаження ${wallet_name} гаманця";
   @override
   String version(String currentVersion) => "Версія ${currentVersion}";
   @override
   String router_no_route(String name) => "Не встановлено маршрут для ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "Операція для ${provider} не створена. Сума менша мінімальної: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "Операція для ${provider} не створена. Сума менша мінімальної: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "Операція ${tradeId} ${title} не знайдена.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "Операція ${tradeId} ${title} не знайдена.";
   @override
-  String transaction_details_copied(String title) => "${title} скопійовано в буфер обміну";
+  String transaction_details_copied(String title) =>
+      "${title} скопійовано в буфер обміну";
   @override
-  String trade_details_copied(String title) => "${title} скопійовано в буфер обміну";
+  String trade_details_copied(String title) =>
+      "${title} скопійовано в буфер обміну";
   @override
   String powered_by(String title) => "Використовуючи ${title}";
   @override
-  String send_priority(String transactionPriority) => "Комісія встановлена в залежності від пріоритету: ${transactionPriority}.\nПріоритет транзакції може бути змінений в налаштуваннях";
+  String send_priority(String transactionPriority) =>
+      "Комісія встановлена в залежності від пріоритету: ${transactionPriority}.\nПріоритет транзакції може бути змінений в налаштуваннях";
   @override
-  String trade_for_not_created(String title) => "Операція для ${title} не створена.";
+  String trade_for_not_created(String title) =>
+      "Операція для ${title} не створена.";
   @override
-  String trade_is_powered_by(String provider) => "Операція виконана через ${provider}";
+  String trade_is_powered_by(String provider) =>
+      "Операція виконана через ${provider}";
   @override
   String time(String minutes, String seconds) => "${minutes}хв ${seconds}сек";
   @override
-  String max_value(String value, String currency) => "Макс: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "Макс: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "Операція для ${provider} не створена. Сума більше максимальної: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "Операція для ${provider} не створена. Сума більше максимальної: ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "${cryptoCurrency} адреса";
   @override
-  String min_value(String value, String currency) => "Мін: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "Мін: ${value} ${currency}";
   @override
-  String failed_authentication(String state_error) => "Помилка аутентифікації. ${state_error}";
+  String failed_authentication(String state_error) =>
+      "Помилка аутентифікації. ${state_error}";
   @override
   String Blocks_remaining(String status) => "${status} Залишилось блоків";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану вище. Або ви можете відправити зі свого зовнішнього гаманця на вищевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану вище. Або ви можете відправити зі свого зовнішнього гаманця на вищевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму.";
   @override
-  String error_text_limits_loading_failed(String provider) => "Операція для ${provider} не створена. Помилка завантаження лімітів";
+  String error_text_limits_loading_failed(String provider) =>
+      "Операція для ${provider} не створена. Помилка завантаження лімітів";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "Будь ласка, відправте ${fetchingLabel} ${from} на адресу, вказану вище.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "Будь ласка, відправте ${fetchingLabel} ${from} на адресу, вказану вище.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "Ви будете відправляти кошти\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "Ви будете відправляти кошти\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "Помилка при видаленні ${wallet_name} гаманця. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "Помилка при видаленні ${wallet_name} гаманця. ${error}";
   @override
-  String copied_key_to_clipboard(String key) => "Скопійовано ${key} в буфер обміну";
+  String copied_key_to_clipboard(String key) =>
+      "Скопійовано ${key} в буфер обміну";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "Помилка при завантаженні ${wallet_name} гаманця. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "Помилка при завантаженні ${wallet_name} гаманця. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "Видалення ${wallet_name} гаманця";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "Видалення ${wallet_name} гаманця";
 }
 
 class $ja extends S {
@@ -4162,7 +4603,8 @@ class $ja extends S {
   @override
   String get trade_id => "取引ID:";
   @override
-  String get restore_description_from_seed => "25ワードからウォレットを復元しますまたは13ワードの組み合わせコード";
+  String get restore_description_from_seed =>
+      "25ワードからウォレットを復元しますまたは13ワードの組み合わせコード";
   @override
   String get trade_state_underpaid => "支払不足";
   @override
@@ -4224,7 +4666,8 @@ class $ja extends S {
   @override
   String get remove_node_message => "選択したノードを削除してもよろしいですか?";
   @override
-  String get error_text_account_name => "アカウント名には文字のみを含めることができます \n1〜15文字である必要があります";
+  String get error_text_account_name =>
+      "アカウント名には文字のみを含めることができます \n1〜15文字である必要があります";
   @override
   String get reconnection => "再接続";
   @override
@@ -4244,7 +4687,8 @@ class $ja extends S {
   @override
   String get copy_address => "住所をコピー";
   @override
-  String get error_text_subaddress_name => "サブアドレス名に含めることはできません` , ' \" シンボル\n1〜20文字の長さである必要があります";
+  String get error_text_subaddress_name =>
+      "サブアドレス名に含めることはできません` , ' \" シンボル\n1〜20文字の長さである必要があります";
   @override
   String get incorrect_seed => "入力されたテキストは無効です。";
   @override
@@ -4288,6 +4732,9 @@ class $ja extends S {
   @override
   String get settings_title => "設定";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "12ワードの組み合わせコードからウォレットを復元する";
+  @override
   String get address_book_menu => "住所録";
   @override
   String get wallet_restoration_store_incorrect_seed_length => "誤ったシード長s";
@@ -4320,7 +4767,8 @@ class $ja extends S {
   @override
   String get error_text_crypto_currency => "小数桁数\n12以下でなければなりません";
   @override
-  String get error_text_contact_name => "連絡先名に含めることはできません ` , ' \" シンボル\n長さは1〜32文字でなければなりません";
+  String get error_text_contact_name =>
+      "連絡先名に含めることはできません ` , ' \" シンボル\n長さは1〜32文字でなければなりません";
   @override
   String get restore_seed_keys_restore => "シード/キーの復元";
   @override
@@ -4392,7 +4840,8 @@ class $ja extends S {
   @override
   String get nodes => "ノード";
   @override
-  String get error_text_template => "テンプレートの名前とアドレスに含めることはできません ` , ' \" シンボル\n1〜106文字の長さである必要があります";
+  String get error_text_template =>
+      "テンプレートの名前とアドレスに含めることはできません ` , ' \" シンボル\n1〜106文字の長さである必要があります";
   @override
   String get seed_share => "シードを共有する";
   @override
@@ -4422,6 +4871,11 @@ class $ja extends S {
   @override
   String get xmr_available_balance => "XMR利用可能残高";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "秘密鍵から生成されたWIF文字列からウォレットを復元します";
+  @override
+  String get restore_bitcoin_title_from_keys => "WIFから復元";
+  @override
   String get scan_qr_code => "QRコードをスキャンして住所を取得します";
   @override
   String get trade_state_paid => "有料";
@@ -4516,7 +4970,8 @@ class $ja extends S {
   @override
   String get exchange_result_write_down_ID => "*上記のIDをコピーまたは書き留めてください.";
   @override
-  String get exchange_result_write_down_trade_id => "続行するには、取引IDをコピーまたは書き留めてください.";
+  String get exchange_result_write_down_trade_id =>
+      "続行するには、取引IDをコピーまたは書き留めてください.";
   @override
   String get new_subaddress_title => "新しいサブアドレス";
   @override
@@ -4586,9 +5041,11 @@ class $ja extends S {
   @override
   String get address_remove_contact => "連絡先を削除します";
   @override
-  String get error_text_wallet_name => "ウォレット名には文字のみを含めることができます\n1〜15文字である必要があります";
+  String get error_text_wallet_name =>
+      "ウォレット名には文字のみを含めることができます\n1〜15文字である必要があります";
   @override
-  String get restore_description_from_keys => "生成されたウォレットを復元します秘密鍵から保存されたキーストローク";
+  String get restore_description_from_keys =>
+      "生成されたウォレットを復元します秘密鍵から保存されたキーストローク";
   @override
   String get seed_language_next => "次";
   @override
@@ -4684,7 +5141,8 @@ class $ja extends S {
   @override
   String get restore_title_from_seed => "シードから復元";
   @override
-  String get restore_description_from_backup => "Cake Walletアプリ全体を復元できますバックアップファイル";
+  String get restore_description_from_backup =>
+      "Cake Walletアプリ全体を復元できますバックアップファイル";
   @override
   String get error_text_node_port => "ノードポートには、0〜65535の数字のみを含めることができます";
   @override
@@ -4694,7 +5152,7 @@ class $ja extends S {
   @override
   String get digit_pin => "桁ピン";
   @override
-  String get first_wallet_text => "素晴らしい財布 ために Monero";
+  String get first_wallet_text => "素晴らしい財布 ために Monero そして Bitcoin";
   @override
   String get settings_trades => "取引";
   @override
@@ -4704,15 +5162,19 @@ class $ja extends S {
   @override
   String change_current_node(String node) => "現在のノードを変更してよろしいですか ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "読み込み中 ${wallet_name} 財布";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "読み込み中 ${wallet_name} 財布";
   @override
   String version(String currentVersion) => "バージョン ${currentVersion}";
   @override
   String router_no_route(String name) => "ルートが定義されていません ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "${provider} の取引は作成されません。 金額は最小額より少ない: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "${provider} の取引は作成されません。 金額は最小額より少ない: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "トレード ${tradeId} of ${title} 見つかりません";
+  String trade_id_not_found(String tradeId, String title) =>
+      "トレード ${tradeId} of ${title} 見つかりません";
   @override
   String transaction_details_copied(String title) => "${title} クリップボードにコピーしました";
   @override
@@ -4720,7 +5182,8 @@ class $ja extends S {
   @override
   String powered_by(String title) => "搭載 ${title}";
   @override
-  String send_priority(String transactionPriority) => "現在、料金は ${transactionPriority} 優先度.\nトランザクションの優先度は設定で調整できます";
+  String send_priority(String transactionPriority) =>
+      "現在、料金は ${transactionPriority} 優先度.\nトランザクションの優先度は設定で調整できます";
   @override
   String trade_for_not_created(String title) => "取引 ${title} 作成されません";
   @override
@@ -4728,9 +5191,12 @@ class $ja extends S {
   @override
   String time(String minutes, String seconds) => "${minutes}m ${seconds}s";
   @override
-  String max_value(String value, String currency) => "マックス: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "マックス: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "${provider} の取引は作成されません。 金額は最大値を超えています: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "${provider} の取引は作成されません。 金額は最大値を超えています: ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "${cryptoCurrency} 住所";
   @override
@@ -4740,23 +5206,32 @@ class $ja extends S {
   @override
   String Blocks_remaining(String status) => "${status} 残りのブロック";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 上記のアドレスへ. または、外部ウォレットから上記のアドレス/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 上記のアドレスへ. または、外部ウォレットから上記のアドレス/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください.";
   @override
-  String error_text_limits_loading_failed(String provider) => "${provider} の取引は作成されません。 制限の読み込みに失敗しました";
+  String error_text_limits_loading_failed(String provider) =>
+      "${provider} の取引は作成されません。 制限の読み込みに失敗しました";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "送信してください ${fetchingLabel} ${from} 上記のアドレスへ.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "送信してください ${fetchingLabel} ${from} 上記のアドレスへ.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "トランザクションをコミット\n量: ${amount}\n費用: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "トランザクションをコミット\n量: ${amount}\n費用: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "に送金します\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "に送金します\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "削除できませんでした ${wallet_name} 財布. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "削除できませんでした ${wallet_name} 財布. ${error}";
   @override
   String copied_key_to_clipboard(String key) => "コピー済み ${key} クリップボードへ";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "読み込みに失敗しました ${wallet_name} 財布. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "読み込みに失敗しました ${wallet_name} 財布. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "取りはずし ${wallet_name} 財布";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "取りはずし ${wallet_name} 財布";
 }
 
 class $en extends S {
@@ -4786,7 +5261,8 @@ class $pl extends S {
   @override
   String get hidden_balance => "Ukryta równowaga";
   @override
-  String get biometric_auth_reason => "Zeskanuj swój odcisk palca, aby go uwierzytelnić";
+  String get biometric_auth_reason =>
+      "Zeskanuj swój odcisk palca, aby go uwierzytelnić";
   @override
   String get transaction_sent => "Transakcja wysłana!";
   @override
@@ -4798,7 +5274,8 @@ class $pl extends S {
   @override
   String get trade_id => "Identyfikator handlu:";
   @override
-  String get restore_description_from_seed => "Przywróć swój portfel z 25 słów lub 13-słowny kod kombinacji";
+  String get restore_description_from_seed =>
+      "Przywróć swój portfel z 25 słów lub 13-słowny kod kombinacji";
   @override
   String get trade_state_underpaid => "Niedopłacone";
   @override
@@ -4810,7 +5287,8 @@ class $pl extends S {
   @override
   String get send_templates => "Szablony";
   @override
-  String get please_try_to_connect_to_another_node => "Spróbuj połączyć się z innym węzłem";
+  String get please_try_to_connect_to_another_node =>
+      "Spróbuj połączyć się z innym węzłem";
   @override
   String get trade_state_traded => "Handlowane";
   @override
@@ -4844,7 +5322,8 @@ class $pl extends S {
   @override
   String get receive_amount => "Ilość";
   @override
-  String get settings_allow_biometrical_authentication => "Zezwalaj na uwierzytelnianie biometryczne";
+  String get settings_allow_biometrical_authentication =>
+      "Zezwalaj na uwierzytelnianie biometryczne";
   @override
   String get view_key_private => "Wyświetl klucz (prywatny)";
   @override
@@ -4854,13 +5333,15 @@ class $pl extends S {
   @override
   String get send_sending => "Wysyłanie...";
   @override
-  String get error_text_address => "Wallet address must correspond to the type\nof cryptocurrency";
+  String get error_text_address =>
+      "Wallet address must correspond to the type\nof cryptocurrency";
   @override
   String get send_your_wallet => "Twój portfel";
   @override
   String get remove_node_message => "Czy na pewno chcesz usunąć wybrany węzeł?";
   @override
-  String get error_text_account_name => "Nazwa konta może zawierać tylko litery, cyfry\ni musi mieć od 1 do 15 znaków";
+  String get error_text_account_name =>
+      "Nazwa konta może zawierać tylko litery, cyfry\ni musi mieć od 1 do 15 znaków";
   @override
   String get reconnection => "Ponowne połączenie";
   @override
@@ -4880,13 +5361,15 @@ class $pl extends S {
   @override
   String get copy_address => "Skopiuj adress";
   @override
-  String get error_text_subaddress_name => "Nazwa podadresu nie może zawierać ` , ' \" symbolika\ni musi mieć od 1 do 20 znaków";
+  String get error_text_subaddress_name =>
+      "Nazwa podadresu nie może zawierać ` , ' \" symbolika\ni musi mieć od 1 do 20 znaków";
   @override
   String get incorrect_seed => "Wprowadzony tekst jest nieprawidłowy.";
   @override
   String get settings_all => "Cały";
   @override
-  String get nodes_list_reset_to_default_message => "Czy na pewno chcesz przywrócić ustawienia domyślne?";
+  String get nodes_list_reset_to_default_message =>
+      "Czy na pewno chcesz przywrócić ustawienia domyślne?";
   @override
   String get receive => "Otrzymać";
   @override
@@ -4902,7 +5385,8 @@ class $pl extends S {
   @override
   String get settings_display_balance_as => "Wyświetl saldo jako";
   @override
-  String get placeholder_transactions => "Twoje transakcje zostaną wyświetlone tutaj";
+  String get placeholder_transactions =>
+      "Twoje transakcje zostaną wyświetlone tutaj";
   @override
   String get trade_details_provider => "Dostawca";
   @override
@@ -4924,9 +5408,13 @@ class $pl extends S {
   @override
   String get settings_title => "Ustawienia";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "Przywróć swój portfel z kodu złożonego z 12 słów";
+  @override
   String get address_book_menu => "Książka adresowa";
   @override
-  String get wallet_restoration_store_incorrect_seed_length => "Nieprawidłowa długość nasion";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "Nieprawidłowa długość nasion";
   @override
   String get seed_language_spanish => "Hiszpański";
   @override
@@ -4954,9 +5442,11 @@ class $pl extends S {
   @override
   String get sync_status_not_connected => "NIE POŁĄCZONY";
   @override
-  String get error_text_crypto_currency => "Liczba cyfr ułamkowych\nmusi być mniejsza lub równa 12";
+  String get error_text_crypto_currency =>
+      "Liczba cyfr ułamkowych\nmusi być mniejsza lub równa 12";
   @override
-  String get error_text_contact_name => "Nazwa kontaktu nie może zawierać` , ' \" symbolika\ni musi mieć od 1 do 32 znaków ";
+  String get error_text_contact_name =>
+      "Nazwa kontaktu nie może zawierać` , ' \" symbolika\ni musi mieć od 1 do 32 znaków ";
   @override
   String get restore_seed_keys_restore => "Przywracanie nasion / kluczy";
   @override
@@ -4978,7 +5468,8 @@ class $pl extends S {
   @override
   String get pending => " (w oczekiwaniu)";
   @override
-  String get setup_successful => "Twój kod PIN został pomyślnie skonfigurowany!";
+  String get setup_successful =>
+      "Twój kod PIN został pomyślnie skonfigurowany!";
   @override
   String get fetching => "Ujmujący";
   @override
@@ -5018,7 +5509,8 @@ class $pl extends S {
   @override
   String get copy_id => "ID kopii";
   @override
-  String get please_make_selection => "Wybierz poniżej, aby cutwórz lub odzyskaj swój portfel.";
+  String get please_make_selection =>
+      "Wybierz poniżej, aby cutwórz lub odzyskaj swój portfel.";
   @override
   String get loading_your_wallet => "Ładowanie portfela";
   @override
@@ -5028,7 +5520,8 @@ class $pl extends S {
   @override
   String get nodes => "Węzły";
   @override
-  String get error_text_template => "Nazwa i adres szablonu nie mogą zawierać ` , ' \" symbolika\ni musi mieć od 1 do 106 znaków";
+  String get error_text_template =>
+      "Nazwa i adres szablonu nie mogą zawierać ` , ' \" symbolika\ni musi mieć od 1 do 106 znaków";
   @override
   String get seed_share => "Udostępnij ziarno";
   @override
@@ -5054,10 +5547,16 @@ class $pl extends S {
   @override
   String get trade_state_complete => "Kompletny";
   @override
-  String get error_text_xmr => "Wartość XMR nie może przekraczać dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 12";
+  String get error_text_xmr =>
+      "Wartość XMR nie może przekraczać dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 12";
   @override
   String get xmr_available_balance => "XMR Dostępne saldo";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "Przywróć swój portfel z wygenerowanego ciągu WIF z kluczy prywatnych";
+  @override
+  String get restore_bitcoin_title_from_keys => "Przywróć z WIF";
+  @override
   String get scan_qr_code => "Zeskanuj kod QR, aby uzyskać adres";
   @override
   String get trade_state_paid => "Płatny";
@@ -5082,7 +5581,8 @@ class $pl extends S {
   @override
   String get wallet_name => "Nazwa portfela";
   @override
-  String get error_text_payment_id => "ID może zawierać od 16 do 64 znaków w formacie szesnastkowym";
+  String get error_text_payment_id =>
+      "ID może zawierać od 16 do 64 znaków w formacie szesnastkowym";
   @override
   String get node_reset_settings_title => "Resetowanie ustawień";
   @override
@@ -5134,7 +5634,8 @@ class $pl extends S {
   @override
   String get seed_language_dutch => "Holenderski";
   @override
-  String get restore_description_from_seed_keys => "Odzyskaj swój portfel z nasion / kluczy, które zapisałeś w bezpiecznym miejscu";
+  String get restore_description_from_seed_keys =>
+      "Odzyskaj swój portfel z nasion / kluczy, które zapisałeś w bezpiecznym miejscu";
   @override
   String get copy => "Kopiuj";
   @override
@@ -5150,9 +5651,11 @@ class $pl extends S {
   @override
   String get contact_name => "Nazwa Kontaktu";
   @override
-  String get exchange_result_write_down_ID => "*Skopiuj lub zanotuj swój identyfikator pokazany powyżej.";
+  String get exchange_result_write_down_ID =>
+      "*Skopiuj lub zanotuj swój identyfikator pokazany powyżej.";
   @override
-  String get exchange_result_write_down_trade_id => "Skopiuj lub zanotuj identyfikator transakcji, aby kontynuować.";
+  String get exchange_result_write_down_trade_id =>
+      "Skopiuj lub zanotuj identyfikator transakcji, aby kontynuować.";
   @override
   String get new_subaddress_title => "Nowy podadres";
   @override
@@ -5164,7 +5667,8 @@ class $pl extends S {
   @override
   String get trade_not_created => "Handel nie utworzony.";
   @override
-  String get confirm_delete_wallet => "Ta czynność usunie ten portfel. Czy chcesz kontynuować?";
+  String get confirm_delete_wallet =>
+      "Ta czynność usunie ten portfel. Czy chcesz kontynuować?";
   @override
   String get restore_wallet_name => "Nazwa portfela";
   @override
@@ -5174,7 +5678,8 @@ class $pl extends S {
   @override
   String get rename => "Przemianować";
   @override
-  String get confirm_delete_template => "Ta czynność usunie ten szablon. Czy chcesz kontynuować?";
+  String get confirm_delete_template =>
+      "Ta czynność usunie ten szablon. Czy chcesz kontynuować?";
   @override
   String get restore_active_seed => "Aktywne nasiona";
   @override
@@ -5190,13 +5695,15 @@ class $pl extends S {
   @override
   String get show_keys => "Pokaż klucze";
   @override
-  String get error_text_fiat => "Wartość kwoty nie może przekroczyć dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 2";
+  String get error_text_fiat =>
+      "Wartość kwoty nie może przekroczyć dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 2";
   @override
   String get addresses => "Adresy";
   @override
   String get transactions_by_date => "Transakcje według daty";
   @override
-  String get restore_from_seed_placeholder => "Wpisz lub wklej tutaj swoją frazę kodową";
+  String get restore_from_seed_placeholder =>
+      "Wpisz lub wklej tutaj swoją frazę kodową";
   @override
   String get use => "Używać ";
   @override
@@ -5222,9 +5729,11 @@ class $pl extends S {
   @override
   String get address_remove_contact => "Usuń kontakt";
   @override
-  String get error_text_wallet_name => "Nazwa portfela może zawierać tylko litery i cyfry\ni musi mieć od 1 do 15 znaków";
+  String get error_text_wallet_name =>
+      "Nazwa portfela może zawierać tylko litery i cyfry\ni musi mieć od 1 do 15 znaków";
   @override
-  String get restore_description_from_keys => "Przywróć swój portfel z wygenerowanego naciśnięcia klawiszy zapisane z kluczy prywatnych";
+  String get restore_description_from_keys =>
+      "Przywróć swój portfel z wygenerowanego naciśnięcia klawiszy zapisane z kluczy prywatnych";
   @override
   String get seed_language_next => "Kolejny";
   @override
@@ -5240,7 +5749,8 @@ class $pl extends S {
   @override
   String get send_title => "Wyślij";
   @override
-  String get error_text_keys => "Klucze portfela mogą zawierać tylko 64 znaki w systemie szesnastkowym";
+  String get error_text_keys =>
+      "Klucze portfela mogą zawierać tylko 64 znaki w systemie szesnastkowym";
   @override
   String get settings_save_recipient_address => "Zapisz adres odbiorcy";
   @override
@@ -5292,7 +5802,8 @@ class $pl extends S {
   @override
   String get ok => "Dobrze";
   @override
-  String get address_remove_content => "Czy na pewno chcesz usunąć wybrany kontakt?";
+  String get address_remove_content =>
+      "Czy na pewno chcesz usunąć wybrany kontakt?";
   @override
   String get wallet_list_title => "Portfel Monero";
   @override
@@ -5320,9 +5831,11 @@ class $pl extends S {
   @override
   String get restore_title_from_seed => "Przywróć z nasion";
   @override
-  String get restore_description_from_backup => "Możesz przywrócić całą aplikację Cake Wallet z plik kopii zapasowej";
+  String get restore_description_from_backup =>
+      "Możesz przywrócić całą aplikację Cake Wallet z plik kopii zapasowej";
   @override
-  String get error_text_node_port => "Port węzła może zawierać tylko liczby od 0 do 65535";
+  String get error_text_node_port =>
+      "Port węzła może zawierać tylko liczby od 0 do 65535";
   @override
   String get add_new_word => "Dodaj nowe słowo";
   @override
@@ -5330,7 +5843,7 @@ class $pl extends S {
   @override
   String get digit_pin => "-znak PIN";
   @override
-  String get first_wallet_text => "Niesamowity portfel dla Monero";
+  String get first_wallet_text => "Niesamowity portfel dla Monero i Bitcoin";
   @override
   String get settings_trades => "Transakcje";
   @override
@@ -5338,61 +5851,84 @@ class $pl extends S {
   @override
   String change_language_to(String language) => "Zmień język na ${language}?";
   @override
-  String change_current_node(String node) => "Czy na pewno chcesz przywrócić ustawienia domyślne? ${node}?";
+  String change_current_node(String node) =>
+      "Czy na pewno chcesz przywrócić ustawienia domyślne? ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "Ładuję ${wallet_name} portfel";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "Ładuję ${wallet_name} portfel";
   @override
   String version(String currentVersion) => "Wersja ${currentVersion}";
   @override
   String router_no_route(String name) => "Brak zdefiniowanej trasy dla ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "Wymiana dla ${provider} nie została utworzona. Kwota jest mniejsza niż minimalna: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "Wymiana dla ${provider} nie została utworzona. Kwota jest mniejsza niż minimalna: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "Handel ${tradeId} of ${title} nie znaleziono.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "Handel ${tradeId} of ${title} nie znaleziono.";
   @override
-  String transaction_details_copied(String title) => "${title} skopiowane do schowka";
+  String transaction_details_copied(String title) =>
+      "${title} skopiowane do schowka";
   @override
   String trade_details_copied(String title) => "${title} skopiowane do schowka";
   @override
   String powered_by(String title) => "Zasilany przez ${title}";
   @override
-  String send_priority(String transactionPriority) => "Obecnie opłata ustalona jest na ${transactionPriority} priorytet.\nPriorytet transakcji można zmienić w ustawieniach";
+  String send_priority(String transactionPriority) =>
+      "Obecnie opłata ustalona jest na ${transactionPriority} priorytet.\nPriorytet transakcji można zmienić w ustawieniach";
   @override
-  String trade_for_not_created(String title) => "Zamienić się za ${title} nie jest tworzony.";
+  String trade_for_not_created(String title) =>
+      "Zamienić się za ${title} nie jest tworzony.";
   @override
-  String trade_is_powered_by(String provider) => "Ten handel jest zasilany przez ${provider}";
+  String trade_is_powered_by(String provider) =>
+      "Ten handel jest zasilany przez ${provider}";
   @override
   String time(String minutes, String seconds) => "${minutes}m ${seconds}s";
   @override
-  String max_value(String value, String currency) => "Max: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "Max: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "Wymiana dla ${provider} nie została utworzona. Kwota jest większa niż maksymalna: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "Wymiana dla ${provider} nie została utworzona. Kwota jest większa niż maksymalna: ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "Adres ${cryptoCurrency}";
   @override
-  String min_value(String value, String currency) => "Min: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "Min: ${value} ${currency}";
   @override
-  String failed_authentication(String state_error) => "Nieudane uwierzytelnienie. ${state_error}";
+  String failed_authentication(String state_error) =>
+      "Nieudane uwierzytelnienie. ${state_error}";
   @override
   String Blocks_remaining(String status) => "${status} Bloki pozostałe";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} z twojego portfela. Lub możesz wysłać z zewnętrznego portfela na powyższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} z twojego portfela. Lub możesz wysłać z zewnętrznego portfela na powyższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty.";
   @override
-  String error_text_limits_loading_failed(String provider) => "Wymiana dla ${provider} nie została utworzona. Ładowanie limitów nie powiodło się";
+  String error_text_limits_loading_failed(String provider) =>
+      "Wymiana dla ${provider} nie została utworzona. Ładowanie limitów nie powiodło się";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "Proszę wyślij ${fetchingLabel} ${from} na adres podany powyżej.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "Proszę wyślij ${fetchingLabel} ${from} na adres podany powyżej.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "Będziesz wysyłać środki na\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "Będziesz wysyłać środki na\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "Nie udało się usunąć ${wallet_name} portfel. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "Nie udało się usunąć ${wallet_name} portfel. ${error}";
   @override
   String copied_key_to_clipboard(String key) => "Skopiowane ${key} do schowka";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "Nie udało się załadować ${wallet_name} portfel. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "Nie udało się załadować ${wallet_name} portfel. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "Usuwanie ${wallet_name} portfel";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "Usuwanie ${wallet_name} portfel";
 }
 
 class $es extends S {
@@ -5418,7 +5954,8 @@ class $es extends S {
   @override
   String get hidden_balance => "Balance oculto";
   @override
-  String get biometric_auth_reason => "Escanee su huella digital para autenticar";
+  String get biometric_auth_reason =>
+      "Escanee su huella digital para autenticar";
   @override
   String get transaction_sent => "Transacción enviada!";
   @override
@@ -5430,7 +5967,8 @@ class $es extends S {
   @override
   String get trade_id => "Comercial ID:";
   @override
-  String get restore_description_from_seed => "Restaure su billetera desde el código de combinación de 25 palabras i de 13 palabras";
+  String get restore_description_from_seed =>
+      "Restaure su billetera desde el código de combinación de 25 palabras i de 13 palabras";
   @override
   String get trade_state_underpaid => "Poco pagado";
   @override
@@ -5442,7 +5980,8 @@ class $es extends S {
   @override
   String get send_templates => "Plantillas";
   @override
-  String get please_try_to_connect_to_another_node => "Intenta conectarte a otro nodo";
+  String get please_try_to_connect_to_another_node =>
+      "Intenta conectarte a otro nodo";
   @override
   String get trade_state_traded => "Negociado";
   @override
@@ -5476,7 +6015,8 @@ class $es extends S {
   @override
   String get receive_amount => "Cantidad";
   @override
-  String get settings_allow_biometrical_authentication => "Permitir autenticación biométrica";
+  String get settings_allow_biometrical_authentication =>
+      "Permitir autenticación biométrica";
   @override
   String get view_key_private => "View clave (privado)";
   @override
@@ -5486,13 +6026,16 @@ class $es extends S {
   @override
   String get send_sending => "Enviando...";
   @override
-  String get error_text_address => "La dirección de la billetera debe corresponder al tipo \nde criptomoneda";
+  String get error_text_address =>
+      "La dirección de la billetera debe corresponder al tipo \nde criptomoneda";
   @override
   String get send_your_wallet => "Tu billetera";
   @override
-  String get remove_node_message => "¿Está seguro de que desea eliminar el nodo seleccionado?";
+  String get remove_node_message =>
+      "¿Está seguro de que desea eliminar el nodo seleccionado?";
   @override
-  String get error_text_account_name => "El nombre de la cuenta solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud";
+  String get error_text_account_name =>
+      "El nombre de la cuenta solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud";
   @override
   String get reconnection => "Reconexión";
   @override
@@ -5508,17 +6051,20 @@ class $es extends S {
   @override
   String get reconnect_alert_text => "¿Estás seguro de reconectar?";
   @override
-  String get send_error_minimum_value => "El valor mínimo de la cantidad es 0.01";
+  String get send_error_minimum_value =>
+      "El valor mínimo de la cantidad es 0.01";
   @override
   String get copy_address => "Copiar dirección ";
   @override
-  String get error_text_subaddress_name => "El nombre de la subdirección no puede contener símbolos `, '\" \ny debe tener entre 1 y 20 caracteres de longitud";
+  String get error_text_subaddress_name =>
+      "El nombre de la subdirección no puede contener símbolos `, '\" \ny debe tener entre 1 y 20 caracteres de longitud";
   @override
   String get incorrect_seed => "El texto ingresado no es válido.";
   @override
   String get settings_all => "TODOS";
   @override
-  String get nodes_list_reset_to_default_message => "¿Está seguro de que desea restablecer la configuración predeterminada?";
+  String get nodes_list_reset_to_default_message =>
+      "¿Está seguro de que desea restablecer la configuración predeterminada?";
   @override
   String get receive => "Recibir";
   @override
@@ -5528,7 +6074,8 @@ class $es extends S {
   @override
   String get trade_details_pair => "Par";
   @override
-  String get choose_wallet_currency => "Por favor, elija la moneda de la billetera:";
+  String get choose_wallet_currency =>
+      "Por favor, elija la moneda de la billetera:";
   @override
   String get confirm => "Confirmar";
   @override
@@ -5556,9 +6103,13 @@ class $es extends S {
   @override
   String get settings_title => "Configuraciones";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "Restaure su billetera a partir del código de combinación de 12 palabras";
+  @override
   String get address_book_menu => "Libreta de direcciones";
   @override
-  String get wallet_restoration_store_incorrect_seed_length => "Longitud de semilla incorrecta";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "Longitud de semilla incorrecta";
   @override
   String get seed_language_spanish => "Español";
   @override
@@ -5580,15 +6131,18 @@ class $es extends S {
   @override
   String get please_select => "Por favor seleccione:";
   @override
-  String get restore_title_from_backup => "Restaurar desde un archivo de respaldo";
+  String get restore_title_from_backup =>
+      "Restaurar desde un archivo de respaldo";
   @override
   String get full_balance => "Balance completo";
   @override
   String get sync_status_not_connected => "NO CONECTADO";
   @override
-  String get error_text_crypto_currency => "El número de dígitos fraccionarios \ndebe ser menor o igual a 12";
+  String get error_text_crypto_currency =>
+      "El número de dígitos fraccionarios \ndebe ser menor o igual a 12";
   @override
-  String get error_text_contact_name => "El nombre del contacto no puede contener símbolos `, '\" \ny debe tener entre 1 y 32 caracteres de longitud";
+  String get error_text_contact_name =>
+      "El nombre del contacto no puede contener símbolos `, '\" \ny debe tener entre 1 y 32 caracteres de longitud";
   @override
   String get restore_seed_keys_restore => "Restauración de semillas / llaves";
   @override
@@ -5650,7 +6204,8 @@ class $es extends S {
   @override
   String get copy_id => "Copiar ID";
   @override
-  String get please_make_selection => "Seleccione a continuación para crear o recuperar su billetera.";
+  String get please_make_selection =>
+      "Seleccione a continuación para crear o recuperar su billetera.";
   @override
   String get loading_your_wallet => "Cargando tu billetera";
   @override
@@ -5660,7 +6215,8 @@ class $es extends S {
   @override
   String get nodes => "Nodos";
   @override
-  String get error_text_template => "El nombre y la dirección de la plantilla no pueden contener símbolos ` , '\" \ny debe tener entre 1 y 106 caracteres de longitud";
+  String get error_text_template =>
+      "El nombre y la dirección de la plantilla no pueden contener símbolos ` , '\" \ny debe tener entre 1 y 106 caracteres de longitud";
   @override
   String get seed_share => "Compartir semillas";
   @override
@@ -5686,10 +6242,16 @@ class $es extends S {
   @override
   String get trade_state_complete => "Completar";
   @override
-  String get error_text_xmr => "El valor XMR no puede exceder el saldo disponible.\nTEl número de dígitos de fracción debe ser menor o igual a 12";
+  String get error_text_xmr =>
+      "El valor XMR no puede exceder el saldo disponible.\nTEl número de dígitos de fracción debe ser menor o igual a 12";
   @override
   String get xmr_available_balance => "XMR Available Balance";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "Restaure su billetera a partir de una cadena WIF generada a partir de sus claves privadas";
+  @override
+  String get restore_bitcoin_title_from_keys => "Restaurar desde WIF";
+  @override
   String get scan_qr_code => "Escanee el código QR para obtener la dirección";
   @override
   String get trade_state_paid => "Pagado";
@@ -5714,7 +6276,8 @@ class $es extends S {
   @override
   String get wallet_name => "Nombre de la billetera";
   @override
-  String get error_text_payment_id => "La ID de pago solo puede contener de 16 a 64 caracteres en hexadecimal";
+  String get error_text_payment_id =>
+      "La ID de pago solo puede contener de 16 a 64 caracteres en hexadecimal";
   @override
   String get node_reset_settings_title => "Reiniciar ajustes";
   @override
@@ -5726,7 +6289,8 @@ class $es extends S {
   @override
   String get amount_is_estimate => "El monto recibido es un estimado";
   @override
-  String get error_text_node_address => "Por favor, introduzca una dirección iPv4";
+  String get error_text_node_address =>
+      "Por favor, introduzca una dirección iPv4";
   @override
   String get widgets_restore_from_date => "Restaurar desde fecha";
   @override
@@ -5736,7 +6300,8 @@ class $es extends S {
   @override
   String get new_wallet => "Nueva billetera";
   @override
-  String get settings_display_on_dashboard_list => "Mostrar en la lista del tablero";
+  String get settings_display_on_dashboard_list =>
+      "Mostrar en la lista del tablero";
   @override
   String get transaction_details_title => "Detalles de la transacción";
   @override
@@ -5766,7 +6331,8 @@ class $es extends S {
   @override
   String get seed_language_dutch => "Holandés";
   @override
-  String get restore_description_from_seed_keys => "Recupere su billetera de las semillas/claves que ha guardado en un lugar seguro";
+  String get restore_description_from_seed_keys =>
+      "Recupere su billetera de las semillas/claves que ha guardado en un lugar seguro";
   @override
   String get copy => "Dupdo";
   @override
@@ -5782,9 +6348,11 @@ class $es extends S {
   @override
   String get contact_name => "Nombre de contacto";
   @override
-  String get exchange_result_write_down_ID => "*Copie o escriba su identificación que se muestra arriba.";
+  String get exchange_result_write_down_ID =>
+      "*Copie o escriba su identificación que se muestra arriba.";
   @override
-  String get exchange_result_write_down_trade_id => "Por favor, copia o escribe el ID.";
+  String get exchange_result_write_down_trade_id =>
+      "Por favor, copia o escribe el ID.";
   @override
   String get new_subaddress_title => "Nueva subdirección";
   @override
@@ -5796,7 +6364,8 @@ class $es extends S {
   @override
   String get trade_not_created => "Comercio no se crea.";
   @override
-  String get confirm_delete_wallet => "Esta acción eliminará esta billetera. ¿Desea continuar?";
+  String get confirm_delete_wallet =>
+      "Esta acción eliminará esta billetera. ¿Desea continuar?";
   @override
   String get restore_wallet_name => "Nombre de la billetera";
   @override
@@ -5806,7 +6375,8 @@ class $es extends S {
   @override
   String get rename => "Rebautizar";
   @override
-  String get confirm_delete_template => "Esta acción eliminará esta plantilla. ¿Desea continuar?";
+  String get confirm_delete_template =>
+      "Esta acción eliminará esta plantilla. ¿Desea continuar?";
   @override
   String get restore_active_seed => "Semilla activa";
   @override
@@ -5822,13 +6392,15 @@ class $es extends S {
   @override
   String get show_keys => "Mostrar llaves";
   @override
-  String get error_text_fiat => "El valor de la cantidad no puede exceder el saldo disponible.\nEl número de dígitos de fracción debe ser menor o igual a 2";
+  String get error_text_fiat =>
+      "El valor de la cantidad no puede exceder el saldo disponible.\nEl número de dígitos de fracción debe ser menor o igual a 2";
   @override
   String get addresses => "Direcciones";
   @override
   String get transactions_by_date => "Transacciones por fecha";
   @override
-  String get restore_from_seed_placeholder => "Ingrese o pegue su frase de código aquí";
+  String get restore_from_seed_placeholder =>
+      "Ingrese o pegue su frase de código aquí";
   @override
   String get use => "Utilizar a ";
   @override
@@ -5854,9 +6426,11 @@ class $es extends S {
   @override
   String get address_remove_contact => "Remover contacto";
   @override
-  String get error_text_wallet_name => "El nombre de la billetera solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud";
+  String get error_text_wallet_name =>
+      "El nombre de la billetera solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud";
   @override
-  String get restore_description_from_keys => "Restaure su billetera de las pulsaciones de teclas generadas guardadas de sus claves privadas";
+  String get restore_description_from_keys =>
+      "Restaure su billetera de las pulsaciones de teclas generadas guardadas de sus claves privadas";
   @override
   String get seed_language_next => "Próximo";
   @override
@@ -5872,9 +6446,11 @@ class $es extends S {
   @override
   String get send_title => "Enviar";
   @override
-  String get error_text_keys => "Las llaves de billetera solo pueden contener 64 caracteres en hexadecimal";
+  String get error_text_keys =>
+      "Las llaves de billetera solo pueden contener 64 caracteres en hexadecimal";
   @override
-  String get settings_save_recipient_address => "Guardar dirección del destinatario";
+  String get settings_save_recipient_address =>
+      "Guardar dirección del destinatario";
   @override
   String get change_exchange_provider => "Cambiar proveedor de intercambio";
   @override
@@ -5924,7 +6500,8 @@ class $es extends S {
   @override
   String get ok => "OK";
   @override
-  String get address_remove_content => "¿Estás seguro de que quieres eliminar el contacto seleccionado?";
+  String get address_remove_content =>
+      "¿Estás seguro de que quieres eliminar el contacto seleccionado?";
   @override
   String get wallet_list_title => "Monedero Monero";
   @override
@@ -5952,9 +6529,11 @@ class $es extends S {
   @override
   String get restore_title_from_seed => "De la semilla";
   @override
-  String get restore_description_from_backup => "Puede restaurar toda la aplicación Cake Wallet desde ysu archivo de respaldo";
+  String get restore_description_from_backup =>
+      "Puede restaurar toda la aplicación Cake Wallet desde ysu archivo de respaldo";
   @override
-  String get error_text_node_port => "El puerto de nodo solo puede contener números entre 0 y 65535";
+  String get error_text_node_port =>
+      "El puerto de nodo solo puede contener números entre 0 y 65535";
   @override
   String get add_new_word => "Agregar palabra nueva";
   @override
@@ -5962,69 +6541,97 @@ class $es extends S {
   @override
   String get digit_pin => "-dígito PIN";
   @override
-  String get first_wallet_text => "Impresionante billetera para Monero";
+  String get first_wallet_text =>
+      "Impresionante billetera para Monero y Bitcoin";
   @override
   String get settings_trades => "Comercia";
   @override
   String get account => "Cuenta";
   @override
-  String change_language_to(String language) => "Cambiar el idioma a ${language}?";
+  String change_language_to(String language) =>
+      "Cambiar el idioma a ${language}?";
   @override
-  String change_current_node(String node) => "¿Está seguro de cambiar el nodo actual a ${node}?";
+  String change_current_node(String node) =>
+      "¿Está seguro de cambiar el nodo actual a ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "Billetera ${wallet_name} de carga";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "Billetera ${wallet_name} de carga";
   @override
   String version(String currentVersion) => "Versión ${currentVersion}";
   @override
   String router_no_route(String name) => "No hay ruta definida para ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "El comercio por ${provider} no se crea. La cantidad es menos que mínima: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "El comercio por ${provider} no se crea. La cantidad es menos que mínima: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "Comercio ${tradeId} de ${title} no encontrado.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "Comercio ${tradeId} de ${title} no encontrado.";
   @override
-  String transaction_details_copied(String title) => "${title} Copiado al portapapeles";
+  String transaction_details_copied(String title) =>
+      "${title} Copiado al portapapeles";
   @override
-  String trade_details_copied(String title) => "${title} Copiado al portapapeles";
+  String trade_details_copied(String title) =>
+      "${title} Copiado al portapapeles";
   @override
   String powered_by(String title) => "Energizado por ${title}";
   @override
-  String send_priority(String transactionPriority) => "Actualmente la tarifa se establece en ${transactionPriority} prioridad.\nLa prioridad de la transacción se puede ajustar en la configuración";
+  String send_priority(String transactionPriority) =>
+      "Actualmente la tarifa se establece en ${transactionPriority} prioridad.\nLa prioridad de la transacción se puede ajustar en la configuración";
   @override
-  String trade_for_not_created(String title) => "Comercio por ${title} no se crea.";
+  String trade_for_not_created(String title) =>
+      "Comercio por ${title} no se crea.";
   @override
-  String trade_is_powered_by(String provider) => "Este comercio es impulsado por ${provider}";
+  String trade_is_powered_by(String provider) =>
+      "Este comercio es impulsado por ${provider}";
   @override
   String time(String minutes, String seconds) => "${minutes}m ${seconds}s";
   @override
-  String max_value(String value, String currency) => "Max: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "Max: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "El comercio por ${provider} no se crea. La cantidad es más que el máximo: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "El comercio por ${provider} no se crea. La cantidad es más que el máximo: ${max} ${currency}";
   @override
-  String send_address(String cryptoCurrency) => "Dirección de ${cryptoCurrency}";
+  String send_address(String cryptoCurrency) =>
+      "Dirección de ${cryptoCurrency}";
   @override
-  String min_value(String value, String currency) => "Min: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "Min: ${value} ${currency}";
   @override
-  String failed_authentication(String state_error) => "Autenticación fallida. ${state_error}";
+  String failed_authentication(String state_error) =>
+      "Autenticación fallida. ${state_error}";
   @override
   String Blocks_remaining(String status) => "${status} Bloques restantes";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra arriba.  O puede enviar desde su billetera externa a la dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra arriba.  O puede enviar desde su billetera externa a la dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos.";
   @override
-  String error_text_limits_loading_failed(String provider) => "El comercio por ${provider} no se crea. Límites de carga fallidos";
+  String error_text_limits_loading_failed(String provider) =>
+      "El comercio por ${provider} no se crea. Límites de carga fallidos";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "Envíe ${fetchingLabel} ${from} a la dirección que se muestra arriba.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "Envíe ${fetchingLabel} ${from} a la dirección que se muestra arriba.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "Enviará fondos a\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "Enviará fondos a\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "Error al elimina ${wallet_name} billetera. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "Error al elimina ${wallet_name} billetera. ${error}";
   @override
-  String copied_key_to_clipboard(String key) => "Copiado ${key} al portapapeles";
+  String copied_key_to_clipboard(String key) =>
+      "Copiado ${key} al portapapeles";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "No se pudo cargar  ${wallet_name} la billetera. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "No se pudo cargar  ${wallet_name} la billetera. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "Retirar ${wallet_name} billetera";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "Retirar ${wallet_name} billetera";
 }
 
 class $nl extends S {
@@ -6062,7 +6669,8 @@ class $nl extends S {
   @override
   String get trade_id => "Trade ID:";
   @override
-  String get restore_description_from_seed => "Herstel uw portemonnee van het 25 woord of 13 woord combinatiecode";
+  String get restore_description_from_seed =>
+      "Herstel uw portemonnee van het 25 woord of 13 woord combinatiecode";
   @override
   String get trade_state_underpaid => "Slecht betaald";
   @override
@@ -6074,7 +6682,8 @@ class $nl extends S {
   @override
   String get send_templates => "Sjablonen";
   @override
-  String get please_try_to_connect_to_another_node => "Probeer verbinding te maken met een ander knooppunt";
+  String get please_try_to_connect_to_another_node =>
+      "Probeer verbinding te maken met een ander knooppunt";
   @override
   String get trade_state_traded => "Traded";
   @override
@@ -6108,7 +6717,8 @@ class $nl extends S {
   @override
   String get receive_amount => "Bedrag";
   @override
-  String get settings_allow_biometrical_authentication => "Biometrische authenticatie toestaan";
+  String get settings_allow_biometrical_authentication =>
+      "Biometrische authenticatie toestaan";
   @override
   String get view_key_private => "Bekijk sleutel (privaat)";
   @override
@@ -6118,13 +6728,16 @@ class $nl extends S {
   @override
   String get send_sending => "Bezig met verzenden...";
   @override
-  String get error_text_address => "Portemonnee-adres moet overeenkomen met het type\nvan cryptocurrency";
+  String get error_text_address =>
+      "Portemonnee-adres moet overeenkomen met het type\nvan cryptocurrency";
   @override
   String get send_your_wallet => "Uw portemonnee";
   @override
-  String get remove_node_message => "Weet u zeker dat u het geselecteerde knooppunt wilt verwijderen?";
+  String get remove_node_message =>
+      "Weet u zeker dat u het geselecteerde knooppunt wilt verwijderen?";
   @override
-  String get error_text_account_name => "Accountnaam mag alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn";
+  String get error_text_account_name =>
+      "Accountnaam mag alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn";
   @override
   String get reconnection => "Reconnection";
   @override
@@ -6138,19 +6751,22 @@ class $nl extends S {
   @override
   String get reconnect => "Sluit";
   @override
-  String get reconnect_alert_text => "Weet u zeker dat u opnieuw verbinding wilt maken?";
+  String get reconnect_alert_text =>
+      "Weet u zeker dat u opnieuw verbinding wilt maken?";
   @override
   String get send_error_minimum_value => "Minimale waarde van bedrag is 0,01";
   @override
   String get copy_address => "Adres kopiëren";
   @override
-  String get error_text_subaddress_name => "Naam subadres mag niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 20 tekens lang zijn";
+  String get error_text_subaddress_name =>
+      "Naam subadres mag niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 20 tekens lang zijn";
   @override
   String get incorrect_seed => "De ingevoerde tekst is niet geldig.";
   @override
   String get settings_all => "ALLE";
   @override
-  String get nodes_list_reset_to_default_message => "Weet u zeker dat u de standaardinstellingen wilt herstellen?";
+  String get nodes_list_reset_to_default_message =>
+      "Weet u zeker dat u de standaardinstellingen wilt herstellen?";
   @override
   String get receive => "Krijgen";
   @override
@@ -6166,7 +6782,8 @@ class $nl extends S {
   @override
   String get settings_display_balance_as => "Toon saldo als";
   @override
-  String get placeholder_transactions => "Uw transacties worden hier weergegeven";
+  String get placeholder_transactions =>
+      "Uw transacties worden hier weergegeven";
   @override
   String get trade_details_provider => "Leverancier";
   @override
@@ -6188,9 +6805,13 @@ class $nl extends S {
   @override
   String get settings_title => "Instellingen";
   @override
+  String get restore_bitcoin_description_from_seed =>
+      "Herstel uw portemonnee met een combinatiecode van 12 woorden";
+  @override
   String get address_book_menu => "Adresboek";
   @override
-  String get wallet_restoration_store_incorrect_seed_length => "Onjuiste zaadlengte";
+  String get wallet_restoration_store_incorrect_seed_length =>
+      "Onjuiste zaadlengte";
   @override
   String get seed_language_spanish => "Spaans";
   @override
@@ -6212,15 +6833,18 @@ class $nl extends S {
   @override
   String get please_select => "Selecteer alstublieft:";
   @override
-  String get restore_title_from_backup => "Herstellen vanuit een back-upbestand";
+  String get restore_title_from_backup =>
+      "Herstellen vanuit een back-upbestand";
   @override
   String get full_balance => "Volledig saldo";
   @override
   String get sync_status_not_connected => "NIET VERBONDEN";
   @override
-  String get error_text_crypto_currency => "Het aantal breukcijfers\nmoet kleiner zijn dan of gelijk zijn aan 12";
+  String get error_text_crypto_currency =>
+      "Het aantal breukcijfers\nmoet kleiner zijn dan of gelijk zijn aan 12";
   @override
-  String get error_text_contact_name => "Naam contactpersoon kan niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 32 tekens lang zijn";
+  String get error_text_contact_name =>
+      "Naam contactpersoon kan niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 32 tekens lang zijn";
   @override
   String get restore_seed_keys_restore => "Zaad / sleutels herstellen";
   @override
@@ -6282,7 +6906,8 @@ class $nl extends S {
   @override
   String get copy_id => "ID kopiëren";
   @override
-  String get please_make_selection => "Maak hieronder uw keuze tot maak of herstel je portemonnee.";
+  String get please_make_selection =>
+      "Maak hieronder uw keuze tot maak of herstel je portemonnee.";
   @override
   String get loading_your_wallet => "Uw portemonnee laden";
   @override
@@ -6292,7 +6917,8 @@ class $nl extends S {
   @override
   String get nodes => "Knooppunten";
   @override
-  String get error_text_template => "Sjabloonnaam en -adres mogen niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 106 tekens lang zijn";
+  String get error_text_template =>
+      "Sjabloonnaam en -adres mogen niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 106 tekens lang zijn";
   @override
   String get seed_share => "Deel zaad";
   @override
@@ -6318,10 +6944,16 @@ class $nl extends S {
   @override
   String get trade_state_complete => "Compleet";
   @override
-  String get error_text_xmr => "XMR-waarde kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 12";
+  String get error_text_xmr =>
+      "XMR-waarde kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 12";
   @override
   String get xmr_available_balance => "XMR Beschikbaar saldo";
   @override
+  String get restore_bitcoin_description_from_keys =>
+      "Herstel uw portemonnee van de gegenereerde WIF-string van uw privésleutels";
+  @override
+  String get restore_bitcoin_title_from_keys => "Herstel van WIF";
+  @override
   String get scan_qr_code => "Scan de QR-code om het adres te krijgen";
   @override
   String get trade_state_paid => "Betaald";
@@ -6346,7 +6978,8 @@ class $nl extends S {
   @override
   String get wallet_name => "Portemonnee naam";
   @override
-  String get error_text_payment_id => "Betalings-ID kan alleen 16 tot 64 tekens bevatten in hexadecimale volgorde";
+  String get error_text_payment_id =>
+      "Betalings-ID kan alleen 16 tot 64 tekens bevatten in hexadecimale volgorde";
   @override
   String get node_reset_settings_title => "Reset instellingen";
   @override
@@ -6368,7 +7001,8 @@ class $nl extends S {
   @override
   String get new_wallet => "Nieuwe portemonnee";
   @override
-  String get settings_display_on_dashboard_list => "Weergeven op dashboardlijst";
+  String get settings_display_on_dashboard_list =>
+      "Weergeven op dashboardlijst";
   @override
   String get transaction_details_title => "Transactie details";
   @override
@@ -6398,7 +7032,8 @@ class $nl extends S {
   @override
   String get seed_language_dutch => "Nederlands";
   @override
-  String get restore_description_from_seed_keys => "Ontvang uw portemonnee terug uit seed / keys die u hebt opgeslagen op een veilige plaats";
+  String get restore_description_from_seed_keys =>
+      "Ontvang uw portemonnee terug uit seed / keys die u hebt opgeslagen op een veilige plaats";
   @override
   String get copy => "Kopiëren";
   @override
@@ -6414,9 +7049,11 @@ class $nl extends S {
   @override
   String get contact_name => "Contactnaam";
   @override
-  String get exchange_result_write_down_ID => "*Kopieer of noteer uw hierboven getoonde ID.";
+  String get exchange_result_write_down_ID =>
+      "*Kopieer of noteer uw hierboven getoonde ID.";
   @override
-  String get exchange_result_write_down_trade_id => "Kopieer of noteer de handels-ID om door te gaan.";
+  String get exchange_result_write_down_trade_id =>
+      "Kopieer of noteer de handels-ID om door te gaan.";
   @override
   String get new_subaddress_title => "Nieuw subadres";
   @override
@@ -6428,7 +7065,8 @@ class $nl extends S {
   @override
   String get trade_not_created => "Handel niet gecreëerd.";
   @override
-  String get confirm_delete_wallet => "Met deze actie wordt deze portemonnee verwijderd. Wilt u doorgaan?";
+  String get confirm_delete_wallet =>
+      "Met deze actie wordt deze portemonnee verwijderd. Wilt u doorgaan?";
   @override
   String get restore_wallet_name => "Portemonnee naam";
   @override
@@ -6438,7 +7076,8 @@ class $nl extends S {
   @override
   String get rename => "Hernoemen";
   @override
-  String get confirm_delete_template => "Met deze actie wordt deze sjabloon verwijderd. Wilt u doorgaan?";
+  String get confirm_delete_template =>
+      "Met deze actie wordt deze sjabloon verwijderd. Wilt u doorgaan?";
   @override
   String get restore_active_seed => "Actief zaad";
   @override
@@ -6454,13 +7093,15 @@ class $nl extends S {
   @override
   String get show_keys => "Toon sleutels";
   @override
-  String get error_text_fiat => "Waarde van bedrag kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 2";
+  String get error_text_fiat =>
+      "Waarde van bedrag kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 2";
   @override
   String get addresses => "Adressen";
   @override
   String get transactions_by_date => "Transacties op datum";
   @override
-  String get restore_from_seed_placeholder => "Voer hier uw codefrase in of plak deze";
+  String get restore_from_seed_placeholder =>
+      "Voer hier uw codefrase in of plak deze";
   @override
   String get use => "Gebruik ";
   @override
@@ -6486,9 +7127,11 @@ class $nl extends S {
   @override
   String get address_remove_contact => "Contact verwijderen";
   @override
-  String get error_text_wallet_name => "Naam portemonnee kan alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn";
+  String get error_text_wallet_name =>
+      "Naam portemonnee kan alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn";
   @override
-  String get restore_description_from_keys => "Herstel uw portemonnee van gegenereerd toetsaanslagen opgeslagen van uw privésleutels";
+  String get restore_description_from_keys =>
+      "Herstel uw portemonnee van gegenereerd toetsaanslagen opgeslagen van uw privésleutels";
   @override
   String get seed_language_next => "Volgende";
   @override
@@ -6504,7 +7147,8 @@ class $nl extends S {
   @override
   String get send_title => "Stuur";
   @override
-  String get error_text_keys => "Portefeuillesleutels kunnen maximaal 64 tekens bevatten in hexadecimale volgorde";
+  String get error_text_keys =>
+      "Portefeuillesleutels kunnen maximaal 64 tekens bevatten in hexadecimale volgorde";
   @override
   String get settings_save_recipient_address => "Adres ontvanger opslaan";
   @override
@@ -6546,7 +7190,8 @@ class $nl extends S {
   @override
   String get restore_address => "Adres";
   @override
-  String get restore_wallet_restore_description => "Portemonnee-herstelbeschrijving";
+  String get restore_wallet_restore_description =>
+      "Portemonnee-herstelbeschrijving";
   @override
   String get today => "Vandaag";
   @override
@@ -6556,7 +7201,8 @@ class $nl extends S {
   @override
   String get ok => "OK";
   @override
-  String get address_remove_content => "Weet u zeker dat u het geselecteerde contact wilt verwijderen?";
+  String get address_remove_content =>
+      "Weet u zeker dat u het geselecteerde contact wilt verwijderen?";
   @override
   String get wallet_list_title => "Monero portemonnee";
   @override
@@ -6584,9 +7230,11 @@ class $nl extends S {
   @override
   String get restore_title_from_seed => "Herstel van zaad";
   @override
-  String get restore_description_from_backup => "Je kunt de hele Cake Wallet-app herstellen van uw back-upbestand";
+  String get restore_description_from_backup =>
+      "Je kunt de hele Cake Wallet-app herstellen van uw back-upbestand";
   @override
-  String get error_text_node_port => "Knooppuntpoort kan alleen nummers tussen 0 en 65535 bevatten";
+  String get error_text_node_port =>
+      "Knooppuntpoort kan alleen nummers tussen 0 en 65535 bevatten";
   @override
   String get add_new_word => "Nieuw woord toevoegen";
   @override
@@ -6594,69 +7242,96 @@ class $nl extends S {
   @override
   String get digit_pin => "-cijferige PIN";
   @override
-  String get first_wallet_text => "Geweldige portemonnee fvoor Monero";
+  String get first_wallet_text =>
+      "Geweldige portemonnee fvoor Monero en Bitcoin";
   @override
   String get settings_trades => "Trades";
   @override
   String get account => "Account";
   @override
-  String change_language_to(String language) => "Verander de taal in ${language}?";
+  String change_language_to(String language) =>
+      "Verander de taal in ${language}?";
   @override
-  String change_current_node(String node) => "Weet u zeker dat u het huidige knooppunt wilt wijzigen in ${node}?";
+  String change_current_node(String node) =>
+      "Weet u zeker dat u het huidige knooppunt wilt wijzigen in ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "Bezig met laden ${wallet_name} portemonnee";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "Bezig met laden ${wallet_name} portemonnee";
   @override
   String version(String currentVersion) => "Versie ${currentVersion}";
   @override
   String router_no_route(String name) => "Geen route gedefinieerd voor ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "Ruil voor ${provider} is niet gemaakt. Bedrag is minder dan minimaal: ${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "Ruil voor ${provider} is niet gemaakt. Bedrag is minder dan minimaal: ${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "Handel ${tradeId} van ${title} niet gevonden.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "Handel ${tradeId} van ${title} niet gevonden.";
   @override
-  String transaction_details_copied(String title) => "${title} gekopieerd naar het klembord";
+  String transaction_details_copied(String title) =>
+      "${title} gekopieerd naar het klembord";
   @override
-  String trade_details_copied(String title) => "${title} gekopieerd naar het klembord";
+  String trade_details_copied(String title) =>
+      "${title} gekopieerd naar het klembord";
   @override
   String powered_by(String title) => "Aangedreven door ${title}";
   @override
-  String send_priority(String transactionPriority) => "Momenteel is de vergoeding vastgesteld op ${transactionPriority} prioriteit.\nTransactieprioriteit kan worden aangepast in de instellingen";
+  String send_priority(String transactionPriority) =>
+      "Momenteel is de vergoeding vastgesteld op ${transactionPriority} prioriteit.\nTransactieprioriteit kan worden aangepast in de instellingen";
   @override
-  String trade_for_not_created(String title) => "Ruilen voor ${title} is niet gemaakt.";
+  String trade_for_not_created(String title) =>
+      "Ruilen voor ${title} is niet gemaakt.";
   @override
-  String trade_is_powered_by(String provider) => "Deze transactie wordt mogelijk gemaakt door ${provider}";
+  String trade_is_powered_by(String provider) =>
+      "Deze transactie wordt mogelijk gemaakt door ${provider}";
   @override
   String time(String minutes, String seconds) => "${minutes}m ${seconds}s";
   @override
-  String max_value(String value, String currency) => "Max: ${value} ${currency}";
+  String max_value(String value, String currency) =>
+      "Max: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "Ruil voor ${provider} is niet gemaakt. Bedrag is meer dan maximaal: ${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "Ruil voor ${provider} is niet gemaakt. Bedrag is meer dan maximaal: ${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "${cryptoCurrency}-adres";
   @override
-  String min_value(String value, String currency) => "Min: ${value} ${currency}";
+  String min_value(String value, String currency) =>
+      "Min: ${value} ${currency}";
   @override
-  String failed_authentication(String state_error) => "Mislukte authenticatie. ${state_error}";
+  String failed_authentication(String state_error) =>
+      "Mislukte authenticatie. ${state_error}";
   @override
   String Blocks_remaining(String status) => "${status} Resterende blokken";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar bovenstaand adres. Of u kunt uw externe portemonnee naar bovenstaand adres / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen.";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar bovenstaand adres. Of u kunt uw externe portemonnee naar bovenstaand adres / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen.";
   @override
-  String error_text_limits_loading_failed(String provider) => "Ruil voor ${provider} is niet gemaakt. Beperkingen laden mislukt";
+  String error_text_limits_loading_failed(String provider) =>
+      "Ruil voor ${provider} is niet gemaakt. Beperkingen laden mislukt";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "Zend alstublieft ${fetchingLabel} ${from} naar bovenstaand adres.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "Zend alstublieft ${fetchingLabel} ${from} naar bovenstaand adres.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "U stuurt geld naar\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "U stuurt geld naar\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "Verwijderen mislukt ${wallet_name} portemonnee. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "Verwijderen mislukt ${wallet_name} portemonnee. ${error}";
   @override
-  String copied_key_to_clipboard(String key) => "Gekopieerd ${key} naar het klembord";
+  String copied_key_to_clipboard(String key) =>
+      "Gekopieerd ${key} naar het klembord";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "Laden mislukt ${wallet_name} portemonnee. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "Laden mislukt ${wallet_name} portemonnee. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "Verwijderen ${wallet_name} portemonnee";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "Verwijderen ${wallet_name} portemonnee";
 }
 
 class $zh extends S {
@@ -6820,6 +7495,8 @@ class $zh extends S {
   @override
   String get settings_title => "设定值";
   @override
+  String get restore_bitcoin_description_from_seed => "從12個單詞的組合碼恢復您的錢包";
+  @override
   String get address_book_menu => "地址簿";
   @override
   String get wallet_restoration_store_incorrect_seed_length => "种子长度错误";
@@ -6954,6 +7631,10 @@ class $zh extends S {
   @override
   String get xmr_available_balance => "XMR 可用余额 ";
   @override
+  String get restore_bitcoin_description_from_keys => "從私鑰中生成的WIF字符串還原您的錢包";
+  @override
+  String get restore_bitcoin_title_from_keys => "從WIF還原";
+  @override
   String get scan_qr_code => "掃描二維碼獲取地址";
   @override
   String get trade_state_paid => "已付费";
@@ -7226,7 +7907,7 @@ class $zh extends S {
   @override
   String get digit_pin => "数字别针";
   @override
-  String get first_wallet_text => "很棒的钱包 对于 Monero";
+  String get first_wallet_text => "很棒的钱包 对于 Monero 和 Bitcoin";
   @override
   String get settings_trades => "交易";
   @override
@@ -7236,15 +7917,19 @@ class $zh extends S {
   @override
   String change_current_node(String node) => "您确定将当前节点更改为 ${node}?";
   @override
-  String wallet_list_loading_wallet(String wallet_name) => "载入中 ${wallet_name} 钱包";
+  String wallet_list_loading_wallet(String wallet_name) =>
+      "载入中 ${wallet_name} 钱包";
   @override
   String version(String currentVersion) => "版 ${currentVersion}";
   @override
   String router_no_route(String name) => "未定义路线 ${name}";
   @override
-  String error_text_minimal_limit(String provider, String min, String currency) => "未創建 ${provider} 交易。 金額少於最小值:${min} ${currency}";
+  String error_text_minimal_limit(
+          String provider, String min, String currency) =>
+      "未創建 ${provider} 交易。 金額少於最小值:${min} ${currency}";
   @override
-  String trade_id_not_found(String tradeId, String title) => "贸易方式 ${tradeId} 的 ${title} 未找到.";
+  String trade_id_not_found(String tradeId, String title) =>
+      "贸易方式 ${tradeId} 的 ${title} 未找到.";
   @override
   String transaction_details_copied(String title) => "${title} 复制到剪贴板";
   @override
@@ -7252,7 +7937,8 @@ class $zh extends S {
   @override
   String powered_by(String title) => "供电 ${title}";
   @override
-  String send_priority(String transactionPriority) => "目前,费用设置为 ${transactionPriority} 优先.\n交易优先级可以在设置中进行调整";
+  String send_priority(String transactionPriority) =>
+      "目前,费用设置为 ${transactionPriority} 优先.\n交易优先级可以在设置中进行调整";
   @override
   String trade_for_not_created(String title) => "交易 ${title} 未创建.";
   @override
@@ -7262,7 +7948,9 @@ class $zh extends S {
   @override
   String max_value(String value, String currency) => "最高: ${value} ${currency}";
   @override
-  String error_text_maximum_limit(String provider, String max, String currency) => "未創建 ${provider} 交易。 金額大於最大值:${max} ${currency}";
+  String error_text_maximum_limit(
+          String provider, String max, String currency) =>
+      "未創建 ${provider} 交易。 金額大於最大值:${max} ${currency}";
   @override
   String send_address(String cryptoCurrency) => "${cryptoCurrency} 地址";
   @override
@@ -7272,23 +7960,32 @@ class $zh extends S {
   @override
   String Blocks_remaining(String status) => "${status} 剩余的块";
   @override
-  String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到上面显示的地址. 或者,您也可以从外部钱包发送上述地址/ QR码。\n\n请按确认继续或返回以更改金额";
+  String exchange_result_confirm(
+          String fetchingLabel, String from, String walletName) =>
+      "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到上面显示的地址. 或者,您也可以从外部钱包发送上述地址/ QR码。\n\n请按确认继续或返回以更改金额";
   @override
-  String error_text_limits_loading_failed(String provider) => "未創建 ${provider} 交易。 限制加載失敗";
+  String error_text_limits_loading_failed(String provider) =>
+      "未創建 ${provider} 交易。 限制加載失敗";
   @override
-  String exchange_result_description(String fetchingLabel, String from) => "请发送 ${fetchingLabel} ${from} 到上面显示的地址.";
+  String exchange_result_description(String fetchingLabel, String from) =>
+      "请发送 ${fetchingLabel} ${from} 到上面显示的地址.";
   @override
-  String commit_transaction_amount_fee(String amount, String fee) => "提交交易\n量: ${amount}\nFee: ${fee}";
+  String commit_transaction_amount_fee(String amount, String fee) =>
+      "提交交易\n量: ${amount}\nFee: ${fee}";
   @override
-  String openalias_alert_content(String recipient_name) => "您將匯款至\n${recipient_name}";
+  String openalias_alert_content(String recipient_name) =>
+      "您將匯款至\n${recipient_name}";
   @override
-  String wallet_list_failed_to_remove(String wallet_name, String error) => "删除失败 ${wallet_name} 钱包. ${error}";
+  String wallet_list_failed_to_remove(String wallet_name, String error) =>
+      "删除失败 ${wallet_name} 钱包. ${error}";
   @override
   String copied_key_to_clipboard(String key) => "复制 ${key} 到剪贴板";
   @override
-  String wallet_list_failed_to_load(String wallet_name, String error) => "加载失败 ${wallet_name} 钱包. ${error}";
+  String wallet_list_failed_to_load(String wallet_name, String error) =>
+      "加载失败 ${wallet_name} 钱包. ${error}";
   @override
-  String wallet_list_removing_wallet(String wallet_name) => "拆下 ${wallet_name} 钱包";
+  String wallet_list_removing_wallet(String wallet_name) =>
+      "拆下 ${wallet_name} 钱包";
 }
 
 class GeneratedLocalizationsDelegate extends LocalizationsDelegate<S> {
@@ -7311,7 +8008,8 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate<S> {
     ];
   }
 
-  LocaleListResolutionCallback listResolution({Locale fallback, bool withCountry = true}) {
+  LocaleListResolutionCallback listResolution(
+      {Locale fallback, bool withCountry = true}) {
     return (List<Locale> locales, Iterable<Locale> supported) {
       if (locales == null || locales.isEmpty) {
         return fallback ?? supported.first;
@@ -7321,7 +8019,8 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate<S> {
     };
   }
 
-  LocaleResolutionCallback resolution({Locale fallback, bool withCountry = true}) {
+  LocaleResolutionCallback resolution(
+      {Locale fallback, bool withCountry = true}) {
     return (Locale locale, Iterable<Locale> supported) {
       return _resolve(locale, fallback, supported, withCountry);
     };
@@ -7369,7 +8068,7 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate<S> {
           S.current = const $zh();
           return SynchronousFuture<S>(S.current);
         default:
-          // NO-OP.
+        // NO-OP.
       }
     }
     S.current = const S();
@@ -7385,7 +8084,8 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate<S> {
   ///
   /// Internal method to resolve a locale from a list of locales.
   ///
-  Locale _resolve(Locale locale, Locale fallback, Iterable<Locale> supported, bool withCountry) {
+  Locale _resolve(Locale locale, Locale fallback, Iterable<Locale> supported,
+      bool withCountry) {
     if (locale == null || !_isSupported(locale, withCountry)) {
       return fallback ?? supported.first;
     }
@@ -7418,7 +8118,9 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate<S> {
         }
 
         // If no country requirement is requested, check if this locale has no country.
-        if (true != withCountry && (supportedLocale.countryCode == null || supportedLocale.countryCode.isEmpty)) {
+        if (true != withCountry &&
+            (supportedLocale.countryCode == null ||
+                supportedLocale.countryCode.isEmpty)) {
           return true;
         }
       }
@@ -7428,7 +8130,7 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate<S> {
 }
 
 String getLang(Locale l) => l == null
-  ? null
-  : l.countryCode != null && l.countryCode.isEmpty
-    ? l.languageCode
-    : l.toString();
+    ? null
+    : l.countryCode != null && l.countryCode.isEmpty
+        ? l.languageCode
+        : l.toString();
diff --git a/lib/monero/monero_wallet.dart b/lib/monero/monero_wallet.dart
index a98e76230..d7e8a4d26 100644
--- a/lib/monero/monero_wallet.dart
+++ b/lib/monero/monero_wallet.dart
@@ -1,3 +1,4 @@
+import 'package:cake_wallet/src/domain/monero/monero_transaction_creation_credentials.dart';
 import 'package:flutter/foundation.dart';
 import 'package:mobx/mobx.dart';
 import 'package:cw_monero/wallet.dart';
@@ -18,7 +19,8 @@ import 'package:cake_wallet/src/domain/monero/subaddress.dart';
 import 'package:cake_wallet/src/domain/common/node.dart';
 import 'package:cake_wallet/core/pending_transaction.dart';
 import 'package:cake_wallet/src/domain/common/transaction_priority.dart';
-import 'package:cake_wallet/src/domain/common/calculate_fiat_amount.dart' as cfa;
+import 'package:cake_wallet/src/domain/common/calculate_fiat_amount.dart'
+    as cfa;
 
 part 'monero_wallet.g.dart';
 
@@ -137,16 +139,16 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance> with Store {
 
   @override
   Future<PendingTransaction> createTransaction(Object credentials) async {
-//    final _credentials = credentials as MoneroTransactionCreationCredentials;
-//    final transactionDescription = await transaction_history.createTransaction(
-//        address: _credentials.address,
-//        paymentId: _credentials.paymentId,
-//        amount: _credentials.amount,
-//        priorityRaw: _credentials.priority.serialize(),
-//        accountIndex: _account.value.id);
-//
-//    return PendingTransaction.fromTransactionDescription(
-//        transactionDescription);
+    final _credentials = credentials as MoneroTransactionCreationCredentials;
+    //  final transactionDescription = await transaction_history.createTransaction(
+    //      address: _credentials.address,
+    //      paymentId: _credentials.paymentId,
+    //      amount: _credentials.amount,
+    //      priorityRaw: _credentials.priority.serialize(),
+    //      accountIndex: _account.value.id);
+
+    //  return PendingTransaction.fromTransactionDescription(
+    //      transactionDescription);
   }
 
   @override
diff --git a/lib/monero/monero_wallet_service.dart b/lib/monero/monero_wallet_service.dart
index 1c8d33579..c6e2d20af 100644
--- a/lib/monero/monero_wallet_service.dart
+++ b/lib/monero/monero_wallet_service.dart
@@ -1,3 +1,5 @@
+import 'dart:io';
+
 import 'package:cake_wallet/monero/monero_wallet.dart';
 import 'package:cake_wallet/core/wallet_credentials.dart';
 import 'package:cake_wallet/core/wallet_service.dart';
@@ -60,7 +62,7 @@ class MoneroWalletService extends WalletService<
 
       return wallet;
     } catch (e) {
-      // TODO: Implement Exception fop wallet list service.
+      // TODO: Implement Exception for wallet list service.
       print('MoneroWalletsManager Error: $e');
       rethrow;
     }
@@ -72,7 +74,7 @@ class MoneroWalletService extends WalletService<
       final path = await pathForWallet(name: name, type: WalletType.monero);
       return monero_wallet_manager.isWalletExist(path: path);
     } catch (e) {
-      // TODO: Implement Exception fop wallet list service.
+      // TODO: Implement Exception for wallet list service.
       print('MoneroWalletsManager Error: $e');
       rethrow;
     }
@@ -83,26 +85,21 @@ class MoneroWalletService extends WalletService<
     try {
       final path = await pathForWallet(name: name, type: WalletType.monero);
       monero_wallet_manager.openWallet(path: path, password: password);
-
-//      final id = walletTypeToString(WalletType.monero).toLowerCase() + '_' + name;
-//      final walletInfo = walletInfoSource.values
-//          .firstWhere((info) => info.id == id, orElse: () => null);
-
       final wallet = MoneroWallet(filename: monero_wallet.getFilename());
       await wallet.init();
 
       return wallet;
     } catch (e) {
-      // TODO: Implement Exception fop wallet list service.
+      // TODO: Implement Exception for wallet list service.
       print('MoneroWalletsManager Error: $e');
       rethrow;
     }
   }
 
-  Future<void> remove(String wallet) async {
-    // TODO: implement remove
-    throw UnimplementedError();
-  }
+  @override
+  Future<void> remove(String wallet) async =>
+      File(await pathForWalletDir(name: wallet, type: WalletType.bitcoin))
+          .delete(recursive: true);
 
   @override
   Future<MoneroWallet> restoreFromKeys(
@@ -125,7 +122,7 @@ class MoneroWalletService extends WalletService<
 
       return wallet;
     } catch (e) {
-      // TODO: Implement Exception fop wallet list service.
+      // TODO: Implement Exception for wallet list service.
       print('MoneroWalletsManager Error: $e');
       rethrow;
     }
@@ -149,7 +146,7 @@ class MoneroWalletService extends WalletService<
 
       return wallet;
     } catch (e) {
-      // TODO: Implement Exception fop wallet list service.
+      // TODO: Implement Exception for wallet list service.
       print('MoneroWalletsManager Error: $e');
       rethrow;
     }
diff --git a/lib/palette.dart b/lib/palette.dart
index 809c4f085..3988a53ef 100644
--- a/lib/palette.dart
+++ b/lib/palette.dart
@@ -90,6 +90,8 @@ class PaletteDark {
   static const Color distantBlue = Color.fromRGBO(72, 85, 131, 1.0);
   static const Color moderateVioletBlue = Color.fromRGBO(62, 73, 113, 1.0);
   static const Color deepVioletBlue = Color.fromRGBO(52, 66, 104, 1.0);
+  static const Color lightPurpleBlue = Color.fromRGBO(120, 133, 170, 1.0);
+  static const Color indicatorVioletBlue = Color.fromRGBO(59, 72, 119, 1.0);
 
   // FIXME: Rename.
   static const Color eee = Color.fromRGBO(236, 239, 245, 1.0);
diff --git a/lib/reactions/bootstrap.dart b/lib/reactions/bootstrap.dart
index 797f2cfb6..b371ed74e 100644
--- a/lib/reactions/bootstrap.dart
+++ b/lib/reactions/bootstrap.dart
@@ -24,7 +24,8 @@ import 'package:cake_wallet/store/dashboard/fiat_convertation_store.dart';
 // FIXME: move me
 Future<void> loadCurrentWallet() async {
   final appStore = getIt.get<AppStore>();
-  final name = getIt.get<SharedPreferences>().getString('current_wallet_name');
+  final name = 'test';
+  getIt.get<SharedPreferences>().getString('current_wallet_name');
   final typeRaw =
       getIt.get<SharedPreferences>().getInt('current_wallet_type') ?? 0;
   final type = deserializeFromInt(typeRaw);
diff --git a/lib/router.dart b/lib/router.dart
index 68e010293..14f658e0c 100644
--- a/lib/router.dart
+++ b/lib/router.dart
@@ -2,6 +2,7 @@ import 'package:cake_wallet/src/screens/dashboard/dashboard_page.dart';
 import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart';
 import 'package:cake_wallet/view_model/wallet_new_vm.dart';
 import 'package:cake_wallet/view_model/wallet_restoration_from_seed_vm.dart';
+import 'package:cake_wallet/view_model/wallet_restoration_from_keys_vm.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_secure_storage/flutter_secure_storage.dart';
@@ -165,6 +166,7 @@ class Router {
             builder: (_) => NewWalletTypePage(
                   onTypeSelected: (context, type) => Navigator.of(context)
                       .pushNamed(Routes.restoreWalletOptions, arguments: type),
+                  isNewWallet: false,
                 ));
 
       case Routes.restoreOptions:
@@ -196,7 +198,7 @@ class Router {
                       ? Routes.seedLanguage
                       : Routes.restoreWalletFromKeys;
                   final args = type == WalletType.monero
-                      ? [type, Routes.restoreWalletFromSeed]
+                      ? [type, Routes.restoreWalletFromKeys]
                       : [type];
 
                   Navigator.of(context).pushNamed(route, arguments: args);
@@ -236,17 +238,12 @@ class Router {
             ? args[1] as String
             : 'English'; // FIXME: Unnamed constant; English default and only one language for bitcoin.
 
+        final walletRestorationFromKeysVM =
+        getIt.get<WalletRestorationFromKeysVM>(param1: [type, language]);
+
         return CupertinoPageRoute<void>(
-            builder: (_) =>
-                ProxyProvider<AuthenticationStore, WalletRestorationStore>(
-                    update: (_, authStore, __) => WalletRestorationStore(
-                        authStore: authStore,
-                        sharedPreferences: sharedPreferences,
-                        walletListService: walletListService),
-                    child: RestoreWalletFromKeysPage(
-                        walletsService: walletListService,
-                        walletService: walletService,
-                        sharedPreferences: sharedPreferences)));
+            builder: (_) => RestoreWalletFromKeysPage(
+                walletRestorationFromKeysVM: walletRestorationFromKeysVM));
 
       case Routes.dashboard:
         return CupertinoPageRoute<void>(
@@ -340,11 +337,11 @@ class Router {
 
       case Routes.addressBook:
         return MaterialPageRoute<void>(
-            builder: (_) => getIt.get<ContactListPage>());
+            builder: (_) => getIt.get<ContactListPage>(param1: true));
 
       case Routes.pickerAddressBook:
         return MaterialPageRoute<void>(
-            builder: (_) => getIt.get<ContactListPage>());
+            builder: (_) => getIt.get<ContactListPage>(param1: false));
 
       case Routes.addressBookAddContact:
         return CupertinoPageRoute<void>(
@@ -360,24 +357,6 @@ class Router {
         return CupertinoPageRoute<void>(
             builder: (_) => getIt.get<ExchangeTradePage>());
 
-                /*MultiProvider(
-                  providers: [
-                    ProxyProvider<SettingsStore, ExchangeTradeStore>(
-                      update: (_, settingsStore, __) => ExchangeTradeStore(
-                          trade: settings.arguments as Trade,
-                          walletStore: walletStore,
-                          trades: trades),
-                    ),
-                    ProxyProvider<SettingsStore, SendStore>(
-                        update: (_, settingsStore, __) => SendStore(
-                            transactionDescriptions: transactionDescriptions,
-                            walletService: walletService,
-                            settingsStore: settingsStore,
-                            priceStore: priceStore)),
-                  ],
-                  child: ExchangeTradePage(),
-                ));*/
-
       case Routes.exchangeConfirm:
         return MaterialPageRoute<void>(
             builder: (_) => getIt.get<ExchangeConfirmPage>());
diff --git a/lib/src/domain/common/biometric_auth.dart b/lib/src/domain/common/biometric_auth.dart
index 50fff4cf8..ab5d62445 100644
--- a/lib/src/domain/common/biometric_auth.dart
+++ b/lib/src/domain/common/biometric_auth.dart
@@ -3,22 +3,28 @@ import 'package:flutter/services.dart';
 import 'package:cake_wallet/generated/i18n.dart';
 
 class BiometricAuth {
+  final _localAuth = LocalAuthentication();
 
   Future<bool> isAuthenticated() async {
-    final LocalAuthentication _localAuth = LocalAuthentication();
-
     try {
       return await _localAuth.authenticateWithBiometrics(
           localizedReason: S.current.biometric_auth_reason,
           useErrorDialogs: true,
-          stickyAuth: false
-      );
-    } on PlatformException
-    catch(e) {
+          stickyAuth: false);
+    } on PlatformException catch (e) {
       print(e);
     }
 
     return false;
   }
 
-}
\ No newline at end of file
+  Future<bool> canCheckBiometrics() async {
+    try {
+      return await _localAuth.canCheckBiometrics;
+    } on PlatformException catch (e) {
+      print(e);
+    }
+
+    return false;
+  }
+}
diff --git a/lib/src/domain/common/contact.dart b/lib/src/domain/common/contact.dart
index faa4f8ecf..4aca925eb 100644
--- a/lib/src/domain/common/contact.dart
+++ b/lib/src/domain/common/contact.dart
@@ -1,11 +1,12 @@
 import 'package:flutter/foundation.dart';
 import 'package:hive/hive.dart';
 import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
+import 'package:cake_wallet/utils/mobx.dart';
 
 part 'contact.g.dart';
 
 @HiveType(typeId: 0)
-class Contact extends HiveObject {
+class Contact extends HiveObject with Keyable {
   Contact({@required this.name, @required this.address, CryptoCurrency type})
       : raw = type?.raw;
 
@@ -22,6 +23,9 @@ class Contact extends HiveObject {
 
   CryptoCurrency get type => CryptoCurrency.deserialize(raw: raw);
 
+  @override
+  dynamic get keyIndex => key;
+
   @override
   bool operator ==(Object o) => o is Contact && o.key == key;
 
diff --git a/lib/src/domain/common/contact_model.dart b/lib/src/domain/common/contact_model.dart
new file mode 100644
index 000000000..94185a647
--- /dev/null
+++ b/lib/src/domain/common/contact_model.dart
@@ -0,0 +1,38 @@
+// import 'package:hive/hive.dart';
+// import 'package:mobx/mobx.dart';
+// import 'package:cake_wallet/src/domain/common/contact.dart';
+// import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
+
+// part 'contact_model.g.dart';
+
+// class ContactModel = ContactModelBase with _$ContactModel;
+
+// abstract class ContactModelBase with Store {
+//   ContactModelBase(this._contacts, {Contact contact}) : _contact = contact {
+//     name = _contact?.name;
+//     address = _contact?.address;
+//     currency = _contact?.type;
+
+//     _contacts.watch(key: contact.key).listen((event) {
+
+//     });
+//   }
+
+//   @observable
+//   String name;
+
+//   @observable
+//   String address;
+
+//   @observable
+//   CryptoCurrency currency;
+
+//   // @computed
+//   // bool get isReady =>
+//   //     (name?.isNotEmpty ?? false) &&
+//   //     (currency?.toString()?.isNotEmpty ?? false) &&
+//   //     (address?.isNotEmpty ?? false);
+
+//   final Box<ContactBase> _contacts;
+//   final Contact _contact;
+// }
diff --git a/lib/src/domain/common/default_settings_migration.dart b/lib/src/domain/common/default_settings_migration.dart
index 4ad41dff2..44165fdbf 100644
--- a/lib/src/domain/common/default_settings_migration.dart
+++ b/lib/src/domain/common/default_settings_migration.dart
@@ -107,7 +107,7 @@ Future<void> changeMoneroCurrentNodeToDefault(
 }
 
 Node getBitcoinDefaultElectrumServer({@required Box<Node> nodes}) {
-  final uri = 'bitcoin.electrumx.multicoin.co:50002';
+  final uri = 'electrumx.cakewallet.com:50002';
 
   return nodes.values
           .firstWhere((Node node) => node.uri == uri, orElse: () => null) ??
diff --git a/lib/src/domain/common/language.dart b/lib/src/domain/common/language.dart
index 7d2860978..16e1d1a6a 100644
--- a/lib/src/domain/common/language.dart
+++ b/lib/src/domain/common/language.dart
@@ -30,7 +30,7 @@ class Language with ChangeNotifier {
   }
 
   static Future<String> localeDetection() async {
-    String locale = await Devicelocale.currentLocale;
+    var locale = await Devicelocale.currentLocale;
     locale = Intl.shortLocale(locale);
 
     return languages.keys.contains(locale) ? locale : 'en';
diff --git a/lib/src/domain/common/node.dart b/lib/src/domain/common/node.dart
index b47f002e9..931eabf6c 100644
--- a/lib/src/domain/common/node.dart
+++ b/lib/src/domain/common/node.dart
@@ -1,3 +1,4 @@
+import 'package:cake_wallet/utils/mobx.dart';
 import 'package:flutter/foundation.dart';
 import 'dart:convert';
 import 'package:http/http.dart' as http;
@@ -8,7 +9,7 @@ import 'package:cake_wallet/src/domain/common/digest_request.dart';
 part 'node.g.dart';
 
 @HiveType(typeId: 1)
-class Node extends HiveObject {
+class Node extends HiveObject with Keyable {
   Node(
       {@required this.uri,
       @required WalletType type,
diff --git a/lib/src/screens/auth/auth_page.dart b/lib/src/screens/auth/auth_page.dart
index 346e153ed..d9c362ab4 100644
--- a/lib/src/screens/auth/auth_page.dart
+++ b/lib/src/screens/auth/auth_page.dart
@@ -5,19 +5,20 @@ import 'package:cake_wallet/generated/i18n.dart';
 import 'package:cake_wallet/view_model/auth_state.dart';
 import 'package:cake_wallet/view_model/auth_view_model.dart';
 import 'package:cake_wallet/src/screens/pin_code/pin_code.dart';
-import 'package:cake_wallet/src/stores/settings/settings_store.dart';
 import 'package:cake_wallet/src/domain/common/biometric_auth.dart';
 
 typedef OnAuthenticationFinished = void Function(bool, AuthPageState);
 
 class AuthPage extends StatefulWidget {
   AuthPage(
-      {this.onAuthenticationFinished,
+      {@required this.allowBiometricalAuthentication,
+      this.onAuthenticationFinished,
       this.authViewModel,
       this.closable = true});
 
   final AuthViewModel authViewModel;
   final OnAuthenticationFinished onAuthenticationFinished;
+  final bool allowBiometricalAuthentication;
   final bool closable;
 
   @override
@@ -95,6 +96,27 @@ class AuthPageState extends State<AuthPage> {
         });
       }
     });
+
+    if (widget.allowBiometricalAuthentication) {
+      WidgetsBinding.instance.addPostFrameCallback((_) async {
+        print('post');
+        await Future<void>.delayed(Duration(milliseconds: 100));
+        print('after timeout');
+        final biometricAuth = BiometricAuth();
+        final isAuth = await biometricAuth.isAuthenticated();
+
+        if (isAuth) {
+          widget.authViewModel.biometricAuth();
+          _key.currentState.showSnackBar(
+            SnackBar(
+              content: Text(S.of(context).authenticated),
+              backgroundColor: Colors.green,
+            ),
+          );
+        }
+      });
+    }
+
     super.initState();
   }
 
@@ -111,27 +133,7 @@ class AuthPageState extends State<AuthPage> {
 
   @override
   Widget build(BuildContext context) {
-//    final authStore = Provider.of<AuthStore>(context);
-//    final settingsStore = Provider.of<SettingsStore>(context);
-
-//    if (settingsStore.allowBiometricalAuthentication) {
-//      WidgetsBinding.instance.addPostFrameCallback((_) {
-//        final biometricAuth = BiometricAuth();
-//        biometricAuth.isAuthenticated().then(
-//                (isAuth) {
-//              if (isAuth) {
-//                authStore.biometricAuth();
-//                _key.currentState.showSnackBar(
-//                  SnackBar(
-//                    content: Text(S.of(context).authenticated),
-//                    backgroundColor: Colors.green,
-//                  ),
-//                );
-//              }
-//            }
-//        );
-//      });
-//    }
+    print('start');
 
     return Scaffold(
         key: _key,
diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart
index df93362b4..d3ae08cbe 100644
--- a/lib/src/screens/dashboard/dashboard_page.dart
+++ b/lib/src/screens/dashboard/dashboard_page.dart
@@ -88,9 +88,7 @@ class DashboardPage extends BasePage {
             child: PageView.builder(
                 controller: controller,
                 itemCount: pages.length,
-                itemBuilder: (context, index) {
-                  return pages[index];
-                })),
+                itemBuilder: (context, index) => pages[index])),
         Padding(
             padding: EdgeInsets.only(bottom: 24),
             child: SmoothPageIndicator(
@@ -106,8 +104,9 @@ class DashboardPage extends BasePage {
             )),
         Container(
           width: double.infinity,
-          padding: EdgeInsets.only(left: 45, right: 45, bottom: 24),
+          padding: EdgeInsets.only(left: 44, right: 0, bottom: 24),
           child: Row(
+            mainAxisAlignment: MainAxisAlignment.spaceBetween,
             children: <Widget>[
               Flexible(
                 child: ActionButton(
@@ -122,14 +121,6 @@ class DashboardPage extends BasePage {
                     image: exchangeImage,
                     title: S.of(context).exchange,
                     route: Routes.exchange),
-              ),
-              Flexible(
-                child: ActionButton(
-                  image: receiveImage,
-                  title: S.of(context).receive,
-                  route: Routes.receive,
-                  alignment: Alignment.centerRight,
-                ),
               )
             ],
           ),
diff --git a/lib/src/screens/dashboard/widgets/action_button.dart b/lib/src/screens/dashboard/widgets/action_button.dart
index 4ab08d97e..3cf1d6ded 100644
--- a/lib/src/screens/dashboard/widgets/action_button.dart
+++ b/lib/src/screens/dashboard/widgets/action_button.dart
@@ -1,12 +1,11 @@
 import 'package:flutter/material.dart';
 
-class ActionButton extends StatelessWidget{
-  ActionButton({
-    @required this.image,
-    @required this.title,
-    @required this.route,
-    this.alignment = Alignment.center
-  });
+class ActionButton extends StatelessWidget {
+  ActionButton(
+      {@required this.image,
+      @required this.title,
+      @required this.route,
+      this.alignment = Alignment.center});
 
   final Image image;
   final String title;
@@ -35,20 +34,16 @@ class ActionButton extends StatelessWidget{
               width: 60,
               alignment: Alignment.center,
               decoration: BoxDecoration(
-                color: Theme.of(context).buttonColor,
-                shape: BoxShape.circle),
+                  color: Theme.of(context).buttonColor, shape: BoxShape.circle),
               child: image,
             ),
           ),
           Text(
             title,
-            style: TextStyle(
-              fontSize: 14,
-              color: Colors.white
-            ),
+            style: TextStyle(fontSize: 14, color: Colors.white),
           )
         ],
       ),
     );
   }
-}
\ No newline at end of file
+}
diff --git a/lib/src/screens/disclaimer/disclaimer_page.dart b/lib/src/screens/disclaimer/disclaimer_page.dart
index 47cfa40ab..fde5677e7 100644
--- a/lib/src/screens/disclaimer/disclaimer_page.dart
+++ b/lib/src/screens/disclaimer/disclaimer_page.dart
@@ -1,4 +1,5 @@
 import 'dart:ui';
+import 'package:cake_wallet/palette.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/services.dart';
@@ -132,6 +133,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
                                   _fileText,
                                   style: TextStyle(
                                       fontSize: 12.0,
+                                      fontWeight: FontWeight.normal,
                                       color: Theme.of(context).primaryTextTheme.title.color
                                   ),
                                 ))
@@ -169,7 +171,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
                                     xmrtoUrl,
                                     textAlign: TextAlign.left,
                                     style: TextStyle(
-                                        color: Colors.blue,
+                                        color: Palette.blueCraiola,
                                         fontSize: 14.0,
                                         fontWeight: FontWeight.normal,
                                         decoration: TextDecoration.underline),
@@ -190,7 +192,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
                                     changenowUrl,
                                     textAlign: TextAlign.left,
                                     style: TextStyle(
-                                        color: Colors.blue,
+                                        color: Palette.blueCraiola,
                                         fontSize: 14.0,
                                         fontWeight: FontWeight.normal,
                                         decoration: TextDecoration.underline),
@@ -211,7 +213,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
                                     morphUrl,
                                     textAlign: TextAlign.left,
                                     style: TextStyle(
-                                        color: Colors.blue,
+                                        color: Palette.blueCraiola,
                                         fontSize: 14.0,
                                         fontWeight: FontWeight.normal,
                                         decoration: TextDecoration.underline),
diff --git a/lib/src/screens/faq/faq_page.dart b/lib/src/screens/faq/faq_page.dart
index c823dfba9..70fbaa6d2 100644
--- a/lib/src/screens/faq/faq_page.dart
+++ b/lib/src/screens/faq/faq_page.dart
@@ -1,4 +1,6 @@
 import 'dart:convert';
+import 'package:cake_wallet/palette.dart';
+import 'package:cake_wallet/src/widgets/standard_list.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:provider/provider.dart';
@@ -27,93 +29,85 @@ class FaqFormState extends State<FaqForm> {
   @override
   Widget build(BuildContext context) {
     final addIcon = Icon(Icons.add, color: Theme.of(context).primaryTextTheme.title.color);
-    final removeIcon = Icon(Icons.remove, color: Colors.green);
+    final removeIcon = Icon(Icons.remove, color: Palette.blueCraiola);
 
     return Container(
-      padding: EdgeInsets.only(top: 12),
-      child: Container(
-        color: Theme.of(context).accentTextTheme.headline.color,
-        child: FutureBuilder(
-          builder: (context, snapshot) {
-            final faqItems = jsonDecode(snapshot.data.toString()) as List;
+      padding: EdgeInsets.only(top: 12, left: 24),
+      child: FutureBuilder(
+        builder: (context, snapshot) {
+          final faqItems = jsonDecode(snapshot.data.toString()) as List;
 
-            if (snapshot.hasData) {
-              setIconsAndColors(context, faqItems.length, addIcon);
-            }
+          if (snapshot.hasData) {
+            setIconsAndColors(context, faqItems.length, addIcon);
+          }
 
-            return SingleChildScrollView(
-              child: ListView.separated(
-                shrinkWrap: true,
-                physics: NeverScrollableScrollPhysics(),
-                itemBuilder: (BuildContext context, int index) {
-                  final itemTitle = faqItems[index]["question"].toString();
-                  final itemChild = faqItems[index]["answer"].toString();
+          return SingleChildScrollView(
+            child: Column(
+              children: <Widget>[
+                StandardListSeparator(),
+                ListView.separated(
+                  shrinkWrap: true,
+                  physics: NeverScrollableScrollPhysics(),
+                  itemBuilder: (BuildContext context, int index) {
+                    final itemTitle = faqItems[index]["question"].toString();
+                    final itemChild = faqItems[index]["answer"].toString();
 
-                  return ExpansionTile(
-                    title: Padding(
-                      padding: EdgeInsets.only(left: 8, top: 12, bottom: 12),
-                      child: Text(
-                        itemTitle,
-                        style: TextStyle(
-                            fontSize: 14,
-                            fontWeight: FontWeight.w600,
-                            color: colors[index]
+                    return ListTileTheme(
+                      contentPadding: EdgeInsets.fromLTRB(0, 6, 24, 6),
+                      child: ExpansionTile(
+                        title: Text(
+                          itemTitle,
+                          style: TextStyle(
+                              fontSize: 14,
+                              fontWeight: FontWeight.w500,
+                              color: colors[index]
+                          ),
                         ),
-                      ),
-                    ),
-                    trailing: Padding(
-                      padding: EdgeInsets.only(right: 24),
-                      child: Container(
-                        width: double.minPositive,
-                        child: Center(
-                            child: icons[index]
-                        ),
-                      ),
-                    ),
-                    backgroundColor: Theme.of(context).accentTextTheme.headline.backgroundColor,
-                    onExpansionChanged: (value) {
-                      setState(() {
-                        if (value) {
-                          icons[index] = removeIcon;
-                          colors[index] = Colors.green;
-                        } else {
-                          icons[index] = addIcon;
-                          colors[index] = Theme.of(context).primaryTextTheme.title.color;
-                        }
-                      });
-                    },
-                    children: <Widget>[
-                      Row(
-                        mainAxisAlignment: MainAxisAlignment.start,
+                        trailing: icons[index],
+                        onExpansionChanged: (value) {
+                          setState(() {
+                            if (value) {
+                              icons[index] = removeIcon;
+                              colors[index] = Palette.blueCraiola;
+                            } else {
+                              icons[index] = addIcon;
+                              colors[index] = Theme.of(context).primaryTextTheme.title.color;
+                            }
+                          });
+                        },
                         children: <Widget>[
-                          Expanded(
-                              child: Container(
-                                padding: EdgeInsets.only(
-                                    left: 24.0,
-                                    right: 24.0,
-                                    bottom: 8
-                                ),
-                                child: Text(
-                                  itemChild,
-                                  style: TextStyle(
-                                      fontSize: 12,
-                                      color: Theme.of(context).primaryTextTheme.title.color
-                                  ),
-                                ),
-                              ))
+                          Row(
+                            mainAxisAlignment: MainAxisAlignment.start,
+                            children: <Widget>[
+                              Expanded(
+                                  child: Container(
+                                    padding: EdgeInsets.only(
+                                        right: 24.0,
+                                    ),
+                                    child: Text(
+                                      itemChild,
+                                      style: TextStyle(
+                                          fontSize: 14,
+                                          fontWeight: FontWeight.normal,
+                                          color: Theme.of(context).primaryTextTheme.title.color
+                                      ),
+                                    ),
+                                  ))
+                            ],
+                          )
                         ],
-                      )
-                    ],
-                  );
-                },
-                separatorBuilder: (_, __) =>
-                    Container(color: Theme.of(context).dividerColor, height: 1.0),
-                itemCount: faqItems == null ? 0 : faqItems.length,
-              ),
-            );
-          },
-          future: rootBundle.loadString(getFaqPath(context)),
-        ),
+                      ),
+                    );
+                  },
+                  separatorBuilder: (_, __) =>
+                      StandardListSeparator(),
+                  itemCount: faqItems == null ? 0 : faqItems.length,
+                )
+              ],
+            ),
+          );
+        },
+        future: rootBundle.loadString(getFaqPath(context)),
       ),
     );
   }
diff --git a/lib/src/screens/new_wallet/new_wallet_page.dart b/lib/src/screens/new_wallet/new_wallet_page.dart
index 1eaf95b46..60d780d2d 100644
--- a/lib/src/screens/new_wallet/new_wallet_page.dart
+++ b/lib/src/screens/new_wallet/new_wallet_page.dart
@@ -1,3 +1,5 @@
+import 'package:cake_wallet/di.dart';
+import 'package:cake_wallet/store/settings_store.dart';
 import 'package:mobx/mobx.dart';
 import 'package:flutter_mobx/flutter_mobx.dart';
 import 'package:flutter/material.dart';
@@ -40,6 +42,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
   static const aspectRatioImage = 1.22;
 
   final walletNameImage = Image.asset('assets/images/wallet_name.png');
+  final walletNameLightImage = Image.asset('assets/images/wallet_name_light.png');
   final _formKey = GlobalKey<FormState>();
   final _languageSelectorKey = GlobalKey<SeedLanguageSelectorState>();
   ReactionDisposer _stateReaction;
@@ -72,6 +75,9 @@ class _WalletNameFormState extends State<WalletNameForm> {
 
   @override
   Widget build(BuildContext context) {
+    final walletImage = getIt.get<SettingsStore>().isDarkTheme
+        ? walletNameImage : walletNameLightImage;
+
     return Container(
       padding: EdgeInsets.only(top: 24),
       child: ScrollableWithBottomSection(
@@ -82,7 +88,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
               padding: EdgeInsets.only(left: 12, right: 12),
               child: AspectRatio(
                   aspectRatio: aspectRatioImage,
-                  child: FittedBox(child: walletNameImage, fit: BoxFit.fill)),
+                  child: FittedBox(child: walletImage, fit: BoxFit.fill)),
             ),
             Padding(
               padding: EdgeInsets.only(top: 24),
@@ -98,19 +104,26 @@ class _WalletNameFormState extends State<WalletNameForm> {
                               Theme.of(context).primaryTextTheme.title.color),
                       decoration: InputDecoration(
                           hintStyle: TextStyle(
-                              fontSize: 16.0,
+                              fontSize: 18.0,
+                              fontWeight: FontWeight.w500,
                               color: Theme.of(context)
-                                  .primaryTextTheme
-                                  .caption
+                                  .accentTextTheme
+                                  .display3
                                   .color),
                           hintText: S.of(context).wallet_name,
                           focusedBorder: UnderlineInputBorder(
                               borderSide: BorderSide(
-                                  color: Theme.of(context).dividerColor,
+                                  color: Theme.of(context)
+                                      .accentTextTheme
+                                      .display3
+                                      .decorationColor,
                                   width: 1.0)),
                           enabledBorder: UnderlineInputBorder(
                               borderSide: BorderSide(
-                                  color: Theme.of(context).dividerColor,
+                                  color: Theme.of(context)
+                                      .accentTextTheme
+                                      .display3
+                                      .decorationColor,
                                   width: 1.0))),
                       validator: WalletNameValidator())),
             ),
@@ -122,7 +135,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
                   textAlign: TextAlign.center,
                   style: TextStyle(
                       fontSize: 16.0,
-                      fontWeight: FontWeight.w600,
+                      fontWeight: FontWeight.w500,
                       color: Theme.of(context).primaryTextTheme.title.color),
                 ),
               ),
@@ -140,7 +153,8 @@ class _WalletNameFormState extends State<WalletNameForm> {
             builder: (context) {
               return LoadingPrimaryButton(
                 onPressed: _confirmForm,
-                text: S.of(context).continue_text,
+                //text: S.of(context).continue_text,
+                text: S.of(context).seed_language_next,
                 color: Colors.green,
                 textColor: Colors.white,
                 isLoading: _walletNewVM.state is WalletCreatedSuccessfully,
diff --git a/lib/src/screens/new_wallet/new_wallet_type_page.dart b/lib/src/screens/new_wallet/new_wallet_type_page.dart
index 9dfcfbf33..673bd9478 100644
--- a/lib/src/screens/new_wallet/new_wallet_type_page.dart
+++ b/lib/src/screens/new_wallet/new_wallet_type_page.dart
@@ -1,4 +1,6 @@
+import 'package:cake_wallet/di.dart';
 import 'package:cake_wallet/src/domain/common/wallet_type.dart';
+import 'package:cake_wallet/store/settings_store.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:cake_wallet/generated/i18n.dart';
@@ -6,15 +8,17 @@ import 'package:cake_wallet/src/screens/base_page.dart';
 import 'package:cake_wallet/src/widgets/primary_button.dart';
 import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
 import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart';
-import 'package:cake_wallet/routes.dart';
 
 class NewWalletTypePage extends BasePage {
-  NewWalletTypePage({this.onTypeSelected});
+  NewWalletTypePage({this.onTypeSelected, this.isNewWallet = true});
 
   final void Function(BuildContext, WalletType) onTypeSelected;
+  final bool isNewWallet;
 
   @override
-  String get title => S.current.new_wallet;
+  String get title => isNewWallet
+                      ? S.current.new_wallet
+                      : S.current.wallet_list_restore_wallet;
 
   @override
   Widget body(BuildContext context) =>
@@ -38,6 +42,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
   final bitcoinIcon =
       Image.asset('assets/images/bitcoin.png', height: 24, width: 24);
   final walletTypeImage = Image.asset('assets/images/wallet_type.png');
+  final walletTypeLightImage = Image.asset('assets/images/wallet_type_light.png');
 
   WalletType selected;
   List<WalletType> types;
@@ -50,6 +55,9 @@ class WalletTypeFormState extends State<WalletTypeForm> {
 
   @override
   Widget build(BuildContext context) {
+    final walletImage = getIt.get<SettingsStore>().isDarkTheme
+    ? walletTypeImage : walletTypeLightImage;
+
     return Container(
       padding: EdgeInsets.only(top: 24),
       child: ScrollableWithBottomSection(
@@ -61,7 +69,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
               padding: EdgeInsets.only(left: 12, right: 12),
               child: AspectRatio(
                   aspectRatio: aspectRatioImage,
-                  child: FittedBox(child: walletTypeImage, fit: BoxFit.fill)),
+                  child: FittedBox(child: walletImage, fit: BoxFit.fill)),
             ),
             Padding(
               padding: EdgeInsets.only(top: 48),
@@ -70,7 +78,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
                 textAlign: TextAlign.center,
                 style: TextStyle(
                     fontSize: 16,
-                    fontWeight: FontWeight.w600,
+                    fontWeight: FontWeight.w500,
                     color: Theme.of(context).primaryTextTheme.title.color),
               ),
             ),
@@ -79,8 +87,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
                   child: SelectButton(
                       image: _iconFor(type),
                       text: walletTypeToString(type),
-                      color: _backgroundColorFor(selected == type),
-                      textColor: _textColorFor(selected == type),
+                      isSelected: selected == type,
                       onTap: () => setState(() => selected = type)),
                 ))
           ],
@@ -97,16 +104,6 @@ class WalletTypeFormState extends State<WalletTypeForm> {
     );
   }
 
-  // FIXME: Move color selection inside ui element; add isSelected to buttons.
-
-  Color _backgroundColorFor(bool isSelected) => isSelected
-      ? Theme.of(context).accentTextTheme.title.decorationColor
-      : Theme.of(context).accentTextTheme.title.backgroundColor;
-
-  Color _textColorFor(bool isSelected) => isSelected
-      ? Theme.of(context).primaryTextTheme.title.backgroundColor
-      : Theme.of(context).primaryTextTheme.title.color;
-
   Image _iconFor(WalletType type) {
     switch (type) {
       case WalletType.monero:
diff --git a/lib/src/screens/new_wallet/widgets/select_button.dart b/lib/src/screens/new_wallet/widgets/select_button.dart
index 7e583ec4e..bd69a8015 100644
--- a/lib/src/screens/new_wallet/widgets/select_button.dart
+++ b/lib/src/screens/new_wallet/widgets/select_button.dart
@@ -4,21 +4,30 @@ class SelectButton extends StatelessWidget {
   SelectButton({
     @required this.image,
     @required this.text,
-    @required this.color,
-    @required this.textColor,
     @required this.onTap,
+    this.isSelected = false,
   });
 
   final Image image;
   final String text;
-  final Color color;
-  final Color textColor;
+  final bool isSelected;
   final VoidCallback onTap;
 
-  final selectArrowImage = Image.asset('assets/images/select_arrow.png');
-
   @override
   Widget build(BuildContext context) {
+    final color = isSelected
+          ? Theme.of(context).accentTextTheme.subtitle.decorationColor
+          : Theme.of(context).accentTextTheme.caption.color;
+    final textColor = isSelected
+          ? Theme.of(context).accentTextTheme.headline.decorationColor
+          : Theme.of(context).primaryTextTheme.title.color;
+    final arrowColor = isSelected
+        ? Theme.of(context).accentTextTheme.headline.decorationColor
+        : Theme.of(context).accentTextTheme.subhead.color;
+
+    final selectArrowImage = Image.asset('assets/images/select_arrow.png',
+          color: arrowColor);
+
     return GestureDetector(
       onTap: onTap,
       child: Container(
@@ -39,9 +48,7 @@ class SelectButton extends StatelessWidget {
               mainAxisAlignment: MainAxisAlignment.start,
               crossAxisAlignment: CrossAxisAlignment.center,
               children: <Widget>[
-                image != null
-                ? image
-                : Offstage(),
+                image ?? Offstage(),
                 Padding(
                   padding: image != null
                     ? EdgeInsets.only(left: 15)
@@ -50,7 +57,7 @@ class SelectButton extends StatelessWidget {
                     text,
                     style: TextStyle(
                       fontSize: 18,
-                      fontWeight: FontWeight.w600,
+                      fontWeight: FontWeight.w500,
                       color: textColor
                     ),
                   ),
diff --git a/lib/src/screens/nodes/nodes_list_page.dart b/lib/src/screens/nodes/nodes_list_page.dart
index ab715058c..b5a6dfba1 100644
--- a/lib/src/screens/nodes/nodes_list_page.dart
+++ b/lib/src/screens/nodes/nodes_list_page.dart
@@ -108,7 +108,7 @@ class NodeListPage extends BasePage {
                   });
 
               final dismissibleRow = Dismissible(
-                  key: Key('${node.value.key}'),
+                  key: Key('${node.keyIndex}'),
                   confirmDismiss: (direction) async {
                     return await showDialog(
                         context: context,
diff --git a/lib/src/screens/pin_code/pin_code.dart b/lib/src/screens/pin_code/pin_code.dart
index b046b3fef..392705b52 100644
--- a/lib/src/screens/pin_code/pin_code.dart
+++ b/lib/src/screens/pin_code/pin_code.dart
@@ -108,7 +108,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
         Text(title,
             style: TextStyle(
                 fontSize: 20,
-                fontWeight: FontWeight.bold,
+                fontWeight: FontWeight.w500,
                 color: Theme.of(context).primaryTextTheme.title.color)),
         Spacer(flex: 3),
         Container(
@@ -126,7 +126,11 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
                     shape: BoxShape.circle,
                     color: isFilled
                         ? Theme.of(context).primaryTextTheme.title.color
-                        : Theme.of(context).primaryTextTheme.caption.color,
+                        : Theme.of(context)
+                            .accentTextTheme
+                            .body1
+                            .color
+                            .withOpacity(0.25),
                   ));
             }),
           ),
@@ -143,7 +147,11 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
                 _changePinLengthText(),
                 style: TextStyle(
                     fontSize: 14.0,
-                    color: Theme.of(context).primaryTextTheme.caption.color),
+                    fontWeight: FontWeight.normal,
+                    color: Theme.of(context)
+                        .accentTextTheme
+                        .body1
+                        .decorationColor),
               ))
         ],
         Spacer(flex: 1),
@@ -227,7 +235,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
                               child: Text('$index',
                                   style: TextStyle(
                                       fontSize: 30.0,
-                                      fontWeight: FontWeight.bold,
+                                      fontWeight: FontWeight.w600,
                                       color: Theme.of(context)
                                           .primaryTextTheme
                                           .title
diff --git a/lib/src/screens/restore/restore_wallet_from_keys_page.dart b/lib/src/screens/restore/restore_wallet_from_keys_page.dart
index 766ef7a0e..6f950f6e4 100644
--- a/lib/src/screens/restore/restore_wallet_from_keys_page.dart
+++ b/lib/src/screens/restore/restore_wallet_from_keys_page.dart
@@ -1,40 +1,36 @@
-import 'package:mobx/mobx.dart';
-import 'package:provider/provider.dart';
-import 'package:shared_preferences/shared_preferences.dart';
+import 'package:cake_wallet/core/validator.dart';
+import 'package:cake_wallet/palette.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_mobx/flutter_mobx.dart';
 import 'package:cake_wallet/generated/i18n.dart';
-import 'package:cake_wallet/src/domain/services/wallet_list_service.dart';
-import 'package:cake_wallet/src/domain/services/wallet_service.dart';
-import 'package:cake_wallet/src/stores/wallet_restoration/wallet_restoration_store.dart';
-import 'package:cake_wallet/src/stores/wallet_restoration/wallet_restoration_state.dart';
 import 'package:cake_wallet/src/screens/base_page.dart';
 import 'package:cake_wallet/src/widgets/primary_button.dart';
 import 'package:cake_wallet/src/widgets/blockchain_height_widget.dart';
 import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
-import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
 import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
+import 'package:cake_wallet/view_model/wallet_restoration_from_keys_vm.dart';
+import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
 
 class RestoreWalletFromKeysPage extends BasePage {
   RestoreWalletFromKeysPage(
-      {@required this.walletsService,
-      @required this.sharedPreferences,
-      @required this.walletService});
+      {@required this.walletRestorationFromKeysVM});
 
-  final WalletListService walletsService;
-  final WalletService walletService;
-  final SharedPreferences sharedPreferences;
+  final WalletRestorationFromKeysVM walletRestorationFromKeysVM;
 
   @override
   String get title => S.current.restore_title_from_keys;
 
   @override
-  Widget body(BuildContext context) => RestoreFromKeysFrom();
+  Widget body(BuildContext context) => RestoreFromKeysFrom(walletRestorationFromKeysVM);
 }
 
 class RestoreFromKeysFrom extends StatefulWidget {
+  RestoreFromKeysFrom(this.walletRestorationFromKeysVM);
+
+  final WalletRestorationFromKeysVM walletRestorationFromKeysVM;
+
   @override
   _RestoreFromKeysFromState createState() => _RestoreFromKeysFromState();
 }
@@ -46,6 +42,23 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
   final _addressController = TextEditingController();
   final _viewKeyController = TextEditingController();
   final _spendKeyController = TextEditingController();
+  final _wifController = TextEditingController();
+
+  @override
+  void initState() {
+    _nameController.addListener(() =>
+    widget.walletRestorationFromKeysVM.name = _nameController.text);
+    _addressController.addListener(() =>
+    widget.walletRestorationFromKeysVM.address = _addressController.text);
+    _viewKeyController.addListener(() =>
+    widget.walletRestorationFromKeysVM.viewKey = _viewKeyController.text);
+    _spendKeyController.addListener(() =>
+    widget.walletRestorationFromKeysVM.spendKey = _spendKeyController.text);
+    _wifController.addListener(() =>
+    widget.walletRestorationFromKeysVM.wif = _wifController.text);
+
+    super.initState();
+  }
 
   @override
   void dispose() {
@@ -53,31 +66,14 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
     _addressController.dispose();
     _viewKeyController.dispose();
     _spendKeyController.dispose();
+    _wifController.dispose();
     super.dispose();
   }
 
-  void onHandleControllers(WalletRestorationStore walletRestorationStore) {
-    if (_nameController.text.isNotEmpty &&
-    _addressController.text.isNotEmpty &&
-    _viewKeyController.text.isNotEmpty &&
-    _spendKeyController.text.isNotEmpty) {
-      walletRestorationStore.setDisabledState(false);
-    } else {
-      walletRestorationStore.setDisabledState(true);
-    }
-  }
-
   @override
   Widget build(BuildContext context) {
-    final walletRestorationStore = Provider.of<WalletRestorationStore>(context);
-    final seedLanguageStore = Provider.of<SeedLanguageStore>(context);
 
-    _nameController.addListener(() {onHandleControllers(walletRestorationStore);});
-    _addressController.addListener(() {onHandleControllers(walletRestorationStore);});
-    _viewKeyController.addListener(() {onHandleControllers(walletRestorationStore);});
-    _spendKeyController.addListener(() {onHandleControllers(walletRestorationStore);});
-
-    reaction((_) => walletRestorationStore.state, (WalletRestorationState state) {
+    /*reaction((_) => walletRestorationStore.state, (WalletRestorationState state) {
       if (state is WalletRestoredSuccessfully) {
         Navigator.of(context).popUntil((route) => route.isFirst);
       }
@@ -96,7 +92,7 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
               });
         });
       }
-    });
+    });*/
 
     return Container(
       padding: EdgeInsets.only(left: 24, right: 24),
@@ -110,66 +106,39 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
                 Flexible(
                     child: Container(
                       padding: EdgeInsets.only(top: 20.0),
-                      child: TextFormField(
-                        style: TextStyle(
-                            fontSize: 16.0,
-                            color: Theme.of(context).primaryTextTheme.title.color
-                        ),
+                      child: BaseTextFormField(
                         controller: _nameController,
-                        decoration: InputDecoration(
-                            hintStyle: TextStyle(
-                                color: Theme.of(context).primaryTextTheme.caption.color,
-                                fontSize: 16
-                            ),
-                            hintText: S.of(context).restore_wallet_name,
-                            focusedBorder: UnderlineInputBorder(
-                                borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
-                                    width: 1.0)),
-                            enabledBorder: UnderlineInputBorder(
-                                borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
-                                    width: 1.0))),
-                        validator: (value) {
-                          walletRestorationStore.validateWalletName(value);
-                          return walletRestorationStore.errorMessage;
-                        },
-                      ),
+                        hintText: S.of(context).restore_wallet_name,
+                        validator: WalletNameValidator(),
+                      )
                     ))
               ],
             ),
+            if (!widget.walletRestorationFromKeysVM.hasRestorationHeight)
+            Row(
+              children: <Widget>[
+                Flexible(
+                  child: Container(
+                    padding: EdgeInsets.only(top: 20.0),
+                    child: BaseTextFormField(
+                      controller: _wifController,
+                      hintText: 'WIF',
+                    )
+                ))
+              ],
+            ),
+            if (widget.walletRestorationFromKeysVM.hasRestorationHeight) ... [
             Row(
               children: <Widget>[
                 Flexible(
                     child: Container(
                       padding: EdgeInsets.only(top: 20.0),
-                      child: TextFormField(
-                        style: TextStyle(
-                            fontSize: 16.0,
-                            color: Theme.of(context).primaryTextTheme.title.color
-                        ),
+                      child: BaseTextFormField(
                         controller: _addressController,
                         keyboardType: TextInputType.multiline,
                         maxLines: null,
-                        decoration: InputDecoration(
-                            hintStyle: TextStyle(
-                                color: Theme.of(context).primaryTextTheme.caption.color,
-                                fontSize: 16
-                            ),
-                            hintText: S.of(context).restore_address,
-                            focusedBorder: UnderlineInputBorder(
-                                borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
-                                    width: 1.0)),
-                            enabledBorder: UnderlineInputBorder(
-                                borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
-                                    width: 1.0))),
-                        validator: (value) {
-                          walletRestorationStore.validateAddress(value);
-                          return walletRestorationStore.errorMessage;
-                        },
-                      ),
+                        hintText: S.of(context).restore_address,
+                      )
                     ))
               ],
             ),
@@ -178,31 +147,10 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
                 Flexible(
                     child: Container(
                       padding: EdgeInsets.only(top: 20.0),
-                      child: TextFormField(
-                        style: TextStyle(
-                            fontSize: 16.0,
-                            color: Theme.of(context).primaryTextTheme.title.color
-                        ),
+                      child: BaseTextFormField(
                         controller: _viewKeyController,
-                        decoration: InputDecoration(
-                            hintStyle: TextStyle(
-                                color: Theme.of(context).primaryTextTheme.caption.color,
-                                fontSize: 16
-                            ),
-                            hintText: S.of(context).restore_view_key_private,
-                            focusedBorder: UnderlineInputBorder(
-                                borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
-                                    width: 1.0)),
-                            enabledBorder: UnderlineInputBorder(
-                                borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
-                                    width: 1.0))),
-                        validator: (value) {
-                          walletRestorationStore.validateKeys(value);
-                          return walletRestorationStore.errorMessage;
-                        },
-                      ),
+                        hintText: S.of(context).restore_view_key_private,
+                      )
                     ))
               ],
             ),
@@ -211,35 +159,19 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
                 Flexible(
                     child: Container(
                       padding: EdgeInsets.only(top: 20.0),
-                      child: TextFormField(
-                        style: TextStyle(
-                            fontSize: 16.0,
-                            color: Theme.of(context).primaryTextTheme.title.color
-                        ),
+                      child: BaseTextFormField(
                         controller: _spendKeyController,
-                        decoration: InputDecoration(
-                            hintStyle: TextStyle(
-                                color: Theme.of(context).primaryTextTheme.caption.color,
-                                fontSize: 16
-                            ),
-                            hintText: S.of(context).restore_spend_key_private,
-                            focusedBorder: UnderlineInputBorder(
-                                borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
-                                    width: 1.0)),
-                            enabledBorder: UnderlineInputBorder(
-                                borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
-                                    width: 1.0))),
-                        validator: (value) {
-                          walletRestorationStore.validateKeys(value);
-                          return walletRestorationStore.errorMessage;
-                        },
-                      ),
+                        hintText: S.of(context).restore_spend_key_private,
+                      )
                     ))
               ],
             ),
-            BlockchainHeightWidget(key: _blockchainHeightKey),
+            BlockchainHeightWidget(
+              key: _blockchainHeightKey,
+              onHeightChange: (height) {
+                widget.walletRestorationFromKeysVM.height = height;
+                print(height);
+            })],
           ]),
         ),
         bottomSectionPadding: EdgeInsets.only(bottom: 24),
@@ -247,19 +179,19 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
           return LoadingPrimaryButton(
             onPressed: () {
               if (_formKey.currentState.validate()) {
-                walletRestorationStore.restoreFromKeys(
+                /*walletRestorationStore.restoreFromKeys(
                     name: _nameController.text,
                     language: seedLanguageStore.selectedSeedLanguage,
                     address: _addressController.text,
                     viewKey: _viewKeyController.text,
                     spendKey: _spendKeyController.text,
-                    restoreHeight: _blockchainHeightKey.currentState.height);
+                    restoreHeight: _blockchainHeightKey.currentState.height);*/
               }
             },
             text: S.of(context).restore_recover,
-            color: Colors.green,
+            color: Palette.blueCraiola,
             textColor: Colors.white,
-            isDisabled: walletRestorationStore.disabledState,
+            //isDisabled: walletRestorationStore.disabledState,
           );
         }),
       ),
diff --git a/lib/src/screens/restore/restore_wallet_from_seed_details.dart b/lib/src/screens/restore/restore_wallet_from_seed_details.dart
index 5a83a8b3c..3225be9e7 100644
--- a/lib/src/screens/restore/restore_wallet_from_seed_details.dart
+++ b/lib/src/screens/restore/restore_wallet_from_seed_details.dart
@@ -1,3 +1,4 @@
+import 'package:cake_wallet/palette.dart';
 import 'package:mobx/mobx.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -9,6 +10,7 @@ import 'package:cake_wallet/src/widgets/blockchain_height_widget.dart';
 import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
 import 'package:cake_wallet/src/widgets/primary_button.dart';
 import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
+import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
 import 'package:cake_wallet/view_model/wallet_restoration_from_seed_vm.dart';
 
 class RestoreWalletFromSeedDetailsPage extends BasePage {
@@ -91,27 +93,9 @@ class _RestoreFromSeedDetailsFormState
                 Flexible(
                     child: Container(
                   padding: EdgeInsets.only(top: 20.0),
-                  child: TextFormField(
-                    style: TextStyle(
-                        fontSize: 16.0,
-                        color: Theme.of(context).primaryTextTheme.title.color),
+                  child: BaseTextFormField(
                     controller: _nameController,
-                    decoration: InputDecoration(
-                        hintStyle: TextStyle(
-                            color: Theme.of(context)
-                                .primaryTextTheme
-                                .caption
-                                .color,
-                            fontSize: 16),
-                        hintText: S.of(context).restore_wallet_name,
-                        focusedBorder: UnderlineInputBorder(
-                            borderSide: BorderSide(
-                                color: Theme.of(context).dividerColor,
-                                width: 1.0)),
-                        enabledBorder: UnderlineInputBorder(
-                            borderSide: BorderSide(
-                                color: Theme.of(context).dividerColor,
-                                width: 1.0))),
+                    hintText: S.of(context).restore_wallet_name,
                     validator: WalletNameValidator(),
                   ),
                 ))
@@ -137,7 +121,7 @@ class _RestoreFromSeedDetailsFormState
             isLoading:
                 widget.walletRestorationFromSeedVM.state is WalletCreating,
             text: S.of(context).restore_recover,
-            color: Colors.green,
+            color: Palette.blueCraiola,
             textColor: Colors.white,
             isDisabled: _nameController.text.isNotEmpty,
           );
diff --git a/lib/src/screens/restore/restore_wallet_from_seed_page.dart b/lib/src/screens/restore/restore_wallet_from_seed_page.dart
index 5c46b32ef..bc30a48d8 100644
--- a/lib/src/screens/restore/restore_wallet_from_seed_page.dart
+++ b/lib/src/screens/restore/restore_wallet_from_seed_page.dart
@@ -20,20 +20,40 @@ class RestoreWalletFromSeedPage extends BasePage {
   String get title => S.current.restore_title_from_seed;
 
   @override
-  Color get backgroundLightColor => Palette.lavender;
+  Color get titleColor => Colors.white;
 
   @override
-  Color get backgroundDarkColor => PaletteDark.lightNightBlue;
+  Color get backgroundLightColor => Colors.transparent;
+
+  @override
+  Color get backgroundDarkColor => Colors.transparent;
+
+  @override
+  bool get resizeToAvoidBottomPadding => false;
 
   @override
   Widget body(BuildContext context) =>
-      RestoreFromSeedForm(key: formKey, type: type, language: language);
+      RestoreFromSeedForm(key: formKey, type: type, language: language,
+          leading: leading(context), middle: middle(context));
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+        resizeToAvoidBottomPadding: resizeToAvoidBottomPadding,
+        body: Container(
+            color: Theme.of(context).backgroundColor,
+            child: body(context)
+        )
+    );
+  }
 }
 
 class RestoreFromSeedForm extends StatefulWidget {
-  RestoreFromSeedForm({Key key, this.type, this.language}) : super(key: key);
+  RestoreFromSeedForm({Key key, this.type, this.language, this.leading, this.middle}) : super(key: key);
   final WalletType type;
   final String language;
+  final Widget leading;
+  final Widget middle;
 
   @override
   _RestoreFromSeedFormState createState() => _RestoreFromSeedFormState();
@@ -49,18 +69,17 @@ class _RestoreFromSeedFormState extends State<RestoreFromSeedForm> {
     return GestureDetector(
       onTap: () =>
           SystemChannels.textInput.invokeMethod<void>('TextInput.hide'),
-      child: Container(
-        color: Theme.of(context).backgroundColor,
-        child: SeedWidget(
-          key: _seedKey,
-          maxLength: mnemonicLength(widget.type),
-          onMnemonicChange: (seed) => null,
-          onFinish: () => Navigator.of(context).pushNamed(
-              Routes.restoreWalletFromSeedDetails,
-              arguments: [widget.type, widget.language, mnemonic()]),
-          validator:
-              SeedValidator(type: widget.type, language: widget.language),
-        ),
+      child: SeedWidget(
+        key: _seedKey,
+        maxLength: mnemonicLength(widget.type),
+        onMnemonicChange: (seed) => null,
+        onFinish: () => Navigator.of(context).pushNamed(
+            Routes.restoreWalletFromSeedDetails,
+            arguments: [widget.type, widget.language, mnemonic()]),
+        leading: widget.leading,
+        middle: widget.middle,
+        validator:
+        SeedValidator(type: widget.type, language: widget.language),
       ),
     );
   }
diff --git a/lib/src/screens/restore/restore_wallet_options_page.dart b/lib/src/screens/restore/restore_wallet_options_page.dart
index bb805e7c0..750a9c7e0 100644
--- a/lib/src/screens/restore/restore_wallet_options_page.dart
+++ b/lib/src/screens/restore/restore_wallet_options_page.dart
@@ -1,11 +1,8 @@
 import 'package:flutter/material.dart';
-import 'package:provider/provider.dart';
-import 'package:cake_wallet/routes.dart';
 import 'package:cake_wallet/src/screens/restore/widgets/restore_button.dart';
 import 'package:cake_wallet/src/screens/base_page.dart';
 import 'package:cake_wallet/src/domain/common/wallet_type.dart';
 import 'package:cake_wallet/generated/i18n.dart';
-import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
 
 class RestoreWalletOptionsPage extends BasePage {
   RestoreWalletOptionsPage(
@@ -18,7 +15,7 @@ class RestoreWalletOptionsPage extends BasePage {
   final Function(BuildContext context) onRestoreFromKeys;
 
   @override
-  String get title => S.current.restore_seed_keys_restore;
+  String get title => S.current.restore_restore_wallet;
 
   final imageSeed = Image.asset('assets/images/restore_seed.png');
   final imageKeys = Image.asset('assets/images/restore_keys.png');
@@ -56,7 +53,7 @@ class RestoreWalletOptionsPage extends BasePage {
         return S.of(context).restore_description_from_seed;
       case WalletType.bitcoin:
         // TODO: Add transaction for bitcoin description.
-        return 'Restore your wallet from 12 word combination code';
+        return S.of(context).restore_bitcoin_description_from_seed;
       default:
         return '';
     }
@@ -68,7 +65,7 @@ class RestoreWalletOptionsPage extends BasePage {
         return S.of(context).restore_description_from_keys;
       case WalletType.bitcoin:
         // TODO: Add transaction for bitcoin description.
-        return 'Restore your wallet from generated WIF string from your private keys';
+        return S.of(context).restore_bitcoin_description_from_keys;
       default:
         return '';
     }
@@ -80,7 +77,7 @@ class RestoreWalletOptionsPage extends BasePage {
         return S.of(context).restore_title_from_keys;
       case WalletType.bitcoin:
         // TODO: Add transaction for bitcoin description.
-        return 'Restore from WIF';
+        return S.of(context).restore_bitcoin_title_from_keys;
       default:
         return '';
     }
diff --git a/lib/src/screens/restore/widgets/restore_button.dart b/lib/src/screens/restore/widgets/restore_button.dart
index ba07d1fe8..8945d51c4 100644
--- a/lib/src/screens/restore/widgets/restore_button.dart
+++ b/lib/src/screens/restore/widgets/restore_button.dart
@@ -19,12 +19,12 @@ class RestoreButton extends StatelessWidget {
       onTap: onPressed,
       child: Container(
         width: double.infinity,
-        height: 150,
+        height: 170,
         padding: EdgeInsets.all(24),
         alignment: Alignment.topLeft,
         decoration: BoxDecoration(
             borderRadius: BorderRadius.all(Radius.circular(12)),
-            color: Theme.of(context).accentTextTheme.title.backgroundColor,
+            color: Theme.of(context).accentTextTheme.caption.color,
         ),
         child: Row(
           mainAxisSize: MainAxisSize.max,
@@ -44,7 +44,7 @@ class RestoreButton extends StatelessWidget {
                       title,
                       style: TextStyle(
                           fontSize: 16,
-                          fontWeight: FontWeight.w600,
+                          fontWeight: FontWeight.w500,
                           color: Theme.of(context).primaryTextTheme.title.color
                       ),
                     ),
@@ -54,7 +54,8 @@ class RestoreButton extends StatelessWidget {
                         description,
                         style: TextStyle(
                             fontSize: 14,
-                            color: Theme.of(context).primaryTextTheme.caption.color
+                            fontWeight: FontWeight.normal,
+                            color: Theme.of(context).primaryTextTheme.overline.color
                         ),
                       ),
                     )
diff --git a/lib/src/screens/seed_language/seed_language_page.dart b/lib/src/screens/seed_language/seed_language_page.dart
index 48b2fd5b6..ccee8aae5 100644
--- a/lib/src/screens/seed_language/seed_language_page.dart
+++ b/lib/src/screens/seed_language/seed_language_page.dart
@@ -1,5 +1,6 @@
+import 'package:cake_wallet/di.dart';
 import 'package:cake_wallet/src/widgets/seed_language_selector.dart';
-import 'package:provider/provider.dart';
+import 'package:cake_wallet/store/settings_store.dart';
 import 'package:flutter_mobx/flutter_mobx.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/cupertino.dart';
@@ -7,8 +8,6 @@ import 'package:cake_wallet/generated/i18n.dart';
 import 'package:cake_wallet/src/screens/base_page.dart';
 import 'package:cake_wallet/src/widgets/primary_button.dart';
 import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
-import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
-import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart';
 import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_picker.dart';
 
 class SeedLanguage extends BasePage {
@@ -16,6 +15,9 @@ class SeedLanguage extends BasePage {
 
   final Function(BuildContext, String) onConfirm;
 
+  @override
+  String get title => S.current.wallet_list_restore_wallet;
+
   @override
   Widget body(BuildContext context) => SeedLanguageForm(onConfirm: onConfirm);
 }
@@ -33,10 +35,14 @@ class SeedLanguageFormState extends State<SeedLanguageForm> {
   static const aspectRatioImage = 1.22;
 
   final walletNameImage = Image.asset('assets/images/wallet_name.png');
+  final walletNameLightImage = Image.asset('assets/images/wallet_name_light.png');
   final _languageSelectorKey = GlobalKey<SeedLanguageSelectorState>();
 
   @override
   Widget build(BuildContext context) {
+    final walletImage = getIt.get<SettingsStore>().isDarkTheme
+        ? walletNameImage : walletNameLightImage;
+
     return Container(
       padding: EdgeInsets.only(top: 24),
       child: ScrollableWithBottomSection(
@@ -47,7 +53,7 @@ class SeedLanguageFormState extends State<SeedLanguageForm> {
               padding: EdgeInsets.only(left: 12, right: 12),
               child: AspectRatio(
                   aspectRatio: aspectRatioImage,
-                  child: FittedBox(child: walletNameImage, fit: BoxFit.fill)),
+                  child: FittedBox(child: walletImage, fit: BoxFit.fill)),
             ),
             Padding(
               padding: EdgeInsets.only(top: 40),
@@ -56,7 +62,7 @@ class SeedLanguageFormState extends State<SeedLanguageForm> {
                 textAlign: TextAlign.center,
                 style: TextStyle(
                     fontSize: 16.0,
-                    fontWeight: FontWeight.w600,
+                    fontWeight: FontWeight.w500,
                     color: Theme.of(context).primaryTextTheme.title.color),
               ),
             ),
diff --git a/lib/src/screens/seed_language/widgets/seed_language_picker.dart b/lib/src/screens/seed_language/widgets/seed_language_picker.dart
index cc476b294..47e43c7c7 100644
--- a/lib/src/screens/seed_language/widgets/seed_language_picker.dart
+++ b/lib/src/screens/seed_language/widgets/seed_language_picker.dart
@@ -1,9 +1,9 @@
 import 'dart:ui';
+import 'package:cake_wallet/src/widgets/alert_background.dart';
+import 'package:cake_wallet/src/widgets/alert_close_button.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'package:cake_wallet/palette.dart';
-import 'package:provider/provider.dart';
-import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
 import 'package:cake_wallet/generated/i18n.dart';
 
 List<Image> flagImages = [
@@ -57,170 +57,111 @@ class SeedLanguagePicker extends StatefulWidget {
 class SeedLanguagePickerState extends State<SeedLanguagePicker> {
   SeedLanguagePickerState({this.selected});
 
+  final closeButton = Image.asset('assets/images/close.png');
   String selected;
 
   @override
   Widget build(BuildContext context) {
-    return GestureDetector(
-      onTap: () => Navigator.of(context).pop(),
-      child: Container(
-        color: Colors.transparent,
-        child: BackdropFilter(
-          filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
-          child: Container(
-            decoration: BoxDecoration(
-                color: PaletteDark.darkNightBlue.withOpacity(0.75)),
-            child: Center(
-              child: Column(
-                mainAxisSize: MainAxisSize.min,
-                children: <Widget>[
-                  Container(
-                    padding: EdgeInsets.only(left: 24, right: 24),
-                    child: Text(
-                      S.of(context).seed_choose,
-                      textAlign: TextAlign.center,
-                      style: TextStyle(
-                          fontSize: 18,
-                          fontWeight: FontWeight.bold,
-                          decoration: TextDecoration.none,
-                          color: Colors.white),
+    return AlertBackground(
+        child: Stack(
+          alignment: Alignment.center,
+          children: <Widget>[
+            Column(
+              mainAxisSize: MainAxisSize.min,
+              children: <Widget>[
+                Container(
+                  padding: EdgeInsets.only(left: 24, right: 24),
+                  child: Text(
+                    S.of(context).seed_choose,
+                    textAlign: TextAlign.center,
+                    style: TextStyle(
+                        fontSize: 18,
+                        fontWeight: FontWeight.bold,
+                        fontFamily: 'Poppins',
+                        decoration: TextDecoration.none,
+                        color: Colors.white
                     ),
                   ),
-                  Padding(
-                    padding: EdgeInsets.only(top: 24),
-                    child: GestureDetector(
-                      onTap: () => null,
-                      child: Container(
-                        height: 300,
-                        width: 300,
-                        decoration: BoxDecoration(
-                            borderRadius: BorderRadius.all(Radius.circular(14)),
-                            color: Theme.of(context).dividerColor),
-                        child: GridView.count(
-                          shrinkWrap: true,
-                          crossAxisCount: 3,
-                          childAspectRatio: 1,
-                          physics: const NeverScrollableScrollPhysics(),
-                          crossAxisSpacing: 1,
-                          mainAxisSpacing: 1,
-                          children: List.generate(9, (index) {
-                            if (index == 8) {
-                              return gridTile(
-                                  isCurrent: false,
-                                  place: Places.bottomRight,
-                                  image: null,
-                                  text: '',
-                                  onTap: null);
-                            } else {
-                              final code = languageCodes[index];
-                              final flag = flagImages[index];
-                              final isCurrent =
-                                  index == seedLanguages.indexOf(selected);
+                ),
+                Padding(
+                  padding: EdgeInsets.only(top: 24),
+                  child: ClipRRect(
+                    borderRadius: BorderRadius.all(Radius.circular(14)),
+                    child: Container(
+                      height: 300,
+                      width: 300,
+                      color: Theme.of(context).accentTextTheme.title.backgroundColor,
+                      child: GridView.count(
+                        shrinkWrap: true,
+                        crossAxisCount: 3,
+                        childAspectRatio: 1,
+                        physics: const NeverScrollableScrollPhysics(),
+                        crossAxisSpacing: 1,
+                        mainAxisSpacing: 1,
+                        children: List.generate(9, (index) {
 
-                              if (index == 0) {
-                                return gridTile(
-                                    isCurrent: isCurrent,
-                                    place: Places.topLeft,
-                                    image: flag,
-                                    text: code,
-                                    onTap: () {
-                                      selected = seedLanguages[index];
-                                      Navigator.of(context).pop(selected);
-                                    });
+                          if (index == 8) {
+
+                            return gridTile(
+                                isCurrent: false,
+                                image: null,
+                                text: '',
+                                onTap: null);
+
+                          }
+
+                          final code = languageCodes[index];
+                          final flag = flagImages[index];
+                          final isCurrent =
+                              index == seedLanguages.indexOf(selected);
+
+                          return gridTile(
+                              isCurrent: isCurrent,
+                              image: flag,
+                              text: code,
+                              onTap: () {
+                                selected = seedLanguages[index];
+                                Navigator.of(context).pop(selected);
                               }
-
-                              if (index == 2) {
-                                return gridTile(
-                                    isCurrent: isCurrent,
-                                    place: Places.topRight,
-                                    image: flag,
-                                    text: code,
-                                    onTap: () {
-                                      selected = seedLanguages[index];
-                                      Navigator.of(context).pop(selected);
-                                    });
-                              }
-
-                              if (index == 6) {
-                                return gridTile(
-                                    isCurrent: isCurrent,
-                                    place: Places.bottomLeft,
-                                    image: flag,
-                                    text: code,
-                                    onTap: () {
-                                      selected = seedLanguages[index];
-                                      Navigator.of(context).pop(selected);
-                                    });
-                              }
-
-                              return gridTile(
-                                  isCurrent: isCurrent,
-                                  place: Places.inside,
-                                  image: flag,
-                                  text: code,
-                                  onTap: () {
-                                    selected = seedLanguages[index];
-                                    Navigator.of(context).pop(selected);
-                                  });
-                            }
-                          }),
-                        ),
+                          );
+                        }),
                       ),
                     ),
-                  )
-                ],
-              ),
+                  ),
+                )
+              ],
             ),
-          ),
-        ),
-      ),
+            AlertCloseButton(image: closeButton)
+          ],
+        )
     );
   }
 
-  Widget gridTile(
-      {@required bool isCurrent,
-      @required Places place,
-      @required Image image,
-      @required String text,
-      @required VoidCallback onTap}) {
-    BorderRadius borderRadius;
-    final color = isCurrent
-        ? Theme.of(context).accentTextTheme.subtitle.decorationColor
-        : Theme.of(context).primaryTextTheme.display1.color;
-    final textColor = isCurrent
-        ? Colors.blue
-        : Theme.of(context).primaryTextTheme.title.color;
+  Widget gridTile({
+    @required bool isCurrent,
+    @required Image image,
+    @required String text,
+    @required VoidCallback onTap}) {
 
-    switch (place) {
-      case Places.topLeft:
-        borderRadius = BorderRadius.only(topLeft: Radius.circular(14));
-        break;
-      case Places.topRight:
-        borderRadius = BorderRadius.only(topRight: Radius.circular(14));
-        break;
-      case Places.bottomLeft:
-        borderRadius = BorderRadius.only(bottomLeft: Radius.circular(14));
-        break;
-      case Places.bottomRight:
-        borderRadius = BorderRadius.only(bottomRight: Radius.circular(14));
-        break;
-      case Places.inside:
-        borderRadius = BorderRadius.all(Radius.circular(0));
-        break;
-    }
+    final color = isCurrent
+        ? Theme.of(context).textTheme.body2.color
+        : Theme.of(context).accentTextTheme.title.color;
+    final textColor = isCurrent
+        ? Palette.blueCraiola
+        : Theme.of(context).primaryTextTheme.title.color;
 
     return GestureDetector(
         onTap: onTap,
         child: Container(
           padding: EdgeInsets.all(10),
-          decoration: BoxDecoration(borderRadius: borderRadius, color: color),
+          color: color,
           child: Center(
             child: Row(
               mainAxisSize: MainAxisSize.min,
               mainAxisAlignment: MainAxisAlignment.center,
               crossAxisAlignment: CrossAxisAlignment.center,
               children: <Widget>[
-                image != null ? image : Offstage(),
+                image ?? Offstage(),
                 Padding(
                   padding: image != null
                       ? EdgeInsets.only(left: 10)
@@ -229,14 +170,17 @@ class SeedLanguagePickerState extends State<SeedLanguagePicker> {
                     text,
                     style: TextStyle(
                         fontSize: 18,
-                        fontWeight: FontWeight.bold,
+                        fontWeight: FontWeight.w600,
+                        fontFamily: 'Poppins',
                         decoration: TextDecoration.none,
-                        color: textColor),
+                        color: textColor
+                    ),
                   ),
                 )
               ],
             ),
           ),
-        ));
+        )
+    );
   }
 }
diff --git a/lib/src/screens/settings/change_language.dart b/lib/src/screens/settings/change_language.dart
index 8e2c49ea2..5ef079216 100644
--- a/lib/src/screens/settings/change_language.dart
+++ b/lib/src/screens/settings/change_language.dart
@@ -1,3 +1,5 @@
+import 'package:cake_wallet/src/screens/settings/widgets/language_row.dart';
+import 'package:cake_wallet/src/widgets/standard_list.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:provider/provider.dart';
@@ -16,29 +18,13 @@ class ChangeLanguage extends BasePage {
     final settingsStore = Provider.of<SettingsStore>(context);
     final currentLanguage = Provider.of<Language>(context);
 
-    final currentColor = Colors.green;
-    final notCurrentColor = Theme.of(context).primaryTextTheme.title.color;
-
-    final shortDivider = Container(
-      height: 1,
-      padding: EdgeInsets.only(left: 24),
-      color: Theme.of(context).accentTextTheme.title.backgroundColor,
-      child: Container(
-        height: 1,
-        color: Theme.of(context).dividerColor,
-      ),
-    );
-
-    final longDivider = Container(
-      height: 1,
-      color: Theme.of(context).dividerColor,
-    );
-
     return Container(
         padding: EdgeInsets.only(top: 10.0),
-        child: ListView.builder(
-          itemCount: languages.values.length,
-          itemBuilder: (BuildContext context, int index) {
+        child: SectionStandardList(
+          sectionCount: 1,
+          context: context,
+          itemCounter: (int sectionIndex) => languages.values.length,
+          itemBuilder: (_, sectionIndex, index) {
             final item = languages.values.elementAt(index);
             final code = languages.keys.elementAt(index);
 
@@ -46,52 +32,30 @@ class ChangeLanguage extends BasePage {
                 ? false
                 : code == settingsStore.languageCode;
 
-            return Column(
-              children: <Widget>[
-                index == 0 ? longDivider : Offstage(),
-                Container(
-                  padding: EdgeInsets.only(top: 4, bottom: 4),
-                  color: Theme.of(context).accentTextTheme.title.backgroundColor,
-                  child: ListTile(
-                    contentPadding: EdgeInsets.only(left: 24, right: 24),
-                    title: Text(
-                      item,
-                      style: TextStyle(
-                          fontSize: 14.0,
-                          fontWeight: FontWeight.w600,
-                          color: isCurrent ? currentColor : notCurrentColor
-                      ),
-                    ),
-                    trailing: isCurrent
-                        ? Icon(Icons.done, color: currentColor)
-                        : Offstage(),
-                    onTap: () async {
-                      if (!isCurrent) {
-                        await showDialog<void>(
-                            context: context,
-                            builder: (BuildContext context) {
-                              return AlertWithTwoActions(
-                                  alertTitle: S.of(context).change_language,
-                                  alertContent: S.of(context).change_language_to(item),
-                                  leftButtonText: S.of(context).change,
-                                  rightButtonText: S.of(context).cancel,
-                                  actionLeftButton: () {
-                                    settingsStore.saveLanguageCode(
-                                        languageCode: code);
-                                    currentLanguage.setCurrentLanguage(code);
-                                    Navigator.of(context).pop();
-                                  },
-                                  actionRightButton: () => Navigator.of(context).pop()
-                              );
-                            });
-                      }
-                    },
-                  ),
-                ),
-                item == languages.values.last
-                    ? longDivider
-                    : shortDivider
-              ],
+            return LanguageRow(
+              title: item,
+              isSelected: isCurrent,
+              handler: (context) async {
+                if (!isCurrent) {
+                  await showDialog<void>(
+                      context: context,
+                      builder: (BuildContext context) {
+                        return AlertWithTwoActions(
+                            alertTitle: S.of(context).change_language,
+                            alertContent: S.of(context).change_language_to(item),
+                            leftButtonText: S.of(context).change,
+                            rightButtonText: S.of(context).cancel,
+                            actionLeftButton: () {
+                              settingsStore.saveLanguageCode(
+                                  languageCode: code);
+                              currentLanguage.setCurrentLanguage(code);
+                              Navigator.of(context).pop();
+                            },
+                            actionRightButton: () => Navigator.of(context).pop()
+                        );
+                      });
+                }
+              },
             );
           },
         )
diff --git a/lib/src/screens/settings/settings.dart b/lib/src/screens/settings/settings.dart
index e35508d81..2ee3b94ff 100644
--- a/lib/src/screens/settings/settings.dart
+++ b/lib/src/screens/settings/settings.dart
@@ -1,3 +1,5 @@
+import 'package:cake_wallet/src/screens/settings/widgets/settings_version_cell.dart';
+import 'package:cake_wallet/view_model/settings/version_list_item.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -41,6 +43,7 @@ class SettingsPage extends BasePage {
               return SettingsPickerCell<dynamic>(
                 title: item.title,
                 selectedItem: item.selectedItem(),
+                isAlwaysShowScrollThumb: item.isAlwaysShowScrollThumb,
                 items: item.items,
                 onItemSelected: (dynamic value) => item.onItemSelected(value),
               );
@@ -57,7 +60,8 @@ class SettingsPage extends BasePage {
           }
 
           if (item is RegularListItem) {
-            return SettingsCellWithArrow(title: item.title);
+            return SettingsCellWithArrow(
+                title: item.title, handler: item.handler);
           }
 
           if (item is LinkListItem) {
@@ -68,6 +72,14 @@ class SettingsPage extends BasePage {
                 linkTitle: item.linkTitle);
           }
 
+          if (item is VersionListItem) {
+            return Observer(builder: (_) {
+              return SettingsVersionCell(
+                  title:
+                      S.of(context).version(settingsViewModel.currentVersion));
+            });
+          }
+
           return Container();
         });
   }
diff --git a/lib/src/screens/settings/widgets/language_row.dart b/lib/src/screens/settings/widgets/language_row.dart
new file mode 100644
index 000000000..0f807a843
--- /dev/null
+++ b/lib/src/screens/settings/widgets/language_row.dart
@@ -0,0 +1,30 @@
+import 'package:cake_wallet/palette.dart';
+import 'package:flutter/material.dart';
+import 'package:cake_wallet/src/widgets/standard_list.dart';
+
+class LanguageRow extends StandardListRow {
+  LanguageRow({@required String title, @required this.isSelected, @required Function(BuildContext context) handler}) :
+        super(title: title, isSelected: isSelected, onTap: handler);
+
+  @override
+  final bool isSelected;
+
+  @override
+  Widget buildCenter(BuildContext context, {@required bool hasLeftOffset}) {
+    return Expanded(
+        child: Row(mainAxisAlignment: MainAxisAlignment.start, children: [
+          if (hasLeftOffset) SizedBox(width: 10),
+          Text(title,
+              style: TextStyle(
+                  fontSize: 14,
+                  fontWeight: FontWeight.w500,
+                  color: titleColor(context)))
+        ]));
+  }
+
+  @override
+  Widget buildTrailing(BuildContext context) =>
+      isSelected
+          ? Icon(Icons.done, color: Palette.blueCraiola)
+          : Offstage();
+}
\ No newline at end of file
diff --git a/lib/src/screens/settings/widgets/settings_cell_with_arrow.dart b/lib/src/screens/settings/widgets/settings_cell_with_arrow.dart
index 6e55aa5ee..270b3d88b 100644
--- a/lib/src/screens/settings/widgets/settings_cell_with_arrow.dart
+++ b/lib/src/screens/settings/widgets/settings_cell_with_arrow.dart
@@ -2,11 +2,11 @@ import 'package:flutter/material.dart';
 import 'package:cake_wallet/src/widgets/standard_list.dart';
 
 class SettingsCellWithArrow extends StandardListRow {
-  SettingsCellWithArrow({@required String title})
-      : super(title: title, isSelected: false);
+  SettingsCellWithArrow({@required String title, @required Function(BuildContext context) handler})
+      : super(title: title, isSelected: false, onTap: handler);
 
   @override
   Widget buildTrailing(BuildContext context) =>
       Image.asset('assets/images/select_arrow.png',
-          color: Theme.of(context).primaryTextTheme.caption.color);
+          color: Theme.of(context).primaryTextTheme.overline.color);
 }
\ No newline at end of file
diff --git a/lib/src/screens/settings/widgets/settings_link_provider_cell.dart b/lib/src/screens/settings/widgets/settings_link_provider_cell.dart
index 3babf3097..362d5ac46 100644
--- a/lib/src/screens/settings/widgets/settings_link_provider_cell.dart
+++ b/lib/src/screens/settings/widgets/settings_link_provider_cell.dart
@@ -1,5 +1,7 @@
+import 'package:cake_wallet/palette.dart';
 import 'package:flutter/material.dart';
 import 'package:cake_wallet/src/widgets/standard_list.dart';
+import 'package:url_launcher/url_launcher.dart';
 
 class SettingsLinkProviderCell extends StandardListRow {
   SettingsLinkProviderCell(
@@ -7,7 +9,7 @@ class SettingsLinkProviderCell extends StandardListRow {
         @required this.icon,
         @required this.link,
         @required this.linkTitle})
-      : super(title: title, isSelected: false);
+      : super(title: title, isSelected: false, onTap: (BuildContext context) => _launchUrl(link) );
 
   final String icon;
   final String link;
@@ -20,5 +22,11 @@ class SettingsLinkProviderCell extends StandardListRow {
   @override
   Widget buildTrailing(BuildContext context) => Text(linkTitle,
       style: TextStyle(
-          fontSize: 14.0, fontWeight: FontWeight.w500, color: Colors.blue));
+          fontSize: 14.0,
+          fontWeight: FontWeight.w500,
+          color: Palette.blueCraiola));
+
+  static void _launchUrl(String url) async {
+    if (await canLaunch(url)) await launch(url);
+  }
 }
\ No newline at end of file
diff --git a/lib/src/screens/settings/widgets/settings_picker_cell.dart b/lib/src/screens/settings/widgets/settings_picker_cell.dart
index 1fc574b7a..a77e76efd 100644
--- a/lib/src/screens/settings/widgets/settings_picker_cell.dart
+++ b/lib/src/screens/settings/widgets/settings_picker_cell.dart
@@ -8,7 +8,8 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
       {@required String title,
       this.selectedItem,
       this.items,
-      this.onItemSelected})
+      this.onItemSelected,
+      this.isAlwaysShowScrollThumb})
       : super(
             title: title,
             isSelected: false,
@@ -22,12 +23,15 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
                       selectedAtIndex: selectedAtIndex,
                       title: S.current.please_select,
                       mainAxisAlignment: MainAxisAlignment.center,
-                      onItemSelected: (ItemType item) => onItemSelected?.call(item)));
+                      isAlwaysShowScrollThumb: isAlwaysShowScrollThumb,
+                      onItemSelected: (ItemType item) =>
+                          onItemSelected?.call(item)));
             });
 
   final ItemType selectedItem;
   final List<ItemType> items;
   final void Function(ItemType item) onItemSelected;
+  final bool isAlwaysShowScrollThumb;
 
   @override
   Widget buildTrailing(BuildContext context) {
@@ -37,7 +41,7 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
       style: TextStyle(
           fontSize: 14.0,
           fontWeight: FontWeight.w500,
-          color: Theme.of(context).primaryTextTheme.caption.color),
+          color: Theme.of(context).primaryTextTheme.overline.color),
     );
   }
 }
diff --git a/lib/src/screens/settings/widgets/settings_switcher_cell.dart b/lib/src/screens/settings/widgets/settings_switcher_cell.dart
index db42274e0..8a02c7e2b 100644
--- a/lib/src/screens/settings/widgets/settings_switcher_cell.dart
+++ b/lib/src/screens/settings/widgets/settings_switcher_cell.dart
@@ -8,9 +8,9 @@ class SettingsSwitcherCell extends StandardListRow {
       : super(title: title, isSelected: false);
 
   final bool value;
-  final void Function(bool value) onValueChange;
+  final void Function(BuildContext context, bool value) onValueChange;
 
   @override
-  Widget buildTrailing(BuildContext context) =>
-      StandartSwitch(value: value, onTaped: () => onValueChange(!value));
+  Widget buildTrailing(BuildContext context) => StandartSwitch(
+      value: value, onTaped: () => onValueChange(context, !value));
 }
diff --git a/lib/src/screens/settings/widgets/settings_version_cell.dart b/lib/src/screens/settings/widgets/settings_version_cell.dart
new file mode 100644
index 000000000..91bd8fc1a
--- /dev/null
+++ b/lib/src/screens/settings/widgets/settings_version_cell.dart
@@ -0,0 +1,28 @@
+import 'package:flutter/material.dart';
+
+class SettingsVersionCell extends StatelessWidget {
+  SettingsVersionCell({@required this.title});
+
+  final String title;
+
+  @override
+  Widget build(BuildContext context) {
+    return Padding(
+      padding: EdgeInsets.only(bottom: 24),
+      child: Row(
+        mainAxisSize: MainAxisSize.max,
+        mainAxisAlignment: MainAxisAlignment.center,
+        children: <Widget>[
+          Text(
+            title,
+            style: TextStyle(
+                fontSize: 12,
+                fontWeight: FontWeight.normal,
+                color: Theme.of(context).primaryTextTheme.overline.color
+            ),
+          )
+        ],
+      ),
+    );
+  }
+}
\ No newline at end of file
diff --git a/lib/src/screens/setup_pin_code/setup_pin_code.dart b/lib/src/screens/setup_pin_code/setup_pin_code.dart
index 3313f72a3..628337e30 100644
--- a/lib/src/screens/setup_pin_code/setup_pin_code.dart
+++ b/lib/src/screens/setup_pin_code/setup_pin_code.dart
@@ -53,7 +53,7 @@ class _SetupPinCodeFormState<WidgetType extends SetupPinCodeForm>
       state.clear();
     } else {
       if (listEquals<int>(state.pin, _originalPin)) {
-        final String pin = state.pin.fold("", (ac, val) => ac + '$val');
+        final String pin = state.pin.fold('', (ac, val) => ac + '$val');
         _userStore.set(password: pin);
         _settingsStore.setDefaultPinLength(pinLength: state.pinLength);
 
diff --git a/lib/src/screens/wallet_list/wallet_menu.dart b/lib/src/screens/wallet_list/wallet_menu.dart
index 7ac1c1986..8d6a793c5 100644
--- a/lib/src/screens/wallet_list/wallet_menu.dart
+++ b/lib/src/screens/wallet_list/wallet_menu.dart
@@ -1,3 +1,4 @@
+import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
 import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart';
 import 'package:flutter/material.dart';
 import 'package:cake_wallet/routes.dart';
@@ -36,10 +37,14 @@ class WalletMenu {
   ];
 
   final List<Image> listImages = [
-    Image.asset('assets/images/load.png', height: 24, width: 24, color: Colors.white),
-    Image.asset('assets/images/eye_action.png', height: 24, width: 24, color: Colors.white),
-    Image.asset('assets/images/trash.png', height: 24, width: 24, color: Colors.white),
-    Image.asset('assets/images/scanner.png', height: 24, width: 24, color: Colors.white)
+    Image.asset('assets/images/load.png',
+        height: 24, width: 24, color: Colors.white),
+    Image.asset('assets/images/eye_action.png',
+        height: 24, width: 24, color: Colors.white),
+    Image.asset('assets/images/trash.png',
+        height: 24, width: 24, color: Colors.white),
+    Image.asset('assets/images/scanner.png',
+        height: 24, width: 24, color: Colors.white)
   ];
 
   List<String> generateItemsForWalletMenu(bool isCurrentWallet) {
@@ -87,10 +92,11 @@ class WalletMenu {
     return images;
   }
 
-  void action(int index, WalletListItem wallet, bool isCurrentWallet) {
+  Future<void> action(
+      int index, WalletListItem wallet, bool isCurrentWallet) async {
     switch (index) {
       case 0:
-        Navigator.of(context).pushNamed(Routes.auth, arguments:
+        await Navigator.of(context).pushNamed(Routes.auth, arguments:
             (bool isAuthenticatedSuccessfully, AuthPageState auth) async {
           if (!isAuthenticatedSuccessfully) {
             return;
@@ -110,7 +116,7 @@ class WalletMenu {
         });
         break;
       case 1:
-        Navigator.of(context).pushNamed(Routes.auth, arguments:
+        await Navigator.of(context).pushNamed(Routes.auth, arguments:
             (bool isAuthenticatedSuccessfully, AuthPageState auth) async {
           if (!isAuthenticatedSuccessfully) {
             return;
@@ -120,7 +126,23 @@ class WalletMenu {
         });
         break;
       case 2:
-        Navigator.of(context).pushNamed(Routes.auth, arguments:
+        final isComfirmed = await showDialog<bool>(
+            context: context,
+            builder: (BuildContext context) {
+              return AlertWithTwoActions(
+                  alertTitle: 'Remove wallet',
+                  alertContent: S.of(context).confirm_delete_wallet,
+                  leftButtonText: S.of(context).cancel,
+                  rightButtonText: S.of(context).remove,
+                  actionLeftButton: () => Navigator.of(context).pop(false),
+                  actionRightButton: () => Navigator.of(context).pop(true));
+            });
+
+        if (isComfirmed == null || !isComfirmed) {
+          return;
+        }
+
+        await Navigator.of(context).pushNamed(Routes.auth, arguments:
             (bool isAuthenticatedSuccessfully, AuthPageState auth) async {
           if (!isAuthenticatedSuccessfully) {
             return;
@@ -139,7 +161,7 @@ class WalletMenu {
         });
         break;
       case 3:
-        Navigator.of(context).pushNamed(Routes.rescan);
+        await Navigator.of(context).pushNamed(Routes.rescan);
         break;
       default:
         break;
diff --git a/lib/src/screens/welcome/welcome_page.dart b/lib/src/screens/welcome/welcome_page.dart
index 46a4fb89f..78cd04835 100644
--- a/lib/src/screens/welcome/welcome_page.dart
+++ b/lib/src/screens/welcome/welcome_page.dart
@@ -1,12 +1,10 @@
+import 'package:cake_wallet/di.dart';
+import 'package:cake_wallet/store/settings_store.dart';
 import 'package:flutter/material.dart';
-import 'package:cake_wallet/palette.dart';
 import 'package:cake_wallet/routes.dart';
 import 'package:cake_wallet/src/widgets/primary_button.dart';
 import 'package:cake_wallet/src/screens/base_page.dart';
 import 'package:cake_wallet/generated/i18n.dart';
-import 'package:provider/provider.dart';
-import 'package:cake_wallet/themes.dart';
-import 'package:cake_wallet/theme_changer.dart';
 
 class WelcomePage extends BasePage {
   static const aspectRatioImage = 1.25;
@@ -23,14 +21,13 @@ class WelcomePage extends BasePage {
 
   @override
   Widget body(BuildContext context) {
-    final _themeChanger = Provider.of<ThemeChanger>(context);
-    final welcomeImage = _themeChanger.getTheme() == Themes.darkTheme
-    ? welcomeImageDark : welcomeImageLight;
+    final welcomeImage = getIt.get<SettingsStore>().isDarkTheme
+        ? welcomeImageDark : welcomeImageLight;
 
     final newWalletImage = Image.asset('assets/images/new_wallet.png',
         height: 12,
         width: 12,
-        color: Palette.oceanBlue);
+        color: Theme.of(context).accentTextTheme.headline.decorationColor);
     final restoreWalletImage = Image.asset('assets/images/restore_wallet.png',
         height: 12,
         width: 12,
@@ -60,13 +57,14 @@ class WelcomePage extends BasePage {
                         S.of(context).welcome,
                         style: TextStyle(
                           fontSize: 18,
-                          color: Theme.of(context).primaryTextTheme.caption.color,
+                          fontWeight: FontWeight.w500,
+                          color: Theme.of(context).accentTextTheme.display3.color,
                         ),
                         textAlign: TextAlign.center,
                       ),
                     ),
                     Padding(
-                      padding: EdgeInsets.only(top: 10),
+                      padding: EdgeInsets.only(top: 5),
                       child: Text(
                         S.of(context).cake_wallet,
                         style: TextStyle(
@@ -78,13 +76,13 @@ class WelcomePage extends BasePage {
                       ),
                     ),
                     Padding(
-                      padding: EdgeInsets.only(top: 14),
+                      padding: EdgeInsets.only(top: 5),
                       child: Text(
                         S.of(context).first_wallet_text,
                         style: TextStyle(
                           fontSize: 16,
-                          fontWeight: FontWeight.w600,
-                          color: Theme.of(context).primaryTextTheme.caption.color,
+                          fontWeight: FontWeight.w500,
+                          color: Theme.of(context).accentTextTheme.display3.color,
                         ),
                         textAlign: TextAlign.center,
                       ),
@@ -97,7 +95,8 @@ class WelcomePage extends BasePage {
                       S.of(context).please_make_selection,
                       style: TextStyle(
                         fontSize: 12,
-                        color: Theme.of(context).primaryTextTheme.caption.color,
+                        fontWeight: FontWeight.normal,
+                        color: Theme.of(context).accentTextTheme.display3.color,
                       ),
                       textAlign: TextAlign.center,
                     ),
@@ -107,18 +106,17 @@ class WelcomePage extends BasePage {
                         onPressed: () => Navigator.pushNamed(context, Routes.newWalletFromWelcome),
                         image: newWalletImage,
                         text: S.of(context).create_new,
-                        color: Colors.white,
-                        textColor: Palette.oceanBlue,
-                        borderColor: Palette.oceanBlue,
+                        color: Theme.of(context).accentTextTheme.subtitle.decorationColor,
+                        textColor: Theme.of(context).accentTextTheme.headline.decorationColor,
                       ),
                     ),
                     Padding(
                       padding: EdgeInsets.only(top: 10),
                       child: PrimaryImageButton(
-                          onPressed: () => Navigator.pushNamed(context, Routes.restoreOptions),
+                          onPressed: () => Navigator.pushNamed(context, Routes.restoreWalletOptionsFromWelcome),
                           image: restoreWalletImage,
                           text: S.of(context).restore_wallet,
-                          color: Theme.of(context).primaryTextTheme.overline.color,
+                          color: Theme.of(context).accentTextTheme.caption.color,
                           textColor: Theme.of(context).primaryTextTheme.title.color),
                     )
                   ],
diff --git a/lib/src/widgets/base_alert_dialog.dart b/lib/src/widgets/base_alert_dialog.dart
index 14b5a58a4..d22d01d5a 100644
--- a/lib/src/widgets/base_alert_dialog.dart
+++ b/lib/src/widgets/base_alert_dialog.dart
@@ -31,6 +31,7 @@ class BaseAlertDialog extends StatelessWidget {
       textAlign: TextAlign.center,
       style: TextStyle(
         fontSize: 16,
+        fontWeight: FontWeight.normal,
         fontFamily: 'Poppins',
         color: Theme.of(context).primaryTextTheme.title.color,
         decoration: TextDecoration.none,
diff --git a/lib/src/widgets/blockchain_height_widget.dart b/lib/src/widgets/blockchain_height_widget.dart
index 9e66d4077..2f6105887 100644
--- a/lib/src/widgets/blockchain_height_widget.dart
+++ b/lib/src/widgets/blockchain_height_widget.dart
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:intl/intl.dart';
 import 'package:cake_wallet/generated/i18n.dart';
 import 'package:cake_wallet/src/domain/monero/get_height_by_date.dart';
+import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
 
 class BlockchainHeightWidget extends StatefulWidget {
   BlockchainHeightWidget({GlobalKey key, this.onHeightChange})
@@ -46,26 +47,12 @@ class BlockchainHeightState extends State<BlockchainHeightWidget> {
             Flexible(
                 child: Container(
               padding: EdgeInsets.only(top: 20.0, bottom: 10.0),
-              child: TextFormField(
-                style: TextStyle(
-                    fontSize: 16.0,
-                    color: Theme.of(context).primaryTextTheme.title.color),
+              child: BaseTextFormField(
                 controller: restoreHeightController,
                 keyboardType: TextInputType.numberWithOptions(
                     signed: false, decimal: false),
-                decoration: InputDecoration(
-                    hintStyle: TextStyle(
-                        color: Theme.of(context).primaryTextTheme.caption.color,
-                        fontSize: 16),
-                    hintText: S.of(context).widgets_restore_from_blockheight,
-                    focusedBorder: UnderlineInputBorder(
-                        borderSide: BorderSide(
-                            color: Theme.of(context).dividerColor, width: 1.0)),
-                    enabledBorder: UnderlineInputBorder(
-                        borderSide: BorderSide(
-                            color: Theme.of(context).dividerColor,
-                            width: 1.0))),
-              ),
+                hintText: S.of(context).widgets_restore_from_blockheight,
+              )
             ))
           ],
         ),
@@ -75,7 +62,7 @@ class BlockchainHeightState extends State<BlockchainHeightWidget> {
             S.of(context).widgets_or,
             style: TextStyle(
                 fontSize: 16.0,
-                fontWeight: FontWeight.bold,
+                fontWeight: FontWeight.w500,
                 color: Theme.of(context).primaryTextTheme.title.color),
           ),
         ),
@@ -86,31 +73,10 @@ class BlockchainHeightState extends State<BlockchainHeightWidget> {
               child: InkWell(
                 onTap: () => _selectDate(context),
                 child: IgnorePointer(
-                  child: TextFormField(
-                    style: TextStyle(
-                        fontSize: 16.0,
-                        color: Theme.of(context).primaryTextTheme.title.color),
-                    decoration: InputDecoration(
-                        hintStyle: TextStyle(
-                            color: Theme.of(context)
-                                .primaryTextTheme
-                                .caption
-                                .color,
-                            fontSize: 16),
-                        hintText: S.of(context).widgets_restore_from_date,
-                        focusedBorder: UnderlineInputBorder(
-                            borderSide: BorderSide(
-                                color: Theme.of(context).dividerColor,
-                                width: 1.0)),
-                        enabledBorder: UnderlineInputBorder(
-                            borderSide: BorderSide(
-                                color: Theme.of(context).dividerColor,
-                                width: 1.0))),
+                  child: BaseTextFormField(
                     controller: dateController,
-                    validator: (value) {
-                      return null;
-                    },
-                  ),
+                    hintText: S.of(context).widgets_restore_from_date,
+                  )
                 ),
               ),
             ))
diff --git a/lib/src/widgets/picker.dart b/lib/src/widgets/picker.dart
index 732c2118d..935237573 100644
--- a/lib/src/widgets/picker.dart
+++ b/lib/src/widgets/picker.dart
@@ -123,9 +123,7 @@ class PickerState<Item> extends State<Picker> {
                                         mainAxisAlignment: widget.mainAxisAlignment,
                                         crossAxisAlignment: CrossAxisAlignment.center,
                                         children: <Widget>[
-                                          image != null
-                                              ? image
-                                              : Offstage(),
+                                          image ?? Offstage(),
                                           Padding(
                                             padding: EdgeInsets.only(
                                                 left: image != null ? 12 : 0
diff --git a/lib/src/widgets/seed_language_selector.dart b/lib/src/widgets/seed_language_selector.dart
index f66cadb8e..74420d370 100644
--- a/lib/src/widgets/seed_language_selector.dart
+++ b/lib/src/widgets/seed_language_selector.dart
@@ -34,14 +34,14 @@ class SeedLanguageSelectorState extends State<SeedLanguageSelector> {
     return SelectButton(
         image: null,
         text: seedLocales[seedLanguages.indexOf(selected)],
-        color: Theme.of(context).accentTextTheme.title.backgroundColor,
-        textColor: Theme.of(context).primaryTextTheme.title.color,
         onTap: () async {
           final selected = await showDialog<String>(
               context: context,
               builder: (BuildContext context) =>
                   SeedLanguagePicker(key: _pickerKey, selected: this.selected));
-          setState(() => this.selected = selected);
+          if (selected != null) {
+            setState(() => this.selected = selected);
+          }
         });
   }
 }
diff --git a/lib/src/widgets/seed_widget.dart b/lib/src/widgets/seed_widget.dart
index c9b918556..d3070af16 100644
--- a/lib/src/widgets/seed_widget.dart
+++ b/lib/src/widgets/seed_widget.dart
@@ -6,6 +6,7 @@ import 'package:cake_wallet/core/seed_validator.dart';
 import 'package:cake_wallet/src/widgets/primary_button.dart';
 import 'package:cake_wallet/src/domain/common/mnemonic_item.dart';
 import 'package:cake_wallet/generated/i18n.dart';
+import 'package:flutter/widgets.dart';
 
 class SeedWidget extends StatefulWidget {
   SeedWidget(
@@ -13,6 +14,8 @@ class SeedWidget extends StatefulWidget {
       this.maxLength,
       this.onMnemonicChange,
       this.onFinish,
+      this.leading,
+      this.middle,
       this.validator})
       : super(key: key);
 
@@ -20,6 +23,8 @@ class SeedWidget extends StatefulWidget {
   final Function(List<MnemonicItem>) onMnemonicChange;
   final Function() onFinish;
   final SeedValidator validator;
+  final Widget leading;
+  final Widget middle;
 
   @override
   SeedWidgetState createState() => SeedWidgetState(maxLength: maxLength);
@@ -199,74 +204,90 @@ class SeedWidgetState extends State<SeedWidget> {
       child: Column(children: [
         Flexible(
           fit: FlexFit.tight,
-          flex: 1,
+          flex: 2,
           child: Container(
-            width: double.infinity,
-            height: double.infinity,
-            padding: EdgeInsets.all(24),
-            decoration: BoxDecoration(
-                borderRadius: BorderRadius.only(
-                    bottomLeft: Radius.circular(24),
-                    bottomRight: Radius.circular(24)),
-                color: Theme.of(context).accentTextTheme.title.backgroundColor),
-            child: SingleChildScrollView(
+              width: double.infinity,
+              height: double.infinity,
+              padding: EdgeInsets.all(0),
+              decoration: BoxDecoration(
+                  borderRadius: BorderRadius.only(
+                      bottomLeft: Radius.circular(24),
+                      bottomRight: Radius.circular(24)),
+                  gradient: LinearGradient(colors: [
+                    Theme.of(context).primaryTextTheme.subhead.color,
+                    Theme.of(context).primaryTextTheme.subhead.decorationColor,
+                  ], begin: Alignment.topLeft, end: Alignment.bottomRight)),
               child: Column(
-                mainAxisAlignment: MainAxisAlignment.start,
-                crossAxisAlignment: CrossAxisAlignment.start,
                 children: <Widget>[
-                  Text(
-                    S.of(context).restore_active_seed,
-                    style: TextStyle(
-                        fontSize: 14,
-                        color:
-                            Theme.of(context).primaryTextTheme.caption.color),
+                  CupertinoNavigationBar(
+                    leading: widget.leading,
+                    middle: widget.middle,
+                    backgroundColor: Colors.transparent,
+                    border: null,
                   ),
-                  Padding(
-                      padding: EdgeInsets.only(top: 5),
-                      child: Wrap(
-                        children: items.map((item) {
-                          final isValid = widget.validator.isValid(item);
-                          final isSelected = selectedItem == item;
+                  Expanded(
+                      child: Container(
+                    padding: EdgeInsets.all(24),
+                    alignment: Alignment.topLeft,
+                    child: SingleChildScrollView(
+                      child: Column(
+                        mainAxisAlignment: MainAxisAlignment.start,
+                        crossAxisAlignment: CrossAxisAlignment.start,
+                        children: <Widget>[
+                          Text(
+                            S.of(context).restore_active_seed,
+                            style: TextStyle(
+                                fontSize: 14,
+                                fontWeight: FontWeight.w500,
+                                color: Theme.of(context)
+                                    .textTheme
+                                    .overline
+                                    .backgroundColor),
+                          ),
+                          Padding(
+                              padding: EdgeInsets.only(top: 5),
+                              child: Wrap(
+                                children: items.map((item) {
+                                  final isValid =
+                                      widget.validator.isValid(item);
+                                  final isSelected = selectedItem == item;
 
-                          return InkWell(
-                            onTap: () => onMnemonicTap(item),
-                            child: Container(
-                                decoration: BoxDecoration(
-                                    color: isValid
-                                        ? Colors.transparent
-                                        : Palette.red),
-                                margin: EdgeInsets.only(right: 7, bottom: 8),
-                                child: Text(
-                                  item.toString(),
-                                  style: TextStyle(
-                                      color: isValid
-                                          ? Theme.of(context)
-                                              .primaryTextTheme
-                                              .title
-                                              .color
-                                          : Theme.of(context)
-                                              .primaryTextTheme
-                                              .caption
-                                              .color,
-                                      fontSize: 16,
-                                      fontWeight: isSelected
-                                          ? FontWeight.w900
-                                          : FontWeight.w400,
-                                      decoration: isSelected
-                                          ? TextDecoration.underline
-                                          : TextDecoration.none),
-                                )),
-                          );
-                        }).toList(),
-                      ))
+                                  return InkWell(
+                                    onTap: () => onMnemonicTap(item),
+                                    child: Container(
+                                        decoration: BoxDecoration(
+                                            color: isValid
+                                                ? Colors.transparent
+                                                : Palette.red),
+                                        margin: EdgeInsets.only(
+                                            right: 7, bottom: 8),
+                                        child: Text(
+                                          item.toString(),
+                                          style: TextStyle(
+                                              color: isValid
+                                                  ? Colors.white
+                                                  : Colors.grey,
+                                              fontSize: 16,
+                                              fontWeight: isSelected
+                                                  ? FontWeight.w900
+                                                  : FontWeight.w600,
+                                              decoration: isSelected
+                                                  ? TextDecoration.underline
+                                                  : TextDecoration.none),
+                                        )),
+                                  );
+                                }).toList(),
+                              ))
+                        ],
+                      ),
+                    ),
+                  ))
                 ],
-              ),
-            ),
-          ),
+              )),
         ),
         Flexible(
             fit: FlexFit.tight,
-            flex: 2,
+            flex: 3,
             child: Padding(
               padding:
                   EdgeInsets.only(left: 24, top: 48, right: 24, bottom: 24),
@@ -277,8 +298,8 @@ class SeedWidgetState extends State<SeedWidget> {
                     Text(
                       S.of(context).restore_new_seed,
                       style: TextStyle(
-                          fontSize: 18,
-                          fontWeight: FontWeight.bold,
+                          fontSize: 20,
+                          fontWeight: FontWeight.w500,
                           color:
                               Theme.of(context).primaryTextTheme.title.color),
                     ),
@@ -291,6 +312,7 @@ class SeedWidgetState extends State<SeedWidget> {
                             : null,
                         style: TextStyle(
                             fontSize: 16.0,
+                            fontWeight: FontWeight.normal,
                             color:
                                 Theme.of(context).primaryTextTheme.title.color),
                         controller: _seedController,
@@ -306,10 +328,11 @@ class SeedWidgetState extends State<SeedWidget> {
                                     Text('${items.length}/$maxLength',
                                         style: TextStyle(
                                             color: Theme.of(context)
-                                                .primaryTextTheme
-                                                .caption
-                                                .color,
-                                            fontSize: 14)),
+                                                .accentTextTheme
+                                                .display2
+                                                .decorationColor,
+                                            fontWeight: FontWeight.normal,
+                                            fontSize: 16)),
                                     SizedBox(width: 10),
                                     InkWell(
                                       onTap: () async =>
@@ -322,17 +345,14 @@ class SeedWidgetState extends State<SeedWidget> {
                                           decoration: BoxDecoration(
                                               color: Theme.of(context)
                                                   .accentTextTheme
-                                                  .title
-                                                  .backgroundColor,
+                                                  .caption
+                                                  .color,
                                               borderRadius:
                                                   BorderRadius.circular(10.0)),
                                           child: Text(
                                             S.of(context).paste,
                                             style: TextStyle(
-                                                color: Theme.of(context)
-                                                    .primaryTextTheme
-                                                    .title
-                                                    .color),
+                                                color: Palette.blueCraiola),
                                           )),
                                     )
                                   ],
@@ -341,20 +361,27 @@ class SeedWidgetState extends State<SeedWidget> {
                             ),
                             hintStyle: TextStyle(
                                 color: Theme.of(context)
-                                    .primaryTextTheme
-                                    .caption
-                                    .color,
+                                    .accentTextTheme
+                                    .display2
+                                    .decorationColor,
+                                fontWeight: FontWeight.normal,
                                 fontSize: 16),
                             hintText:
                                 S.of(context).restore_from_seed_placeholder,
                             errorText: _errorMessage,
                             focusedBorder: UnderlineInputBorder(
                                 borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
+                                    color: Theme.of(context)
+                                        .accentTextTheme
+                                        .subtitle
+                                        .backgroundColor,
                                     width: 1.0)),
                             enabledBorder: UnderlineInputBorder(
                                 borderSide: BorderSide(
-                                    color: Theme.of(context).dividerColor,
+                                    color: Theme.of(context)
+                                        .accentTextTheme
+                                        .subtitle
+                                        .backgroundColor,
                                     width: 1.0))),
                         enableInteractiveSelection: false,
                       ),
@@ -386,7 +413,7 @@ class SeedWidgetState extends State<SeedWidget> {
                             onPressed: () => widget.onFinish != null
                                 ? widget.onFinish()
                                 : null,
-                            color: Colors.green,
+                            color: Palette.blueCraiola,
                             textColor: Colors.white)
                         : PrimaryButton(
                             text: selectedItem != null
@@ -397,7 +424,7 @@ class SeedWidgetState extends State<SeedWidget> {
                                 : null,
                             onDisabledPressed: () => showErrorIfExist(),
                             isDisabled: !isCurrentMnemonicValid,
-                            color: Colors.green,
+                            color: Palette.blueCraiola,
                             textColor: Colors.white),
                   ),
                 )
diff --git a/lib/src/widgets/standard_list.dart b/lib/src/widgets/standard_list.dart
index 9ad338870..e4f82a877 100644
--- a/lib/src/widgets/standard_list.dart
+++ b/lib/src/widgets/standard_list.dart
@@ -41,18 +41,17 @@ class StandardListRow extends StatelessWidget {
           style: TextStyle(
               fontSize: 14,
               fontWeight: FontWeight.normal,
-              color: _titleColor(context)))
+              color: titleColor(context)))
     ]));
   }
 
   Widget buildTrailing(BuildContext context) => null;
 
-  Color _titleColor(BuildContext context) => isSelected
+  Color titleColor(BuildContext context) => isSelected
       ? Palette.blueCraiola
       : Theme.of(context).primaryTextTheme.title.color;
 
   Color _backgroundColor(BuildContext context) {
-//    return Theme.of(context).accentTextTheme.subtitle.decorationColor;
     return Theme.of(context).backgroundColor;
   }
 }
@@ -114,16 +113,20 @@ class SectionStandardList extends StatelessWidget {
       {@required this.itemCounter,
       @required this.itemBuilder,
       @required this.sectionCount,
+      this.hasTopSeparator = false,
       BuildContext context})
-      : totalRows = transform(context, sectionCount, itemCounter, itemBuilder);
+      : totalRows = transform(hasTopSeparator, context, sectionCount,
+      itemCounter, itemBuilder);
 
   final int sectionCount;
+  final bool hasTopSeparator;
   final int Function(int sectionIndex) itemCounter;
   final Widget Function(BuildContext context, int sectionIndex, int itemIndex)
       itemBuilder;
   final List<Widget> totalRows;
 
   static List<Widget> transform(
+      bool hasTopSeparator,
       BuildContext context,
       int sectionCount,
       int Function(int sectionIndex) itemCounter,
@@ -132,9 +135,9 @@ class SectionStandardList extends StatelessWidget {
     final items = <Widget>[];
 
     for (var sectionIndex = 0; sectionIndex < sectionCount; sectionIndex++) {
-      /*if (sectionIndex == 0) {
-        items.add(StandardListSeparator());
-      }*/
+      if ((sectionIndex == 0)&&(hasTopSeparator)) {
+        items.add(StandardListSeparator(padding: EdgeInsets.only(left: 24)));
+      }
 
       final itemCount = itemCounter(sectionIndex);
 
diff --git a/lib/src/widgets/standart_switch.dart b/lib/src/widgets/standart_switch.dart
index cb2696339..0fa56f6ad 100644
--- a/lib/src/widgets/standart_switch.dart
+++ b/lib/src/widgets/standart_switch.dart
@@ -26,7 +26,7 @@ class StandartSwitchState extends State<StandartSwitch> {
         decoration: BoxDecoration(
             color: widget.value
                 ? Colors.green
-                : PaletteDark.distantBlue,
+                : Theme.of(context).accentTextTheme.display4.color,
             borderRadius: BorderRadius.all(Radius.circular(14.0))),
         child: Container(
           width: 24.0,
diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart
index f27943be4..22589bedb 100644
--- a/lib/store/settings_store.dart
+++ b/lib/store/settings_store.dart
@@ -44,9 +44,14 @@ abstract class SettingsStoreBase with Store {
     languageCode = initialLanguageCode;
     currentLocale = initialCurrentLocale;
     itemHeaders = {};
+    this.nodes = ObservableMap<WalletType, Node>.of(nodes);
     _sharedPreferences = sharedPreferences;
     _nodeSource = nodeSource;
-    _nodes = nodes;
+
+    reaction(
+        (_) => allowBiometricalAuthentication,
+        (bool biometricalAuthentication) => sharedPreferences.setBool(
+            allowBiometricalAuthenticationKey, biometricalAuthentication));
   }
 
   static const currentNodeIdKey = 'current_node_id';
@@ -62,9 +67,6 @@ abstract class SettingsStoreBase with Store {
   static const currentPinLength = 'current_pin_length';
   static const currentLanguageCode = 'language_code';
 
-//  @observable
-//  Node node;
-
   @observable
   FiatCurrency fiatCurrency;
 
@@ -101,9 +103,9 @@ abstract class SettingsStoreBase with Store {
   SharedPreferences _sharedPreferences;
   Box<Node> _nodeSource;
 
-  Map<WalletType, Node> _nodes;
+  ObservableMap<WalletType, Node> nodes;
 
-  Node getCurrentNode(WalletType walletType) => _nodes[walletType];
+  Node getCurrentNode(WalletType walletType) => nodes[walletType];
 
   Future<void> setCurrentNode(Node node, WalletType walletType) async {
     switch (walletType) {
@@ -118,7 +120,7 @@ abstract class SettingsStoreBase with Store {
         break;
     }
 
-    _nodes[walletType] = node;
+    nodes[walletType] = node;
   }
 
   static Future<SettingsStore> load(
diff --git a/lib/themes.dart b/lib/themes.dart
index a25a61de1..f8d984baf 100644
--- a/lib/themes.dart
+++ b/lib/themes.dart
@@ -154,7 +154,19 @@ class Themes {
       ),
       display2: TextStyle(
         color: Palette.shadowWhite, // action button color (address text field)
+        decorationColor: Palette.darkGray // hint text (seed widget)
       ),
+      display3: TextStyle(
+        color: Palette.darkGray, // hint text (new wallet page)
+        decorationColor: Palette.periwinkleCraiola // underline (new wallet page)
+      ),
+      display4: TextStyle(
+        color: Palette.darkGray, // switch background (settings page)
+      ),
+      body1: TextStyle(
+        color: Palette.darkGray, // indicators (PIN code)
+        decorationColor: Palette.darkGray // switch (PIN code)
+      )
     ),
 
 
@@ -320,7 +332,19 @@ class Themes {
       ),
       display2: TextStyle(
         color: PaletteDark.nightBlue, // action button color (address text field)
+        decorationColor: PaletteDark.darkCyanBlue // hint text (seed widget)
       ),
+      display3: TextStyle(
+        color: PaletteDark.cyanBlue, // hint text (new wallet page)
+        decorationColor: PaletteDark.darkGrey // underline (new wallet page)
+      ),
+      display4: TextStyle(
+        color: PaletteDark.deepVioletBlue, // switch background (settings page)
+      ),
+      body1: TextStyle(
+        color: PaletteDark.indicatorVioletBlue, // indicators (PIN code)
+        decorationColor: PaletteDark.lightPurpleBlue // switch (PIN code)
+      )
     ),
 
 
diff --git a/lib/utils/item_cell.dart b/lib/utils/item_cell.dart
new file mode 100644
index 000000000..4aca57b46
--- /dev/null
+++ b/lib/utils/item_cell.dart
@@ -0,0 +1,11 @@
+import 'package:flutter/foundation.dart';
+import 'package:cake_wallet/utils/mobx.dart';
+
+class ItemCell<Item> with Keyable {
+  ItemCell(this.value, {@required this.isSelected, @required dynamic key}) {
+    keyIndex = key;
+  }
+
+  final Item value;
+  final bool isSelected;
+}
diff --git a/lib/utils/mobx.dart b/lib/utils/mobx.dart
index 0065a939d..6a8413aff 100644
--- a/lib/utils/mobx.dart
+++ b/lib/utils/mobx.dart
@@ -1,46 +1,90 @@
+import 'dart:async';
+
+import 'package:hive/hive.dart';
 import 'package:mobx/mobx.dart';
 
-void connectDifferent<T, Y>(
+mixin Keyable {
+  dynamic keyIndex;
+}
+
+void connectDifferent<T extends Keyable, Y extends Keyable>(
     ObservableList<T> source, ObservableList<Y> dest, Y Function(T) transform,
     {bool Function(T) filter}) {
   source.observe((ListChange<T> change) {
-//     switch (change.type) {
-//       case OperationType.add:
-//         final _values = change.added;
-//         Iterable<T> values;
+    change.elementChanges.forEach((change) {
+      switch (change.type) {
+        case OperationType.add:
+          if (filter?.call(change.newValue as T) ?? true) {
+            dest.add(transform(change.newValue as T));
+          }
+          break;
+        case OperationType.remove:
+          // Hive could has equal index and key
+          dest.removeWhere(
+              (elem) => elem.keyIndex == (change.oldValue.key ?? change.index));
+          break;
+        case OperationType.update:
+          for (var i = 0; i < dest.length; i++) {
+            final item = dest[i];
 
-//         if (filter != null) {
-//           values = _values.where(filter);
-//         }
-
-//         dest.addAll(values.map((e) => transform(e)));
-//         break;
-//       case OperationType.remove:
-//         change.removed.forEach((element) {
-//           dest.remove(element);
-//         });
-
-// //        dest.removeAt(change.index);
-//         break;
-//       case OperationType.update:
-// //        change.index
-//         break;
-//     }
+            if (item.keyIndex == change.newValue.key) {
+              dest[i] = transform(change.newValue as T);
+            }
+          }
+          break;
+      }
+    });
   });
 }
 
-void connect<T>(ObservableList<T> source, ObservableList<T> dest) {
+void connect<T extends Keyable>(
+    ObservableList<T> source, ObservableList<T> dest) {
   source.observe((ListChange<T> change) {
-//     switch (change.type) {
-//       case OperationType.add:
-//         dest.addAll(change.added);
-//         break;
-//       case OperationType.remove:
-//         dest.removeAt(change.index);
-//         break;
-//       case OperationType.update:
-// //        change.index
-//         break;
-//     }
+    source.observe((ListChange<T> change) {
+      change.elementChanges.forEach((change) {
+        switch (change.type) {
+          case OperationType.add:
+            // if (filter?.call(change.newValue as T) ?? true) {
+            dest.add(change.newValue as T);
+            // }
+            break;
+          case OperationType.remove:
+            // Hive could has equal index and key
+            dest.removeWhere((elem) =>
+                elem.keyIndex == (change.oldValue.key ?? change.index));
+            break;
+          case OperationType.update:
+            for (var i = 0; i < dest.length; i++) {
+              final item = dest[i];
+
+              if (item.keyIndex == change.newValue.key) {
+                dest[i] = change.newValue as T;
+              }
+            }
+            break;
+        }
+      });
+    });
+  });
+}
+
+StreamSubscription<BoxEvent> bindBox<T extends Keyable>(
+    Box<T> source, ObservableList<T> dest) {
+  return source.watch().listen((event) {
+    if (event.deleted) {
+      dest.removeWhere((el) => el.keyIndex == event.key);
+    }
+
+    final dynamic value = event.value;
+
+    if (value is T) {
+      final elIndex = dest.indexWhere((el) => el.keyIndex == value.keyIndex);
+
+      if (elIndex > -1) {
+        dest[elIndex] = value;
+      } else {
+        dest.add(value);
+      }
+    }
   });
 }
diff --git a/lib/view_model/contact_list/contact_list_view_model.dart b/lib/view_model/contact_list/contact_list_view_model.dart
index a3f526a86..87917b25a 100644
--- a/lib/view_model/contact_list/contact_list_view_model.dart
+++ b/lib/view_model/contact_list/contact_list_view_model.dart
@@ -1,20 +1,34 @@
+import 'dart:async';
+
+import 'package:hive/hive.dart';
 import 'package:mobx/mobx.dart';
 import 'package:cake_wallet/core/contact_service.dart';
 import 'package:cake_wallet/store/contact_list_store.dart';
 import 'package:cake_wallet/src/domain/common/contact.dart';
+import 'package:cake_wallet/utils/mobx.dart';
 
 part 'contact_list_view_model.g.dart';
 
-class ContactListViewModel = ContactListViewModelBase with _$ContactListViewModel;
+class ContactListViewModel = ContactListViewModelBase
+    with _$ContactListViewModel;
 
 abstract class ContactListViewModelBase with Store {
-  ContactListViewModelBase(this.addressBookStore, this.contactService);
+  ContactListViewModelBase(
+      this.addressBookStore, this.contactService, this.contactSource) {
+    _subscription = bindBox(contactSource, addressBookStore.contacts);
+  }
 
   final ContactListStore addressBookStore;
   final ContactService contactService;
+  final Box<Contact> contactSource;
 
-  @computed
   ObservableList<Contact> get contacts => addressBookStore.contacts;
 
+  StreamSubscription<BoxEvent> _subscription;
+
+  void dispose() {
+    _subscription.cancel();
+  }
+
   Future<void> delete(Contact contact) async => contactService.delete(contact);
-}
\ No newline at end of file
+}
diff --git a/lib/view_model/contact_list/contact_view_model.dart b/lib/view_model/contact_list/contact_view_model.dart
index addb56606..780f5ca66 100644
--- a/lib/view_model/contact_list/contact_view_model.dart
+++ b/lib/view_model/contact_list/contact_view_model.dart
@@ -1,3 +1,4 @@
+import 'package:hive/hive.dart';
 import 'package:mobx/mobx.dart';
 import 'package:cake_wallet/core/wallet_base.dart';
 import 'package:cake_wallet/core/contact_service.dart';
@@ -10,7 +11,7 @@ part 'contact_view_model.g.dart';
 class ContactViewModel = ContactViewModelBase with _$ContactViewModel;
 
 abstract class ContactViewModelBase with Store {
-  ContactViewModelBase(this._contactService, this._wallet, {Contact contact})
+  ContactViewModelBase(this._contacts, this._wallet, {Contact contact})
       : state = InitialContactViewModelState(),
         currencies = CryptoCurrency.all,
         _contact = contact {
@@ -33,12 +34,14 @@ abstract class ContactViewModelBase with Store {
 
   @computed
   bool get isReady =>
-      (name?.isNotEmpty ?? false) && (currency?.toString()?.isNotEmpty ?? false)
-      && (address?.isNotEmpty ?? false);
+      (name?.isNotEmpty ?? false) &&
+      (currency?.toString()?.isNotEmpty ?? false) &&
+      (address?.isNotEmpty ?? false);
 
   final List<CryptoCurrency> currencies;
-  final ContactService _contactService;
+  // final ContactService _contactService;
   final WalletBase _wallet;
+  final Box<Contact> _contacts;
   final Contact _contact;
 
   @action
@@ -57,10 +60,13 @@ abstract class ContactViewModelBase with Store {
         _contact.name = name;
         _contact.address = address;
         _contact.updateCryptoCurrency(currency: currency);
-        await _contactService.update(_contact);
+        await _contacts.put(_contact.key, _contact);
+        // await _contactService.update(_contact);
       } else {
-        await _contactService
+        await _contacts
             .add(Contact(name: name, address: address, type: currency));
+        // await _contactService
+        //     .add(Contact(name: name, address: address, type: currency));
       }
 
       state = ContactSavingSuccessfully();
diff --git a/lib/view_model/node_list/node_list_view_model.dart b/lib/view_model/node_list/node_list_view_model.dart
index 73f2b934e..4a68d23aa 100644
--- a/lib/view_model/node_list/node_list_view_model.dart
+++ b/lib/view_model/node_list/node_list_view_model.dart
@@ -1,3 +1,4 @@
+import 'package:cake_wallet/utils/item_cell.dart';
 import 'package:flutter/foundation.dart';
 import 'package:hive/hive.dart';
 import 'package:mobx/mobx.dart';
@@ -14,13 +15,6 @@ part 'node_list_view_model.g.dart';
 
 class NodeListViewModel = NodeListViewModelBase with _$NodeListViewModel;
 
-class ItemCell<Item> {
-  ItemCell(this.value, {@required this.isSelected});
-
-  final Item value;
-  final bool isSelected;
-}
-
 abstract class NodeListViewModelBase with Store {
   NodeListViewModelBase(
       this._nodeListStore, this._nodeSource, this._wallet, this._settingsStore)
@@ -29,16 +23,16 @@ abstract class NodeListViewModelBase with Store {
     final values = _nodeListStore.nodes;
     nodes.clear();
     nodes.addAll(values.where((Node node) => node.type == _wallet.type).map(
-        (Node val) =>
-            ItemCell<Node>(val, isSelected: val.key == currentNode.key)));
+        (Node val) => ItemCell<Node>(val,
+            isSelected: val.key == currentNode.key, key: val.key)));
     connectDifferent(
         _nodeListStore.nodes,
         nodes,
-        (Node val) =>
-            ItemCell<Node>(val, isSelected: val.key == currentNode.key),
-        filter: (Node val) {
-          return val.type == _wallet.type;
-        });
+        (Node val) => ItemCell<Node>(val,
+            isSelected: val.key == currentNode.key, key: val.key),
+        filter: (Node val) => val.type == _wallet.type);
+    reaction((_) => _settingsStore.nodes[_wallet.type],
+        (Node _) => _updateCurrentNode());
   }
 
   ObservableList<ItemCell<Node>> nodes;
@@ -66,17 +60,18 @@ abstract class NodeListViewModelBase with Store {
         break;
     }
 
-    await _wallet.connectToNode(node: node);
+    await setAsCurrent(node);
   }
 
   Future<void> delete(Node node) async => _nodeSource.delete(node.key);
 
   Future<void> setAsCurrent(Node node) async {
-    await _wallet.connectToNode(node: node);
     await _settingsStore.setCurrentNode(node, _wallet.type);
     _updateCurrentNode();
+    await _wallet.connectToNode(node: node);
   }
 
+  @action
   void _updateCurrentNode() {
     final currentNode = _settingsStore.getCurrentNode(_wallet.type);
 
@@ -85,7 +80,8 @@ abstract class NodeListViewModelBase with Store {
       final isSelected = item.value.key == currentNode.key;
 
       if (item.isSelected != isSelected) {
-        nodes[i] = ItemCell<Node>(item.value, isSelected: isSelected);
+        nodes[i] = ItemCell<Node>(item.value,
+            isSelected: isSelected, key: item.keyIndex);
       }
     }
   }
diff --git a/lib/view_model/settings/picker_list_item.dart b/lib/view_model/settings/picker_list_item.dart
index 1dfc9c06d..13d502d7e 100644
--- a/lib/view_model/settings/picker_list_item.dart
+++ b/lib/view_model/settings/picker_list_item.dart
@@ -6,13 +6,15 @@ class PickerListItem<ItemType> extends SettingsListItem {
       {@required String title,
       @required this.selectedItem,
       @required this.items,
-      void Function(ItemType item) onItemSelected})
+      void Function(ItemType item) onItemSelected,
+      this.isAlwaysShowScrollThumb = false})
       : _onItemSelected = onItemSelected,
         super(title);
 
   final ItemType Function() selectedItem;
   final List<ItemType> items;
   final void Function(ItemType item) _onItemSelected;
+  final bool isAlwaysShowScrollThumb;
 
   void onItemSelected(dynamic item) {
     if (item is ItemType) {
diff --git a/lib/view_model/settings/settings_view_model.dart b/lib/view_model/settings/settings_view_model.dart
index 308026c9f..ab6e68a09 100644
--- a/lib/view_model/settings/settings_view_model.dart
+++ b/lib/view_model/settings/settings_view_model.dart
@@ -1,8 +1,10 @@
 import 'package:cake_wallet/core/wallet_base.dart';
+import 'package:cake_wallet/src/domain/common/biometric_auth.dart';
 import 'package:cake_wallet/src/domain/common/wallet_type.dart';
 import 'package:cake_wallet/di.dart';
 import 'package:cake_wallet/store/theme_changer_store.dart';
 import 'package:cake_wallet/themes.dart';
+import 'package:cake_wallet/view_model/settings/version_list_item.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:mobx/mobx.dart';
 import 'package:cake_wallet/routes.dart';
@@ -19,6 +21,7 @@ import 'package:cake_wallet/view_model/settings/picker_list_item.dart';
 import 'package:cake_wallet/view_model/settings/regular_list_item.dart';
 import 'package:cake_wallet/view_model/settings/settings_list_item.dart';
 import 'package:cake_wallet/view_model/settings/switcher_list_item.dart';
+import 'package:package_info/package_info.dart';
 
 part 'settings_view_model.g.dart';
 
@@ -27,7 +30,11 @@ class SettingsViewModel = SettingsViewModelBase with _$SettingsViewModel;
 abstract class SettingsViewModelBase with Store {
   SettingsViewModelBase(this._settingsStore, WalletBase wallet)
       : itemHeaders = {},
-        _walletType = wallet.type {
+        _walletType = wallet.type,
+        _biometricAuth = BiometricAuth() {
+    currentVersion = '';
+    PackageInfo.fromPlatform().then(
+        (PackageInfo packageInfo) => currentVersion = packageInfo.version);
     sections = [
       [
         PickerListItem(
@@ -37,17 +44,22 @@ abstract class SettingsViewModelBase with Store {
         PickerListItem(
             title: S.current.settings_currency,
             items: FiatCurrency.all,
-            selectedItem: () => fiatCurrency),
+            isAlwaysShowScrollThumb: true,
+            selectedItem: () => fiatCurrency,
+            onItemSelected: (FiatCurrency currency) =>
+                setFiatCurrency(currency)),
         PickerListItem(
             title: S.current.settings_fee_priority,
             items: _transactionPriorities(wallet.type),
             selectedItem: () => transactionPriority,
+            isAlwaysShowScrollThumb: true,
             onItemSelected: (TransactionPriority priority) =>
                 _settingsStore.transactionPriority = priority),
         SwitcherListItem(
             title: S.current.settings_save_recipient_address,
             value: () => shouldSaveRecipientAddress,
-            onValueChange: (bool value) => setShouldSaveRecipientAddress(value))
+            onValueChange: (_, bool value) =>
+                setShouldSaveRecipientAddress(value))
       ],
       [
         RegularListItem(
@@ -72,12 +84,32 @@ abstract class SettingsViewModelBase with Store {
         SwitcherListItem(
             title: S.current.settings_allow_biometrical_authentication,
             value: () => allowBiometricalAuthentication,
-            onValueChange: (bool value) =>
-                setAllowBiometricalAuthentication(value)),
+            onValueChange: (BuildContext context, bool value) {
+              if (value) {
+                Navigator.of(context).pushNamed(Routes.auth, arguments:
+                    (bool isAuthenticatedSuccessfully,
+                        AuthPageState auth) async {
+                  if (isAuthenticatedSuccessfully) {
+                    if (await _biometricAuth.canCheckBiometrics() &&
+                        await _biometricAuth.isAuthenticated()) {
+                      setAllowBiometricalAuthentication(
+                          isAuthenticatedSuccessfully);
+                    }
+                  } else {
+                    setAllowBiometricalAuthentication(
+                        isAuthenticatedSuccessfully);
+                  }
+
+                  Navigator.of(context).pop();
+                });
+              } else {
+                setAllowBiometricalAuthentication(value);
+              }
+            }),
         SwitcherListItem(
             title: S.current.settings_dark_mode,
             value: () => _settingsStore.isDarkTheme,
-            onValueChange: (bool value) {
+            onValueChange: (_, bool value) {
               _settingsStore.isDarkTheme = value;
               getIt
                   .get<ThemeChangerStore>()
@@ -119,11 +151,20 @@ abstract class SettingsViewModelBase with Store {
           title: S.current.settings_terms_and_conditions,
           handler: (BuildContext context) =>
               Navigator.of(context).pushNamed(Routes.disclaimer),
+        ),
+        RegularListItem(
+          title: S.current.faq,
+          handler: (BuildContext context) =>
+              Navigator.pushNamed(context, Routes.faq),
         )
-      ]
+      ],
+      [VersionListItem(title: currentVersion)]
     ];
   }
 
+  @observable
+  String currentVersion;
+
   @computed
   Node get node => _settingsStore.getCurrentNode(_walletType);
 
@@ -151,10 +192,18 @@ abstract class SettingsViewModelBase with Store {
       _settingsStore.allowBiometricalAuthentication;
 
   final Map<String, String> itemHeaders;
+  List<List<SettingsListItem>> sections;
   final SettingsStore _settingsStore;
   final WalletType _walletType;
-  List<List<SettingsListItem>> sections;
+  final BiometricAuth _biometricAuth;
 
+  @action
+  void setBalanceDisplayMode(BalanceDisplayMode value) =>
+      _settingsStore.balanceDisplayMode = value;
+
+  @action
+  void setFiatCurrency(FiatCurrency value) =>
+      _settingsStore.fiatCurrency = value;
   @action
   void setShouldSaveRecipientAddress(bool value) =>
       _settingsStore.shouldSaveRecipientAddress = value;
@@ -190,11 +239,6 @@ abstract class SettingsViewModelBase with Store {
   @action
   void _showTrades() => actionlistDisplayMode.add(ActionListDisplayMode.trades);
 
-//
-//  @observable
-//  int defaultPinLength;
-//  bool isDarkTheme;
-
   static List<TransactionPriority> _transactionPriorities(WalletType type) {
     switch (type) {
       case WalletType.monero:
diff --git a/lib/view_model/settings/switcher_list_item.dart b/lib/view_model/settings/switcher_list_item.dart
index cf181302d..f37126a51 100644
--- a/lib/view_model/settings/switcher_list_item.dart
+++ b/lib/view_model/settings/switcher_list_item.dart
@@ -1,13 +1,14 @@
+import 'package:flutter/cupertino.dart';
 import 'package:flutter/foundation.dart';
 import 'package:cake_wallet/view_model/settings/settings_list_item.dart';
 
 class SwitcherListItem extends SettingsListItem {
   SwitcherListItem(
       {@required String title,
-        @required this.value,
-        @required this.onValueChange})
+      @required this.value,
+      @required this.onValueChange})
       : super(title);
 
   final bool Function() value;
-  final void Function(bool value) onValueChange;
-}
\ No newline at end of file
+  final void Function(BuildContext context, bool value) onValueChange;
+}
diff --git a/lib/view_model/settings/version_list_item.dart b/lib/view_model/settings/version_list_item.dart
new file mode 100644
index 000000000..5d64e7023
--- /dev/null
+++ b/lib/view_model/settings/version_list_item.dart
@@ -0,0 +1,6 @@
+import 'package:flutter/foundation.dart';
+import 'package:cake_wallet/view_model/settings/settings_list_item.dart';
+
+class VersionListItem extends SettingsListItem {
+  VersionListItem({@required String title}) : super(title);
+}
\ No newline at end of file
diff --git a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart
index 4f2e3662c..0b02bc08a 100644
--- a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart
+++ b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart
@@ -67,7 +67,8 @@ abstract class WalletAddressListViewModelBase with Store {
   WalletType get type => _wallet.type;
 
   @computed
-  WalletAddressListItem get address => WalletAddressListItem(address: _wallet.address);
+  WalletAddressListItem get address =>
+      WalletAddressListItem(address: _wallet.address);
 
   @computed
   PaymentURI get uri {
@@ -100,15 +101,16 @@ abstract class WalletAddressListViewModelBase with Store {
     }
 
     if (wallet is BitcoinWallet) {
-      final bitcoinAddresses = wallet.addresses.map(
-          (addr) => WalletAddressListItem(name: addr.label, address: addr.address));
+      final bitcoinAddresses = wallet.addresses.map((addr) =>
+          WalletAddressListItem(name: addr.label, address: addr.address));
       addressList.addAll(bitcoinAddresses);
     }
 
     return addressList;
   }
 
-  set address(WalletAddressListItem address) => _wallet.address = address.address;
+  set address(WalletAddressListItem address) =>
+      _wallet.address = address.address;
 
   bool hasAccounts;
 
diff --git a/lib/view_model/wallet_creation_vm.dart b/lib/view_model/wallet_creation_vm.dart
index a105f388e..d1d79dd05 100644
--- a/lib/view_model/wallet_creation_vm.dart
+++ b/lib/view_model/wallet_creation_vm.dart
@@ -27,7 +27,7 @@ abstract class WalletCreationVMBase with Store {
 
   final bool isRecovery;
 
-  Box<WalletInfo> _walletInfoSource;
+  final Box<WalletInfo> _walletInfoSource;
 
   Future<void> create({dynamic options}) async {
     try {
diff --git a/lib/view_model/wallet_restoration_from_keys_vm.dart b/lib/view_model/wallet_restoration_from_keys_vm.dart
new file mode 100644
index 000000000..e0e0114c6
--- /dev/null
+++ b/lib/view_model/wallet_restoration_from_keys_vm.dart
@@ -0,0 +1,64 @@
+import 'package:flutter/foundation.dart';
+import 'package:hive/hive.dart';
+import 'package:mobx/mobx.dart';
+import 'package:cake_wallet/monero/monero_wallet_service.dart';
+import 'package:cake_wallet/bitcoin/bitcoin_wallet_creation_credentials.dart';
+import 'package:cake_wallet/core/generate_wallet_password.dart';
+import 'package:cake_wallet/core/wallet_creation_service.dart';
+import 'package:cake_wallet/core/wallet_credentials.dart';
+import 'package:cake_wallet/src/domain/common/wallet_type.dart';
+import 'package:cake_wallet/view_model/wallet_creation_vm.dart';
+import 'package:cake_wallet/src/domain/common/wallet_info.dart';
+
+part 'wallet_restoration_from_keys_vm.g.dart';
+
+class WalletRestorationFromKeysVM = WalletRestorationFromKeysVMBase
+    with _$WalletRestorationFromKeysVM;
+
+abstract class WalletRestorationFromKeysVMBase extends WalletCreationVM
+    with Store {
+  WalletRestorationFromKeysVMBase(this._walletCreationService, Box<WalletInfo> walletInfoSource,
+      {@required WalletType type, @required this.language})
+      : super(walletInfoSource, type: type, isRecovery: true);
+
+  @observable
+  int height;
+
+  @observable
+  String viewKey;
+
+  @observable
+  String spendKey;
+
+  @observable
+  String wif;
+
+  @observable
+  String address;
+
+  bool get hasRestorationHeight => type == WalletType.monero;
+
+  final String language;
+  final WalletCreationService _walletCreationService;
+
+  @override
+  WalletCredentials getCredentials(dynamic options) {
+    final password = generateWalletPassword(type);
+
+    switch (type) {
+      case WalletType.monero:
+        return MoneroRestoreWalletFromKeysCredentials(
+          name: name, password: password, language: language, address: address,
+            viewKey: viewKey, spendKey: spendKey, height: height);
+      case WalletType.bitcoin:
+        return BitcoinRestoreWalletFromWIFCredentials(
+          name: name, password: password, wif: wif);
+      default:
+        return null;
+    }
+  }
+
+  @override
+  Future<void> process(WalletCredentials credentials) async =>
+      _walletCreationService.restoreFromKeys(credentials);
+}
diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb
index 68095ca01..219e17320 100644
--- a/res/values/strings_de.arb
+++ b/res/values/strings_de.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "Beschreibung zur Wiederherstellung der Brieftasche",
   "restore_new_seed" : "Neuer Seed",
   "restore_active_seed" : "Aktives Seed",
+  "restore_bitcoin_description_from_seed" : "Stellen Sie Ihre Brieftasche aus dem 12-Wort-Kombinationscode wieder her",
+  "restore_bitcoin_description_from_keys" : "Stellen Sie Ihre Brieftasche aus der generierten WIF-Zeichenfolge aus Ihren privaten Schlüsseln wieder her",
+  "restore_bitcoin_title_from_keys" : "Aus WIF wiederherstellen",
 
 
   "seed_title" : "Seed",
diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb
index 277ce28ba..c001cbb8a 100644
--- a/res/values/strings_en.arb
+++ b/res/values/strings_en.arb
@@ -1,7 +1,7 @@
 {
   "welcome" : "Welcome to",
   "cake_wallet" : "Cake Wallet",
-  "first_wallet_text" : "Awesome wallet for Monero",
+  "first_wallet_text" : "Awesome wallet for Monero and Bitcoin",
   "please_make_selection" : "Please make selection below to create or recover your wallet.",
   "create_new" : "Create New Wallet",
   "restore_wallet" : "Restore Wallet",
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "Wallet restore description",
   "restore_new_seed" : "New seed",
   "restore_active_seed" : "Active seed",
+  "restore_bitcoin_description_from_seed" : "Restore your wallet from 12 word combination code",
+  "restore_bitcoin_description_from_keys" : "Restore your wallet from generated WIF string from your private keys",
+  "restore_bitcoin_title_from_keys" : "Restore from WIF",
 
 
   "seed_title" : "Seed",
diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb
index f6cc257f6..f01e9002b 100644
--- a/res/values/strings_es.arb
+++ b/res/values/strings_es.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "Restaurar billetera",
   "restore_new_seed" : "Nueva semilla",
   "restore_active_seed" : "Semilla activa",
+  "restore_bitcoin_description_from_seed" : "Restaure su billetera a partir del código de combinación de 12 palabras",
+  "restore_bitcoin_description_from_keys" : "Restaure su billetera a partir de una cadena WIF generada a partir de sus claves privadas",
+  "restore_bitcoin_title_from_keys" : "Restaurar desde WIF",
 
 
   "seed_title" : "Semilla",
diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb
index 9e0e1a032..7b0d95adf 100644
--- a/res/values/strings_hi.arb
+++ b/res/values/strings_hi.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "बटुआ विवरण पुनर्स्थापित करें",
   "restore_new_seed" : "नया बीज",
   "restore_active_seed" : "सक्रिय बीज",
+  "restore_bitcoin_description_from_seed" : "12 शब्द संयोजन कोड से अपने वॉलेट को पुनर्स्थापित करें",
+  "restore_bitcoin_description_from_keys" : "अपने निजी कुंजी से उत्पन्न WIF स्ट्रिंग से अपने वॉलेट को पुनर्स्थापित करें",
+  "restore_bitcoin_title_from_keys" : "WIF से पुनर्स्थापित करें",
 
 
   "seed_title" : "बीज",
diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb
index a1822f806..000475bd8 100644
--- a/res/values/strings_ja.arb
+++ b/res/values/strings_ja.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "ウォレットの復元",
   "restore_new_seed" : "新しい種",
   "restore_active_seed" : "アクティブシード",
+  "restore_bitcoin_description_from_seed" : "12ワードの組み合わせコードからウォレットを復元する",
+  "restore_bitcoin_description_from_keys" : "秘密鍵から生成されたWIF文字列からウォレットを復元します",
+  "restore_bitcoin_title_from_keys" : "WIFから復元",
 
 
   "seed_title" : "シード",
diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb
index 31d7f6cfd..c33dded12 100644
--- a/res/values/strings_ko.arb
+++ b/res/values/strings_ko.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "월렛 복원 설명",
   "restore_new_seed" : "새로운 씨앗",
   "restore_active_seed" : "활성 종자",
+  "restore_bitcoin_description_from_seed" : "12 단어 조합 코드에서 지갑 복원",
+  "restore_bitcoin_description_from_keys" : "개인 키에서 생성 된 WIF 문자열에서 지갑 복원",
+  "restore_bitcoin_title_from_keys" : "WIF에서 복원",
 
 
   "seed_title" : "씨",
diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb
index 542be0271..2fc68aef3 100644
--- a/res/values/strings_nl.arb
+++ b/res/values/strings_nl.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "Portemonnee-herstelbeschrijving",
   "restore_new_seed" : "Nieuw zaad",
   "restore_active_seed" : "Actief zaad",
+  "restore_bitcoin_description_from_seed" : "Herstel uw portemonnee met een combinatiecode van 12 woorden",
+  "restore_bitcoin_description_from_keys" : "Herstel uw portemonnee van de gegenereerde WIF-string van uw privésleutels",
+  "restore_bitcoin_title_from_keys" : "Herstel van WIF",
 
 
   "seed_title" : "Zaad",
diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb
index da2bd6f2e..5970fadb8 100644
--- a/res/values/strings_pl.arb
+++ b/res/values/strings_pl.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "Opis przywracania portfela",
   "restore_new_seed" : "Nowe nasienie",
   "restore_active_seed" : "Aktywne nasiona",
+  "restore_bitcoin_description_from_seed" : "Przywróć swój portfel z kodu złożonego z 12 słów",
+  "restore_bitcoin_description_from_keys" : "Przywróć swój portfel z wygenerowanego ciągu WIF z kluczy prywatnych",
+  "restore_bitcoin_title_from_keys" : "Przywróć z WIF",
 
 
   "seed_title" : "Ziarno",
diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb
index 7f4df2a4a..f085280bf 100644
--- a/res/values/strings_pt.arb
+++ b/res/values/strings_pt.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "Restauração da carteira",
   "restore_new_seed" : "Nova semente",
   "restore_active_seed" : "Semente ativa",
+  "restore_bitcoin_description_from_seed" : "Restaure sua carteira a partir de um código de combinação de 12 palavras",
+  "restore_bitcoin_description_from_keys" : "Restaure sua carteira a partir da string WIF gerada de suas chaves privadas",
+  "restore_bitcoin_title_from_keys" : "Restaurar de WIF",
 
 
   "seed_title" : "Semente",
diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb
index b5f82e379..68c1453b3 100644
--- a/res/values/strings_ru.arb
+++ b/res/values/strings_ru.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "Описание восстановления кошелька",
   "restore_new_seed" : "Новая мнемоническая фраза",
   "restore_active_seed" : "Активная мнемоническая фраза",
+  "restore_bitcoin_description_from_seed" : "Вы можете восстановить кошелёк используя 12-ти значную мнемоническую фразу",
+  "restore_bitcoin_description_from_keys" : "Вы можете восстановить кошелёк с помощью WIF",
+  "restore_bitcoin_title_from_keys" : "Восстановить с помощью WIF",
 
 
   "seed_title" : "Мнемоническая фраза",
diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb
index bcfc96688..2cf2119b2 100644
--- a/res/values/strings_uk.arb
+++ b/res/values/strings_uk.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "Опис відновлюваного гаманця",
   "restore_new_seed" : "Нова мнемонічна фраза",
   "restore_active_seed" : "Активна мнемонічна фраза",
+  "restore_bitcoin_description_from_seed" : "Ви можете відновити гаманець використовуючи 12-ти слівну мнемонічну фразу",
+  "restore_bitcoin_description_from_keys" : "Ви можете відновити гаманець за допомогою WIF",
+  "restore_bitcoin_title_from_keys" : "Відновити за допомогою WIF",
 
 
   "seed_title" : "Мнемонічна фраза",
diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb
index 0f5794a10..8fcce5de1 100644
--- a/res/values/strings_zh.arb
+++ b/res/values/strings_zh.arb
@@ -165,6 +165,9 @@
   "restore_wallet_restore_description" : "钱包还原说明",
   "restore_new_seed" : "新種子",
   "restore_active_seed" : "活性種子",
+  "restore_bitcoin_description_from_seed" : "從12個單詞的組合碼恢復您的錢包",
+  "restore_bitcoin_description_from_keys" : "從私鑰中生成的WIF字符串還原您的錢包",
+  "restore_bitcoin_title_from_keys" : "從WIF還原",
 
 
   "seed_title" : "种子",