diff --git a/module/src/lib.rs b/module/src/lib.rs
index 7ef782f4cadc0d0162b57dc663ca4d72c8e9ba66..b0bf725ab49d9868f31ce563713db6028d2c1845 100644
--- a/module/src/lib.rs
+++ b/module/src/lib.rs
@@ -85,7 +85,7 @@ pub trait DuniterModule: 'static + Sized {
 
     async fn start(self) -> anyhow::Result<()>;
 
-    // Needed for BMA only, will be removed when the migration is complete.
+    // Needed for BMA only
     #[doc(hidden)]
     fn get_transactions_history_for_bma(
         _dbs_pool: &fast_threadpool::ThreadPoolSyncHandler<SharedDbs<FileBackend>>,
@@ -94,7 +94,28 @@ pub trait DuniterModule: 'static + Sized {
     ) -> KvResult<Option<TxsHistoryForBma>> {
         Ok(None)
     }
-    // Needed for BMA only, will be removed when the migration is complete.
+
+    // Needed for BMA only
+    #[doc(hidden)]
+    fn get_written_transactions_for_bma(
+        _profile_path_opt: Option<&Path>,
+        _pubkey: PublicKey,
+        _start_block: u32,
+        _end_block: u32,
+    ) -> KvResult<Option<TxsHistoryForBma>> {
+        Ok(None)
+    }
+
+    // Needed for BMA only
+    #[doc(hidden)]
+    fn get_pending_transactions_for_bma(
+        _dbs_pool: &fast_threadpool::ThreadPoolSyncHandler<SharedDbs<FileBackend>>,
+        _pubkey: PublicKey,
+    ) -> KvResult<Option<TxsHistoryForBma>> {
+        Ok(None)
+    }
+
+    // Needed for BMA only
     #[doc(hidden)]
     fn get_tx_by_hash(
         _dbs_pool: &fast_threadpool::ThreadPoolSyncHandler<SharedDbs<FileBackend>>,
@@ -269,7 +290,7 @@ macro_rules! plug_duniter_modules {
                 Ok(())
             }
 
-            // Needed for BMA only, will be removed when the migration is complete.
+            // Needed for BMA only
             #[allow(dead_code)]
             #[doc(hidden)]
             fn get_transactions_history_for_bma(
@@ -284,7 +305,40 @@ macro_rules! plug_duniter_modules {
                 )*
                 Ok(TxsHistoryForBma::default())
             }
-            // Needed for BMA only, will be removed when the migration is complete.
+
+            // Needed for BMA only
+            #[allow(dead_code)]
+            #[doc(hidden)]
+            fn get_written_transactions_for_bma(
+                profile_path_opt: Option<&Path>,
+                pubkey: PublicKey,
+                start_block: u32,
+                end_block: u32,
+            ) -> KvResult<TxsHistoryForBma> {
+                $(
+                    if let Some(txs_history) = <$M>::get_written_transactions_for_bma(profile_path_opt, pubkey, start_block, end_block)? {
+                        return Ok(txs_history);
+                    }
+                )*
+                Ok(TxsHistoryForBma::default())
+            }
+
+            // Needed for BMA only
+            #[allow(dead_code)]
+            #[doc(hidden)]
+            fn get_pending_transactions_for_bma(
+                dbs_pool: &fast_threadpool::ThreadPoolSyncHandler<SharedDbs<FileBackend>>,
+                pubkey: PublicKey,
+            ) -> KvResult<TxsHistoryForBma> {
+                $(
+                    if let Some(txs_history) = <$M>::get_pending_transactions_for_bma(dbs_pool, pubkey)? {
+                        return Ok(txs_history);
+                    }
+                )*
+                Ok(TxsHistoryForBma::default())
+            }
+
+            // Needed for BMA only
             #[allow(dead_code)]
             #[doc(hidden)]
             fn get_tx_by_hash(