diff --git a/appveyor.yml b/appveyor.yml
index def1f44150216195421cac86675e010b587e8859..e92970cf03e289905d3d52696a5cacc3a7c858e1 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -52,6 +52,5 @@ deploy:
   draft: true
   prerelease: true
   on:
-    branch: master                 # release from master branch only
     appveyor_repo_tag: true        # deploy on tag push only
 
diff --git a/res/i18n/ts/fr_FR.ts b/res/i18n/ts/fr_FR.ts
index fdc99c1349c350f17a4496ceb8e9ba5288e5abd8..9d84768d1726bd90594deebc3effa573e443f931 100644
--- a/res/i18n/ts/fr_FR.ts
+++ b/res/i18n/ts/fr_FR.ts
@@ -55,37 +55,37 @@
         <translation type="obsolete">du {0}</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/core/account.py" line="103"/>
+        <location filename="../../../src/cutecoin/core/account.py" line="90"/>
         <source>Units</source>
         <translation>Unités</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/core/account.py" line="103"/>
+        <location filename="../../../src/cutecoin/core/account.py" line="90"/>
         <source>UD</source>
         <translation>DU</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/core/account.py" line="103"/>
+        <location filename="../../../src/cutecoin/core/account.py" line="90"/>
         <source>Quant Z-sum</source>
         <translation>Quant. som. 0</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/core/account.py" line="103"/>
+        <location filename="../../../src/cutecoin/core/account.py" line="90"/>
         <source>Relat Z-sum</source>
         <translation>Rel. som. 0</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/core/account.py" line="103"/>
+        <location filename="../../../src/cutecoin/core/account.py" line="90"/>
         <source>UD {0}</source>
         <translation>DU {0}</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/core/account.py" line="103"/>
+        <location filename="../../../src/cutecoin/core/account.py" line="90"/>
         <source>Q0 {0}</source>
         <translation>Q0 {0}</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/core/account.py" line="103"/>
+        <location filename="../../../src/cutecoin/core/account.py" line="90"/>
         <source>R0 {0}</source>
         <translation>R0 {0}</translation>
     </message>
@@ -842,7 +842,7 @@ Revoking your UID can only success if it is not already validated by the network
         <translation></translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="74"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
         <source>
                 &lt;table cellpadding=&quot;5&quot;&gt;
                 &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
@@ -853,7 +853,7 @@ Revoking your UID can only success if it is not already validated by the network
                 &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
                 &lt;/table&gt;
                 </source>
-        <translation>
+        <translation type="obsolete">
                 &lt;table cellpadding=&quot;5&quot;&gt;
                 &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
                 &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
@@ -865,42 +865,42 @@ Revoking your UID can only success if it is not already validated by the network
                 </translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="74"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
         <source>Universal Dividend UD(t) in</source>
         <translation>Dividende Universel DU(t) en</translation>
     </message>
     <message>
         <location filename="../../../src/cutecoin/gui/informations_tab.py" line="74"/>
         <source>Monetary Mass M(t) in</source>
-        <translation>Masse Monétaire M(t) en</translation>
+        <translation type="obsolete">Masse Monétaire M(t) en</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="74"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
         <source>Members N(t)</source>
         <translation>Membres N(t)</translation>
     </message>
     <message>
         <location filename="../../../src/cutecoin/gui/informations_tab.py" line="74"/>
         <source>Monetary Mass per member M(t)/N(t) in</source>
-        <translation>Masse Monétaire par membre M(t)/N(t) en</translation>
+        <translation type="obsolete">Masse Monétaire par membre M(t)/N(t) en</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="72"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
         <source>Actual growth c = UD(t)/[M(t-1)/N(t)]</source>
-        <translation type="obsolete">Croissance actuelle c = DU(t)/[M(t -1)/N(t)]</translation>
+        <translation>Croissance actuelle c = DU(t)/[M(t -1)/N(t)]</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="74"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
         <source>Next UD date and time (t+1)</source>
-        <translation>Prochain DU, date et heure (t+1)</translation>
+        <translation type="unfinished">Date et heure du prochain DU (t+1)</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="165"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="191"/>
         <source>No Universal Dividend created yet.</source>
         <translation>Pas de dividende universel créé pour le moment.</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="140"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="166"/>
         <source>
                 &lt;table cellpadding=&quot;5&quot;&gt;
                 &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
@@ -911,12 +911,12 @@ Revoking your UID can only success if it is not already validated by the network
         <translation></translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="140"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="166"/>
         <source>{:2.0%} / {:} days</source>
         <translation>{:2.0%} / {:} jours</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="140"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="166"/>
         <source>Fundamental growth (c) / Delta time (dt)</source>
         <translation>Croissance fondamentale (c) / Delta de temps (dt)</translation>
     </message>
@@ -926,17 +926,17 @@ Revoking your UID can only success if it is not already validated by the network
         <translation type="obsolete">DU(t+1) = MAX { DU(t) ; c * M(t) / N(t) }</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="140"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="166"/>
         <source>Universal Dividend (formula)</source>
         <translation>Dividende Universel (formule)</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="140"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="166"/>
         <source>Universal Dividend (computed)</source>
         <translation>Dividende Universel (calculé)</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>
             &lt;table cellpadding=&quot;5&quot;&gt;
             &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:2.0%} / {:} days&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
@@ -963,47 +963,47 @@ Revoking your UID can only success if it is not already validated by the network
             </translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>Fundamental growth (c)</source>
         <translation>Croissance fondamentale (c)</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>Initial Universal Dividend UD(0) in</source>
         <translation>Dividende Universel Initial DU(0) en</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>Time period (dt) in days (86400 seconds) between two UD</source>
         <translation>Période de temps (dt) en jours (86400 secondes) entre deux DU</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>Number of blocks used for calculating median time</source>
         <translation>Nombre de blocs utilisés pour calculer le temps median</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>The average time in seconds for writing 1 block (wished time)</source>
         <translation>Le temps moyen en secondes pour écrire un bloc (temps espéré)</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>The number of blocks required to evaluate again PoWMin value</source>
         <translation>Le nombre de blocs requis pour évaluer une nouvelle valeur de PoWMin</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>The number of previous blocks to check for personalized difficulty</source>
         <translation>Le nombre de blocs précédents pour vérifier la difficulté personnalisée</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="168"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="194"/>
         <source>The percent of previous issuers to reach for personalized difficulty</source>
         <translation>Le pourcentage d&apos;utilisateurs précédents atteignant la difficulté personnalisée</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="229"/>
         <source>
             &lt;table cellpadding=&quot;5&quot;&gt;
             &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
@@ -1017,44 +1017,44 @@ Revoking your UID can only success if it is not already validated by the network
         <translation></translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="229"/>
         <source>Minimum delay between 2 identical certifications (in days)</source>
         <translation>Le délai minimum entre 2 certifications identiques (en jours)</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="229"/>
         <source>Maximum age of a valid signature (in days)</source>
         <translation>Age maximum d&apos;une signature valide (en jours)</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="229"/>
         <source>Minimum quantity of signatures to be part of the WoT</source>
         <translation>Nombre de signatures minimum pour faire partie de la TdC</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="229"/>
         <source>Minimum quantity of valid made certifications to be part of the WoT for distance rule</source>
         <translation>Quantité minimum de certifications valides pour faire partie de la TdC suivant la règle de distance</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="229"/>
         <source>Maximum age of a valid membership (in days)</source>
         <translation>Age maximum d&apos;un statut de membre valide (en jours)</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="229"/>
         <source>Maximum distance between each WoT member and a newcomer</source>
         <translation>Distance maximum entre chaque membre de la TdC et un nouveau venu</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="78"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
         <source>Monetary Mass M(t-1) in</source>
-        <translation type="obsolete">Masse Monétaire M(t-1) en</translation>
+        <translation>Masse Monétaire M(t-1) en</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="78"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
         <source>Monetary Mass per member M(t-1)/N(t) in</source>
-        <translation type="obsolete">Masse Monétaire par membre M(t-1)/N(t) en</translation>
+        <translation>Masse Monétaire par membre M(t-1)/N(t) en</translation>
     </message>
     <message>
         <location filename="../../../src/cutecoin/gui/informations_tab.py" line="127"/>
@@ -1069,7 +1069,7 @@ Revoking your UID can only success if it is not already validated by the network
     <message>
         <location filename="../../../src/cutecoin/gui/informations_tab.py" line="74"/>
         <source>Actual growth c = UD(t)/[M(t-1)/N(t-1)]</source>
-        <translation>Croissance actuelle c = DU(t)/[M(t -1)/N(t-1)]</translation>
+        <translation type="obsolete">Croissance actuelle c = DU(t)/[M(t -1)/N(t-1)]</translation>
     </message>
     <message>
         <location filename="../../../src/cutecoin/gui/informations_tab.py" line="140"/>
@@ -1084,18 +1084,53 @@ Revoking your UID can only success if it is not already validated by the network
     <message>
         <location filename="../../../src/cutecoin/gui/informations_tab.py" line="140"/>
         <source>UD(t+1) = MAX { UD(t) ; c &amp;#215; M(t) / N(t) }</source>
-        <translation type="unfinished">DU(t+1) = MAX { DU(t) ; c &amp;#215; M(t) / N(t) }</translation>
+        <translation type="obsolete">DU(t+1) = MAX { DU(t) ; c &amp;#215; M(t) / N(t) }</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="140"/>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="166"/>
         <source>{:} = MAX {{ {:} {:} ; {:2.0%} &amp;#215; {:} {:} / {:} }}</source>
-        <translation type="unfinished"></translation>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="166"/>
+        <source>UD(t+1) = MAX { UD(t) ; c &amp;#215; M(t) / N(t+1) }</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
+        <source>
+                &lt;table cellpadding=&quot;5&quot;&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:2.2%} / {:} days&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;/table&gt;
+                </source>
+        <translation>
+                &lt;table cellpadding=&quot;5&quot;&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:2.2%} / {:} jours&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr
+                &lt;/table&gt;
+                </translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="121"/>
+        <source>Last UD date and time (t)</source>
+        <translation>Date et heure du dernier DU (t)</translation>
     </message>
 </context>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="148"/>
+        <location filename="../../ui/mainwindow.ui" line="142"/>
         <source>Account</source>
         <translation>Compte</translation>
     </message>
@@ -1110,32 +1145,32 @@ Revoking your UID can only success if it is not already validated by the network
         <translation type="obsolete">Actions</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="88"/>
+        <location filename="../../ui/mainwindow.ui" line="87"/>
         <source>Manage accounts</source>
         <translation>Gérer les comptes</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="93"/>
+        <location filename="../../ui/mainwindow.ui" line="92"/>
         <source>Configure trustable nodes</source>
         <translation>Configurer les noeuds de confiance</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="118"/>
+        <location filename="../../ui/mainwindow.ui" line="117"/>
         <source>Send a message</source>
         <translation>Envoyer un message</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="123"/>
+        <location filename="../../ui/mainwindow.ui" line="122"/>
         <source>Send money</source>
         <translation>Envoyer de l&apos;argent</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="128"/>
+        <location filename="../../ui/mainwindow.ui" line="127"/>
         <source>Remove contact</source>
         <translation>Supprimer un contact</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="138"/>
+        <location filename="../../ui/mainwindow.ui" line="132"/>
         <source>Save</source>
         <translation>Sauvegarder</translation>
     </message>
@@ -1231,19 +1266,19 @@ Revoking your UID can only success if it is not already validated by the network
         <translation>Tout fichier de compte (*.acc)</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="45"/>
+        <location filename="../../ui/mainwindow.ui" line="61"/>
         <source>&amp;Open</source>
         <translation>&amp;Ouvrir</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="63"/>
+        <location filename="../../ui/mainwindow.ui" line="55"/>
         <source>&amp;Contacts</source>
         <translation>&amp;Contacts</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="98"/>
+        <location filename="../../ui/mainwindow.ui" line="97"/>
         <source>&amp;Add a contact</source>
-        <translation type="unfinished">&amp;Ajouter un contact</translation>
+        <translation>&amp;Ajouter un contact</translation>
     </message>
     <message>
         <location filename="../../ui/mainwindow.ui" line="132"/>
@@ -1251,47 +1286,47 @@ Revoking your UID can only success if it is not already validated by the network
         <translation type="obsolete">&amp;Ajouter</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="143"/>
+        <location filename="../../ui/mainwindow.ui" line="137"/>
         <source>&amp;Quit</source>
         <translation>&amp;Quitter</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="153"/>
+        <location filename="../../ui/mainwindow.ui" line="147"/>
         <source>&amp;Transfer money</source>
         <translation>&amp;Transférer de la monnaie</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="158"/>
+        <location filename="../../ui/mainwindow.ui" line="152"/>
         <source>&amp;Configure</source>
         <translation>&amp;Configurer</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="163"/>
+        <location filename="../../ui/mainwindow.ui" line="157"/>
         <source>&amp;Import</source>
         <translation>&amp;Importer</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="168"/>
+        <location filename="../../ui/mainwindow.ui" line="162"/>
         <source>&amp;Export</source>
         <translation>&amp;Exporter</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="173"/>
+        <location filename="../../ui/mainwindow.ui" line="167"/>
         <source>&amp;Certification</source>
         <translation>&amp;Certification</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="178"/>
+        <location filename="../../ui/mainwindow.ui" line="172"/>
         <source>&amp;Set as default</source>
         <translation>&amp;Par défaut</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="183"/>
+        <location filename="../../ui/mainwindow.ui" line="177"/>
         <source>A&amp;bout</source>
         <translation>A &amp;propos</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="188"/>
+        <location filename="../../ui/mainwindow.ui" line="182"/>
         <source>&amp;Preferences</source>
         <translation>&amp;Préférences</translation>
     </message>
@@ -1306,12 +1341,12 @@ Revoking your UID can only success if it is not already validated by the network
         <translation>&amp;Fichier</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="77"/>
+        <location filename="../../ui/mainwindow.ui" line="76"/>
         <source>&amp;Help</source>
         <translation>&amp;Aide</translation>
     </message>
     <message>
-        <location filename="../../ui/mainwindow.ui" line="133"/>
+        <location filename="../../ui/mainwindow.ui" line="187"/>
         <source>&amp;Add account</source>
         <translation>&amp;Ajouter un compte</translation>
     </message>
@@ -2088,17 +2123,17 @@ Veuillez rééssayer plus tard</translation>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../ui/transactions_tab.ui" line="68"/>
+        <location filename="../../ui/transactions_tab.ui" line="100"/>
         <source>Balance:</source>
         <translation>Solde:</translation>
     </message>
     <message>
-        <location filename="../../ui/transactions_tab.ui" line="51"/>
+        <location filename="../../ui/transactions_tab.ui" line="83"/>
         <source>Payment:</source>
         <translation>Paiements:</translation>
     </message>
     <message>
-        <location filename="../../ui/transactions_tab.ui" line="58"/>
+        <location filename="../../ui/transactions_tab.ui" line="90"/>
         <source>Deposit:</source>
         <translation>Dépôts:</translation>
     </message>
diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py
index 8b0406eab1a90d26bbbb0a6f8d07d6e60e2c3d32..dbce9cfca1024b11cdae0ff34617ad9d6b06298c 100644
--- a/src/cutecoin/core/app.py
+++ b/src/cutecoin/core/app.py
@@ -40,6 +40,7 @@ class Application(QObject):
         :param argv: The argv parameters of the call
         """
         super().__init__()
+        self.qapp = qapp
         self.accounts = {}
         self.current_account = None
         self.loop = loop
@@ -56,8 +57,10 @@ class Application(QObject):
                             }
 
         self.load()
+        self.switch_language()
 
-        translator = QTranslator(qapp)
+    def switch_language(self):
+        translator = QTranslator(self.qapp)
         logging.debug("Loading translations")
         locale = self.preferences['lang']
         QLocale.setDefault(QLocale(locale))
diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py
index 2bbd110518b474f4c2758e22256a491c8abbc03f..1acdb629c3368d2ca2ddac8a543b6312b383f4a9 100644
--- a/src/cutecoin/core/community.py
+++ b/src/cutecoin/core/community.py
@@ -9,6 +9,7 @@ import hashlib
 import re
 import time
 import asyncio
+import math
 
 from PyQt5.QtCore import QObject, pyqtSignal
 from requests.exceptions import RequestException
@@ -131,6 +132,30 @@ class Community(QObject):
         else:
             return 1
 
+    @property
+    def computed_dividend(self):
+        """
+        Get the computed community universal dividend.
+
+        Calculation based on t = last UD block time and on values from the that block :
+
+        UD(computed) = CEIL(MAX(UD(t) ; c * M(t) / N(t)))
+
+        :return: The computed UD or 1 if no UD was generated.
+        """
+        block = self.get_ud_block()
+        if block:
+            return math.ceil(
+                max(
+                    self.dividend(),
+                    float(0) if block['membersCount'] != 0 else
+                    self.parameters['c'] * block['monetaryMass'] / block['membersCount']
+                )
+            )
+
+        else:
+            return 1
+
     def get_ud_block(self, x=0):
         """
         Get a block with universal dividend
diff --git a/src/cutecoin/core/net/api/bma/access.py b/src/cutecoin/core/net/api/bma/access.py
index 3c6aeffd14365e83e53717652b948001456a56b5..ad6437f4d980f506b5e2065f847361a779a1c434 100644
--- a/src/cutecoin/core/net/api/bma/access.py
+++ b/src/cutecoin/core/net/api/bma/access.py
@@ -89,7 +89,7 @@ class BmaAccess(QObject):
         if isinstance(first, dict):
             for key in first:
                 if isinstance(second, dict):
-                    if second.has_key(key):
+                    if key in second:
                         sec = second[key]
                     else:
                         #  there are key in the first, that is not presented in the second
@@ -159,11 +159,11 @@ class BmaAccess(QObject):
 
             if 'value' not in self._data[cache_key]:
                 self._data[cache_key]['value'] = {}
-            self._data[cache_key]['metadata']['block'] = self._network.latest_block
 
-            if not self._compare_json(self._data[cache_key]['value'], data):
-                self._data[cache_key]['value'] = data
-                return True
+        self._data[cache_key]['metadata']['block'] = self._network.latest_block
+        if not self._compare_json(self._data[cache_key]['value'], data):
+            self._data[cache_key]['value'] = data
+            return True
         return False
 
     def get(self, caller, request, req_args={}, get_args={}, tries=0):
diff --git a/src/cutecoin/core/txhistory.py b/src/cutecoin/core/txhistory.py
index d520d3ec7718ef11d548456b0811c2ba4af82288..7f4460b901b54c02b8bf35459d267344f24a0c8a 100644
--- a/src/cutecoin/core/txhistory.py
+++ b/src/cutecoin/core/txhistory.py
@@ -150,7 +150,7 @@ class TxHistory():
             tx_history = yield from community.bma_access.future_request(qtbma.tx.history.Blocks,
                                                       req_args={'pubkey': self.wallet.pubkey,
                                                              'from_':str(parsed_block),
-                                                             'to_': str(parsed_block + 100)})
+                                                             'to_': str(parsed_block + 99)})
             if self._stop_coroutines:
                 return
 
@@ -167,7 +167,7 @@ class TxHistory():
                     yield from self._parse_transaction(community, txdata, new_transfers, received_list, txid)
 
             self.wallet.refresh_progressed.emit(parsed_block, current_block, self.wallet.pubkey)
-            parsed_block += 101
+            parsed_block += 100
 
         if current_block > self.latest_block:
             self.available_sources = yield from self.wallet.future_sources(community)
diff --git a/src/cutecoin/gui/informations_tab.py b/src/cutecoin/gui/informations_tab.py
index eea1c0b0f97e2185fbcf455351da54189bdc13f3..039c3c0c2259342134c88ac8e4b3a37379cba310 100644
--- a/src/cutecoin/gui/informations_tab.py
+++ b/src/cutecoin/gui/informations_tab.py
@@ -38,39 +38,85 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
 
         #  try to request money variables from last ud block
         try:
-            block = self.community.get_ud_block()
+            block_ud = self.community.get_ud_block()
         except Exception as e:
             logging.debug('community get_ud_block error : ' + str(e))
             return False
         try:
-            block_t_minus_1 = self.community.get_ud_block(1)
+            block_ud_minus_1 = self.community.get_ud_block(1)
         except Exception as e:
             logging.debug('community get_ud_block error : ' + str(e))
             return False
 
-        if block:
-            ud = self.get_referential_diff_value(block['dividend'])
+        if block_ud:
+            ud = self.get_referential_diff_value(block_ud['dividend'])
             # if referential type is quantitative...
             if self.account.ref_type() == 'q':
                 # display int values
                 # use the float type of 64bits, to avoid display a 32bit signed integer...
                 localized_ud = QLocale().toString(float(ud), 'f', 0)
-                localized_mass_per_member = QLocale().toString(
-                    float(self.get_referential_diff_value(block['monetaryMass'] / block['membersCount'])), 'f', 0
+                # display int values
+                localized_ud_plus_1 = QLocale().toString(
+                    float(
+                        self.get_referential_diff_value(
+                            self.community.computed_dividend
+                        )
+                    ),
+                    'f',
+                    0
                 )
-                localized_monetary_mass = QLocale().toString(
-                    float(self.get_referential_diff_value(block['monetaryMass'])), 'f', 0
+                localized_mass = QLocale().toString(
+                    float(self.get_referential_diff_value(block_ud['monetaryMass'])), 'f', 0
                 )
+                if block_ud_minus_1:
+                    localized_mass_minus_1_per_member = QLocale().toString(
+                        float(
+                            self.get_referential_diff_value(float(0) if block_ud['membersCount'] == 0 else
+                                block_ud_minus_1['monetaryMass'] / block_ud['membersCount']
+                            )
+                        ), 'f', 0
+                    )
+                    localized_mass_minus_1 = QLocale().toString(
+                        float(self.get_referential_diff_value(block_ud_minus_1['monetaryMass'])), 'f', 0
+                    )
+                else:
+                    localized_mass_minus_1_per_member = QLocale().toString(
+                        float(0), 'f', 0
+                    )
+                    localized_mass_minus_1 = QLocale().toString(
+                        float(0), 'f', 0
+                    )
             else:
                 # display float values
                 localized_ud = QLocale().toString(ud, 'f', 6)
-                localized_mass_per_member = QLocale().toString(
-                    float(0) if block['membersCount'] <= 0 else
-                    self.get_referential_diff_value(block['monetaryMass'] / block['membersCount']), 'f', 6
+                # display float values
+                localized_ud_plus_1 = QLocale().toString(
+                    float(
+                        self.get_referential_diff_value(
+                            self.community.computed_dividend
+                        )
+                    ),
+                    'f',
+                    6
                 )
-                localized_monetary_mass = QLocale().toString(
-                    self.get_referential_diff_value(block['monetaryMass']), 'f', 6
+                localized_mass = QLocale().toString(
+                    float(self.get_referential_diff_value(block_ud['monetaryMass'])), 'f', 6
                 )
+                if block_ud_minus_1:
+                    localized_mass_minus_1_per_member = QLocale().toString(
+                        self.get_referential_diff_value(float(0) if block_ud['membersCount'] == 0 else
+                            block_ud_minus_1['monetaryMass'] / block_ud['membersCount']), 'f', 6
+                    )
+                    localized_mass_minus_1 = QLocale().toString(
+                        self.get_referential_diff_value(block_ud_minus_1['monetaryMass']), 'f', 6
+                    )
+                else:
+                    localized_mass_minus_1_per_member = QLocale().toString(
+                        float(0), 'f', 6
+                    )
+                    localized_mass_minus_1 = QLocale().toString(
+                        float(0), 'f', 6
+                    )
 
             # set infos in label
             self.label_general.setText(
@@ -82,26 +128,34 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
                 <tr><td align="right"><b>{:}</b></td><td>{:} {:}</td></tr>
                 <tr><td align="right"><b>{:2.2%} / {:} days</b></td><td>{:}</td></tr>
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
+                <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 </table>
                 """).format(
                     localized_ud,
                     self.tr('Universal Dividend UD(t) in'),
                     self.get_referential_diff_name(),
-                    localized_monetary_mass,
-                    self.tr('Monetary Mass M(t) in'),
+                    localized_mass_minus_1,
+                    self.tr('Monetary Mass M(t-1) in'),
                     self.get_referential_diff_name(),
-                    block['membersCount'],
+                    block_ud['membersCount'],
                     self.tr('Members N(t)'),
-                    localized_mass_per_member,
-                    self.tr('Monetary Mass per member M(t)/N(t) in'),
+                    localized_mass_minus_1_per_member,
+                    self.tr('Monetary Mass per member M(t-1)/N(t) in'),
                     self.get_referential_diff_name(),
-                    float(0) if block_t_minus_1['membersCount'] == 0 else
-                    block['dividend'] / (block_t_minus_1['monetaryMass'] / block_t_minus_1['membersCount']),
+                    float(0) if block_ud_minus_1['membersCount'] == 0 else
+                    block_ud['dividend'] / (block_ud_minus_1['monetaryMass'] / block_ud_minus_1['membersCount']),
+
                     params['dt'] / 86400,
-                    self.tr('Actual growth c = UD(t)/[M(t-1)/N(t-1)]'),
+                    self.tr('Actual growth c = UD(t)/[M(t-1)/N(t)]'),
                     QLocale.toString(
                         QLocale(),
-                        QDateTime.fromTime_t(block['medianTime'] + params['dt']),
+                        QDateTime.fromTime_t(block_ud['medianTime']),
+                        QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat)
+                    ),
+                    self.tr('Last UD date and time (t)'),
+                    QLocale.toString(
+                        QLocale(),
+                        QDateTime.fromTime_t(block_ud['medianTime'] + params['dt']),
                         QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat)
                     ),
                     self.tr('Next UD date and time (t+1)')
@@ -110,36 +164,7 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
         else:
             self.label_general.setText(self.tr('No Universal Dividend created yet.'))
 
-        if block:
-            # if referential type is quantitative...
-            if self.account.ref_type() == 'q':
-                # display int values
-                localized_ud_t1 = QLocale().toString(
-                    float(
-                        self.get_referential_diff_value(
-                            math.ceil(
-                                max(block['dividend'], params['c'] * block['monetaryMass'] / block['membersCount'])
-                            )
-                        )
-                    ),
-                    'f',
-                    0
-                )
-            else:
-                # display float values
-                localized_ud_t1 = QLocale().toString(
-                    float(
-                        self.get_referential_diff_value(
-                            math.ceil(
-                                float(0) if block['membersCount'] == 0 else
-                                max(block['dividend'], params['c'] * block['monetaryMass'] / block['membersCount'])
-                            )
-                        )
-                    ),
-                    'f',
-                    6
-                )
-
+        if block_ud:
             # set infos in label
             self.label_rules.setText(
                 self.tr("""
@@ -151,16 +176,16 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
                 """).format(
                     self.tr('{:2.0%} / {:} days').format(params['c'], params['dt'] / 86400),
                     self.tr('Fundamental growth (c) / Delta time (dt)'),
-                    self.tr('UD(t+1) = MAX { UD(t) ; c &#215; M(t) / N(t) }'),
+                    self.tr('UD(t+1) = MAX { UD(t) ; c &#215; M(t) / N(t+1) }'),
                     self.tr('Universal Dividend (formula)'),
                     self.tr('{:} = MAX {{ {:} {:} ; {:2.0%} &#215; {:} {:} / {:} }}').format(
-                        localized_ud_t1,
+                        localized_ud_plus_1,
                         localized_ud,
                         self.get_referential_diff_name(),
                         params['c'],
-                        localized_monetary_mass,
+                        localized_mass,
                         self.get_referential_diff_name(),
-                        block['membersCount']
+                        block_ud['membersCount']
                     ),
                     self.tr('Universal Dividend (computed)')
                 )
diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py
index 69760d374a8d12ce194f214718c5e27362867b09..1e5a4579b2a9bfd80dcc74d14b2436c090dea930 100644
--- a/src/cutecoin/gui/transactions_tab.py
+++ b/src/cutecoin/gui/transactions_tab.py
@@ -35,6 +35,7 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
         self.community = community
         self.password_asker = password_asker
         self.currency_tab = currency_tab
+        self.app.current_account.loading_finished.connect(self.stop_progress)
         self.progressbar.hide()
         self.refresh()