diff --git a/dap_stream_ch_chain.c b/dap_stream_ch_chain.c
index 0bdabb4485d96373751c2dd4364983573060af19..bff39e2a44bab203e3014120fa53a739fd2d74c4 100644
--- a/dap_stream_ch_chain.c
+++ b/dap_stream_ch_chain.c
@@ -23,9 +23,11 @@
 */
 
 #include "dap_common.h"
+#include "dap_strfuncs.h"
 #include "dap_list.h"
 #include "dap_config.h"
 #include "dap_hash.h"
+#include "utlist.h"
 
 #include "dap_chain.h"
 #include "dap_chain_datum.h"
@@ -42,7 +44,7 @@
 #include "dap_stream_ch_proc.h"
 #include "dap_stream_ch_chain.h"
 #include "dap_stream_ch_chain_pkt.h"
-
+#include "dap_chain_net.h"
 #define LOG_TAG "dap_stream_ch_chain"
 
 
@@ -110,8 +112,8 @@ void s_stream_ch_delete(dap_stream_ch_t* a_ch , void* a_arg)
  */
 void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg)
 {
+    static char *s_net_name = NULL;
     dap_stream_ch_chain_t * l_ch_chain = DAP_STREAM_CH_CHAIN(a_ch);
-
     if ( l_ch_chain){
         dap_stream_ch_pkt_t * l_ch_pkt = (dap_stream_ch_pkt_t *) a_arg;
         dap_stream_ch_chain_pkt_t * l_chain_pkt =(dap_stream_ch_chain_pkt_t *) l_ch_pkt->data;
@@ -123,6 +125,10 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg)
             }break;
             case DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB:{
                 log_it(L_INFO, "In:  SYNCED_GLOBAL_DB pkt");
+                if(s_net_name) {
+                    DAP_DELETE(s_net_name);
+                    s_net_name = NULL;//"kelvin-testnet"
+                }
             }break;
             case DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_CHAINS:{
                 log_it(L_INFO, "In:  SYNCED_CHAINS pkt");
@@ -256,17 +262,43 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg)
                         //   l_store_obj_reversed = DAP_NEW_Z_SIZE(dap_store_obj_t,l_data_obj_count+1);
                         // Reverse order
                         for ( size_t i =0 ; i < l_data_obj_count; i++) {
-                                char l_ts_str[50];
-                                dap_time_to_str_rfc822(l_ts_str,sizeof(l_ts_str),l_store_obj[i].timestamp);
-                                log_it(L_DEBUG,"Unpacked log history: type='%c' (0x%02hhX) group=\"%s\" key=\"%s\""
-                                       " section=\"%s\" timestamp=\"%s\" value_len=%u  ",
-                                       (char) l_store_obj[i].type   , l_store_obj[i].type, l_store_obj[i].group, l_store_obj[i].key,
-                                       l_store_obj[i].section , l_ts_str,
-                                       l_store_obj[i].value_len);
-
-                                //memcpy(l_store_obj_reversed+l_data_obj_count-i-1, l_store_obj+i,sizeof(*l_store_obj) );
-
+                            char l_ts_str[50];
+                            dap_time_to_str_rfc822(l_ts_str, sizeof(l_ts_str), l_store_obj[i].timestamp);
+                            log_it(L_DEBUG, "Unpacked log history: type='%c' (0x%02hhX) group=\"%s\" key=\"%s\""
+                                    " timestamp=\"%s\" value_len=%u  ",
+                                    (char ) l_store_obj[i].type, l_store_obj[i].type, l_store_obj[i].group,
+                                    l_store_obj[i].key,
+                                    l_ts_str,
+                                    l_store_obj[i].value_len);
+                            // read net_name
+                            if(!s_net_name)
+                            {
+                                static dap_config_t *l_cfg = NULL;
+                                if((l_cfg = dap_config_open("network/default")) == NULL) {
+                                    log_it(L_ERROR, "Can't open default network config");
+                                } else {
+                                    s_net_name = dap_strdup(dap_config_get_item_str(l_cfg, "general", "name"));
+                                    dap_config_close(l_cfg);
+                                }
+                            }
+                            // add datum in ledger if necessary
+                            {
+                                dap_chain_net_t *l_net = dap_chain_net_by_name(s_net_name);
+                                dap_chain_t * l_chain;
+                                if(l_net) {
+                                    DL_FOREACH(l_net->pub.chains, l_chain)
+                                    {
+                                        const char *l_chain_name = l_chain->name; //l_chain_name = dap_strdup("gdb");
+                                        dap_chain_t *l_chain = dap_chain_net_get_chain_by_name(l_net, l_chain_name);
+                                        //const char *l_group_name = "chain-gdb.kelvin-testnet.chain-F00000000000000F";//dap_chain_gdb_get_group(l_chain);
+                                        if(l_chain->callback_datums_pool_proc_with_group)
+                                            l_chain->callback_datums_pool_proc_with_group(l_chain,
+                                                    (dap_chain_datum_t**) &(l_store_obj->value), 1, l_store_obj[i].group);
+                                    }
+                                }
                             }
+
+                        }
                         // save data to global_db
                         if(!dap_chain_global_db_obj_save(l_store_obj, l_data_obj_count)) {
                             log_it(L_ERROR, "Not saved to global_db objs=0x%x count=%d", l_store_obj,