diff --git a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/action/RestModule.java b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/action/RestModule.java
index 995785400755143ec7938f827afec97dc77d2e3e..fdbff9e287eab47c40059cc18d2338f90128a4fd 100644
--- a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/action/RestModule.java
+++ b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/action/RestModule.java
@@ -33,13 +33,11 @@ import org.elasticsearch.common.inject.Module;
 public class RestModule extends AbstractModule implements Module {
 
     @Override protected void configure() {
-        //bind(RestCurrencyIndexAction.class).asEagerSingleton();
-
+        bind(RestCurrencyIndexAction.class).asEagerSingleton();
         bind(RestMarketRecordIndexAction.class).asEagerSingleton();
+        bind(RestRegistryRecordIndexAction.class).asEagerSingleton();
 
-        //bind(RestRegistryRecordIndexAction.class).asEagerSingleton();
-
-        //bind(RestSecurityGetChallengeAction.class).asEagerSingleton();
-        //bind(RestSecurityAuthAction.class).asEagerSingleton();
+        bind(RestSecurityGetChallengeAction.class).asEagerSingleton();
+        bind(RestSecurityAuthAction.class).asEagerSingleton();
     }
 }
\ No newline at end of file
diff --git a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/node/DuniterNode.java b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/node/DuniterNode.java
index e3cef1a09ab982eb3eb653b4521d708e519c019a..752f4c7ca87d373c6a0d877de5ddf785ff7d8d0b 100644
--- a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/node/DuniterNode.java
+++ b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/node/DuniterNode.java
@@ -17,20 +17,23 @@ import org.elasticsearch.common.settings.Settings;
 public class DuniterNode extends AbstractLifecycleComponent<DuniterNode> {
 
     private final PluginSettings pluginSettings;
+    private final ThreadPool threadPool;
+    private final Injector injector;
 
     @Inject
     public DuniterNode(Settings settings, PluginSettings pluginSettings, ThreadPool threadPool, final Injector injector) {
         super(settings);
         this.pluginSettings = pluginSettings;
+        this.threadPool = threadPool;
+        this.injector = injector;
 
-        threadPool.scheduleOnStarted(() -> {
-            createIndices(injector);
-        });
     }
 
     @Override
     protected void doStart() {
-
+        threadPool.scheduleOnStarted(() -> {
+            createIndices();
+        });
     }
 
     @Override
@@ -43,14 +46,14 @@ public class DuniterNode extends AbstractLifecycleComponent<DuniterNode> {
 
     }
 
-    protected void createIndices(Injector injector) {
-        if (logger.isInfoEnabled()) {
-            logger.info("Creating Duniter indices...");
-        }
+    protected void createIndices() {
 
         boolean reloadIndices = pluginSettings.reloadIndices();
         Peer peer = pluginSettings.checkAndGetPeer();
         if (reloadIndices) {
+            if (logger.isInfoEnabled()) {
+                logger.info("Reloading all Duniter indices...");
+            }
             injector.getInstance(RegistryService.class)
                     .deleteIndex()
                     .createIndexIfNotExists()
@@ -65,6 +68,10 @@ public class DuniterNode extends AbstractLifecycleComponent<DuniterNode> {
                     .indexLastBlocks(peer);
         }
         else {
+            if (logger.isInfoEnabled()) {
+                logger.info("Checking Duniter indices...");
+            }
+
             injector.getInstance(RegistryService.class).createIndexIfNotExists();
 
             injector.getInstance(MarketService.class).createIndexIfNotExists();
diff --git a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/BlockchainService.java b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/BlockchainService.java
index 1840ccf61c6b2a495f55aee9d168cfe2733ccd85..7d654954fdf95349b29d5a59a766ae66bf78d3cc 100644
--- a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/BlockchainService.java
+++ b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/BlockchainService.java
@@ -84,7 +84,7 @@ public class BlockchainService extends AbstractService {
     private static final int SYNC_MISSING_BLOCK_MAX_RETRY = 5;
 
     private BlockchainRemoteService blockchainRemoteService;
-    //private CurrencyRegistryService currencyRegistryService;
+    private RegistryService registryService;
 
     private Gson gson;
 
@@ -97,6 +97,11 @@ public class BlockchainService extends AbstractService {
         });
     }
 
+    @Inject
+    public void setRegistryService(RegistryService registryService) {
+        this.registryService = registryService;
+    }
+
     public BlockchainService indexLastBlocks(Peer peer) {
         return indexLastBlocks(peer, new ProgressionModelImpl());
     }
@@ -124,13 +129,9 @@ public class BlockchainService extends AbstractService {
                     currencyName, pluginSettings.getNodeBmaHost(), pluginSettings.getNodeBmaPort()));
 
             // Create index blockchain if need
-            // FIXME: avoid circular dependency
-            //currencyRegistryService.createIndexIfNotExists();
-
-            //Currency currency = currencyRegistryService.getCurrencyById(currencyName);
-            //if (currency == null) {
-            //    currencyRegistryService.indexCurrencyFromPeer(peer);
-            //}
+            if (!registryService.isCurrencyExists(currencyName)) {
+                registryService.indexCurrencyFromPeer(peer);
+            }
 
             // Check if index exists
             createIndexIfNotExists(currencyName);
diff --git a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/MarketService.java b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/MarketService.java
index 393b06ebfd8d3e858501e96fd146b82860b85c1d..1b9ea79909cee41dc1a5180413dbbdc50874b81e 100644
--- a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/MarketService.java
+++ b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/MarketService.java
@@ -187,7 +187,7 @@ public class MarketService extends AbstractService {
 
     public void fillRecordCategories() {
         if (logger.isDebugEnabled()) {
-            logger.debug(String.format("[%s/%s] fill data", INDEX, RECORD_CATEGORY_TYPE));
+            logger.debug(String.format("[%s/%s] Fill data", INDEX, RECORD_CATEGORY_TYPE));
         }
 
         // Insert categories
diff --git a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/RegistryService.java b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/RegistryService.java
index 009a031a047a58afd583da15b4b598c1a9c26f0f..c3324b964ae4d6b2ff8a909b370423331d1a2699 100644
--- a/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/RegistryService.java
+++ b/duniter4j-elasticsearch/src/main/java/org/duniter/elasticsearch/service/RegistryService.java
@@ -44,6 +44,7 @@ import org.duniter.core.client.service.bma.WotRemoteService;
 import org.duniter.core.exception.TechnicalException;
 import org.duniter.core.service.CryptoService;
 import org.duniter.core.util.ObjectUtils;
+import org.duniter.core.util.StringUtils;
 import org.duniter.elasticsearch.PluginSettings;
 import org.duniter.elasticsearch.exception.AccessDeniedException;
 import org.duniter.elasticsearch.exception.DuplicateIndexIdException;
@@ -168,6 +169,11 @@ public class RegistryService extends AbstractService {
         return this;
     }
 
+    public boolean isCurrencyExists(String currencyName) {
+        String pubkey = getSenderPubkeyByCurrencyId(currencyName);
+        return !StringUtils.isEmpty(pubkey);
+    }
+
     /**
      *
      * @param recordJson
diff --git a/duniter4j-elasticsearch/src/test/es-home/config/elasticsearch.yml b/duniter4j-elasticsearch/src/test/es-home/config/elasticsearch.yml
index 24bd0f68fbf768dc815a1d37660e381f76ec0bc2..e82fb87e9c4535dd09e6bac5afac6ccce3aa3857 100644
--- a/duniter4j-elasticsearch/src/test/es-home/config/elasticsearch.yml
+++ b/duniter4j-elasticsearch/src/test/es-home/config/elasticsearch.yml
@@ -57,8 +57,8 @@ cluster.name: duniter4j-elasticsearch
 # Set a custom port for HTTP:
 #
 # http.port: 9200
-#http.port: 9200
-http.cors.enabled: true
+
+http.cors.enabled: false
 #
 # For more information, see the documentation at:
 # <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
@@ -105,6 +105,6 @@ duniter.host: cgeek.fr
 duniter.port: 9330
 
 duniter.string.analyzer: french
-duniter.indices.reload: true
+#duniter.indices.reload: true
 
 #duniter.dev.enable: true
\ No newline at end of file
diff --git a/duniter4j-elasticsearch/src/test/java/org/duniter/elasticsearch/service/blockchain/BlockIndexerServiceTest.java b/duniter4j-elasticsearch/src/test/java/org/duniter/elasticsearch/service/BlockchainServiceTest.java
similarity index 96%
rename from duniter4j-elasticsearch/src/test/java/org/duniter/elasticsearch/service/blockchain/BlockIndexerServiceTest.java
rename to duniter4j-elasticsearch/src/test/java/org/duniter/elasticsearch/service/BlockchainServiceTest.java
index dde01c73ee4e58b4afd72dec1a2e063580a509d4..70d1553b401f8d6ade2fa90bbd0115a244e80c9d 100644
--- a/duniter4j-elasticsearch/src/test/java/org/duniter/elasticsearch/service/blockchain/BlockIndexerServiceTest.java
+++ b/duniter4j-elasticsearch/src/test/java/org/duniter/elasticsearch/service/BlockchainServiceTest.java
@@ -1,4 +1,4 @@
-package org.duniter.elasticsearch.service.blockchain;
+package org.duniter.elasticsearch.service;
 
 /*
  * #%L
@@ -28,16 +28,15 @@ import org.duniter.core.client.model.bma.BlockchainBlock;
 import org.duniter.core.client.model.local.Peer;
 import org.duniter.core.client.service.bma.BlockchainRemoteService;
 import org.duniter.elasticsearch.TestResource;
-import org.duniter.elasticsearch.service.BlockchainService;
 import org.junit.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.List;
 
-public class BlockIndexerServiceTest {
+public class BlockchainServiceTest {
 
-	private static final Logger log = LoggerFactory.getLogger(BlockIndexerServiceTest.class);
+	private static final Logger log = LoggerFactory.getLogger(BlockchainServiceTest.class);
 
 	@ClassRule
 	public static final TestResource resource = TestResource.create();