diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart
index 4d476dd6ace40d53f37ec2953a6b9c1fd942ecae..09c90c427c54bd02b7b8208a2664ce0390a62ae9 100644
--- a/lib/providers/substrate_sdk.dart
+++ b/lib/providers/substrate_sdk.dart
@@ -1,3 +1,4 @@
+import 'dart:typed_data';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/material.dart';
 import 'package:gecko/globals.dart';
@@ -13,7 +14,8 @@ import 'package:polkawallet_sdk/storage/keyring.dart';
 import 'package:polkawallet_sdk/storage/types/keyPairData.dart';
 import 'package:provider/provider.dart';
 import 'package:truncate/truncate.dart';
-// import 'package:web_socket_channel/io.dart';
+import 'package:pointycastle/pointycastle.dart' as pc;
+import "package:hex/hex.dart";
 
 class SubstrateSdk with ChangeNotifier {
   final WalletSDK sdk = WalletSDK();
@@ -368,6 +370,52 @@ class SubstrateSdk with ChangeNotifier {
     return nodeParams;
   }
 
+  Future csToV2(String salt, String password) async {
+    final scrypt = pc.KeyDerivator('scrypt');
+
+    scrypt.init(
+      pc.ScryptParameters(
+        4096,
+        16,
+        1,
+        32,
+        Uint8List.fromList(salt.codeUnits),
+      ),
+    );
+    final rawSeed = scrypt.process(Uint8List.fromList(password.codeUnits));
+    final rawSeedHex = '0x${HEX.encode(rawSeed)}';
+
+    // final newAddress1 = await sdk.api.keyring.addressFromRawSeed(ss58,
+    //     cryptoType: CryptoType.ed25519, rawSeed: '0x$rawSeedString');
+
+    // log.d('csconvert address: ${newAddress1.address}');
+
+    final json = await sdk.api.keyring
+        .importAccount(keyring,
+            keyType: KeyType.rawSeed,
+            key: rawSeedHex,
+            name: 'test',
+            password: 'password',
+            derivePath: '',
+            cryptoType: CryptoType.ed25519)
+        .catchError((e) {
+      importIsLoading = false;
+      notifyListeners();
+    });
+
+    final keypair = await sdk.api.keyring.addAccount(
+      keyring,
+      keyType: KeyType.rawSeed,
+      acc: json!,
+      password: password,
+    );
+    await sdk.api.keyring.deleteAccount(keyring, keypair);
+
+    // final keypair2 = KeyPairData.fromJson(json as Map<String, dynamic>);
+
+    log.d(keypair.address);
+  }
+
   Future<String> importAccount(
       {String mnemonic = '',
       String derivePath = '',
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 4157045643eea083a0564e2ec0d186dc2e74388f..7fe309e88b2ef62e7b8fb58a795e77e3b0f0e8a8 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -39,6 +39,8 @@ class HomeScreen extends StatelessWidget {
 
     final bool isWalletsExists = myWalletProvider.checkIfWalletExist();
 
+    // sub.csToV2('test', 'test');
+
     isTall = false;
     ratio = 1;
     if (MediaQuery.of(context).size.height >= 930) {
diff --git a/pubspec.lock b/pubspec.lock
index 017b92e68bd65f667200bf0af1563e66aced1856..949cbc30b3f3346a548c990f1e11ac59157339a2 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -557,7 +557,7 @@ packages:
     source: hosted
     version: "2.1.0"
   hex:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: hex
       url: "https://pub.dartlang.org"
@@ -1052,7 +1052,7 @@ packages:
     source: hosted
     version: "2.1.2"
   pointycastle:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: pointycastle
       url: "https://pub.dartlang.org"
diff --git a/pubspec.yaml b/pubspec.yaml
index 7ae857b4c1f0b913c551ed9e19de31cfce554124..bee3f4a9bed9086c3416ffe8818644fd34923c0f 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -71,6 +71,8 @@ dependencies:
   easy_localization: ^3.0.1
   flutter_markdown: ^0.6.10+2
   dropdown_button2: ^1.6.3
+  pointycastle: ^3.6.1
+  hex: ^0.2.0
 
 dev_dependencies:
   # flutter_launcher_icons: ^0.9.2