diff --git a/modules/chain/include/dap_chain.h b/modules/chain/include/dap_chain.h
index 6d8b28b553d89510c5cf8f1664d6d69c34d6a88b..c060a96726f8f3ff40d50f8750e1c29ba5c0739d 100644
--- a/modules/chain/include/dap_chain.h
+++ b/modules/chain/include/dap_chain.h
@@ -198,7 +198,7 @@ typedef struct dap_chain {
     // Iterator callbacks
     dap_chain_datum_callback_iter_create_t callback_datum_iter_create;
     dap_chain_datum_callback_iter_get_first_t callback_datum_iter_get_first;
-    dap_chain_datum_callback_iter_get_first_t callback_datum_iter_get_next;
+    dap_chain_datum_callback_iter_get_next_t callback_datum_iter_get_next;
     dap_chain_datum_callback_iter_delete_t callback_datum_iter_delete;
 
     dap_list_t *atom_notifiers;
diff --git a/modules/channel/chain-net/dap_stream_ch_chain_net.c b/modules/channel/chain-net/dap_stream_ch_chain_net.c
index 8707e576fc4d95f2835d7ae2d3482930d472b958..3ebf2d09cd2e6658c796a69cadf906a32a694d09 100644
--- a/modules/channel/chain-net/dap_stream_ch_chain_net.c
+++ b/modules/channel/chain-net/dap_stream_ch_chain_net.c
@@ -197,7 +197,7 @@ static bool s_stream_ch_packet_in(dap_stream_ch_t *a_ch, void* a_arg)
 
         case DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_NODE_VALIDATOR_READY_REQUEST:{
             if (l_ch_chain_net_pkt->hdr.data_size != DAP_CHAIN_NET_CH_VALIDATOR_READY_REQUEST_SIZE) {
-                log_it(L_WARNING, "Invalid VALIDATOR_READY_REQUEST size %hu, expected %zu", l_ch_chain_net_pkt->hdr.data_size,
+                log_it(L_WARNING, "Invalid VALIDATOR_READY_REQUEST size %hu, expected %u", l_ch_chain_net_pkt->hdr.data_size,
                                                                             DAP_CHAIN_NET_CH_VALIDATOR_READY_REQUEST_SIZE);
                 return false;
             }
diff --git a/modules/common/dap_chain_datum_token.c b/modules/common/dap_chain_datum_token.c
index 529de839c5917920856519cebcf040fbf126f455..114575ca1bb6a8c4bb14b122ce54fb9436280d87 100644
--- a/modules/common/dap_chain_datum_token.c
+++ b/modules/common/dap_chain_datum_token.c
@@ -73,13 +73,18 @@ dap_tsd_t* dap_chain_datum_token_tsd_get(dap_chain_datum_token_t *a_token, size_
     return (dap_tsd_t*)a_token->data_n_tsd;
 }
 
-dap_chain_datum_token_t *dap_chain_datum_token_read(const byte_t *a_token_serial, size_t *a_token_size) {
+dap_chain_datum_token_t *dap_chain_datum_token_read(const byte_t *a_token_serial, size_t *a_token_size)
+{
     dap_chain_datum_token_old_t *l_token_old = (dap_chain_datum_token_old_t*)a_token_serial;
     size_t l_token_data_n_tsd_size = *a_token_size - sizeof(dap_chain_datum_token_old_t);
     size_t l_token_size = l_token_data_n_tsd_size + sizeof(dap_chain_datum_token_t);
     switch (((dap_chain_datum_token_t*)a_token_serial)->type) {
     case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_SIMPLE: {
         dap_chain_datum_token_t *l_token = DAP_NEW_Z_SIZE(dap_chain_datum_token_t, l_token_size);
+        if (!l_token) {
+            log_it(L_CRITICAL, g_error_memory_alloc);
+            return NULL;
+        }
         *l_token = (dap_chain_datum_token_t) {
                 .type       = DAP_CHAIN_DATUM_TOKEN_TYPE_DECL,
                 .version    = 1,
@@ -96,6 +101,10 @@ dap_chain_datum_token_t *dap_chain_datum_token_read(const byte_t *a_token_serial
     }
     case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_PRIVATE_DECL: {
         dap_chain_datum_token_t *l_token = DAP_NEW_Z_SIZE(dap_chain_datum_token_t, l_token_size);
+        if (!l_token) {
+            log_it(L_CRITICAL, g_error_memory_alloc);
+            return NULL;
+        }
         *l_token = (dap_chain_datum_token_t) {
                 .type       = DAP_CHAIN_DATUM_TOKEN_TYPE_DECL,
                 .version    = 1,
@@ -114,6 +123,10 @@ dap_chain_datum_token_t *dap_chain_datum_token_read(const byte_t *a_token_serial
     }
     case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_PRIVATE_UPDATE: {
         dap_chain_datum_token_t *l_token = DAP_NEW_Z_SIZE(dap_chain_datum_token_t, l_token_size);
+        if (!l_token) {
+            log_it(L_CRITICAL, g_error_memory_alloc);
+            return NULL;
+        }
         *l_token = (dap_chain_datum_token_t) {
                 .type       = DAP_CHAIN_DATUM_TOKEN_TYPE_UPDATE,
                 .version    = 1,
@@ -132,6 +145,10 @@ dap_chain_datum_token_t *dap_chain_datum_token_read(const byte_t *a_token_serial
     }
     case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_NATIVE_DECL: {
         dap_chain_datum_token_t *l_token = DAP_NEW_Z_SIZE(dap_chain_datum_token_t, l_token_size);
+        if (!l_token) {
+            log_it(L_CRITICAL, g_error_memory_alloc);
+            return NULL;
+        }
         *l_token = (dap_chain_datum_token_t) {
                 .type       = DAP_CHAIN_DATUM_TOKEN_TYPE_DECL,
                 .version    = 1,
@@ -150,6 +167,10 @@ dap_chain_datum_token_t *dap_chain_datum_token_read(const byte_t *a_token_serial
     }
     case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_NATIVE_UPDATE: {
         dap_chain_datum_token_t *l_token = DAP_NEW_Z_SIZE(dap_chain_datum_token_t, l_token_size);
+        if (!l_token) {
+            log_it(L_CRITICAL, g_error_memory_alloc);
+            return NULL;
+        }
         *l_token = (dap_chain_datum_token_t) {
                 .type       = DAP_CHAIN_DATUM_TOKEN_TYPE_UPDATE,
                 .version    = 1,
@@ -168,6 +189,10 @@ dap_chain_datum_token_t *dap_chain_datum_token_read(const byte_t *a_token_serial
     }
     case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_PUBLIC: {
         dap_chain_datum_token_t *l_token = DAP_NEW_Z_SIZE(dap_chain_datum_token_t, l_token_size);
+        if (!l_token) {
+            log_it(L_CRITICAL, g_error_memory_alloc);
+            return NULL;
+        }
         *l_token = (dap_chain_datum_token_t) {
                 .type       = DAP_CHAIN_DATUM_TOKEN_TYPE_DECL,
                 .version    = 1,
diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c
index 18174820bb623fcff32796ec0edaa0395b72a0ef..26a382ae19aeafd2e98ffe25d793b78b07cf191f 100644
--- a/modules/net/dap_chain_node_cli_cmd_tx.c
+++ b/modules/net/dap_chain_node_cli_cmd_tx.c
@@ -811,48 +811,38 @@ json_object *dap_db_history_tx_all(dap_chain_t *l_chain, dap_chain_net_t *l_net,
  * @param a_token_num
  * @return char*
  */
-static json_object* dap_db_chain_history_token_list(dap_chain_t * a_chain, const char *a_token_name, const char *a_hash_out_type, size_t *a_token_num) {
-    if (!a_chain->callback_atom_get_datums) {
-        log_it(L_WARNING, "Not defined callback_atom_get_datums for chain \"%s\"", a_chain->name);
+static json_object* dap_db_chain_history_token_list(dap_chain_t * a_chain, const char *a_token_name, const char *a_hash_out_type, size_t *a_token_num)
+{
+    if (!a_chain->callback_datum_iter_create) {
+        log_it(L_WARNING, "Not defined datum iterators for chain \"%s\"", a_chain->name);
         return NULL;
     }    
-    *a_token_num  = 0;
-    size_t l_atom_size = 0;
-    dap_chain_cell_t *l_cell = a_chain->cells;
+    size_t l_token_num  = 0;
     json_object* json_arr_history_token_out = json_object_new_array();    
-    do {
-        dap_chain_atom_iter_t *l_atom_iter = a_chain->callback_atom_iter_create(a_chain, l_cell->id, NULL);
-        if(!a_chain->callback_atom_get_datums) {
-            log_it(L_DEBUG, "Not defined callback_atom_get_datums for chain \"%s\"", a_chain->name);
-            json_object_put(json_arr_history_token_out);
-            return NULL ;
-        }
-        for (dap_chain_atom_ptr_t l_atom = a_chain->callback_atom_iter_get(l_atom_iter, DAP_CHAIN_ITER_OP_FIRST, &l_atom_size);
-                l_atom && l_atom_size; l_atom = a_chain->callback_atom_iter_get(l_atom_iter, DAP_CHAIN_ITER_OP_NEXT, &l_atom_size)) {
-            size_t l_datums_count = 0;
-            dap_chain_datum_t **l_datums = a_chain->callback_atom_get_datums(l_atom, l_atom_size, &l_datums_count);
-            for(size_t l_datum_n = 0; l_datum_n < l_datums_count; l_datum_n++) {
-                dap_chain_datum_t *l_datum = l_datums[l_datum_n];
-                if (!l_datum || l_datum->header.type_id != DAP_CHAIN_DATUM_TOKEN_DECL)
-                    continue;
-                if (a_token_name) {
-                    size_t l_token_size = l_datum->header.data_size;
-                    dap_chain_datum_token_t *l_token = dap_chain_datum_token_read(l_datum->data, &l_token_size);
-                    int l_cmp = dap_strcmp(l_token->ticker, a_token_name);
-                    DAP_DELETE(l_token);
-                    if (l_cmp)
-                        continue;
-                }
-                json_object* json_history_token = json_object_new_object();
-                dap_chain_datum_dump_json(json_history_token, l_datum, a_hash_out_type, a_chain->net_id);
-                json_object_array_add(json_arr_history_token_out, json_history_token);
-                (*a_token_num)++;
-            }
-            DAP_DELETE(l_datums);
+    dap_chain_datum_iter_t *l_datum_iter = a_chain->callback_datum_iter_create(a_chain);
+    for (dap_chain_datum_t *l_datum = a_chain->callback_datum_iter_get_first(l_datum_iter);
+            l_datum; l_datum = a_chain->callback_datum_iter_get_next(l_datum_iter)) {
+        if (l_datum->header.type_id != DAP_CHAIN_DATUM_TOKEN_DECL)
+            continue;
+        if (a_token_name) {
+            size_t l_token_size = l_datum->header.data_size;
+            dap_chain_datum_token_t *l_token = dap_chain_datum_token_read(l_datum->data, &l_token_size);
+            int l_cmp = dap_strcmp(l_token->ticker, a_token_name);
+            DAP_DELETE(l_token);
+            if (l_cmp)
+                continue;
         }
-        a_chain->callback_atom_iter_delete(l_atom_iter);
-        l_cell = l_cell->hh.next;
-    } while (l_cell);    
+        int l_ret_code = l_datum_iter->ret_code;
+        json_object* json_history_token = json_object_new_object();
+        json_object_object_add(json_history_token, "status", json_object_new_string(l_ret_code ? "DECLINED" : "ACCEPTED"));
+        json_object_object_add(json_history_token, "Ledger return code", json_object_new_int(l_ret_code));
+        dap_chain_datum_dump_json(json_history_token, l_datum, a_hash_out_type, a_chain->net_id);
+        json_object_array_add(json_arr_history_token_out, json_history_token);
+        l_token_num++;
+    }
+    a_chain->callback_datum_iter_delete(l_datum_iter);
+    if (a_token_num)
+        *a_token_num = l_token_num;
     return json_arr_history_token_out;
 }
 
diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c
index e7dca3dd963e765278675e9c9c3b75c31b72fbe5..8a57dc0d503e561669ce0531fc6ba69290f350fc 100644
--- a/modules/type/dag/dap_chain_cs_dag.c
+++ b/modules/type/dag/dap_chain_cs_dag.c
@@ -1718,7 +1718,7 @@ static int s_cli_dag(int argc, char ** argv, void **a_str_reply)
                     dap_string_t * l_str_tmp = dap_string_new(NULL);
                     char buf[DAP_TIME_STR_SIZE];
 
-                    dap_string_append_printf(l_str_tmp,"\nEvent %s:\n", l_event_hash_str);
+                    dap_string_append_printf(l_str_tmp, "\nEvent %s:\n", l_event_hash_str);
 
                     // Round info
                     if ((l_from_events_str && strcmp(l_from_events_str,"round.new") == 0) && l_round_item) {