diff --git a/app/config.json b/app/config.json
index 0cf86cf4dabe2d4f1c489e44408075278f362350..5faac09adf145143f845aadf1e66726ae883d660 100644
--- a/app/config.json
+++ b/app/config.json
@@ -33,7 +33,7 @@
     "timeWarningExpire": 7776000,
     "useLocalStorage": false,
     "useRelative": true,
-    "initPhase": true,
+    "initPhase": false,
     "node": {
       "host": "duniter.le-sou.org",
       "port": "9600"
@@ -57,10 +57,10 @@
     "timeWarningExpire": 7776000,
     "useLocalStorage": true,
     "useRelative": true,
-    "initPhase": true,
+    "initPhase": false,
     "node": {
       "host": "192.168.0.28",
-      "port": "9600"
+      "port": "9604"
     },
     "plugins":{
       "es": {
diff --git a/www/js/config.js b/www/js/config.js
index 7c374d8c252f429a9bf0bcd47c12b4b89349b039..6101ab27fa314dce497d4ed332afaae57e09b13c 100644
--- a/www/js/config.js
+++ b/www/js/config.js
@@ -11,27 +11,27 @@ angular.module("cesium.config", [])
 .constant("csConfig", {
 	"cacheTimeMs": 60000,
 	"fallbackLanguage": "en",
-	"rememberMe": false,
+	"rememberMe": true,
 	"showUDHistory": false,
-	"timeout": 4000,
+	"timeout": 6000,
 	"timeWarningExpireMembership": 5184000,
 	"timeWarningExpire": 7776000,
-	"useLocalStorage": false,
+	"useLocalStorage": true,
 	"useRelative": true,
-	"initPhase": false,
+	"initPhase": true,
 	"node": {
-		"host": "test-net.duniter.fr",
-		"port": "9201"
+		"host": "192.168.0.28",
+		"port": "9604"
 	},
 	"plugins": {
 		"es": {
-			"enable": true,
-			"host": "data.duniter.fr",
-			"port": "80"
+			"enable": false,
+			"host": "192.168.0.5",
+			"port": "9203"
 		}
 	},
 	"version": "0.3.13",
-	"build": "2016-10-02T06:19:51.847Z",
+	"build": "2016-10-05T06:32:42.629Z",
 	"newIssueUrl": "https://github.com/duniter/cesium/issues/new?labels=bug"
 })
 
diff --git a/www/js/controllers/currency-controllers.js b/www/js/controllers/currency-controllers.js
index 4e63e269ea15630df1a5f198bf129f5559f22738..8d7ef0c8165c704fd847afb816dc2b8c1f1d8219 100644
--- a/www/js/controllers/currency-controllers.js
+++ b/www/js/controllers/currency-controllers.js
@@ -104,7 +104,7 @@ function CurrencyViewController($scope, $q, $translate, $timeout, BMA, UIUtils,
   $scope.dt = 0;
   $scope.sigQty = 0;
   $scope.sigStock = 0;
-  $scope.time  = 0;
+  $scope.medianTime  = 0;
   $scope.difficulty  = 0;
   $scope.Nprev = 0;
 
@@ -141,11 +141,14 @@ function CurrencyViewController($scope, $q, $translate, $timeout, BMA, UIUtils,
     UIUtils.loading.show();
 
     if ($scope.loadingPeers){
-      csNetwork.start($scope.node, false/*waitAllPeers*/)
-        .then(function(peers) {
-          $scope.peers = peers;
-          $scope.waitLoadingPeersFinish();
-        });
+      csNetwork.start($scope.node);
+      // Catch event on new peers
+      csNetwork.api.data.on.changed($scope, function(data){
+        $timeout(function() {
+          console.debug("Updating UI Peers");
+          $scope.peers = data.peers;
+        }, 100);
+      });
       $scope.$on('$destroy', function(){
         csNetwork.close();
       });
@@ -177,14 +180,14 @@ function CurrencyViewController($scope, $q, $translate, $timeout, BMA, UIUtils,
         .then(function(block){
           M = block.monetaryMass;
           $scope.N = block.membersCount;
-          $scope.time  = moment(block.medianTime*1000).format($scope.datePattern);
+          $scope.medianTime  = block.medianTime;
           $scope.difficulty  = block.powMin;
         })
         .catch(function(err){
           // Special case for currency init (root block not exists): use fixed values
           if (err && err.ucode == BMA.errorCodes.NO_CURRENT_BLOCK) {
             $scope.N = 0;
-            $scope.time = Math.trunc(new Date().getTime() / 1000);
+            $scope.medianTime = Math.trunc(new Date().getTime() / 1000);
             $scope.difficulty  = 0;
             return;
           }
@@ -254,14 +257,7 @@ function CurrencyViewController($scope, $q, $translate, $timeout, BMA, UIUtils,
     .then(function(){
       // Network
       $scope.loadingPeers = true;
-      csNetwork.refreshPeers(false)
-        .then(function(peers) {
-          $scope.peers = peers;
-          $scope.waitLoadingPeersFinish();
-        })
-        .catch(function() {
-          $scope.loadingPeers = false;
-        });
+      csNetwork.refreshPeers();
     });
   };
 
diff --git a/www/js/services/network-services.js b/www/js/services/network-services.js
index c768c06f7277671b421112bf98ee9180ae8ae90e..8222cd87fe5d9b4a5e639a4a03983e129235771b 100644
--- a/www/js/services/network-services.js
+++ b/www/js/services/network-services.js
@@ -8,7 +8,7 @@ angular.module('cesium.network.services', ['ngResource', 'ngApi', 'cesium.bma.se
 
     var
       interval,
-      //api = new Api(this, "csNetwork-" + id),
+      api = new Api(this, "csNetwork-" + id),
 
       data = {
         bma: null,
@@ -121,65 +121,52 @@ angular.module('cesium.network.services', ['ngResource', 'ngApi', 'cesium.bma.se
         }
       },
 
-      refreshPeers = function(waitAllPeers) {
-        return $q(function(resolve, reject){
-          if (interval) {
+      refreshPeers = function() {
+        if (interval) {
+          $interval.cancel(interval);
+        }
+
+        interval = $interval(function() {
+          console.debug('[network] check if finish...');
+          if (data.newPeers.length) {
+            data.peers = data.peers.concat(data.newPeers.splice(0));
+            console.debug('[network] New peers found: sort and ad them to result...');
+            sortPeers();
+            api.data.raise.changed(data); // send event to plugins
+          } else if (data.updatingPeers && !data.searchingPeersOnNetwork) {
+            console.debug('[network] Finish : all peers found. Stopping new peers check.');
+            // The peer lookup end, we can make a clean final report
+            sortPeers();
+            data.updatingPeers = false;
+            api.data.raise.changed(data); // send event to plugins
             $interval.cancel(interval);
           }
+        }, 1000);
 
-          var resolved = false;
-
-          interval = $interval(function() {
-            console.debug('[network] check if finish...');
-            if (data.newPeers.length) {
-              data.peers = data.peers.concat(data.newPeers.splice(0));
-              console.debug('[network] New peers found: sort and ad them to result...');
-              sortPeers();
-              if (!waitAllPeers) {
-                console.debug('[network] Returning to main process (peers will continue to be updating in background)');
-                if (!resolved) {
-                  resolved = true;
-                  resolve(data.peers);
-                }
-              }
-            } else if (data.updatingPeers && !data.searchingPeersOnNetwork) {
-              console.debug('[network] Finish : all peers found. Stopping new peers check.');
-              // The peer lookup end, we can make a clean final report
-              sortPeers();
-              data.updatingPeers = false;
-              if (!resolved) {
-                console.debug('[network] refresh peer finished');
-                resolve(data.peers);
-              }
-              $interval.cancel(interval);
-            }
-          }, 1000);
-
-          data.knownPeers = {};
-          data.peers = [];
-          data.searchingPeersOnNetwork = true;
-          data.updatingPeers = true;
-          return data.bma.wot.member.uids()
-            .then(function(uids){
-              data.uidsByPubkeys = uids;
-              return data.bma.network.peering.peers({ leaves: true });
-            })
-            .then(function(res){
-              return $q.all(res.leaves.map(function(leaf) {
-                return data.bma.network.peering.peers({ leaf: leaf })
-                  .then(function(subres){
-                    var peer = subres.leaf.value;
-                    processPeer(peer);
-                  });
-              }))
-                .then(function(){
-                  data.searchingPeersOnNetwork = false;
+        data.knownPeers = {};
+        data.peers = [];
+        data.searchingPeersOnNetwork = true;
+        data.updatingPeers = true;
+        return data.bma.wot.member.uids()
+          .then(function(uids){
+            data.uidsByPubkeys = uids;
+            return data.bma.network.peering.peers({ leaves: true });
+          })
+          .then(function(res){
+            return $q.all(res.leaves.map(function(leaf) {
+              return data.bma.network.peering.peers({ leaf: leaf })
+                .then(function(subres){
+                  var peer = subres.leaf.value;
+                  processPeer(peer);
                 });
-            })
-            .catch(function(err) {
-              data.searchingPeersOnNetwork = false;
-            });
-        });
+            }))
+              .then(function(){
+                data.searchingPeersOnNetwork = false;
+              });
+          })
+          .catch(function(err) {
+            data.searchingPeersOnNetwork = false;
+          });
       },
 
       startListeningOnSocket = function() {
@@ -263,7 +250,7 @@ angular.module('cesium.network.services', ['ngResource', 'ngApi', 'cesium.bma.se
       ;
 
     // Register extension points
-    //api.registerEvent('data', 'load');
+    api.registerEvent('data', 'changed');
 
     return {
       id: id,
@@ -278,7 +265,7 @@ angular.module('cesium.network.services', ['ngResource', 'ngApi', 'cesium.bma.se
       refreshPeers: refreshPeers,
       isBusy: isBusy,
       // api extension
-      //api: api
+      api: api
     };
   };
 
diff --git a/www/js/services/wot-services.js b/www/js/services/wot-services.js
index a601d69105fb32408c3cddb1b6a17d8cd75671d2..eaefa81ff49bf954595b5d45901c1cd4749d8d23 100644
--- a/www/js/services/wot-services.js
+++ b/www/js/services/wot-services.js
@@ -333,7 +333,7 @@ angular.module('cesium.wot.services', ['ngResource', 'ngApi', 'cesium.bma.servic
                       angular.merge(data, identity);
 
                       // Get given certifications
-                      return loadGivenCertifications(pubkey, identity.temp.givenCertifications, parameters, medianTime)
+                      return loadGivenCertifications(pubkey, !identity.temp ? identity.temp : identity.temp.givenCertifications, parameters, medianTime)
                         .then(function (identity) {
                           angular.merge(data, identity);
                         });
diff --git a/www/templates/currency/tabs/view_parameters.html b/www/templates/currency/tabs/view_parameters.html
index b03cc179bf61ac3134a7e8d72c4682024025e2af..b8d88cc209f308e741ec669f875a6f8e0c821909 100644
--- a/www/templates/currency/tabs/view_parameters.html
+++ b/www/templates/currency/tabs/view_parameters.html
@@ -71,7 +71,7 @@
         <ion-item class="item-icon-left">
             <i class="icon ion-clock"></i>
             <span translate>CURRENCY.VIEW.TIME</span>
-            <span class="item-note dark">{{time}}</span>
+            <span class="item-note dark">{{medianTime | formatDate}}</span>
         </ion-item>
 
         <ion-item class="item-icon-left">