diff --git a/rust-libs/duniter-server/src/legacy/dunp.rs b/rust-libs/duniter-server/src/legacy/dunp.rs
index d153e53b830a85136ed36faa98b6c81b3661f0ac..99f54a6fbe0b43271ee70e62ae246eed5236a50c 100644
--- a/rust-libs/duniter-server/src/legacy/dunp.rs
+++ b/rust-libs/duniter-server/src/legacy/dunp.rs
@@ -16,6 +16,23 @@
 use crate::*;
 
 impl DuniterServer {
+    pub fn get_self_endpoints(&self) -> anyhow::Result<Vec<Endpoint>> {
+        // Do not get rust endpoints on js tests or when gva is disabled
+        if std::env::var_os("DUNITER_JS_TESTS") != Some("yes".into()) && self.conf.gva.is_some() {
+            let (sender, recv) = flume::bounded(1);
+            loop {
+                self.global_sender
+                    .send(GlobalBackGroundTaskMsg::GetSelfEndpoints(sender.clone()))?;
+                if let Some(self_endpoints) = recv.recv()? {
+                    break Ok(self_endpoints);
+                } else {
+                    std::thread::sleep(std::time::Duration::from_millis(100));
+                }
+            }
+        } else {
+            Ok(vec![])
+        }
+    }
     pub fn receive_new_heads(
         &self,
         heads: Vec<(
diff --git a/rust-libs/duniter-server/src/legacy/txs_mempool.rs b/rust-libs/duniter-server/src/legacy/txs_mempool.rs
index 3a484b9a20e9b8ac0ee8326d0d879d1be3f82ec6..7dc898088fe2955b10b065054ee3b8ac5f39b77c 100644
--- a/rust-libs/duniter-server/src/legacy/txs_mempool.rs
+++ b/rust-libs/duniter-server/src/legacy/txs_mempool.rs
@@ -40,23 +40,6 @@ impl DuniterServer {
             .execute(move |dbs| txs_mempool.add_pending_tx_force(&dbs.txs_mp_db, &tx))
             .expect("dbs pool disconnected")
     }
-    pub fn get_self_endpoints(&self) -> anyhow::Result<Vec<Endpoint>> {
-        // Do not get rust endpoints on js tests
-        if std::env::var_os("DUNITER_JS_TESTS") != Some("yes".into()) {
-            let (sender, recv) = flume::bounded(1);
-            loop {
-                self.global_sender
-                    .send(GlobalBackGroundTaskMsg::GetSelfEndpoints(sender.clone()))?;
-                if let Some(self_endpoints) = recv.recv()? {
-                    break Ok(self_endpoints);
-                } else {
-                    std::thread::sleep(std::time::Duration::from_millis(100));
-                }
-            }
-        } else {
-            Ok(vec![])
-        }
-    }
     pub fn get_mempool_txs_free_rooms(&self) -> KvResult<usize> {
         let txs_mempool = self.txs_mempool;
         self.dbs_pool