diff --git a/pallets/identity/src/types.rs b/pallets/identity/src/types.rs
index 60d92bbb676fb34301dcc1a9ba80a99eca2cbf9c..1de3c46560e150dd82e9bfe9982922c80683d234 100644
--- a/pallets/identity/src/types.rs
+++ b/pallets/identity/src/types.rs
@@ -16,7 +16,7 @@
 
 //! Various basic types for use in the identity pallet.
 
-use codec::{Decode, Encode};
+use codec::{Decode, DecodeWithMemTracking, Encode};
 use frame_support::pallet_prelude::*;
 use scale_info::{prelude::vec::Vec, TypeInfo};
 use serde::{Deserialize, Serialize};
@@ -45,7 +45,7 @@ pub enum IdtyEvent<T: crate::Config> {
 }
 
 /// Reasons for revocation.
-#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo)]
+#[derive(Encode, Decode, DecodeWithMemTracking, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo)]
 pub enum RevocationReason {
     /// Revoked by root (e.g., governance or migration).
     Root,
@@ -56,7 +56,7 @@ pub enum RevocationReason {
 }
 
 /// Reasons for removal.
-#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo)]
+#[derive(Encode, Decode, Clone, DecodeWithMemTracking, PartialEq, Eq, RuntimeDebug, TypeInfo)]
 pub enum RemovalReason {
     /// Removed by root.
     Root,
@@ -72,6 +72,7 @@ pub enum RemovalReason {
 #[derive(
     Encode,
     Decode,
+    DecodeWithMemTracking,
     Default,
     Clone,
     PartialEq,
diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs
index ffbd6b8798af9898a06d95cc8ec8bca2159e8ffd..402639c36bbe59f11aa8f40d0a73660b2f71f9f5 100644
--- a/pallets/membership/src/lib.rs
+++ b/pallets/membership/src/lib.rs
@@ -57,7 +57,7 @@ impl<IdtyId, AccountId> SetupBenchmark<IdtyId, AccountId> for () {
 }
 
 /// Represent reasons for the removal of membership.
-#[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo)]
+#[derive(Encode, Decode, Clone, DecodeWithMemTracking, PartialEq, Eq, RuntimeDebug, TypeInfo)]
 pub enum MembershipRemovalReason {
     /// Indicates membership was removed because it reached the end of its life.
     Expired,
diff --git a/pallets/provide-randomness/src/types.rs b/pallets/provide-randomness/src/types.rs
index 4dfeda203152ff43330ecf9814644845ffe7d3de..50270f0b80e6828844f4ccec9316ed4eae75ead3 100644
--- a/pallets/provide-randomness/src/types.rs
+++ b/pallets/provide-randomness/src/types.rs
@@ -17,13 +17,15 @@
 //! Various basic types for use in pallet provide randomness
 
 use super::RequestId;
-use codec::{Decode, Encode};
+use codec::{Decode, DecodeWithMemTracking, Encode};
 use frame_support::pallet_prelude::*;
 use scale_info::TypeInfo;
 use sp_core::H256;
 
 /// The type of randomness source.
-#[derive(Clone, Copy, Decode, Encode, Eq, PartialEq, RuntimeDebug, TypeInfo)]
+#[derive(
+    Clone, DecodeWithMemTracking, Copy, Decode, Encode, Eq, PartialEq, RuntimeDebug, TypeInfo,
+)]
 pub enum RandomnessType {
     /// Randomness derived from the previous block.
     RandomnessFromPreviousBlock,
diff --git a/primitives/distance/src/lib.rs b/primitives/distance/src/lib.rs
index c447da1020bb48d8ba944c5a8af22ba9e98cdf11..823ba54bdd09cae754eea2a8350f5556c95adacd 100644
--- a/primitives/distance/src/lib.rs
+++ b/primitives/distance/src/lib.rs
@@ -19,7 +19,7 @@
 #![cfg_attr(not(feature = "std"), no_std)]
 #![allow(clippy::type_complexity)]
 
-use codec::{Decode, Encode};
+use codec::{Decode, DecodeWithMemTracking, Encode};
 use frame_support::pallet_prelude::RuntimeDebug;
 use scale_info::TypeInfo;
 use sp_inherents::{InherentData, InherentIdentifier, IsFatalError};
@@ -30,7 +30,7 @@ use std::marker::PhantomData;
 pub const INHERENT_IDENTIFIER: InherentIdentifier = *b"distanc0";
 
 /// Represents the result of a distance computation.
-#[derive(Clone, Decode, Encode, PartialEq, RuntimeDebug, TypeInfo)]
+#[derive(Clone, DecodeWithMemTracking, Decode, Encode, PartialEq, RuntimeDebug, TypeInfo)]
 pub struct ComputationResult {
     pub distances: scale_info::prelude::vec::Vec<Perbill>,
 }