diff --git a/src/init.cpp b/src/init.cpp
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -2421,21 +2421,6 @@
     }
 #endif
 
-    // Step 6.5 (I guess ?): Initialize Avalanche.
-    bilingual_str avalancheError;
-    g_avalanche = avalanche::Processor::MakeProcessor(
-        args, *node.chain, node.connman.get(), chainman, node.mempool.get(),
-        *node.scheduler, avalancheError);
-    if (!g_avalanche) {
-        InitError(avalancheError);
-        return false;
-    }
-
-    if (isAvalancheEnabled(args) &&
-        g_avalanche->isAvalancheServiceAvailable()) {
-        nLocalServices = ServiceFlags(nLocalServices | NODE_AVALANCHE);
-    }
-
     // Step 7: load block chain
 
     fReindex = args.GetBoolArg("-reindex", false);
@@ -2617,6 +2602,21 @@
     // We do this by default to avoid confusion with BTC addresses.
     config.SetCashAddrEncoding(args.GetBoolArg("-usecashaddr", true));
 
+    // Step 7.5 (I guess ?): Initialize Avalanche.
+    bilingual_str avalancheError;
+    g_avalanche = avalanche::Processor::MakeProcessor(
+        args, *node.chain, node.connman.get(), chainman, node.mempool.get(),
+        *node.scheduler, avalancheError);
+    if (!g_avalanche) {
+        InitError(avalancheError);
+        return false;
+    }
+
+    if (isAvalancheEnabled(args) &&
+        g_avalanche->isAvalancheServiceAvailable()) {
+        nLocalServices = ServiceFlags(nLocalServices | NODE_AVALANCHE);
+    }
+
     // Step 8: load indexers
     if (args.GetBoolArg("-txindex", DEFAULT_TXINDEX)) {
         if (const auto error{CheckLegacyTxindex(