diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart
index 3955cf4e3066eb829ee5e52fccd0cc6baec28964..f07df4626d9e47e6e1767265b3c71451be0b9f92 100644
--- a/lib/providers/substrate_sdk.dart
+++ b/lib/providers/substrate_sdk.dart
@@ -662,13 +662,9 @@ class SubstrateSdk with ChangeNotifier {
       required double amount,
       required String password}) async {
     transactionStatus = '';
-    final fromPubkey = await sdk.api.account.decodeAddress([fromAddress]);
     final int amountUnit = (amount * 100).toInt();
 
-    final sender = TxSenderData(
-      fromAddress,
-      fromPubkey!.keys.first,
-    );
+    final sender = await _setSender(fromAddress);
 
     final globalBalance = await getBalance(fromAddress);
     TxInfoData txInfo;
@@ -761,29 +757,9 @@ class SubstrateSdk with ChangeNotifier {
     return await _executeCall(txInfo, txOptions, password, rawParams);
   }
 
-  // Future claimUDs(String password) async {
-  //   final sender = TxSenderData(
-  //     keyring.current.address,
-  //     keyring.current.pubKey,
-  //   );
-
-  //   final txInfo = TxInfoData(
-  //     'universalDividend',
-  //     'claimUds',
-  //     sender,
-  //   );
-
-  //   return await executeCall(txInfo, [], password);
-  // }
-
   Future<String> confirmIdentity(
       String fromAddress, String name, String password) async {
-    final fromPubkey = await sdk.api.account.decodeAddress([fromAddress]);
-
-    final sender = TxSenderData(
-      fromAddress,
-      fromPubkey!.keys.first,
-    );
+    final sender = await _setSender(fromAddress);
 
     final txInfo = TxInfoData(
       'identity',
@@ -803,11 +779,7 @@ class SubstrateSdk with ChangeNotifier {
       required Map fromBalance,
       bool withBalance = false}) async {
     transactionStatus = '';
-    final fromPubkey = await sdk.api.account.decodeAddress([fromAddress]);
-    final sender = TxSenderData(
-      fromAddress,
-      fromPubkey!.keys.first,
-    );
+    final sender = await _setSender(fromAddress);
 
     TxInfoData txInfo;
     List txOptions = [];
@@ -871,16 +843,13 @@ newKeySig: $newKeySig""");
   Future revokeIdentity(String address, String password) async {
     final idtyIndex = await _getIdentityIndexOf(address);
 
-    final sender = TxSenderData(
-      keyring.current.address,
-      keyring.current.pubKey,
-    );
+    final sender = await _setSender(address);
 
     TxInfoData txInfo;
 
     txInfo = TxInfoData(
-      'membership',
-      'revokeMembership',
+      'identity',
+      'revokeIdentity',
       sender,
     );
 
diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart
index 99feb0b74aadec684c3ae618c709d431c5b4e2f0..a9a9b90542fea52216a8d85a7e4f4d7ec87dfc24 100644
--- a/lib/screens/myWallets/manage_membership.dart
+++ b/lib/screens/myWallets/manage_membership.dart
@@ -1,9 +1,18 @@
+// ignore_for_file: use_build_context_synchronously
+
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:flutter/material.dart';
+import 'package:gecko/models/wallet_data.dart';
 import 'package:gecko/models/widgets_keys.dart';
+import 'package:gecko/providers/my_wallets.dart';
+import 'package:gecko/providers/substrate_sdk.dart';
+import 'package:gecko/screens/common_elements.dart';
 import 'package:gecko/screens/myWallets/migrate_identity.dart';
+import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
+import 'package:gecko/screens/transaction_in_progress.dart';
+import 'package:provider/provider.dart';
 // import 'package:gecko/models/wallet_data.dart';
 // import 'package:gecko/providers/my_wallets.dart';
 // import 'package:gecko/providers/substrate_sdk.dart';
@@ -68,43 +77,43 @@ class ManageMembership extends StatelessWidget {
       key: keyRevokeIdty,
       onTap: () async {
         // TODOO: Generate revoke document, and understand extrinsic identity.revokeIdentity options
-        // final _answer = await confirmPopup(context,
-        //         'Êtes-vous certains de vouloir révoquer définitivement cette identité ?') ??
-        //     false;
+        final answer = await confirmPopup(context,
+                'Êtes-vous certains de vouloir révoquer définitivement cette identité ?') ??
+            false;
 
-        // if (_answer) {
-        //   MyWalletsProvider _myWalletProvider =
-        //       Provider.of<MyWalletsProvider>(context, listen: false);
-        //   SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
+        if (answer) {
+          MyWalletsProvider myWalletProvider =
+              Provider.of<MyWalletsProvider>(context, listen: false);
+          SubstrateSdk sub = Provider.of<SubstrateSdk>(context, listen: false);
 
-        //   MyWalletsProvider _mw = MyWalletsProvider();
-        //   final _wallet = _mw.getWalletDataByAddress(address);
-        //   await _sub.setCurrentWallet(_wallet!);
+          MyWalletsProvider mw = MyWalletsProvider();
+          final wallet = mw.getWalletDataByAddress(address);
+          await sub.setCurrentWallet(wallet!);
 
-        //   WalletData? defaultWallet = _myWalletProvider.getDefaultWallet();
-        //   String? _pin;
-        //   if (_myWalletProvider.pinCode == '') {
-        //     _pin = await Navigator.push(
-        //       context,
-        //       MaterialPageRoute(
-        //         builder: (homeContext) {
-        //           return UnlockingWallet(wallet: defaultWallet);
-        //         },
-        //       ),
-        //     );
-        //   }
-        //   if (_pin != null || _myWalletProvider.pinCode != '') {
-        //     _sub.revokeIdentity(address, _myWalletProvider.pinCode);
-        //   }
-        //   Navigator.pop(context);
+          WalletData? defaultWallet = myWalletProvider.getDefaultWallet();
+          String? pin;
+          if (myWalletProvider.pinCode == '') {
+            pin = await Navigator.push(
+              context,
+              MaterialPageRoute(
+                builder: (homeContext) {
+                  return UnlockingWallet(wallet: defaultWallet);
+                },
+              ),
+            );
+          }
+          if (pin != null || myWalletProvider.pinCode != '') {
+            sub.revokeIdentity(address, myWalletProvider.pinCode);
+          }
+          Navigator.pop(context);
 
-        //   Navigator.push(
-        //     context,
-        //     MaterialPageRoute(builder: (context) {
-        //       return const TransactionInProgress(transType: 'revokeIdty');
-        //     }),
-        //   );
-        // }
+          Navigator.push(
+            context,
+            MaterialPageRoute(builder: (context) {
+              return const TransactionInProgress(transType: 'revokeIdty');
+            }),
+          );
+        }
       },
       child: SizedBox(
         height: 60,