diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c
index 4f1c02a87a17575ed083f3af432f9ee5ead18754..55d3b8280512ebfea6672442d2e75ff75e3cb990 100644
--- a/modules/net/dap_chain_node_cli_cmd_tx.c
+++ b/modules/net/dap_chain_node_cli_cmd_tx.c
@@ -802,6 +802,15 @@ json_object *dap_db_history_tx_all(dap_chain_t *l_chain, dap_chain_net_t *l_net,
         return json_arr_out;
 }
 
+json_object *s_get_ticker(json_object *a_jobj_tickers, const char *a_token_ticker) {
+    json_object_object_foreach(a_jobj_tickers, key, value){
+        if (dap_strcmp(a_token_ticker, key) == 0) {
+            return value;
+        }
+    }
+    return NULL;
+}
+
 /**
  * @brief show all tokens in chain
  *
@@ -813,37 +822,68 @@ json_object *dap_db_history_tx_all(dap_chain_t *l_chain, dap_chain_net_t *l_net,
  */
 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)
 {
+    json_object *l_jobj_tickers = json_object_new_object();
     if (!a_chain->callback_datum_iter_create) {
         log_it(L_WARNING, "Not defined datum iterators for chain \"%s\"", a_chain->name);
         return NULL;
     }    
     size_t l_token_num  = 0;
-    json_object* json_arr_history_token_out = json_object_new_array();    
     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;
+        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);
         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)
+            if (dap_strcmp(a_token_name, l_token->ticker) != 0) {
+                DAP_DELETE(l_token);
                 continue;
+            }
+        }
+        json_object *l_jobj_ticker = s_get_ticker(l_jobj_tickers, l_token->ticker);
+        json_object *l_jobj_decls = NULL;
+        json_object *l_jobj_updates = NULL;
+        if (!l_jobj_ticker) {
+            l_jobj_ticker = json_object_new_object();
+            dap_ledger_t *l_ledger = dap_chain_net_by_id(a_chain->net_id)->pub.ledger;
+            json_object *l_current_state = dap_ledger_token_info_by_name(l_ledger, l_token->ticker);
+            json_object_object_add(l_jobj_ticker, "current state", l_current_state);
+            l_jobj_decls = json_object_new_array();
+            l_jobj_updates = json_object_new_array();
+            json_object_object_add(l_jobj_ticker, "declarations", l_jobj_decls);
+            json_object_object_add(l_jobj_ticker, "updates", l_jobj_updates);
+            json_object_object_add(l_jobj_tickers, l_token->ticker, l_jobj_ticker);
+        } else {
+            l_jobj_decls = json_object_object_get(l_jobj_ticker, "declarations");
+            l_jobj_updates = json_object_object_get(l_jobj_ticker, "updates");
         }
         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);
+        switch (l_token->type) {
+            case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_SIMPLE:
+            case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_PUBLIC:
+            case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_PRIVATE_DECL:
+            case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_NATIVE_DECL:
+            case DAP_CHAIN_DATUM_TOKEN_TYPE_DECL:
+                json_object_array_add(l_jobj_decls, json_history_token);
+                break;
+            case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_PRIVATE_UPDATE:
+            case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_NATIVE_UPDATE:
+            case DAP_CHAIN_DATUM_TOKEN_TYPE_UPDATE:
+                json_object_array_add(l_jobj_updates, json_history_token);
+                break;
+        }
+        DAP_DELETE(l_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;
+    return l_jobj_tickers;
 }
 
 /**