diff --git a/pallets/identity/src/benchmarking.rs b/pallets/identity/src/benchmarking.rs
index f8c2e2665adcc309f415569f7f96654b0fd8240d..10d4051a8f5030cbc3f6d759eadd744d3e522530 100644
--- a/pallets/identity/src/benchmarking.rs
+++ b/pallets/identity/src/benchmarking.rs
@@ -21,6 +21,8 @@ use super::*;
 //use codec::Encode;
 use codec::Encode;
 use frame_benchmarking::{account, benchmarks};
+use frame_support::traits::OnInitialize;
+use frame_system::pallet_prelude::BlockNumberFor;
 use frame_system::RawOrigin;
 use sp_core::Get;
 use sp_io::crypto::{sr25519_generate, sr25519_sign};
@@ -275,6 +277,28 @@ benchmarks! {
         ).encode();
         let signature = sr25519_sign(0.into(), &bob_public, &payload).unwrap().into();
     }: _<T::RuntimeOrigin>(alice_origin.into(), bob, signature)
+    // Base weight of an empty initialize
+    on_initialize {
+    }: {Pallet::<T>::on_initialize(BlockNumberFor::<T>::zero());}
+    do_remove_identity_noop {
+        let idty_index: T::IdtyIndex = 0u32.into();
+        assert!(Identities::<T>::get(idty_index).is_none());
+    }: {Pallet::<T>::do_remove_identity(idty_index, IdtyRemovalReason::Revoked);}
+    prune_identities_noop {
+        assert!(IdentitiesRemovableOn::<T>::try_get(T::BlockNumber::zero()).is_err());
+    }: {Pallet::<T>::prune_identities(T::BlockNumber::zero());}
+    prune_identities_none {
+        let idty_index: T::IdtyIndex = 100u32.into();
+        IdentitiesRemovableOn::<T>::append(T::BlockNumber::zero(), (idty_index, IdtyStatus::Created));
+        assert!(IdentitiesRemovableOn::<T>::try_get(T::BlockNumber::zero()).is_ok());
+        assert!(<Identities<T>>::try_get(idty_index).is_err());
+    }: {Pallet::<T>::prune_identities(T::BlockNumber::zero());}
+    prune_identities_err {
+        let idty_index: T::IdtyIndex = 100u32.into();
+        create_dummy_identity::<T>(100u32)?;
+        IdentitiesRemovableOn::<T>::append(T::BlockNumber::zero(), (idty_index, IdtyStatus::Created));
+        assert!(<Identities<T>>::get(idty_index).unwrap().status != IdentitiesRemovableOn::<T>::get(T::BlockNumber::zero())[0].1);
+    }: {Pallet::<T>::prune_identities(T::BlockNumber::zero());}
 
     impl_benchmark_test_suite!(
         Pallet,
diff --git a/pallets/identity/src/lib.rs b/pallets/identity/src/lib.rs
index 8c96cc6a9ed8400f1c1d04a818a929688ee6d616..92b5952d1c4a9b663ed600cd05348476a550891b 100644
--- a/pallets/identity/src/lib.rs
+++ b/pallets/identity/src/lib.rs
@@ -225,9 +225,9 @@ pub mod pallet {
     impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
         fn on_initialize(n: T::BlockNumber) -> Weight {
             if n > T::BlockNumber::zero() {
-                Self::prune_identities(n)
+                Self::prune_identities(n).saturating_add(T::WeightInfo::on_initialize())
             } else {
-                Weight::zero()
+                T::WeightInfo::on_initialize()
             }
         }
     }
@@ -739,7 +739,7 @@ pub mod pallet {
                     },
                 );
             }
-            Weight::zero()
+            T::WeightInfo::do_remove_identity_noop()
         }
         /// incremental counter for identity index
         fn get_next_idty_index() -> T::IdtyIndex {
@@ -752,7 +752,7 @@ pub mod pallet {
             }
         }
         /// remove identities planned for removal at the given block if their status did not change
-        fn prune_identities(block_number: T::BlockNumber) -> Weight {
+        pub fn prune_identities(block_number: T::BlockNumber) -> Weight {
             let mut total_weight = Weight::zero();
 
             for (idty_index, idty_status) in IdentitiesRemovableOn::<T>::take(block_number) {
@@ -760,11 +760,17 @@ pub mod pallet {
                     if idty_val.removable_on == block_number && idty_val.status == idty_status {
                         total_weight +=
                             Self::do_remove_identity(idty_index, IdtyRemovalReason::Expired)
+                    } else {
+                        total_weight += T::WeightInfo::prune_identities_err()
+                            .saturating_sub(T::WeightInfo::prune_identities_none())
                     }
+                } else {
+                    total_weight += T::WeightInfo::prune_identities_none()
+                        .saturating_sub(T::WeightInfo::prune_identities_noop())
                 }
             }
 
-            total_weight
+            total_weight.saturating_add(T::WeightInfo::prune_identities_noop())
         }
 
         /// link account
diff --git a/pallets/identity/src/weights.rs b/pallets/identity/src/weights.rs
index f1058b770c2311e3eba73d798785eaa017c9778a..fea63fe2a70057deca8a4bcf77cefe2710396502 100644
--- a/pallets/identity/src/weights.rs
+++ b/pallets/identity/src/weights.rs
@@ -29,6 +29,11 @@ pub trait WeightInfo {
     fn prune_item_identities_names(i: u32) -> Weight;
     fn fix_sufficients() -> Weight;
     fn link_account() -> Weight;
+    fn on_initialize() -> Weight;
+    fn do_remove_identity_noop() -> Weight;
+    fn prune_identities_noop() -> Weight;
+    fn prune_identities_none() -> Weight;
+    fn prune_identities_err() -> Weight;
 }
 
 // Insecure weights implementation, use it for tests only!
@@ -152,4 +157,54 @@ impl WeightInfo for () {
             .saturating_add(RocksDbWeight::get().reads(3))
             .saturating_add(RocksDbWeight::get().writes(1))
     }
+    fn on_initialize() -> Weight {
+        // Proof Size summary in bytes:
+        //  Measured:  `359`
+        //  Estimated: `3824`
+        // Minimum execution time: 543_046_000 picoseconds.
+        Weight::from_parts(544_513_000, 0)
+            .saturating_add(Weight::from_parts(0, 3824))
+            .saturating_add(RocksDbWeight::get().reads(3))
+            .saturating_add(RocksDbWeight::get().writes(1))
+    }
+    fn do_remove_identity_noop() -> Weight {
+        // Proof Size summary in bytes:
+        //  Measured:  `359`
+        //  Estimated: `3824`
+        // Minimum execution time: 543_046_000 picoseconds.
+        Weight::from_parts(544_513_000, 0)
+            .saturating_add(Weight::from_parts(0, 3824))
+            .saturating_add(RocksDbWeight::get().reads(3))
+            .saturating_add(RocksDbWeight::get().writes(1))
+    }
+    fn prune_identities_noop() -> Weight {
+        // Proof Size summary in bytes:
+        //  Measured:  `359`
+        //  Estimated: `3824`
+        // Minimum execution time: 543_046_000 picoseconds.
+        Weight::from_parts(544_513_000, 0)
+            .saturating_add(Weight::from_parts(0, 3824))
+            .saturating_add(RocksDbWeight::get().reads(3))
+            .saturating_add(RocksDbWeight::get().writes(1))
+    }
+    fn prune_identities_none() -> Weight {
+        // Proof Size summary in bytes:
+        //  Measured:  `359`
+        //  Estimated: `3824`
+        // Minimum execution time: 543_046_000 picoseconds.
+        Weight::from_parts(544_513_000, 0)
+            .saturating_add(Weight::from_parts(0, 3824))
+            .saturating_add(RocksDbWeight::get().reads(3))
+            .saturating_add(RocksDbWeight::get().writes(1))
+    }
+    fn prune_identities_err() -> Weight {
+        // Proof Size summary in bytes:
+        //  Measured:  `359`
+        //  Estimated: `3824`
+        // Minimum execution time: 543_046_000 picoseconds.
+        Weight::from_parts(544_513_000, 0)
+            .saturating_add(Weight::from_parts(0, 3824))
+            .saturating_add(RocksDbWeight::get().reads(3))
+            .saturating_add(RocksDbWeight::get().writes(1))
+    }
 }
diff --git a/runtime/common/src/weights/pallet_identity.rs b/runtime/common/src/weights/pallet_identity.rs
index 11cea0a9a07890d30928a836eb35522193e07877..7cc1377e67b6c9ebc3b7fc081604c28072c83baa 100644
--- a/runtime/common/src/weights/pallet_identity.rs
+++ b/runtime/common/src/weights/pallet_identity.rs
@@ -1,41 +1,28 @@
-// Copyright 2021-2022 Axiom-Team
-//
-// This file is part of Duniter-v2S.
-//
-// Duniter-v2S is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, version 3 of the License.
-//
-// Duniter-v2S is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
 
 //! Autogenerated weights for `pallet_identity`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-08, STEPS: `5`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2023-11-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `benjamin-xps139380`, CPU: `Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("gdev-benchmark"), DB CACHE: 1024
+//! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
+//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
 
 // Executed Command:
-// target/release/duniter
+// ./target/release/duniter
 // benchmark
 // pallet
-// --chain=gdev-benchmark
-// --steps=5
-// --repeat=2
-// --pallet=*
-// --extrinsic=*
-// --execution=wasm
+// --chain
+// dev
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --header=./file_header.txt
-// --output=./runtime/common/src/weights/
+// --pallet
+// pallet-identity
+// --extrinsic
+// *
+// --steps
+// 50
+// --repeat
+// 20
+// --output=runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -57,7 +44,7 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Storage: Parameters ParametersStorage (r:1 w:0)
 	/// Proof Skipped: 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(161), added: 2636, mode: MaxEncodedLen)
+	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	/// Storage: Identity NextIdtyIndex (r:1 w:1)
 	/// Proof Skipped: Identity NextIdtyIndex (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: Identity CounterForIdentities (r:1 w:1)
@@ -68,15 +55,17 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Cert StorageCertsRemovableOn (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Cert CertsByReceiver (r:1 w:1)
 	/// Proof Skipped: Cert CertsByReceiver (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 create_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `910`
-		//  Estimated: `6850`
-		// Minimum execution time: 229_558_000 picoseconds.
-		Weight::from_parts(261_641_000, 0)
-			.saturating_add(Weight::from_parts(0, 6850))
+		//  Measured:  `982`
+		//  Estimated: `6922`
+		// Minimum execution time: 37_343_000 picoseconds.
+		Weight::from_parts(38_374_000, 0)
+			.saturating_add(Weight::from_parts(0, 6922))
 			.saturating_add(T::DbWeight::get().reads(13))
-			.saturating_add(T::DbWeight::get().writes(11))
+			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: Identity IdentityIndexOf (r:1 w:0)
 	/// Proof Skipped: Identity IdentityIndexOf (max_values: None, max_size: None, mode: Measured)
@@ -94,11 +83,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Membership PendingMembershipsExpireOn (max_values: None, max_size: None, mode: Measured)
 	fn confirm_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `815`
-		//  Estimated: `4280`
-		// Minimum execution time: 143_659_000 picoseconds.
-		Weight::from_parts(158_354_000, 0)
-			.saturating_add(Weight::from_parts(0, 4280))
+		//  Measured:  `955`
+		//  Estimated: `4420`
+		// Minimum execution time: 23_567_000 picoseconds.
+		Weight::from_parts(24_519_000, 0)
+			.saturating_add(Weight::from_parts(0, 4420))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -110,6 +99,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Cert StorageIdtyCertMeta (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Parameters ParametersStorage (r:1 w:0)
 	/// Proof Skipped: Parameters ParametersStorage (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: Distance IdentityDistanceStatus (r:1 w:0)
+	/// Proof Skipped: Distance IdentityDistanceStatus (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Membership Membership (r:1 w:1)
 	/// Proof Skipped: Membership Membership (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Membership CounterForMembership (r:1 w:1)
@@ -120,12 +111,12 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: UniversalDividend CurrentUdIndex (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
 	fn validate_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `955`
-		//  Estimated: `4420`
-		// Minimum execution time: 171_418_000 picoseconds.
-		Weight::from_parts(190_580_000, 0)
-			.saturating_add(Weight::from_parts(0, 4420))
-			.saturating_add(T::DbWeight::get().reads(8))
+		//  Measured:  `1948`
+		//  Estimated: `5413`
+		// Minimum execution time: 37_244_000 picoseconds.
+		Weight::from_parts(40_560_000, 0)
+			.saturating_add(Weight::from_parts(0, 5413))
+			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
 	/// Storage: Identity IdentityIndexOf (r:2 w:2)
@@ -137,16 +128,16 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Storage: System BlockHash (r:1 w:0)
 	/// Proof: System BlockHash (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen)
+	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	/// Storage: AuthorityMembers Members (r:1 w:0)
 	/// Proof Skipped: AuthorityMembers Members (max_values: None, max_size: None, mode: Measured)
 	fn change_owner_key() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1077`
-		//  Estimated: `7017`
-		// Minimum execution time: 406_461_000 picoseconds.
-		Weight::from_parts(636_569_000, 0)
-			.saturating_add(Weight::from_parts(0, 7017))
+		//  Measured:  `1115`
+		//  Estimated: `7055`
+		// Minimum execution time: 78_496_000 picoseconds.
+		Weight::from_parts(85_171_000, 0)
+			.saturating_add(Weight::from_parts(0, 7055))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -161,7 +152,7 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Storage: Identity CounterForIdentities (r:1 w:1)
 	/// Proof: Identity CounterForIdentities (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen)
+	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	/// Storage: Cert CertsByReceiver (r:1 w:1)
 	/// Proof Skipped: Cert CertsByReceiver (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Cert StorageIdtyCertMeta (r:2 w:2)
@@ -170,15 +161,17 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Parameters ParametersStorage (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: Identity IdentityIndexOf (r:0 w:1)
 	/// Proof Skipped: Identity IdentityIndexOf (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() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1547`
-		//  Estimated: `7487`
-		// Minimum execution time: 404_569_000 picoseconds.
-		Weight::from_parts(420_040_000, 0)
-			.saturating_add(Weight::from_parts(0, 7487))
+		//  Measured:  `1498`
+		//  Estimated: `7438`
+		// Minimum execution time: 86_488_000 picoseconds.
+		Weight::from_parts(89_856_000, 0)
+			.saturating_add(Weight::from_parts(0, 7438))
 			.saturating_add(T::DbWeight::get().reads(11))
-			.saturating_add(T::DbWeight::get().writes(9))
+			.saturating_add(T::DbWeight::get().writes(10))
 	}
 	/// Storage: Identity Identities (r:1 w:1)
 	/// Proof Skipped: Identity Identities (max_values: None, max_size: None, mode: Measured)
@@ -189,7 +182,7 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Storage: Identity CounterForIdentities (r:1 w:1)
 	/// Proof: Identity CounterForIdentities (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen)
+	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	/// Storage: Cert CertsByReceiver (r:1 w:1)
 	/// Proof Skipped: Cert CertsByReceiver (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Cert StorageIdtyCertMeta (r:2 w:2)
@@ -200,39 +193,41 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Identity IdentityIndexOf (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Identity IdentitiesNames (r:0 w:1)
 	/// Proof Skipped: Identity IdentitiesNames (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 remove_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1352`
-		//  Estimated: `7292`
-		// Minimum execution time: 221_063_000 picoseconds.
-		Weight::from_parts(261_413_000, 0)
-			.saturating_add(Weight::from_parts(0, 7292))
+		//  Measured:  `1343`
+		//  Estimated: `7283`
+		// Minimum execution time: 38_570_000 picoseconds.
+		Weight::from_parts(39_625_000, 0)
+			.saturating_add(Weight::from_parts(0, 7283))
 			.saturating_add(T::DbWeight::get().reads(9))
-			.saturating_add(T::DbWeight::get().writes(9))
+			.saturating_add(T::DbWeight::get().writes(10))
 	}
-	/// Storage: Identity IdentitiesNames (r:0 w:999)
+	/// Storage: Identity IdentitiesNames (r:0 w:998)
 	/// Proof Skipped: Identity IdentitiesNames (max_values: None, max_size: None, mode: Measured)
 	/// The range of component `i` is `[1, 1000]`.
 	fn prune_item_identities_names(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 11_247_000 picoseconds.
-		Weight::from_parts(11_247_000, 0)
+		// Minimum execution time: 874_000 picoseconds.
+		Weight::from_parts(946_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 20_366
-			.saturating_add(Weight::from_parts(3_802_802, 0).saturating_mul(i.into()))
+			// Standard Error: 865
+			.saturating_add(Weight::from_parts(640_555, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen)
+	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	fn fix_sufficients() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `103`
-		//  Estimated: `3626`
-		// Minimum execution time: 30_488_000 picoseconds.
-		Weight::from_parts(32_424_000, 0)
-			.saturating_add(Weight::from_parts(0, 3626))
+		//  Measured:  `67`
+		//  Estimated: `3591`
+		// Minimum execution time: 3_954_000 picoseconds.
+		Weight::from_parts(4_176_000, 0)
+			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -244,12 +239,70 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	fn link_account() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `359`
-		//  Estimated: `3824`
-		// Minimum execution time: 543_046_000 picoseconds.
-		Weight::from_parts(544_513_000, 0)
-			.saturating_add(Weight::from_parts(0, 3824))
+		//  Measured:  `307`
+		//  Estimated: `3772`
+		// Minimum execution time: 45_049_000 picoseconds.
+		Weight::from_parts(46_758_000, 0)
+			.saturating_add(Weight::from_parts(0, 3772))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	fn on_initialize() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 28_000 picoseconds.
+		Weight::from_parts(29_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: Identity Identities (r:1 w:0)
+	/// Proof Skipped: Identity Identities (max_values: None, max_size: None, mode: Measured)
+	fn do_remove_identity_noop() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `269`
+		//  Estimated: `3734`
+		// Minimum execution time: 3_447_000 picoseconds.
+		Weight::from_parts(3_570_000, 0)
+			.saturating_add(Weight::from_parts(0, 3734))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: Identity IdentitiesRemovableOn (r:1 w:0)
+	/// Proof Skipped: Identity IdentitiesRemovableOn (max_values: None, max_size: None, mode: Measured)
+	fn prune_identities_noop() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `108`
+		//  Estimated: `3573`
+		// Minimum execution time: 1_213_000 picoseconds.
+		Weight::from_parts(1_314_000, 0)
+			.saturating_add(Weight::from_parts(0, 3573))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: Identity IdentitiesRemovableOn (r:1 w:1)
+	/// Proof Skipped: Identity IdentitiesRemovableOn (max_values: None, max_size: None, mode: Measured)
+	/// Storage: Identity Identities (r:1 w:0)
+	/// Proof Skipped: Identity Identities (max_values: None, max_size: None, mode: Measured)
+	fn prune_identities_none() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `293`
+		//  Estimated: `3758`
+		// Minimum execution time: 4_540_000 picoseconds.
+		Weight::from_parts(4_681_000, 0)
+			.saturating_add(Weight::from_parts(0, 3758))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: Identity IdentitiesRemovableOn (r:1 w:1)
+	/// Proof Skipped: Identity IdentitiesRemovableOn (max_values: None, max_size: None, mode: Measured)
+	/// Storage: Identity Identities (r:1 w:0)
+	/// Proof Skipped: Identity Identities (max_values: None, max_size: None, mode: Measured)
+	fn prune_identities_err() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `360`
+		//  Estimated: `3825`
+		// Minimum execution time: 5_511_000 picoseconds.
+		Weight::from_parts(5_784_000, 0)
+			.saturating_add(Weight::from_parts(0, 3825))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
 }