diff --git a/Cargo.lock b/Cargo.lock
index 3ea07aaa24adc00f79428dc1d768a7fe266df596..6c9ecc52cf6a7bfda823a5a72d2fb83796931baf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4630,6 +4630,7 @@ dependencies = [
  "common-runtime",
  "frame-benchmarking",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "frame-system-benchmarking",
@@ -4704,6 +4705,7 @@ dependencies = [
  "common-runtime",
  "frame-benchmarking",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "frame-system-benchmarking",
@@ -5088,6 +5090,7 @@ dependencies = [
  "common-runtime",
  "frame-benchmarking",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "frame-system-benchmarking",
diff --git a/node/src/service/client.rs b/node/src/service/client.rs
index 8118c457bb0e3d7695db602f7c1791da8e1b95d4..b4a1d696ce9ec5b444e4e4c1d843f497999cb2a8 100644
--- a/node/src/service/client.rs
+++ b/node/src/service/client.rs
@@ -337,7 +337,6 @@ impl BenchmarkCallSigner<super::runtime_executor::runtime::RuntimeCall, sp_core:
             pallet_transaction_payment::ChargeTransactionPayment::<
                 super::runtime_executor::runtime::Runtime,
             >::from(0),
-            frame_system::WeightReclaim::<super::runtime_executor::runtime::Runtime>,
             frame_metadata_hash_extension::CheckMetadataHash::<
                 super::runtime_executor::runtime::Runtime,
             >::new(false),
@@ -355,7 +354,6 @@ impl BenchmarkCallSigner<super::runtime_executor::runtime::RuntimeCall, sp_core:
                 (),
                 (),
                 (),
-                (),
                 None,
             ),
         );
diff --git a/pallets/identity/src/benchmarking.rs b/pallets/identity/src/benchmarking.rs
index 60662c48e262fba2598f1d9638fa3292b3127046..2fa17b2741d534e0c694593d31e61852a88d2b7c 100644
--- a/pallets/identity/src/benchmarking.rs
+++ b/pallets/identity/src/benchmarking.rs
@@ -22,7 +22,7 @@ use codec::Encode;
 use frame_benchmarking::{account, v2::*};
 use frame_support::traits::OnInitialize;
 use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin};
-use sp_core::Get;
+use sp_core::{crypto::Ss58Codec, Get};
 use sp_io::crypto::{sr25519_generate, sr25519_sign};
 use sp_runtime::{AccountId32, MultiSigner};
 
@@ -509,6 +509,56 @@ mod benchmarks {
         Ok(())
     }
 
+    #[benchmark]
+    fn revoke_identity_legacy() -> Result<(), BenchmarkError> {
+        let caller_index = T::IdtyIndex::from(1u32);
+        let caller: T::AccountId = Identities::<T>::get(caller_index).unwrap().owner_key;
+
+        let idty_index: T::IdtyIndex = 102.into();
+        let owner_key: T::AccountId =
+            AccountId32::from_ss58check("5H2nLXGku46iztpqdRwsCAiP6vHZbShhKmSV4yyufQgEUFvV")
+                .unwrap()
+                .into();
+        let next_scheduled = BlockNumberFor::<T>::zero();
+        let value = IdtyValue {
+            data: Default::default(),
+            next_creatable_identity_on: BlockNumberFor::<T>::zero(),
+            old_owner_key: None,
+            owner_key: owner_key.clone(),
+            next_scheduled,
+            status: IdtyStatus::Member,
+        };
+        let name = "Charlie";
+        let idty_name = IdtyName(name.into());
+        frame_system::Pallet::<T>::inc_sufficients(&owner_key);
+        <Identities<T>>::insert(idty_index, value);
+        IdentityChangeSchedule::<T>::append(next_scheduled, idty_index);
+        IdentityIndexOf::<T>::insert(owner_key.clone(), idty_index);
+        <IdentitiesNames<T>>::insert(idty_name.clone(), idty_index);
+
+        let document = r"Version: 10
+Type: Revocation
+Currency: g1
+Issuer: Fnf2xaxYdQpB4kU45DMLQ9Ey4bd6DtoebKJajRkLBUXm
+IdtyUniqueID: Charlie
+IdtyTimestamp: 42-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+IdtySignature: 7KUagcMiQw05rwbkBsRrnNqPRHu/Y5ukCLoAEpb/1tXAQsSNf2gRi1h5PWIGs9y/vHnFXvF5epKsOjA6X75vDg==
+CfiG4xhcWS+/DgxY0xFIyOA9TVr4Im3XEXcCApNgXC+Ns9jy2yrNoC3NF8MCD63cZ8QTRfrr4Iv6n3leYCCcDQ==
+";
+
+        #[extrinsic_call]
+        _(RawOrigin::Signed(caller), document.into());
+
+        assert_has_event::<T>(
+            Event::<T>::IdtyRevoked {
+                idty_index,
+                reason: RevocationReason::User,
+            }
+            .into(),
+        );
+        Ok(())
+    }
+
     impl_benchmark_test_suite!(
         Pallet,
         // Create genesis identity Alice to test benchmark in mock
diff --git a/pallets/identity/src/weights.rs b/pallets/identity/src/weights.rs
index 546711850e45299400ed701de22635a957d562e5..7fafe8edb572b6152ec4bf8b8a0a1eec839a7c0d 100644
--- a/pallets/identity/src/weights.rs
+++ b/pallets/identity/src/weights.rs
@@ -23,7 +23,7 @@ pub trait WeightInfo {
     fn confirm_identity() -> Weight;
     fn change_owner_key() -> Weight;
     fn revoke_identity() -> Weight;
-    //TODO fn revoke_identity_legacy() -> Weight;
+    fn revoke_identity_legacy() -> Weight;
     fn prune_item_identities_names(i: u32) -> Weight;
     fn fix_sufficients() -> Weight;
     fn link_account() -> Weight;
@@ -159,6 +159,17 @@ impl WeightInfo for () {
             .saturating_add(RocksDbWeight::get().writes(20))
     }
 
+    fn revoke_identity_legacy() -> Weight {
+        // Proof Size summary in bytes:
+        //  Measured:  `1525`
+        //  Estimated: `7465`
+        // Minimum execution time: 2_204_911_000 picoseconds.
+        Weight::from_parts(2_225_493_000, 0)
+            .saturating_add(Weight::from_parts(0, 7465))
+            .saturating_add(RocksDbWeight::get().reads(17))
+            .saturating_add(RocksDbWeight::get().writes(20))
+    }
+
     fn do_remove_identity_noop() -> Weight {
         // Proof Size summary in bytes:
         //  Measured:  `269`
diff --git a/runtime/g1/Cargo.toml b/runtime/g1/Cargo.toml
index c3c1387f96d92d6660af299841adf53a484bfcfe..ae48e927ca669c81e8433a28f1c725480bfec39f 100644
--- a/runtime/g1/Cargo.toml
+++ b/runtime/g1/Cargo.toml
@@ -191,6 +191,7 @@ frame-system-benchmarking = { workspace = true }
 frame-system = { workspace = true }
 frame-system-rpc-runtime-api = { workspace = true }
 frame-try-runtime = { workspace = true, optional = true }
+frame-metadata-hash-extension = { workspace = true }
 hex-literal = { workspace = true, optional = true }
 log = { workspace = true }
 pallet-atomic-swap = { workspace = true }
diff --git a/runtime/g1/src/lib.rs b/runtime/g1/src/lib.rs
index e24d78ba1eddd98d04d3fa5575bb1f7df9bbd710..bca13f96315240bcd242fd891d12800233bc729c 100644
--- a/runtime/g1/src/lib.rs
+++ b/runtime/g1/src/lib.rs
@@ -124,6 +124,7 @@ pub type TxExtension = (
     pallet_oneshot_account::CheckNonce<Runtime>,
     frame_system::CheckWeight<Runtime>,
     pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
+    frame_metadata_hash_extension::CheckMetadataHash<Runtime>,
 );
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
diff --git a/runtime/g1/src/weights/pallet_identity.rs b/runtime/g1/src/weights/pallet_identity.rs
index 2b738f945dd5318ed840a62ba2961d97ca045543..ed47617a77bff7735d1687486c00289efb21061d 100644
--- a/runtime/g1/src/weights/pallet_identity.rs
+++ b/runtime/g1/src/weights/pallet_identity.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_identity`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
-//! DATE: 2025-01-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2025-01-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
@@ -29,12 +29,12 @@
 // --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
-// --pallet=*
+// --pallet=pallet-identity
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
 // --header=./file_header.txt
-// --output=./runtime/g1/src/weights/
+// --output=./runtime/gdev/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -53,6 +53,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Certification::StorageIdtyCertMeta` (r:2 w:2)
 	/// Proof: `Certification::StorageIdtyCertMeta` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Parameters::ParametersStorage` (r:1 w:0)
+	/// Proof: `Parameters::ParametersStorage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::NextIdtyIndex` (r:1 w:1)
@@ -69,12 +71,12 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn create_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1042`
-		//  Estimated: `6982`
-		// Minimum execution time: 67_992_000 picoseconds.
-		Weight::from_parts(70_172_000, 0)
-			.saturating_add(Weight::from_parts(0, 6982))
-			.saturating_add(T::DbWeight::get().reads(12))
+		//  Measured:  `1153`
+		//  Estimated: `7093`
+		// Minimum execution time: 74_393_000 picoseconds.
+		Weight::from_parts(77_378_000, 0)
+			.saturating_add(Weight::from_parts(0, 7093))
+			.saturating_add(T::DbWeight::get().reads(13))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: `Identity::IdentityIndexOf` (r:1 w:0)
@@ -89,8 +91,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `784`
 		//  Estimated: `6724`
-		// Minimum execution time: 32_431_000 picoseconds.
-		Weight::from_parts(33_693_000, 0)
+		// Minimum execution time: 32_530_000 picoseconds.
+		Weight::from_parts(34_341_000, 0)
 			.saturating_add(Weight::from_parts(0, 6724))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -107,11 +109,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	fn change_owner_key() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `940`
-		//  Estimated: `6880`
-		// Minimum execution time: 82_862_000 picoseconds.
-		Weight::from_parts(84_547_000, 0)
-			.saturating_add(Weight::from_parts(0, 6880))
+		//  Measured:  `936`
+		//  Estimated: `6876`
+		// Minimum execution time: 85_062_000 picoseconds.
+		Weight::from_parts(86_986_000, 0)
+			.saturating_add(Weight::from_parts(0, 6876))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -129,8 +131,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `673`
 		//  Estimated: `6613`
-		// Minimum execution time: 67_940_000 picoseconds.
-		Weight::from_parts(69_410_000, 0)
+		// Minimum execution time: 68_908_000 picoseconds.
+		Weight::from_parts(70_177_000, 0)
 			.saturating_add(Weight::from_parts(0, 6613))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -142,11 +144,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_194_000 picoseconds.
-		Weight::from_parts(4_271_000, 0)
+		// Minimum execution time: 4_149_000 picoseconds.
+		Weight::from_parts(4_296_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1_444
-			.saturating_add(Weight::from_parts(1_212_708, 0).saturating_mul(i.into()))
+			// Standard Error: 1_053
+			.saturating_add(Weight::from_parts(1_182_170, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
@@ -156,8 +158,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `104`
 		//  Estimated: `3558`
-		// Minimum execution time: 7_527_000 picoseconds.
-		Weight::from_parts(8_008_000, 0)
+		// Minimum execution time: 7_755_000 picoseconds.
+		Weight::from_parts(8_142_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -172,8 +174,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `379`
 		//  Estimated: `3844`
-		// Minimum execution time: 57_103_000 picoseconds.
-		Weight::from_parts(60_256_000, 0)
+		// Minimum execution time: 54_737_000 picoseconds.
+		Weight::from_parts(55_664_000, 0)
 			.saturating_add(Weight::from_parts(0, 3844))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -182,8 +184,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 94_000 picoseconds.
-		Weight::from_parts(129_000, 0)
+		// Minimum execution time: 102_000 picoseconds.
+		Weight::from_parts(131_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:0)
@@ -192,8 +194,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `327`
 		//  Estimated: `3792`
-		// Minimum execution time: 5_025_000 picoseconds.
-		Weight::from_parts(5_351_000, 0)
+		// Minimum execution time: 5_059_000 picoseconds.
+		Weight::from_parts(5_347_000, 0)
 			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -229,11 +231,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1840`
-		//  Estimated: `15205`
-		// Minimum execution time: 104_990_000 picoseconds.
-		Weight::from_parts(108_944_000, 0)
-			.saturating_add(Weight::from_parts(0, 15205))
+		//  Measured:  `1841`
+		//  Estimated: `15206`
+		// Minimum execution time: 103_409_000 picoseconds.
+		Weight::from_parts(106_390_000, 0)
+			.saturating_add(Weight::from_parts(0, 15206))
 			.saturating_add(T::DbWeight::get().reads(18))
 			.saturating_add(T::DbWeight::get().writes(21))
 	}
@@ -243,8 +245,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `327`
 		//  Estimated: `3792`
-		// Minimum execution time: 4_948_000 picoseconds.
-		Weight::from_parts(5_263_000, 0)
+		// Minimum execution time: 5_111_000 picoseconds.
+		Weight::from_parts(5_363_000, 0)
 			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -276,6 +278,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Certification::StorageIdtyCertMeta` (r:5 w:5)
 	/// Proof: `Certification::StorageIdtyCertMeta` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Parameters::ParametersStorage` (r:1 w:0)
+	/// Proof: `Parameters::ParametersStorage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// Storage: `Identity::IdentityIndexOf` (r:0 w:1)
 	/// Proof: `Identity::IdentityIndexOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Quota::IdtyQuota` (r:0 w:1)
@@ -284,12 +288,12 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2289`
-		//  Estimated: `15654`
-		// Minimum execution time: 144_067_000 picoseconds.
-		Weight::from_parts(149_168_000, 0)
-			.saturating_add(Weight::from_parts(0, 15654))
-			.saturating_add(T::DbWeight::get().reads(23))
+		//  Measured:  `2400`
+		//  Estimated: `15765`
+		// Minimum execution time: 143_498_000 picoseconds.
+		Weight::from_parts(150_849_000, 0)
+			.saturating_add(Weight::from_parts(0, 15765))
+			.saturating_add(T::DbWeight::get().reads(24))
 			.saturating_add(T::DbWeight::get().writes(29))
 	}
 	/// Storage: `Membership::Membership` (r:1 w:1)
@@ -322,18 +326,20 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Certification::StorageIdtyCertMeta` (r:5 w:5)
 	/// Proof: `Certification::StorageIdtyCertMeta` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Parameters::ParametersStorage` (r:1 w:0)
+	/// Proof: `Parameters::ParametersStorage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// Storage: `Quota::IdtyQuota` (r:0 w:1)
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	/// Storage: `Session::KeyOwner` (r:0 w:4)
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity_handler() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2282`
-		//  Estimated: `15647`
-		// Minimum execution time: 133_196_000 picoseconds.
-		Weight::from_parts(139_879_000, 0)
-			.saturating_add(Weight::from_parts(0, 15647))
-			.saturating_add(T::DbWeight::get().reads(24))
+		//  Measured:  `2393`
+		//  Estimated: `15758`
+		// Minimum execution time: 139_474_000 picoseconds.
+		Weight::from_parts(144_149_000, 0)
+			.saturating_add(Weight::from_parts(0, 15758))
+			.saturating_add(T::DbWeight::get().reads(25))
 			.saturating_add(T::DbWeight::get().writes(27))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
@@ -344,8 +350,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `407`
 		//  Estimated: `6347`
-		// Minimum execution time: 16_517_000 picoseconds.
-		Weight::from_parts(17_415_000, 0)
+		// Minimum execution time: 15_327_000 picoseconds.
+		Weight::from_parts(16_450_000, 0)
 			.saturating_add(Weight::from_parts(0, 6347))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -356,8 +362,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `108`
 		//  Estimated: `3573`
-		// Minimum execution time: 2_628_000 picoseconds.
-		Weight::from_parts(2_989_000, 0)
+		// Minimum execution time: 2_855_000 picoseconds.
+		Weight::from_parts(3_028_000, 0)
 			.saturating_add(Weight::from_parts(0, 3573))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -369,8 +375,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `325`
 		//  Estimated: `3790`
-		// Minimum execution time: 7_688_000 picoseconds.
-		Weight::from_parts(8_143_000, 0)
+		// Minimum execution time: 7_475_000 picoseconds.
+		Weight::from_parts(8_070_000, 0)
 			.saturating_add(Weight::from_parts(0, 3790))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -393,12 +399,32 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn prune_identities_err() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `914`
-		//  Estimated: `4379`
-		// Minimum execution time: 37_405_000 picoseconds.
-		Weight::from_parts(38_923_000, 0)
-			.saturating_add(Weight::from_parts(0, 4379))
+		//  Measured:  `915`
+		//  Estimated: `4380`
+		// Minimum execution time: 36_690_000 picoseconds.
+		Weight::from_parts(37_866_000, 0)
+			.saturating_add(Weight::from_parts(0, 4380))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
+	/// Storage: `Identity::IdentitiesNames` (r:1 w:0)
+	/// Proof: `Identity::IdentitiesNames` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Identity::Identities` (r:1 w:1)
+	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Membership::Membership` (r:1 w:1)
+	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Quota::IdtyQuota` (r:0 w:1)
+	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
+	fn revoke_identity_legacy() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `823`
+		//  Estimated: `6763`
+		// Minimum execution time: 129_625_000 picoseconds.
+		Weight::from_parts(132_399_000, 0)
+			.saturating_add(Weight::from_parts(0, 6763))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(5))
+	}
 }
diff --git a/runtime/gdev/Cargo.toml b/runtime/gdev/Cargo.toml
index b386f72d3ac97e6043290f6fbf6340cbde39c0c6..deefb7c6d5df3eb13894a8bfffa23d2ca229a9ca 100644
--- a/runtime/gdev/Cargo.toml
+++ b/runtime/gdev/Cargo.toml
@@ -195,6 +195,7 @@ frame-system = { workspace = true }
 frame-system-benchmarking = { workspace = true, optional = true }
 frame-system-rpc-runtime-api = { workspace = true }
 frame-try-runtime = { workspace = true, optional = true }
+frame-metadata-hash-extension = { workspace = true }
 hex-literal = { workspace = true, optional = true }
 log = { workspace = true }
 node-primitives = { workspace = true }
diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs
index 6447396cb298b4b75a4d271593fb993e509135b3..e5d4847979110a65449fb8ecc3cc1bce670340cd 100644
--- a/runtime/gdev/src/lib.rs
+++ b/runtime/gdev/src/lib.rs
@@ -121,6 +121,7 @@ pub type TxExtension = (
     pallet_oneshot_account::CheckNonce<Runtime>,
     frame_system::CheckWeight<Runtime>,
     pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
+    frame_metadata_hash_extension::CheckMetadataHash<Runtime>,
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
diff --git a/runtime/gdev/src/weights/pallet_identity.rs b/runtime/gdev/src/weights/pallet_identity.rs
index 5c866e62bcef62064c8e6b168e862b724cd033e7..ed47617a77bff7735d1687486c00289efb21061d 100644
--- a/runtime/gdev/src/weights/pallet_identity.rs
+++ b/runtime/gdev/src/weights/pallet_identity.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_identity`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
-//! DATE: 2025-01-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2025-01-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
@@ -29,7 +29,7 @@
 // --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
-// --pallet=*
+// --pallet=pallet-identity
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
@@ -73,8 +73,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1153`
 		//  Estimated: `7093`
-		// Minimum execution time: 73_423_000 picoseconds.
-		Weight::from_parts(75_606_000, 0)
+		// Minimum execution time: 74_393_000 picoseconds.
+		Weight::from_parts(77_378_000, 0)
 			.saturating_add(Weight::from_parts(0, 7093))
 			.saturating_add(T::DbWeight::get().reads(13))
 			.saturating_add(T::DbWeight::get().writes(12))
@@ -91,8 +91,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `784`
 		//  Estimated: `6724`
-		// Minimum execution time: 31_920_000 picoseconds.
-		Weight::from_parts(33_961_000, 0)
+		// Minimum execution time: 32_530_000 picoseconds.
+		Weight::from_parts(34_341_000, 0)
 			.saturating_add(Weight::from_parts(0, 6724))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -109,11 +109,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	fn change_owner_key() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `940`
-		//  Estimated: `6880`
-		// Minimum execution time: 80_339_000 picoseconds.
-		Weight::from_parts(83_265_000, 0)
-			.saturating_add(Weight::from_parts(0, 6880))
+		//  Measured:  `936`
+		//  Estimated: `6876`
+		// Minimum execution time: 85_062_000 picoseconds.
+		Weight::from_parts(86_986_000, 0)
+			.saturating_add(Weight::from_parts(0, 6876))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -131,8 +131,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `673`
 		//  Estimated: `6613`
-		// Minimum execution time: 66_057_000 picoseconds.
-		Weight::from_parts(67_443_000, 0)
+		// Minimum execution time: 68_908_000 picoseconds.
+		Weight::from_parts(70_177_000, 0)
 			.saturating_add(Weight::from_parts(0, 6613))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -144,11 +144,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_060_000 picoseconds.
-		Weight::from_parts(4_248_000, 0)
+		// Minimum execution time: 4_149_000 picoseconds.
+		Weight::from_parts(4_296_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1_211
-			.saturating_add(Weight::from_parts(1_176_626, 0).saturating_mul(i.into()))
+			// Standard Error: 1_053
+			.saturating_add(Weight::from_parts(1_182_170, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
@@ -158,8 +158,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `104`
 		//  Estimated: `3558`
-		// Minimum execution time: 7_365_000 picoseconds.
-		Weight::from_parts(7_744_000, 0)
+		// Minimum execution time: 7_755_000 picoseconds.
+		Weight::from_parts(8_142_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -174,8 +174,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `379`
 		//  Estimated: `3844`
-		// Minimum execution time: 51_184_000 picoseconds.
-		Weight::from_parts(52_715_000, 0)
+		// Minimum execution time: 54_737_000 picoseconds.
+		Weight::from_parts(55_664_000, 0)
 			.saturating_add(Weight::from_parts(0, 3844))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -184,8 +184,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 86_000 picoseconds.
-		Weight::from_parts(126_000, 0)
+		// Minimum execution time: 102_000 picoseconds.
+		Weight::from_parts(131_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:0)
@@ -194,8 +194,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `327`
 		//  Estimated: `3792`
-		// Minimum execution time: 4_667_000 picoseconds.
-		Weight::from_parts(4_909_000, 0)
+		// Minimum execution time: 5_059_000 picoseconds.
+		Weight::from_parts(5_347_000, 0)
 			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -233,8 +233,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1841`
 		//  Estimated: `15206`
-		// Minimum execution time: 102_072_000 picoseconds.
-		Weight::from_parts(104_973_000, 0)
+		// Minimum execution time: 103_409_000 picoseconds.
+		Weight::from_parts(106_390_000, 0)
 			.saturating_add(Weight::from_parts(0, 15206))
 			.saturating_add(T::DbWeight::get().reads(18))
 			.saturating_add(T::DbWeight::get().writes(21))
@@ -245,8 +245,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `327`
 		//  Estimated: `3792`
-		// Minimum execution time: 4_811_000 picoseconds.
-		Weight::from_parts(5_114_000, 0)
+		// Minimum execution time: 5_111_000 picoseconds.
+		Weight::from_parts(5_363_000, 0)
 			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -290,8 +290,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2400`
 		//  Estimated: `15765`
-		// Minimum execution time: 140_156_000 picoseconds.
-		Weight::from_parts(145_918_000, 0)
+		// Minimum execution time: 143_498_000 picoseconds.
+		Weight::from_parts(150_849_000, 0)
 			.saturating_add(Weight::from_parts(0, 15765))
 			.saturating_add(T::DbWeight::get().reads(24))
 			.saturating_add(T::DbWeight::get().writes(29))
@@ -336,8 +336,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2393`
 		//  Estimated: `15758`
-		// Minimum execution time: 137_138_000 picoseconds.
-		Weight::from_parts(143_364_000, 0)
+		// Minimum execution time: 139_474_000 picoseconds.
+		Weight::from_parts(144_149_000, 0)
 			.saturating_add(Weight::from_parts(0, 15758))
 			.saturating_add(T::DbWeight::get().reads(25))
 			.saturating_add(T::DbWeight::get().writes(27))
@@ -350,8 +350,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `407`
 		//  Estimated: `6347`
-		// Minimum execution time: 15_502_000 picoseconds.
-		Weight::from_parts(15_924_000, 0)
+		// Minimum execution time: 15_327_000 picoseconds.
+		Weight::from_parts(16_450_000, 0)
 			.saturating_add(Weight::from_parts(0, 6347))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -362,8 +362,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `108`
 		//  Estimated: `3573`
-		// Minimum execution time: 2_695_000 picoseconds.
-		Weight::from_parts(2_883_000, 0)
+		// Minimum execution time: 2_855_000 picoseconds.
+		Weight::from_parts(3_028_000, 0)
 			.saturating_add(Weight::from_parts(0, 3573))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -375,8 +375,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `325`
 		//  Estimated: `3790`
-		// Minimum execution time: 7_418_000 picoseconds.
-		Weight::from_parts(7_668_000, 0)
+		// Minimum execution time: 7_475_000 picoseconds.
+		Weight::from_parts(8_070_000, 0)
 			.saturating_add(Weight::from_parts(0, 3790))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -401,10 +401,30 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `915`
 		//  Estimated: `4380`
-		// Minimum execution time: 36_408_000 picoseconds.
-		Weight::from_parts(38_103_000, 0)
+		// Minimum execution time: 36_690_000 picoseconds.
+		Weight::from_parts(37_866_000, 0)
 			.saturating_add(Weight::from_parts(0, 4380))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
+	/// Storage: `Identity::IdentitiesNames` (r:1 w:0)
+	/// Proof: `Identity::IdentitiesNames` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Identity::Identities` (r:1 w:1)
+	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Membership::Membership` (r:1 w:1)
+	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Quota::IdtyQuota` (r:0 w:1)
+	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
+	fn revoke_identity_legacy() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `823`
+		//  Estimated: `6763`
+		// Minimum execution time: 129_625_000 picoseconds.
+		Weight::from_parts(132_399_000, 0)
+			.saturating_add(Weight::from_parts(0, 6763))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(5))
+	}
 }
diff --git a/runtime/gdev/tests/common/mod.rs b/runtime/gdev/tests/common/mod.rs
index 8e457720873ef7d1b45c4626e319fca10317fd9a..b8d13eaefae415969b7c4c2f295931f6042966b5 100644
--- a/runtime/gdev/tests/common/mod.rs
+++ b/runtime/gdev/tests/common/mod.rs
@@ -505,7 +505,6 @@ pub fn get_unchecked_extrinsic(
         ),
         frame_system::CheckWeight::<gdev_runtime::Runtime>::new(),
         pallet_transaction_payment::ChargeTransactionPayment::<gdev_runtime::Runtime>::from(tip),
-        frame_system::WeightReclaim::<gdev_runtime::Runtime>,
         frame_metadata_hash_extension::CheckMetadataHash::<gdev_runtime::Runtime>::new(false),
     );
     let payload = SignedPayload::new(call.clone(), tx_ext.clone()).unwrap();
diff --git a/runtime/gtest/Cargo.toml b/runtime/gtest/Cargo.toml
index 5a80ce58946cc01cdb109cba923af1180c68b008..eec845490068e5a32ed691442cc6c605bbdb1878 100644
--- a/runtime/gtest/Cargo.toml
+++ b/runtime/gtest/Cargo.toml
@@ -185,6 +185,7 @@ frame-support = { workspace = true }
 frame-system = { workspace = true }
 frame-system-rpc-runtime-api = { workspace = true }
 frame-try-runtime = { workspace = true, optional = true }
+frame-metadata-hash-extension = { workspace = true }
 hex-literal = { workspace = true, optional = true }
 pallet-session-benchmarking = { workspace = true }
 log = { workspace = true }
diff --git a/runtime/gtest/src/lib.rs b/runtime/gtest/src/lib.rs
index a6f1cd70c04c2877ada6aab2feb6626151578700..3144c4c6b5680be1b6af5a10edd8c3382e17633b 100644
--- a/runtime/gtest/src/lib.rs
+++ b/runtime/gtest/src/lib.rs
@@ -123,6 +123,7 @@ pub type TxExtension = (
     pallet_oneshot_account::CheckNonce<Runtime>,
     frame_system::CheckWeight<Runtime>,
     pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
+    frame_metadata_hash_extension::CheckMetadataHash<Runtime>,
 );
 
 /// Executive: handles dispatch to the various modules.
diff --git a/runtime/gtest/src/weights/pallet_identity.rs b/runtime/gtest/src/weights/pallet_identity.rs
index bc5ca7ffbec71422dac00a3f020d8950995d82c7..ed47617a77bff7735d1687486c00289efb21061d 100644
--- a/runtime/gtest/src/weights/pallet_identity.rs
+++ b/runtime/gtest/src/weights/pallet_identity.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_identity`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
-//! DATE: 2025-01-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2025-01-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
@@ -29,12 +29,12 @@
 // --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
-// --pallet=*
+// --pallet=pallet-identity
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
 // --header=./file_header.txt
-// --output=./runtime/gtest/src/weights/
+// --output=./runtime/gdev/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -53,6 +53,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Certification::StorageIdtyCertMeta` (r:2 w:2)
 	/// Proof: `Certification::StorageIdtyCertMeta` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Parameters::ParametersStorage` (r:1 w:0)
+	/// Proof: `Parameters::ParametersStorage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::NextIdtyIndex` (r:1 w:1)
@@ -69,12 +71,12 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn create_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1042`
-		//  Estimated: `6982`
-		// Minimum execution time: 66_396_000 picoseconds.
-		Weight::from_parts(69_237_000, 0)
-			.saturating_add(Weight::from_parts(0, 6982))
-			.saturating_add(T::DbWeight::get().reads(12))
+		//  Measured:  `1153`
+		//  Estimated: `7093`
+		// Minimum execution time: 74_393_000 picoseconds.
+		Weight::from_parts(77_378_000, 0)
+			.saturating_add(Weight::from_parts(0, 7093))
+			.saturating_add(T::DbWeight::get().reads(13))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: `Identity::IdentityIndexOf` (r:1 w:0)
@@ -89,8 +91,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `784`
 		//  Estimated: `6724`
-		// Minimum execution time: 33_044_000 picoseconds.
-		Weight::from_parts(33_934_000, 0)
+		// Minimum execution time: 32_530_000 picoseconds.
+		Weight::from_parts(34_341_000, 0)
 			.saturating_add(Weight::from_parts(0, 6724))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -107,11 +109,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	fn change_owner_key() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `964`
-		//  Estimated: `6904`
-		// Minimum execution time: 82_263_000 picoseconds.
-		Weight::from_parts(85_624_000, 0)
-			.saturating_add(Weight::from_parts(0, 6904))
+		//  Measured:  `936`
+		//  Estimated: `6876`
+		// Minimum execution time: 85_062_000 picoseconds.
+		Weight::from_parts(86_986_000, 0)
+			.saturating_add(Weight::from_parts(0, 6876))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -129,8 +131,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `673`
 		//  Estimated: `6613`
-		// Minimum execution time: 67_199_000 picoseconds.
-		Weight::from_parts(69_803_000, 0)
+		// Minimum execution time: 68_908_000 picoseconds.
+		Weight::from_parts(70_177_000, 0)
 			.saturating_add(Weight::from_parts(0, 6613))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -142,11 +144,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_252_000 picoseconds.
-		Weight::from_parts(4_490_000, 0)
+		// Minimum execution time: 4_149_000 picoseconds.
+		Weight::from_parts(4_296_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 869
-			.saturating_add(Weight::from_parts(1_171_083, 0).saturating_mul(i.into()))
+			// Standard Error: 1_053
+			.saturating_add(Weight::from_parts(1_182_170, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
@@ -156,8 +158,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `104`
 		//  Estimated: `3558`
-		// Minimum execution time: 7_172_000 picoseconds.
-		Weight::from_parts(7_670_000, 0)
+		// Minimum execution time: 7_755_000 picoseconds.
+		Weight::from_parts(8_142_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -172,8 +174,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `379`
 		//  Estimated: `3844`
-		// Minimum execution time: 51_415_000 picoseconds.
-		Weight::from_parts(52_846_000, 0)
+		// Minimum execution time: 54_737_000 picoseconds.
+		Weight::from_parts(55_664_000, 0)
 			.saturating_add(Weight::from_parts(0, 3844))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -182,8 +184,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 83_000 picoseconds.
-		Weight::from_parts(107_000, 0)
+		// Minimum execution time: 102_000 picoseconds.
+		Weight::from_parts(131_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:0)
@@ -192,8 +194,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `327`
 		//  Estimated: `3792`
-		// Minimum execution time: 4_689_000 picoseconds.
-		Weight::from_parts(5_005_000, 0)
+		// Minimum execution time: 5_059_000 picoseconds.
+		Weight::from_parts(5_347_000, 0)
 			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -229,11 +231,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1840`
-		//  Estimated: `15205`
-		// Minimum execution time: 100_717_000 picoseconds.
-		Weight::from_parts(106_049_000, 0)
-			.saturating_add(Weight::from_parts(0, 15205))
+		//  Measured:  `1841`
+		//  Estimated: `15206`
+		// Minimum execution time: 103_409_000 picoseconds.
+		Weight::from_parts(106_390_000, 0)
+			.saturating_add(Weight::from_parts(0, 15206))
 			.saturating_add(T::DbWeight::get().reads(18))
 			.saturating_add(T::DbWeight::get().writes(21))
 	}
@@ -243,8 +245,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `327`
 		//  Estimated: `3792`
-		// Minimum execution time: 5_019_000 picoseconds.
-		Weight::from_parts(5_257_000, 0)
+		// Minimum execution time: 5_111_000 picoseconds.
+		Weight::from_parts(5_363_000, 0)
 			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -276,6 +278,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Certification::StorageIdtyCertMeta` (r:5 w:5)
 	/// Proof: `Certification::StorageIdtyCertMeta` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Parameters::ParametersStorage` (r:1 w:0)
+	/// Proof: `Parameters::ParametersStorage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// Storage: `Identity::IdentityIndexOf` (r:0 w:1)
 	/// Proof: `Identity::IdentityIndexOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Quota::IdtyQuota` (r:0 w:1)
@@ -284,12 +288,12 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2289`
-		//  Estimated: `15654`
-		// Minimum execution time: 139_857_000 picoseconds.
-		Weight::from_parts(145_243_000, 0)
-			.saturating_add(Weight::from_parts(0, 15654))
-			.saturating_add(T::DbWeight::get().reads(23))
+		//  Measured:  `2400`
+		//  Estimated: `15765`
+		// Minimum execution time: 143_498_000 picoseconds.
+		Weight::from_parts(150_849_000, 0)
+			.saturating_add(Weight::from_parts(0, 15765))
+			.saturating_add(T::DbWeight::get().reads(24))
 			.saturating_add(T::DbWeight::get().writes(29))
 	}
 	/// Storage: `Membership::Membership` (r:1 w:1)
@@ -322,18 +326,20 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Certification::StorageIdtyCertMeta` (r:5 w:5)
 	/// Proof: `Certification::StorageIdtyCertMeta` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Parameters::ParametersStorage` (r:1 w:0)
+	/// Proof: `Parameters::ParametersStorage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// Storage: `Quota::IdtyQuota` (r:0 w:1)
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	/// Storage: `Session::KeyOwner` (r:0 w:4)
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity_handler() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2282`
-		//  Estimated: `15647`
-		// Minimum execution time: 132_268_000 picoseconds.
-		Weight::from_parts(139_226_000, 0)
-			.saturating_add(Weight::from_parts(0, 15647))
-			.saturating_add(T::DbWeight::get().reads(24))
+		//  Measured:  `2393`
+		//  Estimated: `15758`
+		// Minimum execution time: 139_474_000 picoseconds.
+		Weight::from_parts(144_149_000, 0)
+			.saturating_add(Weight::from_parts(0, 15758))
+			.saturating_add(T::DbWeight::get().reads(25))
 			.saturating_add(T::DbWeight::get().writes(27))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
@@ -344,8 +350,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `407`
 		//  Estimated: `6347`
-		// Minimum execution time: 15_542_000 picoseconds.
-		Weight::from_parts(16_282_000, 0)
+		// Minimum execution time: 15_327_000 picoseconds.
+		Weight::from_parts(16_450_000, 0)
 			.saturating_add(Weight::from_parts(0, 6347))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -356,8 +362,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `108`
 		//  Estimated: `3573`
-		// Minimum execution time: 2_650_000 picoseconds.
-		Weight::from_parts(2_843_000, 0)
+		// Minimum execution time: 2_855_000 picoseconds.
+		Weight::from_parts(3_028_000, 0)
 			.saturating_add(Weight::from_parts(0, 3573))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -369,8 +375,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `325`
 		//  Estimated: `3790`
-		// Minimum execution time: 7_360_000 picoseconds.
-		Weight::from_parts(7_885_000, 0)
+		// Minimum execution time: 7_475_000 picoseconds.
+		Weight::from_parts(8_070_000, 0)
 			.saturating_add(Weight::from_parts(0, 3790))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -393,12 +399,32 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn prune_identities_err() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `914`
-		//  Estimated: `4379`
-		// Minimum execution time: 36_848_000 picoseconds.
-		Weight::from_parts(38_042_000, 0)
-			.saturating_add(Weight::from_parts(0, 4379))
+		//  Measured:  `915`
+		//  Estimated: `4380`
+		// Minimum execution time: 36_690_000 picoseconds.
+		Weight::from_parts(37_866_000, 0)
+			.saturating_add(Weight::from_parts(0, 4380))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
+	/// Storage: `Identity::IdentitiesNames` (r:1 w:0)
+	/// Proof: `Identity::IdentitiesNames` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Identity::Identities` (r:1 w:1)
+	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Membership::Membership` (r:1 w:1)
+	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Quota::IdtyQuota` (r:0 w:1)
+	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
+	fn revoke_identity_legacy() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `823`
+		//  Estimated: `6763`
+		// Minimum execution time: 129_625_000 picoseconds.
+		Weight::from_parts(132_399_000, 0)
+			.saturating_add(Weight::from_parts(0, 6763))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(5))
+	}
 }