diff --git a/integration_test/identity_revocation.dart b/integration_test/identity_revocation.dart
new file mode 100644
index 0000000000000000000000000000000000000000..a9fd912b3ba87f6eb2ddd95098ac3e1789a63001
--- /dev/null
+++ b/integration_test/identity_revocation.dart
@@ -0,0 +1,32 @@
+import 'package:flutter_dotenv/flutter_dotenv.dart';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
+import 'package:integration_test/integration_test.dart';
+import 'general_actions.dart';
+import 'tests_utility.dart';
+
+void main() async {
+  IntegrationTestWidgetsFlutterBinding.ensureInitialized();
+  await dotenv.load();
+
+  testWidgets('Certifications state', (testerLoc) async {
+    tester = testerLoc;
+    // Connect local node and import test chest in background
+    await bkFastStart();
+
+    // Open chest
+    await firstOpenChest();
+
+    // Revoke test3
+    await spawnBlock(number: 5);
+    await tapKey(keyOpenWallet(test3.address));
+    await tapKey(keyManageMembership);
+    await tapKey(keyRevokeIdty);
+    await tapKey(keyConfirm);
+    spawnBlock(duration: 2000);
+    await waitFor('validé !', timeout: const Duration(seconds: 1));
+    await tapKey(keyCloseTransactionScreen, duration: 0);
+    await waitFor('Membre validé !', reverse: true);
+  }, timeout: testTimeout());
+}
diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart
index beb464d2f1090cf9cc4c26dada1ac0a269010d49..643939a5bfda35651fbeecaf44f953c00549c0e9 100644
--- a/lib/providers/substrate_sdk.dart
+++ b/lib/providers/substrate_sdk.dart
@@ -844,13 +844,13 @@ newKeySig: $newKeySig""");
     final idtyIndex = await _getIdentityIndexOf(address);
     final sender = await _setSender(address);
 
-    final prefix = '?'.codeUnits;
+    final prefix = 'revo'.codeUnits;
     final genesisHashString = await getGenesisHash();
     final genesisHash = HEX.decode(genesisHashString.substring(2)) as Uint8List;
     final idtyIndexBytes = _int32bytes(idtyIndex);
-    final oldPubkey = await addressToPubkey(address);
+    // final pubkey = await addressToPubkey(address);
     final messageToSign =
-        Uint8List.fromList(prefix + genesisHash + idtyIndexBytes + oldPubkey);
+        Uint8List.fromList(prefix + idtyIndexBytes + genesisHash);
     final revocationSig = await _signMessage(messageToSign, address, password);
 
     final txInfo = TxInfoData(
diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart
index a9a9b90542fea52216a8d85a7e4f4d7ec87dfc24..4718fae82c56afc5ef56f08f1de932c124ed8bc5 100644
--- a/lib/screens/myWallets/manage_membership.dart
+++ b/lib/screens/myWallets/manage_membership.dart
@@ -86,9 +86,9 @@ class ManageMembership extends StatelessWidget {
               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;
@@ -110,7 +110,10 @@ class ManageMembership extends StatelessWidget {
           Navigator.push(
             context,
             MaterialPageRoute(builder: (context) {
-              return const TransactionInProgress(transType: 'revokeIdty');
+              return TransactionInProgress(
+                  transType: 'revokeIdty',
+                  fromAddress: getShortPubkey(address),
+                  toAddress: getShortPubkey(address));
             }),
           );
         }