diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index 915b92d23ad7d15215e1c1000e68c59819beddd4..8c3500617ca9d4ef31f5fa08626382cc2e779f2b 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -2587,33 +2587,22 @@ void s_com_mempool_list_print_for_chain(dap_chain_net_t * a_net, dap_chain_t * a
                 dap_global_db_del_sync(l_gdb_group_mempool, l_objs[i].key);
                 continue;
             }
-            char buf[50] = {[0]='\0'};
-            dap_hash_fast_t l_data_hash;
-            char l_data_hash_str[DAP_CHAIN_HASH_FAST_STR_SIZE] = {[0]='\0'};
-            dap_hash_fast(l_datum->data,l_datum->header.data_size,&l_data_hash);
-            dap_hash_fast_to_str(&l_data_hash,l_data_hash_str,DAP_CHAIN_HASH_FAST_STR_SIZE);
-            if (strcmp(l_data_hash_str, l_objs[i].key))
-                dap_string_append_printf(a_str_tmp,
-                                         "WARNING: key field in DB %s do not match datums hash %s",
-                                         l_objs[i].key, l_data_hash_str);
-            const char *l_type = NULL;
-            DAP_DATUM_TYPE_STR(l_datum->header.type_id, l_type)
-            const char *l_token_ticker = NULL;
-            if (l_datum->header.type_id == DAP_CHAIN_DATUM_TX) {
-                dap_chain_tx_in_t *obj_in = (dap_chain_tx_in_t *)dap_chain_datum_tx_item_get((dap_chain_datum_tx_t*)l_datum->data, NULL, TX_ITEM_TYPE_IN, NULL);
-                l_token_ticker = dap_chain_ledger_tx_get_token_ticker_by_hash(a_net->pub.ledger, &obj_in->header.tx_prev_hash);
+            if(a_add)
+            {
+                size_t l_emisssion_size = l_datum->header.data_size;
+                dap_chain_datum_token_emission_t *l_emission = dap_chain_datum_emission_read(l_datum->data, &l_emisssion_size);
+                dap_chain_datum_tx_t *l_tx = (dap_chain_datum_tx_t *)l_datum->data;
 
-                if(a_add)
-                {
-                    dap_chain_datum_tx_t *l_tx = (dap_chain_datum_tx_t *)l_datum->data;
+                uint32_t l_tx_items_count = 0;
+                uint32_t l_tx_items_size = l_tx->header.tx_items_size;
+                bool l_f_found = false;
 
-                    uint32_t l_tx_items_count = 0;
-                    uint32_t l_tx_items_size = l_tx->header.tx_items_size;
-                    bool l_f_found = false;
-                    while (l_tx_items_count < l_tx_items_size) {
+                switch (l_datum->header.type_id) {
+                case DAP_CHAIN_DATUM_TX:
+                    while (l_tx_items_count < l_tx_items_size)
+                    {
                         uint8_t *item = l_tx->tx_items + l_tx_items_count;
                         size_t l_item_tx_size = dap_chain_datum_item_tx_get_size(item);
-
                         if(dap_strcmp(a_add,dap_chain_addr_to_str(&((dap_chain_tx_out_old_t*)item)->addr))&&
                            dap_strcmp(a_add,dap_chain_addr_to_str(&((dap_chain_tx_out_t*)item)->addr))&&
                            dap_strcmp(a_add,dap_chain_addr_to_str(&((dap_chain_tx_out_cond_t*)item)->subtype.srv_stake.fee_addr))&&
@@ -2628,21 +2617,53 @@ void s_com_mempool_list_print_for_chain(dap_chain_net_t * a_net, dap_chain_t * a
                     }
                     if(!l_f_found)
                         continue;
+                    break;
+                case DAP_CHAIN_DATUM_TOKEN_EMISSION:
+                    if(dap_strcmp(a_add,dap_chain_addr_to_str(&(l_emission->hdr.address))))
+                        continue;
+                    else
+                        l_objs_addr++;
+                    break;
+                default:
+                    continue;
+                    break;
                 }
             }
+            char buf[50] = {[0]='\0'};
+            dap_hash_fast_t l_data_hash;
+            char l_data_hash_str[DAP_CHAIN_HASH_FAST_STR_SIZE] = {[0]='\0'};
+            dap_hash_fast(l_datum->data,l_datum->header.data_size,&l_data_hash);
+            dap_hash_fast_to_str(&l_data_hash,l_data_hash_str,DAP_CHAIN_HASH_FAST_STR_SIZE);
+            if (strcmp(l_data_hash_str, l_objs[i].key))
+                            dap_string_append_printf(a_str_tmp,
+                                                     "WARNING: key field in DB %s do not match datums hash %s",
+                                                     l_objs[i].key, l_data_hash_str);
+            const char *l_type = NULL;
+            DAP_DATUM_TYPE_STR(l_datum->header.type_id, l_type)
+            const char *l_token_ticker = NULL;
+            if (l_datum->header.type_id == DAP_CHAIN_DATUM_TX) {
+                dap_chain_tx_in_t *obj_in = (dap_chain_tx_in_t *)dap_chain_datum_tx_item_get((dap_chain_datum_tx_t*)l_datum->data, NULL, TX_ITEM_TYPE_IN, NULL);
+                l_token_ticker = dap_chain_ledger_tx_get_token_ticker_by_hash(a_net->pub.ledger, &obj_in->header.tx_prev_hash);
+            }
             dap_string_append_printf(a_str_tmp,
-                                     "type_id=%s%s%s data_size=%u ts_create=%s", // \n included in timestamp
-                                     l_type,
-                                     l_datum->header.type_id == DAP_CHAIN_DATUM_TX ? " ticker=" : "",
-                                     l_token_ticker ? l_token_ticker :
-                                                      (l_datum->header.type_id == DAP_CHAIN_DATUM_TX ) ? "" : "UNKNOWN",
-                                     l_datum->header.data_size,
-                                     dap_ctime_r(&l_ts_create, buf));
+                                                 "type_id=%s%s%s data_size=%u ts_create=%s", // \n included in timestamp
+                                                 l_type,
+                                                 l_datum->header.type_id == DAP_CHAIN_DATUM_TX ? " ticker=" : "",
+                                                 l_token_ticker ? l_token_ticker :
+                                                                  (l_datum->header.type_id == DAP_CHAIN_DATUM_TX ) ? "" : "UNKNOWN",
+                                                 l_datum->header.data_size,
+                                                 dap_ctime_r(&l_ts_create, buf));
+
             dap_chain_datum_dump(a_str_tmp, l_datum, a_hash_out_type);
         }
-        dap_string_append_printf(a_str_tmp, l_objs_size
+        if(a_add)
+            dap_string_append_printf(a_str_tmp, l_objs_addr
+                                     ? "%s.%s: Total %zu records\n"
+                                     : "%s.%s: No records\n", a_net->pub.name, a_chain->name, l_objs_addr);
+        else
+            dap_string_append_printf(a_str_tmp, l_objs_size
                                  ? "%s.%s: Total %zu records\n"
-                                 : "%s.%s: No records\n", a_net->pub.name, a_chain->name, l_objs_addr ? l_objs_addr : l_objs_size);
+                                 : "%s.%s: No records\n", a_net->pub.name, a_chain->name, l_objs_size);
         dap_global_db_objs_delete(l_objs, l_objs_size);
         DAP_DELETE(l_gdb_group_mempool);
     }