diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs
index be77cd5588933b69d72b4d171fbd1a6974b6773c..e2263ed418d1f6a200182e6092a9c3c71d3d274b 100644
--- a/node/src/chain_spec/gdev.rs
+++ b/node/src/chain_spec/gdev.rs
@@ -137,9 +137,9 @@ fn devnet_genesis(
                 ud_reeval_period: 20,
                 ud_reeval_period_in_blocks: 200,
                 wot_first_cert_issuable_on: 20,
-                wot_min_cert_for_ud_right: 2,
                 wot_min_cert_for_cert_right: 2,
                 wot_min_cert_for_create_idty_right: 2,
+                wot_min_cert_for_membership: 2,
             },
         },
         authority_discovery: Default::default(),
diff --git a/pallets/authority-members/src/lib.rs b/pallets/authority-members/src/lib.rs
index 16ea999fa09880536b168c757f6f207bf2e8e3cc..f9795a9c3cbad949c90d193b9c5fde5a0663a09c 100644
--- a/pallets/authority-members/src/lib.rs
+++ b/pallets/authority-members/src/lib.rs
@@ -330,7 +330,7 @@ pub mod pallet {
             // remove all member data
             Self::remove_in(member_id);
             Self::remove_online(member_id);
-			Members::<T>::remove(member_id);
+            Members::<T>::remove(member_id);
 
             Self::deposit_event(Event::MemberRemoved(member_id));
             let _ = T::OnRemovedMember::on_removed_member(member_id);
diff --git a/pallets/duniter-test-parameters/src/lib.rs b/pallets/duniter-test-parameters/src/lib.rs
index af7bd1acc17dbcd1c42e05d10f19e5524dbf8f5e..fb3585be3625a0755c1e769ee0740bc6c9545f59 100644
--- a/pallets/duniter-test-parameters/src/lib.rs
+++ b/pallets/duniter-test-parameters/src/lib.rs
@@ -51,9 +51,9 @@ pub mod types {
         pub ud_reeval_period: PeriodCount,
         pub ud_reeval_period_in_blocks: BlockNumber,
         pub wot_first_cert_issuable_on: BlockNumber,
-        pub wot_min_cert_for_ud_right: CertCount,
         pub wot_min_cert_for_cert_right: CertCount,
         pub wot_min_cert_for_create_idty_right: CertCount,
+        pub wot_min_cert_for_membership: CertCount,
     }
 }
 
diff --git a/pallets/duniter-wot/src/lib.rs b/pallets/duniter-wot/src/lib.rs
index ede541d1f7b567071763e93a26ddec42d24512b9..3790c6798e16ed7251f8b2551e47eee6d23ec2b6 100644
--- a/pallets/duniter-wot/src/lib.rs
+++ b/pallets/duniter-wot/src/lib.rs
@@ -64,8 +64,8 @@ pub mod pallet {
         + pallet_membership::Config<I, IdtyId = IdtyIndex, MetaData = ()>
     {
         type FirstIssuableOn: Get<Self::BlockNumber>;
-        type ManageIdentitiesChanges: Get<bool>;
-        type MinCertForUdRight: Get<u32>;
+        type IsSubWot: Get<bool>;
+        type MinCertForMembership: Get<u32>;
         type MinCertForCreateIdtyRight: Get<u32>;
     }
 
@@ -80,7 +80,7 @@ pub mod pallet {
             );
         }
         pub(super) fn dispath_idty_call(idty_call: pallet_identity::Call<T>) -> bool {
-            if T::ManageIdentitiesChanges::get() {
+            if !T::IsSubWot::get() {
                 if let Err(e) = idty_call.dispatch_bypass_filter(RawOrigin::Root.into()) {
                     sp_std::if_std! {
                         println!("{:?}", e)
@@ -120,8 +120,16 @@ impl<T: Config<I>, I: 'static> pallet_identity::traits::EnsureIdtyCallAllowed<T>
 impl<T: Config<I>, I: 'static> sp_membership::traits::IsIdtyAllowedToClaimMembership<IdtyIndex>
     for Pallet<T, I>
 {
-    fn is_idty_allowed_to_claim_membership(_: &IdtyIndex) -> bool {
-        false
+    fn is_idty_allowed_to_claim_membership(idty_index: &IdtyIndex) -> bool {
+        if T::IsSubWot::get() {
+            if let Some(idty_value) = pallet_identity::Pallet::<T>::identity(idty_index) {
+                idty_value.status == IdtyStatus::Validated
+            } else {
+                false
+            }
+        } else {
+            false
+        }
     }
 }
 
@@ -142,7 +150,11 @@ impl<T: Config<I>, I: 'static> sp_membership::traits::IsIdtyAllowedToRequestMemb
 {
     fn is_idty_allowed_to_request_membership(idty_index: &IdtyIndex) -> bool {
         if let Some(idty_value) = pallet_identity::Pallet::<T>::identity(idty_index) {
-            idty_value.status == IdtyStatus::Disabled
+            if T::IsSubWot::get() {
+                idty_value.status == IdtyStatus::Validated
+            } else {
+                idty_value.status == IdtyStatus::Disabled
+            }
         } else {
             false
         }
@@ -190,8 +202,8 @@ impl<T: Config<I>, I: 'static> sp_membership::traits::OnEvent<IdtyIndex, ()> for
                 {
                     let received_count = idty_cert_meta.received_count;
 
-                    // TODO insert `receiver` in distance queue if received_count >= MinCertForUdRight
-                    if received_count >= T::MinCertForUdRight::get() as u32 {
+                    // TODO insert `receiver` in distance queue if received_count >= MinCertForMembership
+                    if received_count >= T::MinCertForMembership::get() as u32 {
                         // TODO insert `receiver` in distance queue
                         if Self::dispath_idty_call(pallet_identity::Call::validate_identity {
                             idty_index: *idty_index,
@@ -247,7 +259,7 @@ impl<T: Config<I>, I: 'static> pallet_certification::traits::OnNewcert<IdtyIndex
                 Self::do_apply_first_issuable_on(receiver);
             }
         } else if pallet_membership::Pallet::<T, I>::pending_membership(receiver).is_some()
-            && receiver_received_count >= T::MinCertForUdRight::get()
+            && receiver_received_count >= T::MinCertForMembership::get()
         {
             // TODO insert `receiver` in distance queue
             Self::dispath_idty_call(pallet_identity::Call::validate_identity {
@@ -272,7 +284,7 @@ impl<T: Config<I>, I: 'static> pallet_certification::traits::OnRemovedCert<IdtyI
         receiver_received_count: u32,
         _expiration: bool,
     ) -> Weight {
-        if receiver_received_count < T::MinCertForUdRight::get() {
+        if receiver_received_count < T::MinCertForMembership::get() {
             // Revoke receiver membership and disable his identity
             if let Err(e) = pallet_membership::Pallet::<T, I>::revoke_membership(
                 RawOrigin::Root.into(),
diff --git a/pallets/duniter-wot/src/mock.rs b/pallets/duniter-wot/src/mock.rs
index 309c3bad63ca308abf91fbfba13b626dd17b73e5..ed754dd40631afed03d9a7cdc2e9a06d766729ba 100644
--- a/pallets/duniter-wot/src/mock.rs
+++ b/pallets/duniter-wot/src/mock.rs
@@ -80,14 +80,14 @@ impl system::Config for Test {
 
 // DuniterWot
 parameter_types! {
-    pub const MinCertForUdRight: u32 = 2;
+    pub const MinCertForMembership: u32 = 2;
     pub const MinCertForCreateIdtyRigh: u32 = 4;
     pub const FirstIssuableOn: u64 = 2;
 }
 
 impl pallet_duniter_wot::Config<Instance1> for Test {
-    type ManageIdentitiesChanges = frame_support::traits::ConstBool<true>;
-    type MinCertForUdRight = MinCertForUdRight;
+    type IsSubWot = frame_support::traits::ConstBool<false>;
+    type MinCertForMembership = MinCertForMembership;
     type MinCertForCreateIdtyRight = MinCertForCreateIdtyRigh;
     type FirstIssuableOn = FirstIssuableOn;
 }
diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs
index 6df203d7366e83016a027da7a37d7271c07d1c8e..a106ad1415d10cc16d9b1f6c0fe195fbe2961577 100644
--- a/runtime/common/src/pallets_config.rs
+++ b/runtime/common/src/pallets_config.rs
@@ -268,8 +268,8 @@ macro_rules! pallets_config {
 		use frame_support::instances::Instance1;
 		impl pallet_duniter_wot::Config<Instance1> for Runtime {
 			type FirstIssuableOn = WotFirstCertIssuableOn;
-			type ManageIdentitiesChanges = frame_support::traits::ConstBool<true>;
-			type MinCertForUdRight = WotMinCertForUdRight;
+			type IsSubWot = frame_support::traits::ConstBool<true>;
+			type MinCertForMembership = WotMinCertForMembership;
 			type MinCertForCreateIdtyRight = WotMinCertForCreateIdtyRight;
 		}
 
diff --git a/runtime/g1/src/parameters.rs b/runtime/g1/src/parameters.rs
index 3bf2b125af0a4a51edb6adae6b535dadfdd6ae7c..96e782125168f9fb23b7023a0f8d07b3b001aa18 100644
--- a/runtime/g1/src/parameters.rs
+++ b/runtime/g1/src/parameters.rs
@@ -98,7 +98,7 @@ parameter_types! {
 
 parameter_types! {
     pub WotFirstCertIssuableOn: BlockNumber = 30* DAYS;
-    pub WotMinCertForUdRight: u8 = 5;
+    pub WotMinCertForMembership: u8 = 5;
     pub MinReceivedCertToBeAbleToIssueCert: u8 = 5;
     pub WotMinCertForCreateIdtyRight: u8 = 5;
 }
diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs
index 0e7a068d444e464322751fe09220d877402075a0..15729d0c7801a132d17cf36c88b593b53d01daa5 100644
--- a/runtime/gdev/src/lib.rs
+++ b/runtime/gdev/src/lib.rs
@@ -167,7 +167,7 @@ common_runtime::pallets_config! {
     pub type UdReevalPeriod = pallet_duniter_test_parameters::UdReevalPeriod<Runtime>;
     pub type UdReevalPeriodInBlocks = pallet_duniter_test_parameters::UdReevalPeriodInBlocks<Runtime>;
     pub type WotFirstCertIssuableOn = pallet_duniter_test_parameters::WotFirstCertIssuableOn<Runtime>;
-    pub type WotMinCertForUdRight = pallet_duniter_test_parameters::WotMinCertForUdRight<Runtime>;
+    pub type WotMinCertForMembership = pallet_duniter_test_parameters::WotMinCertForMembership<Runtime>;
     pub type WotMinCertForCreateIdtyRight = pallet_duniter_test_parameters::WotMinCertForCreateIdtyRight<Runtime>;
 
     impl pallet_duniter_test_parameters::Config for Runtime {
diff --git a/runtime/gtest/src/parameters.rs b/runtime/gtest/src/parameters.rs
index 2674ee5652126d4ffd431fed7f9e14904146b442..c7f7ce47644f143ad6bb6bc19983f8de6a1cb589 100644
--- a/runtime/gtest/src/parameters.rs
+++ b/runtime/gtest/src/parameters.rs
@@ -97,7 +97,7 @@ parameter_types! {
 
 parameter_types! {
     pub WotFirstCertIssuableOn: BlockNumber = DAYS;
-    pub WotMinCertForUdRight: u8 = 5;
+    pub WotMinCertForMembership: u8 = 5;
     pub MinReceivedCertToBeAbleToIssueCert: u8 = 5;
     pub WotMinCertForCreateIdtyRight: u8 = 5;
 }