diff --git a/pallets/duniter-wot/src/lib.rs b/pallets/duniter-wot/src/lib.rs
index 8a9b2822a9470cc461e60be975a71d766f5c18cc..4fff3f0f0d5157a18b4c487dae43bb2bc9a71c41 100644
--- a/pallets/duniter-wot/src/lib.rs
+++ b/pallets/duniter-wot/src/lib.rs
@@ -337,7 +337,7 @@ where
             }
             sp_membership::Event::<IdtyIndex>::MembershipTerminated(_) => {}
             sp_membership::Event::<IdtyIndex>::MembershipRenewed(_) => {}
-            sp_membership::Event::<IdtyIndex>::MembershipRequested(_) => {}
+            sp_membership::Event::<IdtyIndex>::PendingMembershipAdded(_) => {}
             sp_membership::Event::<IdtyIndex>::PendingMembershipExpired(idty_index) => {
                 Self::dispatch_idty_call(pallet_identity::Call::force_remove_identity {
                     idty_index: *idty_index,
diff --git a/pallets/duniter-wot/src/tests.rs b/pallets/duniter-wot/src/tests.rs
index 14b50845dbc2e1313f78fef7bed690000718fbad..b26cbd841113b1325788df7d06056d33ce5c58df 100644
--- a/pallets/duniter-wot/src/tests.rs
+++ b/pallets/duniter-wot/src/tests.rs
@@ -84,7 +84,12 @@ fn test_join_smiths() {
             4
         ),));
         System::assert_has_event(RuntimeEvent::SmithMembership(
-            pallet_membership::Event::MembershipRequested { member: 4 },
+            pallet_membership::Event::PendingMembershipAdded {
+                member: 4,
+                expire_on: 2
+                    + <Test as pallet_membership::Config<Instance2>>::PendingMembershipPeriod::get(
+                    ),
+            },
         ));
 
         // Then, Alice should be able to send a smith cert to Dave
@@ -99,7 +104,11 @@ fn test_join_smiths() {
         run_to_block(4);
         assert_ok!(SmithMembership::claim_membership(RuntimeOrigin::signed(4),));
         System::assert_has_event(RuntimeEvent::SmithMembership(
-            pallet_membership::Event::MembershipAcquired { member: 4 },
+            pallet_membership::Event::MembershipAcquired {
+                member: 4,
+                expire_on: 4
+                    + <Test as pallet_membership::Config<Instance2>>::MembershipPeriod::get(),
+            },
         ));
     });
 }
@@ -230,7 +239,11 @@ fn test_new_idty_validation() {
         run_to_block(5);
         assert_ok!(Identity::validate_identity(RuntimeOrigin::signed(42), 6));
         System::assert_has_event(RuntimeEvent::Membership(
-            pallet_membership::Event::MembershipAcquired { member: 6 },
+            pallet_membership::Event::MembershipAcquired {
+                member: 6,
+                expire_on: 5
+                    + <Test as pallet_membership::Config<Instance1>>::MembershipPeriod::get(),
+            },
         ));
         System::assert_has_event(RuntimeEvent::Identity(
             pallet_identity::Event::IdtyValidated { idty_index: 6 },
@@ -269,7 +282,12 @@ fn test_confirm_idty_ok() {
             IdtyName::from("Ferdie"),
         ));
         System::assert_has_event(RuntimeEvent::Membership(
-            pallet_membership::Event::MembershipRequested { member: 6 },
+            pallet_membership::Event::PendingMembershipAdded {
+                member: 6,
+                expire_on: 3
+                    + <Test as pallet_membership::Config<Instance1>>::PendingMembershipPeriod::get(
+                    ),
+            },
         ));
         System::assert_has_event(RuntimeEvent::Identity(
             pallet_identity::Event::IdtyConfirmed {
diff --git a/pallets/membership/src/benchmarking.rs b/pallets/membership/src/benchmarking.rs
index ccc88cf3cdd60f55ea55898c02aeec8688831638..424861dd757df8c5e29ada5f413d88876d71149a 100644
--- a/pallets/membership/src/benchmarking.rs
+++ b/pallets/membership/src/benchmarking.rs
@@ -22,7 +22,7 @@ use frame_benchmarking::benchmarks_instance_pallet;
 use frame_support::dispatch::UnfilteredDispatchable;
 use frame_system::pallet_prelude::BlockNumberFor;
 use frame_system::RawOrigin;
-use sp_runtime::traits::Convert;
+use sp_runtime::traits::{Convert, One};
 
 #[cfg(test)]
 use maplit::btreemap;
@@ -53,7 +53,7 @@ benchmarks_instance_pallet! {
     }
     verify {
         if T::CheckMembershipCallAllowed::check_idty_allowed_to_request_membership(&idty).is_ok() {
-            assert_has_event::<T, I>(Event::<T, I>::MembershipRequested{member: idty}.into());
+            assert_has_event::<T, I>(Event::<T, I>::PendingMembershipAdded{member: idty, expire_on: BlockNumberFor::<T>::one() + T::PendingMembershipPeriod::get()}.into());
         }
     }
     claim_membership {
@@ -65,7 +65,7 @@ benchmarks_instance_pallet! {
         T::BenchmarkSetupHandler::force_status_ok(&idty, &caller);
     }: _<T::RuntimeOrigin>(caller_origin)
     verify {
-        assert_has_event::<T, I>(Event::<T, I>::MembershipAcquired{member: idty}.into());
+        assert_has_event::<T, I>(Event::<T, I>::MembershipAcquired{member: idty, expire_on: BlockNumberFor::<T>::one() + T::MembershipPeriod::get()}.into());
     }
     renew_membership {
         let idty: T::IdtyId = 3.into();
@@ -74,7 +74,7 @@ benchmarks_instance_pallet! {
         T::BenchmarkSetupHandler::force_status_ok(&idty, &caller);
     }: _<T::RuntimeOrigin>(caller_origin)
     verify {
-        assert_has_event::<T, I>(Event::<T, I>::MembershipRenewed{member: idty}.into());
+        assert_has_event::<T, I>(Event::<T, I>::MembershipAcquired{member: idty, expire_on: BlockNumberFor::<T>::one() + T::MembershipPeriod::get()}.into());
     }
     revoke_membership {
         let idty: T::IdtyId = 3.into();
diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs
index bdb9f07b3dfb3745ee06b13ecf33f0801464b03a..60c346a2f0fcdeebcf24696106637cae2ce3100d 100644
--- a/pallets/membership/src/lib.rs
+++ b/pallets/membership/src/lib.rs
@@ -162,16 +162,20 @@ pub mod pallet {
     #[pallet::generate_deposit(pub(super) fn deposit_event)]
     pub enum Event<T: Config<I>, I: 'static = ()> {
         /// A membership was acquired.
-        MembershipAcquired { member: T::IdtyId },
+        MembershipAcquired {
+            member: T::IdtyId,
+            expire_on: BlockNumberFor<T>,
+        },
         /// A membership was terminated.
         MembershipTerminated {
             member: T::IdtyId,
             reason: MembershipTerminationReason,
         },
-        /// A membership was renewed.
-        MembershipRenewed { member: T::IdtyId },
-        /// A membership was requested.
-        MembershipRequested { member: T::IdtyId },
+        /// A pending membership was added.
+        PendingMembershipAdded {
+            member: T::IdtyId,
+            expire_on: BlockNumberFor<T>,
+        },
         /// A pending membership request has expired.
         PendingMembershipExpired { member: T::IdtyId },
     }
@@ -255,7 +259,6 @@ pub mod pallet {
             // apply phase
             Self::unschedule_membership_expiry(idty_id, membership_data.expire_on);
             Self::insert_membership_and_schedule_expiry(idty_id);
-            Self::deposit_event(Event::MembershipRenewed { member: idty_id });
             T::OnEvent::on_event(&sp_membership::Event::MembershipRenewed(idty_id));
 
             Ok(().into())
@@ -322,6 +325,10 @@ pub mod pallet {
 
             Membership::<T, I>::insert(idty_id, MembershipData { expire_on });
             MembershipsExpireOn::<T, I>::append(expire_on, idty_id);
+            Self::deposit_event(Event::MembershipAcquired {
+                member: idty_id,
+                expire_on,
+            });
         }
 
         /// perform the membership request
@@ -340,8 +347,11 @@ pub mod pallet {
             // apply membership request
             PendingMembership::<T, I>::insert(idty_id, ());
             PendingMembershipsExpireOn::<T, I>::append(expire_on, idty_id);
-            Self::deposit_event(Event::MembershipRequested { member: idty_id });
-            T::OnEvent::on_event(&sp_membership::Event::MembershipRequested(idty_id));
+            Self::deposit_event(Event::PendingMembershipAdded {
+                member: idty_id,
+                expire_on,
+            });
+            T::OnEvent::on_event(&sp_membership::Event::PendingMembershipAdded(idty_id));
 
             Ok(().into())
         }
@@ -359,7 +369,6 @@ pub mod pallet {
         fn do_claim_membership(idty_id: T::IdtyId) {
             if PendingMembership::<T, I>::take(idty_id).is_some() {
                 Self::insert_membership_and_schedule_expiry(idty_id);
-                Self::deposit_event(Event::MembershipAcquired { member: idty_id });
                 T::OnEvent::on_event(&sp_membership::Event::MembershipAcquired(idty_id));
             }
             // else { unreachable if check_allowed_to_claim called before }
diff --git a/pallets/membership/src/tests.rs b/pallets/membership/src/tests.rs
index fe969df974eecf10be8d678a00ccfa4218bf2411..46692362e4e6cd1b7b37b8e9dce425600b723a69 100644
--- a/pallets/membership/src/tests.rs
+++ b/pallets/membership/src/tests.rs
@@ -108,8 +108,9 @@ fn test_membership_renewal() {
         assert_ok!(DefaultMembership::renew_membership(RuntimeOrigin::signed(
             0
         ),));
-        System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipRenewed {
+        System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipAcquired {
             member: 0,
+            expire_on: 2 + <Test as crate::Config>::MembershipPeriod::get(),
         }));
         // membership should not expire at block 3 to 6 because it has been renewed
         run_to_block(3);
@@ -161,8 +162,9 @@ fn test_membership_revocation() {
         assert_ok!(DefaultMembership::request_membership(
             RuntimeOrigin::signed(0),
         ));
-        System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipRequested {
+        System::assert_has_event(RtEvent::DefaultMembership(Event::PendingMembershipAdded {
             member: 0,
+            expire_on: 5 + <Test as crate::Config>::PendingMembershipPeriod::get(),
         }));
     });
 }
@@ -176,8 +178,9 @@ fn test_pending_membership_expiration() {
         assert_ok!(DefaultMembership::request_membership(
             RuntimeOrigin::signed(0),
         ));
-        System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipRequested {
+        System::assert_has_event(RtEvent::DefaultMembership(Event::PendingMembershipAdded {
             member: 0,
+            expire_on: 1 + <Test as crate::Config>::PendingMembershipPeriod::get(),
         }));
 
         // Then, idty 0 shold still in pending memberships until PendingMembershipPeriod ended
@@ -206,8 +209,9 @@ fn test_membership_workflow() {
         assert_ok!(DefaultMembership::request_membership(
             RuntimeOrigin::signed(0),
         ));
-        System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipRequested {
+        System::assert_has_event(RtEvent::DefaultMembership(Event::PendingMembershipAdded {
             member: 0,
+            expire_on: 1 + <Test as crate::Config>::PendingMembershipPeriod::get(),
         }));
 
         // - Then, idty 0 claim membership
@@ -217,6 +221,7 @@ fn test_membership_workflow() {
         ),));
         System::assert_has_event(RtEvent::DefaultMembership(Event::MembershipAcquired {
             member: 0,
+            expire_on: 2 + <Test as crate::Config>::MembershipPeriod::get(),
         }));
 
         // - Then, idty 0 claim renewal, should success
diff --git a/primitives/membership/src/lib.rs b/primitives/membership/src/lib.rs
index 042c4835e8ea5e9c80a402af9e090e0cc93f6d21..4fb1629f63128d311ae7a1ca5293f9ad620f97ff 100644
--- a/primitives/membership/src/lib.rs
+++ b/primitives/membership/src/lib.rs
@@ -35,7 +35,7 @@ pub enum Event<IdtyId> {
     /// A membership has renewed
     MembershipRenewed(IdtyId),
     /// An identity requested membership
-    MembershipRequested(IdtyId),
+    PendingMembershipAdded(IdtyId),
     /// A pending membership request has expired
     PendingMembershipExpired(IdtyId),
 }
diff --git a/runtime/common/src/handlers.rs b/runtime/common/src/handlers.rs
index b91e079537c82410cbba9a5c0c1a418fee4bbe5b..89263be4454ca0e70edb7a3471fd148181067fe1 100644
--- a/runtime/common/src/handlers.rs
+++ b/runtime/common/src/handlers.rs
@@ -103,7 +103,7 @@ impl<
             }
             // in other case, ther is nothing to do
             sp_membership::Event::MembershipRenewed(_)
-            | sp_membership::Event::MembershipRequested(_)
+            | sp_membership::Event::PendingMembershipAdded(_)
             | sp_membership::Event::PendingMembershipExpired(_) => (),
         });
         Inner::on_event(membership_event)
diff --git a/runtime/gdev/tests/integration_tests.rs b/runtime/gdev/tests/integration_tests.rs
index c4c53d658d94da3709717caeafb744af09bf13a6..ca2fc3bc59deff6fd67085db81889ebc5c15108c 100644
--- a/runtime/gdev/tests/integration_tests.rs
+++ b/runtime/gdev/tests/integration_tests.rs
@@ -370,7 +370,12 @@ fn test_validate_identity_when_claim() {
             ));
 
             System::assert_has_event(RuntimeEvent::Membership(
-                pallet_membership::Event::MembershipAcquired { member: 5 },
+                pallet_membership::Event::MembershipAcquired {
+                    member: 5,
+                    expire_on: 76
+                        + <Runtime as pallet_membership::Config<Instance1>>::MembershipPeriod::get(
+                        ),
+                },
             ));
 
             // ferdie can not validate eve identity because already validated
@@ -458,7 +463,12 @@ fn test_membership_renewal() {
                 frame_system::RawOrigin::Signed(AccountKeyring::Alice.to_account_id()).into(),
             ));
             System::assert_has_event(RuntimeEvent::Membership(
-                pallet_membership::Event::MembershipRenewed { member: 1 },
+                pallet_membership::Event::MembershipAcquired {
+                    member: 1,
+                    expire_on: 76
+                        + <Runtime as pallet_membership::Config<Instance1>>::MembershipPeriod::get(
+                        ),
+                },
             ));
 
             // renew at block 77
@@ -467,7 +477,12 @@ fn test_membership_renewal() {
                 frame_system::RawOrigin::Signed(AccountKeyring::Alice.to_account_id()).into(),
             ));
             System::assert_has_event(RuntimeEvent::Membership(
-                pallet_membership::Event::MembershipRenewed { member: 1 },
+                pallet_membership::Event::MembershipAcquired {
+                    member: 1,
+                    expire_on: 77
+                        + <Runtime as pallet_membership::Config<Instance1>>::MembershipPeriod::get(
+                        ),
+                },
             ));
 
             // should expire at block 177 = 77+100
@@ -611,7 +626,11 @@ fn test_ud_claimed_membership_on_and_off() {
             frame_system::RawOrigin::Signed(AccountKeyring::Alice.to_account_id()).into()
         ));
         System::assert_has_event(RuntimeEvent::Membership(
-            pallet_membership::Event::MembershipAcquired { member: 1 },
+            pallet_membership::Event::MembershipAcquired {
+                member: 1,
+                expire_on: 14
+                    + <Runtime as pallet_membership::Config<Instance1>>::MembershipPeriod::get(),
+            },
         ));
 
         // UD number 3