diff --git a/doc/build_ios.md b/doc/build_ios.md
new file mode 100644
index 0000000000000000000000000000000000000000..2de65c080f720cda03ef3cb6a8b3ca12f54519c0
--- /dev/null
+++ b/doc/build_ios.md
@@ -0,0 +1,14 @@
+# iOS Builds
+
+Cesium can be build as desktop application for iOS. .
+
+## Prerequisites
+
+### Install OSx VM
+
+
+## Install XCode 
+
+
+
+## Publishing to Apple store
diff --git a/platforms/desktop b/platforms/desktop
index 3273ea59ac91cada3450021dc126403bca8f0ab9..e0512d76784980a51651bbdcba636404c552c3e8 160000
--- a/platforms/desktop
+++ b/platforms/desktop
@@ -1 +1 @@
-Subproject commit 3273ea59ac91cada3450021dc126403bca8f0ab9
+Subproject commit e0512d76784980a51651bbdcba636404c552c3e8
diff --git a/www/i18n/locale-fr-FR.json b/www/i18n/locale-fr-FR.json
index cb74c98526bc8998e4c3b56b8a3f94b633bbd033..789ab385b6dfef40654075aa93d5d2fb96349af3 100644
--- a/www/i18n/locale-fr-FR.json
+++ b/www/i18n/locale-fr-FR.json
@@ -46,7 +46,7 @@
     "BTN_MODIFY": "Modifier",
     "CHOOSE_FILE": "Déposez votre fichier <br/>ou cliquez pour le sélectionner",
     "DAYS": "jours",
-    "NO_ACCOUNT_QUESTION": "Pas de encore membre ? Créer un compte !",
+    "NO_ACCOUNT_QUESTION": "Pas de encore compte ? Créer-en un gratuitement !",
     "SEARCH_NO_RESULT": "Aucun résultat trouvé",
     "LOADING": "Veuillez patienter...",
     "LOADING_WAIT": "Veuillez patienter...<br/><small>(Attente de disponibilité du noeud)</small>",
@@ -119,7 +119,7 @@
   "HOME": {
     "TITLE": "Cesium",
     "WELCOME": "Bienvenue dans l'application Cesium !",
-    "MESSAGE": "Suivez vos comptes {{currency|abbreviate}} en toute simplicité",
+    "MESSAGE": "Recevez et envoyez de la monnaie libre {{currency|abbreviate}}",
     "BTN_CURRENCY": "Explorer la monnaie {{name|abbreviate}}",
     "BTN_ABOUT": "à propos",
     "BTN_HELP": "Aide en ligne",
@@ -409,7 +409,9 @@
     "PASSWORD_HELP": "Mot de passe",
     "PUBKEY_HELP": "Clé publique ou pseudonyme",
     "NO_ACCOUNT_QUESTION": "Vous n'avez pas encore de compte ?",
+    "HAVE_ACCOUNT_QUESTION": "Vous avez déjà un compte ?",
     "CREATE_ACCOUNT": "Créer un compte...",
+    "CREATE_FREE_ACCOUNT": "Créer un compte gratuitement",
     "FORGOTTEN_ID": "Mot de passe oublié ?",
     "ASSOCIATED_PUBKEY": "Clé publique du trousseau :",
     "BTN_METHODS": "Autres méthodes",
@@ -681,7 +683,7 @@
     "NEED_MEMBER_ACCOUNT_TO_CERTIFY": "Vous ne pouvez pas effectuer de certification, car votre compte n'est <b>pas membre</b>.",
     "NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF": "Vous ne pouvez pas effectuer de certification, car votre compte n'est pas encore membre.<br/><br/>Il vous manque encore des certifications, ou bien celles-ci n'ont pas encore été validées.",
     "NOT_MEMBER_FOR_CERTIFICATION": "Votre compte n'est pas encore membre.",
-    "IDENTITY_TO_CERTIFY_HAS_NO_SELF": "Compte non certifiable. Aucune demande d'adhésion n'a été faite, ou bien elle n'a pas été renouvellée.",
+    "IDENTITY_TO_CERTIFY_HAS_NO_SELF": "Compte non certifiable. Aucune demande d'adhésion n'a été faite, ou bien elle n'a pas été renouvelée.",
     "LOGIN_FAILED": "Erreur lors de la connexion.",
     "LOAD_IDENTITY_FAILED": "Erreur de chargement de l'identité.",
     "LOAD_REQUIREMENTS_FAILED": "Erreur de chargement des prérequis de l'identité.",
diff --git a/www/index.html b/www/index.html
index 3bf94b968228eb023a5510413a340cbedd6612cc..f35ba5ddc963a6ef8940dc96f47bff918e81b8fd 100644
--- a/www/index.html
+++ b/www/index.html
@@ -138,6 +138,9 @@
     <script src="dist/dist_js/app/services/wallet-services.js"></script>
     <script src="dist/dist_js/app/services/help-services.js"></script>
     <script src="dist/dist_js/app/services/plugin-services.js"></script>
+    <!-- removeIf(device) -->
+    <script src="dist/dist_js/app/services/desktop-services.js"></script>
+    <!-- endRemoveIf(device) -->
     <script src="dist/dist_js/app/services.js"></script>
 
     <!-- entities -->
diff --git a/www/js/config.js b/www/js/config.js
index 76880d9ff12779a8b3cb6d5d2a143622a55fcf7c..38466bb398a855d04f6a9c0b61348ffa43f1a16f 100644
--- a/www/js/config.js
+++ b/www/js/config.js
@@ -35,8 +35,8 @@ angular.module("cesium.config", [])
 		"en": "license/license_g1-en"
 	},
 	"node": {
-		"host": "g1.duniter.org",
-		"port": 443
+		"host": "localhost",
+		"port": 9205
 	},
 	"fallbackNodes": [
 		{
@@ -85,4 +85,4 @@ angular.module("cesium.config", [])
 	"newIssueUrl": "https://git.duniter.org/clients/cesium-grp/cesium/issues/new"
 })
 
-;
\ No newline at end of file
+;
diff --git a/www/js/controllers/app-controllers.js b/www/js/controllers/app-controllers.js
index 087aa9e1f601753a0ad738bcaff22fc3717100c9..6da62e4b0b11d04e7b15f6966f0c4c6e4a247fcd 100644
--- a/www/js/controllers/app-controllers.js
+++ b/www/js/controllers/app-controllers.js
@@ -442,6 +442,9 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
   ////////////////////////////////////////
 
   $scope.openLink = function($event, uri, options) {
+    $event.stopPropagation();
+    $event.preventDefault();
+
     options = options || {};
 
     // If unable to open, just copy value
@@ -449,8 +452,9 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
       return UIUtils.popover.copy($event, uri);
     };
 
-    $event.stopPropagation();
-    return csHttp.uri.open(uri, options);
+    csHttp.uri.open(uri, options);
+
+    return false;
   };
 
   ////////////////////////////////////////
diff --git a/www/js/controllers/blockchain-controllers.js b/www/js/controllers/blockchain-controllers.js
index a46f4bdad2cc2ac75c1a3b3de6a81c98f9f2e125..f06a6f2aed1d9ef133375ffa1b8f6e8137d6bd8c 100644
--- a/www/js/controllers/blockchain-controllers.js
+++ b/www/js/controllers/blockchain-controllers.js
@@ -135,9 +135,10 @@ function BlockLookupController($scope, $timeout, $focus, $filter, $state, $ancho
           useTor: useTor
         };
         var serverParts = state.stateParams.server.split(':');
-        if (serverParts.length == 2) {
+        if (serverParts.length == 2 || serverParts.length == 3) {
           node.host = serverParts[0];
           node.port = serverParts[1];
+          node.wsPort = serverParts[2] || serverParts[1];
         }
 
         if (BMA.node.same(node.host, node.port)) {
@@ -146,8 +147,8 @@ function BlockLookupController($scope, $timeout, $focus, $filter, $state, $ancho
         else {
           $scope.node = useTor ?
               // For TOR, use a web2tor to access the endpoint
-              BMA.instance(node.host + ".to", 443, true/*ssl*/, 600000 /*long timeout*/) :
-              BMA.instance(node.host, node.port, node.useSsl);
+              BMA.instance(node.host + ".to", 443, 443, true/*ssl*/, 600000 /*long timeout*/) :
+              BMA.instance(node.host, node.port, node.wsPort, node.useSsl);
           return $scope.node.blockchain.parameters()
             .then(function(json) {
               $scope.currency = json.currency;
@@ -232,7 +233,7 @@ function BlockLookupController($scope, $timeout, $focus, $filter, $state, $ancho
           var size = current.number < $scope.defaultSizeLimit ? current.number : $scope.defaultSizeLimit;
           return $scope.node.blockchain.blocksSlice({count: size, from: current.number-size})
             .then(function(blocks) {
-              blocks.splice(0,0,current);
+              blocks && blocks.splice(0,0,current);
               return blocks;
             });
         })
@@ -529,9 +530,10 @@ function BlockViewController($scope, $ionicPopover, $state, UIUtils, BMA, csCurr
           useTor: useTor
         };
         var serverParts = state.stateParams.server.split(':');
-        if (serverParts.length == 2) {
+        if (serverParts.length == 2 || serverParts.length == 3) {
           node.host = serverParts[0];
           node.port = serverParts[1];
+          node.wsPort = serverParts[2] || serverParts[1];
         }
 
         if (BMA.node.same(node.host, node.port)) {
@@ -540,8 +542,8 @@ function BlockViewController($scope, $ionicPopover, $state, UIUtils, BMA, csCurr
         else {
           $scope.node = useTor ?
             // For TOR, use a web2tor to access the endpoint
-            BMA.instance(node.host + ".to", 443, true/*ssl*/, 600000 /*long timeout*/) :
-            BMA.instance(node.host, node.port, node.useSsl);
+            BMA.instance(node.host + ".to", 443, 443, true/*ssl*/, 600000 /*long timeout*/) :
+            BMA.instance(node.host, node.port, node.wsPort, node.useSsl);
           return $scope.node.blockchain.parameters()
             .then(function (json) {
               $scope.currency = json.currency;
diff --git a/www/js/controllers/network-controllers.js b/www/js/controllers/network-controllers.js
index ba8e1e4e18050505d47c5fa3e3d9d3b0cf645b96..e3dbf98e011a3afd5f1fb108e5adcc4fde252019 100644
--- a/www/js/controllers/network-controllers.js
+++ b/www/js/controllers/network-controllers.js
@@ -89,7 +89,7 @@ function NetworkLookupController($scope,  $state, $location, $ionicPopover, $win
       .then(function (currency) {
         if (currency) {
           $scope.node = !BMA.node.same(currency.node.host, currency.node.port) ?
-            BMA.instance(currency.node.host, currency.node.port) : BMA;
+            BMA.instance(currency.node.host, currency.node.port, currency.node.wsPort) : BMA;
           if (state && state.stateParams) {
             if (state.stateParams.type && ['mirror', 'member', 'offline'].indexOf(state.stateParams.type) != -1) {
               $scope.search.type = state.stateParams.type;
@@ -549,13 +549,14 @@ function PeerViewController($scope, $q, $window, $state, UIUtils, csWot, BMA) {
     if (serverParts.length == 2) {
       node.host = serverParts[0];
       node.port = serverParts[1];
+      node.wsPort = serverParts[2] || serverParts[1];
     }
 
     angular.merge($scope.node,
       useTor ?
         // For TOR, use a web2tor to access the endpoint
-        BMA.lightInstance(node.host + ".to", 443, true/*ssl*/, 60000 /*long timeout*/) :
-        BMA.lightInstance(node.host, node.port, node.useSsl),
+        BMA.lightInstance(node.host + ".to", 443, 443, true/*ssl*/, 60000 /*long timeout*/) :
+        BMA.lightInstance(node.host, node.port, node.wsPort,  node.useSsl),
       node);
 
     $scope.isReachable = !$scope.isHttps || useSsl;
diff --git a/www/js/controllers/settings-controllers.js b/www/js/controllers/settings-controllers.js
index 0f880533181ef6eab160691c4d44614c5c3b0adf..eac077076c402df1efc9ff928b5ae208780dc07f 100644
--- a/www/js/controllers/settings-controllers.js
+++ b/www/js/controllers/settings-controllers.js
@@ -150,9 +150,10 @@ function SettingsController($scope, $q, $ionicHistory, $ionicPopup, $timeout, $t
 
   // Change node
   $scope.changeNode= function(node) {
+    var port = !!$scope.formData.node.port && $scope.formData.node.port != 80 && $scope.formData.node.port != 443 ? $scope.formData.node.port : undefined;
     node = node || {
         host: $scope.formData.node.host,
-        port: $scope.formData.node.port && $scope.formData.node.port != 80 && $scope.formData.node.port != 443 ? $scope.formData.node.port : undefined,
+        port: port,
         useSsl: angular.isDefined($scope.formData.node.useSsl) ?
           $scope.formData.node.useSsl :
           ($scope.formData.node.port == 443)
diff --git a/www/js/entities/peer.js b/www/js/entities/peer.js
index 0800c571386f74ec4ddc493ec1d510c5be0a4489..a05550948c43f982a6718011b5ec15754ff76ab3 100644
--- a/www/js/entities/peer.js
+++ b/www/js/entities/peer.js
@@ -9,7 +9,6 @@ function Peer(json) {
   });
 
   that.endpoints = that.endpoints || [];
-  that.statusTS = that.statusTS || 0;
 }
 
 
@@ -34,7 +33,7 @@ Peer.prototype.keyID = function () {
 
 Peer.prototype.copyValues = function(to) {
   var obj = this;
-  ["version", "currency", "pub", "endpoints", "hash", "status", "statusTS", "block", "signature"].forEach(function (key) {
+  ["version", "currency", "pub", "endpoints", "hash", "status", "block", "signature"].forEach(function (key) {
     to[key] = obj[key];
   });
 };
@@ -158,3 +157,8 @@ Peer.prototype.isWs2p = function() {
   var bma = this.bma || this.getBMA();
   return bma.useWs2p;
 };
+
+Peer.prototype.isBma = function() {
+  var bma = this.bma || this.getBMA();
+  return !bma.useWs2p && !bma.useTor;
+};
diff --git a/www/js/entities/ws2pmessage.js b/www/js/entities/ws2pmessage.js
index 9176af1847e4e6ec7f4705eb2aeacda6065b707b..52efe155361ed87a206743bd47cc5e3a06dd02fd 100644
--- a/www/js/entities/ws2pmessage.js
+++ b/www/js/entities/ws2pmessage.js
@@ -68,7 +68,7 @@ function Ws2pMessage(message) {
         that.pubkey=parts[3];
         that.buid=parts[4];
         that.ws2pid=parts[5];
-        that.sotfware=parts[6];
+        that.software=parts[6];
         that.version=parts[7];
         that.powPrefix=parts[8];
       }
diff --git a/www/js/services.js b/www/js/services.js
index 91d3c4d515cfd9a605635d5227cb01b5381c97eb..5fde0394e561b6dd0b705d11fefd0739445c12fe 100644
--- a/www/js/services.js
+++ b/www/js/services.js
@@ -1,4 +1,7 @@
 angular.module('cesium.services', [
+  // removeIf(device)
+  'cesium.desktop.services',
+  // endRemoveIf(device)
   'cesium.settings.services',
   'cesium.http.services',
   'cesium.network.services',
diff --git a/www/js/services/bma-services.js b/www/js/services/bma-services.js
index 93420694bfd4823ff2cc753deb06f5f81b8b5d5f..1572a103d177ed30b126b393dc18a0eb20bb58a3 100644
--- a/www/js/services/bma-services.js
+++ b/www/js/services/bma-services.js
@@ -20,6 +20,7 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium.
       OUTPUT_OBJ = 'OBJ\\(([0-9]+)\\)',
       OUTPUT_OBJ_OPERATOR = OUTPUT_OBJ + '[ ]*' + OUTPUT_OPERATOR + '[ ]*' + OUTPUT_OBJ,
       REGEX_ENDPOINT_PARAMS = "( ([a-z_][a-z0-9-_.ÄŸÄž]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))( (.+))?",
+      BLOCK_ATTRIBUTES= ["currency", "issuer", "medianTime", "number", "version", "powMin", "dividend", "membersCount", "hash", "identities", "joiners", "actives", "leavers", "revoked", "excluded", "certifications", "transactions", "unitbase"],
       regexp = {
         USER_ID: "[A-Za-z0-9_-]+",
         CURRENCY: "[A-Za-z0-9_-]+",
@@ -59,7 +60,8 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium.
         LIMIT_REQUEST_COUNT: 5, // simultaneous async request to a Duniter node
         LIMIT_REQUEST_DELAY: 1000, // time (in second) to wait between to call of a rest request
         regex: regexp, // deprecated
-        regexp: regexp
+        regexp: regexp,
+        BLOCK_QUERY_PARAMS: "?_source=" + BLOCK_ATTRIBUTES.join(',')
       },
       listeners,
       that = this;
@@ -75,7 +77,6 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium.
       console.debug('[BMA] Enable SSL (forced by config or detected in URL)');
     }
 
-
     if (host) {
       init(host, port, useSsl, useCache);
     }
@@ -231,7 +232,7 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium.
     that.isAlive = function() {
       return csHttp.get(that.host, that.port, '/node/summary', that.useSsl)()
         .then(function(json) {
-          var isDuniter = json && json.duniter && json.duniter.software == 'duniter' && json.duniter.version;
+          var isDuniter = json && json.duniter && json.duniter.software && json.duniter.version && true;
           var isCompatible = isDuniter && csHttp.version.isCompatible(csSettings.data.minVersion, json.duniter.version);
           if (isDuniter && !isCompatible) {
             console.error('[BMA] Uncompatible version [{0}] - expected at least [{1}]'.format(json.duniter.version, csSettings.data.minVersion));
@@ -412,9 +413,9 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium.
       },
       blockchain: {
         parameters: get('/blockchain/parameters', csHttp.cache.LONG),
-        block: get('/blockchain/block/:block', csHttp.cache.SHORT),
-        blocksSlice: get('/blockchain/blocks/:count/:from'),
-        current: get('/blockchain/current'),
+        block: get('/blockchain/block/:block' +  constants.BLOCK_QUERY_PARAMS, csHttp.cache.SHORT),
+        blocksSlice: get('/blockchain/blocks/:count/:from' + constants.BLOCK_QUERY_PARAMS),
+        current: get('/blockchain/current' + constants.BLOCK_QUERY_PARAMS),
         membership: post('/blockchain/membership'),
         stats: {
           ud: get('/blockchain/with/ud', csHttp.cache.SHORT),
diff --git a/www/js/services/desktop-services.js b/www/js/services/desktop-services.js
new file mode 100644
index 0000000000000000000000000000000000000000..51a5a760cb5583ee68709e2ab4c1f5c10a36de7c
--- /dev/null
+++ b/www/js/services/desktop-services.js
@@ -0,0 +1,11 @@
+var App, nw;
+
+angular.module('cesium.desktop.services', ['cesium.device.services', 'cesium.settings.services'])
+
+  .factory('csDesktop',  function($rootScope, Device) {
+    'ngInject';
+
+    if (!Device.isDesktop()) return;
+
+    console.info("Starting desktop mode...");
+  });
diff --git a/www/js/services/http-services.js b/www/js/services/http-services.js
index 95ee00335d1b5c4da5e61e09510c96441d3f20c4..a871ce92c0ed85cb51ccfb97234f0c4a76bb3e23 100644
--- a/www/js/services/http-services.js
+++ b/www/js/services/http-services.js
@@ -342,6 +342,17 @@ angular.module('cesium.http.services', ['cesium.cache.services'])
         uri = parts.protocol + uri;
       }
 
+      // On desktop, open into external tool
+      if (parts.protocol == 'mailto:'  && Device.isDesktop()) {
+        try {
+          nw.Shell.openExternal(uri);
+          return;
+        }
+        catch(err) {
+          console.error("[http] Failed not open 'mailto:' URI into external tool.");
+        }
+      }
+
       // Check if device is enable, on special tel: or mailto: protocole
       var validProtocol = (parts.protocol == 'mailto:' || parts.protocol == 'tel:') && Device.enable;
       if (!validProtocol) {
@@ -355,15 +366,33 @@ angular.module('cesium.http.services', ['cesium.cache.services'])
     // Note: If device enable, then target=_system will use InAppBrowser cordova plugin
     var openTarget = (options.target || (Device.enable ? '_system' : '_blank'));
 
+    // If desktop, try to open into external browser
+    if (openTarget === '_blank' || openTarget === '_system'  && Device.isDesktop()) {
+      try {
+        nw.Shell.openExternal(uri);
+        return;
+      }
+      catch(err) {
+        console.error("[http] Failed not open URI into external browser.");
+      }
+    }
+
     // If desktop, should always open in new window (no tabs)
     var openOptions;
-    if (openTarget == '_blank' && Device.isDesktop()) {
+    if (openTarget === '_blank' && Device.isDesktop()) {
+
+      if (nw && nw.Shell) {
+        nw.Shell.openExternal(uri);
+        return false;
+      }
+      // Override default options
       openOptions= "location=1,titlebar=1,status=1,menubar=1,toolbar=1,resizable=1,scrollbars=1";
       // Add width/height
       if ($window.screen && $window.screen.width && $window.screen.height) {
         openOptions += ",width={0},height={1}".format(Math.trunc($window.screen.width/2), Math.trunc($window.screen.height/2));
       }
     }
+
     var win = $window.open(uri,
       openTarget,
       openOptions);
diff --git a/www/js/services/network-services.js b/www/js/services/network-services.js
index 21122397a1dcc9ebcff5e9769208d560d07a0673..9a49bf4cfd1e36a6bb31ba073d0179a0264ec2f7 100644
--- a/www/js/services/network-services.js
+++ b/www/js/services/network-services.js
@@ -402,15 +402,16 @@ angular.module('cesium.network.services', ['ngApi', 'cesium.bma.services', 'cesi
               return res.concat(createPeerEntities(json, ep));
             }, []);
           }
-
-          // if only one bma endpoint: use it and continue
-          ep = endpoints[0];
+          else {
+            // if only one endpoint: use it and continue
+            ep = endpoints[0];
+          }
         }
         peer.bma = ep;
         peer.server = peer.getServer();
         peer.dns = peer.getDns();
-        peer.blockNumber = peer.block.replace(/-.+$/, '');
-        peer.uid = data.uidsByPubkeys[peer.pubkey];
+        peer.blockNumber = peer.block && peer.block.replace(/-.+$/, '');
+        peer.uid = peer.pubkey && data.uidsByPubkeys[peer.pubkey];
         peer.id = peer.keyID();
         return [peer];
       },
diff --git a/www/plugins/es/js/controllers/common-controllers.js b/www/plugins/es/js/controllers/common-controllers.js
index 5b4e5bde214ac36ccacbff5079bb8a24f5e5f841..415602f8936985b7cc5fdee8a45431b3e9fd0fde 100644
--- a/www/plugins/es/js/controllers/common-controllers.js
+++ b/www/plugins/es/js/controllers/common-controllers.js
@@ -413,7 +413,6 @@ function ESSocialsViewController($scope)  {
   'ngInject';
 
   $scope.openSocial = function(event, social) {
-    event.stopPropagation();
     return $scope.openLink(event, social.url, {
       type: social.type
     });
diff --git a/www/templates/home/home.html b/www/templates/home/home.html
index b9d31d236b14f98891eaae9aaf953cb7fe757978..e1f36ba562f8cbacd11bb58b9263a832fc52b64c 100644
--- a/www/templates/home/home.html
+++ b/www/templates/home/home.html
@@ -10,7 +10,7 @@
 
     <h4>
       <span class="hidden-xs" translate>HOME.WELCOME</span>
-      <span ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate>HOME.MESSAGE</span>
+      <b ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate>HOME.MESSAGE</b>
     </h4>
 
     <div class="center padding" ng-if="loading">
@@ -39,14 +39,9 @@
         {{'COMMON.BTN_HELP_TOUR'|translate}}
       </button>
 
-      <!-- Currency-->
       <button type="button"
-              class="item button button-block button-stable button-raised icon icon-left ion-ios-world-outline ink-dark hidden-sm hidden-xs"
-              ui-sref="app.currency">{{'HOME.BTN_CURRENCY'|translate:$root.currency }}</button>
-
-      <button type="button"
-              class="item button button-block button-positive button-raised icon icon-left ion-locked ink-dark"
-              ui-sref="app.view_wallet" ng-show="!login" translate>COMMON.BTN_LOGIN</button>
+              class="button button-block button-positive button-raised ink-dark"
+              ng-click="showJoinModal()" ng-if="!login" translate>LOGIN.CREATE_FREE_ACCOUNT</button>
 
       <button type="button"
               class="item button button-block button-positive button-raised icon icon-left ion-person ink-dark"
@@ -54,17 +49,17 @@
 
       <button type="button"
               class="item button button-block button-positive button-raised icon icon-left ion-card ink-dark visible-xs"
-              ui-sref="app.view_wallet_tx" ng-show="login" translate>MENU.TRANSACTIONS</button>
+              ui-sref="app.view_wallet_tx" ng-if="login" translate>MENU.TRANSACTIONS</button>
 
       <br class="visible-xs visible-sm"/>
 
       <!-- join link -->
       <div class="text-center no-padding" ng-show="!login">
         <br class="visible-xs visible-sm"/>
-        {{'LOGIN.NO_ACCOUNT_QUESTION'|translate}}
+        {{'LOGIN.HAVE_ACCOUNT_QUESTION'|translate}}
         <b>
-          <a class="assertive hidden-xs hidden-sm" ng-click="showJoinModal()" translate>
-            LOGIN.CREATE_ACCOUNT
+          <a class="assertive hidden-xs hidden-sm" ui-sref="app.view_wallet" translate>
+            COMMON.BTN_LOGIN
           </a>
         </b>
       </div>
@@ -82,8 +77,8 @@
       </div>
 
       <button type="button"
-              class="button button-block button-calm button-raised icon icon-left ion-wand ink-dark visible-xs visible-sm"
-              ng-click="showJoinModal()" ng-if="!login" translate>LOGIN.CREATE_ACCOUNT</button>
+              class="button button-block button-energized-100 button-raised ink visible-xs visible-sm"
+              ui-sref="app.view_wallet" ng-show="!login" translate>COMMON.BTN_LOGIN</button>
       <button type="button"
               class="button button-block button-assertive button-raised icon icon-left ion-wand ink-dark visible-xs visible-sm"
               ng-click="logout()" ng-if="login" translate>COMMON.BTN_LOGOUT</button>
diff --git a/www/templates/menu.html b/www/templates/menu.html
index 54b655fca3ce85d72ab4941ce0b180cc9de4f85b..b07dd0a6a9ae0c4d6aa809ca1bb55bea8dab2a00 100644
--- a/www/templates/menu.html
+++ b/www/templates/menu.html
@@ -87,7 +87,7 @@
     <ion-content scroll="false">
       <ion-list class="list">
 
-        <!-- DISCOVER Section -->
+        <!-- Home -->
         <ion-item menu-close class="item-icon-left hidden-xs" ui-sref="app.home" active-link="active">
           <i class="icon ion-home"></i>
           {{:locale:'MENU.HOME'|translate}}
diff --git a/www/templates/network/item_content_peer.html b/www/templates/network/item_content_peer.html
index 0a4121855c125ae263afb15ec00642847ba1dfbf..37adfd83c21f44f077516afc0f3f244a000bc65b 100644
--- a/www/templates/network/item_content_peer.html
+++ b/www/templates/network/item_content_peer.html
@@ -23,10 +23,13 @@
         </h4>
       </div>
       <div class="col col-15 no-padding text-center hidden-xs hidden-sm" ng-if="::expertMode">
-        <div style="min-width: 50px; padding-top: 5px;" title="SSL">
-          <span ng-if=":rebind:peer.isSsl()">
+        <div style="min-width: 50px; padding-top: 5px;" >
+          <span ng-if=":rebind:peer.isSsl()" title="SSL">
             <i class="ion-locked"></i><small class="hidden-md"> SSL</small>
           </span>
+          <span ng-if=":rebind:peer.isBma()" title="BMA">
+            <i class="ion-cloud"></i><small class="hidden-md"> BMA</small>
+          </span>
           <span ng-if=":rebind:peer.isWs2p()"
                 ng-click="showWs2pPopover($event, peer)"
                 title="WS2P">